From window, 1 Week ago, written in Plain Text.
- go back
Embed
Viewing differences between and webpackJsonp
  1. (window.webpackJsonp = window.webpackJsonp || [
  2. ]).push([[3],
  3. {
  4.   100: function (e, t, n) {
  5.     var n = [
  6.       n(7),
  7.       n(65),
  8.       n(28),
  9.       n(170)
  10.     ],
  11.     n = function (a, e, r, t) {
  12.       'use strict';
  13.       e = e.Model.extend({
  14.         idAttribute: 'url',
  15.         defaults: {
  16.           mediaType: null,
  17.           html: '',
  18.           htmlWidth: null,
  19.           htmlHeight: null,
  20.           thumbnailUrl: '',
  21.           thumbnailWidth: null,
  22.           thumbnailHeight: null,
  23.           url: '',
  24.           urlRedirect: '',
  25.           resolvedUrl: '',
  26.           resolvedUrlRedirect: '',
  27.           title: '',
  28.           description: '',
  29.           providerName: ''
  30.         },
  31.         parse: function (e) {
  32.           return e.response
  33.         },
  34.         sync: function (e, t, n) {
  35.           if ('read' !== e) throw Error('Media models do not support methods other than "read".');
  36.           return r.call('media/details.json', a.extend({
  37.             method: 'POST',
  38.             data: {
  39.               url: this.get('url'),
  40.               forum: n.forum
  41.             }
  42.           }, n))
  43.         }
  44.       }, {
  45.         MEDIA_TYPES: {
  46.           IMAGE: '1',
  47.           IMAGE_UPLOAD: '2',
  48.           YOUTUBE_VIDEO: '3',
  49.           WEBPAGE: '4',
  50.           TWITTER_STATUS: '5',
  51.           FACEBOOK_PAGE: '6',
  52.           FACEBOOK_POST: '7',
  53.           FACEBOOK_PHOTO: '8',
  54.           FACEBOOK_VIDEO: '9',
  55.           SOUNDCLOUD_SOUND: '10',
  56.           GOOGLE_MAP: '11',
  57.           VIMEO_VIDEO: '12',
  58.           VINE_VIDEO: '14',
  59.           GIF_VIDEO: '15',
  60.           MP4_VIDEO: '16'
  61.         },
  62.         WEBPAGE_TYPES: [
  63.           '4',
  64.           '6',
  65.           '7'
  66.         ]
  67.       });
  68.       return t.addType('Media', e),
  69.       e
  70.     }.apply(t, n);
  71.     void 0 === n || (e.exports = n)
  72.   },
  73.   101: function (e, t, n) {
  74.     'use strict';
  75.     function o(e, t, n) {
  76.       return t in e ? Object.defineProperty(e, t, {
  77.         value: n,
  78.         enumerable: !0,
  79.         configurable: !0,
  80.         writable: !0
  81.       }) : e[t] = n,
  82.       e
  83.     }
  84.     n = [
  85.       n(25),
  86.       n(26),
  87.       n(33)
  88.     ],
  89.     void 0 === (n = function (n, e, t) {
  90.       var a = (o(r = {
  91.       }, t.DISQUS_BASIC_PACKAGE_ID, 'https://disqus.com/features/engage/'), o(r, t.DISQUS_PRO_PACKAGE_ID, 'https://disqus.com/landing/disqus-pro'), o(r, t.DISQUS_BUSINESS_PACKAGE_ID, 'https://disqus.com/landing/disqus-business/'), r),
  92.       r = function (e) {
  93.         var t = e.package;
  94.         return t && a[t.id] ? n.createElement('a', {
  95.           className: 'subscription-package__learnmore subscription-package__full',
  96.           href: a[t.id],
  97.           target: '_blank',
  98.           rel: 'noopener noreferrer'
  99.         }, e.useNewText ? 'Learn more about '.concat(t.name, ' »') : 'Learn more about Disqus\' '.concat(t.name, ' features')) : null
  100.       };
  101.       return r.displayName = 'PackageLearnMoreLink',
  102.       r.propTypes = {
  103.         package: t.PACKAGE_SHAPE,
  104.         useNewText: e.bool
  105.       },
  106.       r
  107.     }.apply(t, n)) || (e.exports = n)
  108.   },
  109.   102: function (e, t, n) {
  110.     'use strict';
  111.     var n = [
  112.       n(25),
  113.       n(26),
  114.       n(175),
  115.       n(33),
  116.       n(173),
  117.       n(43)
  118.     ],
  119.     n = function (D, e, t, n, j, a) {
  120.       var T = t.MONTHS_PER_YEAR,
  121.       I = n.ADS_OPTIONAL_FEATURE_ID,
  122.       q = n.DISQUS_BASIC_PACKAGE_ID,
  123.       F = n.DISQUS_BUSINESS_PACKAGE_ID,
  124.       L = n.DISQUS_PLUS_PACKAGE_ID,
  125.       U = n.DISQUS_PREFERRED_CUSTOMER_PACKAGE_ID,
  126.       M = n.DISQUS_PRO_PACKAGE_ID,
  127.       B = n.DISQUS_POLLS_PRO_PACKAGE_ID,
  128.       z = n.DISQUS_POLLS_BUSINESS_PACKAGE_ID,
  129.       H = n.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID,
  130.       G = n.SAAS_PRODUCT_POLLS,
  131.       r = n.ORG_BILLING_SHAPE,
  132.       o = n.PACKAGE_SHAPE,
  133.       V = n.PLUS_YEARLY_SLIDER_PLAN_IDS,
  134.       W = n.PLUS_MONTHLY_SLIDER_PLAN_IDS,
  135.       Y = n.PRO_YEARLY_SLIDER_PLAN_IDS,
  136.       Q = n.PRO_MONTHLY_SLIDER_PLAN_IDS,
  137.       K = n.POLLS_PRO_YEARLY_SLIDER_PLAN_IDS,
  138.       J = n.POLLS_PRO_MONTHLY_SLIDER_PLAN_IDS,
  139.       $ = n.RENDER_FEATURE_TEXT,
  140.       i = n.TRIAL_SHAPE,
  141.       s = n.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  142.       l = n.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  143.       t = n.SAAS_PRODUCT_PLAN_TRIALING_STATUS,
  144.       Z = a.formatPageViews,
  145.       X = a.formatPlanAmount,
  146.       a = function (e) {
  147.         var t,
  148.         n = e.plan,
  149.         a = e.package,
  150.         r = e.includesFeaturesFrom,
  151.         o = e.basicPackage,
  152.         i = e.subscribeText,
  153.         s = e.learnMoreLink,
  154.         l = e.orgBilling,
  155.         c = e.orgCurrentPackage,
  156.         u = e.orgCurrentPackageWillCancel,
  157.         p = e.orgTrial,
  158.         d = e.onRequestInfo,
  159.         m = e.onSubscribe,
  160.         f = e.onStartTrial,
  161.         h = e.maxButtons,
  162.         g = e.newSubscriptionFlow,
  163.         y = e.isCollapsed,
  164.         b = e.onCollapse,
  165.         v = e.onExpand,
  166.         _ = e.selectPlan,
  167.         E = e.showSlider,
  168.         O = e.isCurrentPlan,
  169.         S = e.pollsOrgTrial,
  170.         w = e.pollsOrgCurrentPackage,
  171.         P = e.pollsOrgCurrentPackageWillCancel,
  172.         k = e.organization,
  173.         N = e.pollsPlanStatus,
  174.         C = (C = e.features) || a.features,
  175.         R = n && n.pageViewRange,
  176.         e = (R = !R || null === R.max && null === R.min ? a.pageViewRange : R).min && R.max ? 'Between '.concat(R.min.toLocaleString(), ' and ').concat(R.max.toLocaleString(), ' total monthly pageviews') : a.id === q || a.id === H ? 'Any number of total monthly pageviews' : a.id === L ? 'For mid-size publishers with <'.concat(R.max.toLocaleString(), ' average monthly pageviews') : a.id === M ? 'For larger publishers with <'.concat(R.max.toLocaleString(), ' average monthly pageviews') : a.id === F ? 'For large publishers and enterprise-level organizations' : a.id === B ? 'For publishers with <'.concat(R.max.toLocaleString(), ' average monthly pageviews') : a.id === z ? 'For large publishers and media organizations' : R.min ? 'Over '.concat(R.min.toLocaleString(), ' total monthly pageviews') : R.max ? 'For publishers with <'.concat(R.max.toLocaleString(), ' average monthly pageviews') : '',
  177.         R = function (e, t) {
  178.           return 'year' === t ? e / T : e
  179.         };
  180.         t = a.id === F || a.id === z ? 'Custom pricing' : n.amount && (c && (c.id === L || c.id === M) || w && w.id === B) ? D.createElement(D.Fragment, null, D.createElement('span', null, '$', X(R(n.amount, n.interval))), D.createElement('span', {
  181.           className: 'period-text'
  182.         }, '/ month', 'year' === n.interval && D.createElement('div', null, 'when billed annually'))) : n.amount ? (A = 'month' === n.interval ? n : a.plans.find(function (e) {
  183.           return e.id === n.id.replace('yearly', 'monthly')
  184.         }), t = 'year' === n.interval ? n : a.plans.find(function (e) {
  185.           return e.id === n.id.replace('monthly', 'yearly')
  186.         }), D.createElement(D.Fragment, null, D.createElement('span', null, '$', X(R(t.amount, t.interval))), D.createElement('span', {
  187.           className: 'period-text period-text--block'
  188.         }, 'Per month when billed annually'), D.createElement('span', {
  189.           className: 'period-text period-text--block'
  190.         }, 'or $', X(R(A.amount, A.interval)), ' billed monthly'))) : O || a.id === U || a.features.some(function (e) {
  191.           return e.id === I
  192.         }) ? 'Free' : null;
  193.         var x,
  194.         A,
  195.         R = null;
  196.         E && (E = (A = c && c.plans.find(function (e) {
  197.           return e.isSubscribed
  198.         }) || {
  199.         }) && 'year' === A.interval, A = '', A = a.id === B && E ? (x = K, ' polls-plan-slider') : a.id === B ? (x = J, ' polls-plan-slider') : (x = a.id === L && E ? V : a.id === L ? W : a.id === M && E ? Y : Q, ' comments-plan-slider'), R = D.createElement('div', {
  200.           className: 'plan-slider-container'
  201.         }, D.createElement('div', {
  202.           className: 'plan-slider-header'
  203.         }, 'Monthly pageviews'), D.createElement('input', {
  204.           className: 'plan-slider'.concat(A),
  205.           type: 'range',
  206.           min: '0',
  207.           max: x.length - 1,
  208.           value: x.findIndex(function (e) {
  209.             return n.id === e
  210.           }),
  211.           onChange: function (e) {
  212.             return _(x[e.target.value])
  213.           }
  214.         }), D.createElement('div', {
  215.           className: 'align align--between'
  216.         }, x.map(function (t) {
  217.           var e = a.plans.find(function (e) {
  218.             return e.id === t
  219.           });
  220.           return e ? D.createElement('span', {
  221.             key: e.id,
  222.             className: t === n.id ? '--selected' : ''
  223.           }, Z(e.pageViewRange.max)) : null
  224.         }))));
  225.         k = {
  226.           plan: n,
  227.           package: a,
  228.           basicPackage: o,
  229.           orgBilling: l,
  230.           subscribeText: i,
  231.           onSubscribe: m && function () {
  232.             return m(n, a)
  233.           },
  234.           onRequestInfo: d && function () {
  235.             return d(n)
  236.           },
  237.           onStartTrial: f && function () {
  238.             return f(n, a)
  239.           },
  240.           maxButtons: h,
  241.           newSubscriptionFlow: g,
  242.           organization: k
  243.         };
  244.         n.productName === G ? (k.orgTrial = S, k.orgCurrentPackage = w, k.orgCurrentPackageWillCancel = P, k.pollsPlanStatus = N) : (k.orgTrial = p, k.orgCurrentPackage = c, k.orgCurrentPackageWillCancel = u),
  245.         a.id === H && (k.subscribeText = 'Apply Now');
  246.         u = ''.concat(n.productName === G ? 'polls-' : '').concat(a.name.toLowerCase());
  247.         return D.createElement('div', {
  248.           className: 'subscription-package --'.concat(u).concat(y ? ' --collapsed' : '').concat(O ? ' --current-plan' : '')
  249.         }, D.createElement('div', {
  250.           className: 'subscription-package__wrap'
  251.         }, !O && D.createElement('span', {
  252.           className: 'subscription-package__collapse icon '.concat(y ? 'icon-plus' : 'icon-minus'),
  253.           onClick: y ? v : b
  254.         }), D.createElement('div', {
  255.           className: 'subscription-package__heading'
  256.         }, D.createElement('div', {
  257.           className: 'subscription-package__name-container align align--between align--middle'
  258.         }, D.createElement('h1', {
  259.           className: 'subscription-package__name'
  260.         }, a.name), O && D.createElement('div', {
  261.           className: 'label label-blue text-uppercase'
  262.         }, n.productName), !O && a.id !== q && a.features.some(function (e) {
  263.           return e.id === I
  264.         }) && D.createElement('div', {
  265.           className: 'subscription-package__ads'
  266.         }, $[I])), e ? D.createElement('div', {
  267.           className: 'subscription-package__page-view'
  268.         }, e) : null, R, t ? D.createElement('div', {
  269.           className: 'subscription-package__price'.concat(a.id === F ? ' --fit-text' : '')
  270.         }, t) : null), D.createElement(j, k), D.createElement('div', {
  271.           className: 'subscription-package__features-container'.concat(a.id === q ? ' basic-package-container' : '')
  272.         }, r ? D.createElement('div', {
  273.           className: 'subscription-package__features-from'
  274.         }, 'Everything in the ', r, ' plan, and:') : null, C.length ? D.createElement('ul', {
  275.           className: 'subscription-package__features subscription-package__full text-left'
  276.         }, C.map(function (e) {
  277.           return D.createElement('li', {
  278.             className: 'subscription-package__features-entry',
  279.             key: e.id
  280.           }, D.createElement('span', {
  281.             className: 'subscription-feature__bullet icon icon-small '.concat(e.isCustom ? 'icon-plus' : 'icon-mod-check')
  282.           }), D.createElement('span', {
  283.             className: e.isBold ? 'text-semibold' : ''
  284.           }, e.name))
  285.         })) : null), s))
  286.       };
  287.       return a.propTypes = {
  288.         plan: n.PLAN_SHAPE.isRequired,
  289.         package: o.isRequired,
  290.         basicPackage: o.isRequired,
  291.         maxButtons: e.number,
  292.         features: e.arrayOf(n.FEATURE_SHAPE),
  293.         includesFeaturesFrom: e.string,
  294.         subscribeText: e.string,
  295.         learnMoreLink: e.node,
  296.         orgBilling: r,
  297.         orgCurrentPackage: o,
  298.         orgCurrentPackageWillCancel: e.bool,
  299.         orgTrial: i,
  300.         onRequestInfo: e.func,
  301.         onSubscribe: e.func,
  302.         onStartTrial: e.func,
  303.         newSubscriptionFlow: e.bool,
  304.         isCollapsed: e.bool,
  305.         onCollapse: e.func,
  306.         onExpand: e.func,
  307.         selectPlan: e.func,
  308.         showSlider: e.bool,
  309.         isCurrentPlan: e.bool,
  310.         pollsOrgCurrentPackage: o,
  311.         pollsOrgCurrentPackageWillCancel: e.bool,
  312.         pollsOrgTrial: i,
  313.         organization: e.object.isRequired,
  314.         pollsPlanStatus: e.oneOf([s,
  315.         l,
  316.         t])
  317.       },
  318.       a
  319.     }.apply(t, n);
  320.     void 0 === n || (e.exports = n)
  321.   },
  322.   145: function (e, t, n) {
  323.     var n = [
  324.       n(271)
  325.     ],
  326.     n = function (i) {
  327.       'use strict';
  328.       return function (e, t) {
  329.         var n = e.length,
  330.         a = Array.prototype.forEach;
  331.         if (isNaN(n)) for (var r in e) i(e, r) && t(e[r], r, e);
  332.          else if (a) a.call(e, t);
  333.          else for (var o = 0; o < n; o++) t(e[o], o, e)
  334.       }
  335.     }.apply(t, n);
  336.     void 0 === n || (e.exports = n)
  337.   },
  338.   146: function (e, t, n) {
  339.     var n = [
  340.       n(37),
  341.       n(7),
  342.       n(65),
  343.       n(2),
  344.       n(272)
  345.     ],
  346.     n = function (a, r, e, n, o) {
  347.       'use strict';
  348.       var t = e.Model.extend({
  349.         url: o.jester + '/event.js',
  350.         defaults: {
  351.           experiment: 'default',
  352.           variant: 'control'
  353.         },
  354.         setHostReferrer: function (e) {
  355.           e ? ~e.indexOf('http') && this.set('page_referrer', e) : this.set('page_referrer', 'direct')
  356.         },
  357.         decoratePayload: function (e) {
  358.           var t;
  359.           return e.event || (e.event = 'activity'),
  360.           e = r.extend(this.toJSON(), e),
  361.           r.extend(e, {
  362.             imp: n.impression.impId,
  363.             prev_imp: n.impression.prevImp
  364.           }),
  365.           e.section || (e.section = 'default'),
  366.           e.area || (e.area = 'n/a'),
  367.           2048 < a.param(e).length && this.has('page_referrer') && ((t = window.document.createElement('a')).href = this.get('page_referrer'), (t = t.hostname) && (e.page_referrer_domain = t), delete e.page_referrer),
  368.           e
  369.         },
  370.         emit: function (e) {
  371.           return a.ajax({
  372.             url: r.result(this, 'url'),
  373.             data: this.decoratePayload(e),
  374.             dataType: 'script',
  375.             cache: !0
  376.           })
  377.         }
  378.       }),
  379.       e = new t;
  380.       return e.setHostReferrer(window.document.referrer),
  381.       {
  382.         ActivityClient: t,
  383.         client: e,
  384.         logStat: function (e) {
  385.           var t = new window.Image;
  386.           return t.src = o.jester + '/stat.gif?' + a.param({
  387.             event: e
  388.           }),
  389.           t
  390.         },
  391.         telemetry: function (e, n) {
  392.           if (!r.any(n, function (e) {
  393.             return e < 0
  394.           })) {
  395.             r.each(n, function (e, t) {
  396.               n[t] = Math.round(e)
  397.             });
  398.             var t = new window.Image;
  399.             return t.src = o.jester + '/telemetry/' + e + '.gif?' + a.param(n),
  400.             t
  401.           }
  402.         }
  403.       }
  404.     }.apply(t, n);
  405.     void 0 === n || (e.exports = n)
  406.   },
  407.   148: function (e, t, n) {
  408.     t = function (e) {
  409.       'use strict';
  410.       e.VOTING_TYPES = {
  411.         DETAILED: 0,
  412.         DOWNVOTE_LIMITED: 1,
  413.         DOWNVOTE_DISABLED: 2,
  414.         DISABLED: 3
  415.       },
  416.       e.DEFAULT_VOTING_TYPE = e.VOTING_TYPES.DETAILED
  417.     }.apply(t, [
  418.       t
  419.     ]);
  420.     void 0 === t || (e.exports = t)
  421.   },
  422.   168: function (e, t, n) {
  423.     'use strict';
  424.     var n = [
  425.       n(25),
  426.       n(26)
  427.     ],
  428.     n = function (p, e) {
  429.       function t(e) {
  430.         var t = e.className,
  431.         n = e.id,
  432.         a = e.isChecked,
  433.         r = e.isDisabled,
  434.         o = e.isStatic,
  435.         i = e.onChange,
  436.         s = e.onClick,
  437.         l = e.prefix,
  438.         c = e.values,
  439.         u = e.width,
  440.         e = e.displayBothValues,
  441.         t = 'toggle-button'.concat(r ? ' disabled' : '').concat(o ? ' static' : '').concat(t ? ' '.concat(t) : '');
  442.         return p.createElement('span', {
  443.           className: t
  444.         }, l ? p.createElement('span', {
  445.           className: 'label-prefix'
  446.         }, l) : null, p.createElement('input', {
  447.           type: 'checkbox',
  448.           id: n,
  449.           onChange: function (e) {
  450.             return i(e)
  451.           },
  452.           onClick: s,
  453.           checked: !r && a,
  454.           disabled: r || o
  455.         }), e ? p.createElement('label', {
  456.           className: 'toggle-button-label--multivalue',
  457.           htmlFor: n,
  458.           style: {
  459.             width: u
  460.           }
  461.         }, p.createElement('span', {
  462.           className: 'toggle-button-text'
  463.         }, c.checked), p.createElement('span', {
  464.           className: 'toggle-button-text'
  465.         }, c.unchecked), p.createElement('span', {
  466.           className: 'toggle-button-slider'
  467.         }, !r && a ? c.unchecked : c.checked)) : p.createElement('label', {
  468.           htmlFor: n,
  469.           style: {
  470.             width: u
  471.           }
  472.         }, !r && a ? c.checked : c.unchecked))
  473.       }
  474.       return t.displayName = 'ToggleSwitch',
  475.       t.defaultProps = {
  476.         values: {
  477.           checked: 'ON',
  478.           unchecked: 'OFF'
  479.         },
  480.         width: '76px'
  481.       },
  482.       t.propTypes = {
  483.         className: e.string,
  484.         id: e.string.isRequired,
  485.         isChecked: e.bool.isRequired,
  486.         isDisabled: e.bool,
  487.         isStatic: e.bool,
  488.         onChange: e.func.isRequired,
  489.         onClick: e.func,
  490.         prefix: e.string,
  491.         values: e.shape({
  492.           checked: e.node,
  493.           unchecked: e.node
  494.         }),
  495.         displayBothValues: e.bool,
  496.         width: e.string
  497.       },
  498.       t
  499.     }.apply(t, n);
  500.     void 0 === n || (e.exports = n)
  501.   },
  502.   169: function (e, t, n) {
  503.     var n = [
  504.       n(145)
  505.     ],
  506.     n = function (n) {
  507.       'use strict';
  508.       return function (e) {
  509.         void 0 === e && (e = window.location.search);
  510.         var t = {
  511.         };
  512.         return n(e.substr(1).split('&'), function (e) {
  513.           e = e.split('=').map(function (e) {
  514.             return decodeURIComponent(e.replace(/\+/g, '%20'))
  515.           });
  516.           e[0] && (t[e[0]] = e[1])
  517.         }),
  518.         t
  519.       }
  520.     }.apply(t, n);
  521.     void 0 === n || (e.exports = n)
  522.   },
  523.   170: function (e, t, n) {
  524.     var n = [
  525.       n(7)
  526.     ],
  527.     n = function (n) {
  528.       'use strict';
  529.       function o(e, t, n) {
  530.         var a = o.pool(e),
  531.         r = t && t[e.prototype.idAttribute];
  532.         return r ? (o.get(e, r) ? a[r].set(t) : a[r] = new e(t, n), a[r]) : new e(t, n)
  533.       }
  534.       return o.pool = {
  535.       },
  536.       o.pool = function (e) {
  537.         e = o.pool[e.__type__];
  538.         if (!e) throw Error('Model not registered. Use UniqueModel.addType');
  539.         return e
  540.       },
  541.       o.get = function (e, t) {
  542.         return o.pool(e) [t]
  543.       },
  544.       o.set = function (e, t) {
  545.         var n = o.pool(e),
  546.         a = t && t.get(e.prototype.idAttribute);
  547.         if (!a) return t;
  548.         e = o.get(e, a);
  549.         return e ? e.set(t.attributes) : e = n[a] = t,
  550.         e
  551.       },
  552.       o.addType = function (e, t) {
  553.         t.__type__ && o.pool[e] || (o.pool[t.__type__ = e] = {
  554.         })
  555.       },
  556.       o.boundModel = function (e) {
  557.         var t = n.bind(o, o, e);
  558.         return t.prototype = e.prototype,
  559.         t
  560.       },
  561.       o.wrap = o.boundModel,
  562.       o
  563.     }.apply(t, n);
  564.     void 0 === n || (e.exports = n)
  565.   },
  566.   171: function (e, t, n) {
  567.     'use strict';
  568.     function r(e) {
  569.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  570.         return typeof e
  571.       }
  572.        : function (e) {
  573.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  574.       }) (e)
  575.     }
  576.     function D(e, t) {
  577.       for (var n = 0; n < t.length; n++) {
  578.         var a = t[n];
  579.         a.enumerable = a.enumerable || !1,
  580.         a.configurable = !0,
  581.         'value' in a && (a.writable = !0),
  582.         Object.defineProperty(e, a.key, a)
  583.       }
  584.     }
  585.     function j(e, t) {
  586.       return (j = Object.setPrototypeOf || function (e, t) {
  587.         return e.__proto__ = t,
  588.         e
  589.       }) (e, t)
  590.     }
  591.     function T(n) {
  592.       var a = function () {
  593.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  594.         if (Reflect.construct.sham) return !1;
  595.         if ('function' == typeof Proxy) return !0;
  596.         try {
  597.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  598.           ], function () {
  599.           })),
  600.           !0
  601.         } catch (e) {
  602.           return !1
  603.         }
  604.       }();
  605.       return function () {
  606.         var e,
  607.         t = o(n);
  608.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  609.         t = this,
  610.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? I(t) : e
  611.       }
  612.     }
  613.     function I(e) {
  614.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  615.       return e
  616.     }
  617.     function o(e) {
  618.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  619.         return e.__proto__ || Object.getPrototypeOf(e)
  620.       }) (e)
  621.     }
  622.     function q(e, t, n) {
  623.       return t in e ? Object.defineProperty(e, t, {
  624.         value: n,
  625.         enumerable: !0,
  626.         configurable: !0,
  627.         writable: !0
  628.       }) : e[t] = n,
  629.       e
  630.     }
  631.     n = [
  632.       n(25),
  633.       n(26),
  634.       n(7),
  635.       n(32),
  636.       n(168),
  637.       n(33),
  638.       n(496),
  639.       n(515)
  640.     ],
  641.     void 0 === (n = function (o, e, c, t, i, n, s, l) {
  642.       var a = n.ORG_BILLING_SHAPE,
  643.       r = n.TRIAL_SHAPE,
  644.       u = n.PACKAGE_SHAPE,
  645.       p = n.DISQUS_PLUS_PACKAGE_ID,
  646.       d = n.DISQUS_PLUS_FREE_PACKAGE_ID,
  647.       m = n.DISQUS_PRO_PACKAGE_ID,
  648.       f = n.DISQUS_BUSINESS_PACKAGE_ID,
  649.       h = n.DISQUS_PLUS_100K_PLAN_ID,
  650.       g = n.DISQUS_PLUS_100K_YEARLY_PLAN_ID,
  651.       y = n.DISQUS_PLUS_350K_PLAN_ID,
  652.       b = n.DISQUS_PLUS_350K_YEARLY_PLAN_ID,
  653.       v = n.DISQUS_PLUS_900K_PLAN_ID,
  654.       _ = n.DISQUS_PLUS_900K_YEARLY_PLAN_ID,
  655.       E = n.DISQUS_PLUS_FREE_PLAN_ID,
  656.       O = n.DISQUS_PRO_1M_PLAN_ID,
  657.       S = n.DISQUS_PRO_1M_YEARLY_PLAN_ID,
  658.       w = n.DISQUS_PRO_2_5M_PLAN_ID,
  659.       P = n.DISQUS_PRO_2_5M_YEARLY_PLAN_ID,
  660.       k = n.DISQUS_PRO_5M_PLAN_ID,
  661.       N = n.DISQUS_PRO_5M_YEARLY_PLAN_ID,
  662.       C = n.DISQUS_BUSINESS_PLAN_ID,
  663.       R = n.SAAS_PRODUCT_POLLS,
  664.       x = (q(A = {
  665.       }, n.DISQUS_BASIC_PACKAGE_ID, [
  666.         n.DISQUS_BASIC_PLAN_ID
  667.       ]), q(A, p, [
  668.         g,
  669.         b,
  670.         _,
  671.         h,
  672.         y,
  673.         v
  674.       ]), q(A, d, [
  675.         E
  676.       ]), q(A, m, [
  677.         S,
  678.         P,
  679.         N,
  680.         O,
  681.         w,
  682.         k
  683.       ]), q(A, f, [
  684.         C
  685.       ]), A),
  686.       A = function () {
  687.         !function (e, t) {
  688.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  689.           e.prototype = Object.create(t && t.prototype, {
  690.             constructor: {
  691.               value: e,
  692.               writable: !0,
  693.               configurable: !0
  694.             }
  695.           }),
  696.           t && j(e, t)
  697.         }(r, o.Component);
  698.         var e,
  699.         t,
  700.         n,
  701.         a = T(r);
  702.         function r(e) {
  703.           var t;
  704.           return function (e, t) {
  705.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  706.           }(this, r),
  707.           (t = a.call(this, e)).state = {
  708.             displayPolls: e.history.location.query.product === R
  709.           },
  710.           t.toggleDisplayPolls = t.toggleDisplayPolls.bind(I(t)),
  711.           t
  712.         }
  713.         return e = r,
  714.         (t = [
  715.           {
  716.             key: 'toggleDisplayPolls',
  717.             value: function (e) {
  718.               this.setState({
  719.                 displayPolls: !!e.target.checked
  720.               })
  721.             }
  722.           },
  723.           {
  724.             key: 'render',
  725.             value: function () {
  726.               return o.createElement(o.Fragment, null, o.createElement('div', {
  727.                 className: 'subscription-interval'
  728.               }, o.createElement('div', {
  729.                 className: 'fieldset align--center spacing-bottom-quad'
  730.               }, o.createElement(i, {
  731.                 id: 'annual-interval',
  732.                 isChecked: this.state.displayPolls,
  733.                 onChange: this.toggleDisplayPolls,
  734.                 values: {
  735.                   checked: 'Comments',
  736.                   unchecked: o.createElement(o.Fragment, null, 'Polls', o.createElement('span', {
  737.                     className: 'toggle-button-new-label label label-'.concat(this.state.displayPolls ? 'white' : 'blue', ' spacing-left-small')
  738.                   }, 'NEW'))
  739.                 },
  740.                 displayBothValues: !0,
  741.                 width: '320px'
  742.               }))), o.createElement(this.state.displayPolls ? l : s, this.props))
  743.             }
  744.           }
  745.         ]) && D(e.prototype, t),
  746.         n && D(e, n),
  747.         r
  748.       }();
  749.       return A.propTypes = {
  750.         packages: function (e, t, a, r, o) {
  751.           for (var i, n = arguments.length, s = Array(5 < n ? n - 5 : 0), l = 5; l < n; l++) s[l - 5] = arguments[l];
  752.           return o = o || t,
  753.           (i = e[t]) ? c.chain(x).map(function (e, n) {
  754.             return u.isRequired.apply(u, [
  755.               i,
  756.               n,
  757.               ''.concat(a),
  758.               r,
  759.               ''.concat(o, '[').concat(n, ']')
  760.             ].concat(s)) || c.chain(e).map(function (t) {
  761.               return c.find(i[n].plans, function (e) {
  762.                 return e.id === t
  763.               }) ? null : Error('A plan with id '.concat(t, ' is required in `').concat(a, '`, prop `').concat(o, '[').concat(n, ']`, but its value is `null`.'))
  764.             }).compact().value() [0]
  765.           }).compact().value() [0] : Error('The '.concat(r, ' `').concat(o, '` is required in `').concat(a, '`, but its value is `null`.'))
  766.         },
  767.         orgBilling: a,
  768.         orgCurrentPackage: u,
  769.         orgCurrentPackageWillCancel: e.bool,
  770.         orgTrial: r,
  771.         subscribeText: e.string,
  772.         onRequestInfo: e.func,
  773.         onSubscribe: e.func,
  774.         onStartTrial: e.func,
  775.         newSubscriptionFlow: e.bool,
  776.         useAdSupportedCard: e.bool,
  777.         hideAdSupported: e.bool,
  778.         history: e.shape({
  779.           location: e.shape({
  780.             query: e.shape({
  781.               product: e.oneOf([R,
  782.               void 0])
  783.             })
  784.           })
  785.         })
  786.       },
  787.       t(A)
  788.     }.apply(t, n)) || (e.exports = n)
  789.   },
  790.   172: function (e, t, n) {
  791.     'use strict';
  792.     var n = [
  793.       n(25),
  794.       n(26),
  795.       n(33),
  796.       n(173)
  797.     ],
  798.     n = function (f, e, t, h) {
  799.       function n(e) {
  800.         var t = e.plan,
  801.         n = e.package,
  802.         a = e.basicPackage,
  803.         r = e.subscribeText,
  804.         o = e.orgBilling,
  805.         i = e.orgCurrentPackage,
  806.         s = e.orgCurrentPackageWillCancel,
  807.         l = e.orgTrial,
  808.         c = e.onRequestInfo,
  809.         u = e.onSubscribe,
  810.         p = e.onStartTrial,
  811.         d = e.maxButtons,
  812.         m = e.newSubscriptionFlow,
  813.         e = e.organization;
  814.         return f.createElement('div', {
  815.           className: 'subscription-package --ad-supported --no-card'
  816.         }, f.createElement('div', {
  817.           className: 'basic-package-header'
  818.         }, 'Interested in the Free Version of Disqus ', f.createElement('span', {
  819.           className: 'basic-package-header text-capitalized'
  820.         }, a.productName), '?'), f.createElement('div', {
  821.           className: 'basic-package-body'
  822.         }, 'We offer a free, ad-supported version of Disqus ', f.createElement('span', {
  823.           className: 'basic-package-body text-capitalized'
  824.         }, a.productName), ' to eligible publishers.'), f.createElement(h, {
  825.           plan: t,
  826.           package: n,
  827.           orgTrial: l,
  828.           basicPackage: a,
  829.           orgBilling: o,
  830.           orgCurrentPackage: i,
  831.           orgCurrentPackageWillCancel: s,
  832.           subscribeText: r,
  833.           onSubscribe: u && function () {
  834.             return u(t, n)
  835.           },
  836.           onRequestInfo: c && function () {
  837.             return c(t)
  838.           },
  839.           onStartTrial: p && function () {
  840.             return p(t)
  841.           },
  842.           maxButtons: d,
  843.           newSubscriptionFlow: m,
  844.           organization: e
  845.         }))
  846.       }
  847.       var a = t.PACKAGE_SHAPE;
  848.       return n.propTypes = {
  849.         plan: t.PLAN_SHAPE.isRequired,
  850.         package: a.isRequired,
  851.         basicPackage: a.isRequired,
  852.         maxButtons: e.number,
  853.         subscribeText: e.string,
  854.         orgBilling: t.ORG_BILLING_SHAPE,
  855.         orgCurrentPackage: a,
  856.         orgCurrentPackageWillCancel: e.bool,
  857.         orgTrial: t.TRIAL_SHAPE,
  858.         onRequestInfo: e.func,
  859.         onSubscribe: e.func,
  860.         onStartTrial: e.func,
  861.         newSubscriptionFlow: e.bool,
  862.         organization: e.object.isRequired
  863.       },
  864.       n
  865.     }.apply(t, n);
  866.     void 0 === n || (e.exports = n)
  867.   },
  868.   173: function (e, t, n) {
  869.     'use strict';
  870.     function l() {
  871.       return (l = Object.assign || function (e) {
  872.         for (var t = 1; t < arguments.length; t++) {
  873.           var n,
  874.           a = arguments[t];
  875.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  876.         }
  877.         return e
  878.       }).apply(this, arguments)
  879.     }
  880.     function o(t, e) {
  881.       var n,
  882.       a = Object.keys(t);
  883.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  884.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  885.       })), a.push.apply(a, n)),
  886.       a
  887.     }
  888.     function c(a) {
  889.       for (var e = 1; e < arguments.length; e++) {
  890.         var r = null != arguments[e] ? arguments[e] : {
  891.         };
  892.         e % 2 ? o(Object(r), !0).forEach(function (e) {
  893.           var t,
  894.           n;
  895.           n = r[t = e],
  896.           t in (e = a) ? Object.defineProperty(e, t, {
  897.             value: n,
  898.             enumerable: !0,
  899.             configurable: !0,
  900.             writable: !0
  901.           }) : e[t] = n
  902.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : o(Object(r)).forEach(function (e) {
  903.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  904.         })
  905.       }
  906.       return a
  907.     }
  908.     function u(e, t) {
  909.       if (null == e) return {
  910.       };
  911.       var n,
  912.       a = function (e, t) {
  913.         if (null == e) return {
  914.         };
  915.         var n,
  916.         a,
  917.         r = {
  918.         },
  919.         o = Object.keys(e);
  920.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  921.         return r
  922.       }(e, t);
  923.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  924.       return a
  925.     }
  926.     n = [
  927.       n(25),
  928.       n(26),
  929.       n(497),
  930.       n(33),
  931.       n(513),
  932.       n(92)
  933.     ],
  934.     void 0 === (n = function (g, e, y, t, b, v) {
  935.       function _(e) {
  936.         var t = e.children,
  937.         n = e.id,
  938.         a = void 0 !== (o = e.disabled) && o,
  939.         r = void 0 !== (s = e.isSubscribed) && s,
  940.         o = void 0 === (i = e.href) ? '' : i,
  941.         i = void 0 === (s = e.icon) ? null : s,
  942.         s = u(e, [
  943.           'children',
  944.           'id',
  945.           'disabled',
  946.           'isSubscribed',
  947.           'href',
  948.           'icon'
  949.         ]),
  950.         e = null !== i ? g.createElement('span', {
  951.           className: 'icon icon-'.concat(i, ' icon-small')
  952.         }) : null;
  953.         return s = c({
  954.         }, s),
  955.         o && (s.href = o),
  956.         g.createElement('button', l({
  957.           id: n,
  958.           className: 'button button-medium plan-button'.concat(a ? ' button-disabled' : '').concat(r ? ' --subscribed' : '', ' spacing-bottom-small')
  959.         }, s), e, ' ', t)
  960.       }
  961.       var E = t.DISQUS_BASIC_PACKAGE_ID,
  962.       O = t.DISQUS_BUSINESS_PACKAGE_ID,
  963.       S = t.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID,
  964.       w = t.DISQUS_POLLS_BUSINESS_PACKAGE_ID,
  965.       P = t.DISQUS_BASIC_PLAN_ID,
  966.       k = t.BASIC_SUBSCRIPTION,
  967.       n = t.PLAN_SHAPE,
  968.       a = t.PACKAGE_SHAPE,
  969.       r = t.ORG_BILLING_SHAPE,
  970.       o = t.TRIAL_SHAPE,
  971.       N = t.SAAS_PRODUCT_POLLS,
  972.       C = t.SAAS_PRODUCT_COMMENTS,
  973.       R = t.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  974.       i = t.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  975.       s = t.SAAS_PRODUCT_PLAN_TRIALING_STATUS;
  976.       _.propTypes = {
  977.         id: e.string,
  978.         children: e.node,
  979.         className: e.string,
  980.         disabled: e.bool,
  981.         isSubscribed: e.bool,
  982.         href: e.string,
  983.         icon: e.string
  984.       };
  985.       t = function (e) {
  986.         var t,
  987.         n = e.plan,
  988.         a = e.package,
  989.         r = e.orgBilling,
  990.         o = e.orgCurrentPackageWillCancel,
  991.         i = e.orgTrial,
  992.         s = e.subscribeText,
  993.         l = e.onStartTrial,
  994.         c = e.onSubscribe,
  995.         u = e.maxButtons,
  996.         p = e.newSubscriptionFlow,
  997.         d = e.organization,
  998.         m = e.pollsPlanStatus;
  999.         if (0 === u) return null;
  1000.         if (n && n.isSubscribed && (n.productName === N || !d.pollsOnly) && (n.productName !== N || m !== R) || a && a.isSubscribed && (a.productName === N || !d.pollsOnly) && i && i.isActive) {
  1001.           if (i && i.isActive) {
  1002.             var f,
  1003.             e = r && r.paymentInfo && !o && d && !d.pollsOnly && n.productName !== N,
  1004.             i = e && (void 0 === u || 1 < u);
  1005.             return i ? f = 'You are subscribed, but you will not be charged until your trial ends.' : e || 1 !== u ? e || p || (f = 'If you subscribe, you will not be charged until your trial ends.') : f = 'Currently on free trial',
  1006.             g.createElement('div', {
  1007.               className: 'subscription-package__buttons'
  1008.             }, f ? g.createElement('div', {
  1009.               key: 0,
  1010.               className: 'subscription-package__trial-note text-gray text-small'
  1011.             }, f) : null, g.createElement('div', {
  1012.               className: 'subscription-package__buttons-container'
  1013.             }, void 0 === u || 1 < u || e || 1 === u && p ? g.createElement(_, {
  1014.               key: 1,
  1015.               icon: 'mod-check',
  1016.               disabled: !0,
  1017.               isSubscribed: !0
  1018.             }, 'On Trial') : null, i ? g.createElement(_, {
  1019.               key: 2,
  1020.               icon: 'mod-check',
  1021.               disabled: !0,
  1022.               isSubscribed: !0
  1023.             }, 'Subscribed') : null, e || p ? null : g.createElement('div', {
  1024.               className: 'inline__item'
  1025.             }, g.createElement(_, {
  1026.               key: 3,
  1027.               onClick: c
  1028.             }, 'Subscribe Now'))))
  1029.           }
  1030.           return n.productName !== C || d.pollsOnly ? n.productName === N && (t = r.currentPollsSubscription) : t = n.id !== P || r.currentSubscription ? r.currentSubscription : k,
  1031.           g.createElement('div', {
  1032.             className: 'subscription-package__buttons'
  1033.           }, a.id === O || a.id === w ? g.createElement('div', {
  1034.             className: 'spacing-bottom'
  1035.           }, 'Please ', g.createElement('a', {
  1036.             href: 'mailto:pub-solutions@disqus.com'
  1037.           }, 'contact sales'), ' with any questions about your plan or to change your plan.') : null, t ? g.createElement(_, {
  1038.             icon: 'mod-check',
  1039.             disabled: !0,
  1040.             isSubscribed: !0
  1041.           }, 'Subscribed'.concat(r && t && t.amount || !n.amount ? '' : ' (Free)')) : g.createElement(_, {
  1042.             id: 'get-started-'.concat(a.name.toLowerCase(), '-pricing'),
  1043.             onClick: c
  1044.           }, 'Re-subscribe Now'))
  1045.         }
  1046.         if (a.id === O || a.id === w || a.id === S) {
  1047.           var h = a.id === w ? v.disqusPollsBusinessContact : a.id === S ? v.disqusPollsAdSupportedContact : v.disqusBusinessContact;
  1048.           return g.createElement('div', {
  1049.             className: 'subscription-package__buttons'
  1050.           }, g.createElement(_, {
  1051.             id: 'requestinfo-business-pricing',
  1052.             onClick: function () {
  1053.               return window.open(h, '_blank')
  1054.             },
  1055.             rel: 'noreferrer noopener',
  1056.             target: '_blank'
  1057.           }, a.id === S ? s : 'Request Info'))
  1058.         }
  1059.         if (n.isEligible) return n.hasTrialAvailable && n.amount && n.trialLengthDays ? g.createElement('div', {
  1060.           className: 'subscription-package__buttons'
  1061.         }, g.createElement(_, {
  1062.           key: 1,
  1063.           id: 'start-trial-'.concat(a.name.toLowerCase(), '-pricing'),
  1064.           onClick: l
  1065.         }, 'Try for free'), p ? g.createElement(b, {
  1066.           className: 'subscription-package__trial-terms'
  1067.         }) : g.createElement('div', {
  1068.           key: 0,
  1069.           className: 'subscription-package__trial-note text-gray text-small'
  1070.         }, 'No credit card required')) : g.createElement('div', {
  1071.           className: 'subscription-package__buttons'
  1072.         }, a.id === E && !a.isSubscribed && o ? g.createElement('div', {
  1073.           className: 'spacing-bottom'
  1074.         }, 'You will automatically subscribe to the Basic plan at the end of your billing period.') : null, g.createElement(_, {
  1075.           id: 'get-started-'.concat(a.name.toLowerCase(), '-pricing'),
  1076.           onClick: c
  1077.         }, m === R ? 'Re-subscribe Now' : s || 'Subscribe Now'));
  1078.         a = n.pageViewRange.max || a.pageViewRange.max || 0;
  1079.         return g.createElement('div', {
  1080.           className: 'subscription-package__buttons --disabled'
  1081.         }, g.createElement(_, {
  1082.           disabled: !0
  1083.         }, g.createElement('span', {
  1084.           key: 'ineligibleInfo',
  1085.           'data-tip': !0,
  1086.           'data-for': 'ineligibleCard-'.concat(n.id)
  1087.         }, 'Not Eligible', g.createElement('span', {
  1088.           className: 'icon-info spacing-left-small'
  1089.         })), g.createElement(y, {
  1090.           key: 'ineligibleCard',
  1091.           id: 'ineligibleCard-'.concat(n.id),
  1092.           effect: 'solid',
  1093.           type: 'light',
  1094.           offset: {
  1095.             right: 50
  1096.           },
  1097.           delayHide: 175,
  1098.           className: 'hovercard'
  1099.         }, g.createElement('div', {
  1100.           className: 'hovercard__content subscription-ineligible__info',
  1101.           onClick: function (e) {
  1102.             e.stopPropagation()
  1103.           }
  1104.         }, 'Disqus has identified that your site receives over ', a.toLocaleString(), ' total monthly pageviews. If you believe this is an error, please ', g.createElement('a', {
  1105.           href: 'mailto:publisher-success@disqus.com'
  1106.         }, 'contact support'), '.'))))
  1107.       };
  1108.       return t.propTypes = {
  1109.         plan: n.isRequired,
  1110.         package: a.isRequired,
  1111.         basicPackage: a.isRequired,
  1112.         orgBilling: r,
  1113.         orgCurrentPackage: a,
  1114.         orgCurrentPackageWillCancel: e.bool,
  1115.         orgTrial: o,
  1116.         subscribeText: e.string,
  1117.         onStartTrial: e.func.isRequired,
  1118.         onSubscribe: e.func.isRequired,
  1119.         maxButtons: e.number,
  1120.         newSubscriptionFlow: e.bool,
  1121.         organization: e.object.isRequired,
  1122.         pollsPlanStatus: e.oneOf([R,
  1123.         i,
  1124.         s])
  1125.       },
  1126.       t
  1127.     }.apply(t, n)) || (e.exports = n)
  1128.   },
  1129.   175: function (e, t, n) {
  1130.     t = function (e) {
  1131.       'use strict';
  1132.       e.MONTHS_PER_YEAR = 12
  1133.     }.apply(t, [
  1134.       t
  1135.     ]);
  1136.     void 0 === t || (e.exports = t)
  1137.   },
  1138.   176: function (e, t, n) {
  1139.     var n = [
  1140.       n(7),
  1141.       t,
  1142.       n(28),
  1143.       n(100),
  1144.       n(170)
  1145.     ],
  1146.     n = function (r, o, a, i, s) {
  1147.       'use strict';
  1148.       o.uploadSupported = !!window.FormData,
  1149.       o._extractFirstImageFile = function (e) {
  1150.         return r.find(e, function (e) {
  1151.           return e.type.match(/^image\//)
  1152.         })
  1153.       },
  1154.       o._uploadViaApi = function (e, t, n) {
  1155.         return Promise.resolve(a.call(e, {
  1156.           data: t,
  1157.           contentType: !1,
  1158.           processData: !1,
  1159.           method: 'POST',
  1160.           xhr: function () {
  1161.             var e = new window.XMLHttpRequest,
  1162.             t = n && n.onProgress;
  1163.             return t && e.upload.addEventListener('progress', function (e) {
  1164.               e.total && t(100 * e.loaded / e.total)
  1165.             }),
  1166.             e
  1167.           }
  1168.         }))
  1169.       },
  1170.       o.UPLOAD_URL = 'https://uploads.services.disqus.com/api/3.0/media/create.json',
  1171.       o.uploadMediaUrl = function (e, t) {
  1172.         var n,
  1173.         a = new window.FormData,
  1174.         e = o._extractFirstImageFile(e);
  1175.         return e ? (a.append('upload', e), a.append('permanent', 1), o._uploadViaApi(o.UPLOAD_URL, a, t).then(function (e) {
  1176.           e = r.first(r.values(e.response));
  1177.           if (!e || !e.ok) throw (n = Error('Upload failed')).code = e && e['error-code'],
  1178.           n;
  1179.           return new s(i, {
  1180.             mediaType: i.MEDIA_TYPES.IMAGE_UPLOAD,
  1181.             url: e.url,
  1182.             thumbnailUrl: e.url
  1183.           })
  1184.         }, function (e) {
  1185.           if (e.responseJSON && 4 === e.responseJSON.code) throw (n = Error('Upload failed')).code = 'not-authenticated',
  1186.           n;
  1187.           throw e
  1188.         })) : ((n = Error('No image file to upload')).code = 'invalid-content-type', Promise.reject(n))
  1189.       }
  1190.     }.apply(t, n);
  1191.     void 0 === n || (e.exports = n)
  1192.   },
  1193.   177: function (e, t, n) {
  1194.     var n = [
  1195.       t,
  1196.       n(61)
  1197.     ],
  1198.     n = function (e, t) {
  1199.       'use strict';
  1200.       e.DEFAULT_BUTTON_TEXT = t.interpolate((0, t.get) ('Show Comments (%(count)s)'), {
  1201.         count: '{postCount}'
  1202.       })
  1203.     }.apply(t, n);
  1204.     void 0 === n || (e.exports = n)
  1205.   },
  1206.   24: function (e, t, n) {
  1207.     'use strict';
  1208.     n.r(t);
  1209.     var a = {
  1210.     };
  1211.     n.r(a),
  1212.     n.d(a, 'fetchSubscription', function () {
  1213.       return Hl
  1214.     }),
  1215.     n.d(a, 'updatePaymentInfo', function () {
  1216.       return Gl
  1217.     }),
  1218.     n.d(a, 'updateInvoiceInfo', function () {
  1219.       return Vl
  1220.     }),
  1221.     n.d(a, 'onSubscribe', function () {
  1222.       return Wl
  1223.     }),
  1224.     n.d(a, 'activatePlan', function () {
  1225.       return Yl
  1226.     }),
  1227.     n.d(a, 'validateActivationCode', function () {
  1228.       return Ql
  1229.     }),
  1230.     n.d(a, 'handleUpdatePaymentInfo', function () {
  1231.       return Kl
  1232.     });
  1233.     var r = {
  1234.     };
  1235.     n.r(r),
  1236.     n.d(r, 'fetchForumDetails', function () {
  1237.       return ig
  1238.     }),
  1239.     n.d(r, 'updateForumDetails', function () {
  1240.       return sg
  1241.     });
  1242.     var o = n(178),
  1243.     i = n(25),
  1244.     C = n.n(i),
  1245.     s = n(44),
  1246.     l = n.n(s),
  1247.     c = n(36),
  1248.     _ = n.n(c),
  1249.     u = n(27),
  1250.     v = n(31),
  1251.     p = n(261),
  1252.     d = n.n(p),
  1253.     m = n(262),
  1254.     f = n.n(m),
  1255.     h = n(91),
  1256.     g = n.n(h),
  1257.     y = n(26),
  1258.     b = n.n(y);
  1259.     function E(e) {
  1260.       return (E = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  1261.         return typeof e
  1262.       }
  1263.        : function (e) {
  1264.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  1265.       }) (e)
  1266.     }
  1267.     function O(e, t) {
  1268.       for (var n = 0; n < t.length; n++) {
  1269.         var a = t[n];
  1270.         a.enumerable = a.enumerable || !1,
  1271.         a.configurable = !0,
  1272.         'value' in a && (a.writable = !0),
  1273.         Object.defineProperty(e, a.key, a)
  1274.       }
  1275.     }
  1276.     function S(e, t) {
  1277.       return (S = Object.setPrototypeOf || function (e, t) {
  1278.         return e.__proto__ = t,
  1279.         e
  1280.       }) (e, t)
  1281.     }
  1282.     function w(n) {
  1283.       var a = function () {
  1284.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  1285.         if (Reflect.construct.sham) return !1;
  1286.         if ('function' == typeof Proxy) return !0;
  1287.         try {
  1288.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  1289.           ], function () {
  1290.           })),
  1291.           !0
  1292.         } catch (e) {
  1293.           return !1
  1294.         }
  1295.       }();
  1296.       return function () {
  1297.         var e,
  1298.         t = P(n);
  1299.         return e = a ? (e = P(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  1300.         t = this,
  1301.         !(e = e) || 'object' !== E(e) && 'function' != typeof e ? function (e) {
  1302.           if (void 0 !== e) return e;
  1303.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  1304.         }(t) : e
  1305.       }
  1306.     }
  1307.     function P(e) {
  1308.       return (P = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  1309.         return e.__proto__ || Object.getPrototypeOf(e)
  1310.       }) (e)
  1311.     }
  1312.     var k,
  1313.     N,
  1314.     R,
  1315.     x = function () {
  1316.       !function (e, t) {
  1317.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  1318.         e.prototype = Object.create(t && t.prototype, {
  1319.           constructor: {
  1320.             value: e,
  1321.             writable: !0,
  1322.             configurable: !0
  1323.           }
  1324.         }),
  1325.         t && S(e, t)
  1326.       }(r, C.a.Component);
  1327.       var e,
  1328.       t,
  1329.       n,
  1330.       a = w(r);
  1331.       function r() {
  1332.         return function (e, t) {
  1333.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  1334.         }(this, r),
  1335.         a.apply(this, arguments)
  1336.       }
  1337.       return e = r,
  1338.       (t = [
  1339.         {
  1340.           key: 'componentDidMount',
  1341.           value: function () {
  1342.             this.props.emitDefaultViewEvent && this.props.emitDefaultViewEvent()
  1343.           }
  1344.         }
  1345.       ]) && O(e.prototype, t),
  1346.       n && O(e, n),
  1347.       r
  1348.     }();
  1349.     R = {
  1350.       emitDefaultViewEvent: b.a.func
  1351.     },
  1352.     (N = 'propTypes') in (k = x) ? Object.defineProperty(k, N, {
  1353.       value: R,
  1354.       enumerable: !0,
  1355.       configurable: !0,
  1356.       writable: !0
  1357.     }) : k[N] = R;
  1358.     var A = x,
  1359.     D = n(265),
  1360.     j = n.n(D),
  1361.     T = n(126),
  1362.     I = n(266),
  1363.     q = n.n(I),
  1364.     F = function (n, e) {
  1365.       return e.reduce(function (e, t) {
  1366.         return e[t] = ''.concat(n, '.').concat(t),
  1367.         e
  1368.       }, {
  1369.       })
  1370.     },
  1371.     L = F('aet', [
  1372.       'fetching',
  1373.       'onFetch',
  1374.       'onError'
  1375.     ]),
  1376.     U = F('analyticsContent', [
  1377.       'fetching',
  1378.       'onFetch',
  1379.       'onFetchMore'
  1380.     ]),
  1381.     M = F('audienceAnalytics', [
  1382.       'fetchingUserReport',
  1383.       'onFetchOverviewMetrics',
  1384.       'onFetchUserReport',
  1385.       'onFetchEngagementReport'
  1386.     ]),
  1387.     B = F('badges', [
  1388.       'toggling',
  1389.       'onToggle',
  1390.       'onToggleError',
  1391.       'fetching',
  1392.       'onFetch',
  1393.       'onFetchError',
  1394.       'saving',
  1395.       'onSave',
  1396.       'onSaveError',
  1397.       'uploading',
  1398.       'onUpload',
  1399.       'onUploadError'
  1400.     ]),
  1401.     z = F('badgesManage', [
  1402.       'updateModal',
  1403.       'awarding',
  1404.       'onAward',
  1405.       'onAwardError',
  1406.       'removing',
  1407.       'onRemove',
  1408.       'onRemoveError'
  1409.     ]),
  1410.     H = F('behindClick', [
  1411.       'fetching',
  1412.       'onFetch',
  1413.       'onFetchError',
  1414.       'saving',
  1415.       'onSave',
  1416.       'onSaveError'
  1417.     ]),
  1418.     G = F('campaign', [
  1419.       'onFetch',
  1420.       'onError'
  1421.     ]),
  1422.     V = F('commentCounts', [
  1423.       'onFetch'
  1424.     ]),
  1425.     W = F('discussionsEdit', [
  1426.       'fetchedCategories',
  1427.       'fetchingDiscussions',
  1428.       'fetchedDiscussions',
  1429.       'onFetchError',
  1430.       'updatedThread',
  1431.       'updateThreadError',
  1432.       'clearAlert',
  1433.       'resetDiscussions'
  1434.     ]),
  1435.     Y = F('earnings', [
  1436.       'onFetch'
  1437.     ]),
  1438.     Q = F('featuredMessages', [
  1439.       'onFetchViewStatus'
  1440.     ]),
  1441.     K = F('forumCategories', [
  1442.       'onFetch'
  1443.     ]),
  1444.     J = F('forumDetails', [
  1445.       'fetching',
  1446.       'onFetch',
  1447.       'onError',
  1448.       'onUpdate'
  1449.     ]),
  1450.     $ = F('forumLanguages', [
  1451.       'onFetch'
  1452.     ]),
  1453.     Z = F('forumModerator', [
  1454.       'fetching',
  1455.       'onFetch',
  1456.       'onFetchError',
  1457.       'saving',
  1458.       'onSave',
  1459.       'onSaveError',
  1460.       'updating',
  1461.       'onUpdate',
  1462.       'onUpdateError'
  1463.     ]),
  1464.     X = F('pollModerator', [
  1465.       'fetching',
  1466.       'onFetch',
  1467.       'onFetchError',
  1468.       'saving',
  1469.       'onSave',
  1470.       'onSaveError',
  1471.       'updating',
  1472.       'onUpdate',
  1473.       'onUpdateError'
  1474.     ]),
  1475.     ee = F('forumUpdateFavicon', [
  1476.       'dismissError',
  1477.       'isSaving',
  1478.       'onError',
  1479.       'onSave',
  1480.       'setApiCall',
  1481.       'validateImageFile'
  1482.     ]),
  1483.     te = F('forumWebhooks', [
  1484.       'fetching',
  1485.       'onFetch',
  1486.       'onFetchError',
  1487.       'selectSubscription',
  1488.       'saving',
  1489.       'onSave',
  1490.       'onSaveError',
  1491.       'updateInput'
  1492.     ]),
  1493.     ne = F('moderateSearch', [
  1494.       'update',
  1495.       'changeActive'
  1496.     ]),
  1497.     ae = F('moderateSuggestedActions', [
  1498.       'fetching',
  1499.       'onFetch',
  1500.       'onError'
  1501.     ]),
  1502.     re = F('moderateUserLists', [
  1503.       'resetDefault',
  1504.       'updateModal',
  1505.       'updateBanFormValues'
  1506.     ]),
  1507.     oe = F('moderationRules', [
  1508.       'rulesFetching',
  1509.       'onFetchRules',
  1510.       'onFetchModerationHistory',
  1511.       'rulesSaving',
  1512.       'onSaveRules',
  1513.       'onSaveRulesError'
  1514.     ]),
  1515.     ie = F('orgAdmin', [
  1516.       'fetching',
  1517.       'onFetch',
  1518.       'onFetchError',
  1519.       'saving',
  1520.       'onSave',
  1521.       'onSaveError',
  1522.       'updating',
  1523.       'onUpdate',
  1524.       'onUpdateError'
  1525.     ]),
  1526.     se = F('orgForums', [
  1527.       'fetching',
  1528.       'onFetch',
  1529.       'onFetchMore',
  1530.       'onFetchError'
  1531.     ]),
  1532.     le = F('policy', [
  1533.       'saving',
  1534.       'onSave',
  1535.       'setApiCall'
  1536.     ]),
  1537.     ce = F('pollsEditor', [
  1538.       'isFetching',
  1539.       'isSyncing',
  1540.       'onFetch',
  1541.       'onSave',
  1542.       'onDelete',
  1543.       'onPublish',
  1544.       'onPreview',
  1545.       'reset'
  1546.     ]),
  1547.     ue = F('pollsList', [
  1548.       'updateSearchQuery',
  1549.       'isFetching',
  1550.       'onFetch',
  1551.       'onDelete',
  1552.       'reset',
  1553.       'onPreview'
  1554.     ]),
  1555.     pe = F('pollStats', [
  1556.       'isFetching',
  1557.       'onFetch'
  1558.     ]),
  1559.     de = F('pollsAnaytics', [
  1560.       'isFetching',
  1561.       'isFetchingDetails',
  1562.       'onFetchTotalResponsesReport',
  1563.       'onFetchPollResponsesReport',
  1564.       'onFetchPollBreakdownReport',
  1565.       'onFetchPollDetails'
  1566.     ]),
  1567.     me = F('reactions', [
  1568.       'fetchReactions',
  1569.       'onFetch',
  1570.       'onError',
  1571.       'saveReactions',
  1572.       'onSave',
  1573.       'onDisable',
  1574.       'fetchDefaultReactions',
  1575.       'onFetchDefaultReactions'
  1576.     ]),
  1577.     fe = F('reactionsAnalytics', [
  1578.       'onFetchTotalReactionsReportByDate',
  1579.       'onFetchTotalReactionsReportByThread',
  1580.       'onFetchThreadSpecificReactionsReport'
  1581.     ]),
  1582.     he = F('recommendations', [
  1583.       'enabling',
  1584.       'onEnable',
  1585.       'onEnableError',
  1586.       'fetching',
  1587.       'onFetch',
  1588.       'onFetchError',
  1589.       'saving',
  1590.       'onSave',
  1591.       'onSaveError'
  1592.     ]),
  1593.     ge = F('restricedWords', [
  1594.       'fetching',
  1595.       'fetchFailed',
  1596.       'saving',
  1597.       'saved',
  1598.       'saveFailed',
  1599.       'update',
  1600.       'clearError',
  1601.       'edit'
  1602.     ]),
  1603.     ye = F('saasFeatures', [
  1604.       'fetching',
  1605.       'onFetch',
  1606.       'onError'
  1607.     ]),
  1608.     be = F('selection', [
  1609.       'onEnableComments'
  1610.     ]),
  1611.     ve = F('stripeCheckout', [
  1612.       'scriptAdded',
  1613.       'scriptLoaded',
  1614.       'checkoutScriptAdded',
  1615.       'stripeCheckoutLoaded',
  1616.       'updateData',
  1617.       'onError'
  1618.     ]),
  1619.     _e = F('subscription', [
  1620.       'fetchStart',
  1621.       'fetchFailed',
  1622.       'fetchedPackages',
  1623.       'fetchedCurrentPlan',
  1624.       'pollsFetchedCurrentPlan',
  1625.       'fetchedBillingInformation',
  1626.       'updateInvoiceStart',
  1627.       'updateInvoiceEnd',
  1628.       'updateSubscriptionStart',
  1629.       'updateSubscriptionEnd'
  1630.     ]),
  1631.     Ee = F('wordpressInstall', [
  1632.       'configureRemotePlugin',
  1633.       'configuring',
  1634.       'onConfigure',
  1635.       'onConfigureError',
  1636.       'updateInstallToken'
  1637.     ]);
  1638.     function Oe(t, e) {
  1639.       var n,
  1640.       a = Object.keys(t);
  1641.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  1642.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  1643.       })), a.push.apply(a, n)),
  1644.       a
  1645.     }
  1646.     function Se(a) {
  1647.       for (var e = 1; e < arguments.length; e++) {
  1648.         var r = null != arguments[e] ? arguments[e] : {
  1649.         };
  1650.         e % 2 ? Oe(Object(r), !0).forEach(function (e) {
  1651.           var t,
  1652.           n;
  1653.           n = r[t = e],
  1654.           t in (e = a) ? Object.defineProperty(e, t, {
  1655.             value: n,
  1656.             enumerable: !0,
  1657.             configurable: !0,
  1658.             writable: !0
  1659.           }) : e[t] = n
  1660.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Oe(Object(r)).forEach(function (e) {
  1661.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  1662.         })
  1663.       }
  1664.       return a
  1665.     }
  1666.     function we(e, t) {
  1667.       if (null == e) return {
  1668.       };
  1669.       var n,
  1670.       a = function (e, t) {
  1671.         if (null == e) return {
  1672.         };
  1673.         var n,
  1674.         a,
  1675.         r = {
  1676.         },
  1677.         o = Object.keys(e);
  1678.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  1679.         return r
  1680.       }(e, t);
  1681.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  1682.       return a
  1683.     }
  1684.     function Pe() {
  1685.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ke,
  1686.       t = 1 < arguments.length ? arguments[1] : void 0,
  1687.       n = t.type,
  1688.       a = we(t, [
  1689.         'type'
  1690.       ]);
  1691.       switch (n) {
  1692.         case L.fetching:
  1693.           return Se(Se({
  1694.           }, e), {
  1695.           }, {
  1696.             pendingExportInfo: Se(Se({
  1697.             }, e.pendingExportInfo), {
  1698.             }, {
  1699.               isFetching: !0
  1700.             })
  1701.           });
  1702.         case L.onFetch:
  1703.           return Se(Se({
  1704.           }, e), {
  1705.           }, {
  1706.             pendingExportInfo: Se(Se(Se({
  1707.             }, e.pendingExportInfo), a.pendingExportInfo), {
  1708.             }, {
  1709.               isFetching: !1,
  1710.               isFetched: !0
  1711.             })
  1712.           });
  1713.         case L.onError:
  1714.           return Se(Se({
  1715.           }, e), {
  1716.           }, {
  1717.             pendingExportInfo: Se(Se({
  1718.             }, e.pendingExportInfo), {
  1719.             }, {
  1720.               isFetching: !1
  1721.             })
  1722.           });
  1723.         default:
  1724.           return e
  1725.       }
  1726.     }
  1727.     var ke = {
  1728.       pendingExportInfo: {
  1729.         isFetching: !1,
  1730.         isFetched: !1,
  1731.         pendingExports: 0,
  1732.         totalExports: 0,
  1733.         lastExportDate: ''
  1734.       }
  1735.     };
  1736.     function Ne(t, e) {
  1737.       var n,
  1738.       a = Object.keys(t);
  1739.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  1740.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  1741.       })), a.push.apply(a, n)),
  1742.       a
  1743.     }
  1744.     function Ce(a) {
  1745.       for (var e = 1; e < arguments.length; e++) {
  1746.         var r = null != arguments[e] ? arguments[e] : {
  1747.         };
  1748.         e % 2 ? Ne(Object(r), !0).forEach(function (e) {
  1749.           var t,
  1750.           n;
  1751.           n = r[t = e],
  1752.           t in (e = a) ? Object.defineProperty(e, t, {
  1753.             value: n,
  1754.             enumerable: !0,
  1755.             configurable: !0,
  1756.             writable: !0
  1757.           }) : e[t] = n
  1758.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Ne(Object(r)).forEach(function (e) {
  1759.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  1760.         })
  1761.       }
  1762.       return a
  1763.     }
  1764.     function Re(e, t) {
  1765.       if (null == e) return {
  1766.       };
  1767.       var n,
  1768.       a = function (e, t) {
  1769.         if (null == e) return {
  1770.         };
  1771.         var n,
  1772.         a,
  1773.         r = {
  1774.         },
  1775.         o = Object.keys(e);
  1776.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  1777.         return r
  1778.       }(e, t);
  1779.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  1780.       return a
  1781.     }
  1782.     function xe() {
  1783.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Ae,
  1784.       t = 1 < arguments.length ? arguments[1] : void 0,
  1785.       n = t.type,
  1786.       a = Re(t, [
  1787.         'type'
  1788.       ]);
  1789.       switch (n) {
  1790.         case U.fetching:
  1791.           return Ce(Ce({
  1792.           }, e), {
  1793.           }, {
  1794.             isFetching: !0
  1795.           });
  1796.         case U.onFetch:
  1797.           return Ce(Ce({
  1798.           }, e), {
  1799.           }, {
  1800.             isFetching: a.isFetching,
  1801.             cursor: a.cursor,
  1802.             items: a.items,
  1803.             reportData: a.reportData,
  1804.             hasMore: a.cursor && a.cursor.hasNext
  1805.           });
  1806.         case U.onFetchMore:
  1807.           return Ce(Ce({
  1808.           }, e), {
  1809.           }, {
  1810.             isFetching: a.isFetching,
  1811.             cursor: a.cursor,
  1812.             items: a.items,
  1813.             hasMore: a.cursor && a.cursor.hasNext
  1814.           });
  1815.         default:
  1816.           return e
  1817.       }
  1818.     }
  1819.     var Ae = {
  1820.       items: null,
  1821.       isFetching: !0,
  1822.       cursor: null,
  1823.       hasMore: !1,
  1824.       reportData: null
  1825.     },
  1826.     De = n(7),
  1827.     je = n.n(De);
  1828.     function Te(e) {
  1829.       return function (e) {
  1830.         if (Array.isArray(e)) return Ie(e)
  1831.       }(e) || function (e) {
  1832.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  1833.       }(e) || function (e, t) {
  1834.         if (e) {
  1835.           if ('string' == typeof e) return Ie(e, t);
  1836.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  1837.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ie(e, t) : void 0
  1838.         }
  1839.       }(e) || function () {
  1840.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  1841.       }()
  1842.     }
  1843.     function Ie(e, t) {
  1844.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  1845.       return a
  1846.     }
  1847.     function qe(t, e) {
  1848.       var n,
  1849.       a = Object.keys(t);
  1850.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  1851.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  1852.       })), a.push.apply(a, n)),
  1853.       a
  1854.     }
  1855.     function Fe(a) {
  1856.       for (var e = 1; e < arguments.length; e++) {
  1857.         var r = null != arguments[e] ? arguments[e] : {
  1858.         };
  1859.         e % 2 ? qe(Object(r), !0).forEach(function (e) {
  1860.           var t,
  1861.           n;
  1862.           n = r[t = e],
  1863.           t in (e = a) ? Object.defineProperty(e, t, {
  1864.             value: n,
  1865.             enumerable: !0,
  1866.             configurable: !0,
  1867.             writable: !0
  1868.           }) : e[t] = n
  1869.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : qe(Object(r)).forEach(function (e) {
  1870.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  1871.         })
  1872.       }
  1873.       return a
  1874.     }
  1875.     function Le(e, t) {
  1876.       if (null == e) return {
  1877.       };
  1878.       var n,
  1879.       a = function (e, t) {
  1880.         if (null == e) return {
  1881.         };
  1882.         var n,
  1883.         a,
  1884.         r = {
  1885.         },
  1886.         o = Object.keys(e);
  1887.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  1888.         return r
  1889.       }(e, t);
  1890.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  1891.       return a
  1892.     }
  1893.     function Ue() {
  1894.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : He,
  1895.       t = 1 < arguments.length ? arguments[1] : void 0,
  1896.       n = t.type,
  1897.       a = Le(t, [
  1898.         'type'
  1899.       ]);
  1900.       switch (n) {
  1901.         case M.fetchingUserReport:
  1902.           return Fe(Fe({
  1903.           }, e), {
  1904.           }, {
  1905.             userReport: Fe(Fe({
  1906.             }, e.userReport), {
  1907.             }, {
  1908.               isFetching: !0
  1909.             })
  1910.           });
  1911.         case M.onFetchOverviewMetrics:
  1912.           return Fe(Fe({
  1913.           }, e), {
  1914.           }, {
  1915.             overviewMetrics: Fe({
  1916.               current: Be,
  1917.               previous: Be
  1918.             }, a.response)
  1919.           });
  1920.         case M.onFetchUserReport:
  1921.           return Fe(Fe({
  1922.           }, e), {
  1923.           }, {
  1924.             userReport: {
  1925.               users: [
  1926.               ].concat(Te(a.fetchMore ? e.userReport.users : [
  1927.               ]), Te(a.response)),
  1928.               cursor: a.cursor,
  1929.               isFetching: !1
  1930.             }
  1931.           });
  1932.         case M.onFetchEngagementReport:
  1933.           return Fe(Fe({
  1934.           }, e), {
  1935.           }, {
  1936.             engagementReport: Fe(Fe({
  1937.             }, je.a.mapObject(ze, function () {
  1938.               return [[a.start.split('T') [0],
  1939.               0],
  1940.               [
  1941.                 a.end.split('T') [0],
  1942.                 0
  1943.               ]]
  1944.             })), a.response)
  1945.           });
  1946.         default:
  1947.           return e
  1948.       }
  1949.     }
  1950.     function Me() {
  1951.       return 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {
  1952.         auth: Object(Ge.getFromCookie) ()
  1953.       }
  1954.     }
  1955.     var Be = {
  1956.       commentReaders: 0,
  1957.       subscribedReaders: 0,
  1958.       engagedReaders: {
  1959.         new : 0,
  1960.         returning: 0,
  1961.         recovered: 0
  1962.       }
  1963.     },
  1964.     ze = {
  1965.       new : [
  1966.       ],
  1967.       returning: [
  1968.       ],
  1969.       recovered: [
  1970.       ],
  1971.       inactive: [
  1972.       ]
  1973.     },
  1974.     He = {
  1975.       overviewMetrics: null,
  1976.       engagementReport: ze,
  1977.       userReport: {
  1978.         cursor: {
  1979.         },
  1980.         users: [
  1981.         ],
  1982.         isFetching: !1
  1983.       }
  1984.     },
  1985.     Ge = n(42),
  1986.     Ve = n.n(Ge),
  1987.     We = n(59);
  1988.     function Ye(t, e) {
  1989.       var n,
  1990.       a = Object.keys(t);
  1991.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  1992.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  1993.       })), a.push.apply(a, n)),
  1994.       a
  1995.     }
  1996.     function Qe(a) {
  1997.       for (var e = 1; e < arguments.length; e++) {
  1998.         var r = null != arguments[e] ? arguments[e] : {
  1999.         };
  2000.         e % 2 ? Ye(Object(r), !0).forEach(function (e) {
  2001.           var t,
  2002.           n;
  2003.           n = r[t = e],
  2004.           t in (e = a) ? Object.defineProperty(e, t, {
  2005.             value: n,
  2006.             enumerable: !0,
  2007.             configurable: !0,
  2008.             writable: !0
  2009.           }) : e[t] = n
  2010.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Ye(Object(r)).forEach(function (e) {
  2011.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2012.         })
  2013.       }
  2014.       return a
  2015.     }
  2016.     function Ke(e, t) {
  2017.       if (null == e) return {
  2018.       };
  2019.       var n,
  2020.       a = function (e, t) {
  2021.         if (null == e) return {
  2022.         };
  2023.         var n,
  2024.         a,
  2025.         r = {
  2026.         },
  2027.         o = Object.keys(e);
  2028.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2029.         return r
  2030.       }(e, t);
  2031.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2032.       return a
  2033.     }
  2034.     function Je() {
  2035.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : $e,
  2036.       t = 1 < arguments.length ? arguments[1] : void 0,
  2037.       n = t.type,
  2038.       a = Ke(t, [
  2039.         'type'
  2040.       ]);
  2041.       switch (n) {
  2042.         case z.updateModal:
  2043.           return Qe(Qe({
  2044.           }, e), {
  2045.           }, {
  2046.             isOpen: ('boolean' == typeof a.isOpen ? a : e).isOpen,
  2047.             forum: a.forum || e.forum,
  2048.             user: a.user || e.user
  2049.           });
  2050.         case z.updateBadgeAction:
  2051.           return Qe(Qe({
  2052.           }, e), {
  2053.           }, {
  2054.             isOpen: ('boolean' == typeof a.isOpen ? a : e).isOpen,
  2055.             action: a.action || e.action
  2056.           });
  2057.         case z.awarding:
  2058.           return Qe(Qe({
  2059.           }, e), {
  2060.           }, {
  2061.             isAwarding: !0,
  2062.             isAwarded: !1,
  2063.             error: null
  2064.           });
  2065.         case z.onAward:
  2066.           return Qe(Qe({
  2067.           }, e), {
  2068.           }, {
  2069.             targetBadge: a.badge,
  2070.             isAwarding: !1,
  2071.             isAwarded: !0,
  2072.             error: null
  2073.           });
  2074.         case z.onAwardError:
  2075.           return Qe(Qe({
  2076.           }, e), {
  2077.           }, {
  2078.             isAwarding: !1,
  2079.             isAwarded: !1,
  2080.             error: a.error
  2081.           });
  2082.         case z.removing:
  2083.           return Qe(Qe({
  2084.           }, e), {
  2085.           }, {
  2086.             isRemoving: !0,
  2087.             isRemoved: !1,
  2088.             error: null
  2089.           });
  2090.         case z.onRemove:
  2091.           return Qe(Qe({
  2092.           }, e), {
  2093.           }, {
  2094.             targetBadge: a.badge,
  2095.             isRemoving: !1,
  2096.             isRemoved: !0,
  2097.             error: null
  2098.           });
  2099.         case z.onRemoveError:
  2100.           return Qe(Qe({
  2101.           }, e), {
  2102.           }, {
  2103.             isRemoving: !1,
  2104.             isRemoved: !1,
  2105.             error: a.error
  2106.           });
  2107.         default:
  2108.           return e
  2109.       }
  2110.     }
  2111.     var $e = {
  2112.       isOpen: !1,
  2113.       action: We.ACTION_TYPES.AWARD,
  2114.       user: null,
  2115.       forum: null,
  2116.       targetBadge: null,
  2117.       isAwarding: !1,
  2118.       isAwarded: !1,
  2119.       isRemoving: !1,
  2120.       isRemoved: !1,
  2121.       error: null
  2122.     };
  2123.     function Ze(t, e) {
  2124.       var n,
  2125.       a = Object.keys(t);
  2126.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2127.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2128.       })), a.push.apply(a, n)),
  2129.       a
  2130.     }
  2131.     function Xe(a) {
  2132.       for (var e = 1; e < arguments.length; e++) {
  2133.         var r = null != arguments[e] ? arguments[e] : {
  2134.         };
  2135.         e % 2 ? Ze(Object(r), !0).forEach(function (e) {
  2136.           var t,
  2137.           n;
  2138.           n = r[t = e],
  2139.           t in (e = a) ? Object.defineProperty(e, t, {
  2140.             value: n,
  2141.             enumerable: !0,
  2142.             configurable: !0,
  2143.             writable: !0
  2144.           }) : e[t] = n
  2145.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Ze(Object(r)).forEach(function (e) {
  2146.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2147.         })
  2148.       }
  2149.       return a
  2150.     }
  2151.     function et(e, t) {
  2152.       if (null == e) return {
  2153.       };
  2154.       var n,
  2155.       a = function (e, t) {
  2156.         if (null == e) return {
  2157.         };
  2158.         var n,
  2159.         a,
  2160.         r = {
  2161.         },
  2162.         o = Object.keys(e);
  2163.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2164.         return r
  2165.       }(e, t);
  2166.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2167.       return a
  2168.     }
  2169.     function tt() {
  2170.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : nt,
  2171.       t = 1 < arguments.length ? arguments[1] : void 0,
  2172.       n = t.type,
  2173.       a = et(t, [
  2174.         'type'
  2175.       ]);
  2176.       switch (n) {
  2177.         case B.toggling:
  2178.           return Xe(Xe({
  2179.           }, e), {
  2180.           }, {
  2181.             isToggling: !0,
  2182.             errors: [
  2183.             ]
  2184.           });
  2185.         case B.onToggle:
  2186.           return Xe(Xe({
  2187.           }, e), {
  2188.           }, {
  2189.             badgesEnabled: a.badgesEnabled,
  2190.             isToggling: !1,
  2191.             errors: [
  2192.             ]
  2193.           });
  2194.         case B.onToggleError:
  2195.           return Xe(Xe({
  2196.           }, e), {
  2197.           }, {
  2198.             isToggling: !1,
  2199.             errors: [
  2200.               a.message
  2201.             ]
  2202.           });
  2203.         case B.fetching:
  2204.           return Xe(Xe({
  2205.           }, e), {
  2206.           }, {
  2207.             isFetching: !0,
  2208.             isFetched: !1,
  2209.             errors: [
  2210.             ]
  2211.           });
  2212.         case B.onFetch:
  2213.           return Xe(Xe({
  2214.           }, e), {
  2215.           }, {
  2216.             isFetching: !1,
  2217.             isFetched: !0,
  2218.             badgesEnabled: a.badgesEnabled,
  2219.             badges: a.badges,
  2220.             errors: [
  2221.             ]
  2222.           });
  2223.         case B.onFetchError:
  2224.           return Xe(Xe({
  2225.           }, e), {
  2226.           }, {
  2227.             isFetching: !1,
  2228.             isFetched: !0,
  2229.             errors: [
  2230.               a.message
  2231.             ]
  2232.           });
  2233.         case B.uploading:
  2234.           return Xe(Xe({
  2235.           }, e), {
  2236.           }, {
  2237.             isUploading: !0,
  2238.             errors: [
  2239.             ]
  2240.           });
  2241.         case B.onUpload:
  2242.           return Xe(Xe({
  2243.           }, e), {
  2244.           }, {
  2245.             isUploading: !1,
  2246.             isUploaded: !0,
  2247.             badges: a.badges,
  2248.             errors: [
  2249.             ]
  2250.           });
  2251.         case B.onUploadError:
  2252.           return Xe(Xe({
  2253.           }, e), {
  2254.           }, {
  2255.             isUploading: !1,
  2256.             isUploaded: !1,
  2257.             errors: [
  2258.               a.message
  2259.             ]
  2260.           });
  2261.         case B.saving:
  2262.           return Xe(Xe({
  2263.           }, e), {
  2264.           }, {
  2265.             isSaving: !0,
  2266.             isSaved: !1,
  2267.             errors: [
  2268.             ]
  2269.           });
  2270.         case B.onSave:
  2271.           return Xe(Xe({
  2272.           }, e), {
  2273.           }, {
  2274.             badges: a.badges,
  2275.             isSaving: !1,
  2276.             isSaved: !0,
  2277.             errors: [
  2278.             ]
  2279.           });
  2280.         case B.onSaveError:
  2281.           return {
  2282.             isSaving: !1,
  2283.             errors: [
  2284.               a.message
  2285.             ]
  2286.           };
  2287.         default:
  2288.           return e
  2289.       }
  2290.     }
  2291.     var nt = {
  2292.       badgesEnabled: !1,
  2293.       badges: [
  2294.       ],
  2295.       isToggling: !1,
  2296.       isFetching: !1,
  2297.       isFetched: !1,
  2298.       isUploading: !1,
  2299.       isUploaded: !1,
  2300.       isSaving: !1,
  2301.       isSaved: !1,
  2302.       errors: [
  2303.       ]
  2304.     };
  2305.     function at(t, e) {
  2306.       var n,
  2307.       a = Object.keys(t);
  2308.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2309.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2310.       })), a.push.apply(a, n)),
  2311.       a
  2312.     }
  2313.     function rt(a) {
  2314.       for (var e = 1; e < arguments.length; e++) {
  2315.         var r = null != arguments[e] ? arguments[e] : {
  2316.         };
  2317.         e % 2 ? at(Object(r), !0).forEach(function (e) {
  2318.           var t,
  2319.           n;
  2320.           n = r[t = e],
  2321.           t in (e = a) ? Object.defineProperty(e, t, {
  2322.             value: n,
  2323.             enumerable: !0,
  2324.             configurable: !0,
  2325.             writable: !0
  2326.           }) : e[t] = n
  2327.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : at(Object(r)).forEach(function (e) {
  2328.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2329.         })
  2330.       }
  2331.       return a
  2332.     }
  2333.     function ot(e, t) {
  2334.       if (null == e) return {
  2335.       };
  2336.       var n,
  2337.       a = function (e, t) {
  2338.         if (null == e) return {
  2339.         };
  2340.         var n,
  2341.         a,
  2342.         r = {
  2343.         },
  2344.         o = Object.keys(e);
  2345.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2346.         return r
  2347.       }(e, t);
  2348.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2349.       return a
  2350.     }
  2351.     function it() {
  2352.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : st,
  2353.       t = 1 < arguments.length ? arguments[1] : void 0,
  2354.       n = t.type,
  2355.       a = ot(t, [
  2356.         'type'
  2357.       ]);
  2358.       switch (n) {
  2359.         case H.fetching:
  2360.           return rt(rt({
  2361.           }, e), {
  2362.           }, {
  2363.             isFetching: !0,
  2364.             error: null
  2365.           });
  2366.         case H.onFetch:
  2367.           return rt(rt({
  2368.           }, e), {
  2369.           }, {
  2370.             isFetching: !1,
  2371.             titleEnabled: a.title_enabled,
  2372.             titleText: a.title_text,
  2373.             titleCSS: a.title_css,
  2374.             buttonText: a.button_text,
  2375.             buttonCSS: a.button_css
  2376.           });
  2377.         case H.onFetchError:
  2378.           return rt(rt({
  2379.           }, e), {
  2380.           }, {
  2381.             isFetching: !1,
  2382.             isSaving: !1,
  2383.             error: a.message || 'We couldn\'t retrieve your behind a click settings. Try again.'
  2384.           });
  2385.         case H.saving:
  2386.           return rt(rt({
  2387.           }, e), {
  2388.           }, {
  2389.             isSaving: !0,
  2390.             isSaved: !1,
  2391.             error: null
  2392.           });
  2393.         case H.onSave:
  2394.           return rt(rt({
  2395.           }, e), {
  2396.           }, {
  2397.             isSaving: !1,
  2398.             isSaved: !0
  2399.           });
  2400.         case H.onSaveError:
  2401.           return rt(rt({
  2402.           }, e), {
  2403.           }, {
  2404.             isFetching: !1,
  2405.             isSaving: !1,
  2406.             error: a.message || 'We couldn\'t save your behind a click settings. Try again.'
  2407.           });
  2408.         default:
  2409.           return e
  2410.       }
  2411.     }
  2412.     var st = {
  2413.       titleEnabled: !1,
  2414.       titleText: null,
  2415.       titleCSS: null,
  2416.       buttonText: null,
  2417.       buttonCSS: null,
  2418.       isFetching: !1,
  2419.       isSaving: !1,
  2420.       isSaved: !1,
  2421.       error: null
  2422.     },
  2423.     lt = n(30),
  2424.     ct = n.n(lt),
  2425.     ut = n(35),
  2426.     pt = n.n(ut),
  2427.     dt = '//'.concat(pt.a.disqusHost),
  2428.     mt = 'sites',
  2429.     ft = {
  2430.       global: 'global',
  2431.       organization: 'organization',
  2432.       forum: 'forum'
  2433.     },
  2434.     ht = b.a.shape({
  2435.       type: b.a.oneOf(je.a.values(ft)).isRequired,
  2436.       forum: b.a.object,
  2437.       organization: b.a.object,
  2438.       organizationForums: b.a.object
  2439.     }),
  2440.     gt = ct.a.unix('1420156799'),
  2441.     yt = [
  2442.       '7 days',
  2443.       '30 days'
  2444.     ];
  2445.     function bt(e, t) {
  2446.       if (null == e) return {
  2447.       };
  2448.       var n,
  2449.       a = function (e, t) {
  2450.         if (null == e) return {
  2451.         };
  2452.         var n,
  2453.         a,
  2454.         r = {
  2455.         },
  2456.         o = Object.keys(e);
  2457.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2458.         return r
  2459.       }(e, t);
  2460.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2461.       return a
  2462.     }
  2463.     function vt() {
  2464.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : _t,
  2465.       t = 1 < arguments.length ? arguments[1] : void 0,
  2466.       n = t.type,
  2467.       a = bt(t, [
  2468.         'type'
  2469.       ]);
  2470.       switch (n) {
  2471.         case G.onFetch:
  2472.           return a.selection.type === ft.forum ? {
  2473.             canParticipate: a.response.settings.adsEnabled
  2474.           }
  2475.            : a.selection.type === ft.organization ? {
  2476.             canParticipate: !a.response.action_id
  2477.           }
  2478.            : {
  2479.             canParticipate: !1
  2480.           };
  2481.         case G.onError:
  2482.           return {
  2483.             canParticipate: !1
  2484.           };
  2485.         default:
  2486.           return e
  2487.       }
  2488.     }
  2489.     var _t = {
  2490.       canParticipate: !1
  2491.     };
  2492.     function Et(t, e) {
  2493.       var n,
  2494.       a = Object.keys(t);
  2495.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2496.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2497.       })), a.push.apply(a, n)),
  2498.       a
  2499.     }
  2500.     function Ot(a) {
  2501.       for (var e = 1; e < arguments.length; e++) {
  2502.         var r = null != arguments[e] ? arguments[e] : {
  2503.         };
  2504.         e % 2 ? Et(Object(r), !0).forEach(function (e) {
  2505.           var t,
  2506.           n;
  2507.           n = r[t = e],
  2508.           t in (e = a) ? Object.defineProperty(e, t, {
  2509.             value: n,
  2510.             enumerable: !0,
  2511.             configurable: !0,
  2512.             writable: !0
  2513.           }) : e[t] = n
  2514.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Et(Object(r)).forEach(function (e) {
  2515.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2516.         })
  2517.       }
  2518.       return a
  2519.     }
  2520.     function St(e, t) {
  2521.       if (null == e) return {
  2522.       };
  2523.       var n,
  2524.       a = function (e, t) {
  2525.         if (null == e) return {
  2526.         };
  2527.         var n,
  2528.         a,
  2529.         r = {
  2530.         },
  2531.         o = Object.keys(e);
  2532.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2533.         return r
  2534.       }(e, t);
  2535.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2536.       return a
  2537.     }
  2538.     function wt() {
  2539.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Pt,
  2540.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  2541.       n = St(n, [
  2542.         'type'
  2543.       ]);
  2544.       return t !== V.onFetch ? e : Ot(Ot({
  2545.       }, e), {
  2546.       }, {
  2547.         commentCounts: n.response.comments_series
  2548.       })
  2549.     }
  2550.     var Pt = {
  2551.       commentCounts: null
  2552.     };
  2553.     function kt(t, e) {
  2554.       var n,
  2555.       a = Object.keys(t);
  2556.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2557.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2558.       })), a.push.apply(a, n)),
  2559.       a
  2560.     }
  2561.     function Nt(a) {
  2562.       for (var e = 1; e < arguments.length; e++) {
  2563.         var r = null != arguments[e] ? arguments[e] : {
  2564.         };
  2565.         e % 2 ? kt(Object(r), !0).forEach(function (e) {
  2566.           var t,
  2567.           n;
  2568.           n = r[t = e],
  2569.           t in (e = a) ? Object.defineProperty(e, t, {
  2570.             value: n,
  2571.             enumerable: !0,
  2572.             configurable: !0,
  2573.             writable: !0
  2574.           }) : e[t] = n
  2575.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : kt(Object(r)).forEach(function (e) {
  2576.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2577.         })
  2578.       }
  2579.       return a
  2580.     }
  2581.     function Ct(e, t) {
  2582.       if (null == e) return {
  2583.       };
  2584.       var n,
  2585.       a = function (e, t) {
  2586.         if (null == e) return {
  2587.         };
  2588.         var n,
  2589.         a,
  2590.         r = {
  2591.         },
  2592.         o = Object.keys(e);
  2593.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2594.         return r
  2595.       }(e, t);
  2596.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2597.       return a
  2598.     }
  2599.     function Rt() {
  2600.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : xt,
  2601.       t = 1 < arguments.length ? arguments[1] : void 0,
  2602.       n = t.type,
  2603.       a = Ct(t, [
  2604.         'type'
  2605.       ]);
  2606.       switch (n) {
  2607.         case W.fetchedCategories:
  2608.           return Nt(Nt({
  2609.           }, e), {
  2610.           }, {
  2611.             categories: a.categories,
  2612.             isFetchingThreads: !1
  2613.           });
  2614.         case W.fetchingDiscussions:
  2615.           return Nt(Nt({
  2616.           }, e), {
  2617.           }, {
  2618.             alert: null,
  2619.             isFetchingThreads: !0
  2620.           });
  2621.         case W.fetchedDiscussions:
  2622.           return Nt(Nt({
  2623.           }, e), {
  2624.           }, {
  2625.             cursor: a.cursor,
  2626.             hasNextPage: !(!a.cursor || !a.cursor.hasNext),
  2627.             isFetchingThreads: !1,
  2628.             threads: e.threads.concat(a.threads)
  2629.           });
  2630.         case W.resetDiscussions:
  2631.           return Nt(Nt({
  2632.           }, e), {
  2633.           }, {
  2634.             cursor: null,
  2635.             threads: [
  2636.             ],
  2637.             hasNextPage: !1
  2638.           });
  2639.         case W.onFetchError:
  2640.           return Nt(Nt({
  2641.           }, e), {
  2642.           }, {
  2643.             alert: {
  2644.               type: 'error',
  2645.               message: 'There was an error retrieving discussions for this site'
  2646.             },
  2647.             isFetchingThreads: !1
  2648.           });
  2649.         case W.updatedThread:
  2650.           return Nt(Nt({
  2651.           }, e), {
  2652.           }, {
  2653.             alert: {
  2654.               status: 'success',
  2655.               message: 'Saved'
  2656.             },
  2657.             threads: a.threads
  2658.           });
  2659.         case W.updateThreadError:
  2660.           return Nt(Nt({
  2661.           }, e), {
  2662.           }, {
  2663.             alert: {
  2664.               status: 'error',
  2665.               message: a.errorMessage
  2666.             }
  2667.           });
  2668.         case W.clearAlert:
  2669.           return Nt(Nt({
  2670.           }, e), {
  2671.           }, {
  2672.             alert: null
  2673.           });
  2674.         default:
  2675.           return e
  2676.       }
  2677.     }
  2678.     var xt = {
  2679.       alert: null,
  2680.       categories: [
  2681.       ],
  2682.       cursor: null,
  2683.       hasNextPage: !1,
  2684.       isFetchingThreads: !1,
  2685.       numPerPage: 20,
  2686.       threads: [
  2687.       ]
  2688.     };
  2689.     function At(t, e) {
  2690.       var n,
  2691.       a = Object.keys(t);
  2692.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2693.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2694.       })), a.push.apply(a, n)),
  2695.       a
  2696.     }
  2697.     function Dt(a) {
  2698.       for (var e = 1; e < arguments.length; e++) {
  2699.         var r = null != arguments[e] ? arguments[e] : {
  2700.         };
  2701.         e % 2 ? At(Object(r), !0).forEach(function (e) {
  2702.           var t,
  2703.           n;
  2704.           n = r[t = e],
  2705.           t in (e = a) ? Object.defineProperty(e, t, {
  2706.             value: n,
  2707.             enumerable: !0,
  2708.             configurable: !0,
  2709.             writable: !0
  2710.           }) : e[t] = n
  2711.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : At(Object(r)).forEach(function (e) {
  2712.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2713.         })
  2714.       }
  2715.       return a
  2716.     }
  2717.     function jt(e, t) {
  2718.       if (null == e) return {
  2719.       };
  2720.       var n,
  2721.       a = function (e, t) {
  2722.         if (null == e) return {
  2723.         };
  2724.         var n,
  2725.         a,
  2726.         r = {
  2727.         },
  2728.         o = Object.keys(e);
  2729.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2730.         return r
  2731.       }(e, t);
  2732.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2733.       return a
  2734.     }
  2735.     function Tt() {
  2736.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : It,
  2737.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  2738.       n = jt(n, [
  2739.         'type'
  2740.       ]);
  2741.       return t !== Y.onFetch ? e : Dt(Dt({
  2742.       }, e), {
  2743.       }, {
  2744.         earnings: n.results
  2745.       })
  2746.     }
  2747.     var It = {
  2748.       earnings: null
  2749.     };
  2750.     function qt(t, e) {
  2751.       var n,
  2752.       a = Object.keys(t);
  2753.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2754.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2755.       })), a.push.apply(a, n)),
  2756.       a
  2757.     }
  2758.     function Ft(a) {
  2759.       for (var e = 1; e < arguments.length; e++) {
  2760.         var r = null != arguments[e] ? arguments[e] : {
  2761.         };
  2762.         e % 2 ? qt(Object(r), !0).forEach(function (e) {
  2763.           var t,
  2764.           n;
  2765.           n = r[t = e],
  2766.           t in (e = a) ? Object.defineProperty(e, t, {
  2767.             value: n,
  2768.             enumerable: !0,
  2769.             configurable: !0,
  2770.             writable: !0
  2771.           }) : e[t] = n
  2772.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : qt(Object(r)).forEach(function (e) {
  2773.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2774.         })
  2775.       }
  2776.       return a
  2777.     }
  2778.     function Lt(e, t) {
  2779.       if (null == e) return {
  2780.       };
  2781.       var n,
  2782.       a = function (e, t) {
  2783.         if (null == e) return {
  2784.         };
  2785.         var n,
  2786.         a,
  2787.         r = {
  2788.         },
  2789.         o = Object.keys(e);
  2790.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2791.         return r
  2792.       }(e, t);
  2793.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2794.       return a
  2795.     }
  2796.     function Ut() {
  2797.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Mt,
  2798.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  2799.       n = Lt(n, [
  2800.         'type'
  2801.       ]);
  2802.       return t !== Q.onFetchViewStatus ? e : Ft(Ft({
  2803.       }, e), {
  2804.       }, {
  2805.         userHasViewedMessages: Ft(Ft({
  2806.         }, e.viewStatuses), n.response),
  2807.         isFetched: !0
  2808.       })
  2809.     }
  2810.     var Mt = {
  2811.       userHasViewedMessages: {
  2812.       },
  2813.       isFetched: !1
  2814.     };
  2815.     function Bt(e, t) {
  2816.       if (null == e) return {
  2817.       };
  2818.       var n,
  2819.       a = function (e, t) {
  2820.         if (null == e) return {
  2821.         };
  2822.         var n,
  2823.         a,
  2824.         r = {
  2825.         },
  2826.         o = Object.keys(e);
  2827.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2828.         return r
  2829.       }(e, t);
  2830.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2831.       return a
  2832.     }
  2833.     function zt() {
  2834.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Ht,
  2835.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  2836.       n = Bt(n, [
  2837.         'type'
  2838.       ]);
  2839.       return t !== K.onFetch ? e : {
  2840.         allCategories: n.response
  2841.       }
  2842.     }
  2843.     var Ht = {
  2844.       allCategories: [
  2845.       ]
  2846.     };
  2847.     function Gt(t, e) {
  2848.       var n,
  2849.       a = Object.keys(t);
  2850.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2851.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2852.       })), a.push.apply(a, n)),
  2853.       a
  2854.     }
  2855.     function Vt(a) {
  2856.       for (var e = 1; e < arguments.length; e++) {
  2857.         var r = null != arguments[e] ? arguments[e] : {
  2858.         };
  2859.         e % 2 ? Gt(Object(r), !0).forEach(function (e) {
  2860.           var t,
  2861.           n;
  2862.           n = r[t = e],
  2863.           t in (e = a) ? Object.defineProperty(e, t, {
  2864.             value: n,
  2865.             enumerable: !0,
  2866.             configurable: !0,
  2867.             writable: !0
  2868.           }) : e[t] = n
  2869.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Gt(Object(r)).forEach(function (e) {
  2870.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2871.         })
  2872.       }
  2873.       return a
  2874.     }
  2875.     function Wt(e, t) {
  2876.       if (null == e) return {
  2877.       };
  2878.       var n,
  2879.       a = function (e, t) {
  2880.         if (null == e) return {
  2881.         };
  2882.         var n,
  2883.         a,
  2884.         r = {
  2885.         },
  2886.         o = Object.keys(e);
  2887.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2888.         return r
  2889.       }(e, t);
  2890.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2891.       return a
  2892.     }
  2893.     function Yt() {
  2894.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Qt,
  2895.       t = 1 < arguments.length ? arguments[1] : void 0,
  2896.       n = t.type,
  2897.       a = Wt(t, [
  2898.         'type'
  2899.       ]);
  2900.       switch (n) {
  2901.         case J.fetching:
  2902.           return Vt(Vt({
  2903.           }, e), {
  2904.           }, {
  2905.             forumDetailsError: null,
  2906.             forumDetailsIsFetching: !0
  2907.           });
  2908.         case J.onFetch:
  2909.           return Vt(Vt({
  2910.           }, e), {
  2911.           }, {
  2912.             forumDetails: a.forumDetails,
  2913.             forumDetailsError: null,
  2914.             forumDetailsIsFetching: !1
  2915.           });
  2916.         case J.onError:
  2917.           return Vt(Vt({
  2918.           }, e), {
  2919.           }, {
  2920.             forumDetailsError: 'There was an error retrieving details for this site',
  2921.             forumDetailsIsFetching: !1
  2922.           });
  2923.         case J.onUpdate:
  2924.           return Vt(Vt({
  2925.           }, e), {
  2926.           }, {
  2927.             forumDetails: Vt(Vt({
  2928.             }, e.forumDetails), a.forumDetails)
  2929.           });
  2930.         default:
  2931.           return e
  2932.       }
  2933.     }
  2934.     var Qt = {
  2935.       forumDetails: null,
  2936.       forumDetailsError: null,
  2937.       forumDetailsIsFetching: !1
  2938.     };
  2939.     function Kt(e, t) {
  2940.       if (null == e) return {
  2941.       };
  2942.       var n,
  2943.       a = function (e, t) {
  2944.         if (null == e) return {
  2945.         };
  2946.         var n,
  2947.         a,
  2948.         r = {
  2949.         },
  2950.         o = Object.keys(e);
  2951.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  2952.         return r
  2953.       }(e, t);
  2954.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  2955.       return a
  2956.     }
  2957.     function Jt() {
  2958.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : $t,
  2959.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  2960.       n = Kt(n, [
  2961.         'type'
  2962.       ]);
  2963.       return t !== $.onFetch ? e : {
  2964.         languages: n.response
  2965.       }
  2966.     }
  2967.     var $t = {
  2968.       languages: [
  2969.       ]
  2970.     };
  2971.     function Zt(t, e) {
  2972.       var n,
  2973.       a = Object.keys(t);
  2974.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  2975.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  2976.       })), a.push.apply(a, n)),
  2977.       a
  2978.     }
  2979.     function Xt(a) {
  2980.       for (var e = 1; e < arguments.length; e++) {
  2981.         var r = null != arguments[e] ? arguments[e] : {
  2982.         };
  2983.         e % 2 ? Zt(Object(r), !0).forEach(function (e) {
  2984.           var t,
  2985.           n;
  2986.           n = r[t = e],
  2987.           t in (e = a) ? Object.defineProperty(e, t, {
  2988.             value: n,
  2989.             enumerable: !0,
  2990.             configurable: !0,
  2991.             writable: !0
  2992.           }) : e[t] = n
  2993.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Zt(Object(r)).forEach(function (e) {
  2994.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  2995.         })
  2996.       }
  2997.       return a
  2998.     }
  2999.     function en(e, t) {
  3000.       if (null == e) return {
  3001.       };
  3002.       var n,
  3003.       a = function (e, t) {
  3004.         if (null == e) return {
  3005.         };
  3006.         var n,
  3007.         a,
  3008.         r = {
  3009.         },
  3010.         o = Object.keys(e);
  3011.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3012.         return r
  3013.       }(e, t);
  3014.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3015.       return a
  3016.     }
  3017.     function tn() {
  3018.       return (tn = Object.assign || function (e) {
  3019.         for (var t = 1; t < arguments.length; t++) {
  3020.           var n,
  3021.           a = arguments[t];
  3022.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  3023.         }
  3024.         return e
  3025.       }).apply(this, arguments)
  3026.     }
  3027.     function nn(e) {
  3028.       var t;
  3029.       try {
  3030.         ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'user\': User matching query does not exist') && (t = 'No user found with this username.')
  3031.       } catch (e) {
  3032.         t = 'There was an unknown error.'
  3033.       }
  3034.       return t
  3035.     }
  3036.     function an(e, t) {
  3037.       return e.map(function (e) {
  3038.         return e.user.username === t.username ? tn({
  3039.         }, e, t.permissions) : e
  3040.       })
  3041.     }
  3042.     function rn() {
  3043.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : on,
  3044.       t = 1 < arguments.length ? arguments[1] : void 0,
  3045.       n = t.type,
  3046.       a = en(t, [
  3047.         'type'
  3048.       ]);
  3049.       switch (n) {
  3050.         case Z.fetching:
  3051.           return Xt(Xt({
  3052.           }, e), {
  3053.           }, {
  3054.             isFetching: !0,
  3055.             fetchError: null
  3056.           });
  3057.         case Z.onFetch:
  3058.           return Xt(Xt({
  3059.           }, e), {
  3060.           }, {
  3061.             forumModeratorList: a.moderatorList.filter(function (e) {
  3062.               return 'None' !== e.id
  3063.             }),
  3064.             isFetching: !1,
  3065.             fetchError: null
  3066.           });
  3067.         case Z.onFetchError:
  3068.           return Xt(Xt({
  3069.           }, e), {
  3070.           }, {
  3071.             isFetching: !1,
  3072.             fetchError: nn(a)
  3073.           });
  3074.         case Z.saving:
  3075.           return Xt(Xt({
  3076.           }, e), {
  3077.           }, {
  3078.             isSaving: !0,
  3079.             saveError: null
  3080.           });
  3081.         case Z.onSave:
  3082.           return Xt(Xt({
  3083.           }, e), {
  3084.           }, {
  3085.             isSaving: !1,
  3086.             saveError: null
  3087.           });
  3088.         case Z.onSaveError:
  3089.           return Xt(Xt({
  3090.           }, e), {
  3091.           }, {
  3092.             isSaving: !1,
  3093.             saveError: nn(a)
  3094.           });
  3095.         case Z.updating:
  3096.           return Xt(Xt({
  3097.           }, e), {
  3098.           }, {
  3099.             forumModeratorList: an(e.forumModeratorList, a),
  3100.             isUpdating: !0,
  3101.             updateError: null
  3102.           });
  3103.         case Z.onUpdate:
  3104.           return Xt(Xt({
  3105.           }, e), {
  3106.           }, {
  3107.             forumModeratorList: an(e.forumModeratorList, a),
  3108.             isUpdating: !1,
  3109.             updateError: null
  3110.           });
  3111.         case Z.onUpdateError:
  3112.           return Xt(Xt({
  3113.           }, e), {
  3114.           }, {
  3115.             forumModeratorList: an(e.forumModeratorList, a),
  3116.             isUpdating: !1,
  3117.             updateError: nn(a)
  3118.           });
  3119.         default:
  3120.           return e
  3121.       }
  3122.     }
  3123.     var on = {
  3124.       forumModeratorList: [
  3125.       ],
  3126.       isFetching: !1,
  3127.       fetchError: null,
  3128.       isSaving: !1,
  3129.       saveError: null,
  3130.       isUpdating: !1,
  3131.       updateError: null
  3132.     };
  3133.     function sn(t, e) {
  3134.       var n,
  3135.       a = Object.keys(t);
  3136.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3137.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3138.       })), a.push.apply(a, n)),
  3139.       a
  3140.     }
  3141.     function ln(a) {
  3142.       for (var e = 1; e < arguments.length; e++) {
  3143.         var r = null != arguments[e] ? arguments[e] : {
  3144.         };
  3145.         e % 2 ? sn(Object(r), !0).forEach(function (e) {
  3146.           var t,
  3147.           n;
  3148.           n = r[t = e],
  3149.           t in (e = a) ? Object.defineProperty(e, t, {
  3150.             value: n,
  3151.             enumerable: !0,
  3152.             configurable: !0,
  3153.             writable: !0
  3154.           }) : e[t] = n
  3155.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : sn(Object(r)).forEach(function (e) {
  3156.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  3157.         })
  3158.       }
  3159.       return a
  3160.     }
  3161.     function cn(e, t) {
  3162.       if (null == e) return {
  3163.       };
  3164.       var n,
  3165.       a = function (e, t) {
  3166.         if (null == e) return {
  3167.         };
  3168.         var n,
  3169.         a,
  3170.         r = {
  3171.         },
  3172.         o = Object.keys(e);
  3173.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3174.         return r
  3175.       }(e, t);
  3176.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3177.       return a
  3178.     }
  3179.     function un() {
  3180.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : pn,
  3181.       t = 1 < arguments.length ? arguments[1] : void 0,
  3182.       n = t.type,
  3183.       a = cn(t, [
  3184.         'type'
  3185.       ]);
  3186.       switch (n) {
  3187.         case ee.validateImageFile:
  3188.           return ln(ln({
  3189.           }, e), {
  3190.           }, {
  3191.             error: a.isValidImageFile ? null : 'Please choose a valid image file.  You may choose .jpg/.jpeg, .png, .gif, and .bmp files.'
  3192.           });
  3193.         case ee.isSaving:
  3194.           return ln(ln({
  3195.           }, e), {
  3196.           }, {
  3197.             isSaving: !0
  3198.           });
  3199.         case ee.dismissError:
  3200.           return ln(ln({
  3201.           }, e), {
  3202.           }, {
  3203.             error: null
  3204.           });
  3205.         case ee.onSave:
  3206.           return ln(ln({
  3207.           }, e), {
  3208.           }, {
  3209.             forumFaviconNewUrl: ''.concat(a.data.response, '#').concat((new Date).getTime()),
  3210.             isSaving: !1
  3211.           });
  3212.         case ee.onError:
  3213.           return ln(ln({
  3214.           }, e), {
  3215.           }, {
  3216.             error: a.error,
  3217.             isSaving: !1
  3218.           });
  3219.         case ee.setApiCall:
  3220.           return ln(ln({
  3221.           }, e), {
  3222.           }, {
  3223.             apiCall: a.apiCall
  3224.           });
  3225.         default:
  3226.           return e
  3227.       }
  3228.     }
  3229.     var pn = {
  3230.       apiCall: null,
  3231.       error: null,
  3232.       isSaving: !1,
  3233.       forumFaviconNewUrl: null
  3234.     };
  3235.     function dn(t, e) {
  3236.       var n,
  3237.       a = Object.keys(t);
  3238.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3239.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3240.       })), a.push.apply(a, n)),
  3241.       a
  3242.     }
  3243.     function mn(t) {
  3244.       for (var e = 1; e < arguments.length; e++) {
  3245.         var n = null != arguments[e] ? arguments[e] : {
  3246.         };
  3247.         e % 2 ? dn(Object(n), !0).forEach(function (e) {
  3248.           fn(t, e, n[e])
  3249.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : dn(Object(n)).forEach(function (e) {
  3250.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  3251.         })
  3252.       }
  3253.       return t
  3254.     }
  3255.     function fn(e, t, n) {
  3256.       return t in e ? Object.defineProperty(e, t, {
  3257.         value: n,
  3258.         enumerable: !0,
  3259.         configurable: !0,
  3260.         writable: !0
  3261.       }) : e[t] = n,
  3262.       e
  3263.     }
  3264.     function hn(e, t) {
  3265.       if (null == e) return {
  3266.       };
  3267.       var n,
  3268.       a = function (e, t) {
  3269.         if (null == e) return {
  3270.         };
  3271.         var n,
  3272.         a,
  3273.         r = {
  3274.         },
  3275.         o = Object.keys(e);
  3276.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3277.         return r
  3278.       }(e, t);
  3279.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3280.       return a
  3281.     }
  3282.     function gn() {
  3283.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : yn,
  3284.       t = 1 < arguments.length ? arguments[1] : void 0,
  3285.       n = t.type,
  3286.       a = hn(t, [
  3287.         'type'
  3288.       ]);
  3289.       switch (n) {
  3290.         case te.fetching:
  3291.           return mn(mn({
  3292.           }, e), {
  3293.           }, {
  3294.             isFetching: !0,
  3295.             fetchError: null
  3296.           });
  3297.         case te.onFetch:
  3298.           return mn(mn({
  3299.           }, e), {
  3300.           }, {
  3301.             subscriptionList: a.subscriptionList,
  3302.             isFetching: !1,
  3303.             fetchError: null
  3304.           });
  3305.         case te.onFetchError:
  3306.           return mn(mn({
  3307.           }, e), {
  3308.           }, {
  3309.             fetchError: a.message,
  3310.             isFetching: !1
  3311.           });
  3312.         case te.saving:
  3313.           return mn(mn({
  3314.           }, e), {
  3315.           }, {
  3316.             isSaving: !0,
  3317.             isSaved: !1,
  3318.             saveError: null
  3319.           });
  3320.         case te.onSave:
  3321.           return mn(mn({
  3322.           }, e), {
  3323.           }, {
  3324.             isSaving: !1,
  3325.             isSaved: !0,
  3326.             changedInputs: {
  3327.             },
  3328.             selectedSubscription: mn(mn({
  3329.             }, e.selectedSubscription), a.savedSubscription),
  3330.             subscriptionList: e.subscriptionList.map(function (e) {
  3331.               return e.id === a.savedSubscription.id ? mn(mn({
  3332.               }, e), a.savedSubscription) : e
  3333.             })
  3334.           });
  3335.         case te.onSaveError:
  3336.           return mn(mn({
  3337.           }, e), {
  3338.           }, {
  3339.             saveError: a.message,
  3340.             isSaving: !1,
  3341.             isSaved: !1
  3342.           });
  3343.         case te.selectSubscription:
  3344.           return mn(mn({
  3345.           }, e), {
  3346.           }, {
  3347.             selectedSubscription: a.subscription,
  3348.             changedInputs: a.subscription ? e.changedInputs : {
  3349.             },
  3350.             isSaved: !!a.subscription && e.isSaved,
  3351.             saveError: a.subscription ? e.saveError : null
  3352.           });
  3353.         case te.updateInput:
  3354.           return mn(mn({
  3355.           }, e), {
  3356.           }, {
  3357.             selectedSubscription: mn(mn({
  3358.             }, e.selectedSubscription), {
  3359.             }, fn({
  3360.             }, a.name, 'checkbox' === a.evt.target.type ? a.evt.target.checked : a.evt.target.value)),
  3361.             changedInputs: mn(mn({
  3362.             }, e.changedInputs), {
  3363.             }, fn({
  3364.             }, a.name, !0))
  3365.           });
  3366.         default:
  3367.           return e
  3368.       }
  3369.     }
  3370.     var yn = {
  3371.       isFetching: !1,
  3372.       changedInputs: {
  3373.       }
  3374.     };
  3375.     function bn(t, e) {
  3376.       var n,
  3377.       a = Object.keys(t);
  3378.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3379.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3380.       })), a.push.apply(a, n)),
  3381.       a
  3382.     }
  3383.     function vn(a) {
  3384.       for (var e = 1; e < arguments.length; e++) {
  3385.         var r = null != arguments[e] ? arguments[e] : {
  3386.         };
  3387.         e % 2 ? bn(Object(r), !0).forEach(function (e) {
  3388.           var t,
  3389.           n;
  3390.           n = r[t = e],
  3391.           t in (e = a) ? Object.defineProperty(e, t, {
  3392.             value: n,
  3393.             enumerable: !0,
  3394.             configurable: !0,
  3395.             writable: !0
  3396.           }) : e[t] = n
  3397.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : bn(Object(r)).forEach(function (e) {
  3398.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  3399.         })
  3400.       }
  3401.       return a
  3402.     }
  3403.     function _n(e, t) {
  3404.       if (null == e) return {
  3405.       };
  3406.       var n,
  3407.       a = function (e, t) {
  3408.         if (null == e) return {
  3409.         };
  3410.         var n,
  3411.         a,
  3412.         r = {
  3413.         },
  3414.         o = Object.keys(e);
  3415.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3416.         return r
  3417.       }(e, t);
  3418.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3419.       return a
  3420.     }
  3421.     function En() {
  3422.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : On,
  3423.       t = 1 < arguments.length ? arguments[1] : void 0,
  3424.       n = t.type,
  3425.       a = _n(t, [
  3426.         'type'
  3427.       ]);
  3428.       switch (n) {
  3429.         case ne.update:
  3430.           return vn(vn({
  3431.           }, e), {
  3432.           }, {
  3433.             localSearchQuery: a.search
  3434.           });
  3435.         case ne.changeActive:
  3436.           return vn(vn({
  3437.           }, e), {
  3438.           }, {
  3439.             isActive: a.isActive
  3440.           });
  3441.         default:
  3442.           return e
  3443.       }
  3444.     }
  3445.     var On = {
  3446.       localSearchQuery: '',
  3447.       isActive: !1
  3448.     },
  3449.     Sn = 'https://disqus.com/support/',
  3450.     wn = 'https://help.disqus.com/customer/',
  3451.     Pn = {
  3452.       adminArticles: ''.concat(wn, 'portal/articles/545277-disqus-appearance-tweaks'),
  3453.       adminRoles: ''.concat(wn, 'portal/articles/2354460-admin-roles-and-permissions'),
  3454.       adsTxt: '//c.disquscdn.com/next/current/publisher-admin/assets/docs/ads.txt',
  3455.       adTraining: ''.concat(wn, 'portal/articles/1657951-ad-training-settings'),
  3456.       audienceAnalytics: ''.concat(wn, 'portal/articles/2717193-disqus-pro-analytics#audience-analytics'),
  3457.       badges: 'https://help.disqus.com/articles/5445956-badges',
  3458.       badgesImageCollection: 'https://s3.amazonaws.com/media.disqus.net/uploads/badges/badges-library_optimized.zip',
  3459.       basicDisqusRules: ''.concat(wn, 'portal/articles/1753105-basic-rules-for-disqus'),
  3460.       bloggerManualInstall: ''.concat(wn, 'portal/articles/888340'),
  3461.       bloggerIEFix: ''.concat(wn, 'portal/articles/1189621'),
  3462.       changePrimaryMod: ''.concat(wn, 'portal/articles/654999'),
  3463.       commentCountLinks: ''.concat(wn, 'portal/articles/565624'),
  3464.       commentPolicySuggestions: 'https://blog.disqus.com/how-to-create-an-effective-comment-policy-that-readers-actually-follow',
  3465.       contactSupport: Sn,
  3466.       developer: ''.concat(wn, 'portal/topics/107054-developers/articles'),
  3467.       discussionsEdit: ''.concat(wn, 'portal/articles/1141248'),
  3468.       emailSubscriptionPrompt: ''.concat(wn, 'portal/articles/2901101'),
  3469.       flagging: ''.concat(wn, 'portal/articles/466224'),
  3470.       githubDisqusReact: 'https://github.com/disqus/disqus-react',
  3471.       iabDisplay: ''.concat(wn, 'portal/articles/1969476#iab-display'),
  3472.       modArticles: ''.concat(wn, 'en/portal/articles/2308273-how-to-add-admins-and-moderators-to-your-organization#adding-moderators'),
  3473.       moderationRules: ''.concat(wn, 'en/portal/articles/2918046'),
  3474.       nsfwContent: ''.concat(wn, 'en/portal/articles/2285755-inappropriate-profile-content'),
  3475.       organicDiscovery: ''.concat(wn, 'en/portal/articles/1370221-discovery'),
  3476.       payments: ''.concat(wn, 'portal/articles/1208081'),
  3477.       pageIdentifiers: ''.concat(wn, 'portal/articles/472098-javascript-configuration-variables#thispageidentifier'),
  3478.       pricingAndPlans: ''.concat(wn, 'portal/articles/2759918-disqus-pricing-and-plans'),
  3479.       profileAvatar: 'http://disqus.com/profile/avatar/',
  3480.       reactionsAnalytics: 'https://help.disqus.com/en/articles/1717089-disqus-basic-analytics#h_cb7cf4d8d5',
  3481.       recommendations: 'https://help.disqus.com/en/articles/3517730-recommendations',
  3482.       standaloneRecommendations: 'https://help.disqus.com/en/articles/3517730-recommendations#standalone-recommendations',
  3483.       restrictedWordsHelp: ''.concat(wn, 'portal/articles/466238#restricted-words'),
  3484.       reveal: 'https://disqus.com/features/monetize',
  3485.       revealContact: 'https://help.disqus.com/en/articles/3787995',
  3486.       revealDeactivationContact: ''.concat(Sn, '?article=contact_dashub'),
  3487.       revealEligibility: ''.concat(wn, 'en/portal/articles/2238701-reveal-eligibility-criteria'),
  3488.       revealFAQ: ''.concat(wn, 'portal/articles/2069645'),
  3489.       sampleBadwords: '//c.disquscdn.com/next/current/publisher-admin/assets/docs/sample-badwords.txt',
  3490.       sponsoredLinks: ''.concat(wn, 'portal/articles/1969476#sponsored-links'),
  3491.       sponsoredStory: ''.concat(wn, 'portal/articles/1969476#sponsored-story'),
  3492.       sponsoredVideo: ''.concat(wn, 'portal/articles/1969476#sponsored-video'),
  3493.       splitThreads: ''.concat(wn, 'en/portal/articles/2158629'),
  3494.       suggestedActions: ''.concat(wn, 'portal/articles/2880487'),
  3495.       toxicModFilter: ''.concat(wn, 'portal/articles/2865852-toxic-mod-filter'),
  3496.       translate: 'https://disqus.com/translate/',
  3497.       tumblrManualInstall: ''.concat(wn, 'portal/articles/758168'),
  3498.       jimdoHelp: 'http://support.jimdo.com/basics/working-with-elements/widget-html/',
  3499.       typePadHelp: 'http://help.typepad.com/disqus.html',
  3500.       userReputation: ''.concat(wn, 'portal/articles/466247-user-reputation'),
  3501.       verifyAccount: ''.concat(wn, 'en/portal/articles/960202-verifying-your-disqus-account'),
  3502.       webhooks: ''.concat(wn, 'en/portal/articles/2818810'),
  3503.       wordPressCom: ''.concat(wn, 'en/portal/articles/663013'),
  3504.       yamlFrontMatter: 'http://jekyllrb.com/docs/frontmatter/'
  3505.     };
  3506.     function kn(e) {
  3507.       return function (e) {
  3508.         if (Array.isArray(e)) return Nn(e)
  3509.       }(e) || function (e) {
  3510.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  3511.       }(e) || function (e, t) {
  3512.         if (e) {
  3513.           if ('string' == typeof e) return Nn(e, t);
  3514.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  3515.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Nn(e, t) : void 0
  3516.         }
  3517.       }(e) || function () {
  3518.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  3519.       }()
  3520.     }
  3521.     function Nn(e, t) {
  3522.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  3523.       return a
  3524.     }
  3525.     function Cn(t, e) {
  3526.       var n,
  3527.       a = Object.keys(t);
  3528.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3529.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3530.       })), a.push.apply(a, n)),
  3531.       a
  3532.     }
  3533.     function Rn(t) {
  3534.       for (var e = 1; e < arguments.length; e++) {
  3535.         var n = null != arguments[e] ? arguments[e] : {
  3536.         };
  3537.         e % 2 ? Cn(Object(n), !0).forEach(function (e) {
  3538.           xn(t, e, n[e])
  3539.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Cn(Object(n)).forEach(function (e) {
  3540.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  3541.         })
  3542.       }
  3543.       return t
  3544.     }
  3545.     function xn(e, t, n) {
  3546.       return t in e ? Object.defineProperty(e, t, {
  3547.         value: n,
  3548.         enumerable: !0,
  3549.         configurable: !0,
  3550.         writable: !0
  3551.       }) : e[t] = n,
  3552.       e
  3553.     }
  3554.     function An(e) {
  3555.       return e.stopPropagation()
  3556.     }
  3557.     var Dn = {
  3558.       user: {
  3559.         authorLowRep: {
  3560.           title: 'has Low Rep',
  3561.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'has Low Rep'), ' filter will target comments made by users that have a low reputation on the Disqus network. Reputation is platform-wide across the entire Disqus network and a user\'s reputation is the same across all Disqus-powered sites. Read more about reputation ', C.a.createElement('a', {
  3562.             onClick: An,
  3563.             href: Pn.userReputation
  3564.           }, 'here'), '.'),
  3565.           moderationFilter: {
  3566.             id: 'hasLowRep',
  3567.             name: 'Low Rep'
  3568.           },
  3569.           requiresFeature: !0
  3570.         },
  3571.         authorRecentlyFlagged: {
  3572.           title: 'Profile Reported at Least 5 Times',
  3573.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'Profile Reported at Least 5 Times'), ' filter will target comments made by users that have been reported 5 times or more by other users in the past 30 days. The user can be flagged for harassment, spam, an inappropriate profile, posting threatening content, impersonation, or posting private information of others. Read more about user flagging ', C.a.createElement('a', {
  3574.             onClick: An,
  3575.             href: Pn.basicDisqusRules
  3576.           }, 'here'), '.'),
  3577.           requiresFeature: !0
  3578.         }
  3579.       },
  3580.       comment: {
  3581.         postContainsRestrictedWord: {
  3582.           title: 'has Restricted word',
  3583.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'has Restricted Word'), ' filter will target comments that match a word you’ve specified in your ', C.a.createElement(v.Link, {
  3584.             onClick: An,
  3585.             to: '/settings/access/'
  3586.           }, 'restricted word list'), '. Read more about restricted words ', C.a.createElement('a', {
  3587.             onClick: An,
  3588.             href: Pn.restrictedWordsHelp
  3589.           }, 'here'), '.'),
  3590.           moderationFilter: {
  3591.             id: 'hasBadWords',
  3592.             name: 'Restricted Word'
  3593.           },
  3594.           requiresFeature: !1
  3595.         },
  3596.         postIsToxic: {
  3597.           title: 'is Toxic',
  3598.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'is Toxic'), ' filter will target comments that may cause reasonable readers to avoid participating in discussions. We’ve partnered with ', C.a.createElement('a', {
  3599.             onClick: An,
  3600.             href: Pn.toxicModFilter
  3601.           }, 'Google’s Perspective'), ' to leverage the power of machine learning to more quickly identify and isolate these types of comments. Read more about the toxic filter ', C.a.createElement('a', {
  3602.             onClick: An,
  3603.             href: 'https://www.perspectiveapi.com/'
  3604.           }, 'here'), '.'),
  3605.           moderationFilter: {
  3606.             id: 'isToxic',
  3607.             name: 'Toxic'
  3608.           },
  3609.           requiresFeature: !1
  3610.         },
  3611.         postIsSexual: {
  3612.           title: 'is Sexual',
  3613.           description: C.a.createElement('span', null, C.a.createElement('b', null, 'Explicit'), ': Intercourse, masturbation, porn, sex toys and genitalia', C.a.createElement('br', null), C.a.createElement('b', null, 'Intent & nudity'), ': Sexual intent, nudity and lingerie', C.a.createElement('br', null), C.a.createElement('b', null, 'Statements'), ': Informational statements that are sexual in nature, affectionate activities (kissing, hugging, etc.), flirting, pet names, relationship status, sexual insults and rejecting sexual advances'),
  3614.           moderationFilter: {
  3615.             id: 'isSexual',
  3616.             name: 'Sexual'
  3617.           },
  3618.           requiresFeature: !0
  3619.         },
  3620.         postIsHate: {
  3621.           title: 'is Hate',
  3622.           description: C.a.createElement('span', null, C.a.createElement('b', null, 'Hate Speech'), ': Slurs, hate speech, promotion of hateful ideology', C.a.createElement('br', null), C.a.createElement('b', null, 'Slurs'), ': Negative stereotypes or jokes, degrading comments, denouncing slurs, challenging a protected group\'s morality or identity, violence against religion', C.a.createElement('br', null), C.a.createElement('b', null, 'Informational'), ': Positive stereotypes, informational statements, reclaimed slurs, references to hateful ideology, immorality of protected group\'s rights'),
  3623.           moderationFilter: {
  3624.             id: 'isHate',
  3625.             name: 'Hate'
  3626.           },
  3627.           requiresFeature: !0
  3628.         },
  3629.         postIsViolence: {
  3630.           title: 'is Violence',
  3631.           description: C.a.createElement('span', null, C.a.createElement('b', null, 'Intimidation'), ': Serious and realistic threats, mentions of past violence', C.a.createElement('br', null), C.a.createElement('b', null, 'Instigation'), ': Calls for violence, destruction of property, calls for military action, calls for the death penalty outside a legal setting, mentions of self-harm/suicide', C.a.createElement('br', null), C.a.createElement('b', null, 'Description'), ': Denouncing acts of violence, soft threats (kicking, punching, etc.), violence against non-human subjects, descriptions of violence, gun usage, abortion, self-defense, calls for capital punishment in a legal setting, destruction of small personal belongings, violent jokes'),
  3632.           moderationFilter: {
  3633.             id: 'isViolence',
  3634.             name: 'Violence'
  3635.           },
  3636.           requiresFeature: !0
  3637.         },
  3638.         postIsBullying: {
  3639.           title: 'is Bullying',
  3640.           description: C.a.createElement('span', null, C.a.createElement('b', null, 'Brutalizing'), ': Slurs or profane descriptors toward specific individuals, encouraging suicide or severe self-harm, severe violent threats toward specific individuals', C.a.createElement('br', null), C.a.createElement('b', null, 'Profane'), ': Non-profane insults toward specific individuals, encouraging non-severe self-harm, non-severe violent threats toward specific individuals, silencing or exclusion', C.a.createElement('br', null), C.a.createElement('b', null, 'Insults'), ': Profanity in a non-bullying context, playful teasing, self-deprecation, reclaimed slurs, degrading a person\'s belongings, bullying toward organizations, denouncing bullying'),
  3641.           moderationFilter: {
  3642.             id: 'isBullying',
  3643.             name: 'Bullying'
  3644.           },
  3645.           requiresFeature: !0
  3646.         },
  3647.         postIsPromotion: {
  3648.           title: 'is Promotion',
  3649.           description: C.a.createElement('span', null, C.a.createElement('b', null, 'Promotion'), ': Asking for likes/follows/shares, advertising monthly newsletters/special promotions, asking for donations/payments, advertising products, selling pornography, giveaways'),
  3650.           moderationFilter: {
  3651.             id: 'isPromotion',
  3652.             name: 'Promotion'
  3653.           },
  3654.           requiresFeature: !0
  3655.         },
  3656.         postContainsLink: {
  3657.           title: 'Contains link',
  3658.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'Contains Link'), ' filter will target any comments that contain a link.'),
  3659.           moderationFilter: {
  3660.             id: 'hasLinks',
  3661.             name: 'Contains Link'
  3662.           },
  3663.           requiresFeature: !0
  3664.         },
  3665.         postHasMedia: {
  3666.           title: 'Contains media',
  3667.           description: C.a.createElement('span', null, 'The ', C.a.createElement('strong', null, 'Contains Media'), ' filter will target any comments that contain a media.'),
  3668.           moderationFilter: {
  3669.             id: 'hasMedia',
  3670.             name: 'Contains Media'
  3671.           },
  3672.           requiresFeature: !0
  3673.         }
  3674.       }
  3675.     },
  3676.     jn = {
  3677.       approve: {
  3678.         past: 'Approved'
  3679.       },
  3680.       pending: {
  3681.         present: 'Send to Pending',
  3682.         past: 'Pending'
  3683.       },
  3684.       delete : {
  3685.         present: 'Delete',
  3686.         past: 'Deleted'
  3687.       },
  3688.       spam: {
  3689.         present: 'Mark as Spam',
  3690.         past: 'Marked as Spam'
  3691.       }
  3692.     },
  3693.     Tn = Object.keys(Dn),
  3694.     In = Tn.reduce(function (e, n) {
  3695.       return Rn(Rn({
  3696.       }, e), Object.keys(Dn[n]).reduce(function (e, t) {
  3697.         return Rn(Rn({
  3698.         }, e), {
  3699.         }, xn({
  3700.         }, t, n))
  3701.       }, {
  3702.       }))
  3703.     }, {
  3704.     }),
  3705.     qn = {
  3706.       id: b.a.string.isRequired,
  3707.       type: b.a.oneOf([].concat(kn(Tn), [
  3708.         ''
  3709.       ])),
  3710.       action: b.a.oneOf([].concat(kn(Object.keys(jn).filter(function (e) {
  3711.         return jn[e].present
  3712.       })), [
  3713.         ''
  3714.       ])),
  3715.       filter: b.a.oneOf([].concat(kn(Object.keys(In)), [
  3716.         ''
  3717.       ])),
  3718.       severity: b.a.string,
  3719.       enabled: b.a.bool.isRequired,
  3720.       isNew: b.a.bool,
  3721.       isDirty: b.a.bool
  3722.     },
  3723.     Fn = [
  3724.       'delete',
  3725.       'spam',
  3726.       'approve',
  3727.       'pending'
  3728.     ].reduce(function (e, t) {
  3729.       return e[t] = b.a.number,
  3730.       e
  3731.     }, {
  3732.     }),
  3733.     Ln = Tn.reduce(function (e, t) {
  3734.       return e[t] = b.a.shape(Object.keys(Dn[t]).reduce(function (e, t) {
  3735.         return e[t] = Fn,
  3736.         e
  3737.       }, {
  3738.       })),
  3739.       e
  3740.     }, {
  3741.     }),
  3742.     Un = {
  3743.       postIsHate: {
  3744.         3: '3 - Hate Speech',
  3745.         2: '2 - Slurs',
  3746.         1: '1 - Informational'
  3747.       },
  3748.       postIsViolence: {
  3749.         3: '3 - Intimidation',
  3750.         2: '2 - Instigation',
  3751.         1: '1 - Description'
  3752.       },
  3753.       postIsBullying: {
  3754.         3: '3 - Brutalizing',
  3755.         2: '2 - Profane',
  3756.         1: '1 - Insults'
  3757.       },
  3758.       postIsSexual: {
  3759.         3: '3 - Explicit',
  3760.         2: '2 - Intent & nudity',
  3761.         1: '1 - Statements'
  3762.       }
  3763.     };
  3764.     function Mn(t, e) {
  3765.       var n,
  3766.       a = Object.keys(t);
  3767.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3768.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3769.       })), a.push.apply(a, n)),
  3770.       a
  3771.     }
  3772.     function Bn(a) {
  3773.       for (var e = 1; e < arguments.length; e++) {
  3774.         var r = null != arguments[e] ? arguments[e] : {
  3775.         };
  3776.         e % 2 ? Mn(Object(r), !0).forEach(function (e) {
  3777.           var t,
  3778.           n;
  3779.           n = r[t = e],
  3780.           t in (e = a) ? Object.defineProperty(e, t, {
  3781.             value: n,
  3782.             enumerable: !0,
  3783.             configurable: !0,
  3784.             writable: !0
  3785.           }) : e[t] = n
  3786.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Mn(Object(r)).forEach(function (e) {
  3787.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  3788.         })
  3789.       }
  3790.       return a
  3791.     }
  3792.     function zn(e, t) {
  3793.       if (null == e) return {
  3794.       };
  3795.       var n,
  3796.       a = function (e, t) {
  3797.         if (null == e) return {
  3798.         };
  3799.         var n,
  3800.         a,
  3801.         r = {
  3802.         },
  3803.         o = Object.keys(e);
  3804.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3805.         return r
  3806.       }(e, t);
  3807.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3808.       return a
  3809.     }
  3810.     function Hn(e) {
  3811.       return e.sort(function (e, t) {
  3812.         return e.order - t.order
  3813.       }).map(function (e) {
  3814.         return {
  3815.           id: ''.concat(e.id),
  3816.           type: In[e.filterName],
  3817.           action: e.action,
  3818.           filter: e.filterName,
  3819.           severity: e.filter && '' + e.filter.value,
  3820.           enabled: e.enabled
  3821.         }
  3822.       })
  3823.     }
  3824.     function Gn() {
  3825.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Vn,
  3826.       t = 1 < arguments.length ? arguments[1] : void 0,
  3827.       n = t.type,
  3828.       a = zn(t, [
  3829.         'type'
  3830.       ]);
  3831.       switch (n) {
  3832.         case oe.rulesFetching:
  3833.           return Bn(Bn({
  3834.           }, e), {
  3835.           }, {
  3836.             rulesAreFetching: !0
  3837.           });
  3838.         case oe.onFetchRules:
  3839.           return Bn(Bn({
  3840.           }, e), {
  3841.           }, {
  3842.             rulesAreFetching: !1,
  3843.             rules: Hn(a.response)
  3844.           });
  3845.         case oe.onFetchModerationHistory:
  3846.           return Bn(Bn({
  3847.           }, e), {
  3848.           }, {
  3849.             moderationHistory: a.response.filterStats
  3850.           });
  3851.         case oe.rulesSaving:
  3852.           return Bn(Bn({
  3853.           }, e), {
  3854.           }, {
  3855.             rulesAreSaving: !0,
  3856.             rulesAreSaved: !1,
  3857.             rulesSaveFailed: !1,
  3858.             rulesSaveError: ''
  3859.           });
  3860.         case oe.onSaveRules:
  3861.           return Bn(Bn({
  3862.           }, e), {
  3863.           }, {
  3864.             rulesAreSaving: !1,
  3865.             rulesAreSaved: !0,
  3866.             rulesSaveFailed: !1,
  3867.             rulesSaveError: '',
  3868.             rules: Hn(a.response)
  3869.           });
  3870.         case oe.onSaveRulesError:
  3871.           return Bn(Bn({
  3872.           }, e), {
  3873.           }, {
  3874.             rulesAreSaving: !1,
  3875.             rulesAreSaved: !1,
  3876.             rulesSaveFailed: !0,
  3877.             rulesSaveError: 'There was an error saving your moderation rules.'
  3878.           });
  3879.         default:
  3880.           return e
  3881.       }
  3882.     }
  3883.     var Vn = {
  3884.       rules: [
  3885.       ],
  3886.       rulesAreFetching: !1,
  3887.       rulesAreSaving: !1,
  3888.       rulesAreSaved: !1,
  3889.       rulesSaveFailed: !1,
  3890.       rulesSaveError: ''
  3891.     },
  3892.     Wn = n(51),
  3893.     Yn = n.n(Wn);
  3894.     function Qn(t, e) {
  3895.       var n,
  3896.       a = Object.keys(t);
  3897.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3898.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3899.       })), a.push.apply(a, n)),
  3900.       a
  3901.     }
  3902.     function Kn(a) {
  3903.       for (var e = 1; e < arguments.length; e++) {
  3904.         var r = null != arguments[e] ? arguments[e] : {
  3905.         };
  3906.         e % 2 ? Qn(Object(r), !0).forEach(function (e) {
  3907.           var t,
  3908.           n;
  3909.           n = r[t = e],
  3910.           t in (e = a) ? Object.defineProperty(e, t, {
  3911.             value: n,
  3912.             enumerable: !0,
  3913.             configurable: !0,
  3914.             writable: !0
  3915.           }) : e[t] = n
  3916.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Qn(Object(r)).forEach(function (e) {
  3917.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  3918.         })
  3919.       }
  3920.       return a
  3921.     }
  3922.     function Jn(e, t) {
  3923.       if (null == e) return {
  3924.       };
  3925.       var n,
  3926.       a = function (e, t) {
  3927.         if (null == e) return {
  3928.         };
  3929.         var n,
  3930.         a,
  3931.         r = {
  3932.         },
  3933.         o = Object.keys(e);
  3934.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  3935.         return r
  3936.       }(e, t);
  3937.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  3938.       return a
  3939.     }
  3940.     function $n() {
  3941.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Zn,
  3942.       t = 1 < arguments.length ? arguments[1] : void 0,
  3943.       n = t.type,
  3944.       a = Jn(t, [
  3945.         'type'
  3946.       ]);
  3947.       switch (n) {
  3948.         case re.updateModal:
  3949.           return Kn(Kn({
  3950.           }, e), {
  3951.           }, {
  3952.             modalIsOpen: 'boolean' == typeof a.isOpen ? a.isOpen : e.modalIsOpen,
  3953.             listType: ('string' == typeof a.listType ? a : e).listType,
  3954.             modalFormValues: a.formValues || Wn.DEFAULT_FORM_VALUES,
  3955.             postId: a.postId || e.postId,
  3956.             author: a.author || e.author
  3957.           });
  3958.         case re.updateBanFormValues:
  3959.           return Kn(Kn({
  3960.           }, e), {
  3961.           }, {
  3962.             banType: a.banType
  3963.           });
  3964.         case re.resetDefault:
  3965.           return Zn;
  3966.         default:
  3967.           return e
  3968.       }
  3969.     }
  3970.     var Zn = {
  3971.       modalIsOpen: !1,
  3972.       listType: null,
  3973.       banType: null,
  3974.       modalFormValues: Wn.DEFAULT_FORM_VALUES,
  3975.       postId: null,
  3976.       author: null
  3977.     };
  3978.     function Xn(t, e) {
  3979.       var n,
  3980.       a = Object.keys(t);
  3981.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  3982.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  3983.       })), a.push.apply(a, n)),
  3984.       a
  3985.     }
  3986.     function ea(a) {
  3987.       for (var e = 1; e < arguments.length; e++) {
  3988.         var r = null != arguments[e] ? arguments[e] : {
  3989.         };
  3990.         e % 2 ? Xn(Object(r), !0).forEach(function (e) {
  3991.           var t,
  3992.           n;
  3993.           n = r[t = e],
  3994.           t in (e = a) ? Object.defineProperty(e, t, {
  3995.             value: n,
  3996.             enumerable: !0,
  3997.             configurable: !0,
  3998.             writable: !0
  3999.           }) : e[t] = n
  4000.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Xn(Object(r)).forEach(function (e) {
  4001.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4002.         })
  4003.       }
  4004.       return a
  4005.     }
  4006.     function ta(e, t) {
  4007.       if (null == e) return {
  4008.       };
  4009.       var n,
  4010.       a = function (e, t) {
  4011.         if (null == e) return {
  4012.         };
  4013.         var n,
  4014.         a,
  4015.         r = {
  4016.         },
  4017.         o = Object.keys(e);
  4018.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4019.         return r
  4020.       }(e, t);
  4021.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4022.       return a
  4023.     }
  4024.     function na(e) {
  4025.       var t;
  4026.       try {
  4027.         ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'user\': User matching query does not exist') && (t = 'No user found with this username.')
  4028.       } catch (e) {
  4029.         t = 'There was an unknown error.'
  4030.       }
  4031.       return t
  4032.     }
  4033.     function aa() {
  4034.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ra,
  4035.       t = 1 < arguments.length ? arguments[1] : void 0,
  4036.       n = t.type,
  4037.       a = ta(t, [
  4038.         'type'
  4039.       ]);
  4040.       switch (n) {
  4041.         case ie.fetching:
  4042.           return ea(ea({
  4043.           }, e), {
  4044.           }, {
  4045.             orgAdminIsFetching: !0,
  4046.             orgAdminFetchError: null
  4047.           });
  4048.         case ie.onFetch:
  4049.           return ea(ea({
  4050.           }, e), {
  4051.           }, {
  4052.             orgAdminList: a.orgAdminList.filter(function (e) {
  4053.               return !e.user.isAnonymous
  4054.             }),
  4055.             orgAdminIsFetching: !1,
  4056.             orgAdminFetchError: null
  4057.           });
  4058.         case ie.onFetchError:
  4059.           return ea(ea({
  4060.           }, e), {
  4061.           }, {
  4062.             orgAdminIsFetching: !1,
  4063.             orgAdminFetchError: na(a)
  4064.           });
  4065.         case ie.saving:
  4066.           return ea(ea({
  4067.           }, e), {
  4068.           }, {
  4069.             orgAdminIsSaving: !0,
  4070.             orgAdminIsSaved: !1,
  4071.             orgAdminSaveError: null
  4072.           });
  4073.         case ie.onSave:
  4074.           return ea(ea({
  4075.           }, e), {
  4076.           }, {
  4077.             orgAdminIsSaving: !1,
  4078.             orgAdminIsSaved: !0,
  4079.             orgAdminSaveError: null
  4080.           });
  4081.         case ie.onSaveError:
  4082.           return ea(ea({
  4083.           }, e), {
  4084.           }, {
  4085.             orgAdminIsSaving: !1,
  4086.             orgAdminIsSaved: !1,
  4087.             orgAdminSaveError: na(a)
  4088.           });
  4089.         default:
  4090.           return e
  4091.       }
  4092.     }
  4093.     var ra = {
  4094.       orgAdminList: [
  4095.       ],
  4096.       orgAdminIsFetching: !1,
  4097.       orgAdminFetchError: null,
  4098.       orgAdminIsSaving: !1,
  4099.       orgAdminIsSaved: !1,
  4100.       orgAdminSaveError: null
  4101.     };
  4102.     function oa(t, e) {
  4103.       var n,
  4104.       a = Object.keys(t);
  4105.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4106.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4107.       })), a.push.apply(a, n)),
  4108.       a
  4109.     }
  4110.     function ia(a) {
  4111.       for (var e = 1; e < arguments.length; e++) {
  4112.         var r = null != arguments[e] ? arguments[e] : {
  4113.         };
  4114.         e % 2 ? oa(Object(r), !0).forEach(function (e) {
  4115.           var t,
  4116.           n;
  4117.           n = r[t = e],
  4118.           t in (e = a) ? Object.defineProperty(e, t, {
  4119.             value: n,
  4120.             enumerable: !0,
  4121.             configurable: !0,
  4122.             writable: !0
  4123.           }) : e[t] = n
  4124.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : oa(Object(r)).forEach(function (e) {
  4125.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4126.         })
  4127.       }
  4128.       return a
  4129.     }
  4130.     function sa(e, t) {
  4131.       if (null == e) return {
  4132.       };
  4133.       var n,
  4134.       a = function (e, t) {
  4135.         if (null == e) return {
  4136.         };
  4137.         var n,
  4138.         a,
  4139.         r = {
  4140.         },
  4141.         o = Object.keys(e);
  4142.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4143.         return r
  4144.       }(e, t);
  4145.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4146.       return a
  4147.     }
  4148.     function la() {
  4149.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ca,
  4150.       t = 1 < arguments.length ? arguments[1] : void 0,
  4151.       n = t.type,
  4152.       a = sa(t, [
  4153.         'type'
  4154.       ]);
  4155.       switch (n) {
  4156.         case se.fetching:
  4157.           return ia(ia({
  4158.           }, e), {
  4159.           }, {
  4160.             orgForumsIsFetching: !0,
  4161.             orgForumsError: null
  4162.           });
  4163.         case se.onFetch:
  4164.           return ia(ia({
  4165.           }, e), {
  4166.           }, {
  4167.             orgForumsList: a.forumList,
  4168.             orgForumsHasMore: a.cursor.hasNext,
  4169.             orgForumsCursor: a.cursor,
  4170.             orgForumsIsFetching: !1,
  4171.             orgForumsError: null
  4172.           });
  4173.         case se.onFetchMore:
  4174.           return ia(ia({
  4175.           }, e), {
  4176.           }, {
  4177.             orgForumsList: e.orgForumsList.concat(a.forumList),
  4178.             orgForumsHasMore: a.cursor.hasNext,
  4179.             orgForumsCursor: a.cursor,
  4180.             orgForumsIsFetching: !1,
  4181.             orgForumsError: null
  4182.           });
  4183.         case se.onFetchError:
  4184.           return ia(ia({
  4185.           }, e), {
  4186.           }, {
  4187.             orgForumsIsFetching: !1,
  4188.             orgForumsError: 'There was an error retrieving the sites for this organization.'
  4189.           });
  4190.         default:
  4191.           return e
  4192.       }
  4193.     }
  4194.     var ca = {
  4195.       orgForumsList: [
  4196.       ],
  4197.       orgForumsIsFetching: !1,
  4198.       orgForumsHasMore: !1,
  4199.       orgForumsError: null,
  4200.       orgForumsCursor: {
  4201.       }
  4202.     };
  4203.     function ua(t, e) {
  4204.       var n,
  4205.       a = Object.keys(t);
  4206.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4207.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4208.       })), a.push.apply(a, n)),
  4209.       a
  4210.     }
  4211.     function pa(a) {
  4212.       for (var e = 1; e < arguments.length; e++) {
  4213.         var r = null != arguments[e] ? arguments[e] : {
  4214.         };
  4215.         e % 2 ? ua(Object(r), !0).forEach(function (e) {
  4216.           var t,
  4217.           n;
  4218.           n = r[t = e],
  4219.           t in (e = a) ? Object.defineProperty(e, t, {
  4220.             value: n,
  4221.             enumerable: !0,
  4222.             configurable: !0,
  4223.             writable: !0
  4224.           }) : e[t] = n
  4225.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : ua(Object(r)).forEach(function (e) {
  4226.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4227.         })
  4228.       }
  4229.       return a
  4230.     }
  4231.     function da(e, t) {
  4232.       if (null == e) return {
  4233.       };
  4234.       var n,
  4235.       a = function (e, t) {
  4236.         if (null == e) return {
  4237.         };
  4238.         var n,
  4239.         a,
  4240.         r = {
  4241.         },
  4242.         o = Object.keys(e);
  4243.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4244.         return r
  4245.       }(e, t);
  4246.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4247.       return a
  4248.     }
  4249.     function ma() {
  4250.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : fa,
  4251.       t = 1 < arguments.length ? arguments[1] : void 0,
  4252.       n = t.type,
  4253.       a = da(t, [
  4254.         'type'
  4255.       ]);
  4256.       switch (n) {
  4257.         case J.saving:
  4258.           return pa(pa({
  4259.           }, e), {
  4260.           }, {
  4261.             policyIsSaving: !0
  4262.           });
  4263.         case J.onSave:
  4264.           return pa(pa({
  4265.           }, e), {
  4266.           }, {
  4267.             policyIsSaving: !1
  4268.           });
  4269.         case J.setApiCall:
  4270.           return pa(pa({
  4271.           }, e), {
  4272.           }, {
  4273.             apiCall: a.apiCall
  4274.           });
  4275.         default:
  4276.           return e
  4277.       }
  4278.     }
  4279.     var fa = {
  4280.       apiCall: null,
  4281.       policyIsSaving: !1
  4282.     };
  4283.     function ha(t, e) {
  4284.       var n,
  4285.       a = Object.keys(t);
  4286.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4287.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4288.       })), a.push.apply(a, n)),
  4289.       a
  4290.     }
  4291.     function ga(a) {
  4292.       for (var e = 1; e < arguments.length; e++) {
  4293.         var r = null != arguments[e] ? arguments[e] : {
  4294.         };
  4295.         e % 2 ? ha(Object(r), !0).forEach(function (e) {
  4296.           var t,
  4297.           n;
  4298.           n = r[t = e],
  4299.           t in (e = a) ? Object.defineProperty(e, t, {
  4300.             value: n,
  4301.             enumerable: !0,
  4302.             configurable: !0,
  4303.             writable: !0
  4304.           }) : e[t] = n
  4305.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : ha(Object(r)).forEach(function (e) {
  4306.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4307.         })
  4308.       }
  4309.       return a
  4310.     }
  4311.     function ya(e, t) {
  4312.       if (null == e) return {
  4313.       };
  4314.       var n,
  4315.       a = function (e, t) {
  4316.         if (null == e) return {
  4317.         };
  4318.         var n,
  4319.         a,
  4320.         r = {
  4321.         },
  4322.         o = Object.keys(e);
  4323.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4324.         return r
  4325.       }(e, t);
  4326.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4327.       return a
  4328.     }
  4329.     function ba() {
  4330.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : va,
  4331.       t = 1 < arguments.length ? arguments[1] : void 0,
  4332.       n = t.type,
  4333.       a = ya(t, [
  4334.         'type'
  4335.       ]);
  4336.       switch (n) {
  4337.         case ce.isSyncing:
  4338.           return ga(ga({
  4339.           }, e), {
  4340.           }, {
  4341.             isSyncing: !0
  4342.           });
  4343.         case ce.isFetching:
  4344.           return ga(ga({
  4345.           }, e), {
  4346.           }, {
  4347.             isFetching: !0
  4348.           });
  4349.         case ce.onFetch:
  4350.           return ga(ga({
  4351.           }, e), {
  4352.           }, {
  4353.             isFetching: !1,
  4354.             isSyncing: !1,
  4355.             poll: a.response
  4356.           });
  4357.         case ce.onSave:
  4358.           return ga(ga({
  4359.           }, e), {
  4360.           }, {
  4361.             isSyncing: !1,
  4362.             poll: a.response
  4363.           });
  4364.         case ce.onDelete:
  4365.           return ga(ga({
  4366.           }, e), {
  4367.           }, {
  4368.             isSyncing: !1
  4369.           });
  4370.         case ce.onPublish:
  4371.           return ga(ga({
  4372.           }, e), {
  4373.           }, {
  4374.             isSyncing: !1,
  4375.             poll: ga(ga({
  4376.             }, e.poll), {
  4377.             }, {
  4378.               published: !0
  4379.             })
  4380.           });
  4381.         case ce.onPreview:
  4382.           return ga(ga({
  4383.           }, e), {
  4384.           }, {
  4385.             isSyncing: !1
  4386.           });
  4387.         case ce.reset:
  4388.           return ga({
  4389.           }, va);
  4390.         default:
  4391.           return e
  4392.       }
  4393.     }
  4394.     var va = {
  4395.       poll: null,
  4396.       isSyncing: !1,
  4397.       isFetching: !1
  4398.     };
  4399.     function _a(e) {
  4400.       return function (e) {
  4401.         if (Array.isArray(e)) return Ea(e)
  4402.       }(e) || function (e) {
  4403.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  4404.       }(e) || function (e, t) {
  4405.         if (e) {
  4406.           if ('string' == typeof e) return Ea(e, t);
  4407.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  4408.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ea(e, t) : void 0
  4409.         }
  4410.       }(e) || function () {
  4411.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  4412.       }()
  4413.     }
  4414.     function Ea(e, t) {
  4415.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  4416.       return a
  4417.     }
  4418.     function Oa(t, e) {
  4419.       var n,
  4420.       a = Object.keys(t);
  4421.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4422.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4423.       })), a.push.apply(a, n)),
  4424.       a
  4425.     }
  4426.     function Sa(a) {
  4427.       for (var e = 1; e < arguments.length; e++) {
  4428.         var r = null != arguments[e] ? arguments[e] : {
  4429.         };
  4430.         e % 2 ? Oa(Object(r), !0).forEach(function (e) {
  4431.           var t,
  4432.           n;
  4433.           n = r[t = e],
  4434.           t in (e = a) ? Object.defineProperty(e, t, {
  4435.             value: n,
  4436.             enumerable: !0,
  4437.             configurable: !0,
  4438.             writable: !0
  4439.           }) : e[t] = n
  4440.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Oa(Object(r)).forEach(function (e) {
  4441.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4442.         })
  4443.       }
  4444.       return a
  4445.     }
  4446.     function wa(e, t) {
  4447.       if (null == e) return {
  4448.       };
  4449.       var n,
  4450.       a = function (e, t) {
  4451.         if (null == e) return {
  4452.         };
  4453.         var n,
  4454.         a,
  4455.         r = {
  4456.         },
  4457.         o = Object.keys(e);
  4458.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4459.         return r
  4460.       }(e, t);
  4461.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4462.       return a
  4463.     }
  4464.     function Pa() {
  4465.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ka,
  4466.       t = 1 < arguments.length ? arguments[1] : void 0,
  4467.       n = t.type,
  4468.       a = wa(t, [
  4469.         'type'
  4470.       ]);
  4471.       switch (n) {
  4472.         case ue.updateSearchQuery:
  4473.           return Sa(Sa({
  4474.           }, e), {
  4475.           }, {
  4476.             searchQuery: a.searchQuery
  4477.           });
  4478.         case ue.isFetching:
  4479.           return Sa(Sa({
  4480.           }, e), {
  4481.           }, {
  4482.             isFetching: !0
  4483.           });
  4484.         case ue.onFetch:
  4485.           return Sa(Sa({
  4486.           }, e), {
  4487.           }, {
  4488.             isFetching: !1,
  4489.             polls: a.shouldAppend ? [
  4490.             ].concat(_a(e.polls), _a(a.response)) : a.response,
  4491.             cursor: a.cursor,
  4492.             hasNext: a.cursor && a.cursor.hasNext,
  4493.             total: a.cursor && a.cursor.total,
  4494.             searchQuery: a.query
  4495.           });
  4496.         case ue.onDelete:
  4497.           return Sa(Sa({
  4498.           }, e), {
  4499.           }, {
  4500.             polls: e.polls.filter(function (e) {
  4501.               return e.id !== a.pollId
  4502.             }),
  4503.             total: e.total - 1
  4504.           });
  4505.         case ue.reset:
  4506.           return Sa({
  4507.           }, ka);
  4508.         default:
  4509.           return e
  4510.       }
  4511.     }
  4512.     var ka = {
  4513.       searchQuery: '',
  4514.       polls: [
  4515.       ],
  4516.       isFetching: !1,
  4517.       cursor: {
  4518.       },
  4519.       hasNext: !1,
  4520.       total: 0
  4521.     };
  4522.     function Na(t, e) {
  4523.       var n,
  4524.       a = Object.keys(t);
  4525.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4526.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4527.       })), a.push.apply(a, n)),
  4528.       a
  4529.     }
  4530.     function Ca(a) {
  4531.       for (var e = 1; e < arguments.length; e++) {
  4532.         var r = null != arguments[e] ? arguments[e] : {
  4533.         };
  4534.         e % 2 ? Na(Object(r), !0).forEach(function (e) {
  4535.           var t,
  4536.           n;
  4537.           n = r[t = e],
  4538.           t in (e = a) ? Object.defineProperty(e, t, {
  4539.             value: n,
  4540.             enumerable: !0,
  4541.             configurable: !0,
  4542.             writable: !0
  4543.           }) : e[t] = n
  4544.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Na(Object(r)).forEach(function (e) {
  4545.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4546.         })
  4547.       }
  4548.       return a
  4549.     }
  4550.     function Ra(e, t) {
  4551.       if (null == e) return {
  4552.       };
  4553.       var n,
  4554.       a = function (e, t) {
  4555.         if (null == e) return {
  4556.         };
  4557.         var n,
  4558.         a,
  4559.         r = {
  4560.         },
  4561.         o = Object.keys(e);
  4562.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4563.         return r
  4564.       }(e, t);
  4565.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4566.       return a
  4567.     }
  4568.     function xa() {
  4569.       return (xa = Object.assign || function (e) {
  4570.         for (var t = 1; t < arguments.length; t++) {
  4571.           var n,
  4572.           a = arguments[t];
  4573.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  4574.         }
  4575.         return e
  4576.       }).apply(this, arguments)
  4577.     }
  4578.     function Aa(e) {
  4579.       var t;
  4580.       try {
  4581.         ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'user\': User matching query does not exist') && (t = 'No user found with this username.')
  4582.       } catch (e) {
  4583.         t = 'There was an unknown error.'
  4584.       }
  4585.       return t
  4586.     }
  4587.     function Da(e, t) {
  4588.       return e.map(function (e) {
  4589.         return e.user.username === t.username ? xa({
  4590.         }, e, t.permissions) : e
  4591.       })
  4592.     }
  4593.     function ja() {
  4594.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Ta,
  4595.       t = 1 < arguments.length ? arguments[1] : void 0,
  4596.       n = t.type,
  4597.       a = Ra(t, [
  4598.         'type'
  4599.       ]);
  4600.       switch (n) {
  4601.         case X.fetching:
  4602.           return Ca(Ca({
  4603.           }, e), {
  4604.           }, {
  4605.             isFetching: !0,
  4606.             fetchError: null
  4607.           });
  4608.         case X.onFetch:
  4609.           return Ca(Ca({
  4610.           }, e), {
  4611.           }, {
  4612.             pollModeratorList: a.moderatorList.filter(function (e) {
  4613.               return 'None' !== e.id
  4614.             }),
  4615.             isFetching: !1,
  4616.             fetchError: null
  4617.           });
  4618.         case X.onFetchError:
  4619.           return Ca(Ca({
  4620.           }, e), {
  4621.           }, {
  4622.             isFetching: !1,
  4623.             fetchError: Aa(a)
  4624.           });
  4625.         case X.saving:
  4626.           return Ca(Ca({
  4627.           }, e), {
  4628.           }, {
  4629.             isSaving: !0,
  4630.             saveError: null
  4631.           });
  4632.         case X.onSave:
  4633.           return Ca(Ca({
  4634.           }, e), {
  4635.           }, {
  4636.             isSaving: !1,
  4637.             saveError: null
  4638.           });
  4639.         case X.onSaveError:
  4640.           return Ca(Ca({
  4641.           }, e), {
  4642.           }, {
  4643.             isSaving: !1,
  4644.             saveError: Aa(a)
  4645.           });
  4646.         case X.updating:
  4647.           return Ca(Ca({
  4648.           }, e), {
  4649.           }, {
  4650.             pollModeratorList: Da(e.pollModeratorList, a),
  4651.             isUpdating: !0,
  4652.             updateError: null
  4653.           });
  4654.         case X.onUpdate:
  4655.           return Ca(Ca({
  4656.           }, e), {
  4657.           }, {
  4658.             pollModeratorList: Da(e.pollModeratorList, a),
  4659.             isUpdating: !1,
  4660.             updateError: null
  4661.           });
  4662.         case X.onUpdateError:
  4663.           return Ca(Ca({
  4664.           }, e), {
  4665.           }, {
  4666.             pollModeratorList: Da(e.pollModeratorList, a),
  4667.             isUpdating: !1,
  4668.             updateError: Aa(a)
  4669.           });
  4670.         default:
  4671.           return e
  4672.       }
  4673.     }
  4674.     var Ta = {
  4675.       pollModeratorList: [
  4676.       ],
  4677.       isFetching: !1,
  4678.       fetchError: null,
  4679.       isSaving: !1,
  4680.       saveError: null,
  4681.       isUpdating: !1,
  4682.       updateError: null
  4683.     };
  4684.     function Ia(t, e) {
  4685.       var n,
  4686.       a = Object.keys(t);
  4687.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4688.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4689.       })), a.push.apply(a, n)),
  4690.       a
  4691.     }
  4692.     function qa(a) {
  4693.       for (var e = 1; e < arguments.length; e++) {
  4694.         var r = null != arguments[e] ? arguments[e] : {
  4695.         };
  4696.         e % 2 ? Ia(Object(r), !0).forEach(function (e) {
  4697.           var t,
  4698.           n;
  4699.           n = r[t = e],
  4700.           t in (e = a) ? Object.defineProperty(e, t, {
  4701.             value: n,
  4702.             enumerable: !0,
  4703.             configurable: !0,
  4704.             writable: !0
  4705.           }) : e[t] = n
  4706.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Ia(Object(r)).forEach(function (e) {
  4707.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4708.         })
  4709.       }
  4710.       return a
  4711.     }
  4712.     function Fa(e, t) {
  4713.       if (null == e) return {
  4714.       };
  4715.       var n,
  4716.       a = function (e, t) {
  4717.         if (null == e) return {
  4718.         };
  4719.         var n,
  4720.         a,
  4721.         r = {
  4722.         },
  4723.         o = Object.keys(e);
  4724.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4725.         return r
  4726.       }(e, t);
  4727.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4728.       return a
  4729.     }
  4730.     function La() {
  4731.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Ua,
  4732.       t = 1 < arguments.length ? arguments[1] : void 0,
  4733.       n = t.type,
  4734.       a = Fa(t, [
  4735.         'type'
  4736.       ]);
  4737.       switch (n) {
  4738.         case pe.isFetching:
  4739.           return qa(qa({
  4740.           }, e), {
  4741.           }, {
  4742.             isFetching: !0
  4743.           });
  4744.         case pe.onFetch:
  4745.           return qa(qa({
  4746.           }, e), {
  4747.           }, {
  4748.             pollStats: a.response,
  4749.             isFetching: !1
  4750.           });
  4751.         default:
  4752.           return e
  4753.       }
  4754.     }
  4755.     var Ua = {
  4756.       pollStats: {
  4757.         activePolls: 0,
  4758.         respondents: 0,
  4759.         responseRate: 0
  4760.       },
  4761.       isFetching: !1
  4762.     };
  4763.     function Ma(t, e) {
  4764.       var n,
  4765.       a = Object.keys(t);
  4766.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4767.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4768.       })), a.push.apply(a, n)),
  4769.       a
  4770.     }
  4771.     function Ba(t) {
  4772.       for (var e = 1; e < arguments.length; e++) {
  4773.         var n = null != arguments[e] ? arguments[e] : {
  4774.         };
  4775.         e % 2 ? Ma(Object(n), !0).forEach(function (e) {
  4776.           za(t, e, n[e])
  4777.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Ma(Object(n)).forEach(function (e) {
  4778.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  4779.         })
  4780.       }
  4781.       return t
  4782.     }
  4783.     function za(e, t, n) {
  4784.       return t in e ? Object.defineProperty(e, t, {
  4785.         value: n,
  4786.         enumerable: !0,
  4787.         configurable: !0,
  4788.         writable: !0
  4789.       }) : e[t] = n,
  4790.       e
  4791.     }
  4792.     function Ha(e, t) {
  4793.       if (null == e) return {
  4794.       };
  4795.       var n,
  4796.       a = function (e, t) {
  4797.         if (null == e) return {
  4798.         };
  4799.         var n,
  4800.         a,
  4801.         r = {
  4802.         },
  4803.         o = Object.keys(e);
  4804.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4805.         return r
  4806.       }(e, t);
  4807.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4808.       return a
  4809.     }
  4810.     function Ga() {
  4811.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Va,
  4812.       t = 1 < arguments.length ? arguments[1] : void 0,
  4813.       n = t.type,
  4814.       a = Ha(t, [
  4815.         'type'
  4816.       ]);
  4817.       switch (n) {
  4818.         case de.isFetching:
  4819.           return Ba(Ba({
  4820.           }, e), {
  4821.           }, {
  4822.             isFetching: !0
  4823.           });
  4824.         case de.isFetchingDetails:
  4825.           return Ba(Ba({
  4826.           }, e), {
  4827.           }, {
  4828.             isFetchingDetails: !0
  4829.           });
  4830.         case de.onFetchTotalResponsesReport:
  4831.           return Ba(Ba({
  4832.           }, e), {
  4833.           }, {
  4834.             isFetching: !1,
  4835.             totalResponsesReport: Ba({
  4836.             }, a.response)
  4837.           });
  4838.         case de.onFetchPollResponsesReport:
  4839.           return Ba(Ba({
  4840.           }, e), {
  4841.           }, {
  4842.             isFetching: !1,
  4843.             pollResponsesReport: Ba({
  4844.             }, a.response)
  4845.           });
  4846.         case de.onFetchPollBreakdownReport:
  4847.           return Ba(Ba({
  4848.           }, e), {
  4849.           }, {
  4850.             isFetching: !1,
  4851.             pollBreakdownReport: Ba({
  4852.             }, a.response)
  4853.           });
  4854.         case de.onFetchPollDetails:
  4855.           return Ba(Ba({
  4856.           }, e), {
  4857.           }, {
  4858.             isFetchingDetails: !1,
  4859.             pollDetails: Ba(Ba({
  4860.             }, e.pollDetails), {
  4861.             }, za({
  4862.             }, a.response.id, a.response))
  4863.           });
  4864.         default:
  4865.           return e
  4866.       }
  4867.     }
  4868.     var Va = {
  4869.       totalResponsesReport: {
  4870.         responses: 0,
  4871.         impressions: 0,
  4872.         respondents: 0,
  4873.         response_rate: 0,
  4874.         impressions_series: [
  4875.         ],
  4876.         responses_series: [
  4877.         ],
  4878.         response_rate_series: [
  4879.         ]
  4880.       },
  4881.       pollResponsesReport: {
  4882.       },
  4883.       pollBreakdownReport: {
  4884.         total_responses: 0,
  4885.         questions: [
  4886.         ]
  4887.       },
  4888.       pollDetails: {
  4889.       },
  4890.       isFetching: !1,
  4891.       isFetchingDetails: !1
  4892.     };
  4893.     function Wa(e) {
  4894.       return function (e) {
  4895.         if (Array.isArray(e)) return Ya(e)
  4896.       }(e) || function (e) {
  4897.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  4898.       }(e) || function (e, t) {
  4899.         if (e) {
  4900.           if ('string' == typeof e) return Ya(e, t);
  4901.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  4902.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ya(e, t) : void 0
  4903.         }
  4904.       }(e) || function () {
  4905.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  4906.       }()
  4907.     }
  4908.     function Ya(e, t) {
  4909.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  4910.       return a
  4911.     }
  4912.     function Qa(t, e) {
  4913.       var n,
  4914.       a = Object.keys(t);
  4915.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  4916.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  4917.       })), a.push.apply(a, n)),
  4918.       a
  4919.     }
  4920.     function Ka(a) {
  4921.       for (var e = 1; e < arguments.length; e++) {
  4922.         var r = null != arguments[e] ? arguments[e] : {
  4923.         };
  4924.         e % 2 ? Qa(Object(r), !0).forEach(function (e) {
  4925.           var t,
  4926.           n;
  4927.           n = r[t = e],
  4928.           t in (e = a) ? Object.defineProperty(e, t, {
  4929.             value: n,
  4930.             enumerable: !0,
  4931.             configurable: !0,
  4932.             writable: !0
  4933.           }) : e[t] = n
  4934.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Qa(Object(r)).forEach(function (e) {
  4935.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  4936.         })
  4937.       }
  4938.       return a
  4939.     }
  4940.     function Ja(e, t) {
  4941.       if (null == e) return {
  4942.       };
  4943.       var n,
  4944.       a = function (e, t) {
  4945.         if (null == e) return {
  4946.         };
  4947.         var n,
  4948.         a,
  4949.         r = {
  4950.         },
  4951.         o = Object.keys(e);
  4952.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  4953.         return r
  4954.       }(e, t);
  4955.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  4956.       return a
  4957.     }
  4958.     function $a() {
  4959.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Za,
  4960.       t = 1 < arguments.length ? arguments[1] : void 0,
  4961.       n = t.type,
  4962.       a = Ja(t, [
  4963.         'type'
  4964.       ]);
  4965.       switch (n) {
  4966.         case me.fetchReactions:
  4967.           return Ka(Ka({
  4968.           }, e), {
  4969.           }, {
  4970.             isFetching: !0,
  4971.             error: null
  4972.           });
  4973.         case me.onFetch:
  4974.           var r = !a.reactions || !a.reactions.length || a.reactions.every(function (e) {
  4975.             return e.imageUrl
  4976.           });
  4977.           return Ka(Ka({
  4978.           }, e), {
  4979.           }, {
  4980.             isFetching: !1,
  4981.             templateId: a.reactions && a.reactions.length && a.reactions[0].template || null,
  4982.             reactions: a.reactions ? a.reactions.map(function (e) {
  4983.               return {
  4984.                 text: e.text,
  4985.                 imageUrl: e.imageUrl,
  4986.                 imageID: e.image
  4987.               }
  4988.             }) : [
  4989.             ],
  4990.             customImages: a.images.length ? a.images.filter(function (e) {
  4991.               return e.forum
  4992.             }).map(function (e) {
  4993.               return {
  4994.                 imageID: e.id,
  4995.                 imageUrl: e.url
  4996.               }
  4997.             }) : [
  4998.             ],
  4999.             prompt: a.prompt,
  5000.             hadPreviousReactions: !!a.reactions.length,
  5001.             reactionsEnabled: a.enabled,
  5002.             includesImages: r
  5003.           });
  5004.         case me.onFetchDefaultReactions:
  5005.           return Ka(Ka({
  5006.           }, e), {
  5007.           }, {
  5008.             defaultReactions: Wa(a.payload)
  5009.           });
  5010.         case me.onError:
  5011.           return Ka(Ka({
  5012.           }, e), {
  5013.           }, {
  5014.             isFetching: !1,
  5015.             isSaving: !1,
  5016.             error: a.message || 'We couldn\'t retrieve your reactions. Try again later.'
  5017.           });
  5018.         case me.saveReactions:
  5019.           return Ka(Ka({
  5020.           }, e), {
  5021.           }, {
  5022.             isSaving: !0,
  5023.             isSaved: !1,
  5024.             error: null
  5025.           });
  5026.         case me.onSave:
  5027.           return Ka(Ka({
  5028.           }, e), {
  5029.           }, {
  5030.             isSaving: !1,
  5031.             isSaved: !0
  5032.           });
  5033.         case me.onDisable:
  5034.           return Ka(Ka({
  5035.           }, e), {
  5036.           }, {
  5037.             reactionsEnabled: !1
  5038.           });
  5039.         default:
  5040.           return e
  5041.       }
  5042.     }
  5043.     var Za = {
  5044.       reactions: [
  5045.       ],
  5046.       defaultReactions: [
  5047.       ],
  5048.       customImages: [
  5049.       ],
  5050.       prompt: null,
  5051.       hadPreviousReactions: !1,
  5052.       isFetching: !1,
  5053.       isSaving: !1,
  5054.       isSaved: !1,
  5055.       error: null,
  5056.       reactionsEnabled: !1,
  5057.       includesImages: !0
  5058.     };
  5059.     function Xa(t, e) {
  5060.       var n,
  5061.       a = Object.keys(t);
  5062.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5063.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5064.       })), a.push.apply(a, n)),
  5065.       a
  5066.     }
  5067.     function er(a) {
  5068.       for (var e = 1; e < arguments.length; e++) {
  5069.         var r = null != arguments[e] ? arguments[e] : {
  5070.         };
  5071.         e % 2 ? Xa(Object(r), !0).forEach(function (e) {
  5072.           var t,
  5073.           n;
  5074.           n = r[t = e],
  5075.           t in (e = a) ? Object.defineProperty(e, t, {
  5076.             value: n,
  5077.             enumerable: !0,
  5078.             configurable: !0,
  5079.             writable: !0
  5080.           }) : e[t] = n
  5081.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Xa(Object(r)).forEach(function (e) {
  5082.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  5083.         })
  5084.       }
  5085.       return a
  5086.     }
  5087.     function tr(e, t) {
  5088.       if (null == e) return {
  5089.       };
  5090.       var n,
  5091.       a = function (e, t) {
  5092.         if (null == e) return {
  5093.         };
  5094.         var n,
  5095.         a,
  5096.         r = {
  5097.         },
  5098.         o = Object.keys(e);
  5099.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5100.         return r
  5101.       }(e, t);
  5102.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5103.       return a
  5104.     }
  5105.     function nr() {
  5106.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ar,
  5107.       t = 1 < arguments.length ? arguments[1] : void 0,
  5108.       n = t.type,
  5109.       a = tr(t, [
  5110.         'type'
  5111.       ]);
  5112.       switch (n) {
  5113.         case fe.onFetchTotalReactionsReportByDate:
  5114.           return er(er({
  5115.           }, e), {
  5116.           }, {
  5117.             totalReactionsReportByDate: er({
  5118.             }, a.response)
  5119.           });
  5120.         case fe.onFetchThreadSpecificReactionsReport:
  5121.           return er(er({
  5122.           }, e), {
  5123.           }, {
  5124.             threadSpecificReactionsReport: er({
  5125.             }, a.response)
  5126.           });
  5127.         case fe.onFetchTotalReactionsReportByThread:
  5128.           return er(er({
  5129.           }, e), {
  5130.           }, {
  5131.             totalReactionsReportByThread: er({
  5132.             }, a.response)
  5133.           });
  5134.         default:
  5135.           return e
  5136.       }
  5137.     }
  5138.     var ar = {
  5139.       totalReactionsReportByDate: {
  5140.         anon_series: [
  5141.         ],
  5142.         logged_in_series: [
  5143.         ],
  5144.         standard_series: [
  5145.         ]
  5146.       },
  5147.       totalReactionsReportByThread: {
  5148.       },
  5149.       threadSpecificReactionsReport: {
  5150.       }
  5151.     },
  5152.     rr = {
  5153.       contentPreview: !0,
  5154.       disableOverlay: !1,
  5155.       maxAgeDays: 0,
  5156.       metaComments: !0,
  5157.       metaDate: !0,
  5158.       placement: 'top',
  5159.       titleHidden: !1
  5160.     },
  5161.     or = [
  5162.       {
  5163.         key: 0,
  5164.         value: {
  5165.           contentPreview: !0,
  5166.           disableOverlay: !1,
  5167.           titleHidden: !1
  5168.         },
  5169.         image: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/layouts/layout_option1.svg'
  5170.       },
  5171.       {
  5172.         key: 1,
  5173.         value: {
  5174.           contentPreview: !0,
  5175.           disableOverlay: !0,
  5176.           titleHidden: !1
  5177.         },
  5178.         image: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/layouts/layout_option2.svg'
  5179.       },
  5180.       {
  5181.         key: 2,
  5182.         value: {
  5183.           contentPreview: !0,
  5184.           disableOverlay: !0,
  5185.           titleHidden: !0
  5186.         },
  5187.         image: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/layouts/layout_option3.svg'
  5188.       },
  5189.       {
  5190.         key: 3,
  5191.         value: {
  5192.           contentPreview: !1,
  5193.           disableOverlay: !1,
  5194.           titleHidden: !1
  5195.         },
  5196.         image: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/layouts/layout_option4.svg'
  5197.       }
  5198.     ],
  5199.     ir = [
  5200.       {
  5201.         key: 'top',
  5202.         value: 'top',
  5203.         label: 'Top'
  5204.       },
  5205.       {
  5206.         key: 'bottom',
  5207.         value: 'bottom',
  5208.         label: 'Bottom'
  5209.       },
  5210.       {
  5211.         key: 'standalone',
  5212.         value: 'standalone',
  5213.         label: 'Standalone',
  5214.         tag: {
  5215.           text: 'BETA',
  5216.           color: '#5cb767'
  5217.         }
  5218.       }
  5219.     ],
  5220.     sr = [
  5221.       {
  5222.         key: 'none',
  5223.         value: 0,
  5224.         label: 'None'
  5225.       },
  5226.       {
  5227.         key: 'week',
  5228.         value: 7,
  5229.         label: 'Last Week'
  5230.       },
  5231.       {
  5232.         key: 'month',
  5233.         value: 30,
  5234.         label: 'Last Month'
  5235.       },
  5236.       {
  5237.         key: '6 months',
  5238.         value: 180,
  5239.         label: 'Last Six Months'
  5240.       },
  5241.       {
  5242.         key: 'year',
  5243.         value: 365,
  5244.         label: 'Last Year'
  5245.       }
  5246.     ],
  5247.     lr = {
  5248.       collection: [
  5249.         {
  5250.           title: 'How to Conduct SEO Research for Your Blog',
  5251.           forumName: 'The Disqus Blog',
  5252.           description: 'Seventy million new blog posts appear every month on WordPress alone. That’s almost 27 blog posts published every second!',
  5253.           createdAgo: '2 months ago',
  5254.           posts: 38,
  5255.           recommendationsLink: '#',
  5256.           images: [
  5257.             {
  5258.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/seo_research.png'
  5259.             }
  5260.           ]
  5261.         },
  5262.         {
  5263.           title: 'Introducing: Moderation Profiles',
  5264.           forumName: 'The Disqus Blog',
  5265.           description: 'Moderating your community doesn’t have to be hard, tedious work!',
  5266.           createdAgo: '5 months ago',
  5267.           posts: 424,
  5268.           recommendationsLink: '#',
  5269.           images: [
  5270.             {
  5271.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/moderation_profiles.png'
  5272.             }
  5273.           ]
  5274.         },
  5275.         {
  5276.           title: 'Creating a Successful Landing Page',
  5277.           forumName: 'The Disqus Blog',
  5278.           description: 'Landing pages are standard practice in marketing. Let\'s talk more about why they\'re important, what they are and how to create one.',
  5279.           createdAgo: '3 months ago',
  5280.           posts: 55,
  5281.           recommendationsLink: '#',
  5282.           images: [
  5283.             {
  5284.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/landing_page.png'
  5285.             }
  5286.           ]
  5287.         },
  5288.         {
  5289.           title: 'Leveraging Content Calendars to Improve Consistency',
  5290.           forumName: 'The Disqus Blog',
  5291.           description: 'A content calendar provides further direction on the creation and distribution of your content. It can cover your social media posts, blog, emails, & more.',
  5292.           createdAgo: '6 months ago',
  5293.           posts: 42,
  5294.           recommendationsLink: '#',
  5295.           images: [
  5296.             {
  5297.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/content_calendar.png'
  5298.             }
  5299.           ]
  5300.         },
  5301.         {
  5302.           title: 'Email Marketing 101',
  5303.           forumName: 'The Disqus Blog',
  5304.           description: 'Email marketing is sending a targeted marketing campaign to your audience via email. Anything you send to your email list is considered email marketing',
  5305.           createdAgo: '9 months ago',
  5306.           posts: 60,
  5307.           recommendationsLink: '#',
  5308.           images: [
  5309.             {
  5310.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/email_marketing.png'
  5311.             }
  5312.           ]
  5313.         },
  5314.         {
  5315.           title: 'The Ultimate Guide to Content Marketing',
  5316.           forumName: 'The Disqus Blog',
  5317.           description: 'Content marketing is not a buzzword. It’s a proven method to nurture leads and get your target audience to notice you!',
  5318.           createdAgo: '3 months ago',
  5319.           posts: 72,
  5320.           recommendationsLink: '#',
  5321.           images: [
  5322.             {
  5323.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/content_marketing.png'
  5324.             }
  5325.           ]
  5326.         },
  5327.         {
  5328.           title: 'Getting to Know Your Audience',
  5329.           forumName: 'The Disqus Blog',
  5330.           description: 'Before you decide on which digital content strategy will work best for your brand and goals, it\'s important to know as much as you can about your audience. Without doing the research and analyzing who your readers are, you can\'t even begin to sort out important aspects of your strategy like messaging or how to retain those loyal followers.',
  5331.           createdAgo: 'a year ago',
  5332.           posts: 515,
  5333.           recommendationsLink: '#',
  5334.           images: [
  5335.             {
  5336.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/know_your_audience.png'
  5337.             }
  5338.           ]
  5339.         },
  5340.         {
  5341.           title: 'Reactions: A new way to engage',
  5342.           forumName: 'The Disqus Blog',
  5343.           description: 'Today we have a big update to share and want to know what you think. Reactions are now available for all publishers on Disqus. Reactions are a fun, low-effort, means for readers to engage on their favorite sites and for publishers to better understand their audiences.',
  5344.           createdAgo: 'a year ago',
  5345.           posts: 515,
  5346.           recommendationsLink: '#',
  5347.           images: [
  5348.             {
  5349.               url: '//c.disquscdn.com/next/current/publisher-admin/assets/img/recommendations/preview/reactions.png'
  5350.             }
  5351.           ]
  5352.         }
  5353.       ]
  5354.     };
  5355.     function cr(e, t) {
  5356.       if (null == e) return {
  5357.       };
  5358.       var n,
  5359.       a = function (e, t) {
  5360.         if (null == e) return {
  5361.         };
  5362.         var n,
  5363.         a,
  5364.         r = {
  5365.         },
  5366.         o = Object.keys(e);
  5367.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5368.         return r
  5369.       }(e, t);
  5370.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5371.       return a
  5372.     }
  5373.     function ur(t, e) {
  5374.       var n,
  5375.       a = Object.keys(t);
  5376.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5377.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5378.       })), a.push.apply(a, n)),
  5379.       a
  5380.     }
  5381.     function pr(a) {
  5382.       for (var e = 1; e < arguments.length; e++) {
  5383.         var r = null != arguments[e] ? arguments[e] : {
  5384.         };
  5385.         e % 2 ? ur(Object(r), !0).forEach(function (e) {
  5386.           var t,
  5387.           n;
  5388.           n = r[t = e],
  5389.           t in (e = a) ? Object.defineProperty(e, t, {
  5390.             value: n,
  5391.             enumerable: !0,
  5392.             configurable: !0,
  5393.             writable: !0
  5394.           }) : e[t] = n
  5395.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : ur(Object(r)).forEach(function (e) {
  5396.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  5397.         })
  5398.       }
  5399.       return a
  5400.     }
  5401.     function dr() {
  5402.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : mr,
  5403.       t = 1 < arguments.length ? arguments[1] : void 0,
  5404.       n = t.type,
  5405.       a = cr(t, [
  5406.         'type'
  5407.       ]);
  5408.       switch (n) {
  5409.         case he.enabling:
  5410.           return pr(pr({
  5411.           }, e), {
  5412.           }, {
  5413.             isEnabling: !0,
  5414.             error: null
  5415.           });
  5416.         case he.onEnable:
  5417.           return pr(pr({
  5418.           }, e), {
  5419.           }, {
  5420.             isEnabling: !1,
  5421.             isEnabled: !0
  5422.           });
  5423.         case he.onEnableError:
  5424.           return pr(pr({
  5425.           }, e), {
  5426.           }, {
  5427.             isEnabling: !1,
  5428.             isFetching: !1,
  5429.             isSaving: !1,
  5430.             error: a.message || 'We couldn\'t enable Recommendations. Try again.'
  5431.           });
  5432.         case he.fetching:
  5433.           return pr(pr({
  5434.           }, e), {
  5435.           }, {
  5436.             isFetching: !0,
  5437.             error: null
  5438.           });
  5439.         case he.onFetch:
  5440.           return pr(pr({
  5441.           }, e), {
  5442.           }, {
  5443.             isFetching: !1,
  5444.             recommendationsEnabled: a.recommendationsEnabled,
  5445.             contentPreview: a.contentPreview,
  5446.             disableOverlay: a.disableOverlay,
  5447.             maxAgeDays: parseInt(a.maxAgeDays, 10),
  5448.             metaComments: a.metaComments,
  5449.             metaDate: a.metaDate,
  5450.             placement: a.placement,
  5451.             titleHidden: a.titleHidden
  5452.           });
  5453.         case he.onFetchError:
  5454.           return pr(pr({
  5455.           }, e), {
  5456.           }, {
  5457.             isFetching: !1,
  5458.             isSaving: !1,
  5459.             error: a.message || 'We couldn\'t retrieve your Recommendations settings. Try again.'
  5460.           });
  5461.         case he.saving:
  5462.           return pr(pr({
  5463.           }, e), {
  5464.           }, {
  5465.             isSaving: !0,
  5466.             isSaved: !1,
  5467.             error: null
  5468.           });
  5469.         case he.onSave:
  5470.           return pr(pr({
  5471.           }, e), {
  5472.           }, {
  5473.             isSaving: !1,
  5474.             isSaved: !0
  5475.           });
  5476.         case he.onSaveError:
  5477.           return pr(pr({
  5478.           }, e), {
  5479.           }, {
  5480.             isFetching: !1,
  5481.             isSaving: !1,
  5482.             error: a.message || 'We couldn\'t save your Recommendations settings. Try again.'
  5483.           });
  5484.         default:
  5485.           return e
  5486.       }
  5487.     }
  5488.     var mr = pr(pr({
  5489.       recommendationsEnabled: !0
  5490.     }, rr), {
  5491.     }, {
  5492.       isFetching: !1,
  5493.       isSaving: !1,
  5494.       isSaved: !1,
  5495.       error: null
  5496.     });
  5497.     function fr() {
  5498.       return (fr = Object.assign || function (e) {
  5499.         for (var t = 1; t < arguments.length; t++) {
  5500.           var n,
  5501.           a = arguments[t];
  5502.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  5503.         }
  5504.         return e
  5505.       }).apply(this, arguments)
  5506.     }
  5507.     function hr(e, t) {
  5508.       if (null == e) return {
  5509.       };
  5510.       var n,
  5511.       a = function (e, t) {
  5512.         if (null == e) return {
  5513.         };
  5514.         var n,
  5515.         a,
  5516.         r = {
  5517.         },
  5518.         o = Object.keys(e);
  5519.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5520.         return r
  5521.       }(e, t);
  5522.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5523.       return a
  5524.     }
  5525.     function gr() {
  5526.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : yr,
  5527.       t = 1 < arguments.length ? arguments[1] : void 0,
  5528.       n = t.type,
  5529.       a = hr(t, [
  5530.         'type'
  5531.       ]);
  5532.       switch (n) {
  5533.         case ge.fetching:
  5534.           return fr({
  5535.           }, e, {
  5536.             isFetching: !0,
  5537.             error: null
  5538.           });
  5539.         case ge.fetchFailed:
  5540.           return fr({
  5541.           }, e, {
  5542.             isFetching: !1,
  5543.             error: a.message || 'We couldn\'t retrieve your restricted word list. Try again later.'
  5544.           });
  5545.         case ge.update:
  5546.           return fr({
  5547.           }, e, {
  5548.             wordArr: a.entries,
  5549.             words: a.entries.join(', '),
  5550.             isFetching: !1,
  5551.             error: null,
  5552.             wordsChanged: !1
  5553.           });
  5554.         case ge.edit:
  5555.           return fr({
  5556.           }, e, {
  5557.             words: a.words,
  5558.             wordsChanged: !0
  5559.           });
  5560.         case ge.saving:
  5561.           return fr({
  5562.           }, e, {
  5563.             isSaved: !1,
  5564.             isSaving: !0,
  5565.             error: null
  5566.           });
  5567.         case ge.saved:
  5568.           return fr({
  5569.           }, e, {
  5570.             wordArr: a.entries,
  5571.             words: a.entries.join(', '),
  5572.             isSaved: !0,
  5573.             isSaving: !1,
  5574.             wordsChanged: !1
  5575.           });
  5576.         case ge.saveFailed:
  5577.           return fr({
  5578.           }, e, {
  5579.             isSaving: !1,
  5580.             error: a.message || 'There was an unknown problem saving the word list. Please try again later.'
  5581.           });
  5582.         case ge.clearError:
  5583.           return fr({
  5584.           }, e, {
  5585.             error: null
  5586.           });
  5587.         default:
  5588.           return e
  5589.       }
  5590.     }
  5591.     var yr = {
  5592.       wordArr: [
  5593.       ],
  5594.       words: '',
  5595.       wordsChanged: !1,
  5596.       isFetching: !1,
  5597.       isSaving: !1,
  5598.       isSaved: !1,
  5599.       error: null
  5600.     },
  5601.     br = {
  5602.       shortname: pt.a.currentForum,
  5603.       orgId: (window.location.pathname.match(/\/admin\/orgs\/(\d+)/) || [
  5604.       ]) [1],
  5605.       disqusHost: pt.a.disqusHost,
  5606.       mediaUrl: window._v5Config.mediaUrl
  5607.     };
  5608.     function vr(t, e) {
  5609.       var n,
  5610.       a = Object.keys(t);
  5611.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5612.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5613.       })), a.push.apply(a, n)),
  5614.       a
  5615.     }
  5616.     function _r(t) {
  5617.       for (var e = 1; e < arguments.length; e++) {
  5618.         var n = null != arguments[e] ? arguments[e] : {
  5619.         };
  5620.         e % 2 ? vr(Object(n), !0).forEach(function (e) {
  5621.           Or(t, e, n[e])
  5622.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : vr(Object(n)).forEach(function (e) {
  5623.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  5624.         })
  5625.       }
  5626.       return t
  5627.     }
  5628.     function Er(e, t) {
  5629.       if (null == e) return {
  5630.       };
  5631.       var n,
  5632.       a = function (e, t) {
  5633.         if (null == e) return {
  5634.         };
  5635.         var n,
  5636.         a,
  5637.         r = {
  5638.         },
  5639.         o = Object.keys(e);
  5640.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5641.         return r
  5642.       }(e, t);
  5643.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5644.       return a
  5645.     }
  5646.     function Or(e, t, n) {
  5647.       return t in e ? Object.defineProperty(e, t, {
  5648.         value: n,
  5649.         enumerable: !0,
  5650.         configurable: !0,
  5651.         writable: !0
  5652.       }) : e[t] = n,
  5653.       e
  5654.     }
  5655.     function Sr() {
  5656.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : function () {
  5657.         if (br.shortname) {
  5658.           var e = window._v5Config.forums[br.shortname] || {
  5659.           };
  5660.           return Or({
  5661.           }, e.organization, e.features)
  5662.         }
  5663.         if (br.orgId) {
  5664.           e = ((window._v5Config.organizations[br.orgId] || {
  5665.           }).forums || [
  5666.           ]) [0];
  5667.           return Or({
  5668.           }, br.orgId, (window._v5Config.forums[e] || {
  5669.           }).features)
  5670.         }
  5671.         return {
  5672.         }
  5673.       }(),
  5674.       t = 1 < arguments.length ? arguments[1] : void 0,
  5675.       n = t.type,
  5676.       a = Er(t, [
  5677.         'type'
  5678.       ]);
  5679.       switch (n) {
  5680.         case ye.fetching:
  5681.           return _r(_r({
  5682.           }, e), {
  5683.           }, Or({
  5684.           }, a.orgId, _r(_r({
  5685.           }, e[a.orgId]), {
  5686.           }, {
  5687.             isFetching: !0
  5688.           })));
  5689.         case ye.onFetch:
  5690.           return _r(_r({
  5691.           }, e), {
  5692.           }, Or({
  5693.           }, a.orgId, _r(_r({
  5694.           }, a.features), {
  5695.           }, {
  5696.             isFetching: !1,
  5697.             isFetched: !0
  5698.           })));
  5699.         case ye.onError:
  5700.           return _r(_r({
  5701.           }, e), {
  5702.           }, Or({
  5703.           }, a.orgId, _r(_r({
  5704.           }, e[a.orgId]), {
  5705.           }, {
  5706.             isFetching: !1
  5707.           })));
  5708.         default:
  5709.           return e
  5710.       }
  5711.     }
  5712.     function wr(t, e) {
  5713.       var n,
  5714.       a = Object.keys(t);
  5715.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5716.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5717.       })), a.push.apply(a, n)),
  5718.       a
  5719.     }
  5720.     function Pr(a) {
  5721.       for (var e = 1; e < arguments.length; e++) {
  5722.         var r = null != arguments[e] ? arguments[e] : {
  5723.         };
  5724.         e % 2 ? wr(Object(r), !0).forEach(function (e) {
  5725.           var t,
  5726.           n;
  5727.           n = r[t = e],
  5728.           t in (e = a) ? Object.defineProperty(e, t, {
  5729.             value: n,
  5730.             enumerable: !0,
  5731.             configurable: !0,
  5732.             writable: !0
  5733.           }) : e[t] = n
  5734.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : wr(Object(r)).forEach(function (e) {
  5735.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  5736.         })
  5737.       }
  5738.       return a
  5739.     }
  5740.     var kr = window._v5Config.forums,
  5741.     Nr = window._v5Config.organizations,
  5742.     Cr = window._v5Config.moderated_forums,
  5743.     Rr = Ve.a.getFromCookie().username;
  5744.     function xr(e) {
  5745.       var t = Nr[e].owner === Rr,
  5746.       n = Nr[e].permissions.isModerator,
  5747.       e = Object.values(Nr[e].forums.reduce(function (e, t) {
  5748.         return e[t] = kr[t],
  5749.         e
  5750.       }, {
  5751.       }));
  5752.       return {
  5753.         canModerate: t || n || e.some(function (e) {
  5754.           return e.permissions.canModerate
  5755.         }),
  5756.         canEditPolls: t || e.some(function (e) {
  5757.           return e.permissions.canEditPolls
  5758.         })
  5759.       }
  5760.     }
  5761.     function Ar() {
  5762.       var e,
  5763.       t,
  5764.       n,
  5765.       a,
  5766.       r,
  5767.       o,
  5768.       i,
  5769.       s = {
  5770.       };
  5771.       return (e = br.shortname ? kr[br.shortname] || {
  5772.         shortname: br.shortname
  5773.       }
  5774.        : e) ? (i = (r = e) && r.organization && Nr[r.organization].permissions.isModerator, t = {
  5775.         canModerate: (o = r && r.organization && Nr[r.organization].owner === Rr) || i || r && r.permissions && r.permissions.canModerate,
  5776.         canEditPolls: o || i || r && r.permissions && r.permissions.canEditPolls
  5777.       }, s.type = ft.forum, s.forum = (i = (o = e) && o.permissions && o.permissions.canAdminister, r = o && o.settings && o.settings.ADS_ANALYTICS_VIEWABLE, Pr(Pr({
  5778.       }, o), {
  5779.       }, {
  5780.         hasAdsAnalytics: r,
  5781.         canAdminister: i
  5782.       })), s.organization = e.organization && Nr[e.organization], s.isCommentsVisible = t.canModerate, s.isPollsVisible = t.canEditPolls) : br.orgId ? (n = xr(br.orgId), s.type = ft.organization, s.organization = a = Pr(Pr({
  5783.       }, a = Nr[br.orgId] || {
  5784.         id: br.orgId
  5785.       }), {
  5786.       }, {
  5787.         canAdminister: a && a.forums.some(function (e) {
  5788.           e = kr[e];
  5789.           return e && e.permissions.canAdminister
  5790.         }),
  5791.         hasAdsSettings: a && a.forums.some(function (e) {
  5792.           e = kr[e];
  5793.           return e && e.settings.ADS_SETTINGS_VIEWABLE
  5794.         }),
  5795.         hasAdsAnalytics: a && a.forums.some(function (e) {
  5796.           e = kr[e];
  5797.           return e && e.settings.ADS_ANALYTICS_VIEWABLE
  5798.         }),
  5799.         hasGuarantee: function () {
  5800.           return a && a.hasGuarantee
  5801.         }
  5802.       }), s.organizationForums = s.organization.forums.reduce(function (e, t) {
  5803.         return e[t] = kr[t],
  5804.         e
  5805.       }, {
  5806.       }), s.isCommentsVisible = n.canModerate, s.isPollsVisible = n.canEditPolls) : (e = Object.values(Nr).some(function (e) {
  5807.         return e.owner === Rr
  5808.       }), t = Object.values(Nr).some(function (e) {
  5809.         return e.permissions.isAdmin
  5810.       }), n = Object.values(Nr).some(function (e) {
  5811.         return e.permissions.isModerator
  5812.       }), t = {
  5813.         canModerate: e || t || n || Cr.some(function (e) {
  5814.           return kr[e].permissions.canModerate || kr[e].permissions.canAdminister
  5815.         }),
  5816.         canEditPolls: e || t || Cr.some(function (e) {
  5817.           return kr[e].permissions.canEditPolls
  5818.         })
  5819.       }, s.type = ft.global, s.global = {
  5820.         canAdminister: Object.keys(kr).some(function (e) {
  5821.           e = kr[e];
  5822.           return e.permissions && e.permissions.canAdminister
  5823.         }),
  5824.         hasAdsSettings: Object.keys(kr).some(function (e) {
  5825.           e = kr[e];
  5826.           return e.settings && e.settings.ADS_SETTINGS_VIEWABLE
  5827.         }),
  5828.         hasAdsAnalytics: Object.keys(kr).some(function (e) {
  5829.           e = kr[e];
  5830.           return e.settings && e.settings.ADS_ANALYTICS_VIEWABLE
  5831.         })
  5832.       }, s.isCommentsVisible = t.canModerate, s.isPollsVisible = t.canEditPolls),
  5833.       s.isRevealVisible = s[s.type].hasAdsAnalytics,
  5834.       s.isSettingsVisible = s[s.type].canAdminister,
  5835.       s
  5836.     }
  5837.     function Dr() {
  5838.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : jr();
  5839.       return e = (1 < arguments.length ? arguments[1] : void 0).type === be.onEnableComments ? Pr(Pr({
  5840.       }, e), {
  5841.       }, {
  5842.         organization: Pr(Pr({
  5843.         }, e.organization), {
  5844.         }, {
  5845.           pollsOnly: !1
  5846.         })
  5847.       }) : e
  5848.     }
  5849.     var jr = Ar;
  5850.     function Tr(t, e) {
  5851.       var n,
  5852.       a = Object.keys(t);
  5853.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5854.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5855.       })), a.push.apply(a, n)),
  5856.       a
  5857.     }
  5858.     function Ir(a) {
  5859.       for (var e = 1; e < arguments.length; e++) {
  5860.         var r = null != arguments[e] ? arguments[e] : {
  5861.         };
  5862.         e % 2 ? Tr(Object(r), !0).forEach(function (e) {
  5863.           var t,
  5864.           n;
  5865.           n = r[t = e],
  5866.           t in (e = a) ? Object.defineProperty(e, t, {
  5867.             value: n,
  5868.             enumerable: !0,
  5869.             configurable: !0,
  5870.             writable: !0
  5871.           }) : e[t] = n
  5872.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Tr(Object(r)).forEach(function (e) {
  5873.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  5874.         })
  5875.       }
  5876.       return a
  5877.     }
  5878.     function qr(e, t) {
  5879.       if (null == e) return {
  5880.       };
  5881.       var n,
  5882.       a = function (e, t) {
  5883.         if (null == e) return {
  5884.         };
  5885.         var n,
  5886.         a,
  5887.         r = {
  5888.         },
  5889.         o = Object.keys(e);
  5890.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5891.         return r
  5892.       }(e, t);
  5893.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5894.       return a
  5895.     }
  5896.     function Fr() {
  5897.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Lr,
  5898.       t = 1 < arguments.length ? arguments[1] : void 0,
  5899.       n = t.type,
  5900.       a = qr(t, [
  5901.         'type'
  5902.       ]);
  5903.       switch (n) {
  5904.         case ve.scriptAdded:
  5905.           return Ir(Ir({
  5906.           }, e), {
  5907.           }, {
  5908.             stripeScriptAdded: !0
  5909.           });
  5910.         case ve.scriptLoaded:
  5911.           return Ir(Ir({
  5912.           }, e), {
  5913.           }, {
  5914.             stripeScriptInstance: window.StripeCheckout
  5915.           });
  5916.         case ve.checkoutScriptAdded:
  5917.           return Ir(Ir({
  5918.           }, e), {
  5919.           }, {
  5920.             error: '',
  5921.             stripeScriptAdded: !0
  5922.           });
  5923.         case ve.stripeCheckoutLoaded:
  5924.           return Ir(Ir({
  5925.           }, e), {
  5926.           }, {
  5927.             error: '',
  5928.             stripeInstance: a.stripeInstance
  5929.           });
  5930.         case ve.updateData:
  5931.           return Ir(Ir({
  5932.           }, e), {
  5933.           }, {
  5934.             error: '',
  5935.             checkoutData: Ir(Ir({
  5936.             }, e.checkoutData), a.checkoutData)
  5937.           });
  5938.         case ve.onError:
  5939.           return Ir(Ir({
  5940.           }, e), {
  5941.           }, {
  5942.             error: a.error
  5943.           });
  5944.         default:
  5945.           return e
  5946.       }
  5947.     }
  5948.     var Lr = {
  5949.       stripeScriptAdded: !1,
  5950.       stripeScriptInstance: null,
  5951.       stripeCheckoutScriptAdded: !1,
  5952.       stripeCheckoutInstance: null,
  5953.       checkoutData: {
  5954.         organization: null,
  5955.         forum: null,
  5956.         plan: null
  5957.       },
  5958.       error: ''
  5959.     },
  5960.     Ur = n(33);
  5961.     function Mr(e, t) {
  5962.       if (null == e) return {
  5963.       };
  5964.       var n,
  5965.       a = function (e, t) {
  5966.         if (null == e) return {
  5967.         };
  5968.         var n,
  5969.         a,
  5970.         r = {
  5971.         },
  5972.         o = Object.keys(e);
  5973.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  5974.         return r
  5975.       }(e, t);
  5976.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  5977.       return a
  5978.     }
  5979.     function Br(t, e) {
  5980.       var n,
  5981.       a = Object.keys(t);
  5982.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  5983.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  5984.       })), a.push.apply(a, n)),
  5985.       a
  5986.     }
  5987.     function zr(a) {
  5988.       for (var e = 1; e < arguments.length; e++) {
  5989.         var r = null != arguments[e] ? arguments[e] : {
  5990.         };
  5991.         e % 2 ? Br(Object(r), !0).forEach(function (e) {
  5992.           var t,
  5993.           n;
  5994.           n = r[t = e],
  5995.           t in (e = a) ? Object.defineProperty(e, t, {
  5996.             value: n,
  5997.             enumerable: !0,
  5998.             configurable: !0,
  5999.             writable: !0
  6000.           }) : e[t] = n
  6001.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Br(Object(r)).forEach(function (e) {
  6002.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  6003.         })
  6004.       }
  6005.       return a
  6006.     }
  6007.     function Hr(e) {
  6008.       return function (e) {
  6009.         if (Array.isArray(e)) return Gr(e)
  6010.       }(e) || function (e) {
  6011.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  6012.       }(e) || function (e, t) {
  6013.         if (e) {
  6014.           if ('string' == typeof e) return Gr(e, t);
  6015.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  6016.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Gr(e, t) : void 0
  6017.         }
  6018.       }(e) || function () {
  6019.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  6020.       }()
  6021.     }
  6022.     function Gr(e, t) {
  6023.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  6024.       return a
  6025.     }
  6026.     function Vr(r) {
  6027.       if (r.orgSubscriptionIsFetching || !r.packages) return {
  6028.       };
  6029.       var o = r.orgCurrentPlan ? r.orgCurrentPlan.id : Ur.DISQUS_BASIC_PLAN_ID,
  6030.       i = r.pollsOrgCurrentPlan && r.pollsOrgCurrentPlan.id,
  6031.       e = [
  6032.         Ur.BASIC_PACKAGE
  6033.       ].concat(Hr(r.packages)).map(function (e) {
  6034.         var t = e.plans.map(function (e) {
  6035.           var t = !!r.orgAvailableTrials && !!~r.orgAvailableTrials.indexOf(e.id) || !!r.orgTransferableTrials && !!~r.orgTransferableTrials.indexOf(e.id),
  6036.           n = e.interval || 'month';
  6037.           return e.id === o ? zr(zr(zr({
  6038.           }, e), r.orgCurrentPlan), {
  6039.           }, {
  6040.             hasTrialAvailable: t,
  6041.             interval: n,
  6042.             isSubscribed: !0
  6043.           }) : e.id === i ? zr(zr(zr({
  6044.           }, e), r.pollsOrgCurrentPlan), {
  6045.           }, {
  6046.             hasTrialAvailable: t,
  6047.             interval: n,
  6048.             isSubscribed: !0
  6049.           }) : zr(zr({
  6050.           }, e), {
  6051.           }, {
  6052.             hasTrialAvailable: t,
  6053.             interval: n,
  6054.             isSubscribed: !1
  6055.           })
  6056.         }),
  6057.         n = t.some(function (e) {
  6058.           return e.isSubscribed
  6059.         }),
  6060.         a = e.features.map(function (e) {
  6061.           return zr(zr({
  6062.           }, e), {
  6063.           }, {
  6064.             isCustom: !1
  6065.           })
  6066.         });
  6067.         return n && (a = a.concat((r.orgCustomFeatures || [
  6068.         ]).map(function (e) {
  6069.           return zr(zr({
  6070.           }, e), {
  6071.           }, {
  6072.             isCustom: !0
  6073.           })
  6074.         }))),
  6075.         zr(zr({
  6076.         }, e), {
  6077.         }, {
  6078.           features: a,
  6079.           plans: t,
  6080.           isSubscribed: n
  6081.         })
  6082.       });
  6083.       return {
  6084.         orgPackages: e,
  6085.         orgCurrentPackage: je.a.find(e, function (e) {
  6086.           return e.productName === Ur.SAAS_PRODUCT_COMMENTS && e.isSubscribed
  6087.         }),
  6088.         pollsOrgCurrentPackage: je.a.find(e, function (e) {
  6089.           return e.productName === Ur.SAAS_PRODUCT_POLLS && e.isSubscribed
  6090.         })
  6091.       }
  6092.     }
  6093.     function Wr() {
  6094.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Yr,
  6095.       t = 1 < arguments.length ? arguments[1] : void 0,
  6096.       n = t.type,
  6097.       a = Mr(t, [
  6098.         'type'
  6099.       ]);
  6100.       switch (n) {
  6101.         case _e.fetchStart:
  6102.           e = zr(zr({
  6103.           }, e), {
  6104.           }, {
  6105.             numFetching: e.numFetching + 1,
  6106.             orgSubscriptionIsFetching: !0
  6107.           });
  6108.           break;
  6109.         case _e.updateSubscriptionStart:
  6110.           e = zr(zr({
  6111.           }, e), {
  6112.           }, {
  6113.             isSubscriptionUpdating: !0
  6114.           });
  6115.           break;
  6116.         case _e.updateSubscriptionEnd:
  6117.           e = zr(zr({
  6118.           }, e), {
  6119.           }, {
  6120.             isSubscriptionUpdating: !1
  6121.           });
  6122.           break;
  6123.         case _e.updateInvoiceStart:
  6124.           e = zr(zr({
  6125.           }, e), {
  6126.           }, {
  6127.             isInvoiceUpdating: !0
  6128.           });
  6129.           break;
  6130.         case _e.updateInvoiceEnd:
  6131.           e = zr(zr({
  6132.           }, e), {
  6133.           }, {
  6134.             isInvoiceUpdating: !1
  6135.           });
  6136.           break;
  6137.         case _e.fetchFailed:
  6138.         case _e.fetchedPackages:
  6139.         case _e.fetchedCurrentPlan:
  6140.         case _e.pollsFetchedCurrentPlan:
  6141.         case _e.fetchedBillingInformation:
  6142.           a.isFromInitialFetch && (e = zr(zr({
  6143.           }, e), {
  6144.           }, {
  6145.             numFetching: e.numFetching - 1,
  6146.             orgSubscriptionIsFetching: 0 < e.numFetching - 1 || !a.response
  6147.           }))
  6148.       }
  6149.       if (a.response) switch (n) {
  6150.         case _e.fetchedPackages:
  6151.           e = zr(zr({
  6152.           }, e), {
  6153.           }, {
  6154.             packages: a.response.map(function (e) {
  6155.               var t = e.id === Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID ? [
  6156.                 Ur.POLLS_BUSINESS_PLAN
  6157.               ] : e.id === Ur.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID ? [
  6158.                 Ur.POLLS_AD_SUPPORTED_PLAN
  6159.               ] : e.plans.filter(function (e) {
  6160.                 return !~Ur.OLD_PLAN_IDS.indexOf(e.id)
  6161.               }),
  6162.               n = e.pricingOptions.filter(function (e) {
  6163.                 return !~Ur.OLD_PLAN_IDS.indexOf(e.id)
  6164.               });
  6165.               return zr(zr({
  6166.               }, e), {
  6167.               }, {
  6168.                 plans: t,
  6169.                 pricingOptions: n
  6170.               })
  6171.             })
  6172.           }),
  6173.           e = zr(zr({
  6174.           }, e), Vr(e));
  6175.           break;
  6176.         case _e.fetchedCurrentPlan:
  6177.           e = zr(zr({
  6178.           }, e), {
  6179.           }, {
  6180.             orgAvailableTrials: a.response.availableTrials,
  6181.             orgTransferableTrials: a.response.transferableTrials,
  6182.             orgCurrentPackageWillCancel: a.response.cancelAtPeriodEnd,
  6183.             orgCurrentPlan: a.response.plan || Ur.BASIC_PLAN,
  6184.             orgCustomFeatures: a.response.customFeatures,
  6185.             orgTrial: a.response.trial,
  6186.             orgAvailableDiscount: a.response.availableDiscount
  6187.           }),
  6188.           e = zr(zr({
  6189.           }, e), Vr(e));
  6190.           break;
  6191.         case _e.pollsFetchedCurrentPlan:
  6192.           e = zr(zr({
  6193.           }, e), {
  6194.           }, {
  6195.             orgAvailableTrials: a.response.availableTrials,
  6196.             orgTransferableTrials: a.response.transferableTrials,
  6197.             pollsOrgCurrentPackageWillCancel: a.response.cancelAtPeriodEnd,
  6198.             pollsOrgCurrentPlan: a.response.plan,
  6199.             pollsOrgCustomFeatures: a.response.customFeatures,
  6200.             pollsOrgTrial: a.response.trial,
  6201.             pollsOrgAvailableDiscount: a.response.availableDiscount,
  6202.             pollsPlanStatus: a.response.status
  6203.           }),
  6204.           e = zr(zr({
  6205.           }, e), Vr(e));
  6206.           break;
  6207.         case _e.fetchedBillingInformation:
  6208.         case _e.updateInvoiceEnd:
  6209.           e = zr(zr({
  6210.           }, e), {
  6211.           }, {
  6212.             orgBilling: a.response
  6213.           }),
  6214.           e = zr(zr({
  6215.           }, e), Vr(e))
  6216.       }
  6217.       return e
  6218.     }
  6219.     var Yr = {
  6220.       isSubscriptionUpdating: !1,
  6221.       isInvoiceUpdating: !1,
  6222.       numFetching: 0,
  6223.       orgAvailableTrials: null,
  6224.       orgBilling: null,
  6225.       orgCurrentPackage: null,
  6226.       orgCurrentPackageWillCancel: !1,
  6227.       orgCurrentPlan: null,
  6228.       orgCustomFeatures: null,
  6229.       orgPackages: null,
  6230.       orgSubscriptionIsFetching: !1,
  6231.       orgTrial: null,
  6232.       packages: null,
  6233.       orgAvailableDiscount: null,
  6234.       pollsOrgCurrentPackageWillCancel: !1,
  6235.       pollsOrgCurrentPlan: null,
  6236.       pollsOrgCustomFeatures: null,
  6237.       pollsOrgTrial: null,
  6238.       pollsOrgAvailableDiscount: null,
  6239.       pollsPlanStatus: null
  6240.     };
  6241.     function Qr(t, e) {
  6242.       var n,
  6243.       a = Object.keys(t);
  6244.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  6245.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  6246.       })), a.push.apply(a, n)),
  6247.       a
  6248.     }
  6249.     function Kr(a) {
  6250.       for (var e = 1; e < arguments.length; e++) {
  6251.         var r = null != arguments[e] ? arguments[e] : {
  6252.         };
  6253.         e % 2 ? Qr(Object(r), !0).forEach(function (e) {
  6254.           var t,
  6255.           n;
  6256.           n = r[t = e],
  6257.           t in (e = a) ? Object.defineProperty(e, t, {
  6258.             value: n,
  6259.             enumerable: !0,
  6260.             configurable: !0,
  6261.             writable: !0
  6262.           }) : e[t] = n
  6263.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Qr(Object(r)).forEach(function (e) {
  6264.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  6265.         })
  6266.       }
  6267.       return a
  6268.     }
  6269.     function Jr(e, t) {
  6270.       if (null == e) return {
  6271.       };
  6272.       var n,
  6273.       a = function (e, t) {
  6274.         if (null == e) return {
  6275.         };
  6276.         var n,
  6277.         a,
  6278.         r = {
  6279.         },
  6280.         o = Object.keys(e);
  6281.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  6282.         return r
  6283.       }(e, t);
  6284.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  6285.       return a
  6286.     }
  6287.     function $r() {
  6288.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : Zr,
  6289.       t = (n = 1 < arguments.length ? arguments[1] : void 0).type,
  6290.       n = Jr(n, [
  6291.         'type'
  6292.       ]);
  6293.       return t !== ae.onFetch ? e : Kr(Kr({
  6294.       }, e), n.suggestedActions)
  6295.     }
  6296.     var Zr = {
  6297.     };
  6298.     function Xr(t, e) {
  6299.       var n,
  6300.       a = Object.keys(t);
  6301.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  6302.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  6303.       })), a.push.apply(a, n)),
  6304.       a
  6305.     }
  6306.     function eo(a) {
  6307.       for (var e = 1; e < arguments.length; e++) {
  6308.         var r = null != arguments[e] ? arguments[e] : {
  6309.         };
  6310.         e % 2 ? Xr(Object(r), !0).forEach(function (e) {
  6311.           var t,
  6312.           n;
  6313.           n = r[t = e],
  6314.           t in (e = a) ? Object.defineProperty(e, t, {
  6315.             value: n,
  6316.             enumerable: !0,
  6317.             configurable: !0,
  6318.             writable: !0
  6319.           }) : e[t] = n
  6320.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Xr(Object(r)).forEach(function (e) {
  6321.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  6322.         })
  6323.       }
  6324.       return a
  6325.     }
  6326.     function to(e, t) {
  6327.       if (null == e) return {
  6328.       };
  6329.       var n,
  6330.       a = function (e, t) {
  6331.         if (null == e) return {
  6332.         };
  6333.         var n,
  6334.         a,
  6335.         r = {
  6336.         },
  6337.         o = Object.keys(e);
  6338.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  6339.         return r
  6340.       }(e, t);
  6341.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  6342.       return a
  6343.     }
  6344.     function no() {
  6345.       var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ao,
  6346.       t = 1 < arguments.length ? arguments[1] : void 0,
  6347.       n = t.type,
  6348.       a = to(t, [
  6349.         'type'
  6350.       ]);
  6351.       switch (n) {
  6352.         case Ee.configureRemotePlugin:
  6353.           return eo(eo({
  6354.           }, e), {
  6355.           }, {
  6356.             isConfiguring: !0,
  6357.             configureError: null
  6358.           });
  6359.         case Ee.onConfigureError:
  6360.           return eo(eo({
  6361.           }, e), {
  6362.           }, {
  6363.             isConfiguring: !1,
  6364.             configureError: a.message
  6365.           });
  6366.         case Ee.configuring:
  6367.           return eo(eo({
  6368.           }, e), {
  6369.           }, {
  6370.             isConfiguring: !0,
  6371.             isConfigured: !1,
  6372.             configureError: null
  6373.           });
  6374.         case Ee.onConfigure:
  6375.           return eo(eo({
  6376.           }, e), {
  6377.           }, {
  6378.             isConfiguring: !1,
  6379.             isConfigured: !0,
  6380.             configureError: null,
  6381.             installToken: ''
  6382.           });
  6383.         case Ee.updateInstallToken:
  6384.           return eo(eo({
  6385.           }, e), {
  6386.           }, {
  6387.             installToken: a.token
  6388.           });
  6389.         default:
  6390.           return e
  6391.       }
  6392.     }
  6393.     var ao = {
  6394.       installToken: '',
  6395.       isConfiguring: !1,
  6396.       isConfigured: !1,
  6397.       configureError: null
  6398.     },
  6399.     ro = function () {
  6400.       var e = Object(T.applyMiddleware) (q.a);
  6401.       return Object(T.createStore) (Object(T.combineReducers) ({
  6402.         aet: Pe,
  6403.         analyticsContent: xe,
  6404.         audienceAnalytics: Ue,
  6405.         auth: Me,
  6406.         badges: tt,
  6407.         badgesManage: Je,
  6408.         behindClick: it,
  6409.         campaign: vt,
  6410.         commentCounts: wt,
  6411.         discussionsEdit: Rt,
  6412.         earnings: Tt,
  6413.         featuredMessages: Ut,
  6414.         forumCategories: zt,
  6415.         forumDetails: Yt,
  6416.         forumLanguages: Jt,
  6417.         forumModerator: rn,
  6418.         forumUpdateFavicon: un,
  6419.         forumWebhooks: gn,
  6420.         moderateSearch: En,
  6421.         moderationRules: Gn,
  6422.         moderationUserLists: $n,
  6423.         orgAdmin: aa,
  6424.         orgForums: la,
  6425.         policy: ma,
  6426.         pollsEditor: ba,
  6427.         pollsList: Pa,
  6428.         pollModerator: ja,
  6429.         pollStats: La,
  6430.         pollAnalytics: Ga,
  6431.         reactions: $a,
  6432.         reactionsAnalytics: nr,
  6433.         recommendations: dr,
  6434.         restrictedWords: gr,
  6435.         saasFeatures: Sr,
  6436.         selection: Dr,
  6437.         stripeCheckout: Fr,
  6438.         subscription: Wr,
  6439.         suggestedActions: $r,
  6440.         wordpressInstall: no
  6441.       }), {
  6442.       }, e)
  6443.     },
  6444.     oo = n(28),
  6445.     io = n.n(oo),
  6446.     so = {
  6447.       fetch: function (n) {
  6448.         return function (t, e) {
  6449.           e = e(),
  6450.           e = e.saasFeatures[n = n || (e.selection.organization || {
  6451.           }).id] || {
  6452.           };
  6453.           !n || e.isFetching || e.isFetched || (e = {
  6454.             organization: n,
  6455.             attach: 'organizationFeatures'
  6456.           }, t({
  6457.             orgId: n,
  6458.             type: ye.fetching
  6459.           }), io.a.call('organizations/details', {
  6460.             data: e
  6461.           }).success(function (e) {
  6462.             t({
  6463.               orgId: n,
  6464.               type: ye.onFetch,
  6465.               features: e.response.features
  6466.             })
  6467.           }).error(function () {
  6468.             t({
  6469.               orgId: n,
  6470.               type: ye.onError
  6471.             })
  6472.           }))
  6473.         }
  6474.       }
  6475.     },
  6476.     lo = Object.keys(ft).reduce(function (e, t) {
  6477.       return e[ft[t]] = !0,
  6478.       e
  6479.     }, {
  6480.     }),
  6481.     co = {
  6482.     };
  6483.     var uo = {
  6484.       addSupportedSelections: function (e, n) {
  6485.         co[e] = Object.keys(n).reduce(function (e, t) {
  6486.           return e[t] = !!n[t],
  6487.           e
  6488.         }, {
  6489.         })
  6490.       },
  6491.       getSupportedSelections: function (e) {
  6492.         return co[e] || lo
  6493.       }
  6494.     },
  6495.     po = /(\/admin(?:\/orgs\/\d+\/[^/]+)?)(\/.*)/;
  6496.     function mo(e) {
  6497.       return window.location.pathname.match(po) [1].replace('/admin', '') + e
  6498.     }
  6499.     function fo(e) {
  6500.       var t = (e || window.location.pathname).match(po);
  6501.       return t ? t[2] : e
  6502.     }
  6503.     var ho = {
  6504.       getAdminPath: fo,
  6505.       getRoot: function (e) {
  6506.         var t = (e || window.location.pathname).match(po);
  6507.         return t ? t[1] : e
  6508.       },
  6509.       getRoute: mo
  6510.     },
  6511.     go = n(34),
  6512.     yo = n.n(go),
  6513.     bo = n(37),
  6514.     vo = n.n(bo),
  6515.     _o = n(66),
  6516.     Eo = n.n(_o);
  6517.     function Oo(t, e) {
  6518.       var n,
  6519.       a = Object.keys(t);
  6520.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  6521.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  6522.       })), a.push.apply(a, n)),
  6523.       a
  6524.     }
  6525.     function So(t) {
  6526.       for (var e = 1; e < arguments.length; e++) {
  6527.         var n = null != arguments[e] ? arguments[e] : {
  6528.         };
  6529.         e % 2 ? Oo(Object(n), !0).forEach(function (e) {
  6530.           wo(t, e, n[e])
  6531.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Oo(Object(n)).forEach(function (e) {
  6532.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  6533.         })
  6534.       }
  6535.       return t
  6536.     }
  6537.     function wo(e, t, n) {
  6538.       return t in e ? Object.defineProperty(e, t, {
  6539.         value: n,
  6540.         enumerable: !0,
  6541.         configurable: !0,
  6542.         writable: !0
  6543.       }) : e[t] = n,
  6544.       e
  6545.     }
  6546.     function Po(e, t) {
  6547.       t({
  6548.         type: ve.updateData,
  6549.         checkoutData: e
  6550.       })
  6551.     }
  6552.     var ko = {
  6553.       addStripeScript: function (e, t) {
  6554.         t().stripeCheckout.stripeScriptAdded || ((t = window.document.createElement('script')).src = 'https://checkout.stripe.com/checkout.js', t.async = 1, t.onload = function () {
  6555.           e({
  6556.             type: ve.scriptLoaded
  6557.           })
  6558.         }, window.document.head.appendChild(t), e({
  6559.           type: ve.scriptAdded
  6560.         }))
  6561.       },
  6562.       onOpenStripe: function (e, t) {
  6563.         var t = t().stripeCheckout.stripeScriptInstance,
  6564.         n = vo.a.Deferred();
  6565.         if (!t) return n.reject(Error('Stripe has not loaded')),
  6566.         n.promise();
  6567.         var a = !1;
  6568.         return t.open(So(So({
  6569.           key: pt.a.keys.stripe,
  6570.           locale: 'auto'
  6571.         }, e), {
  6572.         }, {
  6573.           token: function (e) {
  6574.             a = !0,
  6575.             n.resolve(e)
  6576.           },
  6577.           closed: function () {
  6578.             a || n.reject(Error('Checkout window was closed'))
  6579.           }
  6580.         })),
  6581.         n.promise()
  6582.       },
  6583.       addStripeCheckoutScript: function () {
  6584.         return function (t, e) {
  6585.           var n = vo.a.Deferred();
  6586.           if (e().stripeCheckout.checkoutScriptAdded) return n.resolve(!0);
  6587.           e = window.document.createElement('script');
  6588.           return e.src = 'https://js.stripe.com/v3/',
  6589.           e.async = 1,
  6590.           e.onload = function () {
  6591.             var e = window.Stripe && window.Stripe(pt.a.keys.stripe);
  6592.             t({
  6593.               type: ve.stripeCheckoutLoaded,
  6594.               stripeInstance: e
  6595.             }),
  6596.             n.resolve(!0)
  6597.           },
  6598.           window.document.head.appendChild(e),
  6599.           t({
  6600.             type: ve.checkoutScriptAdded
  6601.           }),
  6602.           n.promise()
  6603.         }
  6604.       },
  6605.       createStripeCheckoutSession: function () {
  6606.         return function (e, t) {
  6607.           var n = t().stripeCheckout.checkoutData,
  6608.           a = n.plan,
  6609.           r = n.returnUrl,
  6610.           o = n.forum,
  6611.           n = n.organization,
  6612.           t = t().selection,
  6613.           n = n || t && t.organization && t.organization.id,
  6614.           t = n ? void 0 : o || t && t.forum && t.forum.shortname,
  6615.           i = vo.a.Deferred();
  6616.           return io.a.call('organizations/saas/startCheckoutSession', {
  6617.             type: 'POST',
  6618.             data: {
  6619.               organization: n,
  6620.               forum: t,
  6621.               pricingOption: a || void 0,
  6622.               returnUrl: r && Eo() (r, wo({
  6623.               }, Ur.CHECKOUT_SUCCESS_QUERY_PARAM, a.indexOf('polls') ? Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_COMMENTS : Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS))
  6624.             },
  6625.             success: function (e) {
  6626.               i.resolve(e.response && e.response.clientSecret)
  6627.             },
  6628.             error: function () {
  6629.               e({
  6630.                 type: ve.onError
  6631.               }),
  6632.               i.reject('There was an error')
  6633.             }
  6634.           }),
  6635.           i.promise()
  6636.         }
  6637.       },
  6638.       updateCheckoutData: Po,
  6639.       updateCheckoutDataFromComponent: function (t) {
  6640.         return function (e) {
  6641.           return Po(t, e)
  6642.         }
  6643.       }
  6644.     };
  6645.     function No(e) {
  6646.       return (No = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  6647.         return typeof e
  6648.       }
  6649.        : function (e) {
  6650.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  6651.       }) (e)
  6652.     }
  6653.     function Co(e, t) {
  6654.       for (var n = 0; n < t.length; n++) {
  6655.         var a = t[n];
  6656.         a.enumerable = a.enumerable || !1,
  6657.         a.configurable = !0,
  6658.         'value' in a && (a.writable = !0),
  6659.         Object.defineProperty(e, a.key, a)
  6660.       }
  6661.     }
  6662.     function Ro(e, t) {
  6663.       return (Ro = Object.setPrototypeOf || function (e, t) {
  6664.         return e.__proto__ = t,
  6665.         e
  6666.       }) (e, t)
  6667.     }
  6668.     function xo(n) {
  6669.       var a = function () {
  6670.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  6671.         if (Reflect.construct.sham) return !1;
  6672.         if ('function' == typeof Proxy) return !0;
  6673.         try {
  6674.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  6675.           ], function () {
  6676.           })),
  6677.           !0
  6678.         } catch (e) {
  6679.           return !1
  6680.         }
  6681.       }();
  6682.       return function () {
  6683.         var e,
  6684.         t = Do(n);
  6685.         return e = a ? (e = Do(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  6686.         t = this,
  6687.         !(e = e) || 'object' !== No(e) && 'function' != typeof e ? Ao(t) : e
  6688.       }
  6689.     }
  6690.     function Ao(e) {
  6691.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  6692.       return e
  6693.     }
  6694.     function Do(e) {
  6695.       return (Do = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  6696.         return e.__proto__ || Object.getPrototypeOf(e)
  6697.       }) (e)
  6698.     }
  6699.     function jo(e, t, n) {
  6700.       return t in e ? Object.defineProperty(e, t, {
  6701.         value: n,
  6702.         enumerable: !0,
  6703.         configurable: !0,
  6704.         writable: !0
  6705.       }) : e[t] = n,
  6706.       e
  6707.     }
  6708.     var To = function () {
  6709.       !function (e, t) {
  6710.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  6711.         e.prototype = Object.create(t && t.prototype, {
  6712.           constructor: {
  6713.             value: e,
  6714.             writable: !0,
  6715.             configurable: !0
  6716.           }
  6717.         }),
  6718.         t && Ro(e, t)
  6719.       }(o, A);
  6720.       var e,
  6721.       t,
  6722.       n,
  6723.       r = xo(o);
  6724.       function o() {
  6725.         var n;
  6726.         !function (e, t) {
  6727.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  6728.         }(this, o);
  6729.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  6730.         return jo(Ao(n = r.call.apply(r, [
  6731.           this
  6732.         ].concat(t))), 'state', {
  6733.           embeddedCheckout: null
  6734.         }),
  6735.         jo(Ao(n), 'loadStripeCheckout', function () {
  6736.           var e = n.props,
  6737.           t = e.stripeInstance;
  6738.           t && t.initEmbeddedCheckout({
  6739.             fetchClientSecret: e.createStripeCheckoutSession
  6740.           }).then(function (e) {
  6741.             e = e.embeddedCheckout;
  6742.             n.setState({
  6743.               embeddedCheckout: e
  6744.             }),
  6745.             e.mount('#checkout')
  6746.           })
  6747.         }),
  6748.         n
  6749.       }
  6750.       return e = o,
  6751.       (t = [
  6752.         {
  6753.           key: 'componentDidMount',
  6754.           value: function () {
  6755.             this.props.addStripeCheckoutScript().done(this.loadStripeCheckout)
  6756.           }
  6757.         },
  6758.         {
  6759.           key: 'componentWillUnmount',
  6760.           value: function () {
  6761.             this.state.embeddedCheckout && this.state.embeddedCheckout.destroy()
  6762.           }
  6763.         },
  6764.         {
  6765.           key: 'render',
  6766.           value: function () {
  6767.             return C.a.createElement('section', null, C.a.createElement('div', {
  6768.               className: 'content__wrap --checkout'
  6769.             }, C.a.createElement('header', {
  6770.               className: 'checkout__header'
  6771.             }, C.a.createElement('img', {
  6772.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/disqus-logo-blue-transparent.png',
  6773.               width: '174',
  6774.               height: '32',
  6775.               alt: 'Disqus',
  6776.               title: 'Disqus'
  6777.             }), C.a.createElement('h2', {
  6778.               className: 'checkout__title'
  6779.             }, 'Checkout')), C.a.createElement('div', {
  6780.               id: 'checkout'
  6781.             })))
  6782.           }
  6783.         }
  6784.       ]) && Co(e.prototype, t),
  6785.       n && Co(e, n),
  6786.       o
  6787.     }();
  6788.     jo(To, 'propTypes', {
  6789.       stripeInstance: b.a.object,
  6790.       addStripeCheckoutScript: b.a.func.isRequired,
  6791.       createStripeCheckoutSession: b.a.func.isRequired
  6792.     });
  6793.     var Io = Object(u.connect) (function (e) {
  6794.       return {
  6795.         stripeInstance: e.stripeCheckout.stripeInstance
  6796.       }
  6797.     }, {
  6798.       addStripeCheckoutScript: ko.addStripeCheckoutScript,
  6799.       createStripeCheckoutSession: ko.createStripeCheckoutSession
  6800.     }) (To),
  6801.     qo = n(32),
  6802.     Fo = n.n(qo),
  6803.     Lo = function (e) {
  6804.       var t = e.children,
  6805.       n = e.linkActiveClassName,
  6806.       a = e.linkClassName,
  6807.       r = e.path,
  6808.       o = e.selection,
  6809.       i = e.activeRoutes,
  6810.       s = e.forumId,
  6811.       l = e.onlyActiveOnIndex,
  6812.       c = e.history,
  6813.       u = e.forceActive,
  6814.       e = e.disabled;
  6815.       if (s && (o.type === ft.global || o.type === ft.organization || o.forum.id !== s)) {
  6816.         s = '//'.concat(s, '.').concat(br.disqusHost, '/admin').concat(r);
  6817.         return C.a.createElement('a', {
  6818.           href: s,
  6819.           className: a
  6820.         }, t)
  6821.       }
  6822.       n = n || 'active',
  6823.       a = u || (i || [
  6824.       ]).some(function (e) {
  6825.         return c.isActive(e)
  6826.       }) ? ''.concat(a, ' ').concat(n) : a;
  6827.       return C.a.createElement(l ? v.IndexLink : v.Link, {
  6828.         to: r,
  6829.         className: a,
  6830.         activeClassName: n,
  6831.         disabled: e
  6832.       }, t)
  6833.     };
  6834.     Lo.propTypes = {
  6835.       children: b.a.node.isRequired,
  6836.       linkActiveClassName: b.a.string,
  6837.       linkClassName: b.a.string,
  6838.       path: b.a.string.isRequired,
  6839.       selection: ht.isRequired,
  6840.       activeRoutes: b.a.arrayOf(b.a.string),
  6841.       forumId: b.a.string,
  6842.       onlyActiveOnIndex: b.a.bool,
  6843.       history: b.a.shape({
  6844.         isActive: b.a.func.isRequired
  6845.       }).isRequired,
  6846.       forceActive: b.a.bool,
  6847.       disabled: b.a.bool
  6848.     };
  6849.     var Uo = Fo() (Lo),
  6850.     Mo = n(146),
  6851.     Bo = n.n(Mo);
  6852.     function zo(t, e) {
  6853.       var n,
  6854.       a = Object.keys(t);
  6855.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  6856.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  6857.       })), a.push.apply(a, n)),
  6858.       a
  6859.     }
  6860.     function Ho(t) {
  6861.       for (var e = 1; e < arguments.length; e++) {
  6862.         var n = null != arguments[e] ? arguments[e] : {
  6863.         };
  6864.         e % 2 ? zo(Object(n), !0).forEach(function (e) {
  6865.           Go(t, e, n[e])
  6866.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : zo(Object(n)).forEach(function (e) {
  6867.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  6868.         })
  6869.       }
  6870.       return t
  6871.     }
  6872.     function Go(e, t, n) {
  6873.       return t in e ? Object.defineProperty(e, t, {
  6874.         value: n,
  6875.         enumerable: !0,
  6876.         configurable: !0,
  6877.         writable: !0
  6878.       }) : e[t] = n,
  6879.       e
  6880.     }
  6881.     function Vo() {
  6882.       return (Vo = Object.assign || function (e) {
  6883.         for (var t = 1; t < arguments.length; t++) {
  6884.           var n,
  6885.           a = arguments[t];
  6886.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  6887.         }
  6888.         return e
  6889.       }).apply(this, arguments)
  6890.     }
  6891.     function Wo(e) {
  6892.       var t = {
  6893.       };
  6894.       return (e = e || {
  6895.       }).type === ft.forum ? Vo(t, {
  6896.         object_type: 'forum',
  6897.         object_id: e.forum.shortname,
  6898.         forum_id: e.forum.id
  6899.       }) : e.type === ft.organization && Vo(t, {
  6900.         object_type: 'organization',
  6901.         object_id: e.organization.id
  6902.       }),
  6903.       e.organization && (t.organization_id = e.organization.id),
  6904.       t
  6905.     }
  6906.     function Yo(e, t) {
  6907.       return Bo.a.client.emit(Ho(Ho(Ho({
  6908.       }, Ko), {
  6909.       }, {
  6910.         user_id: Qo.id
  6911.       }, Wo(e)), t))
  6912.     }
  6913.     var Qo = Ve.a.getFromCookie(),
  6914.     Ko = Object.freeze({
  6915.       product: 'publisher_admin'
  6916.     }),
  6917.     Jo = {
  6918.       ADS_KEYS: [
  6919.         'adsPositionTopEnabled',
  6920.         'adsPositionBottomEnabled',
  6921.         'adsPositionInthreadEnabled',
  6922.         'adsPositionRecommendationsEnabled',
  6923.         'adsProductDisplayEnabled',
  6924.         'adsProductStoriesEnabled',
  6925.         'adsProductLinksEnabled',
  6926.         'adsProductVideoEnabled'
  6927.       ],
  6928.       getSelectionData: Wo,
  6929.       ensureBooleans: function (n) {
  6930.         return Object.keys(n || {
  6931.         }).reduce(function (e, t) {
  6932.           return Ho(Ho({
  6933.           }, e), {
  6934.           }, Go({
  6935.           }, t, !!n[t]))
  6936.         }, {
  6937.         })
  6938.       },
  6939.       emitEvent: Yo,
  6940.       trackSettingsChanges: function (e) {
  6941.         var n = (e = e || {
  6942.         }).oldState || {
  6943.         },
  6944.         a = e.newState || {
  6945.         },
  6946.         t = e.jesterData,
  6947.         r = !e.keys,
  6948.         o = (e.keys || Object.keys(Ho(Ho({
  6949.         }, n), a))).reduce(function (e, t) {
  6950.           return r && n[t] === a[t] ? e : Ho(Ho({
  6951.           }, e), {
  6952.           }, Go({
  6953.           }, t, {
  6954.             before: n[t],
  6955.             after: a[t]
  6956.           }))
  6957.         }, {
  6958.         }),
  6959.         o = Object.keys(o).length ? JSON.stringify(o) : void 0;
  6960.         Yo(e.selection, Ho({
  6961.           extra_data: o
  6962.         }, t))
  6963.       }
  6964.     };
  6965.     function $o(t, e) {
  6966.       var n,
  6967.       a = Object.keys(t);
  6968.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  6969.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  6970.       })), a.push.apply(a, n)),
  6971.       a
  6972.     }
  6973.     function Zo(a) {
  6974.       for (var e = 1; e < arguments.length; e++) {
  6975.         var r = null != arguments[e] ? arguments[e] : {
  6976.         };
  6977.         e % 2 ? $o(Object(r), !0).forEach(function (e) {
  6978.           var t,
  6979.           n;
  6980.           n = r[t = e],
  6981.           t in (e = a) ? Object.defineProperty(e, t, {
  6982.             value: n,
  6983.             enumerable: !0,
  6984.             configurable: !0,
  6985.             writable: !0
  6986.           }) : e[t] = n
  6987.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : $o(Object(r)).forEach(function (e) {
  6988.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  6989.         })
  6990.       }
  6991.       return a
  6992.     }
  6993.     function Xo(a) {
  6994.       return function (n) {
  6995.         return function (e, t) {
  6996.           t = t().selection;
  6997.           Jo.emitEvent(t, Zo(Zo({
  6998.           }, a), n))
  6999.         }
  7000.       }
  7001.     }
  7002.     function ei(n) {
  7003.       return function () {
  7004.         return function (e, t) {
  7005.           t = t().selection;
  7006.           Jo.emitEvent(t, Zo(Zo({
  7007.           }, n), {
  7008.           }, {
  7009.             verb: 'view'
  7010.           }))
  7011.         }
  7012.       }
  7013.     }
  7014.     var ti = function (e) {
  7015.       var t = e.linkClassName,
  7016.       n = ho.getAdminPath();
  7017.       return (e.activeRoutes || [
  7018.         e.path
  7019.       ]).some(function (e) {
  7020.         return e.test ? e.test(n) : n === e
  7021.       }) && (t += ' '.concat(e.linkActiveClassName || 'active')),
  7022.       C.a.createElement(v.Link, {
  7023.         to: ho.getRoute(e.path),
  7024.         className: t,
  7025.         activeClassName: e.linkActiveClassName,
  7026.         disabled: e.disabled
  7027.       }, e.children)
  7028.     };
  7029.     ti.propTypes = {
  7030.       children: b.a.node.isRequired,
  7031.       linkActiveClassName: b.a.string,
  7032.       linkClassName: b.a.string,
  7033.       path: b.a.string.isRequired,
  7034.       activeRoutes: b.a.arrayOf(b.a.oneOfType([b.a.string,
  7035.       b.a.instanceOf(RegExp)])),
  7036.       disabled: b.a.bool
  7037.     };
  7038.     var ni = ti,
  7039.     ai = function (e) {
  7040.       return C.a.createElement(ni, {
  7041.         linkActiveClassName: e.linkActiveClassName,
  7042.         linkClassName: e.linkClassName,
  7043.         path: e.path,
  7044.         activeRoutes: e.activeRoutes,
  7045.         disabled: e.disabled
  7046.       }, e.children)
  7047.     };
  7048.     ai.propTypes = {
  7049.       children: b.a.node.isRequired,
  7050.       linkActiveClassName: b.a.string,
  7051.       linkClassName: b.a.string,
  7052.       path: b.a.string.isRequired,
  7053.       activeRoutes: b.a.arrayOf(b.a.oneOfType([b.a.string,
  7054.       b.a.instanceOf(RegExp)])),
  7055.       disabled: b.a.bool
  7056.     };
  7057.     var ri = ai;
  7058.     function oi(e) {
  7059.       return (oi = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  7060.         return typeof e
  7061.       }
  7062.        : function (e) {
  7063.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  7064.       }) (e)
  7065.     }
  7066.     function ii(e, t) {
  7067.       for (var n = 0; n < t.length; n++) {
  7068.         var a = t[n];
  7069.         a.enumerable = a.enumerable || !1,
  7070.         a.configurable = !0,
  7071.         'value' in a && (a.writable = !0),
  7072.         Object.defineProperty(e, a.key, a)
  7073.       }
  7074.     }
  7075.     function si(e, t) {
  7076.       return (si = Object.setPrototypeOf || function (e, t) {
  7077.         return e.__proto__ = t,
  7078.         e
  7079.       }) (e, t)
  7080.     }
  7081.     function li(n) {
  7082.       var a = function () {
  7083.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  7084.         if (Reflect.construct.sham) return !1;
  7085.         if ('function' == typeof Proxy) return !0;
  7086.         try {
  7087.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  7088.           ], function () {
  7089.           })),
  7090.           !0
  7091.         } catch (e) {
  7092.           return !1
  7093.         }
  7094.       }();
  7095.       return function () {
  7096.         var e,
  7097.         t = ui(n);
  7098.         return e = a ? (e = ui(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  7099.         t = this,
  7100.         !(e = e) || 'object' !== oi(e) && 'function' != typeof e ? ci(t) : e
  7101.       }
  7102.     }
  7103.     function ci(e) {
  7104.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  7105.       return e
  7106.     }
  7107.     function ui(e) {
  7108.       return (ui = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  7109.         return e.__proto__ || Object.getPrototypeOf(e)
  7110.       }) (e)
  7111.     }
  7112.     function pi(e, t, n) {
  7113.       return t in e ? Object.defineProperty(e, t, {
  7114.         value: n,
  7115.         enumerable: !0,
  7116.         configurable: !0,
  7117.         writable: !0
  7118.       }) : e[t] = n,
  7119.       e
  7120.     }
  7121.     var di = function () {
  7122.       !function (e, t) {
  7123.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  7124.         e.prototype = Object.create(t && t.prototype, {
  7125.           constructor: {
  7126.             value: e,
  7127.             writable: !0,
  7128.             configurable: !0
  7129.           }
  7130.         }),
  7131.         t && si(e, t)
  7132.       }(o, A);
  7133.       var e,
  7134.       t,
  7135.       n,
  7136.       r = li(o);
  7137.       function o() {
  7138.         var t;
  7139.         !function (e, t) {
  7140.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  7141.         }(this, o);
  7142.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  7143.         return pi(ci(t = r.call.apply(r, [
  7144.           this
  7145.         ].concat(n))), 'state', {
  7146.           isOpen: !1
  7147.         }),
  7148.         pi(ci(t), 'handleClick', function () {
  7149.           t.setState({
  7150.             isOpen: !t.state.isOpen
  7151.           })
  7152.         }),
  7153.         pi(ci(t), 'reportClick', function (e) {
  7154.           t.props.emitTrackingEvent({
  7155.             verb: 'click',
  7156.             area: 'side_panel',
  7157.             object_type: 'button',
  7158.             object_id: e
  7159.           })
  7160.         }),
  7161.         pi(ci(t), 'isAdvancedAnalyticsSupported', function () {
  7162.           if (!t.props.selection.organization) return !1;
  7163.           var e = t.props.saasFeatures[t.props.selection.organization.id];
  7164.           return e && e.advancedAnalytics
  7165.         }),
  7166.         t
  7167.       }
  7168.       return e = o,
  7169.       (t = [
  7170.         {
  7171.           key: 'render',
  7172.           value: function () {
  7173.             var e = this.state.isOpen ? 'nav__item dropdown-open' : 'nav__item',
  7174.             t = this.isAdvancedAnalyticsSupported(),
  7175.             n = t ? Uo : ri,
  7176.             a = yo.a.isFeatureActive('reactions_analytics') ? C.a.createElement(Uo, {
  7177.               linkClassName: e,
  7178.               linkActiveClassName: 'active',
  7179.               path: '/analytics/reactions/',
  7180.               selection: this.props.selection,
  7181.               disabled: this.props.pollsOnly
  7182.             }, C.a.createElement('div', {
  7183.               className: 'nav-lnk -color-muted'
  7184.             }, C.a.createElement('div', {
  7185.               className: 'nav-lnk__blk'
  7186.             }, C.a.createElement('span', {
  7187.               className: 'button__text'
  7188.             }, 'Reactions')), C.a.createElement('div', {
  7189.               className: 'nav-lnk__pointer'
  7190.             }, C.a.createElement('span', {
  7191.               className: 'icon icon-right-bracket'
  7192.             })))) : null,
  7193.             r = yo.a.isFeatureActive('customer_pulse_analytics') ? C.a.createElement(Uo, {
  7194.               linkClassName: e,
  7195.               linkActiveClassName: 'active',
  7196.               path: '/analytics/pulse/',
  7197.               selection: this.props.selection,
  7198.               disabled: this.props.pollsOnly
  7199.             }, C.a.createElement('div', {
  7200.               className: 'nav-lnk -color-muted'
  7201.             }, C.a.createElement('div', {
  7202.               className: 'nav-lnk__blk'
  7203.             }, C.a.createElement('span', {
  7204.               className: 'button__text'
  7205.             }, 'Attention Analytics')), C.a.createElement('div', {
  7206.               className: 'nav-lnk__pointer'
  7207.             }, C.a.createElement('span', {
  7208.               className: 'icon icon-right-bracket'
  7209.             })))) : null;
  7210.             return C.a.createElement('nav', null, C.a.createElement('div', {
  7211.               className: 'nav--tablet-dropdown',
  7212.               onClick: this.handleClick
  7213.             }, C.a.createElement(n, {
  7214.               linkClassName: e,
  7215.               linkActiveClassName: 'active',
  7216.               path: '/analytics/comments/',
  7217.               selection: this.props.selection,
  7218.               disabled: this.props.pollsOnly
  7219.             }, C.a.createElement('div', {
  7220.               className: 'nav-lnk -color-muted',
  7221.               onClick: this.reportClick.bind(this, 'overview')
  7222.             }, C.a.createElement('div', {
  7223.               className: 'nav-lnk__blk'
  7224.             }, C.a.createElement('span', {
  7225.               className: 'button__text'
  7226.             }, 'Overview')), C.a.createElement('div', {
  7227.               className: 'nav-lnk__pointer'
  7228.             }, C.a.createElement('span', {
  7229.               className: 'icon icon-right-bracket'
  7230.             })))), a, t ? C.a.createElement(C.a.Fragment, null, C.a.createElement(Uo, {
  7231.               linkClassName: e,
  7232.               linkActiveClassName: 'active',
  7233.               path: '/analytics/content/',
  7234.               selection: this.props.selection,
  7235.               disabled: this.props.pollsOnly
  7236.             }, C.a.createElement('div', {
  7237.               className: 'nav-lnk -color-muted',
  7238.               onClick: this.reportClick.bind(this, 'content')
  7239.             }, C.a.createElement('div', {
  7240.               className: 'nav-lnk__blk'
  7241.             }, C.a.createElement('span', {
  7242.               className: 'button__text'
  7243.             }, 'Content Analysis')), C.a.createElement('div', {
  7244.               className: 'nav-lnk__pointer'
  7245.             }, C.a.createElement('span', {
  7246.               className: 'icon icon-right-bracket'
  7247.             })))), C.a.createElement(Uo, {
  7248.               linkClassName: e,
  7249.               linkActiveClassName: 'active',
  7250.               path: '/analytics/audience/',
  7251.               selection: this.props.selection,
  7252.               disabled: this.props.pollsOnly
  7253.             }, C.a.createElement('div', {
  7254.               className: 'nav-lnk -color-muted'
  7255.             }, C.a.createElement('div', {
  7256.               className: 'nav-lnk__blk'
  7257.             }, C.a.createElement('span', {
  7258.               className: 'button__text'
  7259.             }, 'Audience Analysis')), C.a.createElement('div', {
  7260.               className: 'nav-lnk__pointer'
  7261.             }, C.a.createElement('span', {
  7262.               className: 'icon icon-right-bracket'
  7263.             })))), C.a.createElement(ri, {
  7264.               linkClassName: e,
  7265.               linkActiveClassName: 'active',
  7266.               path: '/analytics/top_comments/',
  7267.               disabled: this.props.pollsOnly
  7268.             }, C.a.createElement('div', {
  7269.               className: 'nav-lnk -color-muted'
  7270.             }, C.a.createElement('div', {
  7271.               className: 'nav-lnk__blk'
  7272.             }, C.a.createElement('span', {
  7273.               className: 'button__text'
  7274.             }, 'Top comments')), C.a.createElement('div', {
  7275.               className: 'nav-lnk__pointer'
  7276.             }, C.a.createElement('span', {
  7277.               className: 'icon icon-right-bracket'
  7278.             }))))) : null, r))
  7279.           }
  7280.         }
  7281.       ]) && ii(e.prototype, t),
  7282.       n && ii(e, n),
  7283.       o
  7284.     }();
  7285.     pi(di, 'propTypes', {
  7286.       selection: ht.isRequired,
  7287.       emitTrackingEvent: b.a.func.isRequired,
  7288.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  7289.       pollsOnly: b.a.bool
  7290.     });
  7291.     var mi = Object(u.connect) (function (e) {
  7292.       return {
  7293.         saasFeatures: e.saasFeatures
  7294.       }
  7295.     }, {
  7296.       emitTrackingEvent: Xo({
  7297.         zone: 'analytics'
  7298.       })
  7299.     }) (di);
  7300.     function fi(e) {
  7301.       return (fi = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  7302.         return typeof e
  7303.       }
  7304.        : function (e) {
  7305.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  7306.       }) (e)
  7307.     }
  7308.     function hi(e, t) {
  7309.       for (var n = 0; n < t.length; n++) {
  7310.         var a = t[n];
  7311.         a.enumerable = a.enumerable || !1,
  7312.         a.configurable = !0,
  7313.         'value' in a && (a.writable = !0),
  7314.         Object.defineProperty(e, a.key, a)
  7315.       }
  7316.     }
  7317.     function gi(e, t) {
  7318.       return (gi = Object.setPrototypeOf || function (e, t) {
  7319.         return e.__proto__ = t,
  7320.         e
  7321.       }) (e, t)
  7322.     }
  7323.     function yi(n) {
  7324.       var a = function () {
  7325.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  7326.         if (Reflect.construct.sham) return !1;
  7327.         if ('function' == typeof Proxy) return !0;
  7328.         try {
  7329.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  7330.           ], function () {
  7331.           })),
  7332.           !0
  7333.         } catch (e) {
  7334.           return !1
  7335.         }
  7336.       }();
  7337.       return function () {
  7338.         var e,
  7339.         t = vi(n);
  7340.         return e = a ? (e = vi(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  7341.         t = this,
  7342.         !(e = e) || 'object' !== fi(e) && 'function' != typeof e ? bi(t) : e
  7343.       }
  7344.     }
  7345.     function bi(e) {
  7346.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  7347.       return e
  7348.     }
  7349.     function vi(e) {
  7350.       return (vi = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  7351.         return e.__proto__ || Object.getPrototypeOf(e)
  7352.       }) (e)
  7353.     }
  7354.     function _i(e, t, n) {
  7355.       return t in e ? Object.defineProperty(e, t, {
  7356.         value: n,
  7357.         enumerable: !0,
  7358.         configurable: !0,
  7359.         writable: !0
  7360.       }) : e[t] = n,
  7361.       e
  7362.     }
  7363.     var Ei = [
  7364.       '/discussions/import/',
  7365.       '/discussions/import/platform/wordpress/',
  7366.       '/discussions/import/platform/blogger/',
  7367.       '/discussions/import/platform/movabletype/',
  7368.       '/discussions/import/platform/intensedebate/',
  7369.       '/discussions/import/platform/generic/'
  7370.     ],
  7371.     Oi = function () {
  7372.       !function (e, t) {
  7373.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  7374.         e.prototype = Object.create(t && t.prototype, {
  7375.           constructor: {
  7376.             value: e,
  7377.             writable: !0,
  7378.             configurable: !0
  7379.           }
  7380.         }),
  7381.         t && gi(e, t)
  7382.       }(o, A);
  7383.       var e,
  7384.       t,
  7385.       n,
  7386.       r = yi(o);
  7387.       function o() {
  7388.         var e;
  7389.         !function (e, t) {
  7390.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  7391.         }(this, o);
  7392.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  7393.         return _i(bi(e = r.call.apply(r, [
  7394.           this
  7395.         ].concat(n))), 'state', {
  7396.           isOpen: !1
  7397.         }),
  7398.         _i(bi(e), 'handleClick', function () {
  7399.           e.setState({
  7400.             isOpen: !e.state.isOpen
  7401.           })
  7402.         }),
  7403.         _i(bi(e), 'getSettingTab', function () {
  7404.           return {
  7405.             title: yo.a.isFeatureActive('polls_pub_admin') ? 'Settings' : 'Configuration',
  7406.             link: '/settings/moderation/'
  7407.           }
  7408.         }),
  7409.         e
  7410.       }
  7411.       return e = o,
  7412.       (t = [
  7413.         {
  7414.           key: 'render',
  7415.           value: function () {
  7416.             var e = this.props.selection.type === ft.forum && this.props.selection.forum,
  7417.             t = this.state.isOpen ? 'nav__item dropdown-open' : 'nav__item',
  7418.             n = e && e.features && e.features.logs,
  7419.             a = this.props.selection[this.props.selection.type].canAdminister,
  7420.             e = this.getSettingTab();
  7421.             return C.a.createElement('nav', {
  7422.               className: 'layout__nav'
  7423.             }, C.a.createElement('div', {
  7424.               className: 'nav__subheadings nav__spacing',
  7425.               key: 'left-secondary-nav-header'
  7426.             }, C.a.createElement('h4', {
  7427.               className: 'text-subheading'
  7428.             }, 'General')), C.a.createElement('div', {
  7429.               className: 'nav--tablet-dropdown'
  7430.             }, C.a.createElement(v.Link, {
  7431.               className: t,
  7432.               activeClassName: 'active',
  7433.               to: ho.getRoute('/moderate/'),
  7434.               onClick: this.handleClick,
  7435.               disabled: this.props.pollsOnly
  7436.             }, C.a.createElement('div', {
  7437.               className: 'nav-lnk -color-muted'
  7438.             }, C.a.createElement('div', {
  7439.               className: 'nav-lnk__blk'
  7440.             }, C.a.createElement('span', {
  7441.               className: 'button__text'
  7442.             }, 'Moderate comments')), C.a.createElement('div', {
  7443.               className: 'nav-lnk__pointer'
  7444.             }, C.a.createElement('span', {
  7445.               className: 'icon icon-right-bracket'
  7446.             })))), yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  7447.               className: 'nav__subheadings nav__spacing',
  7448.               key: 'left-secondary-nav-header'
  7449.             }, C.a.createElement('h4', {
  7450.               className: 'text-subheading'
  7451.             }, 'Analytics')), C.a.createElement(mi, {
  7452.               selection: this.props.selection,
  7453.               pollsOnly: this.props.pollsOnly
  7454.             })), C.a.createElement('div', null, C.a.createElement('div', {
  7455.               className: 'nav__subheadings nav__spacing'.concat(this.state.isOpen ? '' : ' hidden-lg'),
  7456.               key: 'left-secondary-nav-header'
  7457.             }, C.a.createElement('h4', {
  7458.               className: 'text-subheading'
  7459.             }, yo.a.isFeatureActive('polls_pub_admin') ? 'Configuration' : 'Settings')), a ? C.a.createElement(Uo, {
  7460.               linkClassName: t,
  7461.               linkActiveClassName: 'active',
  7462.               path: e.link,
  7463.               selection: this.props.selection,
  7464.               disabled: this.props.pollsOnly
  7465.             }, C.a.createElement('div', {
  7466.               className: 'nav-lnk -color-muted'
  7467.             }, C.a.createElement('div', {
  7468.               className: 'nav-lnk__blk'
  7469.             }, C.a.createElement('span', {
  7470.               className: 'button__text'
  7471.             }, e.title)), C.a.createElement('div', {
  7472.               className: 'nav-lnk__pointer'
  7473.             }, C.a.createElement('span', {
  7474.               className: 'icon icon-right-bracket'
  7475.             })))) : null, !yo.a.isFeatureActive('polls_pub_admin') && a && C.a.createElement(Uo, {
  7476.               linkClassName: t,
  7477.               linkActiveClassName: 'active',
  7478.               path: '/settings/moderators/',
  7479.               selection: this.props.selection,
  7480.               disabled: this.props.pollsOnly
  7481.             }, C.a.createElement('div', {
  7482.               className: 'nav-lnk -color-muted'
  7483.             }, C.a.createElement('div', {
  7484.               className: 'nav-lnk__blk'
  7485.             }, C.a.createElement('span', {
  7486.               className: 'button__text'
  7487.             }, 'Moderators')), C.a.createElement('div', {
  7488.               className: 'nav-lnk__pointer'
  7489.             }, C.a.createElement('span', {
  7490.               className: 'icon icon-right-bracket'
  7491.             })))), a ? C.a.createElement(Uo, {
  7492.               linkClassName: t,
  7493.               linkActiveClassName: 'active',
  7494.               path: '/settings/access/',
  7495.               selection: this.props.selection,
  7496.               disabled: this.props.pollsOnly
  7497.             }, C.a.createElement('div', {
  7498.               className: 'nav-lnk -color-muted'
  7499.             }, C.a.createElement('div', {
  7500.               className: 'nav-lnk__blk'
  7501.             }, C.a.createElement('span', {
  7502.               className: 'button__text'
  7503.             }, 'Word filters')), C.a.createElement('div', {
  7504.               className: 'nav-lnk__pointer'
  7505.             }, C.a.createElement('span', {
  7506.               className: 'icon icon-right-bracket'
  7507.             })))) : null, C.a.createElement(Uo, {
  7508.               linkClassName: t,
  7509.               linkActiveClassName: 'active',
  7510.               path: '/access/banned/',
  7511.               selection: this.props.selection,
  7512.               activeRoutes: [
  7513.                 '/access/banned/',
  7514.                 '/access/trusted/'
  7515.               ],
  7516.               disabled: this.props.pollsOnly
  7517.             }, C.a.createElement('div', {
  7518.               className: 'nav-lnk -color-muted'
  7519.             }, C.a.createElement('div', {
  7520.               className: 'nav-lnk__blk'
  7521.             }, C.a.createElement('span', {
  7522.               className: 'button__text'
  7523.             }, 'Banned users')), C.a.createElement('div', {
  7524.               className: 'nav-lnk__pointer'
  7525.             }, C.a.createElement('span', {
  7526.               className: 'icon icon-right-bracket'
  7527.             }))))), a ? C.a.createElement('div', null, C.a.createElement('div', {
  7528.               className: 'nav__subheadings nav__spacing'.concat(this.state.isOpen ? '' : ' hidden-lg'),
  7529.               key: 'left-secondary-nav-header'
  7530.             }, C.a.createElement('h4', {
  7531.               className: 'text-subheading'
  7532.             }, 'Tools')), C.a.createElement(Uo, {
  7533.               linkClassName: t,
  7534.               linkActiveClassName: 'active',
  7535.               path: '/discussions/',
  7536.               selection: this.props.selection,
  7537.               onlyActiveOnIndex: !0,
  7538.               disabled: this.props.pollsOnly
  7539.             }, C.a.createElement('div', {
  7540.               className: 'nav-lnk -color-muted'
  7541.             }, C.a.createElement('div', {
  7542.               className: 'nav-lnk__blk'
  7543.             }, C.a.createElement('span', {
  7544.               className: 'button__text'
  7545.             }, 'Discussions')), C.a.createElement('div', {
  7546.               className: 'nav-lnk__pointer'
  7547.             }, C.a.createElement('span', {
  7548.               className: 'icon icon-right-bracket'
  7549.             })))), C.a.createElement(Uo, {
  7550.               linkClassName: t,
  7551.               linkActiveClassName: 'active',
  7552.               path: '/discussions/migrate/',
  7553.               selection: this.props.selection,
  7554.               activeRoutes: [
  7555.                 '/discussions/migrate/',
  7556.                 'tools/migrate-map/'
  7557.               ],
  7558.               disabled: this.props.pollsOnly
  7559.             }, C.a.createElement('div', {
  7560.               className: 'nav-lnk -color-muted'
  7561.             }, C.a.createElement('div', {
  7562.               className: 'nav-lnk__blk'
  7563.             }, C.a.createElement('span', {
  7564.               className: 'button__text'
  7565.             }, 'Migration Tools')), C.a.createElement('div', {
  7566.               className: 'nav-lnk__pointer'
  7567.             }, C.a.createElement('span', {
  7568.               className: 'icon icon-right-bracket'
  7569.             })))), C.a.createElement(Uo, {
  7570.               linkClassName: t,
  7571.               linkActiveClassName: 'active',
  7572.               path: '/discussions/import/platform/wordpress/',
  7573.               selection: this.props.selection,
  7574.               activeRoutes: Ei,
  7575.               disabled: this.props.pollsOnly
  7576.             }, C.a.createElement('div', {
  7577.               className: 'nav-lnk -color-muted'
  7578.             }, C.a.createElement('div', {
  7579.               className: 'nav-lnk__blk'
  7580.             }, C.a.createElement('span', {
  7581.               className: 'button__text'
  7582.             }, 'Import')), C.a.createElement('div', {
  7583.               className: 'nav-lnk__pointer'
  7584.             }, C.a.createElement('span', {
  7585.               className: 'icon icon-right-bracket'
  7586.             })))), C.a.createElement(Uo, {
  7587.               linkClassName: t,
  7588.               linkActiveClassName: 'active',
  7589.               path: '/discussions/export/',
  7590.               selection: this.props.selection,
  7591.               disabled: this.props.pollsOnly
  7592.             }, C.a.createElement('div', {
  7593.               className: 'nav-lnk -color-muted'
  7594.             }, C.a.createElement('div', {
  7595.               className: 'nav-lnk__blk'
  7596.             }, C.a.createElement('span', {
  7597.               className: 'button__text'
  7598.             }, 'Export')), C.a.createElement('div', {
  7599.               className: 'nav-lnk__pointer'
  7600.             }, C.a.createElement('span', {
  7601.               className: 'icon icon-right-bracket'
  7602.             })))), n ? C.a.createElement(Uo, {
  7603.               linkClassName: t,
  7604.               linkActiveClassName: 'active',
  7605.               path: '/discussions/history/',
  7606.               selection: this.props.selection,
  7607.               disabled: this.props.pollsOnly
  7608.             }, C.a.createElement('div', {
  7609.               className: 'nav-lnk -color-muted'
  7610.             }, C.a.createElement('div', {
  7611.               className: 'nav-lnk__blk'
  7612.             }, C.a.createElement('span', {
  7613.               className: 'button__text'
  7614.             }, 'History logs')), C.a.createElement('div', {
  7615.               className: 'nav-lnk__pointer'
  7616.             }, C.a.createElement('span', {
  7617.               className: 'icon icon-right-bracket'
  7618.             })))) : null) : null))
  7619.           }
  7620.         }
  7621.       ]) && hi(e.prototype, t),
  7622.       n && hi(e, n),
  7623.       o
  7624.     }();
  7625.     _i(Oi, 'propTypes', {
  7626.       selection: ht.isRequired,
  7627.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  7628.       pollsOnly: b.a.bool
  7629.     });
  7630.     var Si = Object(u.connect) (function (e) {
  7631.       return {
  7632.         saasFeatures: e.saasFeatures
  7633.       }
  7634.     }) (Oi),
  7635.     wi = function (e) {
  7636.       return C.a.createElement('div', {
  7637.         className: 'section-contained'
  7638.       }, C.a.createElement('div', {
  7639.         className: 'layout layout--publishers'
  7640.       }, C.a.createElement('div', {
  7641.         className: 'layout__main'
  7642.       }, C.a.createElement(Si, {
  7643.         selection: e.selection
  7644.       }), C.a.createElement('div', {
  7645.         className: 'layout__content'
  7646.       }, C.a.createElement('div', {
  7647.         className: 'content__wrap spacing-bottom-double'
  7648.       }, C.a.createElement('header', {
  7649.         className: 'settings__header'
  7650.       }, C.a.createElement('h2', {
  7651.         className: 'text-gray-darker text-larger spacing-bottom'
  7652.       }, 'Banned and Trusted Users'), C.a.createElement('p', {
  7653.         className: 'text-gray'
  7654.       }, 'Control lists allow you to control who is able to participate within your community. You can specify items such as users, emails, IP addresses, and words. Banned items prevent certain people from posting, while Trusted items allow users to bypass certain moderation filters (such as spam).')), C.a.createElement('section', {
  7655.         className: 'settings__content'
  7656.       }, e.children))))))
  7657.     };
  7658.     wi.displayName = 'Access',
  7659.     wi.propTypes = {
  7660.       children: b.a.node.isRequired,
  7661.       forums: b.a.object.isRequired,
  7662.       organizations: b.a.object.isRequired,
  7663.       selection: ht.isRequired
  7664.     };
  7665.     var Pi = Object(u.connect) (function (e) {
  7666.       return {
  7667.         selection: e.selection
  7668.       }
  7669.     }) (wi),
  7670.     ki = n(29),
  7671.     Ni = n.n(ki),
  7672.     Ci = [
  7673.       {
  7674.         permissions: [
  7675.           'canModerate'
  7676.         ],
  7677.         lists: [
  7678.           'blacklist',
  7679.           'whitelist'
  7680.         ],
  7681.         isChannelVisible: !0,
  7682.         value: 'user',
  7683.         displayName: 'Username'
  7684.       },
  7685.       {
  7686.         permissions: [
  7687.           'canModerate'
  7688.         ],
  7689.         lists: [
  7690.           'blacklist',
  7691.           'whitelist'
  7692.         ],
  7693.         isChannelVisible: !1,
  7694.         value: 'email',
  7695.         displayName: 'Email address'
  7696.       },
  7697.       {
  7698.         permissions: [
  7699.           'canModerate'
  7700.         ],
  7701.         lists: [
  7702.           'blacklist'
  7703.         ],
  7704.         isChannelVisible: !1,
  7705.         value: 'ip',
  7706.         displayName: 'IP address'
  7707.       },
  7708.       {
  7709.         permissions: [
  7710.           'canModerate',
  7711.           'canAdminister'
  7712.         ],
  7713.         lists: [
  7714.           'blacklist'
  7715.         ],
  7716.         isChannelVisible: !1,
  7717.         value: 'domain',
  7718.         displayName: 'Domain'
  7719.       }
  7720.     ];
  7721.     function Ri(e) {
  7722.       return (Ri = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  7723.         return typeof e
  7724.       }
  7725.        : function (e) {
  7726.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  7727.       }) (e)
  7728.     }
  7729.     function xi(e, t) {
  7730.       for (var n = 0; n < t.length; n++) {
  7731.         var a = t[n];
  7732.         a.enumerable = a.enumerable || !1,
  7733.         a.configurable = !0,
  7734.         'value' in a && (a.writable = !0),
  7735.         Object.defineProperty(e, a.key, a)
  7736.       }
  7737.     }
  7738.     function Ai(e, t) {
  7739.       return (Ai = Object.setPrototypeOf || function (e, t) {
  7740.         return e.__proto__ = t,
  7741.         e
  7742.       }) (e, t)
  7743.     }
  7744.     function Di(n) {
  7745.       var a = function () {
  7746.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  7747.         if (Reflect.construct.sham) return !1;
  7748.         if ('function' == typeof Proxy) return !0;
  7749.         try {
  7750.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  7751.           ], function () {
  7752.           })),
  7753.           !0
  7754.         } catch (e) {
  7755.           return !1
  7756.         }
  7757.       }();
  7758.       return function () {
  7759.         var e,
  7760.         t = Ti(n);
  7761.         return e = a ? (e = Ti(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  7762.         t = this,
  7763.         !(e = e) || 'object' !== Ri(e) && 'function' != typeof e ? ji(t) : e
  7764.       }
  7765.     }
  7766.     function ji(e) {
  7767.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  7768.       return e
  7769.     }
  7770.     function Ti(e) {
  7771.       return (Ti = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  7772.         return e.__proto__ || Object.getPrototypeOf(e)
  7773.       }) (e)
  7774.     }
  7775.     function Ii(e, t, n) {
  7776.       return t in e ? Object.defineProperty(e, t, {
  7777.         value: n,
  7778.         enumerable: !0,
  7779.         configurable: !0,
  7780.         writable: !0
  7781.       }) : e[t] = n,
  7782.       e
  7783.     }
  7784.     var qi = 'desc',
  7785.     Fi = function () {
  7786.       !function (e, t) {
  7787.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  7788.         e.prototype = Object.create(t && t.prototype, {
  7789.           constructor: {
  7790.             value: e,
  7791.             writable: !0,
  7792.             configurable: !0
  7793.           }
  7794.         }),
  7795.         t && Ai(e, t)
  7796.       }(o, A);
  7797.       var e,
  7798.       t,
  7799.       n,
  7800.       r = Di(o);
  7801.       function o() {
  7802.         var a;
  7803.         !function (e, t) {
  7804.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  7805.         }(this, o);
  7806.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  7807.         return Ii(ji(a = r.call.apply(r, [
  7808.           this
  7809.         ].concat(t))), 'state', {
  7810.           items: [
  7811.           ],
  7812.           cursor: {
  7813.           },
  7814.           query: null,
  7815.           fetchError: null,
  7816.           isFetching: !1,
  7817.           saveError: null,
  7818.           isSaving: !1
  7819.         }),
  7820.         Ii(ji(a), 'fetchAccessList', function (e, t) {
  7821.           a.setState({
  7822.             isFetching: !0,
  7823.             fetchError: null,
  7824.             currentPage: t
  7825.           });
  7826.           t = {
  7827.             type: je.a.pluck(a.filterTypesForSelection(e), 'value'),
  7828.             cursor: t,
  7829.             query: a.state.query,
  7830.             order: qi,
  7831.             forum: a.props.selection.forum.shortname
  7832.           };
  7833.           return a.apiCall = io.a.call(''.concat(e, 's/list.json'), {
  7834.             data: t
  7835.           }).done(a.handleFetchSuccess).error(a.handleFetchError),
  7836.           a.apiCall
  7837.         }),
  7838.         Ii(ji(a), 'handleFetchSuccess', function (e) {
  7839.           a.setState({
  7840.             items: e.response,
  7841.             cursor: e.cursor,
  7842.             isFetching: !1
  7843.           })
  7844.         }),
  7845.         Ii(ji(a), 'handleFetchError', function (e) {
  7846.           var t;
  7847.           try {
  7848.             t = JSON.parse(e.responseText).response
  7849.           } catch (e) {
  7850.             t = 'There was an error loading this list.'
  7851.           }
  7852.           a.setState({
  7853.             fetchError: t,
  7854.             isFetching: !1
  7855.           })
  7856.         }),
  7857.         Ii(ji(a), 'handleQuerySubmit', function (e) {
  7858.           a.setState({
  7859.             query: e
  7860.           }, a.fetchAccessList.bind(ji(a), a.props.route.accessListType))
  7861.         }),
  7862.         Ii(ji(a), 'handlePaginateNext', function () {
  7863.           !a.isFetching && a.state.cursor.hasNext && a.fetchAccessList(a.props.route.accessListType, a.state.cursor.next)
  7864.         }),
  7865.         Ii(ji(a), 'handlePaginatePrev', function () {
  7866.           !a.isFetching && a.state.cursor.hasPrev && a.fetchAccessList(a.props.route.accessListType, a.state.cursor.prev)
  7867.         }),
  7868.         Ii(ji(a), 'handleClearSaveError', function () {
  7869.           a.setState({
  7870.             saveError: null
  7871.           })
  7872.         }),
  7873.         Ii(ji(a), 'handleRemoveItem', function (e) {
  7874.           a.setState({
  7875.             isSaving: !0,
  7876.             saveError: null
  7877.           });
  7878.           var t = {
  7879.             forum: a.props.selection.forum.shortname
  7880.           };
  7881.           return 'blacklist' === a.props.route.accessListType ? t.blacklist = e.id : je.a.isObject(e.value) ? t[e.type] = e.value.id : t.id = e.id,
  7882.           io.a.call(''.concat(a.props.route.accessListType, 's/remove.json'), {
  7883.             type: 'POST',
  7884.             data: t
  7885.           }).done(a.handleSaveItemSuccess.bind(ji(a), a.state.currentPage)).error(a.handleSaveError)
  7886.         }),
  7887.         Ii(ji(a), 'handleAddItem', function (e) {
  7888.           a.setState({
  7889.             isSaving: !0,
  7890.             saveError: null
  7891.           });
  7892.           var t = {
  7893.             forum: a.props.selection.forum.shortname,
  7894.             notes: e.itemNotes
  7895.           };
  7896.           return 'user' === e.itemType && (e.itemValue = 'username:'.concat(e.itemValue)),
  7897.           t[e.itemType] = e.itemValue,
  7898.           'blacklist' === e.itemList && (t.retroactive = e.retroactiveAction ? 1 : 0, t.shadowBan = 'shadow' === e.itemMethod || 'shadowban' === e.itemMethod ? 1 : 0),
  7899.           'time' === e.itemMethod && (t.dateExpires = e.itemTime),
  7900.           'temp' === e.itemMethod && (t.dateExpires = e.dateExpires),
  7901.           io.a.call(''.concat(e.itemList, 's/add.json'), {
  7902.             type: 'POST',
  7903.             data: t
  7904.           }).done(a.handleSaveItemSuccess.bind(ji(a), null)).error(a.handleSaveError)
  7905.         }),
  7906.         Ii(ji(a), 'handleSaveItemSuccess', function (e) {
  7907.           a.setState({
  7908.             isSaving: !1
  7909.           }),
  7910.           a.fetchAccessList(a.props.route.accessListType, e)
  7911.         }),
  7912.         Ii(ji(a), 'handleSaveError', function (e) {
  7913.           var t;
  7914.           try {
  7915.             t = JSON.parse(e.responseText).response
  7916.           } catch (e) {
  7917.             t = 'There was an error saving your changes.'
  7918.           }
  7919.           a.setState({
  7920.             saveError: t,
  7921.             isSaving: !1
  7922.           })
  7923.         }),
  7924.         Ii(ji(a), 'filterTypesForSelection', function (t) {
  7925.           var n = a.props.selection.forum;
  7926.           return je.a.filter(Ci, function (e) {
  7927.             return n.settings.IS_CHANNEL_PRIMARY_FORUM && !n.permissions.canAdminister ? e.isChannelVisible : je.a.contains(e.lists, t) && je.a.every(e.permissions, function (e) {
  7928.               return n.permissions[e]
  7929.             })
  7930.           })
  7931.         }),
  7932.         Ii(ji(a), 'getComponentProps', function () {
  7933.           return {
  7934.             accessListType: a.props.route.accessListType,
  7935.             accessOnFilterTypes: a.filterTypesForSelection,
  7936.             accessList: a.state.items,
  7937.             accessCursor: a.state.cursor,
  7938.             accessQuery: a.state.query,
  7939.             accessOnQuerySubmit: a.handleQuerySubmit,
  7940.             accessFetchError: a.state.fetchError,
  7941.             accessIsFetching: a.state.isFetching,
  7942.             accessSaveError: a.state.saveError,
  7943.             accessOnClearSaveError: a.handleClearSaveError,
  7944.             accessIsSaving: a.state.isSaving,
  7945.             accessOnPaginateNext: a.handlePaginateNext,
  7946.             accessOnPaginatePrev: a.handlePaginatePrev,
  7947.             accessOnRemoveItem: a.handleRemoveItem,
  7948.             accessOnAddItem: a.handleAddItem
  7949.           }
  7950.         }),
  7951.         a
  7952.       }
  7953.       return e = o,
  7954.       (t = [
  7955.         {
  7956.           key: 'componentDidMount',
  7957.           value: function () {
  7958.             this.fetchAccessList(this.props.route.accessListType)
  7959.           }
  7960.         },
  7961.         {
  7962.           key: 'componentWillUnmount',
  7963.           value: function () {
  7964.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  7965.           }
  7966.         },
  7967.         {
  7968.           key: 'componentWillReceiveProps',
  7969.           value: function (e) {
  7970.             e.route.accessListType !== this.props.route.accessListType && this.fetchAccessList(e.route.accessListType)
  7971.           }
  7972.         }
  7973.       ]) && xi(e.prototype, t),
  7974.       n && xi(e, n),
  7975.       o
  7976.     }();
  7977.     Ii(Fi, 'displayName', 'AccessDriver'),
  7978.     Ii(Fi, 'propTypes', {
  7979.       selection: ht.isRequired,
  7980.       route: b.a.shape({
  7981.         accessListType: b.a.oneOf(['blacklist',
  7982.         'whitelist']).isRequired
  7983.       }).isRequired
  7984.     });
  7985.     var Li = Object(ki.createDriver) (Fi);
  7986.     function Ui(e) {
  7987.       return (Ui = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  7988.         return typeof e
  7989.       }
  7990.        : function (e) {
  7991.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  7992.       }) (e)
  7993.     }
  7994.     function Mi(e, t) {
  7995.       return (Mi = Object.setPrototypeOf || function (e, t) {
  7996.         return e.__proto__ = t,
  7997.         e
  7998.       }) (e, t)
  7999.     }
  8000.     function Bi(n) {
  8001.       var a = function () {
  8002.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  8003.         if (Reflect.construct.sham) return !1;
  8004.         if ('function' == typeof Proxy) return !0;
  8005.         try {
  8006.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  8007.           ], function () {
  8008.           })),
  8009.           !0
  8010.         } catch (e) {
  8011.           return !1
  8012.         }
  8013.       }();
  8014.       return function () {
  8015.         var e,
  8016.         t = Hi(n);
  8017.         return e = a ? (e = Hi(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  8018.         t = this,
  8019.         !(e = e) || 'object' !== Ui(e) && 'function' != typeof e ? zi(t) : e
  8020.       }
  8021.     }
  8022.     function zi(e) {
  8023.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  8024.       return e
  8025.     }
  8026.     function Hi(e) {
  8027.       return (Hi = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  8028.         return e.__proto__ || Object.getPrototypeOf(e)
  8029.       }) (e)
  8030.     }
  8031.     function Gi(e, t, n) {
  8032.       return t in e ? Object.defineProperty(e, t, {
  8033.         value: n,
  8034.         enumerable: !0,
  8035.         configurable: !0,
  8036.         writable: !0
  8037.       }) : e[t] = n,
  8038.       e
  8039.     }
  8040.     var Vi = function () {
  8041.       !function (e, t) {
  8042.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  8043.         e.prototype = Object.create(t && t.prototype, {
  8044.           constructor: {
  8045.             value: e,
  8046.             writable: !0,
  8047.             configurable: !0
  8048.           }
  8049.         }),
  8050.         t && Mi(e, t)
  8051.       }(o, A);
  8052.       var r = Bi(o);
  8053.       function o() {
  8054.         var e;
  8055.         !function (e, t) {
  8056.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  8057.         }(this, o);
  8058.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  8059.         return Gi(zi(e = r.call.apply(r, [
  8060.           this
  8061.         ].concat(n))), 'addUserToWhitelist', function (e) {
  8062.           return io.a.call('whitelists/add', {
  8063.             data: {
  8064.               forum: e.forumId,
  8065.               user: e.userId
  8066.             },
  8067.             method: 'POST'
  8068.           })
  8069.         }),
  8070.         Gi(zi(e), 'addUserToBlacklist', function (e) {
  8071.           var t = e.username,
  8072.           n = e.postId,
  8073.           a = e.ipAddress,
  8074.           r = e.email,
  8075.           o = e.retroactiveAction,
  8076.           i = e.reason,
  8077.           s = e.type,
  8078.           e = e.dateExpires;
  8079.           if (t || a || r) {
  8080.             e = {
  8081.               retroactiveAction: o,
  8082.               post: n,
  8083.               banUser: t ? 1 : 0,
  8084.               banIp: a ? 1 : 0,
  8085.               banEmail: r ? 1 : 0,
  8086.               notes: i,
  8087.               shadowBan: s === Wn.BAN_TYPES.SHADOW ? 1 : 0,
  8088.               dateExpires: e
  8089.             };
  8090.             return s === Wn.BAN_TYPES.PERMANENT && (e.retroactiveAction = o),
  8091.             io.a.call('forums/block/banPostAuthor.json', {
  8092.               data: e,
  8093.               method: 'POST'
  8094.             })
  8095.           }
  8096.         }),
  8097.         Gi(zi(e), 'getComponentProps', function () {
  8098.           return {
  8099.             addUserToWhitelist: e.addUserToWhitelist,
  8100.             addUserToBlacklist: e.addUserToBlacklist
  8101.           }
  8102.         }),
  8103.         e
  8104.       }
  8105.       return o
  8106.     }();
  8107.     Gi(Vi, 'displayName', 'ModerationUserListsDriver');
  8108.     var Wi = Object(ki.createDriver) (Vi),
  8109.     Yi = function (e) {
  8110.       return C.a.createElement('div', {
  8111.         className: [
  8112.           e.topMarginClass || 'spacing-top',
  8113.           'alert',
  8114.           'alert--'.concat(e.alertType || 'brand'),
  8115.           'align align--between align--middle'
  8116.         ].join(' ')
  8117.       }, C.a.createElement('div', {
  8118.         className: 'spacing-narrow text-medium'
  8119.       }, C.a.createElement('span', {
  8120.         className: 'icon icon-warning icon__position',
  8121.         style: {
  8122.           paddingRight: '10px'
  8123.         }
  8124.       }), e.message), e.onRequestClose ? C.a.createElement('button', {
  8125.         className: 'link-inverted-opaque',
  8126.         onClick: e.onRequestClose
  8127.       }, C.a.createElement('span', {
  8128.         className: 'icon-cancel icon__position text-small',
  8129.         style: {
  8130.           paddingLeft: '3px'
  8131.         }
  8132.       })) : null)
  8133.     };
  8134.     Yi.displayName = 'AlertBar',
  8135.     Yi.propTypes = {
  8136.       message: b.a.node.isRequired,
  8137.       alertType: b.a.string,
  8138.       onRequestClose: b.a.func,
  8139.       topMarginClass: b.a.string
  8140.     };
  8141.     function Qi() {
  8142.       return C.a.createElement('div', {
  8143.         className: 'loading-spinner'
  8144.       })
  8145.     }
  8146.     var Ki = Yi,
  8147.     Ji = function () {
  8148.       return C.a.createElement('div', {
  8149.         className: 'loading-container'
  8150.       }, C.a.createElement(Qi, null))
  8151.     };
  8152.     function $i(e) {
  8153.       return ($i = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  8154.         return typeof e
  8155.       }
  8156.        : function (e) {
  8157.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  8158.       }) (e)
  8159.     }
  8160.     function Zi(t, e) {
  8161.       var n,
  8162.       a = Object.keys(t);
  8163.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  8164.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  8165.       })), a.push.apply(a, n)),
  8166.       a
  8167.     }
  8168.     function Xi(t) {
  8169.       for (var e = 1; e < arguments.length; e++) {
  8170.         var n = null != arguments[e] ? arguments[e] : {
  8171.         };
  8172.         e % 2 ? Zi(Object(n), !0).forEach(function (e) {
  8173.           os(t, e, n[e])
  8174.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Zi(Object(n)).forEach(function (e) {
  8175.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  8176.         })
  8177.       }
  8178.       return t
  8179.     }
  8180.     function es(e, t) {
  8181.       for (var n = 0; n < t.length; n++) {
  8182.         var a = t[n];
  8183.         a.enumerable = a.enumerable || !1,
  8184.         a.configurable = !0,
  8185.         'value' in a && (a.writable = !0),
  8186.         Object.defineProperty(e, a.key, a)
  8187.       }
  8188.     }
  8189.     function ts(e, t) {
  8190.       return (ts = Object.setPrototypeOf || function (e, t) {
  8191.         return e.__proto__ = t,
  8192.         e
  8193.       }) (e, t)
  8194.     }
  8195.     function ns(n) {
  8196.       var a = function () {
  8197.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  8198.         if (Reflect.construct.sham) return !1;
  8199.         if ('function' == typeof Proxy) return !0;
  8200.         try {
  8201.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  8202.           ], function () {
  8203.           })),
  8204.           !0
  8205.         } catch (e) {
  8206.           return !1
  8207.         }
  8208.       }();
  8209.       return function () {
  8210.         var e,
  8211.         t = rs(n);
  8212.         return e = a ? (e = rs(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  8213.         t = this,
  8214.         !(e = e) || 'object' !== $i(e) && 'function' != typeof e ? as(t) : e
  8215.       }
  8216.     }
  8217.     function as(e) {
  8218.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  8219.       return e
  8220.     }
  8221.     function rs(e) {
  8222.       return (rs = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  8223.         return e.__proto__ || Object.getPrototypeOf(e)
  8224.       }) (e)
  8225.     }
  8226.     function os(e, t, n) {
  8227.       return t in e ? Object.defineProperty(e, t, {
  8228.         value: n,
  8229.         enumerable: !0,
  8230.         configurable: !0,
  8231.         writable: !0
  8232.       }) : e[t] = n,
  8233.       e
  8234.     }
  8235.     var is = {
  8236.       blacklist: 'Banned',
  8237.       whitelist: 'Trusted'
  8238.     },
  8239.     ss = [
  8240.       10,
  8241.       13
  8242.     ],
  8243.     ls = {
  8244.       itemType: 'user',
  8245.       itemValue: '',
  8246.       itemNotes: '',
  8247.       retroactive: !1
  8248.     },
  8249.     cs = function () {
  8250.       !function (e, t) {
  8251.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  8252.         e.prototype = Object.create(t && t.prototype, {
  8253.           constructor: {
  8254.             value: e,
  8255.             writable: !0,
  8256.             configurable: !0
  8257.           }
  8258.         }),
  8259.         t && ts(e, t)
  8260.       }(r, A);
  8261.       var e,
  8262.       t,
  8263.       n,
  8264.       a = ns(r);
  8265.       function r(e) {
  8266.         var n;
  8267.         return function (e, t) {
  8268.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  8269.         }(this, r),
  8270.         os(as(n = a.call(this, e)), 'handleChangeValue', function (e) {
  8271.           var t = {
  8272.           };
  8273.           t[e.target.name] = 'checkbox' === e.target.type ? e.target.checked : e.target.value,
  8274.           n.setState(t)
  8275.         }),
  8276.         os(as(n), 'getPlaceholderForValue', function (e) {
  8277.           switch (e) {
  8278.             case 'email':
  8279.               return 'Enter an email address, e.g. someone@example.com';
  8280.             case 'user':
  8281.               return 'Enter a registered Disqus username';
  8282.             case 'domain':
  8283.               return 'Enter a domain, e.g. example.com';
  8284.             case 'ip':
  8285.               return 'Enter an IP address, e.g. 123.123.123.123';
  8286.             default:
  8287.               return ''
  8288.           }
  8289.         }),
  8290.         os(as(n), 'handleSubmitNewItem', function () {
  8291.           n.props.onSubmitNewItem(n.state)
  8292.         }),
  8293.         os(as(n), 'handleKeyUp', function (e) {
  8294.           ~ss.indexOf(e.keyCode) && n.props.onSubmitNewItem(n.state)
  8295.         }),
  8296.         n.state = Xi({
  8297.           itemList: e.initialList
  8298.         }, ls),
  8299.         n
  8300.       }
  8301.       return e = r,
  8302.       (t = [
  8303.         {
  8304.           key: 'componentWillReceiveProps',
  8305.           value: function (e) {
  8306.             !this.props.isOpen && e.isOpen && this.setState(Xi({
  8307.               itemList: this.props.initialList
  8308.             }, ls))
  8309.           }
  8310.         },
  8311.         {
  8312.           key: 'render',
  8313.           value: function () {
  8314.             var e = 'blacklist' === this.state.itemList,
  8315.             t = this.props.accessOnFilterTypes(this.state.itemList);
  8316.             return C.a.createElement(_.a, {
  8317.               className: 'site-picker-modal',
  8318.               isOpen: this.props.isOpen,
  8319.               onRequestClose: this.props.onRequestClose
  8320.             }, C.a.createElement('div', {
  8321.               className: 'modal-content',
  8322.               onKeyUp: this.handleKeyUp
  8323.             }, C.a.createElement('div', {
  8324.               className: 'modal-header'
  8325.             }, C.a.createElement('h4', {
  8326.               className: 'modal-title'
  8327.             }, 'Add to '.concat(is[this.state.itemList], ' List'))), this.props.isFetching ? C.a.createElement(Qi, null) : null, C.a.createElement('div', {
  8328.               className: 'modal-body'
  8329.             }, this.props.error ? C.a.createElement(Ki, {
  8330.               message: this.props.error,
  8331.               onRequestClose: this.props.onClearError,
  8332.               alertType: 'error'
  8333.             }) : null, C.a.createElement('div', {
  8334.               className: 'spacing-top spacing-bottom form-attribute-input'
  8335.             }, C.a.createElement('div', null, C.a.createElement('h3', {
  8336.               className: 'text-gray-darker'
  8337.             }, 'Type')), C.a.createElement('select', {
  8338.               name: 'itemType',
  8339.               className: 'input--select',
  8340.               value: this.state.itemType,
  8341.               onChange: this.handleChangeValue,
  8342.               disabled: t.length <= 1
  8343.             }, t.map(function (e) {
  8344.               return C.a.createElement('option', {
  8345.                 key: e.value,
  8346.                 value: e.value
  8347.               }, e.displayName)
  8348.             }))), C.a.createElement('div', {
  8349.               className: 'spacing-top spacing-bottom form-attribute-input'
  8350.             }, C.a.createElement('h3', {
  8351.               className: 'text-gray-darker'
  8352.             }, 'Value'), C.a.createElement('div', null, C.a.createElement('input', {
  8353.               className: 'input--textbox',
  8354.               name: 'itemValue',
  8355.               type: 'text',
  8356.               placeholder: this.getPlaceholderForValue(this.state.itemType),
  8357.               value: this.state.itemValue,
  8358.               onChange: this.handleChangeValue
  8359.             }))), C.a.createElement('div', {
  8360.               className: 'spacing-top spacing-bottom form-attribute-input'
  8361.             }, C.a.createElement('h3', {
  8362.               className: 'text-gray-darker'
  8363.             }, 'Notes'), C.a.createElement('div', null, C.a.createElement('input', {
  8364.               className: 'input--textbox',
  8365.               name: 'itemNotes',
  8366.               type: 'text',
  8367.               placeholder: 'Enter a note for other moderators to see…',
  8368.               value: this.state.itemNotes,
  8369.               onChange: this.handleChangeValue,
  8370.               maxLength: '50'
  8371.             }))), e ? C.a.createElement('div', {
  8372.               className: 'spacing-top spacing-bottom form-attribute-input'
  8373.             }, C.a.createElement('input', {
  8374.               name: 'retroactive',
  8375.               type: 'checkbox',
  8376.               checked: this.state.retroactive,
  8377.               onChange: this.handleChangeValue
  8378.             }), C.a.createElement('label', {
  8379.               className: 'text-gray-dark'
  8380.             }, 'Remove last 30 days of comments')) : null), C.a.createElement('div', {
  8381.               className: 'modal-footer'
  8382.             }, C.a.createElement('button', {
  8383.               className: 'button button-outline button-small spacing-right',
  8384.               onClick: this.props.onRequestClose
  8385.             }, 'Close'), C.a.createElement('button', {
  8386.               className: 'button button-fill--brand button-small',
  8387.               onClick: this.handleSubmitNewItem
  8388.             }, 'Add to '.concat(is[this.state.itemList], ' List')))))
  8389.           }
  8390.         }
  8391.       ]) && es(e.prototype, t),
  8392.       n && es(e, n),
  8393.       r
  8394.     }();
  8395.     os(cs, 'displayName', 'AccessItemAddModal'),
  8396.     os(cs, 'propTypes', {
  8397.       accessOnFilterTypes: b.a.func.isRequired,
  8398.       onSubmitNewItem: b.a.func.isRequired,
  8399.       onRequestClose: b.a.func.isRequired,
  8400.       initialList: b.a.string.isRequired,
  8401.       isOpen: b.a.bool.isRequired,
  8402.       isFetching: b.a.bool,
  8403.       error: b.a.string,
  8404.       onClearError: b.a.func.isRequired
  8405.     });
  8406.     var us = cs;
  8407.     function ps(e, t) {
  8408.       return function (e) {
  8409.         if (Array.isArray(e)) return e
  8410.       }(e) || function (e, t) {
  8411.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  8412.         if (null != n) {
  8413.           var a,
  8414.           r,
  8415.           o = [
  8416.           ],
  8417.           i = !0,
  8418.           s = !1;
  8419.           try {
  8420.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  8421.           } catch (e) {
  8422.             s = !0,
  8423.             r = e
  8424.           } finally {
  8425.             try {
  8426.               i || null == n.return || n.return()
  8427.             } finally {
  8428.               if (s) throw r
  8429.             }
  8430.           }
  8431.           return o
  8432.         }
  8433.       }(e, t) || function (e, t) {
  8434.         if (e) {
  8435.           if ('string' == typeof e) return ds(e, t);
  8436.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  8437.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? ds(e, t) : void 0
  8438.         }
  8439.       }(e, t) || function () {
  8440.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  8441.       }()
  8442.     }
  8443.     function ds(e, t) {
  8444.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  8445.       return a
  8446.     }
  8447.     function ms(e, t) {
  8448.       var n = (i = e.split('T')) [0].split('-'),
  8449.       a = i[1].split(':'),
  8450.       r = + ('' + n[0]),
  8451.       o = + ('' + (n[1] - 1)),
  8452.       e = + ('' + n[2]),
  8453.       i = + ('' + a[0]),
  8454.       n = + ('' + a[1]),
  8455.       a = + ('' + a[2]) || 0;
  8456.       return t ? new Date(r, o, e, i, n, a) : new Date(Date.UTC(r, o, e, i, n, a))
  8457.     }
  8458.     var fs = [
  8459.       [60,
  8460.       'just now',
  8461.       'just now'],
  8462.       [
  8463.         120,
  8464.         '1 minute ago',
  8465.         '1 minute from now'
  8466.       ],
  8467.       [
  8468.         3600,
  8469.         'minutes',
  8470.         60
  8471.       ],
  8472.       [
  8473.         7200,
  8474.         '1 hour ago',
  8475.         '1 hour from now'
  8476.       ],
  8477.       [
  8478.         86400,
  8479.         'hours',
  8480.         3600
  8481.       ],
  8482.       [
  8483.         172800,
  8484.         'yesterday',
  8485.         'tomorrow'
  8486.       ],
  8487.       [
  8488.         604800,
  8489.         'days',
  8490.         86400
  8491.       ],
  8492.       [
  8493.         1209600,
  8494.         'last week',
  8495.         'next week'
  8496.       ],
  8497.       [
  8498.         2419200,
  8499.         'weeks',
  8500.         604800
  8501.       ],
  8502.       [
  8503.         4838400,
  8504.         'last month',
  8505.         'next month'
  8506.       ],
  8507.       [
  8508.         29030400,
  8509.         'months',
  8510.         2419200
  8511.       ],
  8512.       [
  8513.         58060800,
  8514.         'last year',
  8515.         'next year'
  8516.       ],
  8517.       [
  8518.         2903040000,
  8519.         'years',
  8520.         29030400
  8521.       ],
  8522.       [
  8523.         5806080000,
  8524.         'last century',
  8525.         'next century'
  8526.       ],
  8527.       [
  8528.         58060800000,
  8529.         'centuries',
  8530.         2903040000
  8531.       ]
  8532.     ],
  8533.     hs = [
  8534.       'Sunday',
  8535.       'Monday',
  8536.       'Tuesday',
  8537.       'Wednesday',
  8538.       'Thursday',
  8539.       'Friday',
  8540.       'Saturday'
  8541.     ],
  8542.     gs = [
  8543.       'Sun',
  8544.       'Mon',
  8545.       'Tue',
  8546.       'Wed',
  8547.       'Thu',
  8548.       'Fri',
  8549.       'Sat'
  8550.     ],
  8551.     ys = [
  8552.       'January',
  8553.       'February',
  8554.       'March',
  8555.       'April',
  8556.       'May',
  8557.       'June',
  8558.       'July',
  8559.       'August',
  8560.       'September',
  8561.       'October',
  8562.       'November',
  8563.       'December'
  8564.     ],
  8565.     bs = [
  8566.       'Jan',
  8567.       'Feb',
  8568.       'Mar',
  8569.       'Apr',
  8570.       'May',
  8571.       'Jun',
  8572.       'Jul',
  8573.       'Aug',
  8574.       'Sep',
  8575.       'Oct',
  8576.       'Nov',
  8577.       'Dec'
  8578.     ],
  8579.     vs = function n(e, a) {
  8580.       var r = (a = a || new Date).getDay(),
  8581.       o = a.getYear(),
  8582.       i = ('' + a).match(/\((\w+)\)/),
  8583.       s = a.getTimezoneOffset(),
  8584.       l = s < 0 ? '-' : '+';
  8585.       return e.replace(/%(.)/g, function (e, t) {
  8586.         switch (t) {
  8587.           case 'A':
  8588.             return hs[a.getDay()];
  8589.           case 'a':
  8590.             return gs[a.getDay()];
  8591.           case 'B':
  8592.             return ys[a.getMonth()];
  8593.           case 'b':
  8594.           case 'h':
  8595.             return bs[a.getMonth()];
  8596.           case 'D':
  8597.             return n('%m/%d/%y', a);
  8598.           case 'd':
  8599.             return _s(a.getDate());
  8600.           case 'e':
  8601.             return a.getDate();
  8602.           case 'F':
  8603.             return n('%Y-%m-%d', a);
  8604.           case 'H':
  8605.             return _s(a.getHours());
  8606.           case 'I':
  8607.             return _s(Es(a));
  8608.           case 'k':
  8609.             return _s(a.getHours(), ' ');
  8610.           case 'l':
  8611.             return _s(Es(a), ' ');
  8612.           case 'M':
  8613.             return _s(a.getMinutes());
  8614.           case 'm':
  8615.             return _s(1 + a.getMonth());
  8616.           case 'n':
  8617.             return '\n';
  8618.           case 'p':
  8619.             return a.getHours() < 12 ? 'AM' : 'PM';
  8620.           case 'R':
  8621.             return n('%H:%M', a);
  8622.           case 'r':
  8623.             return n('%I:%M:%S %p', a);
  8624.           case 'S':
  8625.             return _s(a.getSeconds());
  8626.           case 's':
  8627.             return a.getTime();
  8628.           case 'T':
  8629.             return n('%H:%M:%S', a);
  8630.           case 't':
  8631.             return '\t';
  8632.           case 'u':
  8633.             return 0 == r ? 7 : r;
  8634.           case 'v':
  8635.             return n('%e-%b-%Y', a);
  8636.           case 'w':
  8637.             return a.getDay();
  8638.           case 'Y':
  8639.             return a.getFullYear();
  8640.           case 'y':
  8641.             return _s(o < 100 ? o : o - 100);
  8642.           case 'Z':
  8643.             return i && i[1] || '';
  8644.           case 'z':
  8645.             return l + _s(s / 60) + _s(s % 60);
  8646.           default:
  8647.             return t
  8648.         }
  8649.       })
  8650.     };
  8651.     function _s(e, t) {
  8652.       return 10 <= e ? e : (t || '0') + e
  8653.     }
  8654.     function Es(e) {
  8655.       e = e.getHours();
  8656.       return 0 === e ? e = 12 : 12 < e && (e -= 12),
  8657.       e
  8658.     }
  8659.     var Os = {
  8660.       prettyDatetime: function (e, t) {
  8661.         var n,
  8662.         a = Ve.a.getFromCookie(),
  8663.         r = a.tzOffset;
  8664.         return 'absolute' !== (t = t || a.datetimeFormatting) ? function (e) {
  8665.           var t = (new Date - e) / 1000,
  8666.           n = Math.abs(t),
  8667.           a = je.a.find(fs, function (e) {
  8668.             e = ps(e, 1);
  8669.             return n < e[0]
  8670.           }),
  8671.           r = ps(a = a || fs[fs.length - 1], 3),
  8672.           e = r[1],
  8673.           a = r[2];
  8674.           if ('string' == typeof a) return t < 0 ? a : e;
  8675.           r = t < 0 ? 'from now' : 'ago';
  8676.           return ''.concat(Math.floor(Math.abs(t) / a), ' ').concat(e, ' ').concat(r)
  8677.         }(ms(e)) : (r ? (n = ms(e, !0)).setTime(n.getTime() + (r = '-' == (t = (a = r) [0] || '') ? - 1 : 1, 1000 * (60 * (a = '-' == t || '+' == t ? a.substring(1) : a).substring(0, 2) * 60 * r + 60 * a.substring(2, 4)))) : n = ms(e), vs('%m/%d/%y %I:%M %p', n))
  8678.       },
  8679.       parseISO8601: ms
  8680.     },
  8681.     Ss = function (e) {
  8682.       var t,
  8683.       n = e.entry,
  8684.       a = 'user' === n.type,
  8685.       r = a ? C.a.createElement('div', null, (t = n.value).isAnonymous ? C.a.createElement('em', null, 'Account deleted') : C.a.createElement('div', null, C.a.createElement('a', {
  8686.         href: t.profileUrl,
  8687.         className: 'truncate-line'
  8688.       }, t.username), C.a.createElement('p', {
  8689.         className: 'text-gray text-small'
  8690.       }, t.name))) : n.value,
  8691.       o = n.createdAt ? ct.a.utc(n.createdAt).fromNow() : null;
  8692.       return C.a.createElement('div', {
  8693.         className: 'list__item align align--between'
  8694.       }, C.a.createElement('div', {
  8695.         className: 'align align--stretch access__block'
  8696.       }, a ? C.a.createElement('a', {
  8697.         href: n.value.profileUrl,
  8698.         className: 'spacing-right'
  8699.       }, C.a.createElement('img', {
  8700.         src: n.value.avatar ? n.value.avatar.cache : '//c.disquscdn.com/next/current/publisher-admin/assets/img/noavatar32.png',
  8701.         alt: n.value.name,
  8702.         className: 'img-round-sm'
  8703.       })) : C.a.createElement('div', {
  8704.         className: 'spacing-right'
  8705.       }, C.a.createElement('div', {
  8706.         className: 'access-avatar -'.concat(n.type)
  8707.       }, C.a.createElement('p', {
  8708.         className: 'access-avatar__name'
  8709.       }, 'email' === n.type ? '@' : n.type.substr(0, 2)))), C.a.createElement('div', {
  8710.         className: 'access__value'
  8711.       }, r, C.a.createElement('p', {
  8712.         className: 'text-small text-gray'
  8713.       }, o, n.notes ? C.a.createElement('span', null, ' · ', n.notes) : null))), n.shadowBan ? C.a.createElement('em', {
  8714.         className: 'text-gray text-small'
  8715.       }, 'Shadow Banned') : null, n.dateExpires ? C.a.createElement('em', {
  8716.         className: 'text-gray text-small spacing-right'
  8717.       }, 'Timeout expires ', Os.prettyDatetime(n.dateExpires, 'relative')) : null, a && n.value.isAnonymous ? null : C.a.createElement('div', {
  8718.         className: 'access__button'
  8719.       }, C.a.createElement('button', {
  8720.         className: 'button button-outline button-small',
  8721.         disabled: e.isSaving,
  8722.         onClick: e.onRemoveRequested
  8723.       }, 'Remove')))
  8724.     };
  8725.     Ss.displayName = 'AccessItem',
  8726.     Ss.propTypes = {
  8727.       entry: b.a.object.isRequired,
  8728.       onRemoveRequested: b.a.func.isRequired,
  8729.       isSaving: b.a.bool
  8730.     };
  8731.     var ws = Ss;
  8732.     function Ps(e) {
  8733.       return (Ps = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  8734.         return typeof e
  8735.       }
  8736.        : function (e) {
  8737.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  8738.       }) (e)
  8739.     }
  8740.     function ks(e, t) {
  8741.       for (var n = 0; n < t.length; n++) {
  8742.         var a = t[n];
  8743.         a.enumerable = a.enumerable || !1,
  8744.         a.configurable = !0,
  8745.         'value' in a && (a.writable = !0),
  8746.         Object.defineProperty(e, a.key, a)
  8747.       }
  8748.     }
  8749.     function Ns(e, t) {
  8750.       return (Ns = Object.setPrototypeOf || function (e, t) {
  8751.         return e.__proto__ = t,
  8752.         e
  8753.       }) (e, t)
  8754.     }
  8755.     function Cs(n) {
  8756.       var a = function () {
  8757.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  8758.         if (Reflect.construct.sham) return !1;
  8759.         if ('function' == typeof Proxy) return !0;
  8760.         try {
  8761.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  8762.           ], function () {
  8763.           })),
  8764.           !0
  8765.         } catch (e) {
  8766.           return !1
  8767.         }
  8768.       }();
  8769.       return function () {
  8770.         var e,
  8771.         t = xs(n);
  8772.         return e = a ? (e = xs(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  8773.         t = this,
  8774.         !(e = e) || 'object' !== Ps(e) && 'function' != typeof e ? Rs(t) : e
  8775.       }
  8776.     }
  8777.     function Rs(e) {
  8778.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  8779.       return e
  8780.     }
  8781.     function xs(e) {
  8782.       return (xs = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  8783.         return e.__proto__ || Object.getPrototypeOf(e)
  8784.       }) (e)
  8785.     }
  8786.     function As(e, t, n) {
  8787.       return t in e ? Object.defineProperty(e, t, {
  8788.         value: n,
  8789.         enumerable: !0,
  8790.         configurable: !0,
  8791.         writable: !0
  8792.       }) : e[t] = n,
  8793.       e
  8794.     }
  8795.     var Ds = function () {
  8796.       !function (e, t) {
  8797.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  8798.         e.prototype = Object.create(t && t.prototype, {
  8799.           constructor: {
  8800.             value: e,
  8801.             writable: !0,
  8802.             configurable: !0
  8803.           }
  8804.         }),
  8805.         t && Ns(e, t)
  8806.       }(o, A);
  8807.       var e,
  8808.       t,
  8809.       n,
  8810.       r = Cs(o);
  8811.       function o() {
  8812.         var t;
  8813.         !function (e, t) {
  8814.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  8815.         }(this, o);
  8816.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  8817.         return As(Rs(t = r.call.apply(r, [
  8818.           this
  8819.         ].concat(n))), 'renderListCard', function (e) {
  8820.           return C.a.createElement(ws, {
  8821.             key: e.id,
  8822.             entry: e,
  8823.             onRemoveRequested: t.props.onRemoveItem.bind(null, e),
  8824.             isSaving: t.props.isSaving
  8825.           })
  8826.         }),
  8827.         t
  8828.       }
  8829.       return e = o,
  8830.       (t = [
  8831.         {
  8832.           key: 'render',
  8833.           value: function () {
  8834.             return C.a.createElement('div', {
  8835.               className: 'list--border-bottom border-top'
  8836.             }, this.props.list.length ? this.props.list.map(this.renderListCard) : C.a.createElement('p', {
  8837.               className: 'text-center text-gray spacing-top'
  8838.             }, 'There are no items to show here.'))
  8839.           }
  8840.         }
  8841.       ]) && ks(e.prototype, t),
  8842.       n && ks(e, n),
  8843.       o
  8844.     }();
  8845.     As(Ds, 'displayName', 'AccessList'),
  8846.     As(Ds, 'propTypes', {
  8847.       list: b.a.array.isRequired,
  8848.       onRemoveItem: b.a.func.isRequired,
  8849.       isSaving: b.a.bool
  8850.     });
  8851.     var js = Ds,
  8852.     Ts = n(39),
  8853.     Is = n.n(Ts),
  8854.     qs = n(273),
  8855.     Fs = n.n(qs),
  8856.     Ls = function (e) {
  8857.       var t = e.children,
  8858.       n = e.linkActiveClassName,
  8859.       a = e.linkClassName,
  8860.       r = e.path,
  8861.       o = e.orgId,
  8862.       i = e.onClick,
  8863.       e = e.orgSlug || mt,
  8864.       r = '/orgs/'.concat(o, '/').concat(e).concat(r);
  8865.       return br.shortname || (br.orgId && parseInt(br.orgId, 10)) !== o ? (r = '//'.concat(br.disqusHost, '/admin').concat(r), C.a.createElement('a', {
  8866.         target: '_blank',
  8867.         rel: 'noopener noreferrer',
  8868.         href: r,
  8869.         className: a,
  8870.         onClick: i
  8871.       }, t)) : C.a.createElement(v.Link, {
  8872.         to: r,
  8873.         className: a,
  8874.         activeClassName: n,
  8875.         onClick: i
  8876.       }, t)
  8877.     };
  8878.     Ls.propTypes = {
  8879.       children: b.a.node.isRequired,
  8880.       linkActiveClassName: b.a.string,
  8881.       linkClassName: b.a.string,
  8882.       path: b.a.string.isRequired,
  8883.       orgId: b.a.number.isRequired,
  8884.       orgSlug: b.a.string,
  8885.       onClick: b.a.func
  8886.     };
  8887.     var Us = Ls;
  8888.     function Ms(e) {
  8889.       return (Ms = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  8890.         return typeof e
  8891.       }
  8892.        : function (e) {
  8893.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  8894.       }) (e)
  8895.     }
  8896.     function Bs(e, t) {
  8897.       for (var n = 0; n < t.length; n++) {
  8898.         var a = t[n];
  8899.         a.enumerable = a.enumerable || !1,
  8900.         a.configurable = !0,
  8901.         'value' in a && (a.writable = !0),
  8902.         Object.defineProperty(e, a.key, a)
  8903.       }
  8904.     }
  8905.     function zs(e, t) {
  8906.       return (zs = Object.setPrototypeOf || function (e, t) {
  8907.         return e.__proto__ = t,
  8908.         e
  8909.       }) (e, t)
  8910.     }
  8911.     function Hs(n) {
  8912.       var a = function () {
  8913.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  8914.         if (Reflect.construct.sham) return !1;
  8915.         if ('function' == typeof Proxy) return !0;
  8916.         try {
  8917.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  8918.           ], function () {
  8919.           })),
  8920.           !0
  8921.         } catch (e) {
  8922.           return !1
  8923.         }
  8924.       }();
  8925.       return function () {
  8926.         var e,
  8927.         t = Vs(n);
  8928.         return e = a ? (e = Vs(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  8929.         t = this,
  8930.         !(e = e) || 'object' !== Ms(e) && 'function' != typeof e ? Gs(t) : e
  8931.       }
  8932.     }
  8933.     function Gs(e) {
  8934.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  8935.       return e
  8936.     }
  8937.     function Vs(e) {
  8938.       return (Vs = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  8939.         return e.__proto__ || Object.getPrototypeOf(e)
  8940.       }) (e)
  8941.     }
  8942.     function Ws(e, t, n) {
  8943.       return t in e ? Object.defineProperty(e, t, {
  8944.         value: n,
  8945.         enumerable: !0,
  8946.         configurable: !0,
  8947.         writable: !0
  8948.       }) : e[t] = n,
  8949.       e
  8950.     }
  8951.     function Ys(e) {
  8952.       var t = e.className,
  8953.       n = e.organization,
  8954.       a = e.onClick,
  8955.       r = e.children,
  8956.       e = e.plan;
  8957.       return n ? C.a.createElement(Us, {
  8958.         linkClassName: t,
  8959.         path: '/settings/subscription'.concat(e === Ur.DISQUS_POLLS_BUSINESS_PLAN_ID ? '/?product=polls' : ''),
  8960.         onClick: a,
  8961.         orgId: n.id,
  8962.         orgSlug: n.slug
  8963.       }, r) : C.a.createElement(v.Link, {
  8964.         className: t,
  8965.         to: '/settings/subscription'.concat(e === Ur.DISQUS_POLLS_BUSINESS_PLAN_ID ? '/?product=polls' : ''),
  8966.         onClick: a
  8967.       }, r)
  8968.     }
  8969.     Ys.propTypes = {
  8970.       children: b.a.node.isRequired,
  8971.       onClick: b.a.func.isRequired,
  8972.       organization: b.a.shape({
  8973.         id: b.a.number.isRequired,
  8974.         slug: b.a.string.isRequired
  8975.       }),
  8976.       className: b.a.string,
  8977.       plan: b.a.oneOf(['plus',
  8978.       'pro',
  8979.       'business',
  8980.       Ur.DISQUS_POLLS_BUSINESS_PLAN_ID])
  8981.     };
  8982.     var Qs = function () {
  8983.       !function (e, t) {
  8984.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  8985.         e.prototype = Object.create(t && t.prototype, {
  8986.           constructor: {
  8987.             value: e,
  8988.             writable: !0,
  8989.             configurable: !0
  8990.           }
  8991.         }),
  8992.         t && zs(e, t)
  8993.       }(o, A);
  8994.       var e,
  8995.       t,
  8996.       n,
  8997.       r = Hs(o);
  8998.       function o() {
  8999.         var e;
  9000.         !function (e, t) {
  9001.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  9002.         }(this, o);
  9003.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  9004.         return Ws(Gs(e = r.call.apply(r, [
  9005.           this
  9006.         ].concat(n))), 'state', {
  9007.           hasSentHoverEvent: !1
  9008.         }),
  9009.         Ws(Gs(e), 'getUpgradeMessage', function () {
  9010.           switch (e.props.plan) {
  9011.             case 'plus':
  9012.               return 'Disqus Plus gives you access to an ad-free experience.';
  9013.             case 'pro':
  9014.               return 'Disqus Pro gives you access to exclusive features like auto-moderation, shadow banning, and customization options.';
  9015.             case 'business':
  9016.             case Ur.DISQUS_POLLS_BUSINESS_PLAN_ID:
  9017.               return 'Disqus'.concat(e.props.plan === Ur.DISQUS_POLLS_BUSINESS_PLAN_ID ? ' Polls' : '', ' Business gives you access to exclusive features like single sign-on, direct account management, and the full range of customization options.');
  9018.             default:
  9019.               return ''
  9020.           }
  9021.         }),
  9022.         Ws(Gs(e), 'handleMouseEnter', function () {
  9023.           e.state.hasSentHoverEvent || (e.setState({
  9024.             hasSentHoverEvent: !0
  9025.           }), e.props.emitEvent({
  9026.             verb: 'hover',
  9027.             object_type: 'icon',
  9028.             object_id: 'disqus_pro'
  9029.           }))
  9030.         }),
  9031.         Ws(Gs(e), 'handleUpgradeClick', function () {
  9032.           e.props.emitEvent({
  9033.             verb: 'click',
  9034.             object_type: 'button',
  9035.             object_id: 'subscriptions'
  9036.           })
  9037.         }),
  9038.         e
  9039.       }
  9040.       return e = o,
  9041.       (t = [
  9042.         {
  9043.           key: 'render',
  9044.           value: function () {
  9045.             var e = {
  9046.               fontSize: ''.concat(this.props.height, 'px')
  9047.             },
  9048.             t = {
  9049.               top: ''.concat(this.props.height + 12, 'px')
  9050.             };
  9051.             return C.a.createElement('span', {
  9052.               className: 'settings-general__upgrade-container align-inline media-middle'.concat(this.props.className ? ' '.concat(this.props.className) : '')
  9053.             }, C.a.createElement(Ys, {
  9054.               className: 'upgrade-link',
  9055.               organization: this.props.organization,
  9056.               onClick: this.handleUpgradeClick,
  9057.               plan: this.props.plan
  9058.             }, C.a.createElement('span', {
  9059.               className: [
  9060.                 'icon icon-upgrade-arrow-pro settings-general__upgrade-icon',
  9061.                 this.props.iconClass
  9062.               ].join(' ').trim(),
  9063.               style: e,
  9064.               onMouseEnter: this.handleMouseEnter
  9065.             })), C.a.createElement('span', {
  9066.               className: 'settings-general__upgrade-tooltip text-medium '.concat(this.props.tooltipClass || ''),
  9067.               style: t
  9068.             }, C.a.createElement('span', {
  9069.               className: 'settings-general__upgrade-text text-gray spacing-bottom text-left text-normal'
  9070.             }, this.getUpgradeMessage()), C.a.createElement(Ys, {
  9071.               organization: this.props.organization,
  9072.               onClick: this.handleUpgradeClick,
  9073.               className: 'button button-fill--brand button-wide button-padding-taller',
  9074.               plan: this.props.plan
  9075.             }, 'Subscriptions and Billing')))
  9076.           }
  9077.         }
  9078.       ]) && Bs(e.prototype, t),
  9079.       n && Bs(e, n),
  9080.       o
  9081.     }();
  9082.     Ws(Qs, 'propTypes', {
  9083.       emitEvent: b.a.func.isRequired,
  9084.       className: b.a.string,
  9085.       plan: b.a.oneOf(['plus',
  9086.       'pro',
  9087.       'business',
  9088.       Ur.DISQUS_POLLS_BUSINESS_PLAN_ID]),
  9089.       height: b.a.number,
  9090.       organization: b.a.shape({
  9091.         id: b.a.number.isRequired,
  9092.         slug: b.a.string.isRequired
  9093.       }),
  9094.       iconClass: b.a.string,
  9095.       tooltipClass: b.a.string
  9096.     }),
  9097.     Ws(Qs, 'defaultProps', {
  9098.       plan: 'pro',
  9099.       height: 28
  9100.     });
  9101.     var Ks = Qs,
  9102.     Js = {
  9103.       updateUserListsModal: function (e) {
  9104.         return {
  9105.           type: re.updateModal,
  9106.           isOpen: e.isOpen,
  9107.           listType: e.listType,
  9108.           formValues: e.formValues,
  9109.           postId: e.postId,
  9110.           author: e.author
  9111.         }
  9112.       },
  9113.       updateBanFormType: function (e) {
  9114.         return {
  9115.           type: re.updateBanFormValues,
  9116.           banType: e
  9117.         }
  9118.       },
  9119.       resetUserListsModal: function () {
  9120.         return {
  9121.           type: re.resetDefault
  9122.         }
  9123.       }
  9124.     };
  9125.     function $s(e) {
  9126.       return ($s = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  9127.         return typeof e
  9128.       }
  9129.        : function (e) {
  9130.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  9131.       }) (e)
  9132.     }
  9133.     function Zs() {
  9134.       return (Zs = Object.assign || function (e) {
  9135.         for (var t = 1; t < arguments.length; t++) {
  9136.           var n,
  9137.           a = arguments[t];
  9138.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  9139.         }
  9140.         return e
  9141.       }).apply(this, arguments)
  9142.     }
  9143.     function Xs(t, e) {
  9144.       var n,
  9145.       a = Object.keys(t);
  9146.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  9147.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  9148.       })), a.push.apply(a, n)),
  9149.       a
  9150.     }
  9151.     function el(t) {
  9152.       for (var e = 1; e < arguments.length; e++) {
  9153.         var n = null != arguments[e] ? arguments[e] : {
  9154.         };
  9155.         e % 2 ? Xs(Object(n), !0).forEach(function (e) {
  9156.           il(t, e, n[e])
  9157.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Xs(Object(n)).forEach(function (e) {
  9158.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  9159.         })
  9160.       }
  9161.       return t
  9162.     }
  9163.     function tl(e, t) {
  9164.       for (var n = 0; n < t.length; n++) {
  9165.         var a = t[n];
  9166.         a.enumerable = a.enumerable || !1,
  9167.         a.configurable = !0,
  9168.         'value' in a && (a.writable = !0),
  9169.         Object.defineProperty(e, a.key, a)
  9170.       }
  9171.     }
  9172.     function nl(e, t) {
  9173.       return (nl = Object.setPrototypeOf || function (e, t) {
  9174.         return e.__proto__ = t,
  9175.         e
  9176.       }) (e, t)
  9177.     }
  9178.     function al(n) {
  9179.       var a = function () {
  9180.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  9181.         if (Reflect.construct.sham) return !1;
  9182.         if ('function' == typeof Proxy) return !0;
  9183.         try {
  9184.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  9185.           ], function () {
  9186.           })),
  9187.           !0
  9188.         } catch (e) {
  9189.           return !1
  9190.         }
  9191.       }();
  9192.       return function () {
  9193.         var e,
  9194.         t = ol(n);
  9195.         return e = a ? (e = ol(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  9196.         t = this,
  9197.         !(e = e) || 'object' !== $s(e) && 'function' != typeof e ? rl(t) : e
  9198.       }
  9199.     }
  9200.     function rl(e) {
  9201.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  9202.       return e
  9203.     }
  9204.     function ol(e) {
  9205.       return (ol = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  9206.         return e.__proto__ || Object.getPrototypeOf(e)
  9207.       }) (e)
  9208.     }
  9209.     function il(e, t, n) {
  9210.       return t in e ? Object.defineProperty(e, t, {
  9211.         value: n,
  9212.         enumerable: !0,
  9213.         configurable: !0,
  9214.         writable: !0
  9215.       }) : e[t] = n,
  9216.       e
  9217.     }
  9218.     var sl = function () {
  9219.       !function (e, t) {
  9220.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  9221.         e.prototype = Object.create(t && t.prototype, {
  9222.           constructor: {
  9223.             value: e,
  9224.             writable: !0,
  9225.             configurable: !0
  9226.           }
  9227.         }),
  9228.         t && nl(e, t)
  9229.       }(r, A);
  9230.       var e,
  9231.       t,
  9232.       n,
  9233.       a = al(r);
  9234.       function r(e) {
  9235.         var o;
  9236.         return function (e, t) {
  9237.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  9238.         }(this, r),
  9239.         il(rl(o = a.call(this, e)), 'onOpen', function (e) {
  9240.           var t,
  9241.           n,
  9242.           a;
  9243.           o.props.emitTrackingEvent({
  9244.             verb: 'view',
  9245.             object_type: 'modal',
  9246.             object_id: e.listName === Wn.LIST_TYPES.WHITELIST ? 'trust_user' : 'ban_user'
  9247.           }),
  9248.           e.listName && e.forum ? (a = e.banType, t = e.saasFeatures[o.props.forum.organizationId], Object(Wn.isBanTypeSupported) (a, t) || (n = Is.a.get(Wn.STORAGE_KEY_BAN_TYPE), a = Object(Wn.isBanTypeSupported) (n, t) ? n : Wn.BAN_TYPES.PERMANENT, o.props.updateBanFormType(a)), a = el(el({
  9249.           }, e.defaultFormValues), {
  9250.           }, {
  9251.             type: a
  9252.           }), e.user && (a.userId = e.user.id), o.setState({
  9253.             formValues: a,
  9254.             itemType: 'user',
  9255.             itemValue: ''
  9256.           })) : o.handleClose()
  9257.         }),
  9258.         il(rl(o), 'handleClose', function (e) {
  9259.           o.state.formValues.replaceCancel && o.props.performActionOnReplacedCancel('spam', o.props.postId, !(!e || !e.preventUndo)),
  9260.           o.setState({
  9261.             formValues: {
  9262.             },
  9263.             itemType: 'user',
  9264.             itemValue: ''
  9265.           }),
  9266.           o.props.isOpen && o.props.close(),
  9267.           o.props.updateBanFormType(null)
  9268.         }),
  9269.         il(rl(o), 'validateProps', function (e) {
  9270.           return !!(e.listName && e.user && e.forum)
  9271.         }),
  9272.         il(rl(o), 'validatePropsNoUser', function (e) {
  9273.           return !(!e.listName || !e.forum)
  9274.         }),
  9275.         il(rl(o), 'toggleUserValueChecked', function (e, t) {
  9276.           o.setState({
  9277.             formValues: je.a.defaults(il({
  9278.             }, t, e.target.checked ? o.props.user[t] : null), o.state.formValues)
  9279.           })
  9280.         }),
  9281.         il(rl(o), 'toggleIpAddressChecked', function (e) {
  9282.           o.setState({
  9283.             formValues: je.a.defaults({
  9284.               ipAddress: e.target.checked ? o.props.ipAddress : null
  9285.             }, o.state.formValues)
  9286.           })
  9287.         }),
  9288.         il(rl(o), 'toggleBanType', function (e, t) {
  9289.           e.preventDefault();
  9290.           e = o.props.forum.organizationId || o.props.forum.organization;
  9291.           Object(Wn.isBanTypeSupported) (t, o.props.saasFeatures[e]) && (o.props.updateBanFormType(t), o.setState(function (e) {
  9292.             return {
  9293.               formValues: je.a.defaults({
  9294.                 type: t
  9295.               }, e.formValues)
  9296.             }
  9297.           }), Is.a.set(Wn.STORAGE_KEY_BAN_TYPE, t))
  9298.         }),
  9299.         il(rl(o), 'toggleBanTypeCallback', function (e) {
  9300.           o.toggleBanType(e, e.target.value)
  9301.         }),
  9302.         il(rl(o), 'selectRetroactiveAction', function (e) {
  9303.           o.setState({
  9304.             formValues: je.a.defaults({
  9305.               retroactiveAction: e.target.value || Wn.RETROACTIVE_ACTION_TYPES.DO_NOTHING
  9306.             }, o.state.formValues)
  9307.           })
  9308.         }),
  9309.         il(rl(o), 'updateReason', function (e) {
  9310.           o.setState({
  9311.             formValues: je.a.defaults({
  9312.               reason: e.target.value
  9313.             }, o.state.formValues)
  9314.           })
  9315.         }),
  9316.         il(rl(o), 'updateDuration', function (e) {
  9317.           o.setState({
  9318.             formValues: je.a.defaults({
  9319.               durationHours: e.target.value
  9320.             }, o.state.formValues)
  9321.           })
  9322.         }),
  9323.         il(rl(o), 'updateCustomDurationAmount', function (e) {
  9324.           e = e.target.value.replace(/[^\d]/g, '');
  9325.           o.setState({
  9326.             formValues: je.a.defaults({
  9327.               durationHours: 'custom',
  9328.               customDurationAmount: e
  9329.             }, o.state.formValues)
  9330.           })
  9331.         }),
  9332.         il(rl(o), 'updateCustomDurationScale', function (e) {
  9333.           o.setState({
  9334.             formValues: je.a.defaults({
  9335.               durationHours: 'custom',
  9336.               customDurationScale: e.target.value
  9337.             }, o.state.formValues)
  9338.           })
  9339.         }),
  9340.         il(rl(o), 'handleChangeValue', function (e) {
  9341.           o.setState('itemType' === e.target.name ? {
  9342.             itemType: e.target.value
  9343.           }
  9344.            : {
  9345.             itemValue: e.target.value
  9346.           })
  9347.         }),
  9348.         il(rl(o), 'getPlaceholderForValue', function (e) {
  9349.           switch (e) {
  9350.             case 'email':
  9351.               return 'Enter an email address, e.g. someone@example.com';
  9352.             case 'user':
  9353.               return 'Enter a registered Disqus username';
  9354.             case 'domain':
  9355.               return 'Enter a domain, e.g. example.com';
  9356.             case 'ip':
  9357.               return 'Enter an IP address, e.g. 123.123.123.123';
  9358.             default:
  9359.               return ''
  9360.           }
  9361.         }),
  9362.         il(rl(o), 'filterTypesForSelection', function (t) {
  9363.           var n = o.props.selection.forum;
  9364.           return n ? je.a.filter(Ci, function (e) {
  9365.             return ('domain' !== e.value || o.state.formValues.type === Wn.BAN_TYPES.PERMANENT) && (n.settings.IS_CHANNEL_PRIMARY_FORUM && !n.permissions.canAdminister ? e.isChannelVisible : je.a.contains(e.lists, t) && je.a.every(e.permissions, function (e) {
  9366.               return n.permissions[e]
  9367.             }))
  9368.           }) : [
  9369.           ]
  9370.         }),
  9371.         il(rl(o), 'handleSubmit', function (e) {
  9372.           e.preventDefault();
  9373.           var t = o.props.banType === Wn.BAN_TYPES.TEMP ? Object(Wn.getDateExpires) ({
  9374.             durationHours: o.state.formValues.durationHours,
  9375.             customDurationAmount: o.state.formValues.customDurationAmount,
  9376.             customDurationScale: o.state.formValues.customDurationScale
  9377.           }) : null,
  9378.           n = je.a.extend({
  9379.             forumId: o.props.forum.id,
  9380.             postId: o.props.postId,
  9381.             type: o.props.banType,
  9382.             dateExpires: t
  9383.           }, o.state.formValues);
  9384.           o.props.emitTrackingEvent({
  9385.             verb: 'click',
  9386.             object_type: 'button',
  9387.             object_id: o.props.listName === Wn.LIST_TYPES.WHITELIST ? 'trust_user' : 'ban_user',
  9388.             extra_data: o.props.listName === Wn.LIST_TYPES.BLACKLIST ? JSON.stringify({
  9389.               date_added: ct() ().toISOString(),
  9390.               date_expires: t
  9391.             }) : null
  9392.           });
  9393.           var a,
  9394.           r = !1;
  9395.           o.props.listName === Wn.LIST_TYPES.WHITELIST ? o.props.addUserToWhitelist(n) : (a = o.state.formValues.replaceCancel ? n.postId : '', e = !!o.state.formValues.email || !!o.state.formValues.username || !!o.state.formValues.ipAddress, r = (t = o.props.banType === Wn.BAN_TYPES.PERMANENT) && e && (n.retroactiveAction === Wn.RETROACTIVE_ACTION_TYPES.DELETE || n.retroactiveAction === Wn.RETROACTIVE_ACTION_TYPES.MARK_AS_SPAM), o.props.addNewItem || o.props.addUserToBlacklist(je.a.omit(n, je.a.isNull)), t && e && o.props.performRetroactiveAction(a, n.userId, n.retroactiveAction), o.props.addNewItem && (n.itemType = o.state.itemType, n.itemValue = o.state.itemValue, n.itemMethod = n.type, n.itemList = 'blacklist', o.props.addNewItem(n))),
  9396.           o.handleClose({
  9397.             preventUndo: r
  9398.           })
  9399.         }),
  9400.         o.state = {
  9401.           formValues: e.defaultFormValues,
  9402.           itemType: 'user',
  9403.           itemValue: ''
  9404.         },
  9405.         o
  9406.       }
  9407.       return e = r,
  9408.       (t = [
  9409.         {
  9410.           key: 'componentDidMount',
  9411.           value: function () {
  9412.             this.props.fetchSaasFeatures(this.props.forum.organizationId),
  9413.             this.props.isOpen && this.onOpen(this.props)
  9414.           }
  9415.         },
  9416.         {
  9417.           key: 'componentWillReceiveProps',
  9418.           value: function (e) {
  9419.             e.isOpen && !this.props.isOpen && this.onOpen(e),
  9420.             e.forum !== this.props.forum && this.props.fetchSaasFeatures(e.forum.organizationId)
  9421.           }
  9422.         },
  9423.         {
  9424.           key: 'componentWillUnmount',
  9425.           value: function () {
  9426.             this.handleClose()
  9427.           }
  9428.         },
  9429.         {
  9430.           key: 'render',
  9431.           value: function () {
  9432.             var t = this,
  9433.             e = this.props.saasFeatures[this.props.forum.organizationId || this.props.forum.organization];
  9434.             return C.a.createElement(_.a, {
  9435.               isOpen: this.props.isOpen,
  9436.               onRequestClose: this.handleClose,
  9437.               className: 'admin-modal -mobile',
  9438.               overlayClassName: 'modal-overlay'
  9439.             }, C.a.createElement('div', {
  9440.               className: 'admin-modal__header align align--between'
  9441.             }, C.a.createElement('h3', {
  9442.               className: 'text-large text-capitalized'
  9443.             }, 'Add to ', 'whitelist' === this.props.listName ? 'Trusted' : 'Banned', ' List on ', this.props.forum.name), C.a.createElement('button', {
  9444.               className: 'link-gray',
  9445.               onClick: this.handleClose
  9446.             }, C.a.createElement('span', {
  9447.               className: 'icon-cancel icon__position'
  9448.             }))), C.a.createElement(Fs.a, Zs({
  9449.               formValues: je.a.defaults({
  9450.                 type: this.props.banType
  9451.               }, this.state.formValues),
  9452.               supportsShadowBanning: Object(Wn.isBanTypeSupported) (Wn.BAN_TYPES.SHADOW, e),
  9453.               supportsTempBanning: Object(Wn.isBanTypeSupported) (Wn.BAN_TYPES.TEMP, e),
  9454.               selectRetroactiveAction: this.selectRetroactiveAction,
  9455.               toggleBanTypeCallback: this.toggleBanTypeCallback,
  9456.               toggleUserValueChecked: this.toggleUserValueChecked,
  9457.               toggleIpAddressChecked: this.toggleIpAddressChecked,
  9458.               updateReason: this.updateReason,
  9459.               updateDuration: this.updateDuration,
  9460.               updateCustomDurationAmount: this.updateCustomDurationAmount,
  9461.               updateCustomDurationScale: this.updateCustomDurationScale,
  9462.               handleSubmit: this.handleSubmit,
  9463.               handleClose: this.handleClose,
  9464.               handleChangeValue: this.handleChangeValue,
  9465.               closeText: this.state.formValues.replaceCancel ? 'Skip' : 'Cancel',
  9466.               getPlaceholderForValue: this.getPlaceholderForValue,
  9467.               itemTypes: this.filterTypesForSelection(this.props.listName),
  9468.               itemType: this.state.itemType,
  9469.               itemValue: this.state.itemValue,
  9470.               UpgradeIcon: function (e) {
  9471.                 return C.a.createElement(Ks, Zs({
  9472.                   organization: t.props.selection.organization,
  9473.                   emitEvent: t.props.emitTrackingEvent,
  9474.                   iconClass: 'media-middle text-largest text-yellow spacing-left'
  9475.                 }, e))
  9476.               }
  9477.             }, this.props)))
  9478.           }
  9479.         }
  9480.       ]) && tl(e.prototype, t),
  9481.       n && tl(e, n),
  9482.       r
  9483.     }();
  9484.     il(sl, 'displayName', 'ModerationUserListsModal'),
  9485.     il(sl, 'propTypes', {
  9486.       emitTrackingEvent: b.a.func.isRequired,
  9487.       listName: b.a.oneOf(je.a.values(Wn.LIST_TYPES)),
  9488.       user: b.a.object,
  9489.       ipAddress: b.a.string,
  9490.       postId: b.a.string,
  9491.       forum: b.a.object,
  9492.       isOpen: b.a.bool.isRequired,
  9493.       close: b.a.func.isRequired,
  9494.       selection: ht,
  9495.       addUserToWhitelist: b.a.func.isRequired,
  9496.       addUserToBlacklist: b.a.func.isRequired,
  9497.       performRetroactiveAction: b.a.func.isRequired,
  9498.       updateBanFormType: b.a.func.isRequired,
  9499.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  9500.       fetchSaasFeatures: b.a.func.isRequired,
  9501.       banType: b.a.string,
  9502.       defaultFormValues: b.a.shape({
  9503.         durationHours: b.a.string,
  9504.         customDurationAmount: b.a.string,
  9505.         customDurationScale: b.a.string,
  9506.         retroactiveAction: b.a.string,
  9507.         type: b.a.string,
  9508.         replaceCancel: b.a.bool,
  9509.         username: b.a.string,
  9510.         email: b.a.string,
  9511.         reason: b.a.string
  9512.       }),
  9513.       performActionOnReplacedCancel: b.a.func,
  9514.       addNewItem: b.a.func
  9515.     });
  9516.     var ll = Object(u.connect) (function (e) {
  9517.       var t = e.moderationUserLists;
  9518.       return {
  9519.         saasFeatures: e.saasFeatures,
  9520.         isOpen: t.modalIsOpen,
  9521.         listName: t.listType,
  9522.         banType: t.banType,
  9523.         defaultFormValues: t.modalFormValues,
  9524.         postId: t.postId,
  9525.         user: t.author
  9526.       }
  9527.     }, {
  9528.       fetchSaasFeatures: so.fetch,
  9529.       updateBanFormType: Js.updateBanFormType,
  9530.       emitTrackingEvent: Xo({
  9531.         zone: 'moderation_panel',
  9532.         section: 'welcome',
  9533.         area: 'user_sidebar'
  9534.       })
  9535.     }) (sl);
  9536.     function cl(e) {
  9537.       return (cl = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  9538.         return typeof e
  9539.       }
  9540.        : function (e) {
  9541.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  9542.       }) (e)
  9543.     }
  9544.     function ul(e, t) {
  9545.       for (var n = 0; n < t.length; n++) {
  9546.         var a = t[n];
  9547.         a.enumerable = a.enumerable || !1,
  9548.         a.configurable = !0,
  9549.         'value' in a && (a.writable = !0),
  9550.         Object.defineProperty(e, a.key, a)
  9551.       }
  9552.     }
  9553.     function pl(e, t) {
  9554.       return (pl = Object.setPrototypeOf || function (e, t) {
  9555.         return e.__proto__ = t,
  9556.         e
  9557.       }) (e, t)
  9558.     }
  9559.     function dl(n) {
  9560.       var a = function () {
  9561.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  9562.         if (Reflect.construct.sham) return !1;
  9563.         if ('function' == typeof Proxy) return !0;
  9564.         try {
  9565.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  9566.           ], function () {
  9567.           })),
  9568.           !0
  9569.         } catch (e) {
  9570.           return !1
  9571.         }
  9572.       }();
  9573.       return function () {
  9574.         var e,
  9575.         t = fl(n);
  9576.         return e = a ? (e = fl(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  9577.         t = this,
  9578.         !(e = e) || 'object' !== cl(e) && 'function' != typeof e ? ml(t) : e
  9579.       }
  9580.     }
  9581.     function ml(e) {
  9582.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  9583.       return e
  9584.     }
  9585.     function fl(e) {
  9586.       return (fl = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  9587.         return e.__proto__ || Object.getPrototypeOf(e)
  9588.       }) (e)
  9589.     }
  9590.     function hl(e, t, n) {
  9591.       return t in e ? Object.defineProperty(e, t, {
  9592.         value: n,
  9593.         enumerable: !0,
  9594.         configurable: !0,
  9595.         writable: !0
  9596.       }) : e[t] = n,
  9597.       e
  9598.     }
  9599.     var gl = [
  9600.       10,
  9601.       13
  9602.     ],
  9603.     yl = function () {
  9604.       !function (e, t) {
  9605.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  9606.         e.prototype = Object.create(t && t.prototype, {
  9607.           constructor: {
  9608.             value: e,
  9609.             writable: !0,
  9610.             configurable: !0
  9611.           }
  9612.         }),
  9613.         t && pl(e, t)
  9614.       }(o, A);
  9615.       var e,
  9616.       t,
  9617.       n,
  9618.       r = dl(o);
  9619.       function o() {
  9620.         var t;
  9621.         !function (e, t) {
  9622.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  9623.         }(this, o);
  9624.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  9625.         return hl(ml(t = r.call.apply(r, [
  9626.           this
  9627.         ].concat(n))), 'state', {
  9628.           queryInput: '',
  9629.           showAddItemModal: !1
  9630.         }),
  9631.         hl(ml(t), 'handleQueryChange', function (e) {
  9632.           t.setState({
  9633.             queryInput: e.target.value
  9634.           })
  9635.         }),
  9636.         hl(ml(t), 'handleNewQuerySearch', function (e) {
  9637.           t.props.accessOnQuerySubmit(e || t.state.queryInput)
  9638.         }),
  9639.         hl(ml(t), 'handleQueryKeyUp', function (e) {
  9640.           e.preventDefault(),
  9641.           ~gl.indexOf(e.keyCode) && t.handleNewQuerySearch(e.target.value)
  9642.         }),
  9643.         hl(ml(t), 'handleToggleAddItemModal', function (e) {
  9644.           t.setState({
  9645.             showAddItemModal: je.a.isBoolean(e) ? e : !t.state.showAddItemModal
  9646.           })
  9647.         }),
  9648.         hl(ml(t), 'handleAddNewItem', function (e) {
  9649.           t.props.accessOnAddItem(e).done(t.handleToggleAddItemModal.bind(ml(t), !1))
  9650.         }),
  9651.         t
  9652.       }
  9653.       return e = o,
  9654.       (t = [
  9655.         {
  9656.           key: 'componentWillReceiveProps',
  9657.           value: function (e) {
  9658.             this.setState({
  9659.               queryInput: e.accessQuery || ''
  9660.             })
  9661.           }
  9662.         },
  9663.         {
  9664.           key: 'componentDidMount',
  9665.           value: function () {
  9666.             this.props.resetUserListsModal()
  9667.           }
  9668.         },
  9669.         {
  9670.           key: 'componentDidUpdate',
  9671.           value: function () {
  9672.             'blacklist' === this.props.route.accessListType && this.props.updateUserListsModal({
  9673.               isOpen: this.state.showAddItemModal,
  9674.               listType: this.props.route.accessListType
  9675.             })
  9676.           }
  9677.         },
  9678.         {
  9679.           key: 'render',
  9680.           value: function () {
  9681.             return C.a.createElement('div', null, C.a.createElement('ul', {
  9682.               className: 'nav-tabs -small'
  9683.             }, C.a.createElement('li', {
  9684.               className: 'blacklist' === this.props.route.accessListType ? 'active' : null
  9685.             }, C.a.createElement(Uo, {
  9686.               linkActiveClassName: 'active',
  9687.               path: '/access/banned/',
  9688.               selection: this.props.selection
  9689.             }, 'Banned')), C.a.createElement('li', {
  9690.               className: 'whitelist' === this.props.route.accessListType ? 'active' : null
  9691.             }, C.a.createElement(Uo, {
  9692.               linkActiveClassName: 'active',
  9693.               path: '/access/trusted/',
  9694.               selection: this.props.selection
  9695.             }, 'Trusted'))), this.props.accessFetchError ? C.a.createElement(Ki, {
  9696.               message: this.props.accessFetchError,
  9697.               alertType: 'error'
  9698.             }) : null, this.props.accessSaveError ? C.a.createElement(Ki, {
  9699.               message: this.props.accessSaveError,
  9700.               alertType: 'error'
  9701.             }) : null, C.a.createElement('div', null, C.a.createElement('div', {
  9702.               className: 'align align--between align--middle spacing-top spacing-bottom'
  9703.             }, C.a.createElement('div', {
  9704.               className: 'align align--between align--middle'
  9705.             }, C.a.createElement('form', {
  9706.               onSubmit: function (e) {
  9707.                 return e.preventDefault()
  9708.               }
  9709.             }, C.a.createElement('input', {
  9710.               className: 'input--default input--textbox -text-small -wide padding-small',
  9711.               type: 'text',
  9712.               placeholder: 'Search by username, ip, or email',
  9713.               value: this.state.queryInput,
  9714.               onChange: this.handleQueryChange,
  9715.               onKeyUp: this.handleQueryKeyUp
  9716.             }), C.a.createElement('button', {
  9717.               className: 'button button-link text-small',
  9718.               type: 'button',
  9719.               onClick: this.handleNewQuerySearch.bind(this, this.state.queryInput)
  9720.             }, 'Filter'))), C.a.createElement('div', null, 'blacklist' === this.props.route.accessListType ? C.a.createElement(C.a.Fragment, null, C.a.createElement('button', {
  9721.               type: 'button',
  9722.               className: 'button button-fill--brand button-small',
  9723.               onClick: this.handleToggleAddItemModal
  9724.             }, 'Add Banned'), C.a.createElement(ll, {
  9725.               listName: Yn.a.BLACKLIST,
  9726.               postId: '',
  9727.               user: '',
  9728.               ipAddress: '',
  9729.               selection: this.props.selection,
  9730.               forum: this.props.selection.forum,
  9731.               addUserToBlacklist: this.props.addUserToBlacklist,
  9732.               performRetroactiveAction: function () {
  9733.               },
  9734.               addUserToWhitelist: this.props.addUserToWhitelist,
  9735.               isOpen: this.state.showAddItemModal,
  9736.               close: this.handleToggleAddItemModal,
  9737.               performActionOnReplacedCancel: this.handlePostAction,
  9738.               addNewItem: this.props.accessOnAddItem
  9739.             })) : C.a.createElement(C.a.Fragment, null, C.a.createElement('button', {
  9740.               type: 'button',
  9741.               className: 'button button-fill--brand button-small',
  9742.               onClick: this.handleToggleAddItemModal
  9743.             }, ' Add Trusted '), C.a.createElement(us, {
  9744.               initialList: this.props.route.accessListType,
  9745.               accessOnFilterTypes: this.props.accessOnFilterTypes,
  9746.               isOpen: this.state.showAddItemModal,
  9747.               isFetching: this.props.accessIsSaving,
  9748.               error: this.props.accessSaveError,
  9749.               onClearError: this.props.accessOnClearSaveError,
  9750.               onSubmitNewItem: this.handleAddNewItem,
  9751.               onRequestClose: this.handleToggleAddItemModal
  9752.             })))), this.props.accessIsFetching ? C.a.createElement(Qi, null) : null, C.a.createElement(js, {
  9753.               list: this.props.accessList,
  9754.               onRemoveItem: this.props.accessOnRemoveItem,
  9755.               isSaving: this.props.accessIsSaving
  9756.             }), C.a.createElement('div', {
  9757.               className: 'align align--between align--middle border-top spacing-top'
  9758.             }, C.a.createElement('button', {
  9759.               className: 'button button-outline button-small spacing-top',
  9760.               onClick: this.props.accessOnPaginatePrev,
  9761.               disabled: !this.props.accessCursor.hasPrev
  9762.             }, C.a.createElement('strong', null, 'Previous Page')), C.a.createElement('button', {
  9763.               className: 'button button-outline button-small spacing-top',
  9764.               onClick: this.props.accessOnPaginateNext,
  9765.               disabled: !this.props.accessCursor.hasNext
  9766.             }, C.a.createElement('strong', null, 'Next Page')))))
  9767.           }
  9768.         }
  9769.       ]) && ul(e.prototype, t),
  9770.       n && ul(e, n),
  9771.       o
  9772.     }();
  9773.     hl(yl, 'displayName', 'AccessTab'),
  9774.     hl(yl, 'propTypes', {
  9775.       selection: ht.isRequired,
  9776.       route: b.a.shape({
  9777.         accessListType: b.a.oneOf(['blacklist',
  9778.         'whitelist']).isRequired
  9779.       }).isRequired,
  9780.       accessOnFilterTypes: b.a.func.isRequired,
  9781.       accessList: b.a.array.isRequired,
  9782.       accessCursor: b.a.object.isRequired,
  9783.       accessQuery: b.a.string,
  9784.       accessOnQuerySubmit: b.a.func.isRequired,
  9785.       accessFetchError: b.a.string,
  9786.       accessIsFetching: b.a.bool,
  9787.       accessSaveError: b.a.string,
  9788.       accessOnClearSaveError: b.a.func.isRequired,
  9789.       accessIsSaving: b.a.bool,
  9790.       accessOnPaginateNext: b.a.func.isRequired,
  9791.       accessOnPaginatePrev: b.a.func.isRequired,
  9792.       accessOnRemoveItem: b.a.func.isRequired,
  9793.       accessOnAddItem: b.a.func.isRequired,
  9794.       updateUserListsModal: b.a.func.isRequired,
  9795.       resetUserListsModal: b.a.func.isRequired
  9796.     });
  9797.     var bl = Object(u.connect) (function (e) {
  9798.       return {
  9799.         selection: e.selection
  9800.       }
  9801.     }, {
  9802.       updateUserListsModal: Js.updateUserListsModal,
  9803.       resetUserListsModal: Js.resetUserListsModal
  9804.     }) (Ni.a.attachDrivers(yl, [
  9805.       Li,
  9806.       Wi
  9807.     ])),
  9808.     vl = n(92),
  9809.     _l = n.n(vl);
  9810.     function El(e) {
  9811.       return (El = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  9812.         return typeof e
  9813.       }
  9814.        : function (e) {
  9815.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  9816.       }) (e)
  9817.     }
  9818.     function Ol(e, t) {
  9819.       for (var n = 0; n < t.length; n++) {
  9820.         var a = t[n];
  9821.         a.enumerable = a.enumerable || !1,
  9822.         a.configurable = !0,
  9823.         'value' in a && (a.writable = !0),
  9824.         Object.defineProperty(e, a.key, a)
  9825.       }
  9826.     }
  9827.     function Sl(e, t) {
  9828.       return (Sl = Object.setPrototypeOf || function (e, t) {
  9829.         return e.__proto__ = t,
  9830.         e
  9831.       }) (e, t)
  9832.     }
  9833.     function wl(n) {
  9834.       var a = function () {
  9835.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  9836.         if (Reflect.construct.sham) return !1;
  9837.         if ('function' == typeof Proxy) return !0;
  9838.         try {
  9839.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  9840.           ], function () {
  9841.           })),
  9842.           !0
  9843.         } catch (e) {
  9844.           return !1
  9845.         }
  9846.       }();
  9847.       return function () {
  9848.         var e,
  9849.         t = kl(n);
  9850.         return e = a ? (e = kl(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  9851.         t = this,
  9852.         !(e = e) || 'object' !== El(e) && 'function' != typeof e ? Pl(t) : e
  9853.       }
  9854.     }
  9855.     function Pl(e) {
  9856.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  9857.       return e
  9858.     }
  9859.     function kl(e) {
  9860.       return (kl = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  9861.         return e.__proto__ || Object.getPrototypeOf(e)
  9862.       }) (e)
  9863.     }
  9864.     function Nl(e, t, n) {
  9865.       return t in e ? Object.defineProperty(e, t, {
  9866.         value: n,
  9867.         enumerable: !0,
  9868.         configurable: !0,
  9869.         writable: !0
  9870.       }) : e[t] = n,
  9871.       e
  9872.     }
  9873.     var Cl = function () {
  9874.       !function (e, t) {
  9875.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  9876.         e.prototype = Object.create(t && t.prototype, {
  9877.           constructor: {
  9878.             value: e,
  9879.             writable: !0,
  9880.             configurable: !0
  9881.           }
  9882.         }),
  9883.         t && Sl(e, t)
  9884.       }(o, A);
  9885.       var e,
  9886.       t,
  9887.       n,
  9888.       r = wl(o);
  9889.       function o() {
  9890.         var e;
  9891.         !function (e, t) {
  9892.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  9893.         }(this, o);
  9894.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  9895.         return Nl(Pl(e = r.call.apply(r, [
  9896.           this
  9897.         ].concat(n))), 'state', {
  9898.           isOpen: !0
  9899.         }),
  9900.         Nl(Pl(e), 'open', function () {
  9901.           e.setState({
  9902.             isOpen: !0
  9903.           })
  9904.         }),
  9905.         Nl(Pl(e), 'close', function () {
  9906.           e.setState({
  9907.             isOpen: !1
  9908.           })
  9909.         }),
  9910.         e
  9911.       }
  9912.       return e = o,
  9913.       (t = [
  9914.         {
  9915.           key: 'render',
  9916.           value: function () {
  9917.             return C.a.createElement('div', null, C.a.createElement('button', {
  9918.               type: 'button',
  9919.               className: 'button button-wide button-fill--green spacing-bottom',
  9920.               onClick: this.open
  9921.             }, C.a.createElement('span', {
  9922.               className: 'icon-warning'
  9923.             }), C.a.createElement('span', {
  9924.               className: 'spacing-left'
  9925.             }, 'Disqus is currently undergoing maintenance')), C.a.createElement(_.a, {
  9926.               isOpen: this.state.isOpen,
  9927.               onRequestClose: this.close,
  9928.               'admin-modal': 'admin-modal'
  9929.             }, C.a.createElement('div', {
  9930.               className: 'modal-content'
  9931.             }, C.a.createElement('div', {
  9932.               className: 'modal-header'
  9933.             }, C.a.createElement('h4', {
  9934.               className: 'modal-title'
  9935.             }, C.a.createElement('span', {
  9936.               className: 'icon__position spacing-right-small'
  9937.             }, C.a.createElement('span', {
  9938.               className: 'icon-warning'
  9939.             })), C.a.createElement('span', {
  9940.               className: 'spacing-left'
  9941.             }, 'Maintenance Alert!'))), C.a.createElement('div', {
  9942.               className: 'modal-body'
  9943.             }, C.a.createElement('p', null, 'Disqus is currently undergoing maintenance. You will still be able to see things here, but you won\'t be able to change anything until this is complete. See our status page for more.')), C.a.createElement('div', {
  9944.               className: 'modal-footer text-center'
  9945.             }, C.a.createElement('a', {
  9946.               href: 'https://status.disqus.com/',
  9947.               className: 'button button-wide button-fill--brand'
  9948.             }, 'Check Status'), C.a.createElement('button', {
  9949.               type: 'button',
  9950.               className: 'button button-link spacing-top text-small',
  9951.               onClick: this.close
  9952.             }, 'Or continue to admin')))))
  9953.           }
  9954.         }
  9955.       ]) && Ol(e.prototype, t),
  9956.       n && Ol(e, n),
  9957.       o
  9958.     }();
  9959.     Nl(Cl, 'displayName', 'ReadOnlyAlert');
  9960.     var Rl = Cl,
  9961.     xl = n(276),
  9962.     Al = n.n(xl),
  9963.     Dl = n(60),
  9964.     jl = n.n(Dl),
  9965.     Tl = n(43),
  9966.     Il = n.n(Tl);
  9967.     var ql = function (e) {
  9968.       var t;
  9969.       return !!(e.forum && (e.forum.organizationId || e.forum.organization) || e.organization && e.organization.id) && ((t = e).organization && t.organization.oldPolicyException || function (e) {
  9970.         e = e.organization || e.forum;
  9971.         return e && e.newPolicy
  9972.       }(e))
  9973.     };
  9974.     function Fl(t, e) {
  9975.       var n,
  9976.       a = Object.keys(t);
  9977.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  9978.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  9979.       })), a.push.apply(a, n)),
  9980.       a
  9981.     }
  9982.     function Ll(a) {
  9983.       for (var e = 1; e < arguments.length; e++) {
  9984.         var r = null != arguments[e] ? arguments[e] : {
  9985.         };
  9986.         e % 2 ? Fl(Object(r), !0).forEach(function (e) {
  9987.           var t,
  9988.           n;
  9989.           n = r[t = e],
  9990.           t in (e = a) ? Object.defineProperty(e, t, {
  9991.             value: n,
  9992.             enumerable: !0,
  9993.             configurable: !0,
  9994.             writable: !0
  9995.           }) : e[t] = n
  9996.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Fl(Object(r)).forEach(function (e) {
  9997.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  9998.         })
  9999.       }
  10000.       return a
  10001.     }
  10002.     function Ul(a, r, e, t, o) {
  10003.       var i = e().selection.organization,
  10004.       s = {
  10005.         organization: e().selection.organization.id,
  10006.         plan: a.id
  10007.       };
  10008.       yo.a.isFeatureActive('stripeCoupons') && (s.coupon = t && t.stripeId),
  10009.       io.a.call('organizations/saas/subscribe', {
  10010.         method: 'POST',
  10011.         data: s
  10012.       }).done(function (e) {
  10013.         return {
  10014.           response: e.response
  10015.         }
  10016.       }).fail(function () {
  10017.         r({
  10018.           type: _e.updateSubscriptionEnd
  10019.         })
  10020.       }).then(function (n) {
  10021.         return (o ? io.a.call('organizations/saas/subscribe', {
  10022.           method: 'POST',
  10023.           data: Ll(Ll({
  10024.           }, s), {
  10025.           }, {
  10026.             plan: o.id
  10027.           })
  10028.         }).done(function (e) {
  10029.           return {
  10030.             response: e.response
  10031.           }
  10032.         }).fail(function () {
  10033.           r({
  10034.             type: _e.updateSubscriptionEnd
  10035.           })
  10036.         }) : vo.a.when(0)).then(function (t) {
  10037.           return io.a.call('organizations/saas/billingInformation', {
  10038.             data: {
  10039.               organization: e().selection.organization.id
  10040.             }
  10041.           }).then(function (e) {
  10042.             r({
  10043.               type: _e.updateSubscriptionEnd
  10044.             }),
  10045.             r({
  10046.               type: a.id.indexOf('polls') ? _e.fetchedCurrentPlan : _e.pollsFetchedCurrentPlan,
  10047.               response: n.response
  10048.             }),
  10049.             o && r({
  10050.               type: o.id.indexOf('polls') ? _e.fetchedCurrentPlan : _e.pollsFetchedCurrentPlan,
  10051.               response: t.response
  10052.             }),
  10053.             r({
  10054.               type: _e.fetchedBillingInformation,
  10055.               response: e.response
  10056.             }),
  10057.             a.productName === Ur.SAAS_PRODUCT_COMMENTS && i.pollsOnly && r({
  10058.               type: be.onEnableComments
  10059.             }),
  10060.             e = {
  10061.               event: Object(Tl.getGtmEvent) (a),
  10062.               conversionValue: '$'.concat(Object(Tl.formatPlanAmount) (a.amount))
  10063.             },
  10064.             (window.dataLayer || [
  10065.             ]).push(e)
  10066.           }, function () {
  10067.             r({
  10068.               type: a.id.indexOf('polls') ? _e.fetchedCurrentPlan : _e.pollsFetchedCurrentPlan,
  10069.               response: n.response
  10070.             })
  10071.           })
  10072.         })
  10073.       })
  10074.     }
  10075.     function Ml(e, t, n) {
  10076.       return e.name = e.name || 'Disqus',
  10077.       ko.onOpenStripe(Ll({
  10078.         image: '//c.disquscdn.com/next/current/publisher-admin/assets/img/disqus-social-icon-blue--small.png',
  10079.         billingAddress: !0,
  10080.         zipCode: !0
  10081.       }, e), n).then(function (e) {
  10082.         return t({
  10083.           type: _e.updateSubscriptionStart
  10084.         }),
  10085.         Gl(t, n, e)
  10086.       })
  10087.     }
  10088.     var Bl,
  10089.     zl = jl.a.isMobileUserAgent,
  10090.     Hl = function () {
  10091.       return function (t, e) {
  10092.         var n = e().selection.organization,
  10093.         a = {
  10094.           organization: n ? n.id : void 0
  10095.         },
  10096.         r = n && (n.permissions.isAdmin || n.permissions.isModerator);
  10097.         !e().subscription.orgSubscriptionIsFetching && r && (t({
  10098.           type: _e.fetchStart
  10099.         }), io.a.call('saas/packages/list', {
  10100.           data: a
  10101.         }).done(function (e) {
  10102.           t({
  10103.             type: _e.fetchedPackages,
  10104.             isFromInitialFetch: !0,
  10105.             response: e.response
  10106.           })
  10107.         }).fail(function () {
  10108.           t({
  10109.             type: _e.fetchFailed,
  10110.             isFromInitialFetch: !0
  10111.           })
  10112.         }), n && (n.pollsOnly || (t({
  10113.           type: _e.fetchStart
  10114.         }), io.a.call('organizations/saas/currentPlan', {
  10115.           data: a
  10116.         }).done(function (e) {
  10117.           t({
  10118.             type: _e.fetchedCurrentPlan,
  10119.             isFromInitialFetch: !0,
  10120.             response: e.response
  10121.           })
  10122.         }).fail(function () {
  10123.           t({
  10124.             type: _e.fetchFailed,
  10125.             isFromInitialFetch: !0
  10126.           })
  10127.         })), n.pollsActivationDate && (t({
  10128.           type: _e.fetchStart
  10129.         }), io.a.call('organizations/saas/currentPlan', {
  10130.           data: Ll(Ll({
  10131.           }, a), {
  10132.           }, {
  10133.             productName: Ur.SAAS_PRODUCT_POLLS,
  10134.             includeInactive: 1
  10135.           })
  10136.         }).done(function (e) {
  10137.           t({
  10138.             type: _e.pollsFetchedCurrentPlan,
  10139.             isFromInitialFetch: !0,
  10140.             response: e.response
  10141.           })
  10142.         }).fail(function () {
  10143.           t({
  10144.             type: _e.fetchFailed,
  10145.             isFromInitialFetch: !0
  10146.           })
  10147.         })), t({
  10148.           type: _e.fetchStart
  10149.         }), io.a.call('organizations/saas/billingInformation', {
  10150.           data: a
  10151.         }).done(function (e) {
  10152.           t({
  10153.             type: _e.fetchedBillingInformation,
  10154.             isFromInitialFetch: !0,
  10155.             response: e.response
  10156.           })
  10157.         }).fail(function () {
  10158.           t({
  10159.             type: _e.fetchFailed,
  10160.             isFromInitialFetch: !0
  10161.           })
  10162.         }))),
  10163.         ko.addStripeScript(t, e)
  10164.       }
  10165.     },
  10166.     Gl = function (t, e, n) {
  10167.       return io.a.call('organizations/saas/updatePaymentInfo', {
  10168.         method: 'POST',
  10169.         data: {
  10170.           organization: e().selection.organization.id,
  10171.           token: n.id
  10172.         }
  10173.       }).then(function (e) {
  10174.         e = e.response;
  10175.         t({
  10176.           type: _e.updateSubscriptionEnd
  10177.         }),
  10178.         t({
  10179.           type: _e.fetchedBillingInformation,
  10180.           response: e
  10181.         })
  10182.       })
  10183.     },
  10184.     Vl = function (n) {
  10185.       return function (t, e) {
  10186.         t({
  10187.           type: _e.updateInvoiceStart
  10188.         }),
  10189.         io.a.call('organizations/saas/updateInvoiceInfo', {
  10190.           method: 'POST',
  10191.           data: Ll({
  10192.             organization: e().selection.organization.id
  10193.           }, n)
  10194.         }).done(function (e) {
  10195.           t({
  10196.             type: _e.updateInvoiceEnd,
  10197.             response: e.response
  10198.           })
  10199.         }).fail(function () {
  10200.           t({
  10201.             type: _e.updateInvoiceEnd
  10202.           })
  10203.         })
  10204.       }
  10205.     },
  10206.     Wl = function (d, r, o, m) {
  10207.       return function (i, s) {
  10208.         if (d.id === Ur.DISQUS_BASIC_PLAN_ID) return e = i,
  10209.         io.a.call('organizations/enableComments', {
  10210.           method: 'POST',
  10211.           data: {
  10212.             organization: s().selection.organization.id
  10213.           }
  10214.         }).done(function () {
  10215.           e({
  10216.             type: be.onEnableComments
  10217.           })
  10218.         });
  10219.         var e,
  10220.         t = s().subscription;
  10221.         t.orgBilling.paymentInfo && i({
  10222.           type: _e.updateSubscriptionStart
  10223.         });
  10224.         var l = s().selection.organization.id,
  10225.         c = t.orgTrial || {
  10226.         },
  10227.         u = je.a.find(t.packages, function (e) {
  10228.           return e.plans.some(function (e) {
  10229.             return e.id === d.id
  10230.           })
  10231.         });
  10232.         if (!u) {
  10233.           var n = vo.a.Deferred();
  10234.           return n.reject(Error('Unknown plan')),
  10235.           n.promise()
  10236.         }
  10237.         function p() {
  10238.           return Ul(d, i, s, null, m)
  10239.         }
  10240.         var a = !!t.orgAvailableTrials && !!~t.orgAvailableTrials.indexOf(d.id) || !!t.orgTransferableTrials && !!~t.orgTransferableTrials.indexOf(d.id),
  10241.         n = vo.a.when(0);
  10242.         return !d.amount || t.orgBilling.paymentInfo || !Object(Tl.isNewFlow) ('cc_v2', {
  10243.           orgId: l,
  10244.           trial: c
  10245.         }) && a ? n.then(p).then(null, function (e) {
  10246.           var t,
  10247.           n = e && e.responseText || '';
  10248.           try {
  10249.             r = JSON.parse(e.responseText)
  10250.           } catch (e) {
  10251.           }
  10252.           if (r && 25 === r.code) {
  10253.             try {
  10254.               t = JSON.parse(r.response)
  10255.             } catch (e) {
  10256.             }
  10257.             if (t && 'stripe' === t.provider && 'card_error' === t.type) {
  10258.               var a = vo.a.Deferred(),
  10259.               r = Error('Could not subscribe');
  10260.               return r.code = 25,
  10261.               r.reason = t.message,
  10262.               a.reject(r),
  10263.               a
  10264.             }
  10265.           }
  10266.           if (~n.indexOf('You must unsubscribe from your current plan.')) {
  10267.             Hl();
  10268.             a = vo.a.Deferred();
  10269.             return a.reject(Error('Could not subscribe')),
  10270.             a
  10271.           }
  10272.           if (~n.indexOf('Need payment information.') && !zl()) return o = '',
  10273.           'month' === (n = d.interval || 'month') ? o = 'Monthly ' : 'year' === n && (o = 'Yearly '),
  10274.           Ml({
  10275.             amount: d.amount,
  10276.             description: Object(Tl.isNewFlow) ('cc_v2_stripe', {
  10277.               orgId: l,
  10278.               trial: c
  10279.             }) ? 'You won’t be charged for 30 days' : ''.concat(o).concat(u.name, ' subscription'),
  10280.             panelLabel: 'Subscribe {{amount}} /'.concat(n),
  10281.             name: Object(Tl.isNewFlow) ('cc_v2_stripe', {
  10282.               orgId: l,
  10283.               trial: c
  10284.             }) ? 'Disqus '.concat(o).concat(u.name) : null,
  10285.             nostyle: !0
  10286.           }, i, s).then(p);
  10287.           var o = vo.a.Deferred();
  10288.           return o.reject(e),
  10289.           o
  10290.         }) : (ko.updateCheckoutData({
  10291.           plan: d.id,
  10292.           organization: l,
  10293.           returnUrl: o
  10294.         }, i), r.push(ho.getRoute('/checkout/')), n)
  10295.       }
  10296.     },
  10297.     Yl = function (e, n) {
  10298.       return function (t) {
  10299.         return io.a.call('organizations/saas/subscribe', {
  10300.           method: 'POST',
  10301.           data: {
  10302.             organization: e,
  10303.             activationCode: n
  10304.           }
  10305.         }).done(function (e) {
  10306.           e = e.response;
  10307.           t({
  10308.             type: e.plan.id.indexOf('polls') ? _e.fetchedCurrentPlan : _e.pollsFetchedCurrentPlan,
  10309.             response: e.response
  10310.           })
  10311.         }).fail(function () {
  10312.           t({
  10313.             type: _e.updateSubscriptionEnd
  10314.           })
  10315.         })
  10316.       }
  10317.     },
  10318.     Ql = function (e) {
  10319.       return function () {
  10320.         return io.a.call('internal/saas/activationCode/validate', {
  10321.           data: {
  10322.             activationCode: e
  10323.           }
  10324.         })
  10325.       }
  10326.     },
  10327.     Kl = function () {
  10328.       return function (e, t) {
  10329.         return Ml({
  10330.           amount: 0,
  10331.           panelLabel: 'Update payment info'
  10332.         }, e, t)
  10333.       }
  10334.     };
  10335.     function Jl(e) {
  10336.       return (Jl = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  10337.         return typeof e
  10338.       }
  10339.        : function (e) {
  10340.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  10341.       }) (e)
  10342.     }
  10343.     function $l(e, t) {
  10344.       for (var n = 0; n < t.length; n++) {
  10345.         var a = t[n];
  10346.         a.enumerable = a.enumerable || !1,
  10347.         a.configurable = !0,
  10348.         'value' in a && (a.writable = !0),
  10349.         Object.defineProperty(e, a.key, a)
  10350.       }
  10351.     }
  10352.     function Zl(e, t) {
  10353.       return (Zl = Object.setPrototypeOf || function (e, t) {
  10354.         return e.__proto__ = t,
  10355.         e
  10356.       }) (e, t)
  10357.     }
  10358.     function Xl(n) {
  10359.       var a = function () {
  10360.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  10361.         if (Reflect.construct.sham) return !1;
  10362.         if ('function' == typeof Proxy) return !0;
  10363.         try {
  10364.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  10365.           ], function () {
  10366.           })),
  10367.           !0
  10368.         } catch (e) {
  10369.           return !1
  10370.         }
  10371.       }();
  10372.       return function () {
  10373.         var e,
  10374.         t = tc(n);
  10375.         return e = a ? (e = tc(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  10376.         t = this,
  10377.         !(e = e) || 'object' !== Jl(e) && 'function' != typeof e ? ec(t) : e
  10378.       }
  10379.     }
  10380.     function ec(e) {
  10381.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  10382.       return e
  10383.     }
  10384.     function tc(e) {
  10385.       return (tc = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  10386.         return e.__proto__ || Object.getPrototypeOf(e)
  10387.       }) (e)
  10388.     }
  10389.     function nc(e, t, n) {
  10390.       return t in e ? Object.defineProperty(e, t, {
  10391.         value: n,
  10392.         enumerable: !0,
  10393.         configurable: !0,
  10394.         writable: !0
  10395.       }) : e[t] = n,
  10396.       e
  10397.     }
  10398.     var ac = function () {
  10399.       !function (e, t) {
  10400.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  10401.         e.prototype = Object.create(t && t.prototype, {
  10402.           constructor: {
  10403.             value: e,
  10404.             writable: !0,
  10405.             configurable: !0
  10406.           }
  10407.         }),
  10408.         t && Zl(e, t)
  10409.       }(o, A);
  10410.       var e,
  10411.       t,
  10412.       n,
  10413.       r = Xl(o);
  10414.       function o() {
  10415.         var t;
  10416.         !function (e, t) {
  10417.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  10418.         }(this, o);
  10419.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  10420.         return nc(ec(t = r.call.apply(r, [
  10421.           this
  10422.         ].concat(n))), 'state', {
  10423.           user: Bl
  10424.         }),
  10425.         nc(ec(t), 'fetchData', function () {
  10426.           t.apiCall = io.a.call('users/details').done(t.onFetch)
  10427.         }),
  10428.         nc(ec(t), 'onFetch', function (e) {
  10429.           t.setState({
  10430.             user: Bl = e.response
  10431.           })
  10432.         }),
  10433.         nc(ec(t), 'getComponentProps', function () {
  10434.           return {
  10435.             user: t.state.user
  10436.           }
  10437.         }),
  10438.         t
  10439.       }
  10440.       return e = o,
  10441.       (t = [
  10442.         {
  10443.           key: 'componentDidMount',
  10444.           value: function () {
  10445.             this.state.user || this.fetchData()
  10446.           }
  10447.         },
  10448.         {
  10449.           key: 'componentWillUnmount',
  10450.           value: function () {
  10451.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  10452.           }
  10453.         }
  10454.       ]) && $l(e.prototype, t),
  10455.       n && $l(e, n),
  10456.       o
  10457.     }();
  10458.     nc(ac, 'displayName', 'LoggedInUserDetailsDriver');
  10459.     var rc = Object(ki.createDriver) (ac);
  10460.     function oc(e) {
  10461.       return (oc = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  10462.         return typeof e
  10463.       }
  10464.        : function (e) {
  10465.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  10466.       }) (e)
  10467.     }
  10468.     function ic(e) {
  10469.       return function (e) {
  10470.         if (Array.isArray(e)) return cc(e)
  10471.       }(e) || uc(e) || lc(e) || function () {
  10472.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  10473.       }()
  10474.     }
  10475.     function sc(e) {
  10476.       return function (e) {
  10477.         if (Array.isArray(e)) return e
  10478.       }(e) || uc(e) || lc(e) || function () {
  10479.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  10480.       }()
  10481.     }
  10482.     function lc(e, t) {
  10483.       if (e) {
  10484.         if ('string' == typeof e) return cc(e, t);
  10485.         var n = Object.prototype.toString.call(e).slice(8, - 1);
  10486.         return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? cc(e, t) : void 0
  10487.       }
  10488.     }
  10489.     function cc(e, t) {
  10490.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  10491.       return a
  10492.     }
  10493.     function uc(e) {
  10494.       if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  10495.     }
  10496.     function pc(e, t) {
  10497.       for (var n = 0; n < t.length; n++) {
  10498.         var a = t[n];
  10499.         a.enumerable = a.enumerable || !1,
  10500.         a.configurable = !0,
  10501.         'value' in a && (a.writable = !0),
  10502.         Object.defineProperty(e, a.key, a)
  10503.       }
  10504.     }
  10505.     function dc(e, t) {
  10506.       return (dc = Object.setPrototypeOf || function (e, t) {
  10507.         return e.__proto__ = t,
  10508.         e
  10509.       }) (e, t)
  10510.     }
  10511.     function mc(n) {
  10512.       var a = function () {
  10513.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  10514.         if (Reflect.construct.sham) return !1;
  10515.         if ('function' == typeof Proxy) return !0;
  10516.         try {
  10517.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  10518.           ], function () {
  10519.           })),
  10520.           !0
  10521.         } catch (e) {
  10522.           return !1
  10523.         }
  10524.       }();
  10525.       return function () {
  10526.         var e,
  10527.         t = hc(n);
  10528.         return e = a ? (e = hc(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  10529.         t = this,
  10530.         !(e = e) || 'object' !== oc(e) && 'function' != typeof e ? fc(t) : e
  10531.       }
  10532.     }
  10533.     function fc(e) {
  10534.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  10535.       return e
  10536.     }
  10537.     function hc(e) {
  10538.       return (hc = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  10539.         return e.__proto__ || Object.getPrototypeOf(e)
  10540.       }) (e)
  10541.     }
  10542.     function gc(e, t, n) {
  10543.       return t in e ? Object.defineProperty(e, t, {
  10544.         value: n,
  10545.         enumerable: !0,
  10546.         configurable: !0,
  10547.         writable: !0
  10548.       }) : e[t] = n,
  10549.       e
  10550.     }
  10551.     var yc = function () {
  10552.       !function (e, t) {
  10553.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  10554.         e.prototype = Object.create(t && t.prototype, {
  10555.           constructor: {
  10556.             value: e,
  10557.             writable: !0,
  10558.             configurable: !0
  10559.           }
  10560.         }),
  10561.         t && dc(e, t)
  10562.       }(s, A);
  10563.       var e,
  10564.       t,
  10565.       n,
  10566.       a = mc(s);
  10567.       function s() {
  10568.         var i;
  10569.         !function (e, t) {
  10570.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  10571.         }(this, s);
  10572.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  10573.         return gc(fc(i = a.call.apply(a, [
  10574.           this
  10575.         ].concat(t))), 'onLocationChange', function () {
  10576.           clearTimeout(i._pendingPageView),
  10577.           i._pendingPageView = je.a.defer(function () {
  10578.             window.location.href !== i._pageHref && (i._pageHref = window.location.href, i.onSegmentCall('page', {
  10579.               path: fo()
  10580.             }))
  10581.           })
  10582.         }),
  10583.         gc(fc(i), 'sendPageView', function () {
  10584.           window.location.href === i._pageHref && i.onSegmentCall('page', {
  10585.             path: fo()
  10586.           })
  10587.         }),
  10588.         gc(fc(i), 'checkUser', function () {
  10589.           var e;
  10590.           s._hasSeenUser || (e = i.props.user) && (s._hasSeenUser = !0, i.onSegmentCall('identify', e.id, {
  10591.             avatar: e.avatar && e.avatar.cache,
  10592.             createdAt: ''.concat(e.joinedAt, 'Z'),
  10593.             email: e.email,
  10594.             name: e.name,
  10595.             username: e.username,
  10596.             website: e.url
  10597.           }))
  10598.         }),
  10599.         gc(fc(i), 'checkGroup', function () {
  10600.           if (!s._hasSeenGroup) {
  10601.             var e,
  10602.             t = i.props.selection.organization;
  10603.             if (!t) {
  10604.               if (!i.props.user) return;
  10605.               t = je.a.chain(window._v5Config.organizations).values().find(function (e) {
  10606.                 return e.owner === i.props.user.username
  10607.               }).value()
  10608.             }
  10609.             !t || !t.pollsOnly && !i.props.orgCurrentPlan || t.pollsActivationDate && !i.props.pollsOrgCurrentPlan || (s._hasSeenGroup = !0, e = {
  10610.               name: t.name,
  10611.               slug: t.slug,
  10612.               averageDailyPageviews: t.averageDailyPageviews,
  10613.               averageDailyPosts: t.averageDailyPosts,
  10614.               totalRecentPosts: t.totalRecentPosts,
  10615.               plan: i.props.orgCurrentPlan ? i.props.orgCurrentPlan.id : void 0,
  10616.               pollsOnly: t.pollsOnly,
  10617.               pollsActivationDate: t.pollsActivationDate ? ''.concat(t.pollsActivationDate, 'Z') : void 0,
  10618.               pollsPlan: i.props.pollsOrgCurrentPlan && i.props.pollsPlanStatus !== Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS ? i.props.pollsOrgCurrentPlan.id : void 0
  10619.             }, null !== t.averageDailyPostshareRevenue && (e.averageDailyPostshareRevenue = t.averageDailyPostshareRevenue), i.onSegmentCall('group', '' + t.id, e))
  10620.           }
  10621.         }),
  10622.         gc(fc(i), 'onSegmentCall', function (e) {
  10623.           for (var t, n, a = arguments.length, r = Array(1 < a ? a - 1 : 0), o = 1; o < a; o++) r[o - 1] = arguments[o];
  10624.           if (s._hasSentIdentify || 'identify' === e || 'debug' === e) {
  10625.             if (window.analytics) return window.analytics.initialize ? t = (n = window.analytics) [e].apply(n, r) : window.analytics.push([e].concat(r)),
  10626.             'identify' !== e || s._hasSentIdentify || (s._hasSentIdentify = !0, n = s._queue, s._queue = [
  10627.             ], n.forEach(function (e) {
  10628.               var t = sc(e),
  10629.               e = t[0],
  10630.               t = t.slice(1);
  10631.               return i.onSegmentCall.apply(i, [
  10632.                 e
  10633.               ].concat(ic(t)))
  10634.             })),
  10635.             t
  10636.           } else s._queue.push([e].concat(r))
  10637.         }),
  10638.         gc(fc(i), 'getComponentProps', function () {
  10639.           return {
  10640.             onSegmentCall: i.onSegmentCall
  10641.           }
  10642.         }),
  10643.         i
  10644.       }
  10645.       return e = s,
  10646.       (t = [
  10647.         {
  10648.           key: 'getChildContext',
  10649.           value: function () {
  10650.             return {
  10651.               onSegmentCall: this.onSegmentCall
  10652.             }
  10653.           }
  10654.         },
  10655.         {
  10656.           key: 'componentWillMount',
  10657.           value: function () {
  10658.             this._pageHref = window.location.href
  10659.           }
  10660.         },
  10661.         {
  10662.           key: 'componentDidMount',
  10663.           value: function () {
  10664.             var e,
  10665.             t = this;
  10666.             s._scriptAdded || window.analytics && window.analytics.initialize || (window.analytics || (window.analytics = [
  10667.             ]), window.analytics.SNIPPET_VERSION = '4.0.0', s._scriptAdded = !0, (e = window.document.createElement('script')).src = 'https://cdn.segment.com/analytics.js/v1/'.concat(pt.a.keys.segmentIO, '/analytics.min.js'), e.async = 1, window.document.head.appendChild(e)),
  10668.             this.checkUser(),
  10669.             this.checkGroup(),
  10670.             this.sendPageView(),
  10671.             this._pendingPageView = null,
  10672.             this._stopListening = this.context.router.listen(function () {
  10673.               return t.onLocationChange()
  10674.             })
  10675.           }
  10676.         },
  10677.         {
  10678.           key: 'componentDidUpdate',
  10679.           value: function (e) {
  10680.             this.checkUser(),
  10681.             this.checkGroup(),
  10682.             this.props.selection.organization && e.orgCurrentPlan && this.props.orgCurrentPlan && e.orgCurrentPlan.id !== this.props.orgCurrentPlan.id && this.onSegmentCall('group', '' + this.props.selection.organization.id, {
  10683.               plan: this.props.orgCurrentPlan.id
  10684.             }),
  10685.             (e.selection.organization && !e.selection.organization.pollsActivationDate && !e.pollsOrgCurrentPlan && this.props.pollsOrgCurrentPlan || e.pollsOrgCurrentPlan && this.props.pollsOrgCurrentPlan && e.pollsOrgCurrentPlan.id !== this.props.pollsOrgCurrentPlan.id || e.pollsOrgCurrentPlan && this.props.pollsOrgCurrentPlan && e.pollsPlanStatus === Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS && this.props.pollsPlanStatus !== Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS) && this.onSegmentCall('group', '' + this.props.selection.organization.id, {
  10686.               pollsPlan: this.props.pollsOrgCurrentPlan.id
  10687.             }),
  10688.             !s.hasSeenPublishedPoll && this.props.polls && this.props.polls.some(function (e) {
  10689.               return e.published
  10690.             }) && (s.hasSeenPublishedPoll = !0)
  10691.           }
  10692.         },
  10693.         {
  10694.           key: 'componentWillUnmount',
  10695.           value: function () {
  10696.             this._stopListening && this._stopListening(),
  10697.             clearTimeout(this._pendingPageView)
  10698.           }
  10699.         }
  10700.       ]) && pc(e.prototype, t),
  10701.       n && pc(e, n),
  10702.       s
  10703.     }();
  10704.     gc(yc, 'displayName', 'SegmentIODriver'),
  10705.     gc(yc, 'propTypes', {
  10706.       orgCurrentPlan: Ur.PLAN_SHAPE,
  10707.       selection: ht,
  10708.       user: b.a.object
  10709.     }),
  10710.     gc(yc, 'contextTypes', {
  10711.       router: b.a.object.isRequired
  10712.     }),
  10713.     gc(yc, 'childContextTypes', {
  10714.       onSegmentCall: b.a.func
  10715.     }),
  10716.     gc(yc, '_scriptAdded', !1),
  10717.     gc(yc, '_hasSeenGroup', !1),
  10718.     gc(yc, '_hasSeenUser', !1),
  10719.     gc(yc, '_queue', [
  10720.     ]),
  10721.     gc(yc, '_hasSentIdentify', !1);
  10722.     var bc = Ni.a.attachDrivers(Ni.a.createDriver(yc, function (e) {
  10723.       var t = e.subscription;
  10724.       return {
  10725.         orgCurrentPlan: t.orgCurrentPlan,
  10726.         pollsOrgCurrentPlan: t.pollsOrgCurrentPlan,
  10727.         pollsPlanStatus: t.pollsPlanStatus,
  10728.         selection: e.selection,
  10729.         pollsList: e.pollsList
  10730.       }
  10731.     }), [
  10732.       rc
  10733.     ]);
  10734.     function vc(e) {
  10735.       return (vc = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  10736.         return typeof e
  10737.       }
  10738.        : function (e) {
  10739.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  10740.       }) (e)
  10741.     }
  10742.     function _c(e, t) {
  10743.       for (var n = 0; n < t.length; n++) {
  10744.         var a = t[n];
  10745.         a.enumerable = a.enumerable || !1,
  10746.         a.configurable = !0,
  10747.         'value' in a && (a.writable = !0),
  10748.         Object.defineProperty(e, a.key, a)
  10749.       }
  10750.     }
  10751.     function Ec(e, t) {
  10752.       return (Ec = Object.setPrototypeOf || function (e, t) {
  10753.         return e.__proto__ = t,
  10754.         e
  10755.       }) (e, t)
  10756.     }
  10757.     function Oc(n) {
  10758.       var a = function () {
  10759.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  10760.         if (Reflect.construct.sham) return !1;
  10761.         if ('function' == typeof Proxy) return !0;
  10762.         try {
  10763.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  10764.           ], function () {
  10765.           })),
  10766.           !0
  10767.         } catch (e) {
  10768.           return !1
  10769.         }
  10770.       }();
  10771.       return function () {
  10772.         var e,
  10773.         t = Sc(n);
  10774.         return e = a ? (e = Sc(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  10775.         t = this,
  10776.         !(e = e) || 'object' !== vc(e) && 'function' != typeof e ? function (e) {
  10777.           if (void 0 !== e) return e;
  10778.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  10779.         }(t) : e
  10780.       }
  10781.     }
  10782.     function Sc(e) {
  10783.       return (Sc = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  10784.         return e.__proto__ || Object.getPrototypeOf(e)
  10785.       }) (e)
  10786.     }
  10787.     function wc(e, t, n) {
  10788.       return t in e ? Object.defineProperty(e, t, {
  10789.         value: n,
  10790.         enumerable: !0,
  10791.         configurable: !0,
  10792.         writable: !0
  10793.       }) : e[t] = n,
  10794.       e
  10795.     }
  10796.     var Pc = function () {
  10797.       !function (e, t) {
  10798.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  10799.         e.prototype = Object.create(t && t.prototype, {
  10800.           constructor: {
  10801.             value: e,
  10802.             writable: !0,
  10803.             configurable: !0
  10804.           }
  10805.         }),
  10806.         t && Ec(e, t)
  10807.       }(r, A);
  10808.       var e,
  10809.       t,
  10810.       n,
  10811.       a = Oc(r);
  10812.       function r() {
  10813.         return function (e, t) {
  10814.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  10815.         }(this, r),
  10816.         a.apply(this, arguments)
  10817.       }
  10818.       return e = r,
  10819.       (t = [
  10820.         {
  10821.           key: 'componentDidMount',
  10822.           value: function () {
  10823.             this.props.fetchSubscription()
  10824.           }
  10825.         },
  10826.         {
  10827.           key: 'render',
  10828.           value: function () {
  10829.             var t = this;
  10830.             if (this.props.orgSubscriptionIsFetching || !(this.props.orgTrial && this.props.orgTrial.isActive && this.props.orgBilling) || this.props.orgBilling.paymentInfo || '/settings/subscription/' === fo(this.props.location.basename + this.props.location.pathname)) return null;
  10831.             var e = ct() (this.props.orgTrial.endDate).diff(ct() (), 'days'),
  10832.             n = (this.props.selection.organization || {
  10833.             }).id;
  10834.             return C.a.createElement('div', {
  10835.               className: 'motd-alert alert--muted-dark'
  10836.             }, C.a.createElement('div', {
  10837.               className: 'padding-default'
  10838.             }, C.a.createElement('div', {
  10839.               className: 'text-center'
  10840.             }, C.a.createElement('span', {
  10841.               className: 'spacing-narrow motd-alert__subscription-text'
  10842.             }, C.a.createElement('span', {
  10843.               className: 'icon-expire icon__position spacing-right'
  10844.             }), C.a.createElement('strong', {
  10845.               className: 'spacing-right'
  10846.             }, 'Your trial of ', this.props.orgCurrentPackage.name, ' ends in ', e, ' ', 1 === e ? 'day' : 'days', '.')), Object(Tl.isNewFlow) ('cc_v2', {
  10847.               orgId: n,
  10848.               trial: this.props.orgTrial
  10849.             }) ? null : C.a.createElement('button', {
  10850.               className: 'button button-outline text-gray motd-alert__subscription-button',
  10851.               onClick: function () {
  10852.                 var e = t.props.orgCurrentPlan;
  10853.                 return t.props.emitTrackingEvent({
  10854.                   verb: 'click',
  10855.                   object_type: 'button',
  10856.                   object_id: e && e.id
  10857.                 }),
  10858.                 t.props.onSubscribe(e).then(function () {
  10859.                   t.props.history.push(mo('/settings/subscription/'))
  10860.                 })
  10861.               }
  10862.             }, 'Subscribe Now'))))
  10863.           }
  10864.         }
  10865.       ]) && _c(e.prototype, t),
  10866.       n && _c(e, n),
  10867.       r
  10868.     }();
  10869.     wc(Pc, 'displayname', 'SubscribeBar'),
  10870.     wc(Pc, 'propTypes', {
  10871.       history: b.a.shape({
  10872.         push: b.a.func.isRequired
  10873.       }).isRequired,
  10874.       location: b.a.object.isRequired,
  10875.       emitTrackingEvent: b.a.func.isRequired,
  10876.       fetchSubscription: b.a.func.isRequired,
  10877.       onSubscribe: b.a.func.isRequired,
  10878.       orgSubscriptionIsFetching: b.a.bool.isRequired,
  10879.       orgTrial: b.a.shape({
  10880.         endDate: function (e, t, n) {
  10881.           return e.isActive && !e.endDate ? Error('orgTrial.endDate in '.concat(n, ' is required when orgTrial.isActive is true')) : null
  10882.         },
  10883.         startDate: b.a.string,
  10884.         isActive: b.a.bool.isRequired,
  10885.         paymentInfo: b.a.any
  10886.       }),
  10887.       orgCurrentPackage: b.a.shape({
  10888.         name: b.a.string.isRequired
  10889.       }),
  10890.       orgCurrentPlan: b.a.object,
  10891.       orgBilling: b.a.object
  10892.     });
  10893.     var kc = Object(u.connect) (function (e) {
  10894.       var t = e.subscription;
  10895.       return {
  10896.         orgBilling: t.orgBilling,
  10897.         orgCurrentPackage: t.orgCurrentPackage,
  10898.         orgCurrentPlan: t.orgCurrentPlan,
  10899.         orgSubscriptionIsFetching: t.orgSubscriptionIsFetching,
  10900.         orgTrial: t.orgTrial,
  10901.         selection: e.selection
  10902.       }
  10903.     }, {
  10904.       emitTrackingEvent: Xo({
  10905.         zone: 'payment_banner'
  10906.       }),
  10907.       fetchSubscription: Hl,
  10908.       onSubscribe: Wl
  10909.     }) (Ni.a.attachDrivers(Fo() (Pc), [
  10910.       bc
  10911.     ])),
  10912.     Nc = b.a.shape({
  10913.       avatarUrl: b.a.string,
  10914.       datetimeFormatting: b.a.string,
  10915.       id: b.a.number.isRequired,
  10916.       isAuthenticated: b.a.bool,
  10917.       isModerator: b.a.bool,
  10918.       staff: b.a.bool,
  10919.       tzOffset: b.a.string,
  10920.       username: b.a.string.isRequired
  10921.     }),
  10922.     Cc = Object.freeze({
  10923.       MAX_POLL_NAME_LENGTH: 76,
  10924.       MAX_QUESTION_LENGTH: 76,
  10925.       MAX_ANSWER_LENGTH: 43,
  10926.       MAX_QUESTIONS: 3,
  10927.       MIN_QUESTIONS: 1,
  10928.       MAX_ANSWERS: 4,
  10929.       MIN_ANSWERS: 2
  10930.     }),
  10931.     Rc = [
  10932.       'ID',
  10933.       'Name',
  10934.       'Status',
  10935.       'Responses',
  10936.       'Created',
  10937.       'Exclude from Universal Tags',
  10938.       'Actions'
  10939.     ],
  10940.     xc = Object.freeze({
  10941.       SINGLE: '1',
  10942.       MULTI: '2',
  10943.       SINGLE_RANDOM: '3',
  10944.       SINGLE_RANDOM_WITH_ANCHOR: '4'
  10945.     }),
  10946.     Ac = xc.SINGLE,
  10947.     Dc = b.a.oneOf(Object.values(xc)),
  10948.     jc = [
  10949.       {
  10950.         key: xc.SINGLE,
  10951.         value: xc.SINGLE,
  10952.         label: 'Single Choice'
  10953.       },
  10954.       {
  10955.         key: xc.MULTI,
  10956.         value: xc.MULTI,
  10957.         label: 'Multi-select'
  10958.       },
  10959.       {
  10960.         key: xc.SINGLE_RANDOM,
  10961.         value: xc.SINGLE_RANDOM,
  10962.         label: 'Single Choice Random'
  10963.       },
  10964.       {
  10965.         key: xc.SINGLE_RANDOM_WITH_ANCHOR,
  10966.         value: xc.SINGLE_RANDOM_WITH_ANCHOR,
  10967.         label: 'Single Choice Random + Anchor'
  10968.       }
  10969.     ],
  10970.     Tc = [
  10971.       {
  10972.         key: 1,
  10973.         value: 1,
  10974.         label: '1 day'
  10975.       },
  10976.       {
  10977.         key: 7,
  10978.         value: 7,
  10979.         label: '7 days'
  10980.       },
  10981.       {
  10982.         key: 30,
  10983.         value: 30,
  10984.         label: '30 days'
  10985.       }
  10986.     ],
  10987.     Ic = 1,
  10988.     qc = b.a.arrayOf(b.a.shape({
  10989.       id: b.a.number.isRequired,
  10990.       name: b.a.string.isRequired,
  10991.       published: b.a.bool.isRequired,
  10992.       responses: b.a.number.isRequired,
  10993.       createdAt: b.a.string.isRequired
  10994.     })),
  10995.     Fc = b.a.shape({
  10996.       text: b.a.string.isRequired
  10997.     }),
  10998.     Lc = b.a.shape({
  10999.       text: b.a.string.isRequired,
  11000.       type: Dc,
  11001.       answers: b.a.arrayOf(Fc).isRequired
  11002.     }),
  11003.     Uc = (b.a.shape({
  11004.       id: b.a.number,
  11005.       name: b.a.string.isRequired,
  11006.       published: b.a.bool.isRequired,
  11007.       startDate: b.a.string.isRequired,
  11008.       endDate: b.a.string.isRequired,
  11009.       requireAuth: b.a.bool.isRequired,
  11010.       voteInterval: b.a.number,
  11011.       questions: b.a.arrayOf(Lc).isRequired
  11012.     }), b.a.shape({
  11013.       id: b.a.number.isRequired,
  11014.       name: b.a.string.isRequired,
  11015.       published: b.a.bool.isRequired,
  11016.       startDate: b.a.string.isRequired,
  11017.       endDate: b.a.string.isRequired,
  11018.       requireAuth: b.a.bool.isRequired,
  11019.       voteInterval: b.a.number,
  11020.       questions: b.a.arrayOf(Lc).isRequired
  11021.     })),
  11022.     Mc = b.a.shape({
  11023.       text: b.a.bool.isRequired,
  11024.       answers: b.a.object.isRequired
  11025.     }),
  11026.     Bc = 'https://polls.services.disqus.com/poll/preview?previewId=',
  11027.     zc = 'pendingPreview',
  11028.     Hc = 'no_poll_instructions',
  11029.     Gc = /^(?:\/admin)?\/polls\/editor\/(?:\d+|[a-zA-Z]+)?\/?$/,
  11030.     Vc = /^(?:\/admin)?\/polls\/insights\/(?:\d+|[a-zA-Z]+)?\/?$/,
  11031.     Wc = {
  11032.       LIST: '/polls/list/',
  11033.       EDITOR: '/polls/editor/',
  11034.       EDITOR_NEW: '/polls/editor/new/',
  11035.       INSIGHTS: '/polls/insights/'
  11036.     },
  11037.     Yc = n(72),
  11038.     Qc = n.n(Yc),
  11039.     Kc = 3,
  11040.     Jc = b.a.shape({
  11041.       adsSettingsUrl: b.a.string.isRequired,
  11042.       disableDisqusBranding: b.a.bool.isRequired,
  11043.       features: b.a.objectOf(b.a.bool).isRequired,
  11044.       founder: b.a.shape({
  11045.         username: b.a.string,
  11046.         id: b.a.number
  11047.       }).isRequired,
  11048.       id: b.a.number.isRequired,
  11049.       installCompleted: b.a.bool.isRequired,
  11050.       name: b.a.string,
  11051.       newPolicy: b.a.bool.isRequired,
  11052.       organization: b.a.number.isRequired,
  11053.       permissions: b.a.objectOf(b.a.bool).isRequired,
  11054.       saasPolicy: b.a.bool.isRequired,
  11055.       settings: b.a.objectOf(b.a.bool).isRequired,
  11056.       shortname: b.a.string.isRequired,
  11057.       tipaltiUrl: b.a.string.isRequired,
  11058.       url: b.a.string,
  11059.       website: b.a.string
  11060.     }),
  11061.     $c = b.a.shape({
  11062.       aetBannerEnabled: b.a.bool,
  11063.       aetBannerTitle: b.a.string,
  11064.       aetBannerDescription: b.a.string,
  11065.       aetBannerConfirmation: b.a.string,
  11066.       name: b.a.string
  11067.     });
  11068.     function Zc(e) {
  11069.       return (Zc = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  11070.         return typeof e
  11071.       }
  11072.        : function (e) {
  11073.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  11074.       }) (e)
  11075.     }
  11076.     function Xc(e, t) {
  11077.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  11078.     }
  11079.     function eu(e, t) {
  11080.       for (var n = 0; n < t.length; n++) {
  11081.         var a = t[n];
  11082.         a.enumerable = a.enumerable || !1,
  11083.         a.configurable = !0,
  11084.         'value' in a && (a.writable = !0),
  11085.         Object.defineProperty(e, a.key, a)
  11086.       }
  11087.     }
  11088.     function tu(e, t, n) {
  11089.       return t && eu(e.prototype, t),
  11090.       n && eu(e, n),
  11091.       e
  11092.     }
  11093.     function nu(e, t) {
  11094.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  11095.       e.prototype = Object.create(t && t.prototype, {
  11096.         constructor: {
  11097.           value: e,
  11098.           writable: !0,
  11099.           configurable: !0
  11100.         }
  11101.       }),
  11102.       t && au(e, t)
  11103.     }
  11104.     function au(e, t) {
  11105.       return (au = Object.setPrototypeOf || function (e, t) {
  11106.         return e.__proto__ = t,
  11107.         e
  11108.       }) (e, t)
  11109.     }
  11110.     function ru(n) {
  11111.       var a = function () {
  11112.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  11113.         if (Reflect.construct.sham) return !1;
  11114.         if ('function' == typeof Proxy) return !0;
  11115.         try {
  11116.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  11117.           ], function () {
  11118.           })),
  11119.           !0
  11120.         } catch (e) {
  11121.           return !1
  11122.         }
  11123.       }();
  11124.       return function () {
  11125.         var e,
  11126.         t = iu(n);
  11127.         return e = a ? (e = iu(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  11128.         t = this,
  11129.         !(e = e) || 'object' !== Zc(e) && 'function' != typeof e ? ou(t) : e
  11130.       }
  11131.     }
  11132.     function ou(e) {
  11133.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  11134.       return e
  11135.     }
  11136.     function iu(e) {
  11137.       return (iu = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  11138.         return e.__proto__ || Object.getPrototypeOf(e)
  11139.       }) (e)
  11140.     }
  11141.     function su(e, t, n) {
  11142.       return t in e ? Object.defineProperty(e, t, {
  11143.         value: n,
  11144.         enumerable: !0,
  11145.         configurable: !0,
  11146.         writable: !0
  11147.       }) : e[t] = n,
  11148.       e
  11149.     }
  11150.     var lu = 3,
  11151.     cu = function () {
  11152.       nu(c, A);
  11153.       var a = ru(c);
  11154.       function c() {
  11155.         var l;
  11156.         Xc(this, c);
  11157.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  11158.         return su(ou(l = a.call.apply(a, [
  11159.           this
  11160.         ].concat(t))), 'state', {
  11161.           searchTerm: null
  11162.         }),
  11163.         su(ou(l), 'onKeyUp', function (e) {
  11164.           l.setState({
  11165.             searchTerm: e.target.value
  11166.           })
  11167.         }),
  11168.         su(ou(l), 'handleMarkOrgDefault', function (e, t) {
  11169.           e.preventDefault(),
  11170.           io.a.call('users/starOrganization', {
  11171.             data: {
  11172.               organization: t
  11173.             },
  11174.             method: 'POST'
  11175.           }).done(function () {
  11176.             window.location.reload()
  11177.           })
  11178.         }),
  11179.         su(ou(l), 'getGroupedForums', function () {
  11180.           var a = l.state.searchTerm,
  11181.           r = l.props.adminPath,
  11182.           n = l.props.organizations,
  11183.           o = l.props.supportedSelections,
  11184.           e = je.a.chain(l.props.moderatedForums).map(function (e, t) {
  11185.             return e.url = t,
  11186.             e
  11187.           }).filter(function (e) {
  11188.             if (!a) return !0;
  11189.             var t = a.toLowerCase(),
  11190.             n = !e.settings.IS_CHANNEL_PRIMARY_FORUM && !!~e.founder.username.toLowerCase().indexOf(t);
  11191.             return !!~e.name.toLowerCase().indexOf(t) || n
  11192.           }).groupBy(function (e) {
  11193.             return !(e.organization && n[e.organization]).name && e.settings.IS_CHANNEL_PRIMARY_FORUM ? 'channels' : 'orgs'
  11194.           }).value();
  11195.           e.orgs = je.a.chain(e.orgs).groupBy(function (e) {
  11196.             return e.organization
  11197.           }).map(function (e, t) {
  11198.             t = n[t];
  11199.             return [je.a.extend({
  11200.               text: t.name || 'Owned by '.concat(t.owner),
  11201.               isOrg: !0
  11202.             }, t),
  11203.             e]
  11204.           }).value().sort(function (e, t) {
  11205.             e = e[0],
  11206.             t = t[0];
  11207.             return e.starred ? - 1 : t.starred ? 1 : [
  11208.               e.name,
  11209.               t.name
  11210.             ].sort()
  11211.           }),
  11212.           e.channels = e.channels ? [
  11213.             [{
  11214.               text: 'Channels'
  11215.             },
  11216.             e.channels]
  11217.           ] : [
  11218.           ];
  11219.           var i = 1 < e.orgs.length,
  11220.           s = ou(l);
  11221.           return je.a.chain([e.orgs,
  11222.           e.channels]).flatten(!0).reduce(function (e, t) {
  11223.             var n = t[0],
  11224.             a = t[1];
  11225.             (t = [
  11226.             ]).push(C.a.createElement(c.HeaderItem, {
  11227.               supportedSelections: o,
  11228.               key: ''.concat(n.text, '-name'),
  11229.               text: n.text,
  11230.               orgId: n.isOrg && n.id,
  11231.               orgSlug: n.isOrg && n.slug,
  11232.               orgIsAdmin: n.isOrg && n.permissions.isAdmin,
  11233.               adminPath: r,
  11234.               orgIsStarred: n.isOrg && n.starred,
  11235.               onMakeOrgDefault: i ? s.handleMarkOrgDefault : null
  11236.             })),
  11237.             n.isOrg && !n.name && n.permissions.isAdmin && t.push(C.a.createElement(c.ChangeNameAlertItem, {
  11238.               key: ''.concat(n.text, '-changeName'),
  11239.               orgId: n.id
  11240.             }));
  11241.             a = C.a.createElement('section', {
  11242.               className: 'site-list__sites',
  11243.               key: ''.concat(n.text, '-sites')
  11244.             }, a.sort(function (e, t) {
  11245.               e = e.name.toLowerCase(),
  11246.               t = t.name.toLowerCase();
  11247.               return e < t ? - 1 : t < e ? 1 : 0
  11248.             }).map(function (e) {
  11249.               return C.a.createElement(c.ForumItem, {
  11250.                 key: e.url,
  11251.                 text: e.name,
  11252.                 url: e.url,
  11253.                 website: e.website,
  11254.                 adminPath: r,
  11255.                 supportedSelections: o
  11256.               })
  11257.             })),
  11258.             t = t.concat(a);
  11259.             return e.concat(C.a.createElement('div', {
  11260.               key: ''.concat(n.text, '-container'),
  11261.               className: 'site-list__container'
  11262.             }, t))
  11263.           }, [
  11264.           ]).value()
  11265.         }),
  11266.         su(ou(l), 'getHeaderComponent', function () {
  11267.           if ('user' === l.props.initiator) {
  11268.             var e = Object.keys(l.props.moderatedForums).length;
  11269.             return C.a.createElement('div', {
  11270.               className: 'site-picker__header align align--between align--middle'
  11271.             }, C.a.createElement('h4', null, 'Your Sites', C.a.createElement('span', {
  11272.               className: 'label--gray spacing-left-small'
  11273.             }, e)), C.a.createElement('div', {
  11274.               className: 'site-picker__filter'
  11275.             }, C.a.createElement('a', {
  11276.               href: pt.a.urls.createSite,
  11277.               className: 'button button-outline text-small site-picker__button spacing-right-small'
  11278.             }, C.a.createElement('span', {
  11279.               className: 'icon icon-plus site-picker__button-icon'
  11280.             }), 'New'), lu < e ? C.a.createElement('input', {
  11281.               type: 'text',
  11282.               className: 'site-picker__input',
  11283.               placeholder: 'Search',
  11284.               onKeyUp: l.onKeyUp
  11285.             }) : null))
  11286.           }
  11287.           var t = [
  11288.           ];
  11289.           l.props.supportedSelections.forum && t.push('site'),
  11290.           l.props.supportedSelections.organization && t.push('organization');
  11291.           var n = window._v5Config.httpStatusCode === g.a.FORBIDDEN,
  11292.           e = 'a';
  11293.           n ? e = 'another' : 'organization' === t[0] && (e = 'an');
  11294.           var a,
  11295.           r,
  11296.           t = 'Please choose '.concat(e, ' ').concat(t.join(' or '));
  11297.           return n ? (a = 'Whoops, you\'re not allowed on that page.', r = t) : (a = t, l.props.supportedSelections.organization || 'organization' !== l.props.selection.type || (r = 'This page does not work for an organization.'), l.props.supportedSelections.forum || 'forum' !== l.props.selection.type || (r = 'This page does not work for a single site')),
  11298.           C.a.createElement('div', {
  11299.             className: 'site-picker__header'
  11300.           }, C.a.createElement('div', {
  11301.             className: 'spacing-top-small spacing-bottom-small'
  11302.           }, C.a.createElement('h4', {
  11303.             className: 'text-large'
  11304.           }, n ? C.a.createElement('span', {
  11305.             className: 'icon-cancel spacing-right-small text-error text-smaller'
  11306.           }) : null, a), C.a.createElement('p', {
  11307.             className: 'text-gray'
  11308.           }, r)))
  11309.         }),
  11310.         l
  11311.       }
  11312.       return tu(c, [
  11313.         {
  11314.           key: 'render',
  11315.           value: function () {
  11316.             var e = je.a.keys(this.props.moderatedForums).length,
  11317.             t = this.getGroupedForums();
  11318.             return C.a.createElement('div', {
  11319.               className: 'site-picker__wrapper'
  11320.             }, this.getHeaderComponent(), C.a.createElement('ul', {
  11321.               className: 'site-list'
  11322.             }, 'user' !== this.props.initiator && lu < e ? C.a.createElement('li', {
  11323.               className: 'site-list__item'
  11324.             }, C.a.createElement('div', {
  11325.               className: 'spacing-bottom'
  11326.             }, C.a.createElement('input', {
  11327.               type: 'text',
  11328.               className: 'site-picker__input',
  11329.               placeholder: 'Search',
  11330.               onKeyUp: this.onKeyUp
  11331.             }))) : null, t.length ? t : C.a.createElement('li', {
  11332.               className: 'site-list__item'
  11333.             }, 'Nothing to show!')))
  11334.           }
  11335.         }
  11336.       ]),
  11337.       c
  11338.     }();
  11339.     su(cu, 'displayName', 'ModeratedForumsList'),
  11340.     su(cu, 'propTypes', {
  11341.       selection: ht.isRequired,
  11342.       adminPath: b.a.string.isRequired,
  11343.       organizations: b.a.object.isRequired,
  11344.       supportedSelections: b.a.shape({
  11345.         forum: b.a.bool,
  11346.         organization: b.a.bool
  11347.       }).isRequired,
  11348.       moderatedForums: b.a.object,
  11349.       initiator: b.a.string
  11350.     }),
  11351.     su(cu, 'defaultProps', {
  11352.       moderatedForums: je.a.pick(window._v5Config.forums, window._v5Config.moderated_forums),
  11353.       organizations: window._v5Config.organizations
  11354.     }),
  11355.     cu.ForumItem = (vh = lh = function () {
  11356.       nu(o, A);
  11357.       var r = ru(o);
  11358.       function o() {
  11359.         var e;
  11360.         Xc(this, o);
  11361.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  11362.         return su(ou(e = r.call.apply(r, [
  11363.           this
  11364.         ].concat(n))), 'getForumAdminUrl', function () {
  11365.           return '//'.concat(e.props.url, '.').concat(br.disqusHost, '/admin').concat(e.props.adminPath)
  11366.         }),
  11367.         e
  11368.       }
  11369.       return tu(o, [
  11370.         {
  11371.           key: 'render',
  11372.           value: function () {
  11373.             var e = this.getForumAdminUrl(),
  11374.             t = ((this.props.website || '').match(/https?:\/\/(.+)\/?/) || [
  11375.             ]) [1];
  11376.             return this.props.supportedSelections.forum ? C.a.createElement('li', {
  11377.               className: 'site-list__item'
  11378.             }, C.a.createElement('a', {
  11379.               href: e,
  11380.               className: 'site-list__link -default'
  11381.             }, C.a.createElement('strong', {
  11382.               className: 'site-list__name'
  11383.             }, this.props.text), C.a.createElement('span', {
  11384.               className: 'spacing-left-small'
  11385.             }, t))) : C.a.createElement('li', {
  11386.               className: 'site-list__subheading'
  11387.             }, this.props.text)
  11388.           }
  11389.         }
  11390.       ]),
  11391.       o
  11392.     }(), su(lh, 'propTypes', {
  11393.       text: b.a.string.isRequired,
  11394.       adminPath: b.a.string.isRequired,
  11395.       url: b.a.string.isRequired,
  11396.       supportedSelections: b.a.shape({
  11397.         forum: b.a.bool,
  11398.         organiztion: b.a.bool
  11399.       }).isRequired,
  11400.       website: b.a.string
  11401.     }), vh),
  11402.     cu.HeaderItem = (Sh = Vb = function () {
  11403.       nu(o, A);
  11404.       var r = ru(o);
  11405.       function o() {
  11406.         var t;
  11407.         Xc(this, o);
  11408.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  11409.         return su(ou(t = r.call.apply(r, [
  11410.           this
  11411.         ].concat(n))), 'getOrgAdminUrl', function () {
  11412.           var e = t.props.orgSlug || mt;
  11413.           return '//'.concat(br.disqusHost, '/admin/orgs/').concat(t.props.orgId, '/').concat(e).concat(t.props.adminPath).concat(window.location.search)
  11414.         }),
  11415.         t
  11416.       }
  11417.       return tu(o, [
  11418.         {
  11419.           key: 'render',
  11420.           value: function () {
  11421.             var e = this.props.orgId && this.getOrgAdminUrl(),
  11422.             t = null,
  11423.             n = null,
  11424.             a = null,
  11425.             r = null;
  11426.             return this.props.orgSlug && this.props.supportedSelections.organization && this.props.orgIsAdmin && (t = C.a.createElement(Us, {
  11427.               path: ho.getAdminPath('/settings/general/'),
  11428.               linkClassName: 'bullet-after',
  11429.               orgId: this.props.orgId,
  11430.               orgSlug: this.props.orgSlug
  11431.             }, 'Edit'), a = 'bullet-after', r = C.a.createElement('a', {
  11432.               href: e
  11433.             }, 'Select')),
  11434.             this.props.onMakeOrgDefault && this.props.orgId && (n = this.props.orgIsStarred ? C.a.createElement('span', null, C.a.createElement('span', {
  11435.               className: 'icon-star icon-tiny text-warning spacing-right-small'
  11436.             }), 'Default') : C.a.createElement('a', {
  11437.               href: '#',
  11438.               onClick: je.a.partial(this.props.onMakeOrgDefault, je.a, this.props.orgId)
  11439.             }, 'Make Default')),
  11440.             C.a.createElement('li', {
  11441.               className: 'site-list__heading'
  11442.             }, C.a.createElement('div', {
  11443.               className: 'align align--between'
  11444.             }, C.a.createElement('div', {
  11445.               className: 'align truncate-line'
  11446.             }, C.a.createElement('p', {
  11447.               className: a
  11448.             }, this.props.text), r), t || n ? C.a.createElement('div', {
  11449.               className: 'site-list__select-org'
  11450.             }, t, n) : null))
  11451.           }
  11452.         }
  11453.       ]),
  11454.       o
  11455.     }(), su(Vb, 'propTypes', {
  11456.       supportedSelections: b.a.shape({
  11457.         forum: b.a.bool,
  11458.         organization: b.a.bool
  11459.       }).isRequired,
  11460.       text: b.a.string.isRequired,
  11461.       adminPath: b.a.string,
  11462.       orgId: b.a.number,
  11463.       orgSlug: b.a.string,
  11464.       orgIsAdmin: b.a.bool,
  11465.       orgIsStarred: b.a.bool,
  11466.       onMakeOrgDefault: b.a.func
  11467.     }), Sh),
  11468.     cu.ChangeNameAlertItem = function (e) {
  11469.       return C.a.createElement('li', {
  11470.         className: 'site-list__item'
  11471.       }, C.a.createElement(Us, {
  11472.         path: ho.getAdminPath('/settings/general/'),
  11473.         linkClassName: 'site-list__link -highlight',
  11474.         orgId: e.orgId,
  11475.         orgSlug: mt
  11476.       }, C.a.createElement('strong', null, 'Give your site an organization name'), C.a.createElement('span', {
  11477.         className: 'site-list__icon icon-right-bracket'
  11478.       })))
  11479.     },
  11480.     cu.ChangeNameAlertItem.displayName = 'ChangeNameAlertItem',
  11481.     cu.ChangeNameAlertItem.propTypes = {
  11482.       orgId: b.a.number.isRequired
  11483.     };
  11484.     var uu = Object(u.connect) (function (e) {
  11485.       return {
  11486.         selection: e.selection
  11487.       }
  11488.     }) (cu);
  11489.     function pu(e) {
  11490.       return (pu = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  11491.         return typeof e
  11492.       }
  11493.        : function (e) {
  11494.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  11495.       }) (e)
  11496.     }
  11497.     function du(e, t) {
  11498.       for (var n = 0; n < t.length; n++) {
  11499.         var a = t[n];
  11500.         a.enumerable = a.enumerable || !1,
  11501.         a.configurable = !0,
  11502.         'value' in a && (a.writable = !0),
  11503.         Object.defineProperty(e, a.key, a)
  11504.       }
  11505.     }
  11506.     function mu(e, t) {
  11507.       return (mu = Object.setPrototypeOf || function (e, t) {
  11508.         return e.__proto__ = t,
  11509.         e
  11510.       }) (e, t)
  11511.     }
  11512.     function fu(n) {
  11513.       var a = function () {
  11514.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  11515.         if (Reflect.construct.sham) return !1;
  11516.         if ('function' == typeof Proxy) return !0;
  11517.         try {
  11518.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  11519.           ], function () {
  11520.           })),
  11521.           !0
  11522.         } catch (e) {
  11523.           return !1
  11524.         }
  11525.       }();
  11526.       return function () {
  11527.         var e,
  11528.         t = hu(n);
  11529.         return e = a ? (e = hu(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  11530.         t = this,
  11531.         !(e = e) || 'object' !== pu(e) && 'function' != typeof e ? function (e) {
  11532.           if (void 0 !== e) return e;
  11533.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  11534.         }(t) : e
  11535.       }
  11536.     }
  11537.     function hu(e) {
  11538.       return (hu = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  11539.         return e.__proto__ || Object.getPrototypeOf(e)
  11540.       }) (e)
  11541.     }
  11542.     function gu(e, t, n) {
  11543.       return t in e ? Object.defineProperty(e, t, {
  11544.         value: n,
  11545.         enumerable: !0,
  11546.         configurable: !0,
  11547.         writable: !0
  11548.       }) : e[t] = n,
  11549.       e
  11550.     }
  11551.     var yu,
  11552.     bu,
  11553.     vu = function () {
  11554.       !function (e, t) {
  11555.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  11556.         e.prototype = Object.create(t && t.prototype, {
  11557.           constructor: {
  11558.             value: e,
  11559.             writable: !0,
  11560.             configurable: !0
  11561.           }
  11562.         }),
  11563.         t && mu(e, t)
  11564.       }(r, A);
  11565.       var e,
  11566.       t,
  11567.       n,
  11568.       a = fu(r);
  11569.       function r(e) {
  11570.         return function (e, t) {
  11571.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  11572.         }(this, r),
  11573.         (e = a.call(this, e)).dropdown = C.a.createRef(),
  11574.         e
  11575.       }
  11576.       return e = r,
  11577.       (t = [
  11578.         {
  11579.           key: 'componentDidMount',
  11580.           value: function () {
  11581.             var e = this;
  11582.             this.props.history && this.props.history.listenBefore(function () {
  11583.               return e.dropdown.current && e.dropdown.current.closeDropdown()
  11584.             })
  11585.           }
  11586.         },
  11587.         {
  11588.           key: 'render',
  11589.           value: function () {
  11590.             var e = this.props.currentOrgForums ? C.a.createElement('p', {
  11591.               className: 'site-nav__subtitle truncate-line'
  11592.             }, je.a.pluck(this.props.currentOrgForums, 'name').join(', ')) : this.props.currentForumWebsite ? C.a.createElement('p', {
  11593.               className: 'site-nav__subtitle truncate-line'
  11594.             }, this.props.currentForumPrettyUrl || this.props.currentForumWebsite) : C.a.createElement('p', {
  11595.               className: 'site-nav__subtitle truncate-line'
  11596.             }, this.props.numForums, ' total'),
  11597.             t = uo.getSupportedSelections(this.props.adminPath);
  11598.             return C.a.createElement('div', {
  11599.               className: this.props.className
  11600.             }, C.a.createElement(Qc.a, {
  11601.               buttonChildren: C.a.createElement('div', {
  11602.                 className: 'site-nav__button'
  11603.               }, this.props.currentOrgForums ? C.a.createElement('span', {
  11604.                 className: 'hidden-sm icon-organization spacing-top-small spacing-right text-larger'
  11605.               }) : null, C.a.createElement('span', {
  11606.                 className: 'site-nav__forum-name'
  11607.               }, C.a.createElement('strong', {
  11608.                 className: 'truncate-line'
  11609.               }, this.props.currentOrgName || this.props.currentForumName || 'Your Sites'), e), C.a.createElement('span', {
  11610.                 className: 'icon-caret spacing-top-small spacing-left'
  11611.               })),
  11612.               className: 'dropdown-toggle',
  11613.               ref: this.dropdown
  11614.             }, C.a.createElement('div', {
  11615.               className: 'dropdown-menu'
  11616.             }, C.a.createElement(uu, {
  11617.               adminPath: this.props.adminPath,
  11618.               initiator: 'user',
  11619.               supportedSelections: t
  11620.             }))))
  11621.           }
  11622.         }
  11623.       ]) && du(e.prototype, t),
  11624.       n && du(e, n),
  11625.       r
  11626.     }();
  11627.     gu(vu, 'propTypes', {
  11628.       adminPath: b.a.string.isRequired,
  11629.       className: b.a.string.isRequired,
  11630.       currentForumName: b.a.string,
  11631.       currentForumWebsite: b.a.string,
  11632.       currentForumPrettyUrl: b.a.string,
  11633.       currentOrgName: b.a.string,
  11634.       currentOrgForums: b.a.arrayOf(Jc),
  11635.       numForums: b.a.number.isRequired,
  11636.       history: b.a.shape({
  11637.         listenBefore: b.a.func.isRequired
  11638.       })
  11639.     }),
  11640.     gu(vu, 'defaultProps', (Ph = window._v5Config.organizations, yu = window._v5Config.forums || {
  11641.     }, bu = window._v5Config.moderated_forums || [
  11642.     ], Nh = {
  11643.       numForums: bu.length
  11644.     }, br.orgId ? (kh = (Ph = Ph[br.orgId]) && je.a.chain(Ph.forums).filter(function (e) {
  11645.       return je.a.contains(bu, e)
  11646.     }).map(function (e) {
  11647.       return yu[e]
  11648.     }).value(), je.a.extend(Nh, {
  11649.       currentOrgName: Ph ? Ph.name : null,
  11650.       currentOrgForums: kh
  11651.     })) : je.a.extend(Nh, {
  11652.       currentForumName: (kh = yu[br.shortname]) ? kh.name : null,
  11653.       currentForumWebsite: kh ? kh.website : null,
  11654.       currentForumPrettyUrl: kh ? ((kh.website || '').match(/https?:\/\/(.+)\/?/) || [
  11655.       ]) [1] : null
  11656.     }), Nh));
  11657.     var _u = Fo() (vu);
  11658.     function Eu(e) {
  11659.       return (Eu = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  11660.         return typeof e
  11661.       }
  11662.        : function (e) {
  11663.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  11664.       }) (e)
  11665.     }
  11666.     function Ou(e, t) {
  11667.       for (var n = 0; n < t.length; n++) {
  11668.         var a = t[n];
  11669.         a.enumerable = a.enumerable || !1,
  11670.         a.configurable = !0,
  11671.         'value' in a && (a.writable = !0),
  11672.         Object.defineProperty(e, a.key, a)
  11673.       }
  11674.     }
  11675.     function Su(e, t) {
  11676.       return (Su = Object.setPrototypeOf || function (e, t) {
  11677.         return e.__proto__ = t,
  11678.         e
  11679.       }) (e, t)
  11680.     }
  11681.     function wu(n) {
  11682.       var a = function () {
  11683.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  11684.         if (Reflect.construct.sham) return !1;
  11685.         if ('function' == typeof Proxy) return !0;
  11686.         try {
  11687.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  11688.           ], function () {
  11689.           })),
  11690.           !0
  11691.         } catch (e) {
  11692.           return !1
  11693.         }
  11694.       }();
  11695.       return function () {
  11696.         var e,
  11697.         t = ku(n);
  11698.         return e = a ? (e = ku(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  11699.         t = this,
  11700.         !(e = e) || 'object' !== Eu(e) && 'function' != typeof e ? Pu(t) : e
  11701.       }
  11702.     }
  11703.     function Pu(e) {
  11704.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  11705.       return e
  11706.     }
  11707.     function ku(e) {
  11708.       return (ku = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  11709.         return e.__proto__ || Object.getPrototypeOf(e)
  11710.       }) (e)
  11711.     }
  11712.     function Nu(e, t, n) {
  11713.       return t in e ? Object.defineProperty(e, t, {
  11714.         value: n,
  11715.         enumerable: !0,
  11716.         configurable: !0,
  11717.         writable: !0
  11718.       }) : e[t] = n,
  11719.       e
  11720.     }
  11721.     var Cu = null,
  11722.     Ru = function () {
  11723.       !function (e, t) {
  11724.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  11725.         e.prototype = Object.create(t && t.prototype, {
  11726.           constructor: {
  11727.             value: e,
  11728.             writable: !0,
  11729.             configurable: !0
  11730.           }
  11731.         }),
  11732.         t && Su(e, t)
  11733.       }(o, A);
  11734.       var e,
  11735.       t,
  11736.       n,
  11737.       r = wu(o);
  11738.       function o() {
  11739.         var t;
  11740.         !function (e, t) {
  11741.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  11742.         }(this, o);
  11743.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  11744.         return Nu(Pu(t = r.call.apply(r, [
  11745.           this
  11746.         ].concat(n))), 'state', {
  11747.           isOpen: !1,
  11748.           adminPath: ho.getAdminPath()
  11749.         }),
  11750.         Nu(Pu(t), 'open', function (e) {
  11751.           t.setState({
  11752.             isOpen: !0,
  11753.             adminPath: ho.getAdminPath(e)
  11754.           })
  11755.         }),
  11756.         Nu(Pu(t), 'close', function () {
  11757.           t.setState({
  11758.             isOpen: !1
  11759.           })
  11760.         }),
  11761.         t
  11762.       }
  11763.       return e = o,
  11764.       (t = [
  11765.         {
  11766.           key: 'componentDidMount',
  11767.           value: function () {
  11768.             Cu = this;
  11769.             var e = ho.getAdminPath(),
  11770.             t = uo.getSupportedSelections(e);
  11771.             window._v5Config.httpStatusCode !== g.a.FORBIDDEN && t[this.props.selection.type] || this.open(e)
  11772.           }
  11773.         },
  11774.         {
  11775.           key: 'componentWillUnmount',
  11776.           value: function () {
  11777.             Cu = null,
  11778.             this.close()
  11779.           }
  11780.         },
  11781.         {
  11782.           key: 'render',
  11783.           value: function () {
  11784.             var e = uo.getSupportedSelections(this.state.adminPath);
  11785.             return C.a.createElement(_.a, {
  11786.               className: 'site-picker-modal',
  11787.               overlayClassName: 'modal-overlay',
  11788.               isOpen: this.state.isOpen,
  11789.               onRequestClose: this.close
  11790.             }, C.a.createElement('div', {
  11791.               className: 'site-picker-modal__content'
  11792.             }, C.a.createElement(uu, {
  11793.               adminPath: this.state.adminPath,
  11794.               supportedSelections: e
  11795.             }), C.a.createElement('div', {
  11796.               className: 'site-picker-modal__footer visible-md'
  11797.             }, C.a.createElement('button', {
  11798.               type: 'button',
  11799.               className: 'button button-wide button-outline',
  11800.               onClick: this.close
  11801.             }, 'Close'))))
  11802.           }
  11803.         }
  11804.       ]) && Ou(e.prototype, t),
  11805.       n && Ou(e, n),
  11806.       o
  11807.     }();
  11808.     Nu(Ru, 'propTypes', {
  11809.       selection: ht.isRequired
  11810.     });
  11811.     var xu = Object(u.connect) (function (e) {
  11812.       return {
  11813.         selection: e.selection
  11814.       }
  11815.     }) (Ru);
  11816.     xu.openCurrentInstance = function (e) {
  11817.       Cu && !Cu.state.isOpen && Cu.open(e)
  11818.     };
  11819.     var Au = xu;
  11820.     function Du(e) {
  11821.       return (Du = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  11822.         return typeof e
  11823.       }
  11824.        : function (e) {
  11825.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  11826.       }) (e)
  11827.     }
  11828.     function ju(e, t) {
  11829.       for (var n = 0; n < t.length; n++) {
  11830.         var a = t[n];
  11831.         a.enumerable = a.enumerable || !1,
  11832.         a.configurable = !0,
  11833.         'value' in a && (a.writable = !0),
  11834.         Object.defineProperty(e, a.key, a)
  11835.       }
  11836.     }
  11837.     function Tu(e, t) {
  11838.       return (Tu = Object.setPrototypeOf || function (e, t) {
  11839.         return e.__proto__ = t,
  11840.         e
  11841.       }) (e, t)
  11842.     }
  11843.     function Iu(n) {
  11844.       var a = function () {
  11845.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  11846.         if (Reflect.construct.sham) return !1;
  11847.         if ('function' == typeof Proxy) return !0;
  11848.         try {
  11849.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  11850.           ], function () {
  11851.           })),
  11852.           !0
  11853.         } catch (e) {
  11854.           return !1
  11855.         }
  11856.       }();
  11857.       return function () {
  11858.         var e,
  11859.         t = qu(n);
  11860.         return e = a ? (e = qu(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  11861.         t = this,
  11862.         !(e = e) || 'object' !== Du(e) && 'function' != typeof e ? function (e) {
  11863.           if (void 0 !== e) return e;
  11864.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  11865.         }(t) : e
  11866.       }
  11867.     }
  11868.     function qu(e) {
  11869.       return (qu = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  11870.         return e.__proto__ || Object.getPrototypeOf(e)
  11871.       }) (e)
  11872.     }
  11873.     var Fu,
  11874.     Lu,
  11875.     Uu,
  11876.     Mu = '//'.concat(pt.a.disqusHost),
  11877.     Bu = function () {
  11878.       !function (e, t) {
  11879.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  11880.         e.prototype = Object.create(t && t.prototype, {
  11881.           constructor: {
  11882.             value: e,
  11883.             writable: !0,
  11884.             configurable: !0
  11885.           }
  11886.         }),
  11887.         t && Tu(e, t)
  11888.       }(r, A);
  11889.       var e,
  11890.       t,
  11891.       n,
  11892.       a = Iu(r);
  11893.       function r() {
  11894.         return function (e, t) {
  11895.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  11896.         }(this, r),
  11897.         a.apply(this, arguments)
  11898.       }
  11899.       return e = r,
  11900.       (t = [
  11901.         {
  11902.           key: 'render',
  11903.           value: function () {
  11904.             var e = this,
  11905.             t = 'https://disqus.com/by/'.concat(this.props.auth.username, '/');
  11906.             return C.a.createElement('div', {
  11907.               className: this.props.className
  11908.             }, C.a.createElement(Qc.a, {
  11909.               buttonChildren: C.a.createElement('div', {
  11910.                 className: 'site-nav__block'
  11911.               }, C.a.createElement('img', {
  11912.                 src: this.props.auth.avatarUrl,
  11913.                 alt: this.props.auth.username,
  11914.                 className: 'site-nav__avatar'
  11915.               }), C.a.createElement('div', {
  11916.                 className: 'site-nav__caret hidden-lg'
  11917.               }, C.a.createElement('span', {
  11918.                 className: 'icon-caret'
  11919.               }))),
  11920.               className: 'dropdown-toggle'
  11921.             }, C.a.createElement('ul', {
  11922.               className: 'dropdown-menu dropdown-settings'
  11923.             }, C.a.createElement('li', null, C.a.createElement('a', {
  11924.               href: t,
  11925.               onClick: function () {
  11926.                 e.props.emitTrackingEvent({
  11927.                   verb: 'open',
  11928.                   object_type: 'product',
  11929.                   object_id: 'profile/comments',
  11930.                   forum: e.props.selection.forum.shortname
  11931.                 })
  11932.               }
  11933.             }, 'View Profile')), C.a.createElement('li', {
  11934.               className: 'hidden-md'
  11935.             }, C.a.createElement('a', {
  11936.               href: 'https://disqus.com/home/settings/account/'
  11937.             }, 'Settings')), C.a.createElement('li', {
  11938.               className: 'visible-md'
  11939.             }, C.a.createElement('a', {
  11940.               href: 'https://disqus.com/home/settings/'
  11941.             }, 'Settings')), C.a.createElement('li', {
  11942.               role: 'presentation',
  11943.               className: 'divider'
  11944.             }), C.a.createElement('li', null, C.a.createElement(v.Link, {
  11945.               to: '/settings/install/',
  11946.               'data-role': 'help'
  11947.             }, 'Install on Site')), C.a.createElement('li', {
  11948.               role: 'presentation',
  11949.               className: 'divider'
  11950.             }), C.a.createElement('li', null, C.a.createElement('a', {
  11951.               href: 'https://disqus.com/about/',
  11952.               'data-role': 'about'
  11953.             }, 'About')), C.a.createElement('li', null, C.a.createElement('a', {
  11954.               href: Pn.contactSupport,
  11955.               'data-role': 'help'
  11956.             }, 'Help')), C.a.createElement('li', null, C.a.createElement('a', {
  11957.               href: ''.concat(Mu, '/logout/?redirect=https%3A%2F%2Fdisqus.com%2F'),
  11958.               target: '_self'
  11959.             }, 'Log Out')))))
  11960.           }
  11961.         }
  11962.       ]) && ju(e.prototype, t),
  11963.       n && ju(e, n),
  11964.       r
  11965.     }();
  11966.     Fu = Bu,
  11967.     Lu = 'propTypes',
  11968.     Uu = {
  11969.       auth: b.a.shape({
  11970.         avatarUrl: b.a.string,
  11971.         username: b.a.string
  11972.       }).isRequired,
  11973.       className: b.a.string.isRequired,
  11974.       emitTrackingEvent: b.a.func.isRequired,
  11975.       selection: ht.isRequired
  11976.     },
  11977.     Lu in Fu ? Object.defineProperty(Fu, Lu, {
  11978.       value: Uu,
  11979.       enumerable: !0,
  11980.       configurable: !0,
  11981.       writable: !0
  11982.     }) : Fu[Lu] = Uu;
  11983.     var zu = Object(u.connect) (function (e) {
  11984.       return {
  11985.         selection: e.selection
  11986.       }
  11987.     }, {
  11988.       emitTrackingEvent: Xo({
  11989.         zone: 'user_menu',
  11990.         section: 'nav_bar'
  11991.       })
  11992.     }) (Bu);
  11993.     function Hu(e) {
  11994.       return (Hu = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  11995.         return typeof e
  11996.       }
  11997.        : function (e) {
  11998.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  11999.       }) (e)
  12000.     }
  12001.     function Gu(e, t) {
  12002.       for (var n = 0; n < t.length; n++) {
  12003.         var a = t[n];
  12004.         a.enumerable = a.enumerable || !1,
  12005.         a.configurable = !0,
  12006.         'value' in a && (a.writable = !0),
  12007.         Object.defineProperty(e, a.key, a)
  12008.       }
  12009.     }
  12010.     function Vu(e, t) {
  12011.       return (Vu = Object.setPrototypeOf || function (e, t) {
  12012.         return e.__proto__ = t,
  12013.         e
  12014.       }) (e, t)
  12015.     }
  12016.     function Wu(n) {
  12017.       var a = function () {
  12018.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  12019.         if (Reflect.construct.sham) return !1;
  12020.         if ('function' == typeof Proxy) return !0;
  12021.         try {
  12022.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  12023.           ], function () {
  12024.           })),
  12025.           !0
  12026.         } catch (e) {
  12027.           return !1
  12028.         }
  12029.       }();
  12030.       return function () {
  12031.         var e,
  12032.         t = Qu(n);
  12033.         return e = a ? (e = Qu(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  12034.         t = this,
  12035.         !(e = e) || 'object' !== Hu(e) && 'function' != typeof e ? Yu(t) : e
  12036.       }
  12037.     }
  12038.     function Yu(e) {
  12039.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  12040.       return e
  12041.     }
  12042.     function Qu(e) {
  12043.       return (Qu = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  12044.         return e.__proto__ || Object.getPrototypeOf(e)
  12045.       }) (e)
  12046.     }
  12047.     function Ku(e, t, n) {
  12048.       return t in e ? Object.defineProperty(e, t, {
  12049.         value: n,
  12050.         enumerable: !0,
  12051.         configurable: !0,
  12052.         writable: !0
  12053.       }) : e[t] = n,
  12054.       e
  12055.     }
  12056.     var Ju = function () {
  12057.       !function (e, t) {
  12058.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  12059.         e.prototype = Object.create(t && t.prototype, {
  12060.           constructor: {
  12061.             value: e,
  12062.             writable: !0,
  12063.             configurable: !0
  12064.           }
  12065.         }),
  12066.         t && Vu(e, t)
  12067.       }(o, A);
  12068.       var e,
  12069.       t,
  12070.       n,
  12071.       r = Wu(o);
  12072.       function o() {
  12073.         var t;
  12074.         !function (e, t) {
  12075.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  12076.         }(this, o);
  12077.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  12078.         return Ku(Yu(t = r.call.apply(r, [
  12079.           this
  12080.         ].concat(n))), 'state', {
  12081.           count: null
  12082.         }),
  12083.         Ku(Yu(t), 'fetchData', function () {
  12084.           io.a.call('timelines/getUnreadCount', {
  12085.             type: 'GET',
  12086.             data: {
  12087.               type: 'notifications',
  12088.               routingVersion: pt.a.feedApiVersion
  12089.             }
  12090.           }).done(t.onFetch)
  12091.         }),
  12092.         Ku(Yu(t), 'onFetch', function (e) {
  12093.           t.state.sidebarHasOpened || t.setState({
  12094.             count: 9 <= (e = e.response) ? '9+' : e
  12095.           })
  12096.         }),
  12097.         Ku(Yu(t), 'handleClick', function (e) {
  12098.           e.preventDefault(),
  12099.           jl.a.openWindow('https://disqus.com/home/notifications'),
  12100.           t.setState({
  12101.             count: 0
  12102.           }),
  12103.           t.props.emitTrackingEvent({
  12104.             verb: 'open',
  12105.             object_type: 'product',
  12106.             object_id: 'home',
  12107.             page_referrer: window.document.location.origin
  12108.           })
  12109.         }),
  12110.         t
  12111.       }
  12112.       return e = o,
  12113.       (t = [
  12114.         {
  12115.           key: 'componentDidMount',
  12116.           value: function () {
  12117.             this.fetchData()
  12118.           }
  12119.         },
  12120.         {
  12121.           key: 'render',
  12122.           value: function () {
  12123.             return C.a.createElement('div', {
  12124.               className: this.props.className
  12125.             }, this.state.sidebarLoading ? C.a.createElement(Qi, null) : C.a.createElement('a', {
  12126.               className: this.state.count ? 'site-nav__link has-notifs' : 'site-nav__link',
  12127.               href: 'https://disqus.com/home/notifications/',
  12128.               onClick: this.handleClick
  12129.             }, this.state.count ? C.a.createElement('div', {
  12130.               className: 'notif-count'
  12131.             }, this.state.count) : null, C.a.createElement('svg', {
  12132.               className: 'icon-notif site-nav-item__icon',
  12133.               viewBox: '0 0 21 21',
  12134.               width: '24',
  12135.               height: '24'
  12136.             }, C.a.createElement('path', {
  12137.               d: 'M10.4 20c5.3 0 9.6-4.5 9.6-10S15.7 0 10.4 0C5 0 0.7 4.5 0.7 10 c0 1.5 0.3 2.9 0.9 4.1L0 18.2l4.1-0.6C5.8 19.1 8 20 10.4 20z',
  12138.               className: 'fill'
  12139.             }), C.a.createElement('path', {
  12140.               d: 'M11 11.2v2.6l4-3.9L11 6v2.3C6.1 8.3 5 14 5 14 C6.4 11.4 8.3 11.2 11 11.2z',
  12141.               className: 'arrow'
  12142.             }), C.a.createElement('desc', null, 'Notifications'))))
  12143.           }
  12144.         }
  12145.       ]) && Gu(e.prototype, t),
  12146.       n && Gu(e, n),
  12147.       o
  12148.     }();
  12149.     Ku(Ju, 'displayName', 'TopNavRightNotifications'),
  12150.     Ku(Ju, 'propTypes', {
  12151.       className: b.a.string.isRequired
  12152.     });
  12153.     var $u = Object(u.connect) (null, {
  12154.       emitTrackingEvent: Xo({
  12155.         zone: 'notifications',
  12156.         section: 'all'
  12157.       })
  12158.     }) (Ju),
  12159.     Zu = function (e) {
  12160.       return e.auth.isAuthenticated ? C.a.createElement('div', {
  12161.         className: 'site-nav__settings'
  12162.       }, C.a.createElement($u, {
  12163.         className: 'tooltipped site-nav__menu-item spacing-right'
  12164.       }), C.a.createElement(zu, {
  12165.         className: 'tooltipped bottom-right site-nav__menu-item dropdown--settings',
  12166.         auth: e.auth
  12167.       })) : C.a.createElement('div', {
  12168.         className: 'site-nav__secondary'
  12169.       }, C.a.createElement('div', {
  12170.         className: 'site-nav__menu-item'
  12171.       }, C.a.createElement('a', {
  12172.         className: 'site-nav__link nav-link-underline',
  12173.         href: ''.concat(dt, '/publishers/login/')
  12174.       }, C.a.createElement('div', {
  12175.         className: 'site-nav__block'
  12176.       }, C.a.createElement('div', {
  12177.         className: 'site-nav-item__name'
  12178.       }, 'Log In')))), C.a.createElement('div', {
  12179.         className: 'site-nav__menu-item'
  12180.       }, C.a.createElement('a', {
  12181.         className: 'site-nav__link nav-link-underline',
  12182.         href: ''.concat(dt, '/publishers/signup/')
  12183.       }, C.a.createElement('div', {
  12184.         className: 'site-nav__block'
  12185.       }, C.a.createElement('div', {
  12186.         className: 'site-nav-item__name'
  12187.       }, 'Get Started')))))
  12188.     };
  12189.     Zu.propTypes = {
  12190.       auth: b.a.shape({
  12191.         avatarUrl: b.a.string,
  12192.         username: b.a.string,
  12193.         id: b.a.oneOfType([b.a.string,
  12194.         b.a.number]).isRequired,
  12195.         isAuthenticated: b.a.bool.isRequired
  12196.       }).isRequired
  12197.     };
  12198.     var Xu = Zu;
  12199.     function ep(e) {
  12200.       return (ep = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  12201.         return typeof e
  12202.       }
  12203.        : function (e) {
  12204.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  12205.       }) (e)
  12206.     }
  12207.     function tp(e, t) {
  12208.       for (var n = 0; n < t.length; n++) {
  12209.         var a = t[n];
  12210.         a.enumerable = a.enumerable || !1,
  12211.         a.configurable = !0,
  12212.         'value' in a && (a.writable = !0),
  12213.         Object.defineProperty(e, a.key, a)
  12214.       }
  12215.     }
  12216.     function np(e, t) {
  12217.       return (np = Object.setPrototypeOf || function (e, t) {
  12218.         return e.__proto__ = t,
  12219.         e
  12220.       }) (e, t)
  12221.     }
  12222.     function ap(n) {
  12223.       var a = function () {
  12224.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  12225.         if (Reflect.construct.sham) return !1;
  12226.         if ('function' == typeof Proxy) return !0;
  12227.         try {
  12228.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  12229.           ], function () {
  12230.           })),
  12231.           !0
  12232.         } catch (e) {
  12233.           return !1
  12234.         }
  12235.       }();
  12236.       return function () {
  12237.         var e,
  12238.         t = rp(n);
  12239.         return e = a ? (e = rp(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  12240.         t = this,
  12241.         !(e = e) || 'object' !== ep(e) && 'function' != typeof e ? function (e) {
  12242.           if (void 0 !== e) return e;
  12243.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  12244.         }(t) : e
  12245.       }
  12246.     }
  12247.     function rp(e) {
  12248.       return (rp = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  12249.         return e.__proto__ || Object.getPrototypeOf(e)
  12250.       }) (e)
  12251.     }
  12252.     var op,
  12253.     ip,
  12254.     sp,
  12255.     lp = {
  12256.       1: 'plus.svg',
  12257.       2: 'business.svg',
  12258.       3: 'pro.svg'
  12259.     },
  12260.     cp = function () {
  12261.       !function (e, t) {
  12262.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  12263.         e.prototype = Object.create(t && t.prototype, {
  12264.           constructor: {
  12265.             value: e,
  12266.             writable: !0,
  12267.             configurable: !0
  12268.           }
  12269.         }),
  12270.         t && np(e, t)
  12271.       }(r, A);
  12272.       var e,
  12273.       t,
  12274.       n,
  12275.       a = ap(r);
  12276.       function r() {
  12277.         return function (e, t) {
  12278.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  12279.         }(this, r),
  12280.         a.apply(this, arguments)
  12281.       }
  12282.       return e = r,
  12283.       (t = [
  12284.         {
  12285.           key: 'componentDidMount',
  12286.           value: function () {
  12287.             this.props.fetchSubscription()
  12288.           }
  12289.         },
  12290.         {
  12291.           key: 'render',
  12292.           value: function () {
  12293.             var e = this,
  12294.             t = this.props,
  12295.             n = t.orgAvailableTrials,
  12296.             a = t.orgCurrentPackage,
  12297.             r = t.orgCurrentPlan;
  12298.             if (!a || !ql(t.selection) || null === n) return null;
  12299.             t = lp[a.id] ? a.color : 'rgb(170, 175, 185)',
  12300.             n = lp[a.id] ? '//c.disquscdn.com/next/current/publisher-admin/assets/img/badges/'.concat(lp[a.id]) : null;
  12301.             return C.a.createElement(v.Link, {
  12302.               className: 'site-nav__badge',
  12303.               onClick: function () {
  12304.                 e.props.emitTrackingEvent({
  12305.                   verb: 'click',
  12306.                   object_type: 'button',
  12307.                   object_id: r && r.id
  12308.                 })
  12309.               },
  12310.               style: {
  12311.                 backgroundColor: t
  12312.               },
  12313.               to: '/settings/subscription'
  12314.             }, C.a.createElement('img', {
  12315.               className: 'site-nav__badge__star',
  12316.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/badges/star.svg'
  12317.             }), n ? C.a.createElement('img', {
  12318.               className: 'site-nav__badge__name',
  12319.               src: n,
  12320.               alt: a.name
  12321.             }) : null)
  12322.           }
  12323.         }
  12324.       ]) && tp(e.prototype, t),
  12325.       n && tp(e, n),
  12326.       r
  12327.     }();
  12328.     op = cp,
  12329.     ip = 'propTypes',
  12330.     sp = {
  12331.       selection: ht.isRequired,
  12332.       emitTrackingEvent: b.a.func.isRequired,
  12333.       fetchSubscription: b.a.func.isRequired,
  12334.       orgAvailableTrials: b.a.arrayOf(b.a.string),
  12335.       orgCurrentPackage: Ur.PACKAGE_SHAPE,
  12336.       orgCurrentPlan: Ur.PLAN_SHAPE
  12337.     },
  12338.     ip in op ? Object.defineProperty(op, ip, {
  12339.       value: sp,
  12340.       enumerable: !0,
  12341.       configurable: !0,
  12342.       writable: !0
  12343.     }) : op[ip] = sp;
  12344.     var up = Object(u.connect) (function (e) {
  12345.       var t = e.subscription;
  12346.       return {
  12347.         orgAvailableTrials: t.orgAvailableTrials,
  12348.         orgCurrentPackage: t.orgCurrentPackage,
  12349.         orgCurrentPlan: t.orgCurrentPlan,
  12350.         selection: e.selection
  12351.       }
  12352.     }, {
  12353.       fetchSubscription: Hl,
  12354.       emitTrackingEvent: Xo({
  12355.         zone: 'nav_bar',
  12356.         section: 'badge'
  12357.       })
  12358.     }) (Ni.a.attachDrivers(cp, [
  12359.       bc
  12360.     ]));
  12361.     function pp(e) {
  12362.       return function (e) {
  12363.         if (Array.isArray(e)) return dp(e)
  12364.       }(e) || function (e) {
  12365.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  12366.       }(e) || function (e, t) {
  12367.         if (e) {
  12368.           if ('string' == typeof e) return dp(e, t);
  12369.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  12370.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? dp(e, t) : void 0
  12371.         }
  12372.       }(e) || function () {
  12373.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  12374.       }()
  12375.     }
  12376.     function dp(e, t) {
  12377.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  12378.       return a
  12379.     }
  12380.     var mp = [
  12381.       '/analytics/comments/',
  12382.       '/analytics/content/',
  12383.       '/analytics/top_comments/',
  12384.       '/analytics/reactions/',
  12385.       '/analytics/pulse/',
  12386.       '/analytics/audience/'
  12387.     ],
  12388.     fp = [
  12389.       '/moderate/',
  12390.       '/moderate/pending',
  12391.       '/access/banned/',
  12392.       '/access/trusted/'
  12393.     ].concat(pp(yo.a.isFeatureActive('polls_pub_admin') ? [
  12394.     ] : [
  12395.       '/settings/moderators/'
  12396.     ]), [
  12397.       '/settings/access/',
  12398.       '/discussions/',
  12399.       '/discussions/migrate/',
  12400.       '/tools/migrate-map/',
  12401.       '/discussions/history/',
  12402.       /^\/discussions\/import\//,
  12403.       '/discussions/export/',
  12404.       /^\/discussions\/history\//
  12405.     ], pp(yo.a.isFeatureActive('polls_pub_admin') ? mp : [
  12406.     ])),
  12407.     hp = [
  12408.       '/analytics/ads/',
  12409.       '/analytics/revenue/',
  12410.       '/analytics/payments/',
  12411.       '/settings/revenue/hub/'
  12412.     ],
  12413.     gp = [
  12414.       Wc.LIST,
  12415.       Wc.EDITOR,
  12416.       Wc.EDITOR_NEW,
  12417.       Wc.INSIGHTS
  12418.     ],
  12419.     yp = [
  12420.       '/settings/general/',
  12421.       '/settings/sites/',
  12422.       '/settings/admins/',
  12423.       '/settings/community/',
  12424.       '/settings/moderation/'
  12425.     ].concat(pp(yo.a.isFeatureActive('polls_pub_admin') ? [
  12426.       '/settings/moderators/'
  12427.     ] : [
  12428.     ]), [
  12429.       '/settings/advanced/',
  12430.       '/settings/revenue/',
  12431.       '/settings/subscription/',
  12432.       '/settings/webhooks/',
  12433.       '/settings/install/',
  12434.       '/settings/universalcode/',
  12435.       '/settings/wordpress/',
  12436.       '/settings/blogger/',
  12437.       '/settings/tumblr/',
  12438.       '/settings/squarespace/',
  12439.       '/settings/typepad/',
  12440.       '/settings/movabletype/',
  12441.       '/settings/drupal/',
  12442.       '/settings/joomla/',
  12443.       '/settings/weebly/',
  12444.       '/settings/strikingly/',
  12445.       '/settings/jekyll/',
  12446.       '/settings/ghost/',
  12447.       '/settings/hubspot/',
  12448.       '/settings/shopify/',
  12449.       '/settings/amp/',
  12450.       '/settings/adobemuse/',
  12451.       '/settings/jimdo/',
  12452.       '/settings/postachio/',
  12453.       '/settings/gatsby/',
  12454.       '/settings/pattern/',
  12455.       '/settings/polls/general/',
  12456.       '/settings/polls/pollsters/'
  12457.     ]),
  12458.     bp = function (e) {
  12459.       var t = e.auth.staff,
  12460.       n = e.auth.isAuthenticated && !e.isSetup,
  12461.       a = 'site-nav__link nav-link-underline';
  12462.       return /^\/admin\/install\/([\w]+\/)*/.test(e.currentPath) && (a += ' active'),
  12463.       C.a.createElement('div', {
  12464.         className: 'site-nav site-nav--dark site-nav--publishers'
  12465.       }, C.a.createElement('nav', {
  12466.         className: 'site-nav__container section-contained'
  12467.       }, C.a.createElement('div', {
  12468.         className: 'site-nav__main'
  12469.       }, C.a.createElement('div', {
  12470.         className: 'site-nav__logo'
  12471.       }, C.a.createElement('a', {
  12472.         href: 'https://disqus.com/'
  12473.       }, C.a.createElement('img', {
  12474.         className: 'disqus-logo',
  12475.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/disqus-logo-light.svg',
  12476.         alt: 'Disqus'
  12477.       })), C.a.createElement(up, null)), n ? C.a.createElement(_u, {
  12478.         adminPath: ho.getAdminPath(e.currentPath),
  12479.         className: 'site-nav__menu-item dropdown--site-picker'
  12480.       }) : null, n ? C.a.createElement('div', {
  12481.         className: 'site-nav__secondary nav-fixed-mobile'
  12482.       }, C.a.createElement('div', {
  12483.         className: 'site-nav__menu-item'
  12484.       }, C.a.createElement(v.IndexLink, {
  12485.         to: ho.getRoute('/'),
  12486.         className: a,
  12487.         activeClassName: 'active'
  12488.       }, C.a.createElement('div', {
  12489.         className: 'site-nav__block'
  12490.       }, yo.a.isFeatureActive('polls_pub_admin') ? 'Overview' : 'Start'))), !yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement('div', {
  12491.         className: 'site-nav__menu-item'
  12492.       }, C.a.createElement(ri, {
  12493.         path: '/analytics/comments',
  12494.         linkClassName: 'site-nav__link nav-link-underline',
  12495.         linkActiveClassName: 'active',
  12496.         selection: e.selection,
  12497.         activeRoutes: mp
  12498.       }, C.a.createElement('div', {
  12499.         className: 'site-nav__block'
  12500.       }, 'Analytics'))), (t || e.selection.isCommentsVisible) && C.a.createElement('div', {
  12501.         className: 'site-nav__menu-item'
  12502.       }, C.a.createElement(ri, {
  12503.         path: '/moderate/',
  12504.         linkClassName: 'site-nav__link nav-link-underline',
  12505.         linkActiveClassName: 'active',
  12506.         selection: e.selection,
  12507.         activeRoutes: fp
  12508.       }, C.a.createElement('div', {
  12509.         className: 'site-nav__block'
  12510.       }, yo.a.isFeatureActive('polls_pub_admin') ? 'Comments' : 'Moderation'))), yo.a.isFeatureActive('polls_pub_admin') && (t || e.selection.isPollsVisible) && C.a.createElement('div', {
  12511.         className: 'site-nav__menu-item'
  12512.       }, C.a.createElement(Uo, {
  12513.         linkClassName: 'site-nav__link nav-link-underline',
  12514.         linkActiveClassName: 'active',
  12515.         path: '/polls/',
  12516.         selection: e.selection,
  12517.         activeRoutes: gp,
  12518.         forceActive: Gc.test(window.location.pathname) || Vc.test(window.location.pathname)
  12519.       }, C.a.createElement('div', {
  12520.         className: 'site-nav__block'
  12521.       }, 'Polls', C.a.createElement('span', {
  12522.         className: 'label --new label-warning spacing-left-small'
  12523.       }, 'NEW')))), e.selection.isRevealVisible ? C.a.createElement('div', {
  12524.         className: 'site-nav__menu-item'
  12525.       }, C.a.createElement(ri, {
  12526.         path: '/analytics/revenue/',
  12527.         linkClassName: 'site-nav__link nav-link-underline',
  12528.         linkActiveClassName: 'active',
  12529.         selection: e.selection,
  12530.         activeRoutes: hp
  12531.       }, C.a.createElement('div', {
  12532.         className: 'site-nav__block'
  12533.       }, 'Ads'))) : null, t || e.selection.isSettingsVisible ? C.a.createElement('div', {
  12534.         className: 'site-nav__menu-item'
  12535.       }, C.a.createElement(ri, {
  12536.         linkClassName: 'site-nav__link nav-link-underline',
  12537.         linkActiveClassName: 'active',
  12538.         path: e.selection.organization && e.selection.organization.pollsOnly ? '/settings/polls/general' : '/settings/general/',
  12539.         selection: e.selection,
  12540.         activeRoutes: yp
  12541.       }, C.a.createElement('div', {
  12542.         className: 'site-nav__block'
  12543.       }, 'Settings'))) : null, C.a.createElement('div', {
  12544.         className: 'site-nav__menu-item'
  12545.       }, C.a.createElement('a', {
  12546.         className: 'site-nav__link nav-link-underline',
  12547.         href: Pn.contactSupport,
  12548.         target: '_blank',
  12549.         rel: 'noopener noreferrer'
  12550.       }, C.a.createElement('div', {
  12551.         className: 'site-nav__block'
  12552.       }, 'Help'))), C.a.createElement('div', {
  12553.         className: 'site-nav__menu-item'
  12554.       }, C.a.createElement('a', {
  12555.         className: 'site-nav__link nav-link-underline',
  12556.         href: 'https://about.disqus.com/disqus-101',
  12557.         target: '_blank',
  12558.         rel: 'noopener noreferrer'
  12559.       }, C.a.createElement('div', {
  12560.         className: 'site-nav__block'
  12561.       }, 'Disqus 101')))) : null), C.a.createElement(Xu, {
  12562.         auth: e.auth,
  12563.         currentPath: e.currentPath
  12564.       }), C.a.createElement(Au, null)))
  12565.     };
  12566.     bp.displayName = 'TopNav',
  12567.     bp.propTypes = {
  12568.       auth: Nc.isRequired,
  12569.       currentPath: b.a.string.isRequired,
  12570.       isSetup: b.a.bool.isRequired,
  12571.       selection: ht.isRequired
  12572.     };
  12573.     var vp = Object(u.connect) (function (e) {
  12574.       return {
  12575.         selection: e.selection
  12576.       }
  12577.     }) (bp);
  12578.     function _p(e) {
  12579.       return (_p = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  12580.         return typeof e
  12581.       }
  12582.        : function (e) {
  12583.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  12584.       }) (e)
  12585.     }
  12586.     function Ep() {
  12587.       return (Ep = Object.assign || function (e) {
  12588.         for (var t = 1; t < arguments.length; t++) {
  12589.           var n,
  12590.           a = arguments[t];
  12591.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  12592.         }
  12593.         return e
  12594.       }).apply(this, arguments)
  12595.     }
  12596.     function Op(e, t) {
  12597.       for (var n = 0; n < t.length; n++) {
  12598.         var a = t[n];
  12599.         a.enumerable = a.enumerable || !1,
  12600.         a.configurable = !0,
  12601.         'value' in a && (a.writable = !0),
  12602.         Object.defineProperty(e, a.key, a)
  12603.       }
  12604.     }
  12605.     function Sp(e, t) {
  12606.       return (Sp = Object.setPrototypeOf || function (e, t) {
  12607.         return e.__proto__ = t,
  12608.         e
  12609.       }) (e, t)
  12610.     }
  12611.     function wp(n) {
  12612.       var a = function () {
  12613.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  12614.         if (Reflect.construct.sham) return !1;
  12615.         if ('function' == typeof Proxy) return !0;
  12616.         try {
  12617.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  12618.           ], function () {
  12619.           })),
  12620.           !0
  12621.         } catch (e) {
  12622.           return !1
  12623.         }
  12624.       }();
  12625.       return function () {
  12626.         var e,
  12627.         t = kp(n);
  12628.         return e = a ? (e = kp(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  12629.         t = this,
  12630.         !(e = e) || 'object' !== _p(e) && 'function' != typeof e ? Pp(t) : e
  12631.       }
  12632.     }
  12633.     function Pp(e) {
  12634.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  12635.       return e
  12636.     }
  12637.     function kp(e) {
  12638.       return (kp = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  12639.         return e.__proto__ || Object.getPrototypeOf(e)
  12640.       }) (e)
  12641.     }
  12642.     function Np(e, t, n) {
  12643.       return t in e ? Object.defineProperty(e, t, {
  12644.         value: n,
  12645.         enumerable: !0,
  12646.         configurable: !0,
  12647.         writable: !0
  12648.       }) : e[t] = n,
  12649.       e
  12650.     }
  12651.     var Cp = [
  12652.       '/moderate/'
  12653.     ],
  12654.     Rp = [
  12655.       '/setup/',
  12656.       '/create/'
  12657.     ],
  12658.     xp = [
  12659.       '/create/',
  12660.       '/checkout/',
  12661.       '/acknowledge/'
  12662.     ],
  12663.     Ap = function () {
  12664.       !function (e, t) {
  12665.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  12666.         e.prototype = Object.create(t && t.prototype, {
  12667.           constructor: {
  12668.             value: e,
  12669.             writable: !0,
  12670.             configurable: !0
  12671.           }
  12672.         }),
  12673.         t && Sp(e, t)
  12674.       }(o, A);
  12675.       var e,
  12676.       t,
  12677.       n,
  12678.       r = wp(o);
  12679.       function o() {
  12680.         var n;
  12681.         !function (e, t) {
  12682.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  12683.         }(this, o);
  12684.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  12685.         return Np(Pp(n = r.call.apply(r, [
  12686.           this
  12687.         ].concat(t))), 'getChildContext', function () {
  12688.           return {
  12689.             auth: n.state.auth
  12690.           }
  12691.         }),
  12692.         Np(Pp(n), 'state', {
  12693.           auth: Ve.a.getFromCookie(),
  12694.           forums: window._v5Config.forums,
  12695.           isReadOnly: window._v5Config.isReadonly,
  12696.           isSetup: !1,
  12697.           organizations: window._v5Config.organizations,
  12698.           isWideLayout: !1,
  12699.           isCreate: !1
  12700.         }),
  12701.         Np(Pp(n), 'updateLayoutState', function (e) {
  12702.           var t = ho.getAdminPath((e = e || n.props.location).basename + e.pathname),
  12703.           e = !!~xp.indexOf(t);
  12704.           n.setState({
  12705.             isWideLayout: !!~Cp.indexOf(t),
  12706.             isSetup: !!~Rp.indexOf(t),
  12707.             isCreate: e
  12708.           }),
  12709.           vo() ('body').toggleClass('bg-create', e)
  12710.         }),
  12711.         n
  12712.       }
  12713.       return e = o,
  12714.       (t = [
  12715.         {
  12716.           key: 'componentWillReceiveProps',
  12717.           value: function (e) {
  12718.             this.updateLayoutState(e.location)
  12719.           }
  12720.         },
  12721.         {
  12722.           key: 'componentDidMount',
  12723.           value: function () {
  12724.             vo() ('.content').remove(),
  12725.             vo() ('body').attr('class', '').fadeIn(200),
  12726.             this.updateLayoutState()
  12727.           }
  12728.         },
  12729.         {
  12730.           key: 'render',
  12731.           value: function () {
  12732.             return this.state.isCreate ? C.a.createElement('div', null, C.a.cloneElement(this.props.children, this.state), C.a.createElement(o.FooterAlternate, {
  12733.               isReadOnly: this.state.isReadOnly
  12734.             })) : C.a.createElement('div', {
  12735.               className: this.state.isWideLayout ? 'layout--wide' : ''
  12736.             }, C.a.createElement(vp, Ep({
  12737.             }, this.state, {
  12738.               currentPath: this.props.location.basename + this.props.location.pathname
  12739.             })), C.a.createElement(kc, {
  12740.               location: this.props.location
  12741.             }), this.state.isSetup ? null : C.a.createElement(Al.a, {
  12742.               zone: 'admin'
  12743.             }), C.a.cloneElement(this.props.children, this.state), C.a.createElement(o.Footer, {
  12744.               isReadOnly: this.state.isReadOnly
  12745.             }))
  12746.           }
  12747.         }
  12748.       ]) && Op(e.prototype, t),
  12749.       n && Op(e, n),
  12750.       o
  12751.     }();
  12752.     Np(Ap, 'childContextTypes', {
  12753.       auth: b.a.object.isRequired
  12754.     }),
  12755.     Np(Ap, 'propTypes', {
  12756.       children: b.a.node.isRequired,
  12757.       location: b.a.object.isRequired
  12758.     }),
  12759.     Ap.Footer = function (e) {
  12760.       return C.a.createElement('div', null, C.a.createElement('div', {
  12761.         className: 'section-contained'
  12762.       }, C.a.createElement('footer', {
  12763.         className: 'global-footer'
  12764.       }, C.a.createElement('nav', {
  12765.         className: 'footer-nav'
  12766.       }, C.a.createElement('ul', null, C.a.createElement('li', {
  12767.         'data-analytics': 'footer for websties'
  12768.       }, C.a.createElement('a', {
  12769.         href: 'http://disqus.com/features/',
  12770.         className: 'link-gray'
  12771.       }, 'Features')), C.a.createElement('li', {
  12772.         'data-analytics': 'footer about'
  12773.       }, C.a.createElement('a', {
  12774.         href: 'http://disqus.com/company/',
  12775.         className: 'link-gray'
  12776.       }, 'Company')), C.a.createElement('li', {
  12777.         'data-analytics': 'footer brand'
  12778.       }, C.a.createElement('a', {
  12779.         href: 'http://disqus.com/brand/',
  12780.         className: 'link-gray'
  12781.       }, 'Logos')), C.a.createElement('li', {
  12782.         'data-analytics': 'footer docs'
  12783.       }, C.a.createElement('a', {
  12784.         href: Pn.contactSupport,
  12785.         className: 'link-gray'
  12786.       }, 'Help')), C.a.createElement('li', {
  12787.         'data-analytics': 'footer blog'
  12788.       }, C.a.createElement('a', {
  12789.         href: 'http://blog.disqus.com',
  12790.         className: 'link-gray'
  12791.       }, 'Blog')), C.a.createElement('li', {
  12792.         'data-analytics': 'footer api'
  12793.       }, C.a.createElement('a', {
  12794.         href: 'https://disqus.com/api/docs/',
  12795.         className: 'link-gray'
  12796.       }, 'API')), C.a.createElement('li', {
  12797.         'data-analytics': 'footer terms'
  12798.       }, C.a.createElement('a', {
  12799.         href: 'https://docs.disqus.com/kb/terms-and-policies/',
  12800.         className: 'link-gray'
  12801.       }, 'Terms & Policies'))), C.a.createElement('span', {
  12802.         className: 'copyright'
  12803.       }, '© ', (new Date).getFullYear(), ' · ', C.a.createElement('a', {
  12804.         href: '/',
  12805.         className: 'disqus link-gray'
  12806.       }, 'Disqus'))))), e.isReadOnly ? C.a.createElement(Rl, null) : null)
  12807.     },
  12808.     Ap.Footer.displayName = 'ApplicationFooter',
  12809.     Ap.Footer.propTypes = {
  12810.       isReadOnly: b.a.bool
  12811.     },
  12812.     Ap.FooterAlternate = function (e) {
  12813.       return C.a.createElement('div', null, C.a.createElement('div', {
  12814.         className: 'section-contained'
  12815.       }, C.a.createElement('footer', {
  12816.         className: 'global-footer'
  12817.       }, C.a.createElement('nav', {
  12818.         className: 'text-center footer-nav-alt'
  12819.       }, C.a.createElement('div', {
  12820.         className: 'footer-group'
  12821.       }, C.a.createElement('span', {
  12822.         className: 'footer-item'
  12823.       }, '© ', (new Date).getFullYear(), ' Disqus'), C.a.createElement('a', {
  12824.         className: 'footer-item footer-link',
  12825.         href: 'https://about.disqus.com/contact',
  12826.         target: '_blank',
  12827.         rel: 'noopener noreferrer'
  12828.       }, 'Contact Us')), C.a.createElement('div', {
  12829.         className: 'footer-group'
  12830.       }, C.a.createElement('a', {
  12831.         className: 'footer-item footer-link',
  12832.         href: _l.a.terms,
  12833.         target: '_blank',
  12834.         rel: 'noopener noreferrer'
  12835.       }, 'Terms & Conditions'), C.a.createElement('a', {
  12836.         className: 'footer-item footer-link',
  12837.         href: _l.a.privacy,
  12838.         target: '_blank',
  12839.         rel: 'noopener noreferrer'
  12840.       }, 'Privacy Policy'))))), e.isReadOnly ? C.a.createElement(Rl, null) : null)
  12841.     },
  12842.     Ap.FooterAlternate.displayName = 'ApplicationFooterAlternate',
  12843.     Ap.FooterAlternate.propTypes = {
  12844.       isReadOnly: b.a.bool
  12845.     };
  12846.     var t = Ap,
  12847.     Dp = {
  12848.       roundMoney: function (e) {
  12849.         return Math.round(100 * (e + 1e-7)) / 100
  12850.       },
  12851.       addThousandsSeparator: function (e) {
  12852.         e = ('' + e).split('.');
  12853.         return e[0] = e[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','),
  12854.         e.join('.')
  12855.       }
  12856.     };
  12857.     function jp(e) {
  12858.       return (jp = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  12859.         return typeof e
  12860.       }
  12861.        : function (e) {
  12862.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  12863.       }) (e)
  12864.     }
  12865.     function Tp(e) {
  12866.       var t,
  12867.       n,
  12868.       n = (n = jp(t = e), Array.isArray(t) ? 'array' : t instanceof RegExp ? 'object' : n);
  12869.       if ('object' === n) {
  12870.         if (e instanceof Date) return 'date';
  12871.         if (e instanceof RegExp) return 'regexp'
  12872.       }
  12873.       return n
  12874.     }
  12875.     function Ip(e, t, n, a) {
  12876.       t = t[n];
  12877.       return null == t ? e ? Error('Required prop `'.concat(n, '` was not specified in `').concat(a, '`.')) : null : ct.a.isMoment(t) ? null : Error('Invalid prop `'.concat(n, '` of type `').concat(Tp(t), '` ') + 'was supplied to `'.concat(a, '`, expected moment instance.'))
  12878.     }
  12879.     i = {
  12880.     };
  12881.     i.moment = Ip.bind(null, !1),
  12882.     i.moment.isRequired = Ip.bind(null, !0);
  12883.     var s = i,
  12884.     c = n(65),
  12885.     qp = n.n(c),
  12886.     Fp = qp.a.Model.extend({
  12887.       idAttribute: 'date_utc',
  12888.       defaults: {
  12889.         shortname: '',
  12890.         viewability_percent: 0,
  12891.         earnings: 0,
  12892.         rpmv: 0,
  12893.         viewable_impressions: 0,
  12894.         date_utc: null
  12895.       },
  12896.       parse: function (e) {
  12897.         return e.date_utc = ct() (e.date_utc.replace('UTC', '.000Z')).utc(),
  12898.         e.viewability_percent *= 100,
  12899.         e
  12900.       }
  12901.     }),
  12902.     Lp = ct.a.utc().startOf('day').subtract(1, 'year').add(1, 'day'),
  12903.     Up = ct.a.utc().startOf('day'),
  12904.     Mp = qp.a.Model.extend({
  12905.       initialize: function () {
  12906.         this.byDay = new qp.a.Collection([], {
  12907.           comparator: 'date_utc',
  12908.           model: Fp
  12909.         }),
  12910.         this.byMonth = new qp.a.Collection([], {
  12911.           model: Fp
  12912.         })
  12913.       },
  12914.       sync: function (e, t, n) {
  12915.         if ('read' !== e) throw Error('Invalid method');
  12916.         var a = ct.a.utc(n.start).startOf('month'),
  12917.         r = ct.a.utc(n.end).endOf('month').startOf('day'),
  12918.         e = je.a.extend({
  12919.           start: ct.a.max(Lp, a).toISOString(),
  12920.           end: ct.a.min(Up, r).toISOString()
  12921.         }, n.data),
  12922.         a = br.orgId,
  12923.         r = br.shortname,
  12924.         r = a ? (e = je.a.extend({
  12925.           organization: a
  12926.         }, e), 'discovery/reports/organizationRevealStats.json') : (e = je.a.extend({
  12927.           forum: r
  12928.         }, e), 'discovery/reports/revealStats.json');
  12929.         return io.a.call(r, je.a.defaults({
  12930.           data: e,
  12931.           error: je.a.bind(function (e, t) {
  12932.             this.trigger('error', e, t)
  12933.           }, this)
  12934.         }, n))
  12935.       },
  12936.       parse: function (e) {
  12937.         this.byDay.reset(e.response.results, {
  12938.           parse: !0
  12939.         });
  12940.         var t,
  12941.         n,
  12942.         a,
  12943.         r,
  12944.         e = (t = this.byDay.toJSON(), n = function (e) {
  12945.           e = e.date_utc;
  12946.           return JSON.stringify([e.year(),
  12947.           e.month()])
  12948.         }, r = [
  12949.         ], je.a.each(t, function (e) {
  12950.           var t = n(e);
  12951.           r.length && t === a ? r[r.length - 1].push(e) : r.push([e]),
  12952.           a = t
  12953.         }), r),
  12954.         e = je.a.map(e, function (e) {
  12955.           e = je.a.chain(e).map(function (e) {
  12956.             return e.total_impressions = e.viewability_percent ? 100 * e.viewable_impressions / e.viewability_percent : 0,
  12957.             e
  12958.           }).reduce(function (n, e) {
  12959.             return je.a.each(e, function (e, t) {
  12960.               je.a.has(n, t) ? 'number' == typeof n[t] && (n[t] += e) : n[t] = e
  12961.             }),
  12962.             n
  12963.           }).value();
  12964.           return e.rpmv = e.viewable_impressions ? 1000 * e.earnings / e.viewable_impressions : 0,
  12965.           e.viewability_percent = e.total_impressions ? 100 * e.viewable_impressions / e.total_impressions : 0,
  12966.           delete e.total_impressions,
  12967.           e
  12968.         });
  12969.         this.byMonth.reset(e)
  12970.       }
  12971.     }),
  12972.     p = function (e) {
  12973.       return C.a.createElement('div', {
  12974.         className: e.className || ''
  12975.       }, C.a.createElement('h2', {
  12976.         className: 'card__title-mobile'
  12977.       }, e.leftTitle), C.a.createElement('div', {
  12978.         className: 'card__header'
  12979.       }, C.a.createElement('div', {
  12980.         className: 'card__header-content card__title -left'
  12981.       }, e.leftTitle), C.a.createElement('div', {
  12982.         className: 'card__header-content -right'
  12983.       }, e.rightTitle)), C.a.createElement('div', {
  12984.         className: 'card__body '.concat(e.bodyClassName || '-overflow-scroll')
  12985.       }, e.children))
  12986.     };
  12987.     p.displayName = 'Card',
  12988.     p.propTypes = {
  12989.       leftTitle: b.a.node,
  12990.       rightTitle: b.a.node,
  12991.       children: b.a.node,
  12992.       className: b.a.string,
  12993.       bodyClassName: b.a.string
  12994.     };
  12995.     var Bp = p,
  12996.     m = n(73),
  12997.     zp = n.n(m);
  12998.     n(147);
  12999.     function Hp(e) {
  13000.       return (Hp = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  13001.         return typeof e
  13002.       }
  13003.        : function (e) {
  13004.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  13005.       }) (e)
  13006.     }
  13007.     function Gp(e, t) {
  13008.       for (var n = 0; n < t.length; n++) {
  13009.         var a = t[n];
  13010.         a.enumerable = a.enumerable || !1,
  13011.         a.configurable = !0,
  13012.         'value' in a && (a.writable = !0),
  13013.         Object.defineProperty(e, a.key, a)
  13014.       }
  13015.     }
  13016.     function Vp(e, t) {
  13017.       return (Vp = Object.setPrototypeOf || function (e, t) {
  13018.         return e.__proto__ = t,
  13019.         e
  13020.       }) (e, t)
  13021.     }
  13022.     function Wp(n) {
  13023.       var a = function () {
  13024.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  13025.         if (Reflect.construct.sham) return !1;
  13026.         if ('function' == typeof Proxy) return !0;
  13027.         try {
  13028.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  13029.           ], function () {
  13030.           })),
  13031.           !0
  13032.         } catch (e) {
  13033.           return !1
  13034.         }
  13035.       }();
  13036.       return function () {
  13037.         var e,
  13038.         t = Qp(n);
  13039.         return e = a ? (e = Qp(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  13040.         t = this,
  13041.         !(e = e) || 'object' !== Hp(e) && 'function' != typeof e ? Yp(t) : e
  13042.       }
  13043.     }
  13044.     function Yp(e) {
  13045.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  13046.       return e
  13047.     }
  13048.     function Qp(e) {
  13049.       return (Qp = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  13050.         return e.__proto__ || Object.getPrototypeOf(e)
  13051.       }) (e)
  13052.     }
  13053.     function Kp(e, t, n) {
  13054.       return t in e ? Object.defineProperty(e, t, {
  13055.         value: n,
  13056.         enumerable: !0,
  13057.         configurable: !0,
  13058.         writable: !0
  13059.       }) : e[t] = n,
  13060.       e
  13061.     }
  13062.     function Jp(e) {
  13063.       var t = e.startDate,
  13064.       n = e.endDate,
  13065.       a = e.maxDate,
  13066.       e = ''.concat(t.format('MM/DD/YY'), ' - ').concat(n.format('MM/DD/YY'));
  13067.       return n.isSame(a) ? (a = n.diff(t, 'months'), t = n.diff(t, 'days'), t = 1 < a ? ''.concat(a, ' months') : ''.concat(t, ' day').concat(1 === t ? '' : 's'), C.a.createElement('span', null, C.a.createElement('span', {
  13068.         className: 'text-semibold'
  13069.       }, 'Past ', t), ' ', '(', e, ')')) : C.a.createElement('span', null, e)
  13070.     }
  13071.     var $p = {
  13072.       day: 'Daily',
  13073.       month: 'Monthly',
  13074.       thread: 'Thread'
  13075.     };
  13076.     Jp.propTypes = {
  13077.       startDate: s.moment.isRequired,
  13078.       endDate: s.moment.isRequired,
  13079.       maxDate: s.moment.isRequired
  13080.     };
  13081.     h = function () {
  13082.       !function (e, t) {
  13083.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  13084.         e.prototype = Object.create(t && t.prototype, {
  13085.           constructor: {
  13086.             value: e,
  13087.             writable: !0,
  13088.             configurable: !0
  13089.           }
  13090.         }),
  13091.         t && Vp(e, t)
  13092.       }(o, A);
  13093.       var e,
  13094.       t,
  13095.       n,
  13096.       r = Wp(o);
  13097.       function o() {
  13098.         var a;
  13099.         !function (e, t) {
  13100.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  13101.         }(this, o);
  13102.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  13103.         return Kp(Yp(a = r.call.apply(r, [
  13104.           this
  13105.         ].concat(t))), 'state', {
  13106.           pickerOpen: !1,
  13107.           groupsOpen: !1
  13108.         }),
  13109.         Kp(Yp(a), 'datePickerInput', C.a.createRef()),
  13110.         Kp(Yp(a), 'datePickerContainer', C.a.createRef()),
  13111.         Kp(Yp(a), 'handleDateChange', function (e, t) {
  13112.           a.setState({
  13113.             pickerOpen: !1
  13114.           });
  13115.           var n = a.props.persistLocalTime ? ct() (t.date1) : a.localToUtc(ct() (t.date1)),
  13116.           t = a.props.persistLocalTime ? ct() (t.date2) : a.localToUtc(ct() (t.date2));
  13117.           (a.props.sortByThread || a.props.threadSpecificReactionsReport) && t.diff(n, 'days') <= 2 && (n = ct() (t).subtract(3, 'days')),
  13118.           a.props.startDate.isSame(n) && a.props.endDate.isSame(t) || a.props.onDateChange && a.props.onDateChange(n, t)
  13119.         }),
  13120.         Kp(Yp(a), 'handleGroupChange', function (e) {
  13121.           a.setState({
  13122.             groupsOpen: !1
  13123.           }),
  13124.           a.props.onGroupChange && a.props.onGroupChange(e)
  13125.         }),
  13126.         Kp(Yp(a), 'updatePickerDates', function () {
  13127.           var e = a.utcToLocal(a.props.startDate).toDate(),
  13128.           t = a.utcToLocal(a.props.endDate).toDate();
  13129.           a._picker.setDateRange(e, t, !0)
  13130.         }),
  13131.         Kp(Yp(a), 'showPicker', function (e) {
  13132.           e.preventDefault(),
  13133.           e.stopPropagation(),
  13134.           e.nativeEvent.stopImmediatePropagation(),
  13135.           a.setState(function (e) {
  13136.             return {
  13137.               pickerOpen: !e.pickerOpen
  13138.             }
  13139.           })
  13140.         }),
  13141.         Kp(Yp(a), 'toggleGroupsVisible', function () {
  13142.           a.setState(function (e) {
  13143.             return {
  13144.               groupsOpen: !e.groupsOpen
  13145.             }
  13146.           })
  13147.         }),
  13148.         Kp(Yp(a), 'hideGroups', function () {
  13149.           a.setState({
  13150.             groupsOpen: !1
  13151.           })
  13152.         }),
  13153.         Kp(Yp(a), 'hidePicker', function () {
  13154.           a.setState({
  13155.             pickerOpen: !1
  13156.           })
  13157.         }),
  13158.         Kp(Yp(a), 'rangeFnFromStartDate', function (e) {
  13159.           return je.a.constant([e.toDate(),
  13160.           a.today().toDate()])
  13161.         }),
  13162.         Kp(Yp(a), 'today', function () {
  13163.           return a.utcToLocal(a.props.maxDate || ct.a.utc()).startOf('day')
  13164.         }),
  13165.         Kp(Yp(a), 'localToUtc', function (e) {
  13166.           return ct.a.utc(e.toArray())
  13167.         }),
  13168.         Kp(Yp(a), 'utcToLocal', function (e) {
  13169.           return ct() (e.toArray())
  13170.         }),
  13171.         Kp(Yp(a), 'formatThreadTitle', function (e) {
  13172.           var t = a.props.threadSpecificReactionsReport[e].date,
  13173.           e = e.split('_').map(function (e) {
  13174.             if (e) return e[0].toUpperCase() + e.slice(1)
  13175.           }).join(' ');
  13176.           return ''.concat(t, ': ').concat(e)
  13177.         }),
  13178.         a
  13179.       }
  13180.       return e = o,
  13181.       (t = [
  13182.         {
  13183.           key: 'componentDidMount',
  13184.           value: function () {
  13185.             var t = Object.freeze({
  13186.               '7 days': this.rangeFnFromStartDate(this.today().subtract(6, 'days')),
  13187.               '30 days': this.rangeFnFromStartDate(this.today().subtract(29, 'days')),
  13188.               '90 days': this.rangeFnFromStartDate(this.today().subtract(89, 'days')),
  13189.               '1 year': this.rangeFnFromStartDate(this.today().subtract(1, 'year').add(1, 'day'))
  13190.             }),
  13191.             e = (this.props.shortcuts || Object.keys(t)).map(function (e) {
  13192.               return {
  13193.                 name: e,
  13194.                 dates: t[e]
  13195.               }
  13196.             });
  13197.             return this._picker = vo() (this.datePickerInput.current).dateRangePicker({
  13198.               inline: !0,
  13199.               container: vo() (this.datePickerContainer.current),
  13200.               showShortcuts: this.props.shortcuts,
  13201.               showTopbar: !1,
  13202.               autoClose: !this.props.alwaysOpen,
  13203.               alwaysOpen: this.props.alwaysOpen,
  13204.               format: 'MM/DD/YY',
  13205.               separator: ' - ',
  13206.               duration: 0,
  13207.               startDate: this.props.minDate && this.utcToLocal(this.props.minDate),
  13208.               endDate: this.props.maxDate && this.utcToLocal(this.props.maxDate),
  13209.               shortcuts: null,
  13210.               customShortcuts: e
  13211.             }).bind('datepicker-change', je.a.bind(this.handleDateChange, this)).data('dateRangePicker'),
  13212.             this.updatePickerDates(),
  13213.             this._picker
  13214.           }
  13215.         },
  13216.         {
  13217.           key: 'componentDidUpdate',
  13218.           value: function () {
  13219.             this.updatePickerDates(),
  13220.             this.state.pickerOpen && 'thread' !== this.props.group ? this._picker.open(0) : this._picker.close(0)
  13221.           }
  13222.         },
  13223.         {
  13224.           key: 'componentWillUnmount',
  13225.           value: function () {
  13226.             this._picker.destroy()
  13227.           }
  13228.         },
  13229.         {
  13230.           key: 'render',
  13231.           value: function () {
  13232.             var t,
  13233.             n = this,
  13234.             e = this.props.dateWrapperClass || 'date-input-group__wrapper--'.concat(this.props.group ? 'switch' : 'no-switch'),
  13235.             a = this.props.hideInput ? this.showPicker : null,
  13236.             r = this.props.threadSpecificReactionsList ? (t = [
  13237.             ], 0 === this.props.threadSpecificReactionsList.length ? t = [
  13238.               'No threads in given time period'
  13239.             ] : this.props.threadSpecificReactionsList.forEach(function (e) {
  13240.               t.push(C.a.createElement('li', {
  13241.                 className: 'reactions-group-li',
  13242.                 onClick: n.handleGroupChange.bind(null, e),
  13243.                 key: n.props.threadSpecificReactionsReport[e].threadId
  13244.               }, n.formatThreadTitle(e)))
  13245.             }), C.a.createElement('div', {
  13246.               className: 'reactions-group-dropdown__wrapper'
  13247.             }, C.a.createElement('div', {
  13248.               className: 'card__header-content-item group-dropdown__button -button -right -left',
  13249.               onClick: this.toggleGroupsVisible
  13250.             }, C.a.createElement('span', {
  13251.               className: 'icon-group spacing-right text-gray'
  13252.             }), this.state.groupsOpen ? 'Dates Published & Thread Titles:' : this.props.group && this.formatThreadTitle(this.props.group), C.a.createElement('span', {
  13253.               className: 'icon-arrow text-large date-input-group__icon'
  13254.             })), C.a.createElement(zp.a, {
  13255.               className: this.state.groupsOpen ? '' : 'hidden',
  13256.               active: this.state.groupsOpen,
  13257.               onOutsideClick: this.hideGroups
  13258.             }, C.a.createElement('div', {
  13259.               className: 'group__dropdown'
  13260.             }, C.a.createElement('ul', {
  13261.               className: 'reactions-group-ul'
  13262.             }, t))))) : this.props.group ? C.a.createElement('div', {
  13263.               className: 'group-dropdown__wrapper'
  13264.             }, C.a.createElement('div', {
  13265.               className: 'card__header-content-item group-dropdown__button -button -right -left',
  13266.               onClick: this.toggleGroupsVisible
  13267.             }, C.a.createElement('span', {
  13268.               className: 'icon-group spacing-right text-gray'
  13269.             }), this.state.groupsOpen ? 'Group by' : $p[this.props.group], C.a.createElement('span', {
  13270.               className: 'icon-arrow text-large date-input-group__icon'
  13271.             })), C.a.createElement(zp.a, {
  13272.               active: this.state.groupsOpen,
  13273.               onOutsideClick: this.hideGroups,
  13274.               className: this.state.groupsOpen ? '' : 'hidden'
  13275.             }, C.a.createElement('div', {
  13276.               className: 'group__dropdown'
  13277.             }, C.a.createElement('ul', null, C.a.createElement('li', {
  13278.               className: 'day' === this.props.group ? 'active' : '',
  13279.               onClick: this.handleGroupChange.bind(null, 'day')
  13280.             }, $p.day), this.props.sortByThread ? null : C.a.createElement('li', {
  13281.               className: 'month' === this.props.group ? 'active' : '',
  13282.               onClick: this.handleGroupChange.bind(null, 'month')
  13283.             }, $p.month), this.props.sortByThread ? C.a.createElement('li', {
  13284.               className: 'thread' === this.props.group ? 'active' : '',
  13285.               onClick: this.handleGroupChange.bind(null, 'thread')
  13286.             }, $p.thread) : null)))) : this.props.hideInput ? C.a.createElement('div', {
  13287.               className: 'date-input-group__label'
  13288.             }, C.a.createElement('span', {
  13289.               className: 'icon-calendar text-large spacing-right text-gray'
  13290.             }), C.a.createElement(Jp, {
  13291.               endDate: this.props.endDate,
  13292.               startDate: this.props.startDate,
  13293.               maxDate: this.props.maxDate
  13294.             })) : null;
  13295.             return C.a.createElement('div', {
  13296.               className: e,
  13297.               onClick: a
  13298.             }, C.a.createElement('div', {
  13299.               className: 'date-input-group align align--stretch text-small text-semibold'
  13300.             }, r, C.a.createElement('div', {
  13301.               className: 'card__header-content-item group-dropdown__button -button -nest daterange-picker',
  13302.               onClick: this.showPicker
  13303.             }, C.a.createElement('span', {
  13304.               className: 'icon-calendar text-large spacing-right text-gray',
  13305.               hidden: this.props.hideInput
  13306.             }), C.a.createElement('input', {
  13307.               className: 'date-input-group__input text-gray-dark text-semibold',
  13308.               hidden: this.props.hideInput,
  13309.               ref: this.datePickerInput
  13310.             }), C.a.createElement('span', {
  13311.               className: 'icon-arrow text-large spacing-left date-input-group__icon',
  13312.               hidden: this.props.hideInput
  13313.             }))), C.a.createElement(zp.a, {
  13314.               active: this.state.pickerOpen,
  13315.               onOutsideClick: this.hidePicker,
  13316.               className: this.state.pickerOpen ? '' : 'hidden'
  13317.             }, C.a.createElement('div', {
  13318.               className: 'date-input-group__dropdown',
  13319.               ref: this.datePickerContainer
  13320.             })))
  13321.           }
  13322.         }
  13323.       ]) && Gp(e.prototype, t),
  13324.       n && Gp(e, n),
  13325.       o
  13326.     }();
  13327.     Kp(h, 'propTypes', {
  13328.       maxDate: s.moment.isRequired,
  13329.       minDate: s.moment.isRequired,
  13330.       startDate: s.moment.isRequired,
  13331.       endDate: s.moment.isRequired,
  13332.       group: b.a.string,
  13333.       onDateChange: b.a.func,
  13334.       onGroupChange: b.a.func,
  13335.       alwaysOpen: b.a.bool,
  13336.       dateWrapperClass: b.a.string,
  13337.       hideInput: b.a.bool,
  13338.       shortcuts: b.a.arrayOf(b.a.string),
  13339.       sortByThread: b.a.bool,
  13340.       persistLocalTime: b.a.bool
  13341.     }),
  13342.     Kp(h, 'defaultProps', {
  13343.       alwaysOpen: !1,
  13344.       hideInput: !1
  13345.     });
  13346.     var Zp = h;
  13347.     function Xp(e) {
  13348.       return (Xp = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  13349.         return typeof e
  13350.       }
  13351.        : function (e) {
  13352.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  13353.       }) (e)
  13354.     }
  13355.     function ed(e, t) {
  13356.       for (var n = 0; n < t.length; n++) {
  13357.         var a = t[n];
  13358.         a.enumerable = a.enumerable || !1,
  13359.         a.configurable = !0,
  13360.         'value' in a && (a.writable = !0),
  13361.         Object.defineProperty(e, a.key, a)
  13362.       }
  13363.     }
  13364.     function td(e, t) {
  13365.       return (td = Object.setPrototypeOf || function (e, t) {
  13366.         return e.__proto__ = t,
  13367.         e
  13368.       }) (e, t)
  13369.     }
  13370.     function nd(n) {
  13371.       var a = function () {
  13372.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  13373.         if (Reflect.construct.sham) return !1;
  13374.         if ('function' == typeof Proxy) return !0;
  13375.         try {
  13376.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  13377.           ], function () {
  13378.           })),
  13379.           !0
  13380.         } catch (e) {
  13381.           return !1
  13382.         }
  13383.       }();
  13384.       return function () {
  13385.         var e,
  13386.         t = ad(n);
  13387.         return e = a ? (e = ad(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  13388.         t = this,
  13389.         !(e = e) || 'object' !== Xp(e) && 'function' != typeof e ? function (e) {
  13390.           if (void 0 !== e) return e;
  13391.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  13392.         }(t) : e
  13393.       }
  13394.     }
  13395.     function ad(e) {
  13396.       return (ad = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  13397.         return e.__proto__ || Object.getPrototypeOf(e)
  13398.       }) (e)
  13399.     }
  13400.     function rd(e, t, n) {
  13401.       return t in e ? Object.defineProperty(e, t, {
  13402.         value: n,
  13403.         enumerable: !0,
  13404.         configurable: !0,
  13405.         writable: !0
  13406.       }) : e[t] = n,
  13407.       e
  13408.     }
  13409.     var od = 'Jason Voegle',
  13410.     id = 'jasonv@disqus.com',
  13411.     sd = '415-508-7521',
  13412.     ld = 'settings',
  13413.     cd = 'revenue',
  13414.     ud = 'payments',
  13415.     y = function () {
  13416.       !function (e, t) {
  13417.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  13418.         e.prototype = Object.create(t && t.prototype, {
  13419.           constructor: {
  13420.             value: e,
  13421.             writable: !0,
  13422.             configurable: !0
  13423.           }
  13424.         }),
  13425.         t && td(e, t)
  13426.       }(r, A);
  13427.       var e,
  13428.       t,
  13429.       n,
  13430.       a = nd(r);
  13431.       function r() {
  13432.         return function (e, t) {
  13433.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  13434.         }(this, r),
  13435.         a.apply(this, arguments)
  13436.       }
  13437.       return e = r,
  13438.       (t = [
  13439.         {
  13440.           key: 'render',
  13441.           value: function () {
  13442.             var e;
  13443.             switch (this.props.secondaryMessageType) {
  13444.               case ld:
  13445.                 e = 'The ability to make changes to your ad settings is restricted during this period. Please email your account manager if you have any questions.';
  13446.                 break;
  13447.               case cd:
  13448.                 e = 'During the first 30 days of your promotional period, Disqus will actively review the performance of your site and reserves the right to terminate or alter any guarantees.';
  13449.                 break;
  13450.               case ud:
  13451.                 e = 'Your payment during the promotional period will be at least the guaranteed amount.';
  13452.                 break;
  13453.               default:
  13454.                 e = null
  13455.             }
  13456.             var t = this.props.endDate.diff(this.props.startDate, 'days'),
  13457.             n = ct() ().utc().add(1, 'days').diff(this.props.startDate, 'days'),
  13458.             a = Dp.addThousandsSeparator(this.props.amount);
  13459.             return C.a.createElement('div', {
  13460.               className: 'alert alert--warning-light spacing-bottom'
  13461.             }, C.a.createElement('div', {
  13462.               className: 'spacing-narrow'
  13463.             }, C.a.createElement('h2', {
  13464.               className: 'spacing-bottom-narrow'
  13465.             }, C.a.createElement('span', {
  13466.               className: 'icon__position spacing-right-small'
  13467.             }, C.a.createElement('img', {
  13468.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/info.png',
  13469.               width: '20'
  13470.             })), 'You are currently on day ', n, ' of your ', t, ' day promotional period. Based on the terms of your ', t, '-day agreement, you are guaranteed to earn $', a, ' for this period.'), e ? C.a.createElement('p', {
  13471.               className: 'text-medium spacing-top'
  13472.             }, e) : null, C.a.createElement('p', {
  13473.               className: 'text-medium spacing-top'
  13474.             }, 'Have questions? Contact your account manager.'), C.a.createElement('p', {
  13475.               className: 'text-medium spacing-top'
  13476.             }, 'Your account manager:', C.a.createElement('br', null), C.a.createElement('strong', null, od), C.a.createElement('br', null), 'Email: ', C.a.createElement('a', {
  13477.               href: 'mailto:'.concat(id)
  13478.             }, id), C.a.createElement('br', null), 'Phone: ', sd)))
  13479.           }
  13480.         }
  13481.       ]) && ed(e.prototype, t),
  13482.       n && ed(e, n),
  13483.       r
  13484.     }();
  13485.     rd(y, 'displayName', 'GuaranteeAlert'),
  13486.     rd(y, 'propTypes', {
  13487.       secondaryMessageType: b.a.oneOf([ld,
  13488.       cd,
  13489.       ud]),
  13490.       startDate: s.moment.isRequired,
  13491.       endDate: s.moment.isRequired,
  13492.       amount: b.a.number.isRequired
  13493.     }),
  13494.     rd(y, 'defaultProps', {
  13495.       secondaryMessageType: 'settings'
  13496.     });
  13497.     var pd = y,
  13498.     D = function (e) {
  13499.       var t,
  13500.       e = e.isPermissionError ? (t = '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/closed_lock.svg', 'Looks like you don\'t have enough permissions to see this data.') : (t = '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/info.png', 'Something went wrong while fetching the data. You can refresh and try again.');
  13501.       return C.a.createElement('div', {
  13502.         className: 'alert alert--warning-light spacing-bottom'
  13503.       }, C.a.createElement('div', {
  13504.         className: 'spacing-narrow'
  13505.       }, C.a.createElement('h2', {
  13506.         className: 'spacing-bottom-narrow'
  13507.       }, C.a.createElement('span', {
  13508.         className: 'icon__position spacing-right-small'
  13509.       }, C.a.createElement('img', {
  13510.         src: t,
  13511.         width: '20',
  13512.         height: '16'
  13513.       })), 'Oops, loading failed =('), C.a.createElement('p', {
  13514.         className: 'text-medium'
  13515.       }, 'We were not able to load your analytics data. ', e)))
  13516.     };
  13517.     D.propTypes = {
  13518.       isPermissionError: b.a.bool.isRequired
  13519.     };
  13520.     var dd = D;
  13521.     function md(e) {
  13522.       return (md = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  13523.         return typeof e
  13524.       }
  13525.        : function (e) {
  13526.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  13527.       }) (e)
  13528.     }
  13529.     function fd(e, t) {
  13530.       for (var n = 0; n < t.length; n++) {
  13531.         var a = t[n];
  13532.         a.enumerable = a.enumerable || !1,
  13533.         a.configurable = !0,
  13534.         'value' in a && (a.writable = !0),
  13535.         Object.defineProperty(e, a.key, a)
  13536.       }
  13537.     }
  13538.     function hd(e, t) {
  13539.       return (hd = Object.setPrototypeOf || function (e, t) {
  13540.         return e.__proto__ = t,
  13541.         e
  13542.       }) (e, t)
  13543.     }
  13544.     function gd(n) {
  13545.       var a = function () {
  13546.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  13547.         if (Reflect.construct.sham) return !1;
  13548.         if ('function' == typeof Proxy) return !0;
  13549.         try {
  13550.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  13551.           ], function () {
  13552.           })),
  13553.           !0
  13554.         } catch (e) {
  13555.           return !1
  13556.         }
  13557.       }();
  13558.       return function () {
  13559.         var e,
  13560.         t = bd(n);
  13561.         return e = a ? (e = bd(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  13562.         t = this,
  13563.         !(e = e) || 'object' !== md(e) && 'function' != typeof e ? yd(t) : e
  13564.       }
  13565.     }
  13566.     function yd(e) {
  13567.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  13568.       return e
  13569.     }
  13570.     function bd(e) {
  13571.       return (bd = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  13572.         return e.__proto__ || Object.getPrototypeOf(e)
  13573.       }) (e)
  13574.     }
  13575.     function vd(e, t, n) {
  13576.       return t in e ? Object.defineProperty(e, t, {
  13577.         value: n,
  13578.         enumerable: !0,
  13579.         configurable: !0,
  13580.         writable: !0
  13581.       }) : e[t] = n,
  13582.       e
  13583.     }
  13584.     var _d = function () {
  13585.       !function (e, t) {
  13586.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  13587.         e.prototype = Object.create(t && t.prototype, {
  13588.           constructor: {
  13589.             value: e,
  13590.             writable: !0,
  13591.             configurable: !0
  13592.           }
  13593.         }),
  13594.         t && hd(e, t)
  13595.       }(o, A);
  13596.       var e,
  13597.       t,
  13598.       n,
  13599.       r = gd(o);
  13600.       function o() {
  13601.         var t;
  13602.         !function (e, t) {
  13603.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  13604.         }(this, o);
  13605.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  13606.         return vd(yd(t = r.call.apply(r, [
  13607.           this
  13608.         ].concat(n))), 'handleShowYear', function (e) {
  13609.           e.preventDefault(),
  13610.           t.props.onDateChange(ct() (t.props.maxDate).subtract(1, 'year').add(1, 'day'), t.props.maxDate)
  13611.         }),
  13612.         t
  13613.       }
  13614.       return e = o,
  13615.       (t = [
  13616.         {
  13617.           key: 'render',
  13618.           value: function () {
  13619.             var e = br.shortname && window._v5Config.forums[br.shortname],
  13620.             e = e && e.adsSettingsUrl;
  13621.             return C.a.createElement('div', {
  13622.               className: 'alert alert--warning-light spacing-bottom'
  13623.             }, C.a.createElement('div', {
  13624.               className: 'spacing-narrow'
  13625.             }, C.a.createElement('h2', {
  13626.               className: 'spacing-bottom-narrow'
  13627.             }, C.a.createElement('span', {
  13628.               className: 'icon__position spacing-right-small'
  13629.             }, C.a.createElement('img', {
  13630.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/info.png',
  13631.               width: '20'
  13632.             })), 'No revenue for this date range'), C.a.createElement('p', {
  13633.               className: 'text-medium'
  13634.             }, 'We haven\'t seen any Reveal revenue activity for your site in this date range.'), C.a.createElement('ul', {
  13635.               className: 'text-medium'
  13636.             }, C.a.createElement('li', {
  13637.               className: 'spacing-narrow'
  13638.             }, 'If you\'ve just activated Reveal, it can take up to 24 hours before data is available in your dashboard.'), C.a.createElement('li', {
  13639.               className: 'spacing-narrow'
  13640.             }, 'Earnings also will not accumulate if ads are not enabled. ', C.a.createElement('strong', null, C.a.createElement('a', {
  13641.               href: e
  13642.             }, 'View your site settings')), ' and turn on Reveal to unlock your earning potential.'), C.a.createElement('li', {
  13643.               className: 'spacing-narrow'
  13644.             }, 'You can try selecting a longer date range. ', C.a.createElement('strong', null, C.a.createElement('a', {
  13645.               href: '#',
  13646.               onClick: this.handleShowYear
  13647.             }, 'View revenue for the past year')), '.'))))
  13648.           }
  13649.         }
  13650.       ]) && fd(e.prototype, t),
  13651.       n && fd(e, n),
  13652.       o
  13653.     }();
  13654.     vd(_d, 'displayName', 'NoEarningsAlert'),
  13655.     vd(_d, 'propTypes', {
  13656.       maxDate: b.a.instanceOf(ct.a.fn.constructor).isRequired,
  13657.       onDateChange: b.a.func.isRequired
  13658.     });
  13659.     var I = n(47),
  13660.     Ed = n.n(I),
  13661.     F = n(93),
  13662.     Od = n.n(F);
  13663.     function Sd(e) {
  13664.       return (Sd = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  13665.         return typeof e
  13666.       }
  13667.        : function (e) {
  13668.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  13669.       }) (e)
  13670.     }
  13671.     function wd(t, e) {
  13672.       var n,
  13673.       a = Object.keys(t);
  13674.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  13675.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  13676.       })), a.push.apply(a, n)),
  13677.       a
  13678.     }
  13679.     function Pd(t) {
  13680.       for (var e = 1; e < arguments.length; e++) {
  13681.         var n = null != arguments[e] ? arguments[e] : {
  13682.         };
  13683.         e % 2 ? wd(Object(n), !0).forEach(function (e) {
  13684.           Ad(t, e, n[e])
  13685.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : wd(Object(n)).forEach(function (e) {
  13686.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  13687.         })
  13688.       }
  13689.       return t
  13690.     }
  13691.     function kd(e, t) {
  13692.       for (var n = 0; n < t.length; n++) {
  13693.         var a = t[n];
  13694.         a.enumerable = a.enumerable || !1,
  13695.         a.configurable = !0,
  13696.         'value' in a && (a.writable = !0),
  13697.         Object.defineProperty(e, a.key, a)
  13698.       }
  13699.     }
  13700.     function Nd(e, t) {
  13701.       return (Nd = Object.setPrototypeOf || function (e, t) {
  13702.         return e.__proto__ = t,
  13703.         e
  13704.       }) (e, t)
  13705.     }
  13706.     function Cd(n) {
  13707.       var a = function () {
  13708.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  13709.         if (Reflect.construct.sham) return !1;
  13710.         if ('function' == typeof Proxy) return !0;
  13711.         try {
  13712.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  13713.           ], function () {
  13714.           })),
  13715.           !0
  13716.         } catch (e) {
  13717.           return !1
  13718.         }
  13719.       }();
  13720.       return function () {
  13721.         var e,
  13722.         t = xd(n);
  13723.         return e = a ? (e = xd(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  13724.         t = this,
  13725.         !(e = e) || 'object' !== Sd(e) && 'function' != typeof e ? Rd(t) : e
  13726.       }
  13727.     }
  13728.     function Rd(e) {
  13729.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  13730.       return e
  13731.     }
  13732.     function xd(e) {
  13733.       return (xd = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  13734.         return e.__proto__ || Object.getPrototypeOf(e)
  13735.       }) (e)
  13736.     }
  13737.     function Ad(e, t, n) {
  13738.       return t in e ? Object.defineProperty(e, t, {
  13739.         value: n,
  13740.         enumerable: !0,
  13741.         configurable: !0,
  13742.         writable: !0
  13743.       }) : e[t] = n,
  13744.       e
  13745.     }
  13746.     lt = function () {
  13747.       !function (e, t) {
  13748.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  13749.         e.prototype = Object.create(t && t.prototype, {
  13750.           constructor: {
  13751.             value: e,
  13752.             writable: !0,
  13753.             configurable: !0
  13754.           }
  13755.         }),
  13756.         t && Nd(e, t)
  13757.       }(o, A);
  13758.       var e,
  13759.       t,
  13760.       n,
  13761.       r = Cd(o);
  13762.       function o() {
  13763.         var e;
  13764.         !function (e, t) {
  13765.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  13766.         }(this, o);
  13767.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  13768.         return Ad(Rd(e = r.call.apply(r, [
  13769.           this
  13770.         ].concat(n))), 'graph', C.a.createRef()),
  13771.         Ad(Rd(e), 'getGraphData', function () {
  13772.           return {
  13773.             x: 'date_utc',
  13774.             json: e.props.rows.map(function (e) {
  13775.               return Pd(Pd({
  13776.               }, e), {
  13777.               }, {
  13778.                 date_utc: e.date_utc.toDate()
  13779.               })
  13780.             }),
  13781.             keys: {
  13782.               value: [
  13783.                 'date_utc',
  13784.                 'earnings',
  13785.                 'viewable_impressions',
  13786.                 'viewability_percent',
  13787.                 'rpmv'
  13788.               ]
  13789.             },
  13790.             names: {
  13791.               viewability_percent: 'Viewability Percent',
  13792.               rpmv: 'RPMv',
  13793.               viewable_impressions: 'Viewable Impressions',
  13794.               earnings: 'Ad Revenue'
  13795.             },
  13796.             axes: {
  13797.               viewable_impressions: 'y',
  13798.               viewability_percent: 'y',
  13799.               rpmv: 'y2',
  13800.               earnings: 'y'
  13801.             }
  13802.           }
  13803.         }),
  13804.         e
  13805.       }
  13806.       return e = o,
  13807.       (t = [
  13808.         {
  13809.           key: 'componentDidMount',
  13810.           value: function () {
  13811.             var e = this.getGraphData();
  13812.             e.hide = [
  13813.               'viewability_percent',
  13814.               'rpmv',
  13815.               'viewable_impressions'
  13816.             ],
  13817.             this.chart = Ed.a.generate({
  13818.               oninit: function () {
  13819.                 je.a.defer(function () {
  13820.                   vo() ('.c3-axis-y2').hide()
  13821.                 })
  13822.               },
  13823.               bindto: this.graph.current,
  13824.               data: e,
  13825.               color: {
  13826.                 pattern: [
  13827.                   '#752C85',
  13828.                   '#8B020E',
  13829.                   '#E56C00',
  13830.                   '#FDBE13'
  13831.                 ]
  13832.               },
  13833.               transition: {
  13834.                 duration: 0
  13835.               },
  13836.               axis: {
  13837.                 y: {
  13838.                   tick: {
  13839.                     format: function (e) {
  13840.                       return e.toLocaleString()
  13841.                     }
  13842.                   }
  13843.                 },
  13844.                 y2: {
  13845.                   show: !0,
  13846.                   tick: {
  13847.                     format: function (e) {
  13848.                       return e.toLocaleString()
  13849.                     }
  13850.                   }
  13851.                 },
  13852.                 x: {
  13853.                   type: 'timeseries',
  13854.                   tick: {
  13855.                     format: this.props.dateColumnConfig.formatter
  13856.                   }
  13857.                 }
  13858.               },
  13859.               size: {
  13860.                 height: 200
  13861.               },
  13862.               point: {
  13863.                 show: !1
  13864.               },
  13865.               legend: {
  13866.                 item: {
  13867.                   onclick: function (e) {
  13868.                     var t = this.api;
  13869.                     t.toggle(e);
  13870.                     var n = this.api.data.shown(),
  13871.                     e = je.a.chain(n).map(function (e) {
  13872.                       return {
  13873.                         id: e.id,
  13874.                         max: je.a.max(t.data.values(e.id))
  13875.                       }
  13876.                     }).sortBy('max').reduce(function (e, t, n, a) {
  13877.                       return e[t.id] = 0 === n && 1 < a.length ? 'y2' : 'y',
  13878.                       e
  13879.                     }, {
  13880.                     }).value();
  13881.                     t.data.axes(e),
  13882.                     vo() ('.c3-axis-y2') [1 < n.length ? 'show' : 'hide']()
  13883.                   }
  13884.                 }
  13885.               },
  13886.               tooltip: {
  13887.                 format: {
  13888.                   value: function (e, t, n) {
  13889.                     return 'earnings' === n ? Od.a.format('$.2f') (e) : 'viewable_impressions' === n ? Od.a.format('0,000') (e) : 'viewability_percent' === n ? ''.concat(Od.a.format('.2f') (e), '%') : 'rpmv' === n ? Od.a.format('$.2f') (e) : e
  13890.                   }
  13891.                 }
  13892.               }
  13893.             })
  13894.           }
  13895.         },
  13896.         {
  13897.           key: 'componentDidUpdate',
  13898.           value: function () {
  13899.             this.chart.load(this.getGraphData())
  13900.           }
  13901.         },
  13902.         {
  13903.           key: 'componentWillUnmount',
  13904.           value: function () {
  13905.             this.chart && (this.chart = this.chart.destroy())
  13906.           }
  13907.         },
  13908.         {
  13909.           key: 'render',
  13910.           value: function () {
  13911.             return C.a.createElement('div', {
  13912.               ref: this.graph
  13913.             })
  13914.           }
  13915.         }
  13916.       ]) && kd(e.prototype, t),
  13917.       n && kd(e, n),
  13918.       o
  13919.     }();
  13920.     Ad(lt, 'propTypes', {
  13921.       dateColumnConfig: b.a.object.isRequired,
  13922.       rows: b.a.array
  13923.     });
  13924.     var Dd = lt;
  13925.     function jd(e) {
  13926.       return (jd = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  13927.         return typeof e
  13928.       }
  13929.        : function (e) {
  13930.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  13931.       }) (e)
  13932.     }
  13933.     function Td(e, t) {
  13934.       for (var n = 0; n < t.length; n++) {
  13935.         var a = t[n];
  13936.         a.enumerable = a.enumerable || !1,
  13937.         a.configurable = !0,
  13938.         'value' in a && (a.writable = !0),
  13939.         Object.defineProperty(e, a.key, a)
  13940.       }
  13941.     }
  13942.     function Id(e, t) {
  13943.       return (Id = Object.setPrototypeOf || function (e, t) {
  13944.         return e.__proto__ = t,
  13945.         e
  13946.       }) (e, t)
  13947.     }
  13948.     function qd(n) {
  13949.       var a = function () {
  13950.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  13951.         if (Reflect.construct.sham) return !1;
  13952.         if ('function' == typeof Proxy) return !0;
  13953.         try {
  13954.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  13955.           ], function () {
  13956.           })),
  13957.           !0
  13958.         } catch (e) {
  13959.           return !1
  13960.         }
  13961.       }();
  13962.       return function () {
  13963.         var e,
  13964.         t = Ld(n);
  13965.         return e = a ? (e = Ld(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  13966.         t = this,
  13967.         !(e = e) || 'object' !== jd(e) && 'function' != typeof e ? Fd(t) : e
  13968.       }
  13969.     }
  13970.     function Fd(e) {
  13971.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  13972.       return e
  13973.     }
  13974.     function Ld(e) {
  13975.       return (Ld = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  13976.         return e.__proto__ || Object.getPrototypeOf(e)
  13977.       }) (e)
  13978.     }
  13979.     function Ud(e, t, n) {
  13980.       return t in e ? Object.defineProperty(e, t, {
  13981.         value: n,
  13982.         enumerable: !0,
  13983.         configurable: !0,
  13984.         writable: !0
  13985.       }) : e[t] = n,
  13986.       e
  13987.     }
  13988.     ut = function () {
  13989.       !function (e, t) {
  13990.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  13991.         e.prototype = Object.create(t && t.prototype, {
  13992.           constructor: {
  13993.             value: e,
  13994.             writable: !0,
  13995.             configurable: !0
  13996.           }
  13997.         }),
  13998.         t && Id(e, t)
  13999.       }(r, A);
  14000.       var e,
  14001.       t,
  14002.       n,
  14003.       a = qd(r);
  14004.       function r(e) {
  14005.         var n;
  14006.         return function (e, t) {
  14007.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  14008.         }(this, r),
  14009.         Ud(Fd(n = a.call(this, e)), 'calcTooltipWidth', function () {
  14010.           var e,
  14011.           t;
  14012.           n.icon.current && (e = n.getAvailableSpace(n.icon.current), t = n.state.contentWidth || n.estimateContentWidth(), n.setState({
  14013.             width: ''.concat(t < e ? t : e, 'px'),
  14014.             contentWidth: t
  14015.           }))
  14016.         }),
  14017.         n.state = {
  14018.           width: null,
  14019.           isVisible: !1,
  14020.           contentWidth: null,
  14021.           clicked: !1
  14022.         },
  14023.         n.icon = C.a.createRef(),
  14024.         n.calcTooltipWidth = n.calcTooltipWidth.bind(Fd(n)),
  14025.         n.hoverTooltip = n.hoverTooltip.bind(Fd(n)),
  14026.         n.leaveTooltip = n.leaveTooltip.bind(Fd(n)),
  14027.         n.clickTooltip = n.clickTooltip.bind(Fd(n)),
  14028.         n
  14029.       }
  14030.       return e = r,
  14031.       (t = [
  14032.         {
  14033.           key: 'componentDidMount',
  14034.           value: function () {
  14035.             this.calcTooltipWidth(),
  14036.             window.addEventListener('resize', this.calcTooltipWidth)
  14037.           }
  14038.         },
  14039.         {
  14040.           key: 'componentWillUnmount',
  14041.           value: function () {
  14042.             window.removeEventListener('resize', this.calcTooltipWidth)
  14043.           }
  14044.         },
  14045.         {
  14046.           key: 'getAvailableSpace',
  14047.           value: function (e) {
  14048.             var t = e.getBoundingClientRect();
  14049.             if (0 === t.width) return 285;
  14050.             var n = this.props.direction.split('-').splice( - 1) [0],
  14051.             e = t[n];
  14052.             if ('left' === n) return 0.95 * e;
  14053.             if ('right' === n) return 0.95 * (window.innerWidth - e);
  14054.             e = window.innerWidth - t.right;
  14055.             return t.left < e ? 0.95 * t.left * 2 : 0.95 * e * 2
  14056.           }
  14057.         },
  14058.         {
  14059.           key: 'estimateContentWidth',
  14060.           value: function () {
  14061.             return 6.5 * this.getContentLength(this.props.content) + 24
  14062.           }
  14063.         },
  14064.         {
  14065.           key: 'getContentLength',
  14066.           value: function (e) {
  14067.             var n = this;
  14068.             return 'string' == typeof e ? e.length : 'object' === jd(e) && e.props && e.props.children ? C.a.Children.toArray(e.props.children).reduce(function (e, t) {
  14069.               return e + n.getContentLength(t)
  14070.             }, 0) : void 0
  14071.           }
  14072.         },
  14073.         {
  14074.           key: 'toggleTooltip',
  14075.           value: function (e) {
  14076.             this.setState({
  14077.               isVisible: e,
  14078.               clicked: this.props.clickToggle && e
  14079.             }),
  14080.             e && this.props.onShow && this.props.onShow()
  14081.           }
  14082.         },
  14083.         {
  14084.           key: 'hoverTooltip',
  14085.           value: function () {
  14086.             this.props.clickToggle || this.toggleTooltip(!0)
  14087.           }
  14088.         },
  14089.         {
  14090.           key: 'leaveTooltip',
  14091.           value: function () {
  14092.             this.props.clickToggle || this.toggleTooltip(!1)
  14093.           }
  14094.         },
  14095.         {
  14096.           key: 'clickTooltip',
  14097.           value: function () {
  14098.             this.props.clickToggle && this.toggleTooltip(!this.state.isVisible)
  14099.           }
  14100.         },
  14101.         {
  14102.           key: 'render',
  14103.           value: function () {
  14104.             var e = this.props.tooltipKey ? 'tooltip-'.concat(this.props.tooltipKey.replace(/\s+/g, '_')) : void 0;
  14105.             return C.a.createElement('div', {
  14106.               className: 'tooltip-container tooltip-'.concat(this.props.direction, ' ').concat(this.props.additionalClass),
  14107.               onMouseLeave: this.leaveTooltip
  14108.             }, this.props.children ? C.a.createElement('span', {
  14109.               onMouseOver: this.hoverTooltip,
  14110.               onClick: this.clickTooltip,
  14111.               'data-for': e,
  14112.               'data-tip': !0,
  14113.               ref: this.icon
  14114.             }, this.props.children) : C.a.createElement('span', {
  14115.               className: 'icon-tooltip'.concat(this.state.isVisible ? ' active' : ''),
  14116.               onMouseOver: this.hoverTooltip,
  14117.               onClick: this.clickTooltip,
  14118.               'data-for': e,
  14119.               'data-tip': !0,
  14120.               ref: this.icon
  14121.             }), this.state.isVisible && C.a.createElement('div', {
  14122.               className: 'tooltip-wrapper text-gray text-small',
  14123.               style: {
  14124.                 width: this.state.width
  14125.               }
  14126.             }, C.a.createElement('div', {
  14127.               className: 'tooltip-content'
  14128.             }, this.props.content)))
  14129.           }
  14130.         }
  14131.       ]) && Td(e.prototype, t),
  14132.       n && Td(e, n),
  14133.       r
  14134.     }();
  14135.     Ud(ut, 'propTypes', {
  14136.       content: b.a.node.isRequired,
  14137.       additionalClass: b.a.string,
  14138.       children: b.a.node,
  14139.       clickToggle: b.a.bool,
  14140.       direction: b.a.oneOf(['top',
  14141.       'top-right',
  14142.       'top-left',
  14143.       'left',
  14144.       'right',
  14145.       'bottom',
  14146.       'bottom-right',
  14147.       'bottom-left']),
  14148.       onShow: b.a.func,
  14149.       tooltipKey: b.a.string
  14150.     }),
  14151.     Ud(ut, 'defaultProps', {
  14152.       clickToggle: !1,
  14153.       direction: 'bottom-right',
  14154.       additionalClass: ''
  14155.     });
  14156.     var Md = ut;
  14157.     function Bd(e) {
  14158.       return (Bd = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  14159.         return typeof e
  14160.       }
  14161.        : function (e) {
  14162.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  14163.       }) (e)
  14164.     }
  14165.     function zd(e, t) {
  14166.       for (var n = 0; n < t.length; n++) {
  14167.         var a = t[n];
  14168.         a.enumerable = a.enumerable || !1,
  14169.         a.configurable = !0,
  14170.         'value' in a && (a.writable = !0),
  14171.         Object.defineProperty(e, a.key, a)
  14172.       }
  14173.     }
  14174.     function Hd(e, t) {
  14175.       return (Hd = Object.setPrototypeOf || function (e, t) {
  14176.         return e.__proto__ = t,
  14177.         e
  14178.       }) (e, t)
  14179.     }
  14180.     function Gd(n) {
  14181.       var a = function () {
  14182.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  14183.         if (Reflect.construct.sham) return !1;
  14184.         if ('function' == typeof Proxy) return !0;
  14185.         try {
  14186.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  14187.           ], function () {
  14188.           })),
  14189.           !0
  14190.         } catch (e) {
  14191.           return !1
  14192.         }
  14193.       }();
  14194.       return function () {
  14195.         var e,
  14196.         t = Wd(n);
  14197.         return e = a ? (e = Wd(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  14198.         t = this,
  14199.         !(e = e) || 'object' !== Bd(e) && 'function' != typeof e ? Vd(t) : e
  14200.       }
  14201.     }
  14202.     function Vd(e) {
  14203.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  14204.       return e
  14205.     }
  14206.     function Wd(e) {
  14207.       return (Wd = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  14208.         return e.__proto__ || Object.getPrototypeOf(e)
  14209.       }) (e)
  14210.     }
  14211.     function Yd(e, t, n) {
  14212.       return t in e ? Object.defineProperty(e, t, {
  14213.         value: n,
  14214.         enumerable: !0,
  14215.         configurable: !0,
  14216.         writable: !0
  14217.       }) : e[t] = n,
  14218.       e
  14219.     }
  14220.     Sn = function () {
  14221.       !function (e, t) {
  14222.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  14223.         e.prototype = Object.create(t && t.prototype, {
  14224.           constructor: {
  14225.             value: e,
  14226.             writable: !0,
  14227.             configurable: !0
  14228.           }
  14229.         }),
  14230.         t && Hd(e, t)
  14231.       }(o, A);
  14232.       var e,
  14233.       t,
  14234.       n,
  14235.       r = Gd(o);
  14236.       function o() {
  14237.         var e;
  14238.         !function (e, t) {
  14239.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  14240.         }(this, o);
  14241.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  14242.         return Yd(Vd(e = r.call.apply(r, [
  14243.           this
  14244.         ].concat(n))), 'getFormattedRows', function () {
  14245.           return null === e.props.rows || 0 === e.props.rows.length ? [
  14246.           ] : je.a.map(e.props.rows, e.formatRow, Vd(e))
  14247.         }),
  14248.         Yd(Vd(e), 'getColumnsConfig', function () {
  14249.           return [e.props.dateColumnConfig].concat(e.props.columnsConfig)
  14250.         }),
  14251.         Yd(Vd(e), 'formatRow', function (n) {
  14252.           return je.a.map(e.getColumnsConfig(), function (e) {
  14253.             var t = n[e.key] || 0;
  14254.             return e.formatter && (t = e.formatter(t)),
  14255.             t = e.prefix ? e.prefix + t : t
  14256.           })
  14257.         }),
  14258.         e
  14259.       }
  14260.       return e = o,
  14261.       (t = [
  14262.         {
  14263.           key: 'render',
  14264.           value: function () {
  14265.             var e = je.a.map(this.getColumnsConfig(), function (e) {
  14266.               return C.a.createElement('th', {
  14267.                 key: e.key
  14268.               }, e.name, ' ', e.description ? C.a.createElement(Md, {
  14269.                 tooltipKey: e.key,
  14270.                 content: e.description,
  14271.                 direction: 'top'
  14272.               }) : null)
  14273.             }),
  14274.             t = je.a.map(this.getFormattedRows(this.props.rows), function (e) {
  14275.               return C.a.createElement(o.Row, {
  14276.                 row: e,
  14277.                 key: e[0]
  14278.               })
  14279.             });
  14280.             return this.props.reverse && t.reverse(),
  14281.             C.a.createElement('table', {
  14282.               className: 'zebra-striped spacing-top'
  14283.             }, C.a.createElement('thead', null, C.a.createElement('tr', null, e)), C.a.createElement('tbody', null, t))
  14284.           }
  14285.         }
  14286.       ]) && zd(e.prototype, t),
  14287.       n && zd(e, n),
  14288.       o
  14289.     }();
  14290.     Yd(Sn, 'defaultProps', {
  14291.       reverse: !1
  14292.     }),
  14293.     Yd(Sn, 'propTypes', {
  14294.       rows: b.a.array.isRequired,
  14295.       columnsConfig: b.a.array.isRequired,
  14296.       dateColumnConfig: b.a.object.isRequired,
  14297.       reverse: b.a.bool
  14298.     }),
  14299.     Sn.Row = function (e) {
  14300.       return C.a.createElement('tr', null, e.row.map(function (e, t) {
  14301.         return C.a.createElement('td', {
  14302.           key: t
  14303.         }, e)
  14304.       }))
  14305.     },
  14306.     Sn.Row.displayName = 'AnalyticsTableRow',
  14307.     Sn.Row.propTypes = {
  14308.       row: b.a.array.isRequired
  14309.     };
  14310.     var Qd = Sn;
  14311.     function Kd(e) {
  14312.       return (Kd = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  14313.         return typeof e
  14314.       }
  14315.        : function (e) {
  14316.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  14317.       }) (e)
  14318.     }
  14319.     function Jd(e, t) {
  14320.       for (var n = 0; n < t.length; n++) {
  14321.         var a = t[n];
  14322.         a.enumerable = a.enumerable || !1,
  14323.         a.configurable = !0,
  14324.         'value' in a && (a.writable = !0),
  14325.         Object.defineProperty(e, a.key, a)
  14326.       }
  14327.     }
  14328.     function $d(e, t) {
  14329.       return ($d = Object.setPrototypeOf || function (e, t) {
  14330.         return e.__proto__ = t,
  14331.         e
  14332.       }) (e, t)
  14333.     }
  14334.     function Zd(n) {
  14335.       var a = function () {
  14336.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  14337.         if (Reflect.construct.sham) return !1;
  14338.         if ('function' == typeof Proxy) return !0;
  14339.         try {
  14340.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  14341.           ], function () {
  14342.           })),
  14343.           !0
  14344.         } catch (e) {
  14345.           return !1
  14346.         }
  14347.       }();
  14348.       return function () {
  14349.         var e,
  14350.         t = em(n);
  14351.         return e = a ? (e = em(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  14352.         t = this,
  14353.         !(e = e) || 'object' !== Kd(e) && 'function' != typeof e ? Xd(t) : e
  14354.       }
  14355.     }
  14356.     function Xd(e) {
  14357.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  14358.       return e
  14359.     }
  14360.     function em(e) {
  14361.       return (em = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  14362.         return e.__proto__ || Object.getPrototypeOf(e)
  14363.       }) (e)
  14364.     }
  14365.     function tm(e, t, n) {
  14366.       return t in e ? Object.defineProperty(e, t, {
  14367.         value: n,
  14368.         enumerable: !0,
  14369.         configurable: !0,
  14370.         writable: !0
  14371.       }) : e[t] = n,
  14372.       e
  14373.     }
  14374.     var nm = 'HH:mm:ss MMMM Do, YYYY',
  14375.     am = function () {
  14376.       !function (e, t) {
  14377.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  14378.         e.prototype = Object.create(t && t.prototype, {
  14379.           constructor: {
  14380.             value: e,
  14381.             writable: !0,
  14382.             configurable: !0
  14383.           }
  14384.         }),
  14385.         t && $d(e, t)
  14386.       }(r, A);
  14387.       var e,
  14388.       t,
  14389.       n,
  14390.       a = Zd(r);
  14391.       function r(e) {
  14392.         var t;
  14393.         return function (e, t) {
  14394.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  14395.         }(this, r),
  14396.         tm(Xd(t = a.call(this, e)), 'getCurrentTime', function () {
  14397.           return ct.a.utc().format(nm)
  14398.         }),
  14399.         tm(Xd(t), 'tick', function () {
  14400.           t.setState({
  14401.             time: t.getCurrentTime()
  14402.           })
  14403.         }),
  14404.         t.state = {
  14405.           time: t.getCurrentTime()
  14406.         },
  14407.         t
  14408.       }
  14409.       return e = r,
  14410.       (t = [
  14411.         {
  14412.           key: 'componentDidMount',
  14413.           value: function () {
  14414.             this.timerId = setInterval(this.tick, 1000)
  14415.           }
  14416.         },
  14417.         {
  14418.           key: 'componentWillUnmount',
  14419.           value: function () {
  14420.             clearInterval(this.timerId)
  14421.           }
  14422.         },
  14423.         {
  14424.           key: 'render',
  14425.           value: function () {
  14426.             return C.a.createElement('time', null, this.state.time)
  14427.           }
  14428.         }
  14429.       ]) && Jd(e.prototype, t),
  14430.       n && Jd(e, n),
  14431.       r
  14432.     }();
  14433.     function rm(e) {
  14434.       return (rm = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  14435.         return typeof e
  14436.       }
  14437.        : function (e) {
  14438.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  14439.       }) (e)
  14440.     }
  14441.     function om() {
  14442.       return (om = Object.assign || function (e) {
  14443.         for (var t = 1; t < arguments.length; t++) {
  14444.           var n,
  14445.           a = arguments[t];
  14446.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  14447.         }
  14448.         return e
  14449.       }).apply(this, arguments)
  14450.     }
  14451.     function im(e, t) {
  14452.       for (var n = 0; n < t.length; n++) {
  14453.         var a = t[n];
  14454.         a.enumerable = a.enumerable || !1,
  14455.         a.configurable = !0,
  14456.         'value' in a && (a.writable = !0),
  14457.         Object.defineProperty(e, a.key, a)
  14458.       }
  14459.     }
  14460.     function sm(e, t) {
  14461.       return (sm = Object.setPrototypeOf || function (e, t) {
  14462.         return e.__proto__ = t,
  14463.         e
  14464.       }) (e, t)
  14465.     }
  14466.     function lm(n) {
  14467.       var a = function () {
  14468.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  14469.         if (Reflect.construct.sham) return !1;
  14470.         if ('function' == typeof Proxy) return !0;
  14471.         try {
  14472.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  14473.           ], function () {
  14474.           })),
  14475.           !0
  14476.         } catch (e) {
  14477.           return !1
  14478.         }
  14479.       }();
  14480.       return function () {
  14481.         var e,
  14482.         t = um(n);
  14483.         return e = a ? (e = um(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  14484.         t = this,
  14485.         !(e = e) || 'object' !== rm(e) && 'function' != typeof e ? cm(t) : e
  14486.       }
  14487.     }
  14488.     function cm(e) {
  14489.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  14490.       return e
  14491.     }
  14492.     function um(e) {
  14493.       return (um = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  14494.         return e.__proto__ || Object.getPrototypeOf(e)
  14495.       }) (e)
  14496.     }
  14497.     function pm(e, t, n) {
  14498.       return t in e ? Object.defineProperty(e, t, {
  14499.         value: n,
  14500.         enumerable: !0,
  14501.         configurable: !0,
  14502.         writable: !0
  14503.       }) : e[t] = n,
  14504.       e
  14505.     }
  14506.     tm(am, 'displayName', 'TimeDisplay');
  14507.     var wn = function (e) {
  14508.       return Dp.addThousandsSeparator(Dp.roundMoney(e).toFixed(2))
  14509.     },
  14510.     dm = [
  14511.       {
  14512.         key: 'earnings',
  14513.         name: 'Ad Revenue',
  14514.         description: 'Amount you earned from Reveal advertising',
  14515.         prefix: '$',
  14516.         suffix: ' earned',
  14517.         formatter: wn
  14518.       },
  14519.       {
  14520.         key: 'viewable_impressions',
  14521.         name: 'Viewable Impressions',
  14522.         description: 'How often users scroll down below the fold and see Reveal ads',
  14523.         suffix: ' viewable impressions',
  14524.         formatter: Dp.addThousandsSeparator,
  14525.         startVisible: !1
  14526.       },
  14527.       {
  14528.         key: 'viewability_percent',
  14529.         name: 'Viewability Percent',
  14530.         description: 'Percentage of loads which resulted in a viewable impression',
  14531.         suffix: '% viewability',
  14532.         formatter: function (e) {
  14533.           return e.toFixed(2)
  14534.         },
  14535.         startVisible: !1
  14536.       },
  14537.       {
  14538.         key: 'rpmv',
  14539.         name: 'RPMv',
  14540.         description: 'Revenue earned per 1,000 viewable impressions',
  14541.         prefix: '$',
  14542.         suffix: ' RPMv',
  14543.         formatter: wn,
  14544.         startVisible: !1
  14545.       }
  14546.     ],
  14547.     oo = function () {
  14548.       !function (e, t) {
  14549.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  14550.         e.prototype = Object.create(t && t.prototype, {
  14551.           constructor: {
  14552.             value: e,
  14553.             writable: !0,
  14554.             configurable: !0
  14555.           }
  14556.         }),
  14557.         t && sm(e, t)
  14558.       }(r, A);
  14559.       var e,
  14560.       t,
  14561.       n,
  14562.       a = lm(r);
  14563.       function r() {
  14564.         var i;
  14565.         !function (e, t) {
  14566.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  14567.         }(this, r);
  14568.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  14569.         return pm(cm(i = a.call.apply(a, [
  14570.           this
  14571.         ].concat(t))), 'state', {
  14572.           startDate: ct() (i.props.maxDate).subtract(1, 'month').startOf('day'),
  14573.           endDate: i.props.maxDate,
  14574.           loading: !0,
  14575.           group: 'day',
  14576.           rows: null,
  14577.           errorCode: null
  14578.         }),
  14579.         pm(cm(i), 'getExportUrl', function () {
  14580.           var e = i.state.startDate.format('YYYY-MM-DDZ'),
  14581.           t = i.state.endDate.format('YYYY-MM-DDZ'),
  14582.           n = pt.a.keys.api,
  14583.           a = i.props.selection,
  14584.           r = a.type === ft.organization,
  14585.           o = ''.concat(r ? 'organizations' : 'forums', '/discovery/reports/revealStats.csv'),
  14586.           a = r ? 'organization='.concat(a.organization.id) : 'forum='.concat(a.forum.shortname);
  14587.           return ''.concat(io.a.getURL(o), '?api_key=').concat(n, '&').concat(a, '&start=').concat(e, '&end=').concat(t)
  14588.         }),
  14589.         pm(cm(i), 'fetchData', function (e, t) {
  14590.           return i.setState({
  14591.             loading: !0
  14592.           }),
  14593.           i.metricsReport.fetch({
  14594.             start: e,
  14595.             end: t
  14596.           }).done(je.a.bind(i.onFetch, cm(i), e, t))
  14597.         }),
  14598.         pm(cm(i), 'formatRows', function (e) {
  14599.           return je.a.map(e, function (t) {
  14600.             return je.a.each(['earnings',
  14601.             'viewability_percent',
  14602.             'viewable_impressions',
  14603.             'rpmv'], function (e) {
  14604.               t[e] = t[e] || 0
  14605.             }),
  14606.             t
  14607.           })
  14608.         }),
  14609.         pm(cm(i), 'onFetch', function (e, t) {
  14610.           var n = i.getModelsForGroup(i.state.group, e, t);
  14611.           i.setState({
  14612.             startDate: e,
  14613.             endDate: t,
  14614.             loading: !1,
  14615.             rows: i.formatRows(je.a.invoke(n, 'toJSON')),
  14616.             errorCode: null
  14617.           })
  14618.         }),
  14619.         pm(cm(i), 'onError', function (e) {
  14620.           i.setState({
  14621.             errorCode: e,
  14622.             loading: !1
  14623.           })
  14624.         }),
  14625.         pm(cm(i), 'onGroupChange', function (e) {
  14626.           var t = i.getModelsForGroup(e, i.state.startDate, i.state.endDate);
  14627.           i.setState({
  14628.             rows: i.formatRows(je.a.invoke(t, 'toJSON')),
  14629.             group: e
  14630.           })
  14631.         }),
  14632.         pm(cm(i), 'onDateChange', function (e, t) {
  14633.           i.fetchData(e, t)
  14634.         }),
  14635.         pm(cm(i), 'getModelsForGroup', function (e, t, n) {
  14636.           return 'month' === e ? i.metricsReport.byMonth.models : je.a.filter(i.metricsReport.byDay.models, function (e) {
  14637.             return t <= e.get('date_utc') && e.get('date_utc') <= n
  14638.           }, cm(i))
  14639.         }),
  14640.         pm(cm(i), 'getCardContent', function () {
  14641.           var e,
  14642.           t = [
  14643.           ];
  14644.           return i.state.errorCode ? t.push(C.a.createElement(dd, {
  14645.             isPermissionError: 22 === i.state.errorCode,
  14646.             key: 'error'
  14647.           })) : i.state.rows && (e = je.a.reduce(i.state.rows, function (e, t) {
  14648.             return e + t.earnings
  14649.           }, 0), t.push(0 < e ? C.a.createElement(Dd, {
  14650.             rows: i.state.rows,
  14651.             dateColumnConfig: i.dateColumnConfig,
  14652.             key: 'graph'
  14653.           }) : C.a.createElement(_d, {
  14654.             maxDate: i.props.maxDate,
  14655.             onDateChange: i.onDateChange,
  14656.             key: 'alert'
  14657.           }), C.a.createElement(Qd, om({
  14658.           }, i.state, {
  14659.             reverse: !0,
  14660.             columnsConfig: dm,
  14661.             dateColumnConfig: i.dateColumnConfig,
  14662.             key: 'table'
  14663.           })), C.a.createElement(r.Footer, {
  14664.             key: 'footer'
  14665.           }))),
  14666.           i.state.loading && t.push(C.a.createElement(Ji, {
  14667.             key: 'loading'
  14668.           })),
  14669.           t
  14670.         }),
  14671.         i
  14672.       }
  14673.       return e = r,
  14674.       (t = [
  14675.         {
  14676.           key: 'componentDidMount',
  14677.           value: function () {
  14678.             this.metricsReport = new Mp,
  14679.             this.dateColumnConfig = {
  14680.               key: 'date_utc',
  14681.               name: 'Date (UTC)',
  14682.               formatter: je.a.bind(function (e) {
  14683.                 return 'day' === this.state.group ? ct.a.utc(e).format('MMM Do YYYY') : ct.a.utc(e).format('MMM YYYY')
  14684.               }, this)
  14685.             },
  14686.             this.metricsReport.on('error', this.onError, this),
  14687.             this.fetchData(this.state.startDate, this.state.endDate)
  14688.           }
  14689.         },
  14690.         {
  14691.           key: 'render',
  14692.           value: function () {
  14693.             var e = this.props.selection,
  14694.             t = e.organization && e.organization.activeGuarantee;
  14695.             return C.a.createElement(Bp, {
  14696.               className: 'revenue-analytics',
  14697.               leftTitle: 'Your '.concat(e.type === ft.organization ? 'Organization\'s' : 'Site\'s', ' Revenue'),
  14698.               rightTitle: C.a.createElement('div', {
  14699.                 className: 'card__header-right'
  14700.               }, C.a.createElement('a', {
  14701.                 href: this.getExportUrl(),
  14702.                 target: '_blank',
  14703.                 rel: 'noopener noreferrer',
  14704.                 className: 'card__header-content-item -button -right text-gray-dark text-semibold'
  14705.               }, C.a.createElement('span', {
  14706.                 className: 'icon-download text-large spacing-right text-gray'
  14707.               }), 'Download CSV'), C.a.createElement(Zp, {
  14708.                 dateWrapperClass: 'card__header-datepicker',
  14709.                 minDate: this.props.minDate,
  14710.                 maxDate: this.props.maxDate,
  14711.                 startDate: this.state.startDate,
  14712.                 endDate: this.state.endDate,
  14713.                 group: this.state.group,
  14714.                 onDateChange: this.onDateChange,
  14715.                 onGroupChange: this.onGroupChange
  14716.               }))
  14717.             }, t ? C.a.createElement(pd, {
  14718.               secondaryMessageType: 'revenue',
  14719.               startDate: ct() (t.start),
  14720.               endDate: ct() (t.end),
  14721.               amount: t.amount
  14722.             }) : null, this.getCardContent())
  14723.           }
  14724.         }
  14725.       ]) && im(e.prototype, t),
  14726.       n && im(e, n),
  14727.       r
  14728.     }();
  14729.     pm(oo, 'propTypes', {
  14730.       minDate: s.moment,
  14731.       maxDate: s.moment,
  14732.       selection: ht
  14733.     }),
  14734.     pm(oo, 'defaultProps', (go = ct.a.utc().startOf('day'), {
  14735.       minDate: ct() (go).subtract(1, 'year').add(1, 'day').startOf('day'),
  14736.       maxDate: go
  14737.     })),
  14738.     oo.Footer = function () {
  14739.       return C.a.createElement('footer', null, C.a.createElement('aside', null, C.a.createElement('em', null, 'All dates in UTC. Current UTC time is ', C.a.createElement(am, null), '.')), C.a.createElement('br', null), C.a.createElement('aside', null, C.a.createElement('em', null, 'All amounts above are estimates that will be finalized during data verification the first week of the following month.')), C.a.createElement('br', null), C.a.createElement('aside', null, C.a.createElement('a', {
  14740.         href: 'https://help.disqus.com/customer/portal/articles/2080463',
  14741.         target: '_blank',
  14742.         rel: 'noopener noreferrer'
  14743.       }, 'Learn more about Reveal earnings reports, payment policies, and settings.')))
  14744.     },
  14745.     oo.Footer.displayName = 'RevenueTabFooter';
  14746.     var mm = oo,
  14747.     fm = {
  14748.       product: Ur.SAAS_PRODUCT_POLLS,
  14749.       header: 'Maximize Audience Engagement with Polls',
  14750.       subheader: 'With Disqus Polls for publishers, you can build interactive polls and embed them directly onto your site in minutes, allowing you to boost engagement and create a more fun and enjoyable experience for your audiences.',
  14751.       tagline: 'Fits perfectly alongside Disqus Comments to deliver the full on-site engagement experience to your audiences.'
  14752.     },
  14753.     hm = [
  14754.       {
  14755.         header: 'Audience engagement has never been this fun',
  14756.         body: 'Create dynamic on-site Polls that boost time-on-site and deliver fun experiences to your audiences.'
  14757.       },
  14758.       {
  14759.         header: 'Build polls in minutes that keep your audiences engaged for hours.',
  14760.         body: 'Poll setup is a blast. Deploy Polls anywhere on your page, anywhere across your site with a click of a button. Optimized for all browsers and devices.'
  14761.       },
  14762.       {
  14763.         header: 'Get to know your audiences better.',
  14764.         body: 'Tap into audience sentiment and leverage Polls-driven insights to learn which topics and discussions your audiences are most excited about.'
  14765.       }
  14766.     ],
  14767.     gm = {
  14768.       product: Ur.SAAS_PRODUCT_COMMENTS,
  14769.       header: 'Engage and grow your audiences with word-class Disqus Comments.',
  14770.       subheader: 'Add Disqus Comments to your site and take your audience engagement to the next level.',
  14771.       tagline: 'More publishers trust Disqus with their audience engagement than any other comment provider'
  14772.     },
  14773.     ym = [
  14774.       {
  14775.         header: 'Powerful engagement features',
  14776.         body: C.a.createElement(C.a.Fragment, null, 'Build a highly-interactive community with features like ', C.a.createElement('span', {
  14777.           className: 'text-bold'
  14778.         }, 'Reactions'), ', ', C.a.createElement('span', {
  14779.           className: 'text-bold'
  14780.         }, 'Star Ratings'), ', and ', C.a.createElement('span', {
  14781.           className: 'text-bold'
  14782.         }, 'Badges'), '.')
  14783.       },
  14784.       {
  14785.         header: 'AI-powered moderation tools',
  14786.         body: 'Our moderation & safety tools keep the conversation as high-quality and civil as possible—letting you banish spam and toxicity without the headache of manual moderation.'
  14787.       },
  14788.       {
  14789.         header: 'Rev up your on-site revenue',
  14790.         body: 'Disqus Comments are proven to boost site traffic, time-on-site, and return visitors. Keep your community on-site where it belongs.'
  14791.       }
  14792.     ];
  14793.     function bm(e) {
  14794.       return (bm = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  14795.         return typeof e
  14796.       }
  14797.        : function (e) {
  14798.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  14799.       }) (e)
  14800.     }
  14801.     function vm(e, t) {
  14802.       for (var n = 0; n < t.length; n++) {
  14803.         var a = t[n];
  14804.         a.enumerable = a.enumerable || !1,
  14805.         a.configurable = !0,
  14806.         'value' in a && (a.writable = !0),
  14807.         Object.defineProperty(e, a.key, a)
  14808.       }
  14809.     }
  14810.     function _m(e, t) {
  14811.       return (_m = Object.setPrototypeOf || function (e, t) {
  14812.         return e.__proto__ = t,
  14813.         e
  14814.       }) (e, t)
  14815.     }
  14816.     function Em(n) {
  14817.       var a = function () {
  14818.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  14819.         if (Reflect.construct.sham) return !1;
  14820.         if ('function' == typeof Proxy) return !0;
  14821.         try {
  14822.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  14823.           ], function () {
  14824.           })),
  14825.           !0
  14826.         } catch (e) {
  14827.           return !1
  14828.         }
  14829.       }();
  14830.       return function () {
  14831.         var e,
  14832.         t = Sm(n);
  14833.         return e = a ? (e = Sm(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  14834.         t = this,
  14835.         !(e = e) || 'object' !== bm(e) && 'function' != typeof e ? Om(t) : e
  14836.       }
  14837.     }
  14838.     function Om(e) {
  14839.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  14840.       return e
  14841.     }
  14842.     function Sm(e) {
  14843.       return (Sm = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  14844.         return e.__proto__ || Object.getPrototypeOf(e)
  14845.       }) (e)
  14846.     }
  14847.     function wm(e, t, n) {
  14848.       return t in e ? Object.defineProperty(e, t, {
  14849.         value: n,
  14850.         enumerable: !0,
  14851.         configurable: !0,
  14852.         writable: !0
  14853.       }) : e[t] = n,
  14854.       e
  14855.     }
  14856.     var Pm = '//c.disquscdn.com/next/current/publisher-admin/assets/img/internal-landing',
  14857.     km = function (e) {
  14858.       var t = e.product,
  14859.       n = e.header,
  14860.       a = e.subheader,
  14861.       r = e.tagline,
  14862.       e = e.organization;
  14863.       return C.a.createElement('div', {
  14864.         className: 'internal-hero__container --'.concat(t)
  14865.       }, C.a.createElement('div', {
  14866.         className: 'internal-hero__content-container align'
  14867.       }, C.a.createElement('div', {
  14868.         className: 'internal-hero__content align align--column'
  14869.       }, C.a.createElement('h3', {
  14870.         className: 'product'
  14871.       }, t), C.a.createElement('h1', {
  14872.         className: 'header'
  14873.       }, n), C.a.createElement('p', {
  14874.         className: 'subheader'
  14875.       }, a), C.a.createElement(Us, {
  14876.         path: '/settings/subscription/'.concat(t === Ur.SAAS_PRODUCT_POLLS ? '?product=polls' : ''),
  14877.         orgId: e.id,
  14878.         orgSlug: e.slug,
  14879.         linkClassName: 'cta '.concat(t === Ur.SAAS_PRODUCT_COMMENTS ? 'orange' : 'blue')
  14880.       }, 'Get Started')), C.a.createElement('img', {
  14881.         className: 'internal-hero-img',
  14882.         src: ''.concat(Pm, '/').concat(t, '-hero.png')
  14883.       })), C.a.createElement('p', {
  14884.         className: 'tagline'
  14885.       }, r))
  14886.     };
  14887.     km.propTypes = {
  14888.       product: b.a.string.isRequired,
  14889.       header: b.a.string.isRequired,
  14890.       subheader: b.a.string.isRequired,
  14891.       tagline: b.a.string.isRequired,
  14892.       organization: b.a.shape({
  14893.         id: b.a.number.isRequired,
  14894.         slug: b.a.string.isRequired
  14895.       })
  14896.     };
  14897.     var Nm = function (e) {
  14898.       var t = e.product,
  14899.       n = e.header,
  14900.       a = e.body,
  14901.       e = n.split(' ') [0].toLowerCase();
  14902.       return C.a.createElement('div', {
  14903.         className: 'internal-content-panel__container align --'.concat(t, ' --').concat(e)
  14904.       }, C.a.createElement('img', {
  14905.         className: 'internal-content-img',
  14906.         src: ''.concat(Pm, '/').concat(t, '-').concat(e, '.png')
  14907.       }), C.a.createElement('div', {
  14908.         className: 'internal-content-panel__content align align--column'
  14909.       }, C.a.createElement('h1', {
  14910.         className: 'header'
  14911.       }, n), C.a.createElement('p', {
  14912.         className: 'body'
  14913.       }, a)))
  14914.     };
  14915.     Nm.propTypes = {
  14916.       product: b.a.string.isRequired,
  14917.       header: b.a.string.isRequired,
  14918.       body: b.a.node.isRequired
  14919.     };
  14920.     bo = function () {
  14921.       !function (e, t) {
  14922.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  14923.         e.prototype = Object.create(t && t.prototype, {
  14924.           constructor: {
  14925.             value: e,
  14926.             writable: !0,
  14927.             configurable: !0
  14928.           }
  14929.         }),
  14930.         t && _m(e, t)
  14931.       }(o, A);
  14932.       var e,
  14933.       t,
  14934.       n,
  14935.       r = Em(o);
  14936.       function o() {
  14937.         var n;
  14938.         !function (e, t) {
  14939.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  14940.         }(this, o);
  14941.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  14942.         return wm(Om(n = r.call.apply(r, [
  14943.           this
  14944.         ].concat(t))), 'hero', function () {
  14945.           var e = n.props.isPolls ? fm : gm;
  14946.           return C.a.createElement(km, {
  14947.             product: e.product,
  14948.             header: e.header,
  14949.             subheader: e.subheader,
  14950.             tagline: e.tagline,
  14951.             organization: n.props.organization
  14952.           })
  14953.         }),
  14954.         wm(Om(n), 'contentPanels', function () {
  14955.           return (n.props.isPolls ? hm : ym).map(function (e, t) {
  14956.             return C.a.createElement(Nm, {
  14957.               key: t,
  14958.               product: n.props.isPolls ? Ur.SAAS_PRODUCT_POLLS : Ur.SAAS_PRODUCT_COMMENTS,
  14959.               header: e.header,
  14960.               body: e.body
  14961.             })
  14962.           })
  14963.         }),
  14964.         n
  14965.       }
  14966.       return e = o,
  14967.       (t = [
  14968.         {
  14969.           key: 'render',
  14970.           value: function () {
  14971.             return C.a.createElement('div', {
  14972.               className: 'layout__content --internal-landing'
  14973.             }, C.a.createElement('div', {
  14974.               className: 'polls__wrapper'
  14975.             }, C.a.createElement('div', {
  14976.               className: 'content__wrap'
  14977.             }, this.hero(), this.contentPanels())))
  14978.           }
  14979.         }
  14980.       ]) && vm(e.prototype, t),
  14981.       n && vm(e, n),
  14982.       o
  14983.     }();
  14984.     wm(bo, 'displayName', 'InternalLanding'),
  14985.     wm(bo, 'propTypes', {
  14986.       isPolls: b.a.bool.isRequired,
  14987.       organization: b.a.shape({
  14988.         id: b.a.number.isRequired,
  14989.         slug: b.a.string.isRequired
  14990.       })
  14991.     });
  14992.     var Cm = bo;
  14993.     function Rm(e) {
  14994.       return (Rm = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  14995.         return typeof e
  14996.       }
  14997.        : function (e) {
  14998.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  14999.       }) (e)
  15000.     }
  15001.     function xm(e, t) {
  15002.       for (var n = 0; n < t.length; n++) {
  15003.         var a = t[n];
  15004.         a.enumerable = a.enumerable || !1,
  15005.         a.configurable = !0,
  15006.         'value' in a && (a.writable = !0),
  15007.         Object.defineProperty(e, a.key, a)
  15008.       }
  15009.     }
  15010.     function Am(e, t) {
  15011.       return (Am = Object.setPrototypeOf || function (e, t) {
  15012.         return e.__proto__ = t,
  15013.         e
  15014.       }) (e, t)
  15015.     }
  15016.     function Dm(n) {
  15017.       var a = function () {
  15018.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  15019.         if (Reflect.construct.sham) return !1;
  15020.         if ('function' == typeof Proxy) return !0;
  15021.         try {
  15022.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  15023.           ], function () {
  15024.           })),
  15025.           !0
  15026.         } catch (e) {
  15027.           return !1
  15028.         }
  15029.       }();
  15030.       return function () {
  15031.         var e,
  15032.         t = Tm(n);
  15033.         return e = a ? (e = Tm(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  15034.         t = this,
  15035.         !(e = e) || 'object' !== Rm(e) && 'function' != typeof e ? jm(t) : e
  15036.       }
  15037.     }
  15038.     function jm(e) {
  15039.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  15040.       return e
  15041.     }
  15042.     function Tm(e) {
  15043.       return (Tm = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  15044.         return e.__proto__ || Object.getPrototypeOf(e)
  15045.       }) (e)
  15046.     }
  15047.     function Im(e, t, n) {
  15048.       return t in e ? Object.defineProperty(e, t, {
  15049.         value: n,
  15050.         enumerable: !0,
  15051.         configurable: !0,
  15052.         writable: !0
  15053.       }) : e[t] = n,
  15054.       e
  15055.     }
  15056.     _o = function () {
  15057.       !function (e, t) {
  15058.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  15059.         e.prototype = Object.create(t && t.prototype, {
  15060.           constructor: {
  15061.             value: e,
  15062.             writable: !0,
  15063.             configurable: !0
  15064.           }
  15065.         }),
  15066.         t && Am(e, t)
  15067.       }(o, A);
  15068.       var e,
  15069.       t,
  15070.       n,
  15071.       r = Dm(o);
  15072.       function o() {
  15073.         var t;
  15074.         !function (e, t) {
  15075.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  15076.         }(this, o);
  15077.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  15078.         return Im(jm(t = r.call.apply(r, [
  15079.           this
  15080.         ].concat(n))), 'state', {
  15081.           popularComments: [
  15082.           ],
  15083.           showNumComments: 10,
  15084.           errorCode: null,
  15085.           isFetching: !0
  15086.         }),
  15087.         Im(jm(t), 'isAdvancedAnalyticsSupported', function () {
  15088.           if (!t.props.selection.organization) return !1;
  15089.           var e = t.props.saasFeatures[t.props.selection.organization.id];
  15090.           return e && e.advancedAnalytics
  15091.         }),
  15092.         Im(jm(t), 'fetchData', function () {
  15093.           t.setState({
  15094.             isFetching: !0
  15095.           });
  15096.           var e = br.orgId,
  15097.           e = je.a.extend(e ? {
  15098.             organization: e
  15099.           }
  15100.            : {
  15101.             forum: br.shortname
  15102.           }, e = {
  15103.             related: 'thread'
  15104.           });
  15105.           io.a.call('posts/listPopular', {
  15106.             data: e,
  15107.             success: t.onFetch,
  15108.             error: t.onError
  15109.           })
  15110.         }),
  15111.         Im(jm(t), 'onFetch', function (e) {
  15112.           t.setState({
  15113.             isFetching: !1,
  15114.             popularComments: e.response
  15115.           })
  15116.         }),
  15117.         Im(jm(t), 'onError', function (e) {
  15118.           t.setState({
  15119.             isFetching: !1,
  15120.             errorCode: e
  15121.           })
  15122.         }),
  15123.         Im(jm(t), 'onClick', function () {
  15124.           t.setState({
  15125.             showNumComments: t.state.showNumComments + 10
  15126.           })
  15127.         }),
  15128.         Im(jm(t), 'hasComments', function () {
  15129.           return !t.state.errorCode && !t.state.isFetching && t.state.popularComments && t.state.popularComments.length
  15130.         }),
  15131.         Im(jm(t), 'noComments', function () {
  15132.           return !t.state.errorCode && !t.state.isFetching && je.a.isEmpty(t.state.popularComments)
  15133.         }),
  15134.         t
  15135.       }
  15136.       return e = o,
  15137.       (t = [
  15138.         {
  15139.           key: 'componentWillMount',
  15140.           value: function () {
  15141.             this.fetchData()
  15142.           }
  15143.         },
  15144.         {
  15145.           key: 'componentDidMount',
  15146.           value: function () {
  15147.             this.isAdvancedAnalyticsSupported() ? this.props.emitTrackingEvent({
  15148.               verb: 'view',
  15149.               object_type: 'page',
  15150.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  15151.             }) : this.props.history.push(ho.getRoute('/analytics/comments/'))
  15152.           }
  15153.         },
  15154.         {
  15155.           key: 'render',
  15156.           value: function () {
  15157.             if (!this.isAdvancedAnalyticsSupported()) return null;
  15158.             if (this.props.organization && this.props.organization.pollsOnly) return C.a.createElement(Cm, {
  15159.               isPolls: !1,
  15160.               organization: this.props.organization
  15161.             });
  15162.             var e,
  15163.             t = this.hasComments(),
  15164.             n = this.noComments();
  15165.             return t && (e = je.a.chain(this.state.popularComments).first(this.state.showNumComments).map(function (e) {
  15166.               return C.a.createElement(o.Comment, {
  15167.                 key: e.id,
  15168.                 comment: e
  15169.               })
  15170.             }).value()),
  15171.             C.a.createElement('div', {
  15172.               className: 'admin_content'
  15173.             }, C.a.createElement('header', {
  15174.               className: 'spacing-bottom align-min-tablet align--row-reverse align--between align--middle'
  15175.             }, C.a.createElement('strong', {
  15176.               className: 'text-small text-gray'
  15177.             }, 'Last 7 days'), C.a.createElement('h2', null, C.a.createElement('span', {
  15178.               className: 'spacing-right-small'
  15179.             }, 'Top Comments'), C.a.createElement(Md, {
  15180.               tooltipKey: 'comments',
  15181.               content: 'These are the comments from the last 7 days that have received the most positive voting ratios.',
  15182.               direction: 'top'
  15183.             }))), this.state.errorCode ? C.a.createElement(dd, {
  15184.               isPermissionError: 22 === this.state.errorCode
  15185.             }) : null, t ? C.a.createElement('div', {
  15186.               className: 'border-top'
  15187.             }, ' ', e, ' ') : null, n ? C.a.createElement(o.NoComments, null) : null, this.state.isFetching ? C.a.createElement(Ji, null) : null, this.state.showNumComments < this.state.popularComments.length ? C.a.createElement('div', {
  15188.               className: 'spacing-top'
  15189.             }, C.a.createElement('button', {
  15190.               className: 'button button-wide button-fill text-medium',
  15191.               onClick: this.onClick
  15192.             }, 'Load more top comments')) : null)
  15193.           }
  15194.         }
  15195.       ]) && xm(e.prototype, t),
  15196.       n && xm(e, n),
  15197.       o
  15198.     }();
  15199.     Im(_o, 'propTypes', {
  15200.       emitTrackingEvent: b.a.func.isRequired,
  15201.       history: b.a.shape({
  15202.         push: b.a.func.isRequired
  15203.       }).isRequired,
  15204.       selection: ht.isRequired,
  15205.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired
  15206.     }),
  15207.     _o.Comment = function (e) {
  15208.       var t = e.comment,
  15209.       e = C.a.createElement('span', {
  15210.         className: 'truncate-line'
  15211.       }, t.thread.clean_title);
  15212.       return C.a.createElement('div', {
  15213.         className: 'padding-top text-medium border-bottom'
  15214.       }, C.a.createElement('h2', null, t.thread.link ? C.a.createElement('a', {
  15215.         href: t.thread.link
  15216.       }, e) : e), C.a.createElement('div', {
  15217.         className: 'align spacing-top'
  15218.       }, C.a.createElement('div', {
  15219.         className: 'spacing-right'
  15220.       }, C.a.createElement('a', {
  15221.         href: t.author.profileUrl
  15222.       }, C.a.createElement('img', {
  15223.         className: 'border-radius-sm',
  15224.         src: t.author.avatar.small.cache
  15225.       }))), C.a.createElement('div', null, C.a.createElement('div', {
  15226.         className: 'text-small text-gray top-comment__header'
  15227.       }, C.a.createElement('strong', null, C.a.createElement('a', {
  15228.         href: t.author.profileUrl
  15229.       }, t.author.name)), ' · ', ct.a.utc(t.createdAt).fromNow(), ' · ', t.likes, ' upvotes · ', t.dislikes, ' downvotes'), C.a.createElement('p', {
  15230.         className: 'text-gray-dark top-comment__content'
  15231.       }, t.url ? C.a.createElement('a', {
  15232.         className: 'link-gray-dark',
  15233.         href: t.url
  15234.       }, jl.a.niceTruncate(t.raw_message, 210)) : jl.a.niceTruncate(t.raw_message, 210)))))
  15235.     },
  15236.     _o.Comment.displayName = 'TopCommentsTabComment',
  15237.     _o.Comment.propTypes = {
  15238.       comment: b.a.object.isRequired
  15239.     },
  15240.     _o.NoComments = function () {
  15241.       return C.a.createElement('div', {
  15242.         className: 'alert alert--warning-light spacing-bottom'
  15243.       }, C.a.createElement('div', {
  15244.         className: 'spacing-narrow'
  15245.       }, C.a.createElement('h2', {
  15246.         className: 'spacing-bottom-narrow'
  15247.       }, C.a.createElement('span', {
  15248.         className: 'icon__position spacing-right-small'
  15249.       }, C.a.createElement('img', {
  15250.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/info.png',
  15251.         width: '20'
  15252.       })), 'No top comments for the past week'), C.a.createElement('p', {
  15253.         className: 'text-medium'
  15254.       }, 'There hasn\'t been enough activity on your site in the past week to show the top comments.')))
  15255.     },
  15256.     _o.NoComments.displayName = 'TopCommentsTabNoComments';
  15257.     var qm = Object(u.connect) (function (e) {
  15258.       return {
  15259.         saasFeatures: e.saasFeatures,
  15260.         organization: e.selection.organization
  15261.       }
  15262.     }, {
  15263.       emitTrackingEvent: Xo({
  15264.         zone: 'analytics',
  15265.         section: 'top_comments'
  15266.       })
  15267.     }) (Fo() (_o)),
  15268.     To = function (e) {
  15269.       return C.a.createElement('div', {
  15270.         className: 'section-contained'
  15271.       }, e.auth.staff ? C.a.cloneElement(e.children) : C.a.createElement('div', null, 'You aren\'t allowed to access this page'))
  15272.     };
  15273.     To.displayName = 'InternalTools',
  15274.     To.propTypes = {
  15275.       auth: b.a.object,
  15276.       children: b.a.node.isRequired
  15277.     };
  15278.     var qo = To,
  15279.     Fm = n(94),
  15280.     Lm = ct() ('2007-10-30'),
  15281.     Um = ct.a.utc().startOf('day').add(1, 'days'),
  15282.     Lo = 'adsAnalyticsViewable',
  15283.     Mo = 'adsPositionBottomEnabled',
  15284.     ti = 'adsPositionInthreadEnabled',
  15285.     ai = 'adsPositionRecommendationsEnabled',
  15286.     di = 'adsPositionTopEnabled',
  15287.     Oi = 'adsProductDisplayEnabled',
  15288.     wi = 'adsProductVideoEnabled',
  15289.     Fi = 'adsSettingsLocked',
  15290.     Vi = 'adsSettingsViewable',
  15291.     Yi = 'update',
  15292.     Mm = {
  15293.       text: 'text',
  15294.       boolean: 'boolean',
  15295.       select: 'select',
  15296.       number: 'number',
  15297.       multiText: 'multiText',
  15298.       date: 'date'
  15299.     },
  15300.     cs = Fm.data.map(function (e) {
  15301.       return {
  15302.         id: e.attributes.code,
  15303.         name: e.attributes.name
  15304.       }
  15305.     }),
  15306.     Ss = [
  15307.       {
  15308.         id: '0',
  15309.         name: 'Not Reviewed'
  15310.       },
  15311.       {
  15312.         id: '1',
  15313.         name: 'Qualified'
  15314.       },
  15315.       {
  15316.         id: '2',
  15317.         name: 'Disqualified'
  15318.       }
  15319.     ],
  15320.     Ds = [
  15321.       {
  15322.         id: 1,
  15323.         name: 'Business'
  15324.       },
  15325.       {
  15326.         id: 2,
  15327.         name: 'Celebrity'
  15328.       },
  15329.       {
  15330.         id: 3,
  15331.         name: 'Culture'
  15332.       },
  15333.       {
  15334.         id: 4,
  15335.         name: 'Entertainment'
  15336.       },
  15337.       {
  15338.         id: 5,
  15339.         name: 'Games'
  15340.       },
  15341.       {
  15342.         id: 6,
  15343.         name: 'Living'
  15344.       },
  15345.       {
  15346.         id: 7,
  15347.         name: 'News'
  15348.       },
  15349.       {
  15350.         id: 8,
  15351.         name: 'Tech'
  15352.       },
  15353.       {
  15354.         id: 9,
  15355.         name: 'Style'
  15356.       },
  15357.       {
  15358.         id: 10,
  15359.         name: 'Sports'
  15360.       }
  15361.     ],
  15362.     Ts = [
  15363.       {
  15364.         id: '10',
  15365.         name: 'Safe/Sensitive'
  15366.       },
  15367.       {
  15368.         id: '20',
  15369.         name: 'Standard'
  15370.       },
  15371.       {
  15372.         id: '30',
  15373.         name: 'Optimal'
  15374.       },
  15375.       {
  15376.         id: '40',
  15377.         name: 'Unfiltered'
  15378.       }
  15379.     ],
  15380.     qs = [
  15381.       {
  15382.         id: '4',
  15383.         name: 'A - paying'
  15384.       },
  15385.       {
  15386.         id: '1',
  15387.         name: 'B - non-commercial'
  15388.       },
  15389.       {
  15390.         id: '3',
  15391.         name: 'C - policy-against-ads'
  15392.       },
  15393.       {
  15394.         id: '5',
  15395.         name: 'D - squeaky'
  15396.       },
  15397.       {
  15398.         id: '6',
  15399.         name: 'E - feature-instream-position'
  15400.       },
  15401.       {
  15402.         id: '14',
  15403.         name: 'F - feature-niche-demand'
  15404.       },
  15405.       {
  15406.         id: '15',
  15407.         name: 'G - feature-earnings'
  15408.       },
  15409.       {
  15410.         id: '2',
  15411.         name: 'H - channel-conflict'
  15412.       },
  15413.       {
  15414.         id: '8',
  15415.         name: 'I - data-value-risk'
  15416.       },
  15417.       {
  15418.         id: '9',
  15419.         name: 'J - brand-value-risk'
  15420.       },
  15421.       {
  15422.         id: '10',
  15423.         name: 'K - other-partner'
  15424.       }
  15425.     ],
  15426.     Ls = [
  15427.       {
  15428.         id: 'KILL',
  15429.         name: 'Delete'
  15430.       },
  15431.       {
  15432.         id: 'SPAM',
  15433.         name: 'Spam'
  15434.       }
  15435.     ],
  15436.     Qs = [
  15437.       {
  15438.         id: '1',
  15439.         name: 'Ads Optional'
  15440.       },
  15441.       {
  15442.         id: '2',
  15443.         name: 'Shadow Banning'
  15444.       },
  15445.       {
  15446.         id: '3',
  15447.         name: 'Advanced Analytics'
  15448.       },
  15449.       {
  15450.         id: '4',
  15451.         name: 'Priority Support'
  15452.       },
  15453.       {
  15454.         id: '5',
  15455.         name: 'Branding Optional'
  15456.       },
  15457.       {
  15458.         id: '6',
  15459.         name: 'Single Sign-On'
  15460.       },
  15461.       {
  15462.         id: '7',
  15463.         name: 'Admin Logging'
  15464.       },
  15465.       {
  15466.         id: '8',
  15467.         name: 'Unlimited API Access'
  15468.       },
  15469.       {
  15470.         id: '9',
  15471.         name: 'Higher Bad Words Limit'
  15472.       },
  15473.       {
  15474.         id: '10',
  15475.         name: 'Timeouts'
  15476.       },
  15477.       {
  15478.         id: '11',
  15479.         name: 'Direct Support'
  15480.       },
  15481.       {
  15482.         id: '12',
  15483.         name: 'Email Subscriptions'
  15484.       },
  15485.       {
  15486.         id: '13',
  15487.         name: 'All Moderation Rules'
  15488.       },
  15489.       {
  15490.         id: '14',
  15491.         name: 'Star Ratings'
  15492.       },
  15493.       {
  15494.         id: '15',
  15495.         name: 'Custom Reactions'
  15496.       },
  15497.       {
  15498.         id: '16',
  15499.         name: 'Social Share Optional'
  15500.       },
  15501.       {
  15502.         id: '17',
  15503.         name: 'Recommendations'
  15504.       },
  15505.       {
  15506.         id: '18',
  15507.         name: 'Custom Fonts'
  15508.       }
  15509.     ],
  15510.     Bm = {
  15511.       adverb: 'bulk',
  15512.       verb: 'update',
  15513.       service: 'incredible_bulk_service',
  15514.       product: 'internal_tools',
  15515.       zone: 'incredible_bulk'
  15516.     },
  15517.     zm = [
  15518.       {
  15519.         key: 'forum',
  15520.         value: 'forum',
  15521.         label: 'Forum'
  15522.       },
  15523.       {
  15524.         key: 'global',
  15525.         value: 'global',
  15526.         label: 'Global'
  15527.       },
  15528.       {
  15529.         key: 'organization',
  15530.         value: 'organization',
  15531.         label: 'Organizations'
  15532.       },
  15533.       {
  15534.         key: 'subscription',
  15535.         value: 'subscription',
  15536.         label: 'Subscriptions'
  15537.       }
  15538.     ],
  15539.     Hm = {
  15540.       organization: [
  15541.         {
  15542.           key: Yi,
  15543.           label: 'Update',
  15544.           endpoint: 'internal/organizations/update'
  15545.         },
  15546.         {
  15547.           key: 'saasSubscribe',
  15548.           label: 'Subscribe To Plan',
  15549.           endpoint: 'organizations/saas/subscribe'
  15550.         },
  15551.         {
  15552.           key: 'saasUnsubscribeComments',
  15553.           label: 'Unsubscribe Organization From Comments Plan (If Any)',
  15554.           endpoint: 'organizations/saas/unsubscribe',
  15555.           defaultData: {
  15556.             productName: Ur.SAAS_PRODUCT_COMMENTS
  15557.           }
  15558.         },
  15559.         {
  15560.           key: 'saasUnsubscribePolls',
  15561.           label: 'Unsubscribe Organization From Polls Plan (If Any)',
  15562.           endpoint: 'organizations/saas/unsubscribe',
  15563.           defaultData: {
  15564.             productName: Ur.SAAS_PRODUCT_POLLS
  15565.           }
  15566.         },
  15567.         {
  15568.           key: 'saasAssignFeature',
  15569.           label: 'Assign Feature To Organization',
  15570.           endpoint: 'internal/saas/organizations/addFeature'
  15571.         },
  15572.         {
  15573.           key: 'saasRemoveFeature',
  15574.           label: 'Remove Feature From Organization',
  15575.           endpoint: 'internal/saas/organizations/removeFeature'
  15576.         }
  15577.       ],
  15578.       forum: [
  15579.         {
  15580.           key: Yi,
  15581.           label: 'Update',
  15582.           endpoint: 'internal/forums/update',
  15583.           defaultData: {
  15584.             shouldError: 1
  15585.           }
  15586.         },
  15587.         {
  15588.           key: 'addModerator',
  15589.           label: 'Add Moderator',
  15590.           endpoint: 'forums/addModerator'
  15591.         },
  15592.         {
  15593.           key: 'createTrustedDomain',
  15594.           label: 'Create Trusted Domain',
  15595.           endpoint: 'forums/trustedDomain/create'
  15596.         },
  15597.         {
  15598.           key: 'killTrustedDomain',
  15599.           label: 'Remove Trusted Domain',
  15600.           endpoint: 'forums/trustedDomain/kill'
  15601.         },
  15602.         {
  15603.           key: 'blacklistsAdd',
  15604.           label: 'Add to Blacklist',
  15605.           endpoint: 'blacklists/add'
  15606.         },
  15607.         {
  15608.           key: 'blacklistsRemove',
  15609.           label: 'Remove from Blacklist',
  15610.           endpoint: 'blacklists/remove'
  15611.         }
  15612.       ],
  15613.       global: [
  15614.         {
  15615.           key: 'globalBlacklistAdd',
  15616.           label: 'Add to Global Blacklist',
  15617.           endpoint: 'blacklists/global/add'
  15618.         }
  15619.       ],
  15620.       subscription: [
  15621.         {
  15622.           key: 'saasUpdateSubscription',
  15623.           label: 'Update start/end dates for Subscription',
  15624.           endpoint: 'internal/saas/subscriptions/update'
  15625.         }
  15626.       ]
  15627.     },
  15628.     Gm = {
  15629.       organization: {
  15630.         update: [
  15631.           {
  15632.             id: 'adsExceptionReason',
  15633.             label: 'Ads Exception',
  15634.             description: 'Ads Exception Reason',
  15635.             placeholder: 'Select a reason',
  15636.             type: Mm.select,
  15637.             options: qs,
  15638.             value: '4'
  15639.           },
  15640.           {
  15641.             id: 'owner',
  15642.             label: 'Owner',
  15643.             description: 'Owner of the organization',
  15644.             placeholder: 'Enter a user ID, or `username:<USERNAME>`',
  15645.             type: Mm.text
  15646.           },
  15647.           {
  15648.             id: 'eligibleForEarnings',
  15649.             label: 'Earnings Eligible',
  15650.             description: 'eligible for earnings',
  15651.             placeholder: 'True or False',
  15652.             type: Mm.boolean,
  15653.             value: '1'
  15654.           },
  15655.           {
  15656.             id: 'saasPolicy',
  15657.             label: 'SAAS Policy',
  15658.             description: 'Does the SAAS policy introduced in Jan 2017 apply to this organization?',
  15659.             placeholder: 'True or False',
  15660.             type: Mm.boolean,
  15661.             value: '1'
  15662.           }
  15663.         ],
  15664.         saasSubscribe: [
  15665.           {
  15666.             id: 'plan',
  15667.             label: 'Plan',
  15668.             description: 'Plan id of the plan to subscribe the organization to (`plus`, `plus-free` etc)',
  15669.             placeholder: 'Enter the plan id',
  15670.             type: Mm.text
  15671.           }
  15672.         ],
  15673.         saasUnsubscribeComments: [
  15674.           {
  15675.             id: 'immediately-comments',
  15676.             key: 'immediately',
  15677.             label: 'Cancel Immediately',
  15678.             description: 'Should we cancel the subscription now, or at the end of the current period?',
  15679.             placeholder: 'True or False',
  15680.             type: Mm.boolean,
  15681.             value: '1'
  15682.           }
  15683.         ],
  15684.         saasUnsubscribePolls: [
  15685.           {
  15686.             id: 'immediately-polls',
  15687.             key: 'immediately',
  15688.             label: 'Cancel Immediately',
  15689.             description: 'Should we cancel the subscription now, or at the end of the current period?',
  15690.             placeholder: 'True or False',
  15691.             type: Mm.boolean,
  15692.             value: '1'
  15693.           }
  15694.         ],
  15695.         saasAssignFeature: [
  15696.           {
  15697.             id: 'feature',
  15698.             label: 'Feature',
  15699.             description: 'Feature to assign',
  15700.             placeholder: 'Select a Feature',
  15701.             type: Mm.select,
  15702.             options: Qs
  15703.           }
  15704.         ],
  15705.         saasRemoveFeature: [
  15706.           {
  15707.             id: 'feature',
  15708.             label: 'Feature',
  15709.             description: 'Feature to remove',
  15710.             placeholder: 'Select a Feature',
  15711.             type: Mm.select,
  15712.             options: Qs
  15713.           }
  15714.         ]
  15715.       },
  15716.       forum: {
  15717.         update: [
  15718.           {
  15719.             id: 'adultContent',
  15720.             label: 'Adult Content',
  15721.             description: 'Flag as adult content?',
  15722.             type: Mm.boolean,
  15723.             value: '1'
  15724.           },
  15725.           {
  15726.             id: Lo,
  15727.             label: 'Ads Analytics Viewable',
  15728.             description: 'Let forum admins see ads analytics?',
  15729.             type: Mm.boolean,
  15730.             value: '1'
  15731.           },
  15732.           {
  15733.             id: Vi,
  15734.             label: 'Ads Settings Viewable',
  15735.             description: 'Let forum admins see ads settings?',
  15736.             type: Mm.boolean,
  15737.             value: '1'
  15738.           },
  15739.           {
  15740.             id: Fi,
  15741.             label: 'Lock Ads Settings',
  15742.             description: 'Prevent site admins from changing Ads settings?',
  15743.             type: Mm.boolean,
  15744.             value: '1'
  15745.           },
  15746.           {
  15747.             id: 'adsProductLinksEnabled',
  15748.             label: 'Ads Links Enabled',
  15749.             description: 'Enable Links?',
  15750.             type: Mm.boolean,
  15751.             value: '1'
  15752.           },
  15753.           {
  15754.             id: 'adsProductStoriesEnabled',
  15755.             label: 'Ads Story Enabled',
  15756.             description: 'Enable Story?',
  15757.             type: Mm.boolean,
  15758.             value: '1'
  15759.           },
  15760.           {
  15761.             id: Oi,
  15762.             label: 'Ads Display Enabled',
  15763.             description: 'Enable Display?',
  15764.             type: Mm.boolean,
  15765.             value: '1'
  15766.           },
  15767.           {
  15768.             id: wi,
  15769.             label: 'Ads Video Enabled',
  15770.             description: 'Enable Video?',
  15771.             type: Mm.boolean,
  15772.             value: '1'
  15773.           },
  15774.           {
  15775.             id: 'adsProductLinksThumbnailsEnabled',
  15776.             label: 'Link Thumbnails',
  15777.             description: 'Enable thumbnails for Sponsored Links?',
  15778.             type: Mm.boolean,
  15779.             value: '1'
  15780.           },
  15781.           {
  15782.             id: di,
  15783.             label: 'Ads Position Top',
  15784.             description: 'Show ads above the embed?',
  15785.             type: Mm.boolean,
  15786.             value: '1'
  15787.           },
  15788.           {
  15789.             id: Mo,
  15790.             label: 'Ads Position Bottom',
  15791.             description: 'Show ads below the embed?',
  15792.             type: Mm.boolean,
  15793.             value: '1'
  15794.           },
  15795.           {
  15796.             id: ti,
  15797.             label: 'Ads Position In-Thread',
  15798.             description: 'Show ads in the embed comments?',
  15799.             type: Mm.boolean,
  15800.             value: '1'
  15801.           },
  15802.           {
  15803.             id: ai,
  15804.             label: 'Ads Position in Recommendations',
  15805.             description: 'Show ads in Recommendations?',
  15806.             type: Mm.boolean,
  15807.             value: '1'
  15808.           },
  15809.           {
  15810.             id: 'adsPositionSidebarEnabled',
  15811.             label: 'Ads Position in Sidebar',
  15812.             description: 'Show ads in the sidebar?',
  15813.             type: Mm.boolean,
  15814.             value: '1'
  15815.           },
  15816.           {
  15817.             id: 'adsReviewStatus',
  15818.             label: 'Ads Review Status',
  15819.             description: 'Change the ads review status',
  15820.             placeholder: 'Select a qualification',
  15821.             type: Mm.select,
  15822.             options: Ss,
  15823.             value: '0'
  15824.           },
  15825.           {
  15826.             id: 'adsReviewNotes',
  15827.             label: 'Ads Review Notes',
  15828.             description: 'Updates notes relating to the ads review',
  15829.             placeholder: 'Enter a note',
  15830.             type: Mm.text
  15831.           },
  15832.           {
  15833.             id: 'adsLanguage',
  15834.             label: 'Ads Language',
  15835.             description: 'Change the ads language',
  15836.             placeholder: 'Select a language',
  15837.             type: Mm.select,
  15838.             options: cs,
  15839.             value: cs[0].id
  15840.           },
  15841.           {
  15842.             id: 'adsTaboolaNamed',
  15843.             label: 'Ads Taboola Named',
  15844.             description: 'Use a named publisher placement for Taboola?',
  15845.             type: Mm.boolean,
  15846.             value: '1'
  15847.           },
  15848.           {
  15849.             id: 'inEmbedAds',
  15850.             label: 'In Embed Ads',
  15851.             description: 'Put ads inside comments iframe?',
  15852.             type: Mm.boolean,
  15853.             value: '1'
  15854.           },
  15855.           {
  15856.             id: 'safetyLevel',
  15857.             label: 'Safety Level',
  15858.             description: 'Set the safety level to control ad mix',
  15859.             placeholder: 'Select a level',
  15860.             type: Mm.select,
  15861.             options: Ts,
  15862.             value: '10'
  15863.           },
  15864.           {
  15865.             id: 'forumCategory',
  15866.             label: 'Forum Category',
  15867.             description: 'Change the forum category',
  15868.             placeholder: 'Select a category',
  15869.             type: Mm.select,
  15870.             options: Ds,
  15871.             value: 1
  15872.           },
  15873.           {
  15874.             id: 'linkAffiliationEnabled',
  15875.             label: 'Link Affiliation Enabled',
  15876.             description: 'Insert affiliate links when the embed loads?',
  15877.             type: Mm.boolean,
  15878.             value: '1'
  15879.           },
  15880.           {
  15881.             id: 'translationLanguage',
  15882.             label: 'Translation Language',
  15883.             description: 'Change the translation language',
  15884.             placeholder: 'Select a language',
  15885.             type: Mm.select,
  15886.             options: cs,
  15887.             value: cs[0].id
  15888.           },
  15889.           {
  15890.             id: 'allowAnonPost',
  15891.             label: 'Guest Commenting',
  15892.             description: 'Enable guest commenting?',
  15893.             type: Mm.boolean,
  15894.             value: '1'
  15895.           },
  15896.           {
  15897.             id: 'moderatorBadgeText',
  15898.             label: 'Moderator Badge Text',
  15899.             description: 'Change the label that appears next to moderator comments',
  15900.             placeholder: 'Enter badge label text',
  15901.             type: Mm.text
  15902.           },
  15903.           {
  15904.             id: 'organization',
  15905.             label: 'Organization',
  15906.             description: 'Assign these forums to a single organization',
  15907.             placeholder: 'Enter an org ID',
  15908.             type: Mm.number
  15909.           },
  15910.           {
  15911.             id: 'disableThirdPartyTrackers',
  15912.             label: 'Third-party Trackers',
  15913.             description: 'Turn off third-party tracking?',
  15914.             type: Mm.boolean,
  15915.             value: '1'
  15916.           },
  15917.           {
  15918.             id: 'daysThreadAlive',
  15919.             label: 'Automatic Thread Closing',
  15920.             description: 'Changes the number of days before a thread automatically closes',
  15921.             placeholder: 'Enter number of days, or 0 to disable',
  15922.             type: Mm.number,
  15923.             value: '0'
  15924.           },
  15925.           {
  15926.             id: 'threadRatingsEnabled',
  15927.             label: 'Star Ratings',
  15928.             description: 'Enable star ratings?',
  15929.             type: Mm.boolean,
  15930.             value: '1'
  15931.           },
  15932.           {
  15933.             id: 'behindClickEnabled',
  15934.             label: 'Behind a Click',
  15935.             description: 'Enable behind a click?',
  15936.             type: Mm.boolean,
  15937.             value: '1'
  15938.           },
  15939.           {
  15940.             id: 'userIdentityDisabled',
  15941.             label: 'User Identity Disabled',
  15942.             description: 'Disable user identity?',
  15943.             type: Mm.boolean,
  15944.             value: '1'
  15945.           },
  15946.           {
  15947.             id: 'sideBarEnabled',
  15948.             label: 'User Profile Sidebar',
  15949.             description: 'Enable user profile sidebar?',
  15950.             type: Mm.boolean,
  15951.             value: '1'
  15952.           }
  15953.         ],
  15954.         addModerator: [
  15955.           {
  15956.             id: 'user',
  15957.             argPrefix: 'username:',
  15958.             label: 'Username',
  15959.             description: 'Adds a moderator to all the selected forums',
  15960.             placeholder: 'Enter a username',
  15961.             type: Mm.text,
  15962.             isRequired: !0
  15963.           },
  15964.           {
  15965.             id: 'canEdit',
  15966.             label: 'Can Edit',
  15967.             description: 'User can edit comment?',
  15968.             type: Mm.boolean,
  15969.             value: '0'
  15970.           },
  15971.           {
  15972.             id: 'canAdminister',
  15973.             label: 'Can Administer',
  15974.             description: 'User can change settings?',
  15975.             type: Mm.boolean,
  15976.             value: '0'
  15977.           }
  15978.         ],
  15979.         createTrustedDomain: [
  15980.           {
  15981.             id: 'domainName',
  15982.             label: 'Domain Name',
  15983.             description: 'Adds a Trusted Domain to these forums',
  15984.             placeholder: 'Enter a valid domain, e.g. disqus.com',
  15985.             type: Mm.text,
  15986.             isRequired: !0
  15987.           }
  15988.         ],
  15989.         killTrustedDomain: [
  15990.           {
  15991.             id: 'domain',
  15992.             argPrefix: 'domain:',
  15993.             label: 'Domain Name',
  15994.             description: 'Removes a Trusted Domain from these forums',
  15995.             placeholder: 'Enter a valid domain, e.g. disqus.com',
  15996.             type: Mm.text,
  15997.             isRequired: !0
  15998.           }
  15999.         ],
  16000.         blacklistsAdd: [
  16001.           {
  16002.             id: 'word',
  16003.             label: 'Words',
  16004.             description: 'Adds words to restricted words list',
  16005.             placeholder: 'Enter words you want to add separated by a comma',
  16006.             type: Mm.multiText
  16007.           },
  16008.           {
  16009.             id: 'domain',
  16010.             label: 'Domains',
  16011.             description: 'Adds domain names to restricted words list',
  16012.             placeholder: 'Enter domains you want to add separated by a comma',
  16013.             type: Mm.multiText
  16014.           },
  16015.           {
  16016.             id: 'ip',
  16017.             label: 'IP Addresses',
  16018.             description: 'Adds IP addresses to blacklist',
  16019.             placeholder: 'Enter IPs you want to add separated by a comma',
  16020.             type: Mm.multiText
  16021.           },
  16022.           {
  16023.             id: 'user',
  16024.             label: 'Users',
  16025.             argPrefix: 'username:',
  16026.             description: 'Adds users to blacklist',
  16027.             placeholder: 'Enter usernames you want to add separated by a comma',
  16028.             type: Mm.multiText
  16029.           },
  16030.           {
  16031.             id: 'email',
  16032.             label: 'Emails',
  16033.             description: 'Adds emails to blacklist',
  16034.             placeholder: 'Enter emails you want to add separated by a comma',
  16035.             type: Mm.multiText
  16036.           },
  16037.           {
  16038.             id: 'shadowBan',
  16039.             label: 'Shadow Ban',
  16040.             description: 'Shadow ban users?',
  16041.             type: Mm.boolean,
  16042.             isParam: !0,
  16043.             value: '0'
  16044.           },
  16045.           {
  16046.             id: 'retroactiveAction',
  16047.             label: 'Retroactive Action',
  16048.             description: 'Action to apply retroactively to existing posts',
  16049.             placeholder: 'Select an action',
  16050.             type: Mm.select,
  16051.             options: Ls,
  16052.             value: 'KILL'
  16053.           },
  16054.           {
  16055.             id: 'notes',
  16056.             label: 'Notes',
  16057.             description: 'Add note to each blacklist entry',
  16058.             placeholder: 'Enter a note up to 50 characters',
  16059.             type: Mm.text
  16060.           }
  16061.         ],
  16062.         blacklistsRemove: [
  16063.           {
  16064.             id: 'all',
  16065.             key: 'blacklist',
  16066.             label: 'All',
  16067.             description: 'Removes all blacklist entries from before the selected date',
  16068.             getRequest: {
  16069.               endpoint: 'blacklists/list',
  16070.               id: 'since',
  16071.               params: {
  16072.                 order: 'desc'
  16073.               },
  16074.               type: Mm.multiText
  16075.             },
  16076.             type: Mm.date,
  16077.             value: Um.toISOString()
  16078.           },
  16079.           {
  16080.             id: 'word',
  16081.             key: 'blacklist',
  16082.             label: 'Words',
  16083.             description: 'Removes words from restricted words list from before the selected date',
  16084.             getRequest: {
  16085.               endpoint: 'blacklists/list',
  16086.               id: 'since',
  16087.               params: {
  16088.                 type: 'word',
  16089.                 order: 'desc'
  16090.               },
  16091.               type: Mm.multiText
  16092.             },
  16093.             type: Mm.date,
  16094.             value: Um.toISOString()
  16095.           },
  16096.           {
  16097.             id: 'domain',
  16098.             key: 'blacklist',
  16099.             label: 'Domains',
  16100.             description: 'Removes domain names from restricted words list from before the selected date',
  16101.             getRequest: {
  16102.               endpoint: 'blacklists/list',
  16103.               id: 'since',
  16104.               params: {
  16105.                 type: 'domain',
  16106.                 order: 'desc'
  16107.               },
  16108.               type: Mm.multiText
  16109.             },
  16110.             type: Mm.date,
  16111.             value: Um.toISOString()
  16112.           },
  16113.           {
  16114.             id: 'ip',
  16115.             key: 'blacklist',
  16116.             label: 'IP Addresses',
  16117.             description: 'Removes blacklisted IP addresses from before the selected date',
  16118.             getRequest: {
  16119.               endpoint: 'blacklists/list',
  16120.               id: 'since',
  16121.               params: {
  16122.                 type: 'ip',
  16123.                 order: 'desc'
  16124.               },
  16125.               type: Mm.multiText
  16126.             },
  16127.             type: Mm.date,
  16128.             value: Um.toISOString()
  16129.           },
  16130.           {
  16131.             id: 'user',
  16132.             key: 'blacklist',
  16133.             label: 'Users',
  16134.             argPrefix: 'username:',
  16135.             description: 'Removes blacklisted user from before the selected date',
  16136.             getRequest: {
  16137.               endpoint: 'blacklists/list',
  16138.               id: 'since',
  16139.               params: {
  16140.                 type: 'user',
  16141.                 order: 'desc'
  16142.               },
  16143.               type: Mm.multiText
  16144.             },
  16145.             type: Mm.date,
  16146.             value: Um.toISOString()
  16147.           },
  16148.           {
  16149.             id: 'email',
  16150.             key: 'blacklist',
  16151.             label: 'Emails',
  16152.             description: 'Removes emails from blacklist',
  16153.             getRequest: {
  16154.               endpoint: 'blacklists/list',
  16155.               id: 'since',
  16156.               params: {
  16157.                 type: 'email',
  16158.                 order: 'desc'
  16159.               },
  16160.               type: Mm.multiText
  16161.             },
  16162.             type: Mm.date,
  16163.             value: Um.toISOString()
  16164.           }
  16165.         ]
  16166.       },
  16167.       global: {
  16168.         globalBlacklistAdd: [
  16169.           {
  16170.             id: 'user',
  16171.             label: 'Users',
  16172.             argPrefix: 'username:',
  16173.             description: 'Adds users to blacklist',
  16174.             placeholder: 'Enter usernames you want to add separated by a comma',
  16175.             type: Mm.multiText
  16176.           },
  16177.           {
  16178.             id: 'email',
  16179.             label: 'Emails',
  16180.             description: 'Adds emails to blacklist',
  16181.             placeholder: 'Enter emails you want to add separated by a comma',
  16182.             type: Mm.multiText
  16183.           },
  16184.           {
  16185.             id: 'shadowBan',
  16186.             label: 'Shadow Ban',
  16187.             description: 'Shadow ban users?',
  16188.             type: Mm.boolean,
  16189.             isParam: !0,
  16190.             value: '0'
  16191.           }
  16192.         ],
  16193.         globalShadowBan: [
  16194.           {
  16195.             id: 'user',
  16196.             key: 'shadowBanUser',
  16197.             label: 'Users',
  16198.             argPrefix: 'username:',
  16199.             description: 'Globally shadow bans users',
  16200.             placeholder: 'Enter usernames you want to shadow ban separated by a comma',
  16201.             type: Mm.multiText
  16202.           },
  16203.           {
  16204.             id: 'email',
  16205.             key: 'shadowBanEmail',
  16206.             label: 'Emails',
  16207.             description: 'Globally shadow bans emails',
  16208.             placeholder: 'Enter emails you want to shadow ban separated by a comma',
  16209.             type: Mm.multiText
  16210.           }
  16211.         ]
  16212.       },
  16213.       subscription: {
  16214.         saasUpdateSubscription: [
  16215.           {
  16216.             id: 'start',
  16217.             label: 'Start Date',
  16218.             description: 'Start Date (YY-DD-MM HH:MM:SS)',
  16219.             placeholder: 'Enter start date',
  16220.             type: Mm.text
  16221.           },
  16222.           {
  16223.             id: 'end',
  16224.             label: 'End Date',
  16225.             description: 'End Date (YY-DD-MM HH:MM:SS)',
  16226.             placeholder: 'Enter end date',
  16227.             type: Mm.text
  16228.           }
  16229.         ]
  16230.       }
  16231.     },
  16232.     Vm = {
  16233.       organization: [
  16234.       ],
  16235.       forum: [
  16236.         {
  16237.           id: 'atf',
  16238.           label: 'Add ATF Actions',
  16239.           actions: [
  16240.             {
  16241.               group: Yi,
  16242.               id: Lo
  16243.             },
  16244.             {
  16245.               group: Yi,
  16246.               id: Mo
  16247.             },
  16248.             {
  16249.               group: Yi,
  16250.               id: ti
  16251.             },
  16252.             {
  16253.               group: Yi,
  16254.               id: ai
  16255.             },
  16256.             {
  16257.               group: Yi,
  16258.               id: di
  16259.             },
  16260.             {
  16261.               group: Yi,
  16262.               id: Oi
  16263.             },
  16264.             {
  16265.               group: Yi,
  16266.               id: wi
  16267.             },
  16268.             {
  16269.               group: Yi,
  16270.               id: Fi
  16271.             },
  16272.             {
  16273.               group: Yi,
  16274.               id: Vi
  16275.             }
  16276.           ]
  16277.         }
  16278.       ],
  16279.       global: [
  16280.       ],
  16281.       subscription: [
  16282.       ]
  16283.     };
  16284.     function Wm(e) {
  16285.       return (Wm = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  16286.         return typeof e
  16287.       }
  16288.        : function (e) {
  16289.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  16290.       }) (e)
  16291.     }
  16292.     function Ym(e, t) {
  16293.       for (var n = 0; n < t.length; n++) {
  16294.         var a = t[n];
  16295.         a.enumerable = a.enumerable || !1,
  16296.         a.configurable = !0,
  16297.         'value' in a && (a.writable = !0),
  16298.         Object.defineProperty(e, a.key, a)
  16299.       }
  16300.     }
  16301.     function Qm(e, t) {
  16302.       return (Qm = Object.setPrototypeOf || function (e, t) {
  16303.         return e.__proto__ = t,
  16304.         e
  16305.       }) (e, t)
  16306.     }
  16307.     function Km(n) {
  16308.       var a = function () {
  16309.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  16310.         if (Reflect.construct.sham) return !1;
  16311.         if ('function' == typeof Proxy) return !0;
  16312.         try {
  16313.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  16314.           ], function () {
  16315.           })),
  16316.           !0
  16317.         } catch (e) {
  16318.           return !1
  16319.         }
  16320.       }();
  16321.       return function () {
  16322.         var e,
  16323.         t = $m(n);
  16324.         return e = a ? (e = $m(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  16325.         t = this,
  16326.         !(e = e) || 'object' !== Wm(e) && 'function' != typeof e ? Jm(t) : e
  16327.       }
  16328.     }
  16329.     function Jm(e) {
  16330.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  16331.       return e
  16332.     }
  16333.     function $m(e) {
  16334.       return ($m = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  16335.         return e.__proto__ || Object.getPrototypeOf(e)
  16336.       }) (e)
  16337.     }
  16338.     function Zm(e, t, n) {
  16339.       return t in e ? Object.defineProperty(e, t, {
  16340.         value: n,
  16341.         enumerable: !0,
  16342.         configurable: !0,
  16343.         writable: !0
  16344.       }) : e[t] = n,
  16345.       e
  16346.     }
  16347.     function Xm(e) {
  16348.       return e = ''.concat(e.startDate.format('MM/DD/YY')),
  16349.       C.a.createElement('span', null, e)
  16350.     }
  16351.     Xm.propTypes = {
  16352.       startDate: s.moment.isRequired
  16353.     };
  16354.     sl = function () {
  16355.       !function (e, t) {
  16356.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  16357.         e.prototype = Object.create(t && t.prototype, {
  16358.           constructor: {
  16359.             value: e,
  16360.             writable: !0,
  16361.             configurable: !0
  16362.           }
  16363.         }),
  16364.         t && Qm(e, t)
  16365.       }(o, A);
  16366.       var e,
  16367.       t,
  16368.       n,
  16369.       r = Km(o);
  16370.       function o() {
  16371.         var a;
  16372.         !function (e, t) {
  16373.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  16374.         }(this, o);
  16375.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  16376.         return Zm(Jm(a = r.call.apply(r, [
  16377.           this
  16378.         ].concat(t))), 'state', {
  16379.           pickerOpen: !1
  16380.         }),
  16381.         Zm(Jm(a), 'datePickerInput', C.a.createRef()),
  16382.         Zm(Jm(a), 'datePickerContainer', C.a.createRef()),
  16383.         Zm(Jm(a), 'handleDateChange', function (e, t) {
  16384.           a.setState({
  16385.             pickerOpen: !1
  16386.           });
  16387.           var n = a.localToUtc(ct() (t.date1));
  16388.           a.props.startDate.isSame(n) || ((t = a.localToUtc(ct() (a.datePickerInput.current.value, 'MM/DD/YY'))) !== n && (n = t), a.props.onDateChange && (a.props.action && a.props.actionGroup ? a.props.onDateChange(a.props.action, a.props.actionGroup, n) : a.props.onDateChange(n)))
  16389.         }),
  16390.         Zm(Jm(a), 'updatePickerDate', function () {
  16391.           var e = a.utcToLocal(a.props.startDate).toDate();
  16392.           a._picker.setStart(e)
  16393.         }),
  16394.         Zm(Jm(a), 'showPicker', function (e) {
  16395.           e.preventDefault(),
  16396.           e.stopPropagation(),
  16397.           e.nativeEvent.stopImmediatePropagation(),
  16398.           a.setState(function (e) {
  16399.             return {
  16400.               pickerOpen: !e.pickerOpen
  16401.             }
  16402.           })
  16403.         }),
  16404.         Zm(Jm(a), 'rangeFnFromStartDate', function (e) {
  16405.           return je.a.constant([e.toDate(),
  16406.           a.today().toDate()])
  16407.         }),
  16408.         Zm(Jm(a), 'today', function () {
  16409.           return a.utcToLocal(a.props.maxDate || ct.a.utc()).startOf('day')
  16410.         }),
  16411.         Zm(Jm(a), 'localToUtc', function (e) {
  16412.           return ct.a.utc(e.toArray())
  16413.         }),
  16414.         Zm(Jm(a), 'utcToLocal', function (e) {
  16415.           return ct() (e.toArray())
  16416.         }),
  16417.         a
  16418.       }
  16419.       return e = o,
  16420.       (t = [
  16421.         {
  16422.           key: 'componentDidMount',
  16423.           value: function () {
  16424.             return this._picker = vo() (this.datePickerInput.current).dateRangePicker({
  16425.               inline: !0,
  16426.               container: vo() (this.datePickerContainer.current),
  16427.               singleDate: this.props.singleDate,
  16428.               singleMonth: this.props.singleMonth,
  16429.               showTopbar: !1,
  16430.               showShortcuts: !1,
  16431.               alwaysOpen: this.props.alwaysOpen,
  16432.               autoClose: !this.props.alwaysOpen,
  16433.               format: 'MM/DD/YY',
  16434.               startDate: this.props.minDate && this.utcToLocal(this.props.minDate),
  16435.               endDate: this.props.maxDate && this.utcToLocal(this.props.maxDate),
  16436.               shortcuts: null
  16437.             }).bind('datepicker-first-date-selected', je.a.bind(this.handleDateChange, this)).bind('datepicker-closed', je.a.bind(this.handleDateChange, this)).data('dateRangePicker'),
  16438.             this.updatePickerDate(),
  16439.             this._picker
  16440.           }
  16441.         },
  16442.         {
  16443.           key: 'componentDidUpdate',
  16444.           value: function (e, t) {
  16445.             t.pickerOpen !== this.state.pickerOpen ? this.state.pickerOpen ? this._picker.open(0) : this._picker.close(0) : e.startDate !== this.props.startDate && this.updatePickerDate()
  16446.           }
  16447.         },
  16448.         {
  16449.           key: 'componentWillUnmount',
  16450.           value: function () {
  16451.             this._picker.destroy()
  16452.           }
  16453.         },
  16454.         {
  16455.           key: 'render',
  16456.           value: function () {
  16457.             var e = this.props.dateWrapperClass || 'date-input-group__wrapper--no-switch',
  16458.             t = this.props.hideInput ? this.showPicker : null,
  16459.             n = this.props.hideInput ? C.a.createElement('div', {
  16460.               className: 'date-input-group__label'
  16461.             }, C.a.createElement('span', {
  16462.               className: 'icon-calendar text-large spacing-right text-gray'
  16463.             }), C.a.createElement(Xm, {
  16464.               startDate: this.props.startDate
  16465.             })) : null;
  16466.             return C.a.createElement('div', {
  16467.               className: e,
  16468.               onClick: t
  16469.             }, C.a.createElement('div', {
  16470.               className: 'date-input-group align align--stretch text-small text-semibold'
  16471.             }, n, C.a.createElement('div', {
  16472.               className: 'card__header-content-item -button -nest daterange-picker',
  16473.               onClick: this.showPicker
  16474.             }, C.a.createElement('span', {
  16475.               className: 'icon-calendar text-large spacing-right text-gray',
  16476.               hidden: this.props.hideInput
  16477.             }), C.a.createElement('input', {
  16478.               className: 'date-input-group__input text-gray-dark text-semibold',
  16479.               hidden: this.props.hideInput,
  16480.               ref: this.datePickerInput
  16481.             }), C.a.createElement('span', {
  16482.               className: 'icon-arrow text-large spacing-left date-input-group__icon'
  16483.             }))), C.a.createElement('div', {
  16484.               className: 'date-input-group__dropdown',
  16485.               ref: this.datePickerContainer
  16486.             }))
  16487.           }
  16488.         }
  16489.       ]) && Ym(e.prototype, t),
  16490.       n && Ym(e, n),
  16491.       o
  16492.     }();
  16493.     Zm(sl, 'propTypes', {
  16494.       singleDate: b.a.bool,
  16495.       singleMonth: b.a.bool,
  16496.       minDate: s.moment.isRequired,
  16497.       maxDate: s.moment.isRequired,
  16498.       startDate: s.moment.isRequired,
  16499.       onDateChange: b.a.func,
  16500.       onGroupChange: b.a.func,
  16501.       alwaysOpen: b.a.bool,
  16502.       dateWrapperClass: b.a.string,
  16503.       hideInput: b.a.bool,
  16504.       action: b.a.object,
  16505.       actionGroup: b.a.string
  16506.     }),
  16507.     Zm(sl, 'defaultProps', {
  16508.       singleMonth: !1,
  16509.       singleDate: !0,
  16510.       alwaysOpen: !1,
  16511.       hideInput: !1
  16512.     });
  16513.     var ef = sl,
  16514.     yl = n(280),
  16515.     tf = n.n(yl),
  16516.     nf = n(148);
  16517.     function af(t, e) {
  16518.       var n,
  16519.       a = Object.keys(t);
  16520.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  16521.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  16522.       })), a.push.apply(a, n)),
  16523.       a
  16524.     }
  16525.     function rf(a) {
  16526.       for (var e = 1; e < arguments.length; e++) {
  16527.         var r = null != arguments[e] ? arguments[e] : {
  16528.         };
  16529.         e % 2 ? af(Object(r), !0).forEach(function (e) {
  16530.           var t,
  16531.           n;
  16532.           n = r[t = e],
  16533.           t in (e = a) ? Object.defineProperty(e, t, {
  16534.             value: n,
  16535.             enumerable: !0,
  16536.             configurable: !0,
  16537.             writable: !0
  16538.           }) : e[t] = n
  16539.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : af(Object(r)).forEach(function (e) {
  16540.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  16541.         })
  16542.       }
  16543.       return a
  16544.     }
  16545.     var Li = b.a.shape({
  16546.       key: b.a.oneOfType([b.a.string,
  16547.       b.a.number]).isRequired,
  16548.       value: b.a.any.isRequired,
  16549.       label: b.a.string.isRequired,
  16550.       icon: b.a.string,
  16551.       style: b.a.object,
  16552.       isDisabled: b.a.bool
  16553.     }),
  16554.     vl = b.a.shape({
  16555.       date_added: b.a.string.isRequired,
  16556.       id: b.a.number.isRequired,
  16557.       name: b.a.string.isRequired
  16558.     }),
  16559.     of = 'https://c.disquscdn.com/images/noavatar92.png',
  16560.     sf = {
  16561.       auto: 'Auto',
  16562.       serif: 'Serif',
  16563.       'sans-serif': 'Sans-serif'
  16564.     },
  16565.     lf = [
  16566.       {
  16567.         key: 'auto',
  16568.         label: 'Auto',
  16569.         value: 'auto'
  16570.       },
  16571.       {
  16572.         key: 'serif',
  16573.         label: 'Serif',
  16574.         value: 'serif'
  16575.       },
  16576.       {
  16577.         key: 'sans-serif',
  16578.         label: 'Sans-serif',
  16579.         value: 'sans-serif'
  16580.       }
  16581.     ],
  16582.     cf = {
  16583.       name: 'Default',
  16584.       category: 'auto',
  16585.       isDefault: !0
  16586.     },
  16587.     uf = {
  16588.       auto: 'Auto',
  16589.       light: 'Light',
  16590.       dark: 'Dark'
  16591.     },
  16592.     pf = [
  16593.       {
  16594.         key: 'auto',
  16595.         label: 'Auto',
  16596.         value: 'auto'
  16597.       },
  16598.       {
  16599.         key: 'light',
  16600.         label: 'Light',
  16601.         value: 'light'
  16602.       },
  16603.       {
  16604.         key: 'dark',
  16605.         label: 'Dark',
  16606.         value: 'dark'
  16607.       }
  16608.     ],
  16609.     df = [
  16610.       {
  16611.         key: 4,
  16612.         value: 4,
  16613.         label: 'Best First'
  16614.       },
  16615.       {
  16616.         key: 2,
  16617.         value: 2,
  16618.         label: 'Newest First'
  16619.       },
  16620.       {
  16621.         key: 1,
  16622.         value: 1,
  16623.         label: 'Oldest First'
  16624.       }
  16625.     ],
  16626.     mf = [
  16627.       {
  16628.         label: 'Zero comments',
  16629.         key: 'commentsLinkZero'
  16630.       },
  16631.       {
  16632.         label: 'One comment',
  16633.         key: 'commentsLinkOne'
  16634.       },
  16635.       {
  16636.         label: 'Multiple comments',
  16637.         key: 'commentsLinkMultiple'
  16638.       }
  16639.     ],
  16640.     ff = {
  16641.       commentsLinkZero: '0 Comments',
  16642.       commentsLinkOne: '1 Comment',
  16643.       commentsLinkMultiple: '{num} Comments'
  16644.     },
  16645.     hf = [
  16646.       {
  16647.         label: 'Empty thread',
  16648.         key: 'commentsPlaceholderTextEmpty',
  16649.       default:
  16650.         'Start the discussion…'
  16651.       },
  16652.       {
  16653.         label: 'Populated thread',
  16654.         key: 'commentsPlaceholderTextPopulated',
  16655.       default:
  16656.         'Join the discussion…'
  16657.       }
  16658.     ],
  16659.     gf = [
  16660.       {
  16661.         label: 'Upvote & Downvote',
  16662.         key: nf.VOTING_TYPES.DETAILED
  16663.       },
  16664.       {
  16665.         label: 'Hide downvote count and downvoters',
  16666.         key: nf.VOTING_TYPES.DOWNVOTE_LIMITED
  16667.       },
  16668.       {
  16669.         label: 'Upvote only',
  16670.         key: nf.VOTING_TYPES.DOWNVOTE_DISABLED
  16671.       },
  16672.       {
  16673.         label: 'Disabled',
  16674.         key: nf.VOTING_TYPES.DISABLED
  16675.       }
  16676.     ],
  16677.     yf = [
  16678.       1,
  16679.       3,
  16680.       5,
  16681.       10,
  16682.       15,
  16683.       20,
  16684.       25
  16685.     ].map(function (e) {
  16686.       return {
  16687.         key: e,
  16688.         value: e,
  16689.         label: ''.concat(e, 1 === e ? ' time' : ' times')
  16690.       }
  16691.     }),
  16692.     Cl = b.a.shape({
  16693.       forum_id: b.a.number.isRequired,
  16694.       id: b.a.number.isRequired,
  16695.       domain: b.a.string.isRequired
  16696.     }),
  16697.     bf = [
  16698.       'I can\'t get Disqus to work on my site.',
  16699.       'I added an extra website by accident! Oops!',
  16700.       'I was not using my site as much as I thought and just wanted to clean house.',
  16701.       'Other'
  16702.     ],
  16703.     xl = b.a.shape({
  16704.       rtl: b.a.bool.isRequired,
  16705.       code: b.a.string.isRequired,
  16706.       name: b.a.string.isRequired
  16707.     }),
  16708.     vf = [
  16709.       {
  16710.         id: 'wordpress',
  16711.         name: 'WordPress'
  16712.       },
  16713.       {
  16714.         id: 'blogger',
  16715.         name: 'Blogger'
  16716.       },
  16717.       {
  16718.         id: 'tumblr',
  16719.         name: 'Tumblr'
  16720.       },
  16721.       {
  16722.         id: 'squarespace',
  16723.         name: 'Squarespace'
  16724.       },
  16725.       {
  16726.         id: 'typepad',
  16727.         name: 'TypePad'
  16728.       },
  16729.       {
  16730.         id: 'movabletype',
  16731.         name: 'Movable Type'
  16732.       },
  16733.       {
  16734.         id: 'drupal',
  16735.         name: 'Drupal'
  16736.       },
  16737.       {
  16738.         id: 'joomla',
  16739.         name: 'Joomla'
  16740.       },
  16741.       {
  16742.         id: 'weebly',
  16743.         name: 'Weebly'
  16744.       },
  16745.       {
  16746.         id: 'strikingly',
  16747.         name: 'Strikingly'
  16748.       },
  16749.       {
  16750.         id: 'jekyll',
  16751.         name: 'Jekyll'
  16752.       },
  16753.       {
  16754.         id: 'ghost',
  16755.         name: 'Ghost'
  16756.       },
  16757.       {
  16758.         id: 'hubspot',
  16759.         name: 'HubSpot'
  16760.       },
  16761.       {
  16762.         id: 'shopify',
  16763.         name: 'Shopify'
  16764.       },
  16765.       {
  16766.         id: 'adobemuse',
  16767.         name: 'Adobe Muse'
  16768.       },
  16769.       {
  16770.         id: 'amp',
  16771.         name: 'AMP'
  16772.       },
  16773.       {
  16774.         id: 'jimdo',
  16775.         name: 'Jimdo'
  16776.       },
  16777.       {
  16778.         id: 'postachio',
  16779.         name: 'Postach.io'
  16780.       },
  16781.       {
  16782.         id: 'gatsby',
  16783.         name: 'Gatsby'
  16784.       },
  16785.       {
  16786.         id: 'pattern',
  16787.         name: 'Pattern'
  16788.       },
  16789.       {
  16790.         id: 'react',
  16791.         name: 'React'
  16792.       }
  16793.     ],
  16794.     _f = {
  16795.       min: 1,
  16796.     default:
  16797.       50,
  16798.       max: 50
  16799.     },
  16800.     Ef = 0,
  16801.     Of = 10000,
  16802.     Sf = {
  16803.       min: 1,
  16804.     default:
  16805.       2,
  16806.       max: 99
  16807.     },
  16808.     ac = b.a.shape({
  16809.       name: b.a.string.isRequired,
  16810.       color: b.a.string.isRequired,
  16811.       description: b.a.node,
  16812.       settings: b.a.arrayOf(b.a.shape({
  16813.         key: b.a.string.isRequired,
  16814.         value: b.a.oneOfType([b.a.bool,
  16815.         b.a.number,
  16816.         b.a.string]).isRequired,
  16817.         text: b.a.node
  16818.       })).isRequired,
  16819.       rules: b.a.objectOf(b.a.shape({
  16820.         key: b.a.string.isRequired,
  16821.         filter: b.a.string.isRequired,
  16822.         action: b.a.string.isRequired,
  16823.         text: b.a.node
  16824.       })).isRequired
  16825.     }),
  16826.     wf = [
  16827.       {
  16828.         name: 'Balanced',
  16829.         color: 'green',
  16830.         description: 'Recommended for publishers looking to reduce the possibility of troublesome comments through automated moderation, while balancing the openness of conversation.',
  16831.         settings: [
  16832.           {
  16833.             key: 'unapproveLinks',
  16834.             value: !1
  16835.           },
  16836.           {
  16837.             key: 'mediaembedEnabled',
  16838.             value: !0,
  16839.             text: 'Images, Videos, and Links will be allowed in comments'
  16840.           },
  16841.           {
  16842.             key: 'allowAnonPost',
  16843.             value: !0,
  16844.             text: 'Guest comments will be allowed'
  16845.           },
  16846.           {
  16847.             key: 'flaggingEnabled',
  16848.             value: !0
  16849.           },
  16850.           {
  16851.             key: 'flagThreshold',
  16852.             value: 5,
  16853.             text: 'Comments that are flagged 5 times will be sent to pending'
  16854.           },
  16855.           {
  16856.             key: 'daysThreadAlive',
  16857.             value: 0
  16858.           }
  16859.         ],
  16860.         rules: {
  16861.           postContainsRestrictedWord: {
  16862.             key: 'postContainsRestrictedWord',
  16863.             filter: 'postContainsRestrictedWord',
  16864.             type: 'comment',
  16865.             action: 'delete',
  16866.             text: 'Comments containing restricted words will be automatically deleted'
  16867.           },
  16868.           postIsToxic: {
  16869.             key: 'postIsToxic',
  16870.             filter: 'postIsToxic',
  16871.             type: 'comment',
  16872.             action: 'pending',
  16873.             text: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  16874.               href: Pn.toxicModFilter,
  16875.               rel: 'noreferrer noopener',
  16876.               target: '_blank'
  16877.             }, 'Toxic comments'), ' will require moderator approval to be displayed')
  16878.           },
  16879.           postIsPromotion: {
  16880.             key: 'postIsPromotion',
  16881.             filter: 'postIsPromotion',
  16882.             type: 'comment',
  16883.             action: 'spam',
  16884.             text: C.a.createElement(C.a.Fragment, null, 'Promotional comments will be automatically marked as spam'),
  16885.             isHiveRule: !0
  16886.           },
  16887.           postIsSexual: {
  16888.             key: 'postIsSexual',
  16889.             filter: 'postIsSexual',
  16890.             severity: 3,
  16891.             type: 'comment',
  16892.             action: 'pending',
  16893.             text: C.a.createElement(C.a.Fragment, null, 'Comments containing restricted words, toxicity, sexual content, hate, violence, or bullying will require moderator approval to be displayed'),
  16894.             isHiveRule: !0
  16895.           },
  16896.           postIsHate: {
  16897.             key: 'postIsHate',
  16898.             filter: 'postIsHate',
  16899.             severity: 3,
  16900.             type: 'comment',
  16901.             action: 'pending',
  16902.             isHiveRule: !0
  16903.           },
  16904.           postIsViolence: {
  16905.             key: 'postIsViolence',
  16906.             filter: 'postIsViolence',
  16907.             severity: 3,
  16908.             type: 'comment',
  16909.             action: 'pending',
  16910.             isHiveRule: !0
  16911.           }
  16912.         }
  16913.       },
  16914.       {
  16915.         name: 'Strict',
  16916.         color: 'violet',
  16917.         description: 'Recommended for publishers looking to aggressively reduce the possibility of troublesome comments through strict automated moderation, and limitations on who can comment and allowed comment types.',
  16918.         settings: [
  16919.           {
  16920.             key: 'unapproveLinks',
  16921.             value: !0
  16922.           },
  16923.           {
  16924.             key: 'mediaembedEnabled',
  16925.             value: !1,
  16926.             text: 'Images, Videos, and Links will not be allowed in comments'
  16927.           },
  16928.           {
  16929.             key: 'allowAnonPost',
  16930.             value: !1,
  16931.             text: 'Guest comments will not be allowed'
  16932.           },
  16933.           {
  16934.             key: 'flaggingEnabled',
  16935.             value: !0
  16936.           },
  16937.           {
  16938.             key: 'flagThreshold',
  16939.             value: 3,
  16940.             text: 'Comments that are flagged 3 times will be sent to pending'
  16941.           },
  16942.           {
  16943.             key: 'daysThreadAlive',
  16944.             value: 30,
  16945.             text: 'Threads will be automatically closed after 30 days'
  16946.           }
  16947.         ],
  16948.         rules: {
  16949.           postContainsRestrictedWord: {
  16950.             key: 'postContainsRestrictedWord',
  16951.             filter: 'postContainsRestrictedWord',
  16952.             type: 'comment',
  16953.             action: 'delete',
  16954.             text: 'Comments containing restricted words will be automatically deleted'
  16955.           },
  16956.           postIsToxic: {
  16957.             key: 'postIsToxic',
  16958.             filter: 'postIsToxic',
  16959.             type: 'comment',
  16960.             action: 'delete',
  16961.             text: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  16962.               href: Pn.toxicModFilter,
  16963.               rel: 'noreferrer noopener',
  16964.               target: '_blank'
  16965.             }, 'Toxic comments'), ' will be automatically deleted')
  16966.           },
  16967.           postIsPromotion: {
  16968.             key: 'postIsPromotion',
  16969.             filter: 'postIsPromotion',
  16970.             type: 'comment',
  16971.             action: 'spam',
  16972.             text: C.a.createElement(C.a.Fragment, null, 'Promotional comments will be automatically marked as spam'),
  16973.             isHiveRule: !0
  16974.           },
  16975.           postIsSexual: {
  16976.             key: 'postIsSexual',
  16977.             filter: 'postIsSexual',
  16978.             severity: 3,
  16979.             type: 'comment',
  16980.             action: 'delete',
  16981.             text: C.a.createElement(C.a.Fragment, null, 'Comments containing restricted words, toxicity, sexual content, hate, violence, or bullying will be automatically deleted'),
  16982.             isHiveRule: !0
  16983.           },
  16984.           postIsHate: {
  16985.             key: 'postIsHate',
  16986.             filter: 'postIsHate',
  16987.             severity: 3,
  16988.             type: 'comment',
  16989.             action: 'delete',
  16990.             isHiveRule: !0
  16991.           },
  16992.           postIsViolence: {
  16993.             key: 'postIsViolence',
  16994.             filter: 'postIsViolence',
  16995.             severity: 3,
  16996.             type: 'comment',
  16997.             action: 'delete',
  16998.             isHiveRule: !0
  16999.           }
  17000.         }
  17001.       }
  17002.     ],
  17003.     Pf = function (e, t) {
  17004.       var n = t.forumDetails,
  17005.       a = t.orgCurrentPlan;
  17006.       if (!n || t.orgSubscriptionIsFetching) return null;
  17007.       n = rf({
  17008.         package: a && a.id || null,
  17009.         aet_banner_enabled: n.aetBannerEnabled
  17010.       }, e.extra_data);
  17011.       return rf(rf({
  17012.       }, e), {
  17013.       }, {
  17014.         extra_data: JSON.stringify(n)
  17015.       })
  17016.     },
  17017.     yc = function (e) {
  17018.       var t = 'fieldset__label text-gray'.concat(e.shouldHighlight ? ' settings__highlighted' : '', ' ').concat(e.labelAdditionalClass || ''),
  17019.       n = 'fieldset__block'.concat(e.childIsInput ? '' : ' spacing-left-tiny').concat(e.blockAdditionalClass ? ' ' + e.blockAdditionalClass : '').concat(e.readOnly ? ' readOnly' : '');
  17020.       return C.a.createElement('div', {
  17021.         className: 'fieldset '.concat(e.fieldsetAdditionalClass || '')
  17022.       }, C.a.createElement('label', {
  17023.         htmlFor: e.labelId,
  17024.         className: t
  17025.       }, e.label, e.tooltip ? C.a.createElement(Md, {
  17026.         tooltipKey: e.labelId,
  17027.         content: e.tooltip
  17028.       }) : null), C.a.createElement('div', {
  17029.         className: n
  17030.       }, e.children))
  17031.     };
  17032.     yc.propTypes = {
  17033.       label: b.a.node,
  17034.       labelId: b.a.string,
  17035.       blockAdditionalClass: b.a.string,
  17036.       fieldsetAdditionalClass: b.a.string,
  17037.       labelAdditionalClass: b.a.string,
  17038.       readOnly: b.a.bool,
  17039.       shouldHighlight: b.a.bool,
  17040.       tooltip: b.a.node,
  17041.       children: b.a.node,
  17042.       childIsInput: b.a.bool
  17043.     };
  17044.     var kf = yc;
  17045.     function Nf(e) {
  17046.       return (Nf = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  17047.         return typeof e
  17048.       }
  17049.        : function (e) {
  17050.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  17051.       }) (e)
  17052.     }
  17053.     function Cf(t, e) {
  17054.       var n,
  17055.       a = Object.keys(t);
  17056.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  17057.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  17058.       })), a.push.apply(a, n)),
  17059.       a
  17060.     }
  17061.     function Rf(t) {
  17062.       for (var e = 1; e < arguments.length; e++) {
  17063.         var n = null != arguments[e] ? arguments[e] : {
  17064.         };
  17065.         e % 2 ? Cf(Object(n), !0).forEach(function (e) {
  17066.           If(t, e, n[e])
  17067.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Cf(Object(n)).forEach(function (e) {
  17068.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  17069.         })
  17070.       }
  17071.       return t
  17072.     }
  17073.     function xf(e, t) {
  17074.       for (var n = 0; n < t.length; n++) {
  17075.         var a = t[n];
  17076.         a.enumerable = a.enumerable || !1,
  17077.         a.configurable = !0,
  17078.         'value' in a && (a.writable = !0),
  17079.         Object.defineProperty(e, a.key, a)
  17080.       }
  17081.     }
  17082.     function Af(e, t) {
  17083.       return (Af = Object.setPrototypeOf || function (e, t) {
  17084.         return e.__proto__ = t,
  17085.         e
  17086.       }) (e, t)
  17087.     }
  17088.     function Df(n) {
  17089.       var a = function () {
  17090.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  17091.         if (Reflect.construct.sham) return !1;
  17092.         if ('function' == typeof Proxy) return !0;
  17093.         try {
  17094.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  17095.           ], function () {
  17096.           })),
  17097.           !0
  17098.         } catch (e) {
  17099.           return !1
  17100.         }
  17101.       }();
  17102.       return function () {
  17103.         var e,
  17104.         t = Tf(n);
  17105.         return e = a ? (e = Tf(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  17106.         t = this,
  17107.         !(e = e) || 'object' !== Nf(e) && 'function' != typeof e ? jf(t) : e
  17108.       }
  17109.     }
  17110.     function jf(e) {
  17111.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  17112.       return e
  17113.     }
  17114.     function Tf(e) {
  17115.       return (Tf = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  17116.         return e.__proto__ || Object.getPrototypeOf(e)
  17117.       }) (e)
  17118.     }
  17119.     function If(e, t, n) {
  17120.       return t in e ? Object.defineProperty(e, t, {
  17121.         value: n,
  17122.         enumerable: !0,
  17123.         configurable: !0,
  17124.         writable: !0
  17125.       }) : e[t] = n,
  17126.       e
  17127.     }
  17128.     function qf() {
  17129.       return (qf = Object.assign || function (e) {
  17130.         for (var t = 1; t < arguments.length; t++) {
  17131.           var n,
  17132.           a = arguments[t];
  17133.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  17134.         }
  17135.         return e
  17136.       }).apply(this, arguments)
  17137.     }
  17138.     function Ff(e) {
  17139.       return C.a.createElement(Lf, qf({
  17140.       }, e, {
  17141.         className: 'select__option'.concat(e.className ? ' '.concat(e.className) : '').concat(e.data.icon ? ' has-icon' : '').concat(e.data.tag ? ' has-tag' : '').concat(e.isDisabled ? ' disabled' : ''),
  17142.         isDisabled: e.isDisabled
  17143.       }), e.data.icon ? C.a.createElement('span', {
  17144.         className: 'icon icon-'.concat(e.data.icon)
  17145.       }) : null, C.a.createElement('span', {
  17146.         style: e.data.style
  17147.       }, e.data.label), e.data.tag ? C.a.createElement('span', {
  17148.         className: 'select__option-tag',
  17149.         style: {
  17150.           background: e.data.tag.color
  17151.         }
  17152.       }, e.data.tag.text) : null)
  17153.     }
  17154.     var Lf = yl.components.Option;
  17155.     Ff.propTypes = {
  17156.       className: b.a.string,
  17157.       isDisabled: b.a.bool,
  17158.       data: b.a.shape({
  17159.         label: b.a.string.isRequired,
  17160.         key: b.a.oneOfType([b.a.string,
  17161.         b.a.number]).isRequired,
  17162.         value: b.a.any.isRequired,
  17163.         icon: b.a.string,
  17164.         tag: b.a.shape({
  17165.           text: b.a.string,
  17166.           color: b.a.string
  17167.         }),
  17168.         style: b.a.object
  17169.       }).isRequired
  17170.     };
  17171.     function Uf(e) {
  17172.       return C.a.createElement('div', {
  17173.         className: 'select__value'.concat(e.data.icon ? ' has-icon' : '').concat(e.data.tag ? ' has-tag' : ''),
  17174.         style: e.data.style
  17175.       }, e.data.icon ? C.a.createElement('span', {
  17176.         className: 'icon icon-'.concat(e.data.icon)
  17177.       }) : null, e.data.label, e.data.tag ? C.a.createElement('span', {
  17178.         className: 'select__option-tag',
  17179.         style: {
  17180.           background: e.data.tag.color
  17181.         }
  17182.       }, e.data.tag.text) : null)
  17183.     }
  17184.     Uf.propTypes = {
  17185.       className: b.a.string,
  17186.       data: b.a.shape({
  17187.         label: b.a.string.isRequired,
  17188.         icon: b.a.string,
  17189.         tag: b.a.shape({
  17190.           text: b.a.string,
  17191.           color: b.a.string
  17192.         }),
  17193.         style: b.a.object
  17194.       }).isRequired
  17195.     };
  17196.     Pc = function () {
  17197.       !function (e, t) {
  17198.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  17199.         e.prototype = Object.create(t && t.prototype, {
  17200.           constructor: {
  17201.             value: e,
  17202.             writable: !0,
  17203.             configurable: !0
  17204.           }
  17205.         }),
  17206.         t && Af(e, t)
  17207.       }(r, A);
  17208.       var e,
  17209.       t,
  17210.       n,
  17211.       a = Df(r);
  17212.       function r(e) {
  17213.         var n;
  17214.         return function (e, t) {
  17215.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  17216.         }(this, r),
  17217.         If(jf(n = a.call(this, e)), 'getInitialSelection', function () {
  17218.           return n.props.value ? n.getOptionByValue(n.props.value) : null
  17219.         }),
  17220.         If(jf(n), 'getOptionByValue', function (t) {
  17221.           var e = n.props.options.filter(function (e) {
  17222.             return e.value === t
  17223.           });
  17224.           return e.length ? e[0] : null
  17225.         }),
  17226.         If(jf(n), 'handleChange', function (e) {
  17227.           e = {
  17228.             target: Rf(Rf({
  17229.             }, e), {
  17230.             }, {
  17231.               type: 'select'
  17232.             })
  17233.           };
  17234.           n.props.onChange(e)
  17235.         }),
  17236.         If(jf(n), 'handleClick', function (e) {
  17237.           e.preventDefault(),
  17238.           e.stopPropagation()
  17239.         }),
  17240.         If(jf(n), 'getEstimatedWidth', function (e) {
  17241.           e = e.reduce(function (e, t) {
  17242.             return e < t.label.length ? t.label.length : e
  17243.           }, n.props.placeholder ? n.props.placeholder.length : '');
  17244.           return e < 15 ? 175 : 8 * e + 20 + 37
  17245.         }),
  17246.         n.handleChange = n.handleChange.bind(jf(n)),
  17247.         n.getInitialSelection = n.getInitialSelection.bind(jf(n)),
  17248.         n.getOptionByValue = n.getOptionByValue.bind(jf(n)),
  17249.         n.state = {
  17250.           selectedOption: n.getInitialSelection(),
  17251.           width: n.props.width || n.getEstimatedWidth(n.props.options)
  17252.         },
  17253.         n
  17254.       }
  17255.       return e = r,
  17256.       (t = [
  17257.         {
  17258.           key: 'componentWillReceiveProps',
  17259.           value: function (e) {
  17260.             this.props.width === e.width && JSON.stringify(this.props.options) === JSON.stringify(e.options) || (this.state.width = this.props.width || this.getEstimatedWidth(e.options))
  17261.           }
  17262.         },
  17263.         {
  17264.           key: 'render',
  17265.           value: function () {
  17266.             var t = this,
  17267.             e = ''.concat(this.props.idNamespace || '', '_').concat(this.props.name),
  17268.             n = 'select__wrapper'.concat(this.props.inline ? ' inline-select' : '').concat(this.props.className ? ' '.concat(this.props.className) : ''),
  17269.             a = 'select__container'.concat(this.props.searchable ? ' searchable' : ''),
  17270.             a = C.a.createElement('div', {
  17271.               className: n,
  17272.               onClick: function (e) {
  17273.                 return t.handleClick(e)
  17274.               },
  17275.               style: {
  17276.                 width: ''.concat(this.state.width, 'px')
  17277.               }
  17278.             }, C.a.createElement(tf.a, {
  17279.               id: e,
  17280.               className: a,
  17281.               classNamePrefix: 'select',
  17282.               options: this.props.options,
  17283.               isOptionDisabled: function (e) {
  17284.                 return e.isDisabled
  17285.               },
  17286.               value: this.getOptionByValue(this.props.value),
  17287.               placeholder: this.props.placeholder,
  17288.               components: {
  17289.                 Option: this.props.customOption || Ff,
  17290.                 SingleValue: Uf
  17291.               },
  17292.               onChange: function (e) {
  17293.                 return t.handleChange(e)
  17294.               },
  17295.               isDisabled: this.props.readOnly || this.props.disabled,
  17296.               isLoading: this.props.loading,
  17297.               isSearchable: this.props.searchable || !1,
  17298.               isMulti: this.props.multiple
  17299.             }));
  17300.             return !this.props.inline && this.props.label ? C.a.createElement(kf, {
  17301.               label: this.props.label,
  17302.               labelId: e,
  17303.               tooltip: this.props.tooltip,
  17304.               shouldHighlight: this.props.shouldHighlight
  17305.             }, a, this.props.children) : this.props.secondaryLabel ? C.a.createElement('div', {
  17306.               className: this.props.inline ? 'spacing-right' : 'spacing-bottom'
  17307.             }, C.a.createElement('div', {
  17308.               className: 'spacing-bottom-small text-semibold'
  17309.             }, this.props.label || this.props.secondaryLabel), a) : a
  17310.           }
  17311.         }
  17312.       ]) && xf(e.prototype, t),
  17313.       n && xf(e, n),
  17314.       r
  17315.     }();
  17316.     Pc.propTypes = {
  17317.       name: b.a.string.isRequired,
  17318.       options: b.a.arrayOf(Li).isRequired,
  17319.       placeholder: b.a.string,
  17320.       value: b.a.node,
  17321.       label: b.a.node,
  17322.       secondaryLabel: b.a.node,
  17323.       disabled: b.a.bool,
  17324.       loading: b.a.bool,
  17325.       shouldHighlight: b.a.bool,
  17326.       onChange: b.a.func.isRequired,
  17327.       idNamespace: b.a.string,
  17328.       tooltip: b.a.node,
  17329.       width: b.a.number,
  17330.       customOption: b.a.node,
  17331.       className: b.a.string,
  17332.       children: b.a.node,
  17333.       readOnly: b.a.bool,
  17334.       searchable: b.a.bool,
  17335.       multiple: b.a.bool,
  17336.       inline: b.a.bool
  17337.     };
  17338.     var Mf = Pc;
  17339.     function Bf(e) {
  17340.       return (Bf = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  17341.         return typeof e
  17342.       }
  17343.        : function (e) {
  17344.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  17345.       }) (e)
  17346.     }
  17347.     function zf(t, e) {
  17348.       var n,
  17349.       a = Object.keys(t);
  17350.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  17351.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  17352.       })), a.push.apply(a, n)),
  17353.       a
  17354.     }
  17355.     function Hf() {
  17356.       return (Hf = Object.assign || function (e) {
  17357.         for (var t = 1; t < arguments.length; t++) {
  17358.           var n,
  17359.           a = arguments[t];
  17360.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  17361.         }
  17362.         return e
  17363.       }).apply(this, arguments)
  17364.     }
  17365.     function Gf(e, t) {
  17366.       for (var n = 0; n < t.length; n++) {
  17367.         var a = t[n];
  17368.         a.enumerable = a.enumerable || !1,
  17369.         a.configurable = !0,
  17370.         'value' in a && (a.writable = !0),
  17371.         Object.defineProperty(e, a.key, a)
  17372.       }
  17373.     }
  17374.     function Vf(e, t) {
  17375.       return (Vf = Object.setPrototypeOf || function (e, t) {
  17376.         return e.__proto__ = t,
  17377.         e
  17378.       }) (e, t)
  17379.     }
  17380.     function Wf(n) {
  17381.       var a = function () {
  17382.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  17383.         if (Reflect.construct.sham) return !1;
  17384.         if ('function' == typeof Proxy) return !0;
  17385.         try {
  17386.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  17387.           ], function () {
  17388.           })),
  17389.           !0
  17390.         } catch (e) {
  17391.           return !1
  17392.         }
  17393.       }();
  17394.       return function () {
  17395.         var e,
  17396.         t = Qf(n);
  17397.         return e = a ? (e = Qf(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  17398.         t = this,
  17399.         !(e = e) || 'object' !== Bf(e) && 'function' != typeof e ? Yf(t) : e
  17400.       }
  17401.     }
  17402.     function Yf(e) {
  17403.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  17404.       return e
  17405.     }
  17406.     function Qf(e) {
  17407.       return (Qf = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  17408.         return e.__proto__ || Object.getPrototypeOf(e)
  17409.       }) (e)
  17410.     }
  17411.     function Kf(e, t, n) {
  17412.       return t in e ? Object.defineProperty(e, t, {
  17413.         value: n,
  17414.         enumerable: !0,
  17415.         configurable: !0,
  17416.         writable: !0
  17417.       }) : e[t] = n,
  17418.       e
  17419.     }
  17420.     var Jf = Ve.a.getFromCookie(),
  17421.     Dc = function () {
  17422.       !function (e, t) {
  17423.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  17424.         e.prototype = Object.create(t && t.prototype, {
  17425.           constructor: {
  17426.             value: e,
  17427.             writable: !0,
  17428.             configurable: !0
  17429.           }
  17430.         }),
  17431.         t && Vf(e, t)
  17432.       }(r, A);
  17433.       var e,
  17434.       t,
  17435.       n,
  17436.       a = Wf(r);
  17437.       function r() {
  17438.         var s;
  17439.         !function (e, t) {
  17440.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  17441.         }(this, r);
  17442.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  17443.         return Kf(Yf(s = a.call.apply(a, [
  17444.           this
  17445.         ].concat(t))), 'state', {
  17446.           modelType: 'forum',
  17447.           actionGroup: Hm.forum[0].key,
  17448.           selectedActions: null,
  17449.           idsText: '',
  17450.           ids: [
  17451.           ],
  17452.           progress: 0,
  17453.           logs: [
  17454.           ],
  17455.           selectedLog: null,
  17456.           isSaving: !1,
  17457.           isSaved: !1
  17458.         }),
  17459.         Kf(Yf(s), 'getActionPresets', function () {
  17460.           return Vm[s.state.modelType]
  17461.         }),
  17462.         Kf(Yf(s), 'getActionGroup', function (e) {
  17463.           return je.a.findWhere(Hm[s.state.modelType], {
  17464.             key: e
  17465.           })
  17466.         }),
  17467.         Kf(Yf(s), 'getAction', function (e, t) {
  17468.           return je.a.findWhere(Gm[s.state.modelType][t], {
  17469.             id: e
  17470.           })
  17471.         }),
  17472.         Kf(Yf(s), 'handleIdsTextareaChange', function (e) {
  17473.           s.setState({
  17474.             idsText: e.target.value
  17475.           })
  17476.         }),
  17477.         Kf(Yf(s), 'handleIdsTextareaBlur', function () {
  17478.           var e = je.a.chain(s.state.idsText.split(',')).map(function (e) {
  17479.             return e.replace(/\s/g, '')
  17480.           }).filter().uniq().value();
  17481.           s.setState({
  17482.             ids: e
  17483.           })
  17484.         }),
  17485.         Kf(Yf(s), 'handleActionGroupChange', function (e) {
  17486.           s.setState({
  17487.             actionGroup: e.target.value
  17488.           })
  17489.         }),
  17490.         Kf(Yf(s), 'handleAddAction', function (e, t) {
  17491.           s.handleAddActions([{
  17492.             action: e,
  17493.             actionGroup: t
  17494.           }
  17495.           ])
  17496.         }),
  17497.         Kf(Yf(s), 'handleAddActions', function (e) {
  17498.           var a = Hf({
  17499.           }, s.state.selectedActions);
  17500.           e.forEach(function (e) {
  17501.             var t = e.action,
  17502.             n = e.actionGroup;
  17503.             a[n] || (a[n] = [
  17504.             ]);
  17505.             e = a[n],
  17506.             n = je.a.findIndex(e, function (e) {
  17507.               return e.id === t.id
  17508.             });
  17509.             n < 0 ? e.push(t) : e[n] = t
  17510.           }),
  17511.           s.setState({
  17512.             selectedActions: a
  17513.           })
  17514.         }),
  17515.         Kf(Yf(s), 'handlePreset', function (e) {
  17516.           e = e.actions.map(function (e) {
  17517.             return {
  17518.               action: s.getAction(e.id, e.group),
  17519.               actionGroup: e.group
  17520.             }
  17521.           });
  17522.           s.handleAddActions(e)
  17523.         }),
  17524.         Kf(Yf(s), 'handleUpdateActionValue', function (e, t, n) {
  17525.           e.value !== n && s.handleAddAction(Hf({
  17526.           }, e, {
  17527.             value: n
  17528.           }), t)
  17529.         }),
  17530.         Kf(Yf(s), 'handleRemoveAction', function (t, e) {
  17531.           var n = Hf({
  17532.           }, s.state.selectedActions);
  17533.           n[e] = je.a.reject(n[e], function (e) {
  17534.             return e.id === t.id
  17535.           }),
  17536.           n[e].length || (n = je.a.omit(n, e)),
  17537.           s.setState({
  17538.             selectedActions: n = !Object.keys(n).length ? null : n
  17539.           })
  17540.         }),
  17541.         Kf(Yf(s), 'handleUpdateClick', function () {
  17542.           s.setState({
  17543.             isSaving: !0,
  17544.             isSaved: !1,
  17545.             logs: [
  17546.             ],
  17547.             progress: 0
  17548.           }, function () {
  17549.             function i(e, t) {
  17550.               return (e || '') + t
  17551.             }
  17552.             s.state.ids.forEach(function (t) {
  17553.               Object.keys(s.state.selectedActions).forEach(function (e) {
  17554.                 var r = s.getActionGroup(e),
  17555.                 o = function (t) {
  17556.                   for (var e = 1; e < arguments.length; e++) {
  17557.                     var n = null != arguments[e] ? arguments[e] : {
  17558.                     };
  17559.                     e % 2 ? zf(Object(n), !0).forEach(function (e) {
  17560.                       Kf(t, e, n[e])
  17561.                     }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : zf(Object(n)).forEach(function (e) {
  17562.                       Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  17563.                     })
  17564.                   }
  17565.                   return t
  17566.                 }({
  17567.                 }, r.defaultData);
  17568.                 'global' !== s.state.modelType && (o[s.state.modelType] = t),
  17569.                 s.state.selectedActions[e].forEach(function (t) {
  17570.                   var n,
  17571.                   a;
  17572.                   t.isParam || (n = t.key || t.id, t.getRequest ? ((a = {
  17573.                     forum: o.forum
  17574.                   }) [t.getRequest.id] = t.value, t.getRequest.params && Object.keys(t.getRequest.params).forEach(function (e) {
  17575.                     a[e] = t.getRequest.params[e]
  17576.                   }), s.sendGetRequest(t.getRequest.endpoint, a).then(function (e) {
  17577.                     o[n] = e.map(function (e) {
  17578.                       return e.id
  17579.                     }),
  17580.                     s.sendRequest(r.endpoint, o)
  17581.                   })) : (je.a.isArray(t.value) ? o[n] = t.value.map(function (e) {
  17582.                     return i(t.argPrefix, e.trim())
  17583.                   }) : o[n] = i(t.argPrefix, t.value), s.sendRequest(r.endpoint, o)))
  17584.                 })
  17585.               })
  17586.             })
  17587.           })
  17588.         }),
  17589.         Kf(Yf(s), 'handleModelTypeChanged', function (e) {
  17590.           var t = e.target.value,
  17591.           n = s.state.actionGroup,
  17592.           e = s.state.selectedActions;
  17593.           Gm[t][n] || (n = Hm[t][0].key, e = null),
  17594.           s.setState({
  17595.             ids: 'global' === t ? [
  17596.               'global'
  17597.             ] : [
  17598.             ],
  17599.             modelType: t,
  17600.             actionGroup: n,
  17601.             selectedActions: e
  17602.           })
  17603.         }),
  17604.         Kf(Yf(s), 'sendGetRequest', function (a, r) {
  17605.           return new Promise(function (n) {
  17606.             io.a.call(a, {
  17607.               data: r,
  17608.               method: 'GET'
  17609.             }).success(function (t) {
  17610.               if (t.cursor.hasPrev || t.cursor.hasNext) {
  17611.                 if (t.cursor.hasPrev && !t.cursor.hasNext) return n(t.response);
  17612.                 var e;
  17613.                 t.cursor.hasNext && (r.cursor = t.cursor.next, e = s.sendGetRequest(a, r).then(function (e) {
  17614.                   return t.response.concat(e)
  17615.                 }), n(e))
  17616.               } else n(t.response)
  17617.             }).fail(function (e) {
  17618.               var t;
  17619.               try {
  17620.                 t = JSON.parse(e.responseText)
  17621.               } catch (e) {
  17622.                 t = {
  17623.                   code: 99,
  17624.                   response: 'There was an unknown error.'
  17625.                 }
  17626.               }
  17627.               s.appendLog(a, r, t)
  17628.             })
  17629.           })
  17630.         }),
  17631.         Kf(Yf(s), 'sendRequest', function (n, a) {
  17632.           return io.a.call(n, {
  17633.             data: a,
  17634.             method: 'POST'
  17635.           }).done(s.appendLog.bind(Yf(s), n, a)).fail(function (e) {
  17636.             var t;
  17637.             try {
  17638.               t = JSON.parse(e.responseText)
  17639.             } catch (e) {
  17640.               t = {
  17641.                 code: 99,
  17642.                 response: 'There was an unknown error.'
  17643.               }
  17644.             }
  17645.             s.appendLog(n, a, t)
  17646.           })
  17647.         }),
  17648.         Kf(Yf(s), 'appendLog', function (e, t, n) {
  17649.           var a = t[s.state.modelType];
  17650.           n && 0 === n.code && s.jesterEmit({
  17651.             object_type: s.state.modelType,
  17652.             object_id: a,
  17653.             extra_data: JSON.stringify({
  17654.               call: {
  17655.                 endpoint: e,
  17656.                 data: t
  17657.               }
  17658.             })
  17659.           });
  17660.           t = s.state.logs.concat([{
  17661.             id: a,
  17662.             data: t,
  17663.             endpoint: e,
  17664.             status: n
  17665.           }
  17666.           ]),
  17667.           e = t.length / (s.state.ids.length * Object.keys(s.state.selectedActions).length) * 100,
  17668.           n = 100 <= e,
  17669.           e = {
  17670.             logs: t,
  17671.             progress: Math.min(100, e),
  17672.             isSaved: n,
  17673.             isSaving: !n
  17674.           };
  17675.           n && ('global' !== s.state.modelType && (e.ids = [
  17676.           ]), e.idsText = ''),
  17677.           s.setState(e)
  17678.         }),
  17679.         Kf(Yf(s), 'filterAvailableActions', function () {
  17680.           var e = Gm[s.state.modelType][s.state.actionGroup];
  17681.           if (!s.state.selectedActions) return e;
  17682.           var n = s.state.selectedActions[s.state.actionGroup];
  17683.           return je.a.filter(e, function (t) {
  17684.             return je.a.findIndex(n, function (e) {
  17685.               return e.id === t.id
  17686.             }) < 0
  17687.           })
  17688.         }),
  17689.         Kf(Yf(s), 'jesterEmit', function (e) {
  17690.           e = Hf({
  17691.             user_id: Jf.id
  17692.           }, Bm, e),
  17693.           Bo.a.client.emit(e)
  17694.         }),
  17695.         Kf(Yf(s), 'renderAvailableActionItem', function (e) {
  17696.           return C.a.createElement('div', {
  17697.             key: e.id,
  17698.             className: 'align align--between align--middle spacing-bottom-small'
  17699.           }, C.a.createElement('div', null, C.a.createElement('h4', null, e.label, e.isRequired ? C.a.createElement('em', {
  17700.             className: 'text-small text-gray spacing-left-small'
  17701.           }, 'Required') : null)), C.a.createElement('div', null, C.a.createElement('button', {
  17702.             className: 'button button-sm button-outline text-smallest',
  17703.             onClick: s.handleAddAction.bind(Yf(s), e, s.state.actionGroup),
  17704.             disabled: s.state.isSaving
  17705.           }, C.a.createElement('span', {
  17706.             className: 'icon-small icon-plus icon-position'
  17707.           }))))
  17708.         }),
  17709.         Kf(Yf(s), 'renderPresetAction', function (e) {
  17710.           return C.a.createElement('div', {
  17711.             key: e.id
  17712.           }, C.a.createElement('button', {
  17713.             className: 'button button-sm button-outline text-smallest',
  17714.             onClick: s.handlePreset.bind(Yf(s), e)
  17715.           }, e.label))
  17716.         }),
  17717.         Kf(Yf(s), 'getActionOptions', function (e) {
  17718.           var t = e.options.map(function (e) {
  17719.             return {
  17720.               key: e.id,
  17721.               value: e.value || e.id,
  17722.               label: e.name
  17723.             }
  17724.           });
  17725.           return t.unshift({
  17726.             key: 'default',
  17727.             value: null,
  17728.             label: e.placeholder
  17729.           }),
  17730.           t
  17731.         }),
  17732.         Kf(Yf(s), 'renderSelectedActionInput', function (t, n) {
  17733.           switch (t.type) {
  17734.             case Mm.text:
  17735.             case Mm.number:
  17736.               return C.a.createElement('input', {
  17737.                 type: t.type,
  17738.                 className: 'input--textbox',
  17739.                 placeholder: t.placeholder,
  17740.                 disabled: s.state.isSaving,
  17741.                 value: t.value,
  17742.                 onChange: function (e) {
  17743.                   return s.handleUpdateActionValue(t, n, e.target.value)
  17744.                 }
  17745.               });
  17746.             case Mm.multiText:
  17747.               return C.a.createElement('textarea', {
  17748.                 className: 'input--textbox',
  17749.                 placeholder: t.placeholder,
  17750.                 disabled: s.state.isSaving,
  17751.                 value: je.a.isArray(t.value) ? t.value.join(',') : t.value,
  17752.                 onChange: function (e) {
  17753.                   return s.handleUpdateActionValue(t, n, e.target.value.split(','))
  17754.                 }
  17755.               });
  17756.             case Mm.boolean:
  17757.               return C.a.createElement('div', null, C.a.createElement('label', {
  17758.                 className: 'text-medium fieldset__block--checkbox'
  17759.               }, t.description), C.a.createElement('input', {
  17760.                 name: t.id,
  17761.                 type: 'radio',
  17762.                 value: '1',
  17763.                 checked: '1' === t.value,
  17764.                 disabled: s.state.isSaving,
  17765.                 onChange: s.handleUpdateActionValue.bind(Yf(s), t, n, '1')
  17766.               }), ' Yes', C.a.createElement('input', {
  17767.                 name: t.id,
  17768.                 type: 'radio',
  17769.                 value: '0',
  17770.                 checked: '0' === t.value,
  17771.                 disabled: s.state.isSaving,
  17772.                 onChange: s.handleUpdateActionValue.bind(Yf(s), t, n, '0'),
  17773.                 className: 'spacing-left'
  17774.               }), ' No');
  17775.             case Mm.select:
  17776.               return C.a.createElement(Mf, {
  17777.                 name: 'action',
  17778.                 value: t.value,
  17779.                 placeholder: t.placeholder,
  17780.                 options: s.getActionOptions(t),
  17781.                 onChange: function (e) {
  17782.                   return s.handleUpdateActionValue(t, n, e.target.value)
  17783.                 },
  17784.                 disabled: s.state.isSaving
  17785.               });
  17786.             case Mm.date:
  17787.               return C.a.createElement(ef, {
  17788.                 dateWrapperClass: 'bulk-tool__datepicker',
  17789.                 singleDate: !0,
  17790.                 singleMonth: !0,
  17791.                 startDate: Um,
  17792.                 minDate: Lm,
  17793.                 maxDate: Um,
  17794.                 action: t,
  17795.                 actionGroup: n,
  17796.                 onDateChange: s.onDateChange
  17797.               });
  17798.             default:
  17799.               return null
  17800.           }
  17801.         }),
  17802.         Kf(Yf(s), 'onDateChange', function (e, t, n) {
  17803.           n = ct.a.max(Lm, n).toISOString();
  17804.           s.handleUpdateActionValue(e, t, n)
  17805.         }),
  17806.         Kf(Yf(s), 'renderSelectedActionGroup', function (t) {
  17807.           var n = s.getActionGroup(t);
  17808.           return C.a.createElement('div', {
  17809.             key: n.key,
  17810.             className: 'spacing-top'
  17811.           }, C.a.createElement('strong', {
  17812.             className: 'text-small text-gray'
  17813.           }, n.label), s.state.selectedActions[n.key].map(function (e) {
  17814.             return C.a.createElement('div', {
  17815.               key: e.id,
  17816.               className: 'align align--between align--middle spacing-bottom spacing-top-small'
  17817.             }, C.a.createElement('div', {
  17818.               className: 'align align--middle'
  17819.             }, C.a.createElement('div', null, e.label), C.a.createElement('div', {
  17820.               className: 'spacing-left'
  17821.             }, s.renderSelectedActionInput(e, n.key))), C.a.createElement('div', null, C.a.createElement('button', {
  17822.               className: 'button button-sm button-fill--red text-smallest',
  17823.               onClick: s.handleRemoveAction.bind(Yf(s), e, t),
  17824.               disabled: s.state.isSaving
  17825.             }, C.a.createElement('span', {
  17826.               className: 'icon-small icon-cancel icon-position'
  17827.             }))))
  17828.           }))
  17829.         }),
  17830.         Kf(Yf(s), 'renderStatusLogs', function () {
  17831.           return C.a.createElement('div', {
  17832.             className: 'content__wrap spacing-bottom is-high-revenue'
  17833.           }, C.a.createElement('header', {
  17834.             className: 'settings__header'
  17835.           }, C.a.createElement('h3', {
  17836.             className: 'text-large text-gray-darker spacing-bottom-small'
  17837.           }, 'Status'), C.a.createElement('div', {
  17838.             className: 'earnings-bar__wrapper spacing-bottom-narrow'
  17839.           }, C.a.createElement('div', {
  17840.             className: 'earnings-bar__value',
  17841.             style: {
  17842.               width: ''.concat(s.state.progress, '%')
  17843.             }
  17844.           }))), C.a.createElement('section', {
  17845.             className: 'settings__content'
  17846.           }, C.a.createElement('table', {
  17847.             style: {
  17848.               width: '100%'
  17849.             }
  17850.           }, C.a.createElement('thead', null, C.a.createElement('tr', null, C.a.createElement('th', null, C.a.createElement('strong', null, 'Id')), C.a.createElement('th', null, C.a.createElement('strong', null, 'Status')))), C.a.createElement('tbody', null, s.state.logs.map(function (e, t) {
  17851.             return C.a.createElement('tr', {
  17852.               key: ''.concat(e.id, ' ').concat(e.endpoint, ' ').concat(t)
  17853.             }, C.a.createElement('td', null, e.id), C.a.createElement('td', null, C.a.createElement('span', {
  17854.               style: {
  17855.                 color: 0 < e.status.code ? 'red' : 'green'
  17856.               }
  17857.             }, 0 === e.status.code ? 'Success' : 'Failure'), C.a.createElement('button', {
  17858.               className: 'button button-link spacing-left-small',
  17859.               onClick: function () {
  17860.                 return s.setState({
  17861.                   selectedLog: e
  17862.                 })
  17863.               }
  17864.             }, 'More Details')))
  17865.           })))))
  17866.         }),
  17867.         s
  17868.       }
  17869.       return e = r,
  17870.       (t = [
  17871.         {
  17872.           key: 'render',
  17873.           value: function () {
  17874.             var n = this,
  17875.             e = this.state.actionGroup && this.filterAvailableActions();
  17876.             return C.a.createElement('div', {
  17877.               className: 'layout layout--publishers'
  17878.             }, C.a.createElement('div', {
  17879.               className: 'layout__main-with-aside'
  17880.             }, C.a.createElement('div', {
  17881.               className: 'content__wrap spacing-bottom-double'
  17882.             }, C.a.createElement('header', {
  17883.               className: 'settings__header'
  17884.             }, C.a.createElement('h2', {
  17885.               className: 'text-larger text-gray-darker spacing-bottom-small'
  17886.             }, 'The Incredible Bulk')), C.a.createElement('section', {
  17887.               className: 'settings__content'
  17888.             }, C.a.createElement(Mf, {
  17889.               name: 'modelType',
  17890.               className: 'spacing-bottom-narrow',
  17891.               value: this.state.modelType,
  17892.               options: zm,
  17893.               onChange: this.handleModelTypeChanged,
  17894.               disabled: this.state.isSaving
  17895.             }), 'global' === this.state.modelType ? null : C.a.createElement('textarea', {
  17896.               className: 'input--textbox',
  17897.               disabled: this.state.isSaving,
  17898.               value: this.state.idsText,
  17899.               onChange: this.handleIdsTextareaChange,
  17900.               onBlur: this.handleIdsTextareaBlur,
  17901.               placeholder: 'Enter '.concat('forum' === this.state.modelType ? 'Shortnames' : 'Ids', ' (separated by a comma)')
  17902.             })), C.a.createElement('section', {
  17903.               className: 'settings__content'
  17904.             }, C.a.createElement('h4', {
  17905.               className: 'text-large text-gray-darker spacing-bottom-small'
  17906.             }, 'Selected Actions'), this.state.selectedActions ? Object.keys(this.state.selectedActions).map(this.renderSelectedActionGroup) : C.a.createElement('em', {
  17907.               className: 'text-small text-gray'
  17908.             }, 'You haven\'t selected any actions yet.')), C.a.createElement('footer', {
  17909.               className: 'settings__footer'
  17910.             }, this.state.ids.length ? C.a.createElement('div', {
  17911.               className: 'spacing-bottom'
  17912.             }, this.state.ids.map(function (e) {
  17913.               var t;
  17914.               switch (n.state.modelType) {
  17915.                 case 'forum':
  17916.                   t = '//'.concat(e, '.').concat(pt.a.disqusHost, '/admin/');
  17917.                   break;
  17918.                 case 'organization':
  17919.                   t = '//'.concat(pt.a.disqusHost, '/admin/orgs/').concat(e, '/slug/')
  17920.               }
  17921.               return C.a.createElement('a', {
  17922.                 key: e,
  17923.                 href: t,
  17924.                 target: '_blank',
  17925.                 rel: 'noopener noreferrer',
  17926.                 className: 'button button-small button-outline spacing-right-small'
  17927.               }, e)
  17928.             })) : null, C.a.createElement('button', {
  17929.               className: 'button button-fill--brand button-padding-wider button-medium',
  17930.               disabled: !this.state.selectedActions || this.state.isSaving || !this.state.ids.length,
  17931.               onClick: this.handleUpdateClick
  17932.             }, 'Process Action'))), this.state.isSaving || this.state.isSaved ? this.renderStatusLogs() : null), C.a.createElement(_.a, {
  17933.               isOpen: !!this.state.selectedLog,
  17934.               onRequestClose: function () {
  17935.                 return n.setState({
  17936.                   selectedLog: null
  17937.                 })
  17938.               },
  17939.               className: 'admin-modal -clipped'
  17940.             }, C.a.createElement('div', {
  17941.               className: 'admin-modal__header align align--between'
  17942.             }, C.a.createElement('h3', {
  17943.               className: 'text-large'
  17944.             }, 'Status Detail')), C.a.createElement('div', {
  17945.               className: 'admin-modal__content padding-default'
  17946.             }, this.state.selectedLog ? C.a.createElement('div', null, C.a.createElement('strong', null, 'POST:'), ' ', C.a.createElement('a', {
  17947.               href: '//'.concat(pt.a.disqusHost, '/api/docs/').concat(this.state.selectedLog.endpoint)
  17948.             }, this.state.selectedLog.endpoint), C.a.createElement('div', null, C.a.createElement('pre', {
  17949.               className: 'spacing-top'
  17950.             }, C.a.createElement('code', null, JSON.stringify(this.state.selectedLog.data, null, '  ')))), C.a.createElement('h4', {
  17951.               className: 'spacing-top'
  17952.             }, 'Response'), C.a.createElement('div', null, C.a.createElement('pre', {
  17953.               className: 'spacing-top'
  17954.             }, C.a.createElement('code', null, JSON.stringify(this.state.selectedLog.status, null, '  '))))) : null)), C.a.createElement('div', {
  17955.               className: 'layout__aside'
  17956.             }, C.a.createElement('div', {
  17957.               className: 'content__wrap text-medium'
  17958.             }, C.a.createElement('div', {
  17959.               className: 'border-bottom padding-default'
  17960.             }, C.a.createElement('h3', null, 'Available Actions')), this.getActionPresets().length ? C.a.createElement('div', {
  17961.               className: 'padding-default'
  17962.             }, C.a.createElement('label', null, 'Presets'), this.getActionPresets().map(this.renderPresetAction)) : null, C.a.createElement('div', {
  17963.               className: 'border-bottom padding-default'
  17964.             }, C.a.createElement('label', null, 'Action Groups'), C.a.createElement(Mf, {
  17965.               name: 'actionGroup',
  17966.               value: this.state.actionGroup,
  17967.               options: Hm[this.state.modelType].map(function (e) {
  17968.                 return {
  17969.                   key: e.key,
  17970.                   value: e.key,
  17971.                   label: e.label
  17972.                 }
  17973.               }),
  17974.               onChange: this.handleActionGroupChange,
  17975.               placeholder: 'Select an action group',
  17976.               disabled: this.state.isSaving,
  17977.               width: '100%'
  17978.             })), C.a.createElement('div', {
  17979.               className: 'padding-default'
  17980.             }, e && e.length ? e.map(this.renderAvailableActionItem) : C.a.createElement('em', {
  17981.               className: 'text-gray text-small'
  17982.             }, 'No more available actions')))))
  17983.           }
  17984.         }
  17985.       ]) && Gf(e.prototype, t),
  17986.       n && Gf(e, n),
  17987.       r
  17988.     }();
  17989.     function $f(e) {
  17990.       return ($f = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  17991.         return typeof e
  17992.       }
  17993.        : function (e) {
  17994.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  17995.       }) (e)
  17996.     }
  17997.     function Zf(t, e) {
  17998.       var n,
  17999.       a = Object.keys(t);
  18000.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  18001.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  18002.       })), a.push.apply(a, n)),
  18003.       a
  18004.     }
  18005.     function Xf(t) {
  18006.       for (var e = 1; e < arguments.length; e++) {
  18007.         var n = null != arguments[e] ? arguments[e] : {
  18008.         };
  18009.         e % 2 ? Zf(Object(n), !0).forEach(function (e) {
  18010.           oh(t, e, n[e])
  18011.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Zf(Object(n)).forEach(function (e) {
  18012.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  18013.         })
  18014.       }
  18015.       return t
  18016.     }
  18017.     function eh(e, t) {
  18018.       for (var n = 0; n < t.length; n++) {
  18019.         var a = t[n];
  18020.         a.enumerable = a.enumerable || !1,
  18021.         a.configurable = !0,
  18022.         'value' in a && (a.writable = !0),
  18023.         Object.defineProperty(e, a.key, a)
  18024.       }
  18025.     }
  18026.     function th(e, t) {
  18027.       return (th = Object.setPrototypeOf || function (e, t) {
  18028.         return e.__proto__ = t,
  18029.         e
  18030.       }) (e, t)
  18031.     }
  18032.     function nh(n) {
  18033.       var a = function () {
  18034.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  18035.         if (Reflect.construct.sham) return !1;
  18036.         if ('function' == typeof Proxy) return !0;
  18037.         try {
  18038.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  18039.           ], function () {
  18040.           })),
  18041.           !0
  18042.         } catch (e) {
  18043.           return !1
  18044.         }
  18045.       }();
  18046.       return function () {
  18047.         var e,
  18048.         t = rh(n);
  18049.         return e = a ? (e = rh(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  18050.         t = this,
  18051.         !(e = e) || 'object' !== $f(e) && 'function' != typeof e ? ah(t) : e
  18052.       }
  18053.     }
  18054.     function ah(e) {
  18055.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  18056.       return e
  18057.     }
  18058.     function rh(e) {
  18059.       return (rh = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  18060.         return e.__proto__ || Object.getPrototypeOf(e)
  18061.       }) (e)
  18062.     }
  18063.     function oh(e, t, n) {
  18064.       return t in e ? Object.defineProperty(e, t, {
  18065.         value: n,
  18066.         enumerable: !0,
  18067.         configurable: !0,
  18068.         writable: !0
  18069.       }) : e[t] = n,
  18070.       e
  18071.     }
  18072.     Fc = function () {
  18073.       !function (e, t) {
  18074.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  18075.         e.prototype = Object.create(t && t.prototype, {
  18076.           constructor: {
  18077.             value: e,
  18078.             writable: !0,
  18079.             configurable: !0
  18080.           }
  18081.         }),
  18082.         t && th(e, t)
  18083.       }(o, A);
  18084.       var e,
  18085.       t,
  18086.       n,
  18087.       r = nh(o);
  18088.       function o() {
  18089.         var e;
  18090.         !function (e, t) {
  18091.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  18092.         }(this, o);
  18093.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  18094.         return oh(ah(e = r.call.apply(r, [
  18095.           this
  18096.         ].concat(n))), 'graph', C.a.createRef()),
  18097.         oh(ah(e), 'getGraphData', function () {
  18098.           return {
  18099.             x: 'date_utc',
  18100.             json: e.props.rows.map(function (e) {
  18101.               return Xf(Xf({
  18102.               }, e), {
  18103.               }, {
  18104.                 date_utc: e.date_utc.toDate()
  18105.               })
  18106.             }),
  18107.             keys: {
  18108.               value: [
  18109.                 'date_utc',
  18110.                 'comments',
  18111.                 'votes'
  18112.               ]
  18113.             },
  18114.             names: {
  18115.               comments: 'Comments',
  18116.               votes: 'Votes'
  18117.             }
  18118.           }
  18119.         }),
  18120.         e
  18121.       }
  18122.       return e = o,
  18123.       (t = [
  18124.         {
  18125.           key: 'componentDidMount',
  18126.           value: function () {
  18127.             var e = this.getGraphData();
  18128.             this.chart = Ed.a.generate({
  18129.               bindto: this.graph.current,
  18130.               data: e,
  18131.               color: {
  18132.                 pattern: [
  18133.                   '#752C85',
  18134.                   '#8B020E',
  18135.                   '#E56C00',
  18136.                   '#FDBE13'
  18137.                 ]
  18138.               },
  18139.               transition: {
  18140.                 duration: 0
  18141.               },
  18142.               axis: {
  18143.                 y: {
  18144.                   min: 0,
  18145.                   padding: {
  18146.                     bottom: 0
  18147.                   }
  18148.                 },
  18149.                 x: {
  18150.                   type: 'timeseries',
  18151.                   tick: {
  18152.                     format: this.props.dateColumnConfig.formatter
  18153.                   }
  18154.                 }
  18155.               },
  18156.               size: {
  18157.                 height: 200
  18158.               },
  18159.               point: {
  18160.                 show: !1
  18161.               }
  18162.             })
  18163.           }
  18164.         },
  18165.         {
  18166.           key: 'componentDidUpdate',
  18167.           value: function () {
  18168.             this.chart.load(this.getGraphData())
  18169.           }
  18170.         },
  18171.         {
  18172.           key: 'componentWillUnmount',
  18173.           value: function () {
  18174.             this.chart && (this.chart = this.chart.destroy())
  18175.           }
  18176.         },
  18177.         {
  18178.           key: 'render',
  18179.           value: function () {
  18180.             return C.a.createElement('div', {
  18181.               ref: this.graph
  18182.             })
  18183.           }
  18184.         }
  18185.       ]) && eh(e.prototype, t),
  18186.       n && eh(e, n),
  18187.       o
  18188.     }();
  18189.     oh(Fc, 'propTypes', {
  18190.       dateColumnConfig: b.a.object.isRequired,
  18191.       rows: b.a.array
  18192.     });
  18193.     var ih = Fc,
  18194.     Yc = function (e) {
  18195.       return C.a.createElement('div', {
  18196.         className: ''.concat(e.type, '_box dialog_box admin_content _analytics_comments_').concat(e.className ? ' '.concat(e.className) : '')
  18197.       }, C.a.createElement('div', {
  18198.         className: ''.concat(e.type, '_box_message dialog_box_message spacing-bottom-small')
  18199.       }, C.a.createElement('h2', {
  18200.         className: 'text-larger text-gray-darker spacing-bottom'
  18201.       }, e.headline), e.message), C.a.createElement('div', {
  18202.         className: 'text-semibold'
  18203.       }, 'upsell' === e.type ? C.a.createElement(Us, {
  18204.         linkClassName: 'button button-small text-medium '.concat(e.type, '_box_button'),
  18205.         path: '/settings/subscription/',
  18206.         orgId: e.selection.organization.id,
  18207.         orgSlug: e.selection.organization.slug,
  18208.         onClick: function () {
  18209.           return e.emitTrackingEvent({
  18210.             verb: 'click',
  18211.             object_type: 'button',
  18212.             object_id: 'upgrade_options'
  18213.           })
  18214.         }
  18215.       }, C.a.createElement('div', {
  18216.         className: 'align align--middle'
  18217.       }, C.a.createElement('div', {
  18218.         className: 'icon icon-'.concat(e.icon, ' spacing-right')
  18219.       }), C.a.createElement('div', null, 'See upgrade options'))) : C.a.createElement('a', {
  18220.         className: 'button button-small text-medium '.concat(e.type, '_box_button'),
  18221.         href: e.detailsUrl,
  18222.         target: '_blank',
  18223.         rel: 'noopener noreferrer'
  18224.       }, C.a.createElement('div', {
  18225.         className: 'align align--middle'
  18226.       }, C.a.createElement('div', {
  18227.         className: 'icon icon-'.concat(e.icon, ' spacing-right')
  18228.       }), C.a.createElement('div', null, e.buttonText)))))
  18229.     };
  18230.     Yc.displayName = 'DialogBox',
  18231.     Yc.propTypes = {
  18232.       type: b.a.oneOf(['info',
  18233.       'upsell']).isRequired,
  18234.       icon: b.a.string.isRequired,
  18235.       headline: b.a.oneOfType([b.a.string,
  18236.       b.a.node]).isRequired,
  18237.       detailsUrl: b.a.string.isRequired,
  18238.       buttonText: b.a.string,
  18239.       className: b.a.string,
  18240.       message: b.a.node.isRequired,
  18241.       selection: ht.isRequired,
  18242.       emitTrackingEvent: b.a.func
  18243.     };
  18244.     var sh = Yc,
  18245.     lh = function (e) {
  18246.       return C.a.createElement(sh, {
  18247.         type: 'upsell',
  18248.         icon: 'upgrade-arrow-pro',
  18249.         detailsUrl: e.planDetailsUrl,
  18250.         message: C.a.createElement(C.a.Fragment, null, e.upsellMessageLeft, ' ', C.a.createElement('a', {
  18251.           href: e.planDetailsUrl,
  18252.           target: '_blank',
  18253.           rel: 'noopener noreferrer'
  18254.         }, e.promotionalPlan), e.upsellMessageRight),
  18255.         headline: e.headline,
  18256.         selection: e.selection,
  18257.         className: e.className,
  18258.         emitTrackingEvent: e.emitTrackingEvent
  18259.       })
  18260.     };
  18261.     lh.displayName = 'UpsellBox',
  18262.     lh.propTypes = {
  18263.       headline: b.a.string.isRequired,
  18264.       promotionalPlan: b.a.string.isRequired,
  18265.       planDetailsUrl: b.a.string.isRequired,
  18266.       upsellMessageLeft: b.a.string.isRequired,
  18267.       upsellMessageRight: b.a.string.isRequired,
  18268.       selection: ht.isRequired,
  18269.       emitTrackingEvent: b.a.func.isRequired,
  18270.       className: b.a.string
  18271.     };
  18272.     var ch = lh;
  18273.     function uh(e) {
  18274.       return (uh = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  18275.         return typeof e
  18276.       }
  18277.        : function (e) {
  18278.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  18279.       }) (e)
  18280.     }
  18281.     function ph() {
  18282.       return (ph = Object.assign || function (e) {
  18283.         for (var t = 1; t < arguments.length; t++) {
  18284.           var n,
  18285.           a = arguments[t];
  18286.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  18287.         }
  18288.         return e
  18289.       }).apply(this, arguments)
  18290.     }
  18291.     function dh(e, t) {
  18292.       for (var n = 0; n < t.length; n++) {
  18293.         var a = t[n];
  18294.         a.enumerable = a.enumerable || !1,
  18295.         a.configurable = !0,
  18296.         'value' in a && (a.writable = !0),
  18297.         Object.defineProperty(e, a.key, a)
  18298.       }
  18299.     }
  18300.     function mh(e, t) {
  18301.       return (mh = Object.setPrototypeOf || function (e, t) {
  18302.         return e.__proto__ = t,
  18303.         e
  18304.       }) (e, t)
  18305.     }
  18306.     function fh(n) {
  18307.       var a = function () {
  18308.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  18309.         if (Reflect.construct.sham) return !1;
  18310.         if ('function' == typeof Proxy) return !0;
  18311.         try {
  18312.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  18313.           ], function () {
  18314.           })),
  18315.           !0
  18316.         } catch (e) {
  18317.           return !1
  18318.         }
  18319.       }();
  18320.       return function () {
  18321.         var e,
  18322.         t = gh(n);
  18323.         return e = a ? (e = gh(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  18324.         t = this,
  18325.         !(e = e) || 'object' !== uh(e) && 'function' != typeof e ? hh(t) : e
  18326.       }
  18327.     }
  18328.     function hh(e) {
  18329.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  18330.       return e
  18331.     }
  18332.     function gh(e) {
  18333.       return (gh = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  18334.         return e.__proto__ || Object.getPrototypeOf(e)
  18335.       }) (e)
  18336.     }
  18337.     function yh(e, t, n) {
  18338.       return t in e ? Object.defineProperty(e, t, {
  18339.         value: n,
  18340.         enumerable: !0,
  18341.         configurable: !0,
  18342.         writable: !0
  18343.       }) : e[t] = n,
  18344.       e
  18345.     }
  18346.     var bh = [
  18347.       {
  18348.         key: 'comments',
  18349.         name: 'Comments',
  18350.         description: 'Number of comments',
  18351.         prefix: '',
  18352.         suffix: ' comments',
  18353.         formatter: Dp.addThousandsSeparator
  18354.       },
  18355.       {
  18356.         key: 'votes',
  18357.         name: 'Votes',
  18358.         description: 'Number of votes',
  18359.         prefix: '',
  18360.         suffix: ' votes',
  18361.         formatter: Dp.addThousandsSeparator
  18362.       }
  18363.     ],
  18364.     vh = 'month',
  18365.     _h = (yh(Vb = {
  18366.     }, 'day', 'YYYY-MM-DD'), yh(Vb, vh, 'YYYY-MM'), Vb),
  18367.     Eh = ct.a.utc().startOf('day').subtract(1, 'year').add(1, 'day'),
  18368.     Oh = ct.a.utc().startOf('day'),
  18369.     Sh = {
  18370.       zone: 'analytics',
  18371.       section: 'comments'
  18372.     },
  18373.     cu = function () {
  18374.       !function (e, t) {
  18375.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  18376.         e.prototype = Object.create(t && t.prototype, {
  18377.           constructor: {
  18378.             value: e,
  18379.             writable: !0,
  18380.             configurable: !0
  18381.           }
  18382.         }),
  18383.         t && mh(e, t)
  18384.       }(r, A);
  18385.       var e,
  18386.       t,
  18387.       n,
  18388.       a = fh(r);
  18389.       function r() {
  18390.         var l;
  18391.         !function (e, t) {
  18392.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  18393.         }(this, r);
  18394.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  18395.         return yh(hh(l = a.call.apply(a, [
  18396.           this
  18397.         ].concat(t))), 'state', {
  18398.           startDate: ct() (l.props.maxDate).subtract(1, 'month').startOf('day'),
  18399.           endDate: l.props.maxDate,
  18400.           comments: null,
  18401.           votes: null,
  18402.           loading: !0,
  18403.           group: 'day',
  18404.           errorCode: null
  18405.         }),
  18406.         yh(hh(l), 'onFetch', function (e, t, n) {
  18407.           l.setState({
  18408.             comments: (n = n.response ? n.response : n).comments_series,
  18409.             votes: n.votes_series,
  18410.             startDate: e,
  18411.             endDate: t,
  18412.             loading: !1,
  18413.             errorCode: null
  18414.           })
  18415.         }),
  18416.         yh(hh(l), 'onError', function (e) {
  18417.           l.setState({
  18418.             errorCode: e,
  18419.             loading: !1
  18420.           })
  18421.         }),
  18422.         yh(hh(l), 'onGroupChange', function (e) {
  18423.           l.setState({
  18424.             group: e
  18425.           })
  18426.         }),
  18427.         yh(hh(l), 'onDateChange', function (e, t) {
  18428.           l.fetchData(e, t)
  18429.         }),
  18430.         yh(hh(l), 'fetchData', function (e, t) {
  18431.           l.setState({
  18432.             loading: !0
  18433.           });
  18434.           var n = e.clone().startOf('month').subtract(1, 'day'),
  18435.           a = t.clone().endOf('month').startOf('day'),
  18436.           r = br.orgId,
  18437.           o = br.shortname,
  18438.           a = {
  18439.             start: ct.a.max(Eh, n).toISOString(),
  18440.             end: ct.a.min(Oh, a).toISOString()
  18441.           },
  18442.           o = r ? (a = je.a.extend({
  18443.             organization: r
  18444.           }, a), 'organizations/admin/reports/interactionReport') : (a = je.a.extend({
  18445.             forum: o
  18446.           }, a), 'forums/admin/reports/interactionReport');
  18447.           io.a.call(o, {
  18448.             data: a,
  18449.             success: je.a.bind(l.onFetch, hh(l), e, t),
  18450.             error: l.onError
  18451.           })
  18452.         }),
  18453.         yh(hh(l), 'getRows', function () {
  18454.           for (var e = l.state.group, t = l.state.startDate.clone().startOf(e), n = l.state.endDate.clone().endOf(e), a = l.formatDataByInterval(l.state.comments, e), r = l.formatDataByInterval(l.state.votes, e), o = [
  18455.           ], i = t; i.isBefore(n); i.add(1, e)) {
  18456.             var s = i.format(_h[e]);
  18457.             o.push({
  18458.               date_utc: i.clone(),
  18459.               comments: a[s] || 0,
  18460.               votes: r[s] || 0
  18461.             })
  18462.           }
  18463.           t = o.length - 1;
  18464.           return l.isRowZero(o[t]) && o.splice(t, 1),
  18465.           o
  18466.         }),
  18467.         yh(hh(l), 'isRowZero', function (e) {
  18468.           return 0 === e.comments && 0 === e.votes
  18469.         }),
  18470.         yh(hh(l), 'formatDataByInterval', function (e, t) {
  18471.           if (!e) return [];
  18472.           var a = _h[t];
  18473.           return je.a.chain(e).reduce(function (e, t) {
  18474.             var n = ct.a.utc(t[0]).format(a);
  18475.             return e[n] = e[n] ? e[n] + t[1] : t[1],
  18476.             e
  18477.           }, {
  18478.           }).value()
  18479.         }),
  18480.         yh(hh(l), 'getCardContent', function () {
  18481.           var e,
  18482.           t = [
  18483.           ];
  18484.           return l.state.errorCode ? t.push(C.a.createElement(dd, {
  18485.             isPermissionError: 22 === l.state.errorCode,
  18486.             key: 'error'
  18487.           })) : (e = l.state.comments && l.state.votes ? l.getRows() : null) && t.push(C.a.createElement(ih, {
  18488.             dateColumnConfig: l.dateColumnConfig,
  18489.             rows: e,
  18490.             key: 'graph'
  18491.           }), C.a.createElement(Qd, ph({
  18492.           }, l.state, {
  18493.             key: 'table',
  18494.             rows: e,
  18495.             reverse: !0,
  18496.             columnsConfig: bh,
  18497.             dateColumnConfig: l.dateColumnConfig
  18498.           }))),
  18499.           l.state.loading && t.push(C.a.createElement(Ji, {
  18500.             key: 'loader'
  18501.           })),
  18502.           t
  18503.         }),
  18504.         l
  18505.       }
  18506.       return e = r,
  18507.       (t = [
  18508.         {
  18509.           key: 'componentWillMount',
  18510.           value: function () {
  18511.             this.dateColumnConfig = {
  18512.               key: 'date_utc',
  18513.               name: 'Date (UTC)',
  18514.               formatter: je.a.bind(function (e) {
  18515.                 return 'day' === this.state.group ? ct.a.utc(e).format('MMM Do YYYY') : ct.a.utc(e).format('MMM YYYY')
  18516.               }, this)
  18517.             },
  18518.             this.fetchData(this.state.startDate, this.state.endDate)
  18519.           }
  18520.         },
  18521.         {
  18522.           key: 'render',
  18523.           value: function () {
  18524.             var e = 'Your '.concat(br.orgId ? 'Organization\'s' : 'Site\'s', ' Comment Activity'),
  18525.             t = {
  18526.               api_key: pt.a.keys.api,
  18527.               start: ct.a.utc(this.state.startDate).toISOString(),
  18528.               end: ct.a.utc(this.state.endDate).toISOString()
  18529.             };
  18530.             br.orgId ? (n = 'organizations', t.organization = br.orgId) : br.shortname && (n = 'forums', t.forum = br.shortname);
  18531.             var n = io.a.getURL(''.concat(n, '/admin/reports/interactionReport.csv?').concat(vo.a.param(t))),
  18532.             t = ql(this.props.selection) && yo.a.isFeatureActive('launch_pro');
  18533.             return C.a.createElement('div', null, t ? C.a.createElement(ch, {
  18534.               headline: 'Looking for more advanced analytics?',
  18535.               promotionalPlan: 'Pro Analytics',
  18536.               planDetailsUrl: 'https://help.disqus.com/customer/en/portal/articles/2717193-disqus-pro-analytics',
  18537.               upsellMessageLeft: 'Upgrade to',
  18538.               upsellMessageRight: ' to better understand your audience and optimize your content strategy. Use Content Analysis to find which stories generate the most engagement.',
  18539.               selection: this.props.selection,
  18540.               emitTrackingEvent: this.props.emitTrackingEvent
  18541.             }) : null, C.a.createElement(Bp, {
  18542.               className: 'spacing-bottom basic-analytics',
  18543.               leftTitle: e,
  18544.               rightTitle: C.a.createElement('div', {
  18545.                 className: 'card__header-right'
  18546.               }, C.a.createElement('a', {
  18547.                 href: n,
  18548.                 target: '_blank',
  18549.                 rel: 'noopener noreferrer',
  18550.                 className: 'card__header-content-item -button -right text-gray-dark text-semibold'
  18551.               }, C.a.createElement('span', {
  18552.                 className: 'icon-download text-large spacing-right text-gray'
  18553.               }), 'Export Data'), C.a.createElement(Zp, {
  18554.                 dateWrapperClass: 'card__header-datepicker',
  18555.                 minDate: this.props.minDate,
  18556.                 maxDate: this.props.maxDate,
  18557.                 startDate: this.state.startDate,
  18558.                 endDate: this.state.endDate,
  18559.                 group: this.state.group,
  18560.                 onDateChange: this.onDateChange,
  18561.                 onGroupChange: this.onGroupChange
  18562.               }))
  18563.             }, this.getCardContent()))
  18564.           }
  18565.         }
  18566.       ]) && dh(e.prototype, t),
  18567.       n && dh(e, n),
  18568.       r
  18569.     }();
  18570.     yh(cu, 'propTypes', {
  18571.       maxDate: s.moment,
  18572.       minDate: s.moment,
  18573.       emitTrackingEvent: b.a.func.isRequired,
  18574.       emitDefaultViewEvent: b.a.func.isRequired,
  18575.       selection: ht.isRequired
  18576.     }),
  18577.     yh(cu, 'defaultProps', {
  18578.       minDate: ct() (ct.a.utc().startOf('day')).subtract(1, 'year').add(1, 'day').startOf('day'),
  18579.       maxDate: ct.a.utc().startOf('day')
  18580.     });
  18581.     var wh = Object(u.connect) (function (e) {
  18582.       return {
  18583.         selection: e.selection
  18584.       }
  18585.     }, {
  18586.       emitTrackingEvent: Xo(Sh),
  18587.       emitDefaultViewEvent: ei(Sh)
  18588.     }) (cu),
  18589.     Jc = function (e) {
  18590.       return C.a.createElement('div', {
  18591.         className: 'section-contained-narrower padding-top'
  18592.       }, C.a.createElement('div', {
  18593.         className: 'layout'
  18594.       }, C.a.cloneElement(e.children, {
  18595.         user: e.user
  18596.       })))
  18597.     };
  18598.     Jc.displayName = 'ForumCreate',
  18599.     Jc.propTypes = {
  18600.       children: b.a.node.isRequired,
  18601.       user: b.a.shape({
  18602.         name: b.a.string.isRequired,
  18603.         id: b.a.string.isRequired,
  18604.         username: b.a.string.isRequired,
  18605.         avatar: b.a.shape({
  18606.           cache: b.a.string.isRequired
  18607.         }).isRequired
  18608.       })
  18609.     };
  18610.     var Ph = Ni.a.attachDrivers(Jc, [
  18611.       rc
  18612.     ]),
  18613.     kh = n(49),
  18614.     Nh = function () {
  18615.       return function (t) {
  18616.         return io.a.call('forumCategories/list').done(function (e) {
  18617.           t({
  18618.             type: K.onFetch,
  18619.             response: e.response
  18620.           })
  18621.         })
  18622.       }
  18623.     },
  18624.     vu = function () {
  18625.       return function (n) {
  18626.         return io.a.call(''.concat(pt.a.urls.cdnCurrent, 'lang/statsP.js'), {
  18627.           cache: !0,
  18628.           dataType: 'jsonp',
  18629.           jsonpCallback: 'updateLanguageList',
  18630.           omitDisqusApiKey: !0
  18631.         }).done(function (e) {
  18632.           var t;
  18633.           n({
  18634.             type: $.onFetch,
  18635.             response: (t = e, Fm.data.map(function (e) {
  18636.               return {
  18637.                 code: e.attributes.code,
  18638.                 name: e.attributes.name,
  18639.                 rtl: e.attributes.rtl
  18640.               }
  18641.             }).filter(function (e) {
  18642.               return 'en' === e.code || t[e.code] && 65 <= t[e.code]
  18643.             }))
  18644.           })
  18645.         })
  18646.       }
  18647.     };
  18648.     function Ch(e) {
  18649.       return (Ch = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  18650.         return typeof e
  18651.       }
  18652.        : function (e) {
  18653.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  18654.       }) (e)
  18655.     }
  18656.     function Rh(e, t) {
  18657.       for (var n = 0; n < t.length; n++) {
  18658.         var a = t[n];
  18659.         a.enumerable = a.enumerable || !1,
  18660.         a.configurable = !0,
  18661.         'value' in a && (a.writable = !0),
  18662.         Object.defineProperty(e, a.key, a)
  18663.       }
  18664.     }
  18665.     function xh(e, t) {
  18666.       return (xh = Object.setPrototypeOf || function (e, t) {
  18667.         return e.__proto__ = t,
  18668.         e
  18669.       }) (e, t)
  18670.     }
  18671.     function Ah(n) {
  18672.       var a = function () {
  18673.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  18674.         if (Reflect.construct.sham) return !1;
  18675.         if ('function' == typeof Proxy) return !0;
  18676.         try {
  18677.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  18678.           ], function () {
  18679.           })),
  18680.           !0
  18681.         } catch (e) {
  18682.           return !1
  18683.         }
  18684.       }();
  18685.       return function () {
  18686.         var e,
  18687.         t = jh(n);
  18688.         return e = a ? (e = jh(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  18689.         t = this,
  18690.         !(e = e) || 'object' !== Ch(e) && 'function' != typeof e ? Dh(t) : e
  18691.       }
  18692.     }
  18693.     function Dh(e) {
  18694.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  18695.       return e
  18696.     }
  18697.     function jh(e) {
  18698.       return (jh = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  18699.         return e.__proto__ || Object.getPrototypeOf(e)
  18700.       }) (e)
  18701.     }
  18702.     function Th(e, t, n) {
  18703.       return t in e ? Object.defineProperty(e, t, {
  18704.         value: n,
  18705.         enumerable: !0,
  18706.         configurable: !0,
  18707.         writable: !0
  18708.       }) : e[t] = n,
  18709.       e
  18710.     }
  18711.     Ru = function () {
  18712.       !function (e, t) {
  18713.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  18714.         e.prototype = Object.create(t && t.prototype, {
  18715.           constructor: {
  18716.             value: e,
  18717.             writable: !0,
  18718.             configurable: !0
  18719.           }
  18720.         }),
  18721.         t && xh(e, t)
  18722.       }(o, A);
  18723.       var e,
  18724.       t,
  18725.       n,
  18726.       r = Ah(o);
  18727.       function o() {
  18728.         var t;
  18729.         !function (e, t) {
  18730.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  18731.         }(this, o);
  18732.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  18733.         return Th(Dh(t = r.call.apply(r, [
  18734.           this
  18735.         ].concat(n))), 'state', {
  18736.           error: null,
  18737.           isSaving: !1,
  18738.           isSaved: !1,
  18739.           validatedShortname: ''
  18740.         }),
  18741.         Th(Dh(t), 'handleRegisterForum', function (e) {
  18742.           return t.setState({
  18743.             isSaving: !0,
  18744.             error: null,
  18745.             isSaved: !1
  18746.           }),
  18747.           t.apiCall = io.a.call('forums/create', {
  18748.             data: e,
  18749.             method: 'POST'
  18750.           }).done(t.handleRegisterForumSuccess).fail(t.handleRegisterForumError),
  18751.           t.apiCall
  18752.         }),
  18753.         Th(Dh(t), 'handleSetError', function (e) {
  18754.           t.setState({
  18755.             error: e
  18756.           })
  18757.         }),
  18758.         Th(Dh(t), 'handleDismissError', function () {
  18759.           t.setState({
  18760.             error: null
  18761.           })
  18762.         }),
  18763.         Th(Dh(t), 'handleRegisterForumSuccess', function () {
  18764.           t.setState({
  18765.             error: null,
  18766.             isSaving: !1,
  18767.             isSaved: !0
  18768.           })
  18769.         }),
  18770.         Th(Dh(t), 'handleRegisterForumError', function (e) {
  18771.           t.setState({
  18772.             error: t.parseErrorResponse(e),
  18773.             isSaving: !1
  18774.           })
  18775.         }),
  18776.         Th(Dh(t), 'handleGenerateShortname', je.a.debounce(function (e) {
  18777.           t.getShortnameApiCall && 'pending' === t.getShortnameApiCall.state() && t.getShortnameApiCall.abort(),
  18778.           (e = (e || '').trim()).length < Kc ? t.setState({
  18779.             validatedShortname: ''
  18780.           }) : t.getShortnameApiCall = io.a.call('forums/getAvailableShortname', {
  18781.             data: {
  18782.               name: e
  18783.             }
  18784.           }).done(function (e) {
  18785.             t.setState({
  18786.               validatedShortname: e.response
  18787.             })
  18788.           }).fail(function () {
  18789.             t.setState({
  18790.               validatedShortname: t.handleFormatShortname(e)
  18791.             })
  18792.           })
  18793.         }, 500)),
  18794.         Th(Dh(t), 'handleFormatShortname', function (e) {
  18795.           return e ? e.toLowerCase().replace(/[^a-z0-9-]+/g, '').match(/^.{1,50}/) [0] : ''
  18796.         }),
  18797.         Th(Dh(t), 'parseErrorResponse', function (e) {
  18798.           var t;
  18799.           try {
  18800.             'Invalid argument, \'short_name\': This short name has already been taken.' === (t = JSON.parse(e.responseText).response) && (t = 'Your Disqus URL shortname is already taken. Please enter a new one.')
  18801.           } catch (e) {
  18802.             t = 'There was an error saving your changes.'
  18803.           }
  18804.           return t
  18805.         }),
  18806.         Th(Dh(t), 'getComponentProps', function () {
  18807.           return {
  18808.             forumCreateOnGenerateShortname: t.handleGenerateShortname,
  18809.             forumCreateValidatedShortname: t.state.validatedShortname,
  18810.             forumCreateOnFormatShortname: t.handleFormatShortname,
  18811.             forumCreateError: t.state.error,
  18812.             forumCreateIsSaving: t.state.isSaving,
  18813.             forumCreateIsSaved: t.state.isSaved,
  18814.             forumCreateOnRegister: t.handleRegisterForum,
  18815.             forumCreateOnDismissError: t.handleDismissError,
  18816.             forumCreateSetError: t.handleSetError
  18817.           }
  18818.         }),
  18819.         t
  18820.       }
  18821.       return e = o,
  18822.       (t = [
  18823.         {
  18824.           key: 'componentWillUnmount',
  18825.           value: function () {
  18826.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  18827.           }
  18828.         }
  18829.       ]) && Rh(e.prototype, t),
  18830.       n && Rh(e, n),
  18831.       o
  18832.     }();
  18833.     Th(Ru, 'displayName', 'ForumCreateDriver');
  18834.     xu = Object(ki.createDriver) (Ru);
  18835.     function Ih(e) {
  18836.       return (Ih = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  18837.         return typeof e
  18838.       }
  18839.        : function (e) {
  18840.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  18841.       }) (e)
  18842.     }
  18843.     function qh(e, t) {
  18844.       for (var n = 0; n < t.length; n++) {
  18845.         var a = t[n];
  18846.         a.enumerable = a.enumerable || !1,
  18847.         a.configurable = !0,
  18848.         'value' in a && (a.writable = !0),
  18849.         Object.defineProperty(e, a.key, a)
  18850.       }
  18851.     }
  18852.     function Fh(e, t) {
  18853.       return (Fh = Object.setPrototypeOf || function (e, t) {
  18854.         return e.__proto__ = t,
  18855.         e
  18856.       }) (e, t)
  18857.     }
  18858.     function Lh(n) {
  18859.       var a = function () {
  18860.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  18861.         if (Reflect.construct.sham) return !1;
  18862.         if ('function' == typeof Proxy) return !0;
  18863.         try {
  18864.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  18865.           ], function () {
  18866.           })),
  18867.           !0
  18868.         } catch (e) {
  18869.           return !1
  18870.         }
  18871.       }();
  18872.       return function () {
  18873.         var e,
  18874.         t = Uh(n);
  18875.         return e = a ? (e = Uh(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  18876.         t = this,
  18877.         !(e = e) || 'object' !== Ih(e) && 'function' != typeof e ? function (e) {
  18878.           if (void 0 !== e) return e;
  18879.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  18880.         }(t) : e
  18881.       }
  18882.     }
  18883.     function Uh(e) {
  18884.       return (Uh = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  18885.         return e.__proto__ || Object.getPrototypeOf(e)
  18886.       }) (e)
  18887.     }
  18888.     function Mh(e, t, n) {
  18889.       return t in e ? Object.defineProperty(e, t, {
  18890.         value: n,
  18891.         enumerable: !0,
  18892.         configurable: !0,
  18893.         writable: !0
  18894.       }) : e[t] = n,
  18895.       e
  18896.     }
  18897.     Bu = function () {
  18898.       !function (e, t) {
  18899.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  18900.         e.prototype = Object.create(t && t.prototype, {
  18901.           constructor: {
  18902.             value: e,
  18903.             writable: !0,
  18904.             configurable: !0
  18905.           }
  18906.         }),
  18907.         t && Fh(e, t)
  18908.       }(r, A);
  18909.       var e,
  18910.       t,
  18911.       n,
  18912.       a = Lh(r);
  18913.       function r() {
  18914.         return function (e, t) {
  18915.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  18916.         }(this, r),
  18917.         a.apply(this, arguments)
  18918.       }
  18919.       return e = r,
  18920.       (t = [
  18921.         {
  18922.           key: 'render',
  18923.           value: function () {
  18924.             var e = null,
  18925.             t = null;
  18926.             this.props.isSaved ? (e = 'is-saved', t = 'icon-checkmark') : this.props.isSaving ? (e = 'is-saving', t = 'spinner -sm') : this.props.saveErr && (e = 'save-err', t = 'icon-cancel');
  18927.             var n = 'fieldset__label '.concat(e ? ' '.concat(e) : '').concat(this.props.fieldsetAdditionalClass ? ' '.concat(this.props.fieldsetAdditionalClass) : ''),
  18928.             e = 'fieldset__block'.concat(this.props.blockAdditionalClass ? ' '.concat(this.props.blockAdditionalClass) : '');
  18929.             return C.a.createElement('div', {
  18930.               className: 'fieldset fieldset--save'
  18931.             }, C.a.createElement('div', {
  18932.               className: n
  18933.             }, C.a.createElement('div', {
  18934.               className: t
  18935.             })), C.a.createElement('div', {
  18936.               className: e
  18937.             }, C.a.createElement('button', {
  18938.               id: this.props.id,
  18939.               className: 'button button-fill--brand button-padding-wider button-medium',
  18940.               disabled: this.props.disabled,
  18941.               onClick: this.props.onClick
  18942.             }, this.props.buttonLabel), this.props.children))
  18943.           }
  18944.         }
  18945.       ]) && qh(e.prototype, t),
  18946.       n && qh(e, n),
  18947.       r
  18948.     }();
  18949.     Mh(Bu, 'defaultProps', {
  18950.       buttonLabel: 'Save'
  18951.     }),
  18952.     Mh(Bu, 'propTypes', {
  18953.       id: b.a.string,
  18954.       children: b.a.node,
  18955.       disabled: b.a.bool,
  18956.       onClick: b.a.func,
  18957.       isSaving: b.a.bool,
  18958.       isSaved: b.a.bool,
  18959.       saveErr: b.a.bool,
  18960.       buttonLabel: b.a.string,
  18961.       fieldsetAdditionalClass: b.a.string,
  18962.       blockAdditionalClass: b.a.string
  18963.     });
  18964.     var Bh = Bu;
  18965.     function zh(e) {
  18966.       return (zh = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  18967.         return typeof e
  18968.       }
  18969.        : function (e) {
  18970.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  18971.       }) (e)
  18972.     }
  18973.     function Hh() {
  18974.       return (Hh = Object.assign || function (e) {
  18975.         for (var t = 1; t < arguments.length; t++) {
  18976.           var n,
  18977.           a = arguments[t];
  18978.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  18979.         }
  18980.         return e
  18981.       }).apply(this, arguments)
  18982.     }
  18983.     function Gh(t, e) {
  18984.       var n,
  18985.       a = Object.keys(t);
  18986.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  18987.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  18988.       })), a.push.apply(a, n)),
  18989.       a
  18990.     }
  18991.     function Vh(e, t) {
  18992.       if (null == e) return {
  18993.       };
  18994.       var n,
  18995.       a = function (e, t) {
  18996.         if (null == e) return {
  18997.         };
  18998.         var n,
  18999.         a,
  19000.         r = {
  19001.         },
  19002.         o = Object.keys(e);
  19003.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  19004.         return r
  19005.       }(e, t);
  19006.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  19007.       return a
  19008.     }
  19009.     function Wh(e, t) {
  19010.       for (var n = 0; n < t.length; n++) {
  19011.         var a = t[n];
  19012.         a.enumerable = a.enumerable || !1,
  19013.         a.configurable = !0,
  19014.         'value' in a && (a.writable = !0),
  19015.         Object.defineProperty(e, a.key, a)
  19016.       }
  19017.     }
  19018.     function Yh(e, t) {
  19019.       return (Yh = Object.setPrototypeOf || function (e, t) {
  19020.         return e.__proto__ = t,
  19021.         e
  19022.       }) (e, t)
  19023.     }
  19024.     function Qh(n) {
  19025.       var a = function () {
  19026.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  19027.         if (Reflect.construct.sham) return !1;
  19028.         if ('function' == typeof Proxy) return !0;
  19029.         try {
  19030.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  19031.           ], function () {
  19032.           })),
  19033.           !0
  19034.         } catch (e) {
  19035.           return !1
  19036.         }
  19037.       }();
  19038.       return function () {
  19039.         var e,
  19040.         t = Kh(n);
  19041.         return e = a ? (e = Kh(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  19042.         t = this,
  19043.         !(e = e) || 'object' !== zh(e) && 'function' != typeof e ? function (e) {
  19044.           if (void 0 !== e) return e;
  19045.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  19046.         }(t) : e
  19047.       }
  19048.     }
  19049.     function Kh(e) {
  19050.       return (Kh = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  19051.         return e.__proto__ || Object.getPrototypeOf(e)
  19052.       }) (e)
  19053.     }
  19054.     function Jh(e, t, n) {
  19055.       return t in e ? Object.defineProperty(e, t, {
  19056.         value: n,
  19057.         enumerable: !0,
  19058.         configurable: !0,
  19059.         writable: !0
  19060.       }) : e[t] = n,
  19061.       e
  19062.     }
  19063.     Ju = function () {
  19064.       !function (e, t) {
  19065.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  19066.         e.prototype = Object.create(t && t.prototype, {
  19067.           constructor: {
  19068.             value: e,
  19069.             writable: !0,
  19070.             configurable: !0
  19071.           }
  19072.         }),
  19073.         t && Yh(e, t)
  19074.       }(r, A);
  19075.       var e,
  19076.       t,
  19077.       n,
  19078.       a = Qh(r);
  19079.       function r() {
  19080.         return function (e, t) {
  19081.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  19082.         }(this, r),
  19083.         a.apply(this, arguments)
  19084.       }
  19085.       return e = r,
  19086.       (t = [
  19087.         {
  19088.           key: 'render',
  19089.           value: function () {
  19090.             var e = this.props,
  19091.             t = e.idNamespace,
  19092.             n = e.name,
  19093.             a = e.inputState,
  19094.             r = e.label,
  19095.             o = e.labelAdditionalClass,
  19096.             i = e.fieldsetAdditionalClass,
  19097.             s = e.showLimit,
  19098.             l = e.useTextarea,
  19099.             c = e.children,
  19100.             u = e.inputOverrideClassName,
  19101.             p = e.value,
  19102.             d = e.type,
  19103.             m = e.shouldHighlight,
  19104.             f = e.inline,
  19105.             h = e.width,
  19106.             g = e.style,
  19107.             y = e.autocomplete,
  19108.             b = e.inputRef,
  19109.             v = e.childIsInput,
  19110.             e = Vh(e, [
  19111.               'idNamespace',
  19112.               'name',
  19113.               'inputState',
  19114.               'label',
  19115.               'labelAdditionalClass',
  19116.               'fieldsetAdditionalClass',
  19117.               'showLimit',
  19118.               'useTextarea',
  19119.               'children',
  19120.               'inputOverrideClassName',
  19121.               'value',
  19122.               'type',
  19123.               'shouldHighlight',
  19124.               'inline',
  19125.               'width',
  19126.               'style',
  19127.               'autocomplete',
  19128.               'inputRef',
  19129.               'childIsInput'
  19130.             ]),
  19131.             n = ''.concat(t || '', '_').concat(n),
  19132.             a = 'align__item--grow'.concat('error' === a ? ' is-error' : ''),
  19133.             u = ''.concat(u || 'input--textbox').concat(s ? ' resize-vertical show-limit' : ''),
  19134.             g = function (t) {
  19135.               for (var e = 1; e < arguments.length; e++) {
  19136.                 var n = null != arguments[e] ? arguments[e] : {
  19137.                 };
  19138.                 e % 2 ? Gh(Object(n), !0).forEach(function (e) {
  19139.                   Jh(t, e, n[e])
  19140.                 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Gh(Object(n)).forEach(function (e) {
  19141.                   Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  19142.                 })
  19143.               }
  19144.               return t
  19145.             }({
  19146.             }, g);
  19147.             h && (g.width = ''.concat(h, 'px'));
  19148.             p = null === p ? '' : p,
  19149.             e = l ? C.a.createElement('textarea', Hh({
  19150.               id: n,
  19151.               className: u,
  19152.               type: 'text',
  19153.               value: p,
  19154.               style: g,
  19155.               autoComplete: y ? 'on' : 'none'
  19156.             }, e)) : C.a.createElement('input', Hh({
  19157.               id: n,
  19158.               className: u,
  19159.               value: p,
  19160.               type: d,
  19161.               style: g,
  19162.               autoComplete: y ? 'on' : 'none',
  19163.               ref: b
  19164.             }, e));
  19165.             return f ? C.a.createElement('div', {
  19166.               className: 'inline__container'
  19167.             }, C.a.createElement('div', {
  19168.               className: 'relative__wrapper'
  19169.             }, e, C.a.createElement('div', {
  19170.               className: 'fieldset__limit'.concat(s ? '' : ' hidden')
  19171.             }, (this.props.value || '').length, '/', this.props.maxLength)), c) : C.a.createElement(kf, {
  19172.               label: r,
  19173.               labelId: n,
  19174.               labelAdditionalClass: o,
  19175.               fieldsetAdditionalClass: i,
  19176.               blockAdditionalClass: a,
  19177.               tooltip: this.props.tooltip,
  19178.               shouldHighlight: m,
  19179.               childIsInput: v
  19180.             }, C.a.createElement('div', {
  19181.               className: 'relative__wrapper'
  19182.             }, e, C.a.createElement('div', {
  19183.               className: 'fieldset__limit'.concat(s ? '' : ' hidden')
  19184.             }, (this.props.value || '').length, '/', this.props.maxLength)), c)
  19185.           }
  19186.         }
  19187.       ]) && Wh(e.prototype, t),
  19188.       n && Wh(e, n),
  19189.       r
  19190.     }();
  19191.     Jh(Ju, 'propTypes', {
  19192.       name: b.a.string.isRequired,
  19193.       value: b.a.string,
  19194.       type: b.a.oneOf(['text',
  19195.       'number']),
  19196.       inputState: b.a.oneOf(['none',
  19197.       'error']),
  19198.       placeholder: b.a.string,
  19199.       label: b.a.node,
  19200.       labelAdditionalClass: b.a.string,
  19201.       fieldsetAdditionalClass: b.a.string,
  19202.       onChange: b.a.func.isRequired,
  19203.       idNamespace: b.a.string,
  19204.       inputOverrideClassName: b.a.string,
  19205.       showLimit: b.a.bool,
  19206.       useTextarea: b.a.bool,
  19207.       tooltip: b.a.node,
  19208.       children: b.a.node,
  19209.       disabled: b.a.bool,
  19210.       readOnly: b.a.bool,
  19211.       shouldHighlight: b.a.bool,
  19212.       inline: b.a.bool,
  19213.       width: b.a.number,
  19214.       style: b.a.objectOf(b.a.oneOfType([b.a.string,
  19215.       b.a.number])),
  19216.       min: b.a.oneOfType([b.a.number,
  19217.       b.a.string]),
  19218.       max: b.a.oneOfType([b.a.number,
  19219.       b.a.string]),
  19220.       maxLength: b.a.oneOfType([b.a.number,
  19221.       b.a.string]),
  19222.       inputRef: b.a.shape({
  19223.         current: b.a.any
  19224.       }),
  19225.       spellCheck: b.a.bool,
  19226.       childIsInput: b.a.bool
  19227.     }),
  19228.     Jh(Ju, 'defaultProps', {
  19229.       type: 'text',
  19230.       autocomplete: !0
  19231.     });
  19232.     var $h = Ju;
  19233.     function Zh(e) {
  19234.       return (Zh = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  19235.         return typeof e
  19236.       }
  19237.        : function (e) {
  19238.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  19239.       }) (e)
  19240.     }
  19241.     function Xh(e, t) {
  19242.       for (var n = 0; n < t.length; n++) {
  19243.         var a = t[n];
  19244.         a.enumerable = a.enumerable || !1,
  19245.         a.configurable = !0,
  19246.         'value' in a && (a.writable = !0),
  19247.         Object.defineProperty(e, a.key, a)
  19248.       }
  19249.     }
  19250.     function eg(e, t) {
  19251.       return (eg = Object.setPrototypeOf || function (e, t) {
  19252.         return e.__proto__ = t,
  19253.         e
  19254.       }) (e, t)
  19255.     }
  19256.     function tg(n) {
  19257.       var a = function () {
  19258.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  19259.         if (Reflect.construct.sham) return !1;
  19260.         if ('function' == typeof Proxy) return !0;
  19261.         try {
  19262.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  19263.           ], function () {
  19264.           })),
  19265.           !0
  19266.         } catch (e) {
  19267.           return !1
  19268.         }
  19269.       }();
  19270.       return function () {
  19271.         var e,
  19272.         t = ag(n);
  19273.         return e = a ? (e = ag(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  19274.         t = this,
  19275.         !(e = e) || 'object' !== Zh(e) && 'function' != typeof e ? ng(t) : e
  19276.       }
  19277.     }
  19278.     function ng(e) {
  19279.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  19280.       return e
  19281.     }
  19282.     function ag(e) {
  19283.       return (ag = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  19284.         return e.__proto__ || Object.getPrototypeOf(e)
  19285.       }) (e)
  19286.     }
  19287.     function rg(e, t, n) {
  19288.       return t in e ? Object.defineProperty(e, t, {
  19289.         value: n,
  19290.         enumerable: !0,
  19291.         configurable: !0,
  19292.         writable: !0
  19293.       }) : e[t] = n,
  19294.       e
  19295.     }
  19296.     var Zu = window.navigator,
  19297.     og = (Zu.languages && Zu.languages[0] || Zu.language || 'en').split('-') [0],
  19298.     cp = {
  19299.       zone: 'create',
  19300.       section: 'install_new'
  19301.     },
  19302.     bp = function () {
  19303.       !function (e, t) {
  19304.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  19305.         e.prototype = Object.create(t && t.prototype, {
  19306.           constructor: {
  19307.             value: e,
  19308.             writable: !0,
  19309.             configurable: !0
  19310.           }
  19311.         }),
  19312.         t && eg(e, t)
  19313.       }(r, A);
  19314.       var e,
  19315.       t,
  19316.       n,
  19317.       a = tg(r);
  19318.       function r() {
  19319.         var o;
  19320.         !function (e, t) {
  19321.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  19322.         }(this, r);
  19323.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  19324.         return rg(ng(o = a.call.apply(a, [
  19325.           this
  19326.         ].concat(t))), 'state', {
  19327.           name: null,
  19328.           shortnameInputVisible: !1,
  19329.           customShortname: null,
  19330.           customShortnameTaken: !1,
  19331.           category: null,
  19332.           language: null,
  19333.           organization: null
  19334.         }),
  19335.         rg(ng(o), 'getSelectedLanguage', function (e) {
  19336.           e = je.a.find(e, function (e) {
  19337.             return e.code.split('_') [0] === og
  19338.           });
  19339.           return e ? e.code : 'en'
  19340.         }),
  19341.         rg(ng(o), 'handleCategoryInputChange', function (e) {
  19342.           o.setState({
  19343.             forumCategory: e.target.value
  19344.           })
  19345.         }),
  19346.         rg(ng(o), 'handleOrganizationInputChange', function (e) {
  19347.           o.setState({
  19348.             organization: e.target.value
  19349.           })
  19350.         }),
  19351.         rg(ng(o), 'handleNameInputChange', function (e) {
  19352.           e = e.target.value;
  19353.           o.setState({
  19354.             name: e
  19355.           }, o.state.shortnameInputVisible ? void 0 : o.props.forumCreateOnGenerateShortname.bind(null, e))
  19356.         }),
  19357.         rg(ng(o), 'handleShortnameInputChange', function (e) {
  19358.           e = o.props.forumCreateOnFormatShortname(e.target.value);
  19359.           o.setState({
  19360.             customShortname: e,
  19361.             customShortnameTaken: !1
  19362.           }, o.props.forumCreateOnGenerateShortname.bind(null, e))
  19363.         }),
  19364.         rg(ng(o), 'handleLanguageInputChange', function (e) {
  19365.           o.setState({
  19366.             language: e.target.value
  19367.           })
  19368.         }),
  19369.         rg(ng(o), 'handleCustomizeShortnameClick', function (e) {
  19370.           e.preventDefault(),
  19371.           o.setState({
  19372.             shortnameInputVisible: !0
  19373.           })
  19374.         }),
  19375.         rg(ng(o), 'createForum', function () {
  19376.           return o.props.forumCreateOnRegister({
  19377.             name: o.state.name,
  19378.             forumCategory: o.state.forumCategory,
  19379.             language: o.state.language,
  19380.             short_name: null === o.state.customShortname ? o.props.forumCreateValidatedShortname : o.state.customShortname,
  19381.             attach: [
  19382.               'forumNewPolicy'
  19383.             ],
  19384.             orgID: o.state.organization
  19385.           })
  19386.         }),
  19387.         rg(ng(o), 'navigateToNext', function (e) {
  19388.           var t = o.props.location.query.next,
  19389.           n = 'https://'.concat(e.response.id, '.').concat(pt.a.disqusHost, '/admin/install/welcome'),
  19390.           a = 'https://'.concat(e.response.id, '.').concat(pt.a.disqusHost, '/admin/acknowledge'),
  19391.           r = 'https://'.concat(e.response.id, '.').concat(pt.a.disqusHost, '/admin/polls/list');
  19392.           'checkout' === t ? (o.props.updateCheckoutData({
  19393.             forum: e.response.id
  19394.           }), o.props.history.push(ho.getRoute('/checkout/'))) : 'install' === t ? window.location.assign(n) : 'acknowledge' === t ? window.location.assign(a) : 'polls' === t ? window.location.assign(''.concat(r, '/?').concat(Ur.CHECKOUT_SUCCESS_QUERY_PARAM, '=').concat(Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS)) : o.state.organization && window._v5Config.organizations && window._v5Config.organizations[o.state.organization] && window._v5Config.organizations[o.state.organization].pollsOnly ? window.location.assign(r) : o.state.organization ? window.location.assign(n) : window.location.assign(a)
  19395.         }),
  19396.         rg(ng(o), 'setPlanActivationError', function () {
  19397.           o.props.forumCreateSetError(C.a.createElement('span', null, 'There was an error with your activation code. Please try again or email ', C.a.createElement('a', {
  19398.             href: 'mailto:cwalkershaw@disqus.com'
  19399.           }, 'cwalkershaw@disqus.com'), ' if the issue persists.'))
  19400.         }),
  19401.         rg(ng(o), 'handleCreateForum', function (e) {
  19402.           e.preventDefault();
  19403.           var t = o.props.location.query.activationCode;
  19404.           return t ? o.props.validateActivationCode(t).done(function (e) {
  19405.             return e.response ? o.createForum().done(function (e) {
  19406.               return o.props.activatePlan(e.response.organizationId || o.state.organization, t).done(function () {
  19407.                 return o.navigateToNext(e)
  19408.               }).fail(o.setPlanActivationError)
  19409.             }) : o.setPlanActivationError()
  19410.           }).fail(o.setPlanActivationError) : o.createForum().done(function (e) {
  19411.             return o.navigateToNext(e)
  19412.           })
  19413.         }),
  19414.         rg(ng(o), 'handleClickSuggestedShortname', function (e) {
  19415.           e.preventDefault(),
  19416.           o.setState({
  19417.             customShortname: o.props.forumCreateValidatedShortname,
  19418.             customShortnameTaken: !1
  19419.           })
  19420.         }),
  19421.         o
  19422.       }
  19423.       return e = r,
  19424.       (t = [
  19425.         {
  19426.           key: 'componentWillMount',
  19427.           value: function () {
  19428.             this.props.forumLanguages.length && this.setState({
  19429.               language: this.getSelectedLanguage(this.props.forumLanguages)
  19430.             })
  19431.           }
  19432.         },
  19433.         {
  19434.           key: 'componentDidMount',
  19435.           value: function () {
  19436.             this.props.fetchForumCategories(),
  19437.             this.props.fetchForumLanguages()
  19438.           }
  19439.         },
  19440.         {
  19441.           key: 'componentWillReceiveProps',
  19442.           value: function (e) {
  19443.             var t = {
  19444.             },
  19445.             n = e.forumCreateValidatedShortname || '',
  19446.             n = this.state.shortnameInputVisible && Kc <= n.length && n !== this.state.customShortname;
  19447.             n && (t.customShortnameTaken = n),
  19448.             this.props.forumLanguages.length || !e.forumLanguages.length || this.state.language || (t.language = this.getSelectedLanguage(e.forumLanguages)),
  19449.             this.setState(t)
  19450.           }
  19451.         },
  19452.         {
  19453.           key: 'render',
  19454.           value: function () {
  19455.             var t = this;
  19456.             if (!this.props.user) return C.a.createElement(Ji, null);
  19457.             var e = this.props.forumCategories.allCategories.map(function (e) {
  19458.               return {
  19459.                 key: e.id,
  19460.                 value: e.id,
  19461.                 label: e.name
  19462.               }
  19463.             }),
  19464.             n = this.props.forumLanguages.map(function (e) {
  19465.               return {
  19466.                 key: e.code,
  19467.                 value: e.code,
  19468.                 label: e.name
  19469.               }
  19470.             }),
  19471.             a = null === this.state.customShortname ? this.props.forumCreateValidatedShortname : this.state.customShortname,
  19472.             r = '//'.concat(pt.a.disqusHost, '/logout/?redirect=').concat(encodeURIComponent(window.location.href)),
  19473.             o = C.a.createElement('p', {
  19474.               className: 'forum-create__description spacing-top-small'
  19475.             }, 'Your unique disqus URL will be: ', C.a.createElement('span', {
  19476.               className: 'text-bold'
  19477.             }, a || 'shortname'), '.disqus.com', this.state.shortnameInputVisible ? null : C.a.createElement('span', null, C.a.createElement('br', null), C.a.createElement('a', {
  19478.               href: '#',
  19479.               onClick: this.handleCustomizeShortnameClick
  19480.             }, 'Customize Your URL'))),
  19481.             i = this.state.shortnameInputVisible ? C.a.createElement('div', {
  19482.               className: 'spacing-bottom-large'
  19483.             }, C.a.createElement('div', {
  19484.               className: 'forum-create__label'
  19485.             }, 'Shortname*'), C.a.createElement($h, {
  19486.               name: 'customShortname',
  19487.               value: a,
  19488.               labelAdditionalClass: 'hidden',
  19489.               onChange: this.handleShortnameInputChange,
  19490.               idNamespace: this.constructor.displayName,
  19491.               readOnly: this.props.forumCreateIsSaving,
  19492.               disabled: this.props.forumCreateIsSaving,
  19493.               placeholder: 'Enter only letters, numbers or hyphens for your subdomain',
  19494.               maxLength: '50'
  19495.             }, C.a.createElement('div', null, o, this.state.customShortnameTaken ? C.a.createElement('p', {
  19496.               className: 'text-violet text-small'
  19497.             }, 'This shortname is already registered. Here\'s one that\'s available: ', C.a.createElement('a', {
  19498.               href: '#',
  19499.               onClick: this.handleClickSuggestedShortname
  19500.             }, this.props.forumCreateValidatedShortname)) : null))) : null,
  19501.             s = 'en' !== og,
  19502.             l = je.a.values(window._v5Config.organizations),
  19503.             c = je.a.chain(l).find(function (e) {
  19504.               return e.owner === t.props.user.username
  19505.             }).value(),
  19506.             l = je.a.chain(l).map(function (e, t) {
  19507.               return {
  19508.                 key: t,
  19509.                 value: e.id,
  19510.                 label: 'default' === e.slug ? ''.concat(e.owner, '\'s organization') : e.slug
  19511.               }
  19512.             }).value(),
  19513.             a = a && this.state.name && this.state.forumCategory && (!(0 < l.length) || this.state.organization);
  19514.             return C.a.createElement('form', {
  19515.               id: 'create-forum',
  19516.               onSubmit: this.handleCreateForum
  19517.             }, C.a.createElement('div', {
  19518.               className: 'spacing-bottom-quad'
  19519.             }, C.a.createElement('header', {
  19520.               className: 'forum-create__header'
  19521.             }, C.a.createElement('img', {
  19522.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/disqus-logo-blue-transparent.png',
  19523.               width: '174',
  19524.               height: '32',
  19525.               alt: 'Disqus',
  19526.               title: 'Disqus'
  19527.             }), C.a.createElement('h2', {
  19528.               className: 'forum-create__header-text'
  19529.             }, 'Create a new site')), C.a.createElement('section', {
  19530.               className: 'settings__content'
  19531.             }, C.a.createElement('div', {
  19532.               className: 'spacing-bottom-large'
  19533.             }, C.a.createElement(kf, {
  19534.               labelAdditionalClass: 'hidden',
  19535.               labelId: 'site-owner',
  19536.               blockAdditionalClass: '-text text-medium align'
  19537.             }, C.a.createElement('div', null, C.a.createElement('div', {
  19538.               className: 'forum-create__label'
  19539.             }, 'Site owner*'), C.a.createElement('div', {
  19540.               className: 'align align--middle'
  19541.             }, C.a.createElement('a', {
  19542.               href: this.props.user.profileUrl
  19543.             }, C.a.createElement('img', {
  19544.               src: this.props.user.avatar.cache,
  19545.               alt: this.props.user.name,
  19546.               className: 'forum-create__avatar'
  19547.             })), C.a.createElement('div', {
  19548.               className: 'forum-create__username'
  19549.             }, this.props.user.name)), C.a.createElement('p', {
  19550.               className: 'forum-create__description spacing-top-small'
  19551.             }, 'To associate a different account as the site owner,', C.a.createElement('br', null), C.a.createElement('a', {
  19552.               href: r
  19553.             }, 'login with a different account'))))), 0 < l.length ? C.a.createElement('div', {
  19554.               className: 'spacing-bottom-large'
  19555.             }, C.a.createElement('div', {
  19556.               className: 'forum-create__label'
  19557.             }, 'Organization*'), C.a.createElement(kf, {
  19558.               labelAdditionalClass: 'hidden',
  19559.               blockAdditionalClass: 'text-medium'
  19560.             }, C.a.createElement(Mf, {
  19561.               name: 'organization',
  19562.               options: l,
  19563.               placeholder: 'Please select an organization',
  19564.               value: this.state.organization,
  19565.               onChange: this.handleOrganizationInputChange,
  19566.               idNamespace: this.constructor.displayName,
  19567.               readOnly: this.props.forumCreateIsSaving,
  19568.               disabled: this.props.forumCreateIsSaving,
  19569.               width: '100%'
  19570.             }), C.a.createElement('p', {
  19571.               className: 'forum-create__description spacing-top'
  19572.             }, 'The group of sites you own or are an organization admin for.', C.a.createElement('br', null), this.state.organization || c ? C.a.createElement(Us, {
  19573.               path: '/settings/general/',
  19574.               orgId: this.state.organization || c.id,
  19575.               orgSlug: this.state.organization ? je.a.chain(l).find(function (e) {
  19576.                 if (e.id === t.state.organization) return e.slug
  19577.               }).value() : c.slug
  19578.             }, this.state.organization ? 'Edit selected organization settings' : 'Edit owned organization settings') : C.a.createElement('a', {
  19579.               href: 'https://blog.disqus.com/organizations-better-combined-reporting-for-the-forums-you-own',
  19580.               target: '_blank',
  19581.               rel: 'noopener noreferrer'
  19582.             }, 'Read more about organizations')))) : null, C.a.createElement('div', {
  19583.               className: 'spacing-bottom-large'
  19584.             }, C.a.createElement('div', {
  19585.               className: 'forum-create__label'
  19586.             }, 'Website Name*'), C.a.createElement($h, {
  19587.               name: 'name',
  19588.               value: this.state.name,
  19589.               labelAdditionalClass: 'hidden',
  19590.               onChange: this.handleNameInputChange,
  19591.               idNamespace: this.constructor.displayName,
  19592.               readOnly: this.props.forumCreateIsSaving,
  19593.               disabled: this.props.forumCreateIsSaving,
  19594.               placeholder: 'Enter the name of your site',
  19595.               maxLength: '64'
  19596.             }, this.state.shortnameInputVisible ? null : o)), i, C.a.createElement('div', {
  19597.               className: 'spacing-bottom-large'
  19598.             }, C.a.createElement('div', {
  19599.               className: 'forum-create__label'
  19600.             }, 'Category*'), C.a.createElement(Mf, {
  19601.               name: 'category',
  19602.               className: 'spacing-top',
  19603.               options: e,
  19604.               placeholder: 'Please select a category',
  19605.               value: this.state.forumCategory,
  19606.               labelAdditionalClass: 'hidden',
  19607.               onChange: this.handleCategoryInputChange,
  19608.               idNamespace: this.constructor.displayName,
  19609.               readOnly: this.props.forumCreateIsSaving,
  19610.               disabled: !e.length || this.props.forumCreateIsSaving,
  19611.               width: '100%'
  19612.             })), s ? C.a.createElement('div', {
  19613.               className: 'spacing-bottom-large'
  19614.             }, C.a.createElement('div', {
  19615.               className: 'forum-create__label'
  19616.             }, 'Language*'), C.a.createElement(Mf, {
  19617.               name: 'language',
  19618.               disabled: !n.length,
  19619.               options: n,
  19620.               placeholder: 'Select a Language',
  19621.               value: this.state.language,
  19622.               labelAdditionalClass: 'hidden',
  19623.               onChange: this.handleLanguageInputChange,
  19624.               idNamespace: this.constructor.displayName,
  19625.               width: '100%'
  19626.             })) : null, this.props.forumCreateError ? C.a.createElement(Ki, {
  19627.               message: this.props.forumCreateError,
  19628.               onRequestClose: this.props.forumCreateOnDismissError,
  19629.               alertType: 'error'
  19630.             }) : null), C.a.createElement('footer', {
  19631.               className: 'settings__footer'
  19632.             }, C.a.createElement(Bh, {
  19633.               id: 'admin-create-site',
  19634.               disabled: !a,
  19635.               isSaving: this.props.forumCreateIsSaving,
  19636.               isSaved: this.props.forumCreateIsSaved,
  19637.               buttonLabel: 'Create Site',
  19638.               blockAdditionalClass: 'forum-create__save-button',
  19639.               fieldsetAdditionalClass: 'hidden'
  19640.             }), C.a.createElement('div', {
  19641.               className: 'forum-create__description text-bold text-center spacing-top'
  19642.             }, '*all fields are mandatory'))))
  19643.           }
  19644.         }
  19645.       ]) && Xh(e.prototype, t),
  19646.       n && Xh(e, n),
  19647.       r
  19648.     }();
  19649.     rg(bp, 'displayName', 'ForumCreateRegister'),
  19650.     rg(bp, 'propTypes', {
  19651.       forumCreateOnRegister: b.a.func.isRequired,
  19652.       forumCreateOnDismissError: b.a.func.isRequired,
  19653.       forumCreateOnGenerateShortname: b.a.func.isRequired,
  19654.       forumCreateOnFormatShortname: b.a.func.isRequired,
  19655.       forumCreateSetError: b.a.func.isRequired,
  19656.       forumCreateValidatedShortname: b.a.string,
  19657.       forumCreateError: b.a.string,
  19658.       forumCreateIsSaving: b.a.bool,
  19659.       forumCreateIsSaved: b.a.bool,
  19660.       forumCategories: b.a.shape({
  19661.         allCategories: b.a.arrayOf(vl)
  19662.       }).isRequired,
  19663.       forumLanguages: b.a.arrayOf(xl),
  19664.       user: b.a.object,
  19665.       emitTrackingEvent: b.a.func.isRequired,
  19666.       emitDefaultViewEvent: b.a.func.isRequired,
  19667.       fetchForumCategories: b.a.func.isRequired,
  19668.       fetchForumLanguages: b.a.func.isRequired,
  19669.       activatePollsAdSupported: b.a.func.isRequired,
  19670.       history: b.a.shape({
  19671.         push: b.a.func.isRequired
  19672.       }).isRequired,
  19673.       location: kh.locationShape
  19674.     });
  19675.     var Ap = Object(u.connect) (function (e) {
  19676.       return {
  19677.         forumCategories: e.forumCategories,
  19678.         forumLanguages: e.forumLanguages.languages
  19679.       }
  19680.     }, {
  19681.       emitTrackingEvent: Xo(cp),
  19682.       emitDefaultViewEvent: ei(cp),
  19683.       fetchForumCategories: Nh,
  19684.       fetchForumLanguages: vu,
  19685.       updateCheckoutData: ko.updateCheckoutDataFromComponent,
  19686.       activatePlan: Yl,
  19687.       validateActivationCode: Ql
  19688.     }) (Ni.a.attachDrivers(Fo() (bp), [
  19689.       xu,
  19690.       bc
  19691.     ])),
  19692.     ig = function () {
  19693.       return function (t, e) {
  19694.         e = e().selection.forum;
  19695.         if (e) return t({
  19696.           type: J.fetching
  19697.         }),
  19698.         io.a.call('forums/details', {
  19699.           data: {
  19700.             forum: e.shortname,
  19701.             attach: [
  19702.               'forumFeatures',
  19703.               'forumForumCategory',
  19704.               'forumIntegration',
  19705.               'forumNewPolicy',
  19706.               'forumPermissions'
  19707.             ]
  19708.           }
  19709.         }).done(function (e) {
  19710.           return t({
  19711.             type: J.onFetch,
  19712.             forumDetails: e.response
  19713.           })
  19714.         }).fail(function () {
  19715.           return t({
  19716.             type: J.onError,
  19717.             error: 'There was an error retrieving details for this site'
  19718.           })
  19719.         })
  19720.       }
  19721.     },
  19722.     sg = function (t) {
  19723.       return function (e) {
  19724.         return e({
  19725.           type: J.onUpdate,
  19726.           forumDetails: t
  19727.         })
  19728.       }
  19729.     };
  19730.     function lg(t, e) {
  19731.       var n,
  19732.       a = Object.keys(t);
  19733.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  19734.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  19735.       })), a.push.apply(a, n)),
  19736.       a
  19737.     }
  19738.     function cg(a) {
  19739.       for (var e = 1; e < arguments.length; e++) {
  19740.         var r = null != arguments[e] ? arguments[e] : {
  19741.         };
  19742.         e % 2 ? lg(Object(r), !0).forEach(function (e) {
  19743.           var t,
  19744.           n;
  19745.           n = r[t = e],
  19746.           t in (e = a) ? Object.defineProperty(e, t, {
  19747.             value: n,
  19748.             enumerable: !0,
  19749.             configurable: !0,
  19750.             writable: !0
  19751.           }) : e[t] = n
  19752.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : lg(Object(r)).forEach(function (e) {
  19753.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  19754.         })
  19755.       }
  19756.       return a
  19757.     }
  19758.     function ug(e, t, n) {
  19759.       t.selection.forum && n(e = {
  19760.         data: cg({
  19761.           forum: t.selection.forum.shortname
  19762.         }, e)
  19763.       })
  19764.     }
  19765.     i = function (n) {
  19766.       return function (t, e) {
  19767.         t({
  19768.           type: oe.rulesFetching
  19769.         }),
  19770.         ug(n, e(), function (e) {
  19771.           io.a.call('rules/list', e).success(function (e) {
  19772.             t({
  19773.               type: oe.onFetchRules,
  19774.               response: e.response
  19775.             })
  19776.           })
  19777.         })
  19778.       }
  19779.     },
  19780.     c = function (n) {
  19781.       return function (t, e) {
  19782.         t({
  19783.           type: oe.rulesSaving
  19784.         }),
  19785.         ug(n.data, e(), function (e) {
  19786.           io.a.call('rules/modifyRules', cg(cg({
  19787.           }, e), {
  19788.           }, {
  19789.             method: 'POST'
  19790.           })).success(function (e) {
  19791.             t({
  19792.               type: oe.onSaveRules,
  19793.               response: e.response
  19794.             })
  19795.           }).error(function () {
  19796.             t({
  19797.               type: oe.onSaveRulesError
  19798.             })
  19799.           })
  19800.         })
  19801.       }
  19802.     };
  19803.     function pg(e) {
  19804.       return (pg = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  19805.         return typeof e
  19806.       }
  19807.        : function (e) {
  19808.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  19809.       }) (e)
  19810.     }
  19811.     function dg() {
  19812.       return (dg = Object.assign || function (e) {
  19813.         for (var t = 1; t < arguments.length; t++) {
  19814.           var n,
  19815.           a = arguments[t];
  19816.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  19817.         }
  19818.         return e
  19819.       }).apply(this, arguments)
  19820.     }
  19821.     function mg(t, e) {
  19822.       var n,
  19823.       a = Object.keys(t);
  19824.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  19825.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  19826.       })), a.push.apply(a, n)),
  19827.       a
  19828.     }
  19829.     function fg(e, t) {
  19830.       for (var n = 0; n < t.length; n++) {
  19831.         var a = t[n];
  19832.         a.enumerable = a.enumerable || !1,
  19833.         a.configurable = !0,
  19834.         'value' in a && (a.writable = !0),
  19835.         Object.defineProperty(e, a.key, a)
  19836.       }
  19837.     }
  19838.     function hg(e, t) {
  19839.       return (hg = Object.setPrototypeOf || function (e, t) {
  19840.         return e.__proto__ = t,
  19841.         e
  19842.       }) (e, t)
  19843.     }
  19844.     function gg(n) {
  19845.       var a = function () {
  19846.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  19847.         if (Reflect.construct.sham) return !1;
  19848.         if ('function' == typeof Proxy) return !0;
  19849.         try {
  19850.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  19851.           ], function () {
  19852.           })),
  19853.           !0
  19854.         } catch (e) {
  19855.           return !1
  19856.         }
  19857.       }();
  19858.       return function () {
  19859.         var e,
  19860.         t = bg(n);
  19861.         return e = a ? (e = bg(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  19862.         t = this,
  19863.         !(e = e) || 'object' !== pg(e) && 'function' != typeof e ? yg(t) : e
  19864.       }
  19865.     }
  19866.     function yg(e) {
  19867.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  19868.       return e
  19869.     }
  19870.     function bg(e) {
  19871.       return (bg = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  19872.         return e.__proto__ || Object.getPrototypeOf(e)
  19873.       }) (e)
  19874.     }
  19875.     function vg(e, t, n) {
  19876.       return t in e ? Object.defineProperty(e, t, {
  19877.         value: n,
  19878.         enumerable: !0,
  19879.         configurable: !0,
  19880.         writable: !0
  19881.       }) : e[t] = n,
  19882.       e
  19883.     }
  19884.     p = function () {
  19885.       !function (e, t) {
  19886.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  19887.         e.prototype = Object.create(t && t.prototype, {
  19888.           constructor: {
  19889.             value: e,
  19890.             writable: !0,
  19891.             configurable: !0
  19892.           }
  19893.         }),
  19894.         t && hg(e, t)
  19895.       }(o, A);
  19896.       var e,
  19897.       t,
  19898.       n,
  19899.       r = gg(o);
  19900.       function o() {
  19901.         var n;
  19902.         !function (e, t) {
  19903.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  19904.         }(this, o);
  19905.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  19906.         return vg(yg(n = r.call.apply(r, [
  19907.           this
  19908.         ].concat(t))), 'state', {
  19909.           error: null,
  19910.           isSaving: !1,
  19911.           isFetching: !1,
  19912.           isValidating: !1
  19913.         }),
  19914.         vg(yg(n), 'validateForum', function (e) {
  19915.           n.setState({
  19916.             isValidating: !0
  19917.           }),
  19918.           n.props.selection.forum && (e = function (t) {
  19919.             for (var e = 1; e < arguments.length; e++) {
  19920.               var n = null != arguments[e] ? arguments[e] : {
  19921.               };
  19922.               e % 2 ? mg(Object(n), !0).forEach(function (e) {
  19923.                 vg(t, e, n[e])
  19924.               }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : mg(Object(n)).forEach(function (e) {
  19925.                 Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  19926.               })
  19927.             }
  19928.             return t
  19929.           }({
  19930.             forum: n.props.selection.forum.shortname
  19931.           }, e)),
  19932.           n.apiCall = io.a.call('forums/validate', {
  19933.             data: e
  19934.           }).done(n.handleValidateForumSuccess).fail(n.handleApiCallFail).always(n.handleValidateForumComplete)
  19935.         }),
  19936.         vg(yg(n), 'handleSaveForum', function (e, t) {
  19937.           return n.setState({
  19938.             isSaving: !0,
  19939.             error: null,
  19940.             isSaved: !1
  19941.           }),
  19942.           n.props.selection.forum && (e = dg({
  19943.             forum: n.props.selection.forum.shortname
  19944.           }, e)),
  19945.           n.apiCall = io.a.call(t && t.useInternal ? 'internal/forums/update' : 'forums/update', {
  19946.             data: e,
  19947.             method: 'POST'
  19948.           }).done(n.handleSaveForumSuccess).fail(n.handleApiCallFail).always(n.handleSaveForumComplete),
  19949.           n.apiCall
  19950.         }),
  19951.         vg(yg(n), 'handleDisableAds', function () {
  19952.           return n.setState({
  19953.             isSaving: !0,
  19954.             error: null,
  19955.             isSaved: !1
  19956.           }),
  19957.           n.apiCall = io.a.call('forums/disableAds', {
  19958.             data: {
  19959.               forum: n.props.selection.forum.shortname
  19960.             },
  19961.             method: 'POST'
  19962.           }).done(n.handleSaveForumSuccess).fail(n.handleApiCallFail).always(n.handleSaveForumComplete),
  19963.           n.apiCall
  19964.         }),
  19965.         vg(yg(n), 'handleValidateForumSuccess', function (e) {
  19966.           n.setState({
  19967.             error: e.response && e.response[0] || null
  19968.           })
  19969.         }),
  19970.         vg(yg(n), 'handleValidateForumComplete', function () {
  19971.           n.setState({
  19972.             isValidating: !1
  19973.           })
  19974.         }),
  19975.         vg(yg(n), 'handleDismissError', function () {
  19976.           n.setState({
  19977.             error: null
  19978.           })
  19979.         }),
  19980.         vg(yg(n), 'handleSaveForumComplete', function () {
  19981.           n.setState({
  19982.             isSaving: !1
  19983.           })
  19984.         }),
  19985.         vg(yg(n), 'handleSaveForumSuccess', function (e) {
  19986.           n.props.updateForumDetails(e.response),
  19987.           n.setState({
  19988.             error: null,
  19989.             isSaved: !0
  19990.           })
  19991.         }),
  19992.         vg(yg(n), 'handleApiCallFail', function (e) {
  19993.           n.setState({
  19994.             error: n.parseErrorResponse(e)
  19995.           })
  19996.         }),
  19997.         vg(yg(n), 'parseErrorResponse', function (e) {
  19998.           var t;
  19999.           try {
  20000.             ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'website\': Invalid URL') && (t = 'Invalid URL entered for your website. It should be the full address of your home page, e.g. http://example.com')
  20001.           } catch (e) {
  20002.             t = 'There was an error saving your changes.'
  20003.           }
  20004.           return t
  20005.         }),
  20006.         vg(yg(n), 'getComponentProps', function () {
  20007.           return {
  20008.             forumUpdateError: n.state.error,
  20009.             forumUpdateIsSaving: n.state.isSaving,
  20010.             forumUpdateIsSaved: n.state.isSaved,
  20011.             forumUpdateIsValidating: n.state.isValidating,
  20012.             forumUpdateValidate: n.validateForum,
  20013.             forumUpdateOnSave: n.handleSaveForum,
  20014.             forumUpdateOnDisableAds: n.handleDisableAds,
  20015.             forumUpdateOnDismissError: n.handleDismissError
  20016.           }
  20017.         }),
  20018.         n
  20019.       }
  20020.       return e = o,
  20021.       (t = [
  20022.         {
  20023.           key: 'componentWillUnmount',
  20024.           value: function () {
  20025.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  20026.           }
  20027.         }
  20028.       ]) && fg(e.prototype, t),
  20029.       n && fg(e, n),
  20030.       o
  20031.     }();
  20032.     vg(p, 'displayName', 'ForumUpdateDriver'),
  20033.     vg(p, 'propTypes', {
  20034.       selection: ht.isRequired
  20035.     });
  20036.     m = Object(ki.createDriver) (p, function (e) {
  20037.       return {
  20038.         selection: e.selection
  20039.       }
  20040.     }, {
  20041.       updateForumDetails: sg
  20042.     }),
  20043.     h = function (e) {
  20044.       var t = e.hasOwnProperty('iconClassName') ? e.iconClassName : 'icon-right-bracket',
  20045.       n = e.linkActiveClassName || 'active';
  20046.       return !e.showIf || e.showIf(e) ? C.a.createElement(Uo, {
  20047.         linkClassName: e.linkClassName,
  20048.         path: e.path,
  20049.         selection: e.selection,
  20050.         activeRoutes: e.activeRoutes,
  20051.         onlyActiveOnIndex: e.onlyActiveOnIndex,
  20052.         linkActiveClassName: n
  20053.       }, C.a.createElement('div', {
  20054.         className: 'nav-lnk -color-muted'
  20055.       }, C.a.createElement('div', {
  20056.         className: 'nav-lnk__blk'
  20057.       }, C.a.createElement('span', {
  20058.         className: 'button__text'
  20059.       }, e.label)), C.a.createElement('div', {
  20060.         className: 'nav-lnk__pointer'
  20061.       }, C.a.createElement('span', {
  20062.         className: 'icon '.concat(t)
  20063.       })))) : null
  20064.     };
  20065.     h.propTypes = {
  20066.       selection: b.a.object.isRequired,
  20067.       linkClassName: b.a.string.isRequired,
  20068.       path: b.a.string.isRequired,
  20069.       label: b.a.string.isRequired,
  20070.       activeRoutes: b.a.arrayOf(b.a.string),
  20071.       iconClassName: b.a.string,
  20072.       showIf: b.a.func,
  20073.       onlyActiveOnIndex: b.a.bool,
  20074.       linkActiveClassName: b.a.string
  20075.     };
  20076.     var _g = h;
  20077.     function Eg(e) {
  20078.       return (Eg = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  20079.         return typeof e
  20080.       }
  20081.        : function (e) {
  20082.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  20083.       }) (e)
  20084.     }
  20085.     function Og(e, t) {
  20086.       if (null == e) return {
  20087.       };
  20088.       var n,
  20089.       a = function (e, t) {
  20090.         if (null == e) return {
  20091.         };
  20092.         var n,
  20093.         a,
  20094.         r = {
  20095.         },
  20096.         o = Object.keys(e);
  20097.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  20098.         return r
  20099.       }(e, t);
  20100.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  20101.       return a
  20102.     }
  20103.     function Sg() {
  20104.       return (Sg = Object.assign || function (e) {
  20105.         for (var t = 1; t < arguments.length; t++) {
  20106.           var n,
  20107.           a = arguments[t];
  20108.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  20109.         }
  20110.         return e
  20111.       }).apply(this, arguments)
  20112.     }
  20113.     function wg(e, t) {
  20114.       for (var n = 0; n < t.length; n++) {
  20115.         var a = t[n];
  20116.         a.enumerable = a.enumerable || !1,
  20117.         a.configurable = !0,
  20118.         'value' in a && (a.writable = !0),
  20119.         Object.defineProperty(e, a.key, a)
  20120.       }
  20121.     }
  20122.     function Pg(e, t) {
  20123.       return (Pg = Object.setPrototypeOf || function (e, t) {
  20124.         return e.__proto__ = t,
  20125.         e
  20126.       }) (e, t)
  20127.     }
  20128.     function kg(n) {
  20129.       var a = function () {
  20130.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  20131.         if (Reflect.construct.sham) return !1;
  20132.         if ('function' == typeof Proxy) return !0;
  20133.         try {
  20134.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  20135.           ], function () {
  20136.           })),
  20137.           !0
  20138.         } catch (e) {
  20139.           return !1
  20140.         }
  20141.       }();
  20142.       return function () {
  20143.         var e,
  20144.         t = Cg(n);
  20145.         return e = a ? (e = Cg(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  20146.         t = this,
  20147.         !(e = e) || 'object' !== Eg(e) && 'function' != typeof e ? Ng(t) : e
  20148.       }
  20149.     }
  20150.     function Ng(e) {
  20151.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  20152.       return e
  20153.     }
  20154.     function Cg(e) {
  20155.       return (Cg = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  20156.         return e.__proto__ || Object.getPrototypeOf(e)
  20157.       }) (e)
  20158.     }
  20159.     function Rg(e, t, n) {
  20160.       return t in e ? Object.defineProperty(e, t, {
  20161.         value: n,
  20162.         enumerable: !0,
  20163.         configurable: !0,
  20164.         writable: !0
  20165.       }) : e[t] = n,
  20166.       e
  20167.     }
  20168.     var xg = {
  20169.       welcome: 1,
  20170.       platforms: 2,
  20171.       settings: 3,
  20172.       moderation: 4,
  20173.       complete: 5
  20174.     },
  20175.     y = function () {
  20176.       !function (e, t) {
  20177.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  20178.         e.prototype = Object.create(t && t.prototype, {
  20179.           constructor: {
  20180.             value: e,
  20181.             writable: !0,
  20182.             configurable: !0
  20183.           }
  20184.         }),
  20185.         t && Pg(e, t)
  20186.       }(o, A);
  20187.       var e,
  20188.       t,
  20189.       n,
  20190.       r = kg(o);
  20191.       function o() {
  20192.         var a;
  20193.         !function (e, t) {
  20194.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  20195.         }(this, o);
  20196.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  20197.         return Rg(Ng(a = r.call.apply(r, [
  20198.           this
  20199.         ].concat(t))), 'getCurrentPageStep', function () {
  20200.           var e = a.props.location.pathname.match(/\/install\/([^/]+)/);
  20201.           return e && e[1] ? xg[e[1]] : xg.platforms
  20202.         }),
  20203.         Rg(Ng(a), 'renderSubTabs', function (e) {
  20204.           var n = 'nav__item nav__item--subitem dropdown-open';
  20205.           return e.map(function (e) {
  20206.             if (e.isMockNav) {
  20207.               var t = a.props.history.isActive(e.isActivePath);
  20208.               return C.a.createElement('div', {
  20209.                 className: n += t ? ' active' : '',
  20210.                 disabled: !t,
  20211.                 key: e.label
  20212.               }, C.a.createElement('div', {
  20213.                 className: 'nav-lnk -color-muted'
  20214.               }, C.a.createElement('div', {
  20215.                 className: 'nav-lnk__blk'
  20216.               }, C.a.createElement('span', {
  20217.                 className: 'button__text'
  20218.               }, e.label))))
  20219.             }
  20220.             return C.a.createElement(_g, Sg({
  20221.               selection: a.props.selection,
  20222.               linkClassName: n,
  20223.               iconClassName: ''
  20224.             }, e, {
  20225.               key: e.label
  20226.             }))
  20227.           })
  20228.         }),
  20229.         a
  20230.       }
  20231.       return e = o,
  20232.       (t = [
  20233.         {
  20234.           key: 'render',
  20235.           value: function () {
  20236.             var s = this,
  20237.             e = [
  20238.               {
  20239.                 path: '/install/welcome/',
  20240.                 label: '1. Welcome',
  20241.                 step: xg.welcome
  20242.               },
  20243.               {
  20244.                 path: '/install/',
  20245.                 label: '2. Install Disqus',
  20246.                 step: xg.platforms,
  20247.                 subTabs: [
  20248.                   {
  20249.                     path: '/install/',
  20250.                     label: 'Select Platform',
  20251.                     onlyActiveOnIndex: !0
  20252.                   },
  20253.                   {
  20254.                     label: 'Install Instructions',
  20255.                     isMockNav: !0,
  20256.                     isActivePath: '/install/platforms/'
  20257.                   }
  20258.                 ]
  20259.               },
  20260.               {
  20261.                 path: '/install/settings/',
  20262.                 label: '3. Configure Disqus',
  20263.                 step: xg.settings
  20264.               },
  20265.               {
  20266.                 path: '/install/moderation/',
  20267.                 label: '4. Setup Moderation',
  20268.                 step: xg.moderation
  20269.               }
  20270.             ];
  20271.             if (this.props.selection.type !== ft.forum) return C.a.createElement('nav', {
  20272.               className: 'layout__nav'
  20273.             }, C.a.createElement('div', {
  20274.               className: 'nav-dropdown'
  20275.             }, C.a.createElement(Uo, {
  20276.               path: e[0].path,
  20277.               selection: this.props.selection,
  20278.               linkClassName: 'button button-fill--brand text-medium button-wide hidden-md spacing-bottom-small'
  20279.             }, C.a.createElement('span', {
  20280.               className: 'icon-switch icon__position text-smaller spacing-right-small'
  20281.             }), 'Pick a Site'), C.a.createElement('a', {
  20282.               className: 'button button-fill--brand text-medium button-wide hidden-md',
  20283.               href: '/admin/create/'
  20284.             }, C.a.createElement('span', {
  20285.               className: 'icon-plus icon__position text-smaller spacing-right-small'
  20286.             }), 'Create a Site')));
  20287.             e = e.map(function (e) {
  20288.               var t = e.step,
  20289.               n = e.subTabs,
  20290.               a = Og(e, [
  20291.                 'step',
  20292.                 'subTabs'
  20293.               ]),
  20294.               r = [
  20295.               ],
  20296.               o = 'icon-right-bracket',
  20297.               i = 'nav__item dropdown-open';
  20298.               return t === s.getCurrentPageStep() && n && (r = s.renderSubTabs(e.subTabs)),
  20299.               n && (a.linkActiveClassName = ' '),
  20300.               t < s.getCurrentPageStep() && (i += ' nav__item--completed', o = 'icon-checkmark'),
  20301.               [
  20302.                 C.a.createElement(_g, Sg({
  20303.                   selection: s.props.selection,
  20304.                   linkClassName: i,
  20305.                   iconClassName: o,
  20306.                   key: e.label
  20307.                 }, a)),
  20308.                 r
  20309.               ]
  20310.             });
  20311.             return C.a.createElement('nav', {
  20312.               className: 'layout__nav'
  20313.             }, C.a.createElement('div', {
  20314.               className: 'nav-dropdown'
  20315.             }, e))
  20316.           }
  20317.         }
  20318.       ]) && wg(e.prototype, t),
  20319.       n && wg(e, n),
  20320.       o
  20321.     }();
  20322.     Rg(y, 'displayName', 'ForumInstallNav'),
  20323.     Rg(y, 'propTypes', {
  20324.       location: b.a.object.isRequired,
  20325.       history: b.a.shape({
  20326.         isActive: b.a.func.isRequired
  20327.       }).isRequired,
  20328.       selection: ht.isRequired
  20329.     });
  20330.     var Ag = Fo() (y),
  20331.     D = function () {
  20332.       return function () {
  20333.         var e,
  20334.         t,
  20335.         a = window.Intercom;
  20336.         'function' == typeof a ? a('reattach_activator') : ((a = window.Intercom = function () {
  20337.           for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  20338.           a.callback(t)
  20339.         }).queue = [
  20340.         ], a.callback = function (e) {
  20341.           a.queue.push(e)
  20342.         }, (e = window.document.createElement('script')).src = 'https://widget.intercom.io/widget/'.concat(pt.a.intercomAppId), e.async = !0, (t = window.document.getElementsByTagName('script') [0]).parentNode.insertBefore(e, t))
  20343.       }
  20344.     },
  20345.     I = function (a) {
  20346.       return function (e, t) {
  20347.         var n;
  20348.         a && (t = (n = t().selection).forum, n = n.organization, window.intercomSettings = {
  20349.           app_id: pt.a.intercomAppId,
  20350.           name: a.username,
  20351.           email: a.email,
  20352.           user_id: a.id,
  20353.           shortname: t && t.shortname || null,
  20354.           website: t && t.website || null,
  20355.           organization: n && n.id || null
  20356.         }, (n = window.Intercom) ('boot', window.intercomSettings), n('show'))
  20357.       }
  20358.     },
  20359.     F = function () {
  20360.       return function () {
  20361.         window.Intercom && (window.Intercom('shutdown'), delete window.Intercom)
  20362.       }
  20363.     };
  20364.     function Dg(e) {
  20365.       return (Dg = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  20366.         return typeof e
  20367.       }
  20368.        : function (e) {
  20369.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  20370.       }) (e)
  20371.     }
  20372.     function jg(e, t) {
  20373.       for (var n = 0; n < t.length; n++) {
  20374.         var a = t[n];
  20375.         a.enumerable = a.enumerable || !1,
  20376.         a.configurable = !0,
  20377.         'value' in a && (a.writable = !0),
  20378.         Object.defineProperty(e, a.key, a)
  20379.       }
  20380.     }
  20381.     function Tg(e, t) {
  20382.       return (Tg = Object.setPrototypeOf || function (e, t) {
  20383.         return e.__proto__ = t,
  20384.         e
  20385.       }) (e, t)
  20386.     }
  20387.     function Ig(n) {
  20388.       var a = function () {
  20389.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  20390.         if (Reflect.construct.sham) return !1;
  20391.         if ('function' == typeof Proxy) return !0;
  20392.         try {
  20393.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  20394.           ], function () {
  20395.           })),
  20396.           !0
  20397.         } catch (e) {
  20398.           return !1
  20399.         }
  20400.       }();
  20401.       return function () {
  20402.         var e,
  20403.         t = Fg(n);
  20404.         return e = a ? (e = Fg(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  20405.         t = this,
  20406.         !(e = e) || 'object' !== Dg(e) && 'function' != typeof e ? qg(t) : e
  20407.       }
  20408.     }
  20409.     function qg(e) {
  20410.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  20411.       return e
  20412.     }
  20413.     function Fg(e) {
  20414.       return (Fg = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  20415.         return e.__proto__ || Object.getPrototypeOf(e)
  20416.       }) (e)
  20417.     }
  20418.     function Lg(e, t, n) {
  20419.       return t in e ? Object.defineProperty(e, t, {
  20420.         value: n,
  20421.         enumerable: !0,
  20422.         configurable: !0,
  20423.         writable: !0
  20424.       }) : e[t] = n,
  20425.       e
  20426.     }
  20427.     lt = function () {
  20428.       !function (e, t) {
  20429.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  20430.         e.prototype = Object.create(t && t.prototype, {
  20431.           constructor: {
  20432.             value: e,
  20433.             writable: !0,
  20434.             configurable: !0
  20435.           }
  20436.         }),
  20437.         t && Tg(e, t)
  20438.       }(o, A);
  20439.       var e,
  20440.       t,
  20441.       n,
  20442.       r = Ig(o);
  20443.       function o() {
  20444.         var e;
  20445.         !function (e, t) {
  20446.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  20447.         }(this, o);
  20448.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  20449.         return Lg(qg(e = r.call.apply(r, [
  20450.           this
  20451.         ].concat(n))), 'componentWillMount', function () {
  20452.           e.props.addIntercomScript()
  20453.         }),
  20454.         Lg(qg(e), 'componentWillUnmount', function () {
  20455.           e.props.removeIntercomScript()
  20456.         }),
  20457.         Lg(qg(e), 'handleClick', function () {
  20458.           e.props.intercomInitWithUser(e.props.user)
  20459.         }),
  20460.         e
  20461.       }
  20462.       return e = o,
  20463.       (t = [
  20464.         {
  20465.           key: 'render',
  20466.           value: function () {
  20467.             return C.a.createElement('button', {
  20468.               onClick: this.handleClick,
  20469.               className: 'button button-large button-fill--brand text-medium spacing-narrow spacing-right',
  20470.               disabled: !this.props.user
  20471.             }, this.props.children)
  20472.           }
  20473.         }
  20474.       ]) && jg(e.prototype, t),
  20475.       n && jg(e, n),
  20476.       o
  20477.     }();
  20478.     Lg(lt, 'displayName', 'IntercomButton'),
  20479.     Lg(lt, 'propTypes', {
  20480.       children: b.a.node,
  20481.       addIntercomScript: b.a.func.isRequired,
  20482.       intercomInitWithUser: b.a.func.isRequired,
  20483.       removeIntercomScript: b.a.func.isRequired,
  20484.       user: b.a.shape({
  20485.         id: b.a.string.isRequired,
  20486.         username: b.a.string.isRequired,
  20487.         email: b.a.string.isRequired,
  20488.         name: b.a.string.isRequired
  20489.       })
  20490.     });
  20491.     function Ug() {
  20492.       return C.a.createElement('div', {
  20493.         className: 'content__wrap text-center padding-default'
  20494.       }, C.a.createElement('p', {
  20495.         className: 'text-large spacing-narrow spacing-bottom'
  20496.       }, C.a.createElement('strong', null, 'Having trouble with installation?')), yo.a.isFeatureActive('intercomEnabled') ? C.a.createElement(Mg, null, 'Talk to Support') : C.a.createElement('a', {
  20497.         href: Pn.contactSupport,
  20498.         className: 'button button-large button-fill--brand text-medium spacing-narrow spacing-right',
  20499.         target: '_blank',
  20500.         rel: 'noopener noreferrer'
  20501.       }, 'Contact Support'))
  20502.     }
  20503.     var Mg = Object(u.connect) (null, {
  20504.       addIntercomScript: D,
  20505.       intercomInitWithUser: I,
  20506.       removeIntercomScript: F
  20507.     }) (Ni.a.attachDrivers(lt, [
  20508.       rc
  20509.     ])),
  20510.     ut = function (e) {
  20511.       return e.forceEnable || yo.a.isFeatureActive('subscription_intercom') ? C.a.createElement('div', {
  20512.         className: 'content__wrap text-center spacing-bottom padding-default'
  20513.       }, C.a.createElement('p', {
  20514.         className: 'text-large spacing-narrow spacing-bottom'
  20515.       }, C.a.createElement('strong', null, 'Have questions about our subscription plans?')), C.a.createElement(Mg, null, 'Chat with Support')) : null
  20516.     };
  20517.     ut.propTypes = {
  20518.       forceEnable: b.a.bool
  20519.     };
  20520.     var Bg = ut;
  20521.     function zg(e) {
  20522.       return (zg = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  20523.         return typeof e
  20524.       }
  20525.        : function (e) {
  20526.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  20527.       }) (e)
  20528.     }
  20529.     function Hg() {
  20530.       return (Hg = Object.assign || function (e) {
  20531.         for (var t = 1; t < arguments.length; t++) {
  20532.           var n,
  20533.           a = arguments[t];
  20534.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  20535.         }
  20536.         return e
  20537.       }).apply(this, arguments)
  20538.     }
  20539.     function Gg(t, e) {
  20540.       var n,
  20541.       a = Object.keys(t);
  20542.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  20543.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  20544.       })), a.push.apply(a, n)),
  20545.       a
  20546.     }
  20547.     function Vg(t) {
  20548.       for (var e = 1; e < arguments.length; e++) {
  20549.         var n = null != arguments[e] ? arguments[e] : {
  20550.         };
  20551.         e % 2 ? Gg(Object(n), !0).forEach(function (e) {
  20552.           $g(t, e, n[e])
  20553.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Gg(Object(n)).forEach(function (e) {
  20554.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  20555.         })
  20556.       }
  20557.       return t
  20558.     }
  20559.     function Wg(e, t) {
  20560.       for (var n = 0; n < t.length; n++) {
  20561.         var a = t[n];
  20562.         a.enumerable = a.enumerable || !1,
  20563.         a.configurable = !0,
  20564.         'value' in a && (a.writable = !0),
  20565.         Object.defineProperty(e, a.key, a)
  20566.       }
  20567.     }
  20568.     function Yg(e, t) {
  20569.       return (Yg = Object.setPrototypeOf || function (e, t) {
  20570.         return e.__proto__ = t,
  20571.         e
  20572.       }) (e, t)
  20573.     }
  20574.     function Qg(n) {
  20575.       var a = function () {
  20576.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  20577.         if (Reflect.construct.sham) return !1;
  20578.         if ('function' == typeof Proxy) return !0;
  20579.         try {
  20580.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  20581.           ], function () {
  20582.           })),
  20583.           !0
  20584.         } catch (e) {
  20585.           return !1
  20586.         }
  20587.       }();
  20588.       return function () {
  20589.         var e,
  20590.         t = Jg(n);
  20591.         return e = a ? (e = Jg(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  20592.         t = this,
  20593.         !(e = e) || 'object' !== zg(e) && 'function' != typeof e ? Kg(t) : e
  20594.       }
  20595.     }
  20596.     function Kg(e) {
  20597.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  20598.       return e
  20599.     }
  20600.     function Jg(e) {
  20601.       return (Jg = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  20602.         return e.__proto__ || Object.getPrototypeOf(e)
  20603.       }) (e)
  20604.     }
  20605.     function $g(e, t, n) {
  20606.       return t in e ? Object.defineProperty(e, t, {
  20607.         value: n,
  20608.         enumerable: !0,
  20609.         configurable: !0,
  20610.         writable: !0
  20611.       }) : e[t] = n,
  20612.       e
  20613.     }
  20614.     Sn = function () {
  20615.       !function (e, t) {
  20616.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  20617.         e.prototype = Object.create(t && t.prototype, {
  20618.           constructor: {
  20619.             value: e,
  20620.             writable: !0,
  20621.             configurable: !0
  20622.           }
  20623.         }),
  20624.         t && Yg(e, t)
  20625.       }(o, A);
  20626.       var e,
  20627.       t,
  20628.       n,
  20629.       a = Qg(o);
  20630.       function o() {
  20631.         var r;
  20632.         !function (e, t) {
  20633.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  20634.         }(this, o);
  20635.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  20636.         return $g(Kg(r = a.call.apply(a, [
  20637.           this
  20638.         ].concat(t))), 'state', {
  20639.           settings: o.getEditableFieldsFromForum(r.props.forumDetails),
  20640.           settingsChanged: !1,
  20641.           rules: {
  20642.           },
  20643.           rulesChanged: !1
  20644.         }),
  20645.         $g(Kg(r), 'updateSettingsState', function (e) {
  20646.           r.setState({
  20647.             settings: Vg(Vg({
  20648.             }, r.state.settings), e),
  20649.             settingsChanged: !0
  20650.           })
  20651.         }),
  20652.         $g(Kg(r), 'updateRulesState', function (e) {
  20653.           r.setState({
  20654.             rules: r.getUpdatedRules(e),
  20655.             rulesChanged: !0
  20656.           })
  20657.         }),
  20658.         $g(Kg(r), 'getUpdatedRules', function (e) {
  20659.           var n = [
  20660.           ],
  20661.           a = Hg({
  20662.           }, e);
  20663.           return r.props.rules.forEach(function (e) {
  20664.             var t;
  20665.             a[e.filter] && (t = a[e.filter], delete a[e.filter], n.push({
  20666.               rule: e.id,
  20667.               filterName: t.filter,
  20668.               action: t.action,
  20669.               order: e.order,
  20670.               enabled: !0
  20671.             }))
  20672.           }),
  20673.           {
  20674.             newRules: Object.values(a).map(function (e, t) {
  20675.               return {
  20676.                 filterName: e.filter,
  20677.                 action: e.action,
  20678.                 order: n.length + t,
  20679.                 enabled: !0
  20680.               }
  20681.             }),
  20682.             updatedRules: n
  20683.           }
  20684.         }),
  20685.         $g(Kg(r), 'handleSaveSettings', function () {
  20686.           return r.props.forumUpdateOnSave({
  20687.             name: r.state.settings.name,
  20688.             website: r.state.settings.website,
  20689.             forumCategory: r.state.settings.category,
  20690.             description: r.state.settings.description,
  20691.             colorScheme: r.state.settings.colorScheme,
  20692.             typeface: r.state.settings.typeface,
  20693.             translationLanguage: r.state.settings.language,
  20694.             commentPolicyLink: r.state.settings.commentPolicyLink,
  20695.             commentPolicyText: r.state.settings.commentPolicyText,
  20696.             unapproveLinks: r.state.settings.unapproveLinks,
  20697.             mediaembedEnabled: r.state.settings.mediaembedEnabled,
  20698.             allowAnonPost: r.state.settings.allowAnonPost,
  20699.             flaggingEnabled: r.state.settings.flaggingEnabled,
  20700.             flagThreshold: r.state.settings.flagThreshold,
  20701.             daysThreadAlive: r.state.settings.daysThreadAlive,
  20702.             installCompleted: 1
  20703.           }).done(r.setState.bind(Kg(r), {
  20704.             settingsChanged: !1
  20705.           }, null))
  20706.         }),
  20707.         $g(Kg(r), 'handleSaveRules', function () {
  20708.           return r.props.saveRules({
  20709.             data: {
  20710.               newRules: JSON.stringify(r.state.rules.newRules),
  20711.               updatedRules: JSON.stringify(r.state.rules.updatedRules)
  20712.             }
  20713.           })
  20714.         }),
  20715.         $g(Kg(r), 'handleSaveChanges', function () {
  20716.           return r.handleSaveSettings().then(r.handleSaveRules())
  20717.         }),
  20718.         $g(Kg(r), 'markCompleteSetup', function () {
  20719.           return r.props.forumDetails.installCompleted ? vo.a.when(!0) : r.props.forumUpdateOnSave({
  20720.             installCompleted: 1
  20721.           })
  20722.         }),
  20723.         $g(Kg(r), 'handleCompleteSetup', function () {
  20724.           var e = r.state.settingsChanged || r.state.rulesChanged ? r.handleSaveChanges() : r.markCompleteSetup(),
  20725.           t = r.props.history;
  20726.           e.done(t.push.bind(t, '/install/complete'))
  20727.         }),
  20728.         r
  20729.       }
  20730.       return e = o,
  20731.       (t = [
  20732.         {
  20733.           key: 'componentDidMount',
  20734.           value: function () {
  20735.             this.props.fetchForumDetails(),
  20736.             this.props.fetchRules()
  20737.           }
  20738.         },
  20739.         {
  20740.           key: 'componentWillReceiveProps',
  20741.           value: function (e) {
  20742.             !this.props.forumDetails && e.forumDetails && this.setState({
  20743.               settings: o.getEditableFieldsFromForum(e.forumDetails)
  20744.             })
  20745.           }
  20746.         },
  20747.         {
  20748.           key: 'render',
  20749.           value: function () {
  20750.             var e = {
  20751.               selection: this.props.selection,
  20752.               isBaseInstallPath: !0,
  20753.               updateSettingsState: this.updateSettingsState,
  20754.               updateRulesState: this.updateRulesState,
  20755.               rulesSaveError: this.rulesSaveError,
  20756.               forumDetails: this.state.settings,
  20757.               forumChanged: this.state.settingsChanged,
  20758.               forumDetailsError: this.props.forumDetailsError,
  20759.               forumDetailsIsFetching: this.props.forumDetailsIsFetching,
  20760.               forumUpdateIsSaving: this.props.forumUpdateIsSaving,
  20761.               forumUpdateIsSaved: this.props.forumUpdateIsSaved,
  20762.               forumUpdateError: this.props.forumUpdateError,
  20763.               forumUpdateOnDismissError: this.props.forumUpdateOnDismissError,
  20764.               handleCompleteSetup: this.handleCompleteSetup
  20765.             },
  20766.             t = {
  20767.               selection: this.props.selection,
  20768.               location: this.props.location,
  20769.               history: this.props.history
  20770.             },
  20771.             n = this.props.auth.isAuthenticated,
  20772.             a = null;
  20773.             return n && (a = '/install/subscription/' === fo() ? C.a.createElement(Bg, {
  20774.               forceEnable: yo.a.isFeatureActive('intercomEnabled')
  20775.             }) : C.a.createElement(Ug, {
  20776.               selection: this.props.selection
  20777.             })),
  20778.             C.a.createElement('div', {
  20779.               className: 'section-contained'
  20780.             }, C.a.createElement('div', {
  20781.               className: 'layout layout--publishers'
  20782.             }, C.a.createElement('div', {
  20783.               className: 'layout__main'
  20784.             }, n ? C.a.createElement(Ag, t) : C.a.createElement('div', {
  20785.               className: 'layout__nav layout__nav--placeholder'
  20786.             }), C.a.createElement('div', {
  20787.               className: 'layout__content'
  20788.             }, C.a.cloneElement(this.props.children, e), a || null))))
  20789.           }
  20790.         }
  20791.       ]) && Wg(e.prototype, t),
  20792.       n && Wg(e, n),
  20793.       o
  20794.     }();
  20795.     $g(Sn, 'displayName', 'ForumInstall'),
  20796.     $g(Sn, 'propTypes', {
  20797.       auth: b.a.object.isRequired,
  20798.       location: kh.locationShape.isRequired,
  20799.       children: b.a.node.isRequired,
  20800.       history: b.a.shape({
  20801.         push: b.a.func.isRequired
  20802.       }).isRequired,
  20803.       selection: ht.isRequired,
  20804.       forumDetails: $c,
  20805.       forumDetailsError: b.a.string,
  20806.       forumDetailsIsFetching: b.a.bool,
  20807.       fetchForumDetails: b.a.func.isRequired,
  20808.       forumUpdateError: b.a.string,
  20809.       forumUpdateIsSaving: b.a.bool,
  20810.       forumUpdateIsSaved: b.a.bool,
  20811.       forumUpdateOnSave: b.a.func.isRequired,
  20812.       forumUpdateOnDismissError: b.a.func.isRequired,
  20813.       rules: b.a.arrayOf(b.a.shape(qn)),
  20814.       fetchRules: b.a.func.isRequired,
  20815.       saveRules: b.a.func.isRequired,
  20816.       rulesAreFetching: b.a.bool,
  20817.       rulesAreSaving: b.a.bool,
  20818.       rulesAreSaved: b.a.bool,
  20819.       rulesSaveFailed: b.a.bool,
  20820.       rulesSaveError: b.a.string
  20821.     }),
  20822.     $g(Sn, 'getEditableFieldsFromForum', function (e) {
  20823.       return {
  20824.         name: (e = e || {
  20825.         }).name,
  20826.         website: e.url,
  20827.         category: e.forumCategory && e.forumCategory.id || null,
  20828.         typeface: e.typeface,
  20829.         colorScheme: e.colorScheme,
  20830.         description: e.raw_description,
  20831.         language: e.language,
  20832.         commentPolicyLink: e.commentPolicyLink,
  20833.         commentPolicyText: e.commentPolicyText
  20834.       }
  20835.     });
  20836.     wn = Object(u.connect) (function (e) {
  20837.       var t = e.forumDetails,
  20838.       n = e.selection;
  20839.       return Vg(Vg({
  20840.         forumDetails: t.forumDetails,
  20841.         forumDetailsError: t.forumDetailsError,
  20842.         forumDetailsIsFetching: t.forumDetailsIsFetching
  20843.       }, e.moderationRules), {
  20844.       }, {
  20845.         selection: n
  20846.       })
  20847.     }, {
  20848.       fetchRules: i,
  20849.       saveRules: c,
  20850.       fetchForumDetails: ig
  20851.     }) (Ni.a.attachDrivers(Fo() (Sn), [
  20852.       m,
  20853.       bc
  20854.     ])),
  20855.     go = function (e) {
  20856.       var t = e.commentPolicyLink,
  20857.       n = e.commentPolicyText,
  20858.       a = e.forumDetails,
  20859.       r = e.expanded,
  20860.       o = e.colorScheme,
  20861.       i = t && t.trim(),
  20862.       e = n && n.trim();
  20863.       if (!r || !a || !a.name || !i && !e) return null;
  20864.       r = yo.a.isFeatureActive('embed_refresh', {
  20865.         forum: a.id
  20866.       });
  20867.       return C.a.createElement('div', {
  20868.         className: 'fieldset comment-policy__wrapper'.concat('dark' === o ? ' dark' : '')
  20869.       }, C.a.createElement('div', {
  20870.         className: ''.concat(r ? 'comment-policy-refresh' : 'comment-policy', ' fieldset__block')
  20871.       }, C.a.createElement('div', {
  20872.         className: 'content'
  20873.       }, C.a.createElement('p', {
  20874.         className: r ? 'comment-policy-refresh__heading' : 'comment-policy-text text-bold'
  20875.       }, a.name, ' Comment Policy'), C.a.createElement('p', {
  20876.         className: r ? 'comment-policy-refresh__text' : 'comment-policy-text'
  20877.       }, e ? n : null, i ? C.a.createElement('p', {
  20878.         className: r ? 'comment-policy-refresh__prompt' : 'comment-policy-link'
  20879.       }, 'Please read our', ' ', C.a.createElement('a', {
  20880.         href: t,
  20881.         className: r ? 'comment-policy-refresh__link' : 'policy-link',
  20882.         target: '_blank',
  20883.         rel: 'noopener noreferrer'
  20884.       }, 'Comment Policy'), ' ', 'before commenting.') : null)), r ? C.a.createElement('button', {
  20885.         className: 'btn comment-policy-refresh__button publisher-background-color'
  20886.       }, 'Got it') : C.a.createElement('span', {
  20887.         'aria-hidden': 'true',
  20888.         className: 'icon icon-chat-bubble'
  20889.       })))
  20890.     };
  20891.     go.propTypes = {
  20892.       expanded: b.a.bool.isRequired,
  20893.       commentPolicyLink: b.a.string,
  20894.       commentPolicyText: b.a.string,
  20895.       forumDetails: $c,
  20896.       colorScheme: b.a.oneOf(['light',
  20897.       'dark',
  20898.       'auto'])
  20899.     };
  20900.     var Zg = go;
  20901.     function Xg(e) {
  20902.       return (Xg = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  20903.         return typeof e
  20904.       }
  20905.        : function (e) {
  20906.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  20907.       }) (e)
  20908.     }
  20909.     function ey(e, t) {
  20910.       for (var n = 0; n < t.length; n++) {
  20911.         var a = t[n];
  20912.         a.enumerable = a.enumerable || !1,
  20913.         a.configurable = !0,
  20914.         'value' in a && (a.writable = !0),
  20915.         Object.defineProperty(e, a.key, a)
  20916.       }
  20917.     }
  20918.     function ty(e, t) {
  20919.       return (ty = Object.setPrototypeOf || function (e, t) {
  20920.         return e.__proto__ = t,
  20921.         e
  20922.       }) (e, t)
  20923.     }
  20924.     function ny(n) {
  20925.       var a = function () {
  20926.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  20927.         if (Reflect.construct.sham) return !1;
  20928.         if ('function' == typeof Proxy) return !0;
  20929.         try {
  20930.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  20931.           ], function () {
  20932.           })),
  20933.           !0
  20934.         } catch (e) {
  20935.           return !1
  20936.         }
  20937.       }();
  20938.       return function () {
  20939.         var e,
  20940.         t = ry(n);
  20941.         return e = a ? (e = ry(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  20942.         t = this,
  20943.         !(e = e) || 'object' !== Xg(e) && 'function' != typeof e ? ay(t) : e
  20944.       }
  20945.     }
  20946.     function ay(e) {
  20947.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  20948.       return e
  20949.     }
  20950.     function ry(e) {
  20951.       return (ry = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  20952.         return e.__proto__ || Object.getPrototypeOf(e)
  20953.       }) (e)
  20954.     }
  20955.     function oy(e, t, n) {
  20956.       return t in e ? Object.defineProperty(e, t, {
  20957.         value: n,
  20958.         enumerable: !0,
  20959.         configurable: !0,
  20960.         writable: !0
  20961.       }) : e[t] = n,
  20962.       e
  20963.     }
  20964.     oo = {
  20965.       zone: 'install',
  20966.       section: 'settings'
  20967.     },
  20968.     bo = function () {
  20969.       !function (e, t) {
  20970.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  20971.         e.prototype = Object.create(t && t.prototype, {
  20972.           constructor: {
  20973.             value: e,
  20974.             writable: !0,
  20975.             configurable: !0
  20976.           }
  20977.         }),
  20978.         t && ty(e, t)
  20979.       }(o, A);
  20980.       var e,
  20981.       t,
  20982.       n,
  20983.       r = ny(o);
  20984.       function o() {
  20985.         var n;
  20986.         !function (e, t) {
  20987.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  20988.         }(this, o);
  20989.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  20990.         return oy(ay(n = r.call.apply(r, [
  20991.           this
  20992.         ].concat(t))), 'state', {
  20993.           commentPolicyPreviewExpanded: !0
  20994.         }),
  20995.         oy(ay(n), 'toggleCommentPolicyPreviewExpanded', function (e) {
  20996.           e.preventDefault(),
  20997.           n.setState(function (e) {
  20998.             return {
  20999.               commentPolicyPreviewExpanded: !e.commentPolicyPreviewExpanded
  21000.             }
  21001.           })
  21002.         }),
  21003.         oy(ay(n), 'handleInputChange', function (t) {
  21004.           return function (e) {
  21005.             n.props.updateSettingsState(oy({
  21006.             }, t, e.target.value))
  21007.           }
  21008.         }),
  21009.         oy(ay(n), 'getInputId', function (e) {
  21010.           return ''.concat(n.constructor.displayName, '_').concat(e)
  21011.         }),
  21012.         n
  21013.       }
  21014.       return e = o,
  21015.       (t = [
  21016.         {
  21017.           key: 'componentDidMount',
  21018.           value: function () {
  21019.             this.props.fetchForumCategories(),
  21020.             this.props.fetchForumLanguages(),
  21021.             this.props.emitTrackingEvent({
  21022.               verb: 'view',
  21023.               section: 'configure',
  21024.               zone: 'install'
  21025.             })
  21026.           }
  21027.         },
  21028.         {
  21029.           key: 'render',
  21030.           value: function () {
  21031.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  21032.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  21033.               className: 'content__wrap spacing-bottom-double'
  21034.             }, this.props.forumDetailsError ? C.a.createElement(Ki, {
  21035.               message: this.props.forumDetailsError,
  21036.               alertType: 'error'
  21037.             }) : null);
  21038.             var e = this.props.forumCategories.allCategories.map(function (e) {
  21039.               return {
  21040.                 key: e.id,
  21041.                 value: e.id,
  21042.                 label: e.name
  21043.               }
  21044.             }),
  21045.             t = this.props.forumLanguages.map(function (e) {
  21046.               return {
  21047.                 key: e.code,
  21048.                 value: e.code,
  21049.                 label: e.name
  21050.               }
  21051.             }),
  21052.             n = this.getInputId('colorScheme'),
  21053.             a = this.getInputId('typeface');
  21054.             return C.a.createElement('div', {
  21055.               className: 'content__wrap'
  21056.             }, C.a.createElement('header', {
  21057.               className: 'settings__header'
  21058.             }, C.a.createElement('h2', {
  21059.               className: 'text-larger text-gray-darker spacing-bottom-small'
  21060.             }, 'Configure Disqus'), C.a.createElement('p', {
  21061.               className: 'text-gray'
  21062.             }, 'Here are popular configuration settings you can adjust for your site. You can always revisit these later in the settings tab.')), C.a.createElement('section', {
  21063.               className: 'settings__content'
  21064.             }, this.props.forumUpdateError ? C.a.createElement(Ki, {
  21065.               message: this.props.forumUpdateError,
  21066.               onRequestClose: this.props.forumUpdateOnDismissError,
  21067.               alertType: 'error'
  21068.             }) : null, C.a.createElement($h, {
  21069.               name: 'name',
  21070.               value: this.props.forumDetails.name,
  21071.               label: 'Website Name',
  21072.               onChange: this.handleInputChange('name'),
  21073.               idNamespace: this.constructor.displayName,
  21074.               readOnly: this.props.forumUpdateIsSaving,
  21075.               disabled: this.props.forumUpdateIsSaving
  21076.             }), C.a.createElement($h, {
  21077.               name: 'website',
  21078.               value: this.props.forumDetails.website,
  21079.               label: 'Website URL',
  21080.               onChange: this.handleInputChange('website'),
  21081.               idNamespace: this.constructor.displayName,
  21082.               readOnly: this.props.forumUpdateIsSaving,
  21083.               disabled: this.props.forumUpdateIsSaving,
  21084.               tooltip: C.a.createElement(C.a.Fragment, null, 'Changing domains? ', C.a.createElement('a', {
  21085.                 href: '/admin/discussions/migrate/'
  21086.               }, 'Learn how'), '.')
  21087.             }), C.a.createElement($h, {
  21088.               name: 'commentPolicyLink',
  21089.               value: this.props.forumDetails.commentPolicyLink,
  21090.               label: 'Comment Policy URL',
  21091.               onChange: this.handleInputChange('commentPolicyLink'),
  21092.               idNamespace: this.constructor.displayName,
  21093.               readOnly: this.props.forumUpdateIsSaving,
  21094.               disabled: this.props.forumUpdateIsSaving,
  21095.               tooltip: C.a.createElement(C.a.Fragment, null, 'Don\'t have a comment policy yet? ', C.a.createElement('a', {
  21096.                 href: Pn.commentPolicySuggestions
  21097.               }, 'Check out our suggestions.'))
  21098.             }), C.a.createElement($h, {
  21099.               name: 'commentPolicyText',
  21100.               value: this.props.forumDetails.commentPolicyText,
  21101.               label: 'Comment Policy Summary',
  21102.               onChange: this.handleInputChange('commentPolicyText'),
  21103.               idNamespace: this.constructor.displayName,
  21104.               readOnly: this.props.forumUpdateIsSaving,
  21105.               disabled: this.props.forumUpdateIsSaving,
  21106.               placeholder: 'Ex: We welcome relevant and respectful comments. Off-topic comments may be removed.',
  21107.               maxLength: 120,
  21108.               tooltip: C.a.createElement(C.a.Fragment, null, 'A brief summary of your policy that will appear above the comment area.', ' ', C.a.createElement('a', {
  21109.                 href: '#',
  21110.                 onClick: this.toggleCommentPolicyPreviewExpanded
  21111.               }, this.state.commentPolicyPreviewExpanded ? 'Collapse preview.' : 'Preview what it looks like.'))
  21112.             }), C.a.createElement(Zg, {
  21113.               commentPolicyText: this.props.forumDetails.commentPolicyText,
  21114.               commentPolicyLink: this.props.forumDetails.commentPolicyLink,
  21115.               colorScheme: this.props.forumDetails.colorScheme,
  21116.               expanded: this.state.commentPolicyPreviewExpanded,
  21117.               forumDetails: this.props.forumDetails
  21118.             }), C.a.createElement(Mf, {
  21119.               name: 'category',
  21120.               options: e,
  21121.               placeholder: 'Please select a category',
  21122.               value: this.props.forumDetails.category,
  21123.               label: 'Category',
  21124.               onChange: this.handleInputChange('category'),
  21125.               idNamespace: this.constructor.displayName,
  21126.               readOnly: this.props.forumUpdateIsSaving,
  21127.               disabled: !e.length || this.props.forumUpdateIsSaving
  21128.             }), C.a.createElement($h, {
  21129.               name: 'description',
  21130.               value: this.props.forumDetails.description,
  21131.               label: 'Description',
  21132.               onChange: this.handleInputChange('description'),
  21133.               idNamespace: this.constructor.displayName,
  21134.               useTextarea: !0,
  21135.               readOnly: this.props.forumUpdateIsSaving,
  21136.               disabled: this.props.forumUpdateIsSaving
  21137.             }), C.a.createElement(Mf, {
  21138.               name: 'language',
  21139.               disabled: !t.length,
  21140.               options: t,
  21141.               placeholder: 'Select a Language',
  21142.               value: this.props.forumDetails.language,
  21143.               label: 'Language',
  21144.               onChange: this.handleInputChange('language'),
  21145.               idNamespace: this.constructor.displayName,
  21146.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  21147.                 href: Pn.translate
  21148.               }, 'Make Disqus available in your language.'))
  21149.             }), C.a.createElement(kf, {
  21150.               label: 'Appearance',
  21151.               labelId: n,
  21152.               blockAdditionalClass: '-text text-medium align align--wrap'
  21153.             }, C.a.createElement(Mf, {
  21154.               id: n,
  21155.               name: 'colorScheme',
  21156.               secondaryLabel: 'Color scheme',
  21157.               className: 'fieldset-item__select',
  21158.               value: this.props.forumDetails.colorScheme,
  21159.               options: pf,
  21160.               onChange: this.handleInputChange('colorScheme'),
  21161.               inline: !0,
  21162.               readOnly: this.props.forumUpdateIsSaving,
  21163.               loading: this.props.forumUpdateIsSaving
  21164.             }), C.a.createElement(Mf, {
  21165.               id: a,
  21166.               name: 'typeface',
  21167.               secondaryLabel: 'Typeface',
  21168.               className: 'fieldset-item__select',
  21169.               value: this.props.forumDetails.typeface,
  21170.               options: lf,
  21171.               onChange: this.handleInputChange('typeface'),
  21172.               inline: !0,
  21173.               readOnly: this.props.forumUpdateIsSaving,
  21174.               loading: this.props.forumUpdateIsSaving
  21175.             }))), C.a.createElement('footer', {
  21176.               className: 'settings__footer clearfix'
  21177.             }, C.a.createElement(v.Link, {
  21178.               id: 'admin-configure-disqus-next',
  21179.               to: '/install/moderation/',
  21180.               className: 'button button-fill--brand button-padding-wide button-medium pull-right'
  21181.             }, 'Next')))
  21182.           }
  21183.         }
  21184.       ]) && ey(e.prototype, t),
  21185.       n && ey(e, n),
  21186.       o
  21187.     }();
  21188.     oy(bo, 'displayName', 'ForumInstallConfig'),
  21189.     oy(bo, 'propTypes', {
  21190.       updateSettingsState: b.a.func.isRequired,
  21191.       forumUpdateOnDismissError: b.a.func.isRequired,
  21192.       handleCompleteSetup: b.a.func.isRequired,
  21193.       forumDetails: $c,
  21194.       forumDetailsError: b.a.string,
  21195.       forumDetailsIsFetching: b.a.bool,
  21196.       forumUpdateError: b.a.string,
  21197.       forumUpdateIsSaving: b.a.bool,
  21198.       forumUpdateIsSaved: b.a.bool,
  21199.       forumCategories: b.a.shape({
  21200.         allCategories: b.a.arrayOf(vl)
  21201.       }).isRequired,
  21202.       forumLanguages: b.a.arrayOf(xl),
  21203.       emitTrackingEvent: b.a.func.isRequired,
  21204.       emitDefaultViewEvent: b.a.func.isRequired,
  21205.       fetchForumCategories: b.a.func.isRequired,
  21206.       fetchForumLanguages: b.a.func.isRequired
  21207.     }),
  21208.     oy(bo, 'defaultProps', {
  21209.       forumDetails: {
  21210.       }
  21211.     });
  21212.     _o = Object(u.connect) (function (e) {
  21213.       return {
  21214.         forumCategories: e.forumCategories,
  21215.         forumLanguages: e.forumLanguages.languages
  21216.       }
  21217.     }, {
  21218.       emitTrackingEvent: Xo(oo),
  21219.       emitDefaultViewEvent: ei(oo),
  21220.       fetchForumCategories: Nh,
  21221.       fetchForumLanguages: vu
  21222.     }) (bo);
  21223.     function iy(e) {
  21224.       return (iy = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  21225.         return typeof e
  21226.       }
  21227.        : function (e) {
  21228.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  21229.       }) (e)
  21230.     }
  21231.     function sy() {
  21232.       return (sy = Object.assign || function (e) {
  21233.         for (var t = 1; t < arguments.length; t++) {
  21234.           var n,
  21235.           a = arguments[t];
  21236.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  21237.         }
  21238.         return e
  21239.       }).apply(this, arguments)
  21240.     }
  21241.     function ly(e, t) {
  21242.       for (var n = 0; n < t.length; n++) {
  21243.         var a = t[n];
  21244.         a.enumerable = a.enumerable || !1,
  21245.         a.configurable = !0,
  21246.         'value' in a && (a.writable = !0),
  21247.         Object.defineProperty(e, a.key, a)
  21248.       }
  21249.     }
  21250.     function cy(e, t) {
  21251.       return (cy = Object.setPrototypeOf || function (e, t) {
  21252.         return e.__proto__ = t,
  21253.         e
  21254.       }) (e, t)
  21255.     }
  21256.     function uy(n) {
  21257.       var a = function () {
  21258.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  21259.         if (Reflect.construct.sham) return !1;
  21260.         if ('function' == typeof Proxy) return !0;
  21261.         try {
  21262.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  21263.           ], function () {
  21264.           })),
  21265.           !0
  21266.         } catch (e) {
  21267.           return !1
  21268.         }
  21269.       }();
  21270.       return function () {
  21271.         var e,
  21272.         t = dy(n);
  21273.         return e = a ? (e = dy(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  21274.         t = this,
  21275.         !(e = e) || 'object' !== iy(e) && 'function' != typeof e ? py(t) : e
  21276.       }
  21277.     }
  21278.     function py(e) {
  21279.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  21280.       return e
  21281.     }
  21282.     function dy(e) {
  21283.       return (dy = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  21284.         return e.__proto__ || Object.getPrototypeOf(e)
  21285.       }) (e)
  21286.     }
  21287.     function my(e, t, n) {
  21288.       return t in e ? Object.defineProperty(e, t, {
  21289.         value: n,
  21290.         enumerable: !0,
  21291.         configurable: !0,
  21292.         writable: !0
  21293.       }) : e[t] = n,
  21294.       e
  21295.     }
  21296.     To = function () {
  21297.       !function (e, t) {
  21298.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  21299.         e.prototype = Object.create(t && t.prototype, {
  21300.           constructor: {
  21301.             value: e,
  21302.             writable: !0,
  21303.             configurable: !0
  21304.           }
  21305.         }),
  21306.         t && cy(e, t)
  21307.       }(o, A);
  21308.       var e,
  21309.       t,
  21310.       n,
  21311.       r = uy(o);
  21312.       function o() {
  21313.         var t;
  21314.         !function (e, t) {
  21315.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  21316.         }(this, o);
  21317.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  21318.         return my(py(t = r.call.apply(r, [
  21319.           this
  21320.         ].concat(n))), 'state', {
  21321.           threads: [
  21322.           ]
  21323.         }),
  21324.         my(py(t), 'fetchForumThreads', function (e) {
  21325.           e = sy({
  21326.             forum: t.props.selection.forum.shortname,
  21327.             limit: 1
  21328.           }, e);
  21329.           t.apiCall = io.a.call('forums/listThreads', {
  21330.             data: e
  21331.           }).done(t.handleFetchSuccess)
  21332.         }),
  21333.         my(py(t), 'handleFetchSuccess', function (e) {
  21334.           t.setState({
  21335.             threads: e.response
  21336.           })
  21337.         }),
  21338.         my(py(t), 'getComponentProps', function () {
  21339.           return {
  21340.             forumThreads: t.state.threads
  21341.           }
  21342.         }),
  21343.         t
  21344.       }
  21345.       return e = o,
  21346.       (t = [
  21347.         {
  21348.           key: 'componentWillUnmount',
  21349.           value: function () {
  21350.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  21351.           }
  21352.         },
  21353.         {
  21354.           key: 'componentDidMount',
  21355.           value: function () {
  21356.             this.props.selection.type === ft.forum && this.fetchForumThreads()
  21357.           }
  21358.         }
  21359.       ]) && ly(e.prototype, t),
  21360.       n && ly(e, n),
  21361.       o
  21362.     }();
  21363.     my(To, 'displayName', 'ForumThreadDriver'),
  21364.     my(To, 'propTypes', {
  21365.       selection: ht.isRequired
  21366.     });
  21367.     qs = Object(ki.createDriver) (To, function (e) {
  21368.       return {
  21369.         selection: e.selection
  21370.       }
  21371.     }),
  21372.     Qs = function (e) {
  21373.       var t = e.iconName;
  21374.       return e.href ? C.a.createElement('a', {
  21375.         href: e.href,
  21376.         className: 'settings__card text-larger -link'
  21377.       }, C.a.createElement('i', {
  21378.         className: '-icon'.concat(t ? ' icon-'.concat(t) : '')
  21379.       }), e.title) : C.a.createElement('div', {
  21380.         className: 'settings__card'
  21381.       }, C.a.createElement('h2', {
  21382.         className: 'text-larger text-gray-darker spacing-bottom-small'
  21383.       }, e.title), e.children)
  21384.     };
  21385.     Qs.propTypes = {
  21386.       title: b.a.string.isRequired,
  21387.       iconName: b.a.string,
  21388.       href: b.a.string,
  21389.       children: b.a.array
  21390.     };
  21391.     var fy = Qs;
  21392.     function hy(e) {
  21393.       return (hy = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  21394.         return typeof e
  21395.       }
  21396.        : function (e) {
  21397.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  21398.       }) (e)
  21399.     }
  21400.     function gy(e, t) {
  21401.       for (var n = 0; n < t.length; n++) {
  21402.         var a = t[n];
  21403.         a.enumerable = a.enumerable || !1,
  21404.         a.configurable = !0,
  21405.         'value' in a && (a.writable = !0),
  21406.         Object.defineProperty(e, a.key, a)
  21407.       }
  21408.     }
  21409.     function yy(e, t) {
  21410.       return (yy = Object.setPrototypeOf || function (e, t) {
  21411.         return e.__proto__ = t,
  21412.         e
  21413.       }) (e, t)
  21414.     }
  21415.     function by(n) {
  21416.       var a = function () {
  21417.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  21418.         if (Reflect.construct.sham) return !1;
  21419.         if ('function' == typeof Proxy) return !0;
  21420.         try {
  21421.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  21422.           ], function () {
  21423.           })),
  21424.           !0
  21425.         } catch (e) {
  21426.           return !1
  21427.         }
  21428.       }();
  21429.       return function () {
  21430.         var e,
  21431.         t = vy(n);
  21432.         return e = a ? (e = vy(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  21433.         t = this,
  21434.         !(e = e) || 'object' !== hy(e) && 'function' != typeof e ? function (e) {
  21435.           if (void 0 !== e) return e;
  21436.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  21437.         }(t) : e
  21438.       }
  21439.     }
  21440.     function vy(e) {
  21441.       return (vy = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  21442.         return e.__proto__ || Object.getPrototypeOf(e)
  21443.       }) (e)
  21444.     }
  21445.     function _y(e, t, n) {
  21446.       return t in e ? Object.defineProperty(e, t, {
  21447.         value: n,
  21448.         enumerable: !0,
  21449.         configurable: !0,
  21450.         writable: !0
  21451.       }) : e[t] = n,
  21452.       e
  21453.     }
  21454.     Ss = {
  21455.       zone: 'install',
  21456.       section: 'complete'
  21457.     },
  21458.     Ts = function () {
  21459.       !function (e, t) {
  21460.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  21461.         e.prototype = Object.create(t && t.prototype, {
  21462.           constructor: {
  21463.             value: e,
  21464.             writable: !0,
  21465.             configurable: !0
  21466.           }
  21467.         }),
  21468.         t && yy(e, t)
  21469.       }(r, A);
  21470.       var e,
  21471.       t,
  21472.       n,
  21473.       a = by(r);
  21474.       function r() {
  21475.         return function (e, t) {
  21476.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  21477.         }(this, r),
  21478.         a.apply(this, arguments)
  21479.       }
  21480.       return e = r,
  21481.       (t = [
  21482.         {
  21483.           key: 'render',
  21484.           value: function () {
  21485.             return this.props.viewData.links[0].href = this.props.forumThreads[0] && this.props.forumThreads[0].signedLink || null,
  21486.             C.a.createElement('div', {
  21487.               className: 'settings content__wrap'
  21488.             }, C.a.createElement('header', {
  21489.               className: 'settings__header'
  21490.             }, C.a.createElement('h2', {
  21491.               className: 'text-larger text-gray-darker spacing-bottom-small'
  21492.             }, 'Setup Complete!'), C.a.createElement('p', {
  21493.               className: 'text-gray'
  21494.             }, 'Congratulations, you finished installing Disqus! Here are a few pages to help you get started using Disqus.')), C.a.createElement('div', {
  21495.               className: 'spacing-top-quad'
  21496.             }, C.a.createElement('div', {
  21497.               className: 'video-wrapper install-complete'
  21498.             }, this.props.viewData.videos.map(function (e, t) {
  21499.               return C.a.createElement('iframe', {
  21500.                 id: 'ytplayer',
  21501.                 key: t,
  21502.                 src: e.src,
  21503.                 allow: e.allow,
  21504.                 allowFullScreen: e.allowFullScreen
  21505.               })
  21506.             }))), C.a.createElement('div', {
  21507.               className: 'spacing-top-quad'
  21508.             }, this.props.viewData.links.map(function (e, t) {
  21509.               return e.href ? C.a.createElement(fy, {
  21510.                 key: t,
  21511.                 title: e.title,
  21512.                 href: e.href,
  21513.                 iconName: e.iconName
  21514.               }) : null
  21515.             })), C.a.createElement('div', {
  21516.               className: 'spacing-top-quad spacing-bottom-quad'
  21517.             }, this.props.viewData.paragraphs.map(function (e, t) {
  21518.               return C.a.createElement(fy, {
  21519.                 key: t,
  21520.                 title: e.title
  21521.               }, e.content.map(function (e, t) {
  21522.                 return C.a.createElement('p', {
  21523.                   key: t,
  21524.                   className: 'text-gray'
  21525.                 }, e.value, C.a.createElement('a', {
  21526.                   key: t,
  21527.                   href: e.href,
  21528.                   className: 'settings__tile__link'
  21529.                 }, e.hrefValue), '.')
  21530.               }))
  21531.             })), C.a.createElement('footer', {
  21532.               className: 'settings__footer clearfix'
  21533.             }, C.a.createElement(v.Link, {
  21534.               to: '/install/moderation',
  21535.               className: 'button button-fill button-padding-wide button-medium pull-left'
  21536.             }, 'Back'), C.a.createElement(v.Link, {
  21537.               to: '/',
  21538.               className: 'button button-fill--brand button-padding-wide button-medium pull-right'
  21539.             }, 'Dismiss Setup')))
  21540.           }
  21541.         }
  21542.       ]) && gy(e.prototype, t),
  21543.       n && gy(e, n),
  21544.       r
  21545.     }();
  21546.     _y(Ts, 'displayName', 'ForumInstallComplete'),
  21547.     _y(Ts, 'propTypes', {
  21548.       viewData: b.a.object.isRequired,
  21549.       forumThreads: b.a.arrayOf(b.a.object).isRequired,
  21550.       emitTrackingEvent: b.a.func.isRequired,
  21551.       emitDefaultViewEvent: b.a.func.isRequired
  21552.     }),
  21553.     _y(Ts, 'defaultProps', {
  21554.       viewData: {
  21555.         videos: [
  21556.           {
  21557.             src: 'https://www.youtube.com/embed/wTRsNa8kzTw?rel=0',
  21558.             allow: 'autoplay; encrypted-media',
  21559.             allowFullScreen: ''
  21560.           }
  21561.         ],
  21562.         links: [
  21563.           {
  21564.             title: 'Learn how to moderate comments',
  21565.             href: '//www.disqus.com/admin/moderate/',
  21566.             iconName: 'flag-wave'
  21567.           },
  21568.           {
  21569.             title: 'Configure your site\'s community settings',
  21570.             href: '//www.disqus.com/admin/settings/community/',
  21571.             iconName: 'cog'
  21572.           }
  21573.         ],
  21574.         paragraphs: [
  21575.           {
  21576.             title: 'Need help?',
  21577.             content: [
  21578.               {
  21579.                 value: 'Contact our support team at ',
  21580.                 href: '//www.disqus.com/support/',
  21581.                 hrefValue: 'disqus.com/support'
  21582.               },
  21583.               {
  21584.                 value: 'You can also reach our active community of Disqus users at ',
  21585.                 href: '//www.disqus.com/channel/discussdisqus/',
  21586.                 hrefValue: 'Discuss Disqus'
  21587.               }
  21588.             ]
  21589.           },
  21590.           {
  21591.             title: 'Need to import old comments?',
  21592.             content: [
  21593.               {
  21594.                 value: 'See our Knowledge Base article on ',
  21595.                 href: '//www.disqus.com/admin/discussions/import/platform/wordpress/',
  21596.                 hrefValue: 'How to import old comments'
  21597.               }
  21598.             ]
  21599.           }
  21600.         ]
  21601.       }
  21602.     });
  21603.     Ds = Object(u.connect) (null, {
  21604.       emitTrackingEvent: Xo(Ss),
  21605.       emitDefaultViewEvent: ei(Ss)
  21606.     }) (Ni.a.attachDrivers(Ts, [
  21607.       qs
  21608.     ])),
  21609.     cs = function (t) {
  21610.       return C.a.createElement('div', {
  21611.         id: 'admin-'.concat(t.profile.name.toLowerCase(), '-moderation'),
  21612.         className: 'moderation-profile-container '.concat(t.profile.color, '-profile').concat(t.isSelected ? ' selected' : ''),
  21613.         'data-value': t.profile.name,
  21614.         onClick: function (e) {
  21615.           return t.handleClick(e)
  21616.         }
  21617.       }, C.a.createElement('div', {
  21618.         className: 'moderation-profile-header'
  21619.       }, C.a.createElement('span', {
  21620.         className: 'profile-selected-check'.concat(t.isSelected ? ' checked' : '')
  21621.       }), C.a.createElement('h3', {
  21622.         className: 'moderation-profile-title'
  21623.       }, t.profile.name)), C.a.createElement('div', {
  21624.         className: 'profile-content-wrapper'
  21625.       }, t.profile.description && t.showDescription ? C.a.createElement('div', {
  21626.         className: 'moderation-profile-description text-medium'
  21627.       }, t.profile.description) : null, t.profile.settings && t.showSettings ? C.a.createElement('ul', {
  21628.         className: 'moderation-profile-list text-medium'
  21629.       }, t.profile.settings.map(function (e) {
  21630.         return e.text ? C.a.createElement('li', {
  21631.           key: ''.concat(t.profile.name, '-').concat(e.key),
  21632.           className: 'moderation-profile-list-item'
  21633.         }, e.text) : null
  21634.       }), Object.values(t.profile.rules).map(function (e) {
  21635.         return !e.text || e.isHiveRule && !yo.a.isFeatureActive('thehive', {
  21636.           forum: t.forumId || ''
  21637.         }) ? null : C.a.createElement('li', {
  21638.           key: ''.concat(t.profile.name, '-').concat(e.key),
  21639.           className: 'moderation-profile-list-item'
  21640.         }, e.text)
  21641.       })) : null))
  21642.     };
  21643.     cs.propTypes = {
  21644.       profile: ac.isRequired,
  21645.       showDescription: b.a.bool,
  21646.       showSettings: b.a.bool,
  21647.       isSelected: b.a.bool.isRequired,
  21648.       handleClick: b.a.func.isRequired,
  21649.       forumId: b.a.string
  21650.     };
  21651.     var Ey = cs,
  21652.     Ls = function (e) {
  21653.       var t = e.id,
  21654.       n = e.children,
  21655.       a = e.onClick,
  21656.       r = '',
  21657.       o = '';
  21658.       return e.isSaved ? (r = 'is-saved', o = 'icon-checkmark') : e.isSaving && (r = 'is-saving', o = 'spinner -sm'),
  21659.       C.a.createElement('div', {
  21660.         className: 'save-button fieldset--save pull-right'
  21661.       }, C.a.createElement('div', {
  21662.         className: 'save-button__icon-container '.concat(r)
  21663.       }, C.a.createElement('div', {
  21664.         className: 'save-button__icon '.concat(o)
  21665.       })), C.a.createElement('button', {
  21666.         id: t,
  21667.         className: 'button button-fill--brand button-padding-wide button-medium',
  21668.         onClick: a
  21669.       }, n))
  21670.     };
  21671.     Ls.propTypes = {
  21672.       children: b.a.node.isRequired,
  21673.       id: b.a.string,
  21674.       isSaving: b.a.bool,
  21675.       isSaved: b.a.bool,
  21676.       onClick: b.a.func
  21677.     };
  21678.     var Oy = Ls;
  21679.     function Sy(e) {
  21680.       return (Sy = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  21681.         return typeof e
  21682.       }
  21683.        : function (e) {
  21684.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  21685.       }) (e)
  21686.     }
  21687.     function wy(t, e) {
  21688.       var n,
  21689.       a = Object.keys(t);
  21690.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  21691.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  21692.       })), a.push.apply(a, n)),
  21693.       a
  21694.     }
  21695.     function Py(t) {
  21696.       for (var e = 1; e < arguments.length; e++) {
  21697.         var n = null != arguments[e] ? arguments[e] : {
  21698.         };
  21699.         e % 2 ? wy(Object(n), !0).forEach(function (e) {
  21700.           jy(t, e, n[e])
  21701.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : wy(Object(n)).forEach(function (e) {
  21702.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  21703.         })
  21704.       }
  21705.       return t
  21706.     }
  21707.     function ky(e, t) {
  21708.       return function (e) {
  21709.         if (Array.isArray(e)) return e
  21710.       }(e) || function (e, t) {
  21711.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  21712.         if (null != n) {
  21713.           var a,
  21714.           r,
  21715.           o = [
  21716.           ],
  21717.           i = !0,
  21718.           s = !1;
  21719.           try {
  21720.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  21721.           } catch (e) {
  21722.             s = !0,
  21723.             r = e
  21724.           } finally {
  21725.             try {
  21726.               i || null == n.return || n.return()
  21727.             } finally {
  21728.               if (s) throw r
  21729.             }
  21730.           }
  21731.           return o
  21732.         }
  21733.       }(e, t) || function (e, t) {
  21734.         if (e) {
  21735.           if ('string' == typeof e) return Ny(e, t);
  21736.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  21737.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Ny(e, t) : void 0
  21738.         }
  21739.       }(e, t) || function () {
  21740.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  21741.       }()
  21742.     }
  21743.     function Ny(e, t) {
  21744.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  21745.       return a
  21746.     }
  21747.     function Cy(e, t) {
  21748.       for (var n = 0; n < t.length; n++) {
  21749.         var a = t[n];
  21750.         a.enumerable = a.enumerable || !1,
  21751.         a.configurable = !0,
  21752.         'value' in a && (a.writable = !0),
  21753.         Object.defineProperty(e, a.key, a)
  21754.       }
  21755.     }
  21756.     function Ry(e, t) {
  21757.       return (Ry = Object.setPrototypeOf || function (e, t) {
  21758.         return e.__proto__ = t,
  21759.         e
  21760.       }) (e, t)
  21761.     }
  21762.     function xy(n) {
  21763.       var a = function () {
  21764.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  21765.         if (Reflect.construct.sham) return !1;
  21766.         if ('function' == typeof Proxy) return !0;
  21767.         try {
  21768.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  21769.           ], function () {
  21770.           })),
  21771.           !0
  21772.         } catch (e) {
  21773.           return !1
  21774.         }
  21775.       }();
  21776.       return function () {
  21777.         var e,
  21778.         t = Dy(n);
  21779.         return e = a ? (e = Dy(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  21780.         t = this,
  21781.         !(e = e) || 'object' !== Sy(e) && 'function' != typeof e ? Ay(t) : e
  21782.       }
  21783.     }
  21784.     function Ay(e) {
  21785.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  21786.       return e
  21787.     }
  21788.     function Dy(e) {
  21789.       return (Dy = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  21790.         return e.__proto__ || Object.getPrototypeOf(e)
  21791.       }) (e)
  21792.     }
  21793.     function jy(e, t, n) {
  21794.       return t in e ? Object.defineProperty(e, t, {
  21795.         value: n,
  21796.         enumerable: !0,
  21797.         configurable: !0,
  21798.         writable: !0
  21799.       }) : e[t] = n,
  21800.       e
  21801.     }
  21802.     Lo = {
  21803.       zone: 'install',
  21804.       section: 'moderation'
  21805.     },
  21806.     Mo = function () {
  21807.       !function (e, t) {
  21808.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  21809.         e.prototype = Object.create(t && t.prototype, {
  21810.           constructor: {
  21811.             value: e,
  21812.             writable: !0,
  21813.             configurable: !0
  21814.           }
  21815.         }),
  21816.         t && Ry(e, t)
  21817.       }(o, A);
  21818.       var e,
  21819.       t,
  21820.       n,
  21821.       a = xy(o);
  21822.       function o() {
  21823.         var r;
  21824.         !function (e, t) {
  21825.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  21826.         }(this, o);
  21827.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  21828.         return jy(Ay(r = a.call.apply(a, [
  21829.           this
  21830.         ].concat(t))), 'state', {
  21831.           rules: {
  21832.           },
  21833.           selectedProfile: null
  21834.         }),
  21835.         jy(Ay(r), 'handleProfileSelect', function (t) {
  21836.           var e,
  21837.           n = wf.filter(function (e) {
  21838.             return e.name === t.currentTarget.dataset.value
  21839.           }) [0] || null,
  21840.           a = {
  21841.           };
  21842.           n && (n.settings.forEach(function (e) {
  21843.             a[e.key] = 'boolean' == typeof e.value ? e.value ? 1 : 0 : e.value
  21844.           }), e = Object.entries(n.rules), n.rules = Object.fromEntries(e.filter(function (e) {
  21845.             e = ky(e, 2);
  21846.             return !e[1].isHiveRule || r.props.selection.forum.features.allModRules || yo.a.isFeatureActive('thehive', {
  21847.               forum: r.props.selection.forum.shortname
  21848.             })
  21849.           }))),
  21850.           r.setState(Py(Py({
  21851.           }, a), {
  21852.           }, {
  21853.             rules: n.rules,
  21854.             selectedProfile: n.name
  21855.           })),
  21856.           r.props.updateSettingsState(a),
  21857.           r.props.updateRulesState(n.rules)
  21858.         }),
  21859.         r
  21860.       }
  21861.       return e = o,
  21862.       (t = [
  21863.         {
  21864.           key: 'render',
  21865.           value: function () {
  21866.             var t = this;
  21867.             return C.a.createElement('div', {
  21868.               className: 'content__wrap'
  21869.             }, C.a.createElement('header', {
  21870.               className: 'settings__header'
  21871.             }, C.a.createElement('h2', {
  21872.               className: 'text-larger text-gray-darker spacing-bottom-small'
  21873.             }, 'Comment and Moderation Settings')), C.a.createElement('section', {
  21874.               className: 'settings__content'
  21875.             }, this.props.forumUpdateError ? C.a.createElement(Ki, {
  21876.               message: this.props.forumUpdateError,
  21877.               onRequestClose: this.props.forumUpdateOnDismissError,
  21878.               alertType: 'error'
  21879.             }) : null, this.props.rulesSaveError ? C.a.createElement(Ki, {
  21880.               message: this.props.rulesSaveError,
  21881.               alertType: 'error'
  21882.             }) : null, C.a.createElement('div', {
  21883.               className: 'text-gray spacing-bottom-large'
  21884.             }, 'Select the default settings profile that best fits your moderation style and community', C.a.createElement('p', {
  21885.               className: 'text-blue text-semibold'
  21886.             }, 'Don’t worry, you can modify any of the individual settings at any time.')), wf.map(function (e) {
  21887.               return C.a.createElement(Ey, {
  21888.                 key: e.name,
  21889.                 profile: e,
  21890.                 showDescription: !1,
  21891.                 showSettings: !0,
  21892.                 isSelected: t.state.selectedProfile === e.name,
  21893.                 handleClick: t.handleProfileSelect,
  21894.                 forumId: t.props.selection.forum.shortname
  21895.               })
  21896.             })), C.a.createElement('footer', {
  21897.               className: 'settings__footer clearfix'
  21898.             }, C.a.createElement(v.Link, {
  21899.               to: '/install/settings',
  21900.               className: 'button button-fill button-padding-wide button-medium pull-left'
  21901.             }, 'Back'), C.a.createElement(Oy, {
  21902.               id: 'admin-complete-setup',
  21903.               onClick: this.props.handleCompleteSetup,
  21904.               isSaving: this.props.forumUpdateIsSaving,
  21905.               isSaved: this.props.forumUpdateIsSaved
  21906.             }, 'Complete Setup')))
  21907.           }
  21908.         }
  21909.       ]) && Cy(e.prototype, t),
  21910.       n && Cy(e, n),
  21911.       o
  21912.     }();
  21913.     jy(Mo, 'displayName', 'ForumInstallModeration'),
  21914.     jy(Mo, 'propTypes', {
  21915.       updateSettingsState: b.a.func.isRequired,
  21916.       updateRulesState: b.a.func.isRequired,
  21917.       forumUpdateOnDismissError: b.a.func.isRequired,
  21918.       handleCompleteSetup: b.a.func.isRequired,
  21919.       forumUpdateError: b.a.string,
  21920.       forumUpdateIsSaving: b.a.bool,
  21921.       forumUpdateIsSaved: b.a.bool,
  21922.       rulesSaveError: b.a.string,
  21923.       emitTrackingEvent: b.a.func.isRequired,
  21924.       emitDefaultViewEvent: b.a.func.isRequired,
  21925.       selection: ht.isRequired
  21926.     });
  21927.     ti = Object(u.connect) (null, {
  21928.       emitTrackingEvent: Xo(Lo),
  21929.       emitDefaultViewEvent: ei(Lo)
  21930.     }) (Mo),
  21931.     ai = function (e) {
  21932.       var t = e.package,
  21933.       n = e.onClose,
  21934.       e = t.id === Ur.DISQUS_PLUS_PACKAGE_ID,
  21935.       a = t.id === Ur.DISQUS_POLLS_PRO_PACKAGE_ID ? {
  21936.         header: 'Welcome to Disqus Polls Pro',
  21937.         intro: 'You’ve joined a community of thousands of premier publishers who use our tools to build, engage, and grow their online communities.',
  21938.         list: [
  21939.           {
  21940.             text: 'Create interactive Polls and embed them anywhere on your site in minutes',
  21941.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/clipboard.svg'
  21942.           },
  21943.           {
  21944.             text: 'Keep your audiences engaged via dynamic and customizable question formats',
  21945.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/social-media.svg'
  21946.           },
  21947.           {
  21948.             text: 'Track results in real-time via in-depth reporting and analytics',
  21949.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/chart.svg'
  21950.           }
  21951.         ],
  21952.         imageClass: 'welcome-image-polls-pro',
  21953.         contentClass: 'welcome-content-polls',
  21954.         getStarted: 'Get started by creating your first poll now.'
  21955.       }
  21956.        : t.id === Ur.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID ? {
  21957.         header: 'Welcome to Disqus Polls',
  21958.         intro: 'You’ve joined a community of thousands of premier publishers who use our tools to build, engage, and grow their online communities.',
  21959.         list: [
  21960.           {
  21961.             text: 'Create interactive Polls and embed them anywhere on your site in minutes',
  21962.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/one.svg'
  21963.           },
  21964.           {
  21965.             text: 'Complete your ad setup so that you can start earning a share of the ad revenue generated by your Polls',
  21966.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/two.svg'
  21967.           },
  21968.           {
  21969.             text: 'Track results in real-time via in-depth reporting and analytics',
  21970.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/three.svg'
  21971.           }
  21972.         ],
  21973.         imageClass: 'welcome-image-polls-free',
  21974.         contentClass: 'welcome-content-polls',
  21975.         itemTextClass: 'welcome-item-text-free',
  21976.         paragraphClass: 'welcome-paragraph-free',
  21977.         containerClass: 'welcome-container-free',
  21978.         getStarted: 'Get started by creating your first poll now.'
  21979.       }
  21980.        : t.id === Ur.DISQUS_PRO_PACKAGE_ID ? {
  21981.         header: 'Welcome to Disqus Pro',
  21982.         intro: 'You’ve joined a community of thousands of premier publishers who take advantage of advanced engagement, analytics, and moderation features.',
  21983.         list: [
  21984.           {
  21985.             text: C.a.createElement(C.a.Fragment, null, 'Engage your audience via advanced features like ', C.a.createElement('span', {
  21986.               className: 'welcome-item-text -bold'
  21987.             }, 'Community Badges, Custom Reactions,'), ' and ', C.a.createElement('span', {
  21988.               className: 'welcome-item-text -bold'
  21989.             }, 'Star Ratings')),
  21990.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/reactions.svg'
  21991.           },
  21992.           {
  21993.             text: C.a.createElement(C.a.Fragment, null, 'Enforce your comment policy with ease using AI-powered ', C.a.createElement('span', {
  21994.               className: 'welcome-item-text -bold'
  21995.             }, 'Advanced Moderation'), ' tools'),
  21996.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/debate.svg'
  21997.           },
  21998.           {
  21999.             text: C.a.createElement(C.a.Fragment, null, 'Dive into your engagement data via ', C.a.createElement('span', {
  22000.               className: 'welcome-item-text -bold'
  22001.             }, 'Advanced Analytics'), ' dashboards'),
  22002.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/dashboard.svg'
  22003.           }
  22004.         ],
  22005.         imageClass: 'welcome-image-pro',
  22006.         getStarted: 'Get started by setting up your comment section now.'
  22007.       }
  22008.        : e ? {
  22009.         header: 'Welcome to Disqus Plus',
  22010.         intro: 'You’ve joined a community of thousands of premier publishers who use our tools to build, engage, and grow their online communities.',
  22011.         list: [
  22012.           {
  22013.             text: 'Deliver a premium, ad-free experience to your commenters',
  22014.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/premium.svg'
  22015.           },
  22016.           {
  22017.             text: 'Engage your users via a number of powerful engagement features',
  22018.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/social-media.svg'
  22019.           },
  22020.           {
  22021.             text: 'Enjoy access to direct customer support + resources',
  22022.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/online-chat.svg'
  22023.           }
  22024.         ],
  22025.         imageClass: 'welcome-image-plus',
  22026.         getStarted: 'Get started by setting up your comment section now.'
  22027.       }
  22028.        : {
  22029.         header: 'Welcome to Disqus',
  22030.         intro: 'You’ve joined a community of thousands of premier publishers who use our tools to build, engage, and grow their online communities.',
  22031.         list: [
  22032.           {
  22033.             text: 'You’ve selected a free, ad-supported version of Disqus. Your site will now undergo review while we determine your ad eligibility status.',
  22034.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/one.svg'
  22035.           },
  22036.           {
  22037.             text: 'If we determine that your site is NOT eligible for our free plan, we’ll reach out to let you know that you’ll have to choose a paid plan to continue using Disqus.',
  22038.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/two.svg'
  22039.           },
  22040.           {
  22041.             text: 'If we determine that your site is eligible, we’ll let you know and you’ll be able to proceed with this plan.',
  22042.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/three.svg'
  22043.           },
  22044.           {
  22045.             text: 'While we begin the review process, go ahead and click the button below to start setting up your site account.',
  22046.             icon: '//c.disquscdn.com/next/current/publisher-admin/assets/img/welcome/four.svg'
  22047.           }
  22048.         ],
  22049.         imageClass: 'welcome-image-free',
  22050.         contentClass: 'welcome-content-free',
  22051.         itemTextClass: 'welcome-item-text-free',
  22052.         paragraphClass: 'welcome-paragraph-free',
  22053.         containerClass: 'welcome-container-free'
  22054.       };
  22055.       return C.a.createElement(_.a, {
  22056.         isOpen: !0,
  22057.         onRequestClose: n,
  22058.         className: 'admin-modal -clipped -wide welcome-modal',
  22059.         overlayClassName: 'modal-overlay -dark'
  22060.       }, C.a.createElement('div', {
  22061.         className: a.containerClass || 'welcome-container'
  22062.       }, C.a.createElement('div', {
  22063.         className: a.contentClass || 'welcome-content'
  22064.       }, C.a.createElement('h3', {
  22065.         className: 'welcome-header'
  22066.       }, a.header), C.a.createElement('p', {
  22067.         className: a.paragraphClass || 'welcome-paragraph'
  22068.       }, a.intro), C.a.createElement('ul', {
  22069.         className: 'welcome-list'
  22070.       }, (a.list || [
  22071.       ]).map(function (e, t) {
  22072.         return C.a.createElement('li', {
  22073.           className: 'welcome-item',
  22074.           key: t
  22075.         }, C.a.createElement('img', {
  22076.           className: 'welcome-item-img',
  22077.           src: e.icon
  22078.         }), C.a.createElement('span', {
  22079.           className: a.itemTextClass || 'welcome-item-text'
  22080.         }, e.text))
  22081.       })), a.getStarted && C.a.createElement('p', {
  22082.         className: 'welcome-paragraph'
  22083.       }, a.getStarted), C.a.createElement('button', {
  22084.         className: 'welcome-button',
  22085.         onClick: n
  22086.       }, 'Get Started')), C.a.createElement('div', {
  22087.         className: a.imageClass
  22088.       })))
  22089.     };
  22090.     ai.propTypes = {
  22091.       package: Ur.PACKAGE_SHAPE.isRequired,
  22092.       onClose: b.a.func
  22093.     };
  22094.     var Ty = ai;
  22095.     function Iy(e) {
  22096.       return (Iy = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  22097.         return typeof e
  22098.       }
  22099.        : function (e) {
  22100.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  22101.       }) (e)
  22102.     }
  22103.     function qy(e, t) {
  22104.       for (var n = 0; n < t.length; n++) {
  22105.         var a = t[n];
  22106.         a.enumerable = a.enumerable || !1,
  22107.         a.configurable = !0,
  22108.         'value' in a && (a.writable = !0),
  22109.         Object.defineProperty(e, a.key, a)
  22110.       }
  22111.     }
  22112.     function Fy(e, t) {
  22113.       return (Fy = Object.setPrototypeOf || function (e, t) {
  22114.         return e.__proto__ = t,
  22115.         e
  22116.       }) (e, t)
  22117.     }
  22118.     function Ly(n) {
  22119.       var a = function () {
  22120.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  22121.         if (Reflect.construct.sham) return !1;
  22122.         if ('function' == typeof Proxy) return !0;
  22123.         try {
  22124.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  22125.           ], function () {
  22126.           })),
  22127.           !0
  22128.         } catch (e) {
  22129.           return !1
  22130.         }
  22131.       }();
  22132.       return function () {
  22133.         var e,
  22134.         t = My(n);
  22135.         return e = a ? (e = My(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  22136.         t = this,
  22137.         !(e = e) || 'object' !== Iy(e) && 'function' != typeof e ? Uy(t) : e
  22138.       }
  22139.     }
  22140.     function Uy(e) {
  22141.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  22142.       return e
  22143.     }
  22144.     function My(e) {
  22145.       return (My = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  22146.         return e.__proto__ || Object.getPrototypeOf(e)
  22147.       }) (e)
  22148.     }
  22149.     function By(e, t, n) {
  22150.       return t in e ? Object.defineProperty(e, t, {
  22151.         value: n,
  22152.         enumerable: !0,
  22153.         configurable: !0,
  22154.         writable: !0
  22155.       }) : e[t] = n,
  22156.       e
  22157.     }
  22158.     di = function () {
  22159.       !function (e, t) {
  22160.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  22161.         e.prototype = Object.create(t && t.prototype, {
  22162.           constructor: {
  22163.             value: e,
  22164.             writable: !0,
  22165.             configurable: !0
  22166.           }
  22167.         }),
  22168.         t && Fy(e, t)
  22169.       }(o, A);
  22170.       var e,
  22171.       t,
  22172.       n,
  22173.       r = Ly(o);
  22174.       function o() {
  22175.         var t;
  22176.         !function (e, t) {
  22177.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  22178.         }(this, o);
  22179.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  22180.         return By(Uy(t = r.call.apply(r, [
  22181.           this
  22182.         ].concat(n))), 'state', {
  22183.           isModalOpen: !1
  22184.         }),
  22185.         By(Uy(t), 'handleCloseModal', function () {
  22186.           t.setState({
  22187.             isModalOpen: !1
  22188.           })
  22189.         }),
  22190.         By(Uy(t), 'handlePlatformClick', function (e) {
  22191.           t.props.emitTrackingEvent({
  22192.             verb: 'click',
  22193.             section: 'platform_list',
  22194.             object_type: 'section',
  22195.             object_id: 'platform',
  22196.             extra_data: JSON.stringify({
  22197.               platform: e
  22198.             })
  22199.           })
  22200.         }),
  22201.         t
  22202.       }
  22203.       return e = o,
  22204.       (t = [
  22205.         {
  22206.           key: 'componentDidMount',
  22207.           value: function () {
  22208.             this.props.emitTrackingEvent({
  22209.               verb: 'view',
  22210.               section: this.state.isModalOpen ? 'welcome' : 'platform_list'
  22211.             }),
  22212.             this.props.fetchSubscription()
  22213.           }
  22214.         },
  22215.         {
  22216.           key: 'componentWillReceiveProps',
  22217.           value: function (e) {
  22218.             this.props.isBaseInstallPath && ('welcome' !== this.props.route.path || e.route.path ? this.props.route.path || 'welcome' !== e.route.path || this.props.emitTrackingEvent({
  22219.               verb: 'view',
  22220.               section: 'welcome'
  22221.             }) : this.props.emitTrackingEvent({
  22222.               verb: 'view',
  22223.               section: 'platform_list'
  22224.             })),
  22225.             this.props.history.isActive('/install/welcome/') && this.setState({
  22226.               isModalOpen: !0
  22227.             })
  22228.           }
  22229.         },
  22230.         {
  22231.           key: 'render',
  22232.           value: function () {
  22233.             var t = this,
  22234.             e = this.props.selection.type === ft.forum,
  22235.             n = null;
  22236.             this.context.auth.isAuthenticated ? e && !0 === this.props.selection.forum.installCompleted ? n = C.a.createElement('div', {
  22237.               className: 'alert alert--brand text-medium spacing-double padding-double spacing-bottom-none border-radius-base'
  22238.             }, C.a.createElement('h2', {
  22239.               className: 'text-larger'
  22240.             }, 'Looks like Disqus is already installed on your site'), C.a.createElement('p', null, 'If you\'re trying to migrate your site to a new domain, you can do so using our Migration Tools.'), C.a.createElement(Uo, {
  22241.               path: ho.getAdminPath('/discussions/migrate/'),
  22242.               selection: this.props.selection
  22243.             }, C.a.createElement('button', {
  22244.               className: 'button button-medium button-padding-wide button-wide--mobile button-outline spacing-top'
  22245.             }, 'Migrate to a new site'))) : e || (n = C.a.createElement('p', {
  22246.               className: 'spacing-double'
  22247.             }, C.a.createElement(Uo, {
  22248.               path: '/install/',
  22249.               selection: this.props.selection
  22250.             }, 'Select a site'), ' to get instructions tailored to that site.')) : n = C.a.createElement('div', {
  22251.               className: 'alert alert--brand text-medium spacing-double padding-double spacing-bottom-none border-radius-base'
  22252.             }, C.a.createElement('h2', {
  22253.               className: 'text-larger'
  22254.             }, 'Ready to install Disqus?'), C.a.createElement('p', null, 'Create an account to install Disqus on your site. These instructions only work if you have an account registered with Disqus and are logged in.'), C.a.createElement('a', {
  22255.               href: ''.concat(dt, '/publishers/signup/?next=/admin/create/')
  22256.             }, C.a.createElement('button', {
  22257.               className: 'button button-medium button-padding-wide button-wide--mobile button-outline spacing-top'
  22258.             }, 'Get Started')));
  22259.             for (var a = [
  22260.             ], r = 0; r < 3; r++) a.push(C.a.createElement('div', {
  22261.               key: r,
  22262.               className: 'platform-list__placeholder'
  22263.             }));
  22264.             return this.props.orgCurrentPackage ? C.a.createElement('div', {
  22265.               className: 'content__wrap'
  22266.             }, C.a.createElement('header', {
  22267.               className: 'settings__header'
  22268.             }, C.a.createElement('h2', {
  22269.               className: 'text-larger text-gray-darker spacing-bottom-small'
  22270.             }, 'What platform is your site on?')), n, C.a.createElement('div', {
  22271.               className: 'align align--wrap align--install spacing-top'
  22272.             }, vf.map(function (e) {
  22273.               return C.a.createElement('div', {
  22274.                 className: 'platform-list__option',
  22275.                 key: e.id
  22276.               }, C.a.createElement(v.Link, {
  22277.                 id: 'admin-install-'.concat(e.id),
  22278.                 to: '/install/platforms/'.concat(e.id, '/'),
  22279.                 className: 'text-large link-gray-dark',
  22280.                 onClick: function () {
  22281.                   return t.handlePlatformClick(e.name)
  22282.                 }
  22283.               }, C.a.createElement('div', {
  22284.                 className: 'platform-list__icon -'.concat(e.id)
  22285.               }, C.a.createElement('img', {
  22286.                 src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/install_icons/'.concat(e.id, '.png'),
  22287.                 alt: e.name,
  22288.                 height: '64',
  22289.                 width: '64'
  22290.               })), e.name))
  22291.             }), a), C.a.createElement('div', {
  22292.               className: 'align align--around spacing-top-quad spacing-bottom-quad'
  22293.             }, C.a.createElement(v.Link, {
  22294.               id: 'admin-install-universal-code',
  22295.               to: '/install/platforms/universalcode/',
  22296.               className: 'text-large universal-code-btn'
  22297.             }, C.a.createElement('div', {
  22298.               className: 'platform-list__universal align align--middle'
  22299.             }, C.a.createElement('img', {
  22300.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/install_icons/universal-code.svg',
  22301.               alt: 'Universal Code',
  22302.               height: '64',
  22303.               width: '64'
  22304.             }), C.a.createElement('span', null, 'I don\'t see my platform listed, install manually with ', C.a.createElement('strong', null, 'Universal Code'))))), this.state.isModalOpen && C.a.createElement(Ty, {
  22305.               package: this.props.orgCurrentPackage,
  22306.               onClose: this.handleCloseModal
  22307.             })) : C.a.createElement(Qi, null)
  22308.           }
  22309.         }
  22310.       ]) && qy(e.prototype, t),
  22311.       n && qy(e, n),
  22312.       o
  22313.     }();
  22314.     By(di, 'displayName', 'ForumInstallPlatforms'),
  22315.     By(di, 'propTypes', {
  22316.       history: b.a.shape({
  22317.         isActive: b.a.func.isRequired
  22318.       }).isRequired,
  22319.       route: b.a.object.isRequired,
  22320.       emitTrackingEvent: b.a.func.isRequired,
  22321.       selection: ht,
  22322.       isBaseInstallPath: b.a.bool
  22323.     }),
  22324.     By(di, 'contextTypes', {
  22325.       auth: b.a.object.isRequired
  22326.     });
  22327.     Oi = Object(u.connect) (function (e) {
  22328.       e = e.subscription;
  22329.       return {
  22330.         orgSubscriptionIsFetching: e.orgSubscriptionIsFetching,
  22331.         orgCurrentPackage: e.orgCurrentPackage,
  22332.         subscription: e
  22333.       }
  22334.     }, {
  22335.       fetchSubscription: Hl,
  22336.       emitTrackingEvent: Xo({
  22337.         zone: 'install'
  22338.       })
  22339.     }) (Fo() (di));
  22340.     function zy(e, t) {
  22341.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  22342.       return a
  22343.     }
  22344.     var Hy,
  22345.     Gy = [
  22346.       {
  22347.         path: '/settings/install/',
  22348.         label: 'Installation',
  22349.         activeRoutes: [
  22350.           '/settings/install/',
  22351.           '/settings/universalcode/',
  22352.           '/settings/wordpress/',
  22353.           '/settings/blogger/',
  22354.           '/settings/tumblr/',
  22355.           '/settings/squarespace/',
  22356.           '/settings/typepad/',
  22357.           '/settings/movabletype/',
  22358.           '/settings/drupal/',
  22359.           '/settings/joomla/',
  22360.           '/settings/weebly/',
  22361.           '/settings/strikingly/',
  22362.           '/settings/jekyll/',
  22363.           '/settings/ghost/',
  22364.           '/settings/hubspot/',
  22365.           '/settings/shopify/',
  22366.           '/settings/amp/',
  22367.           '/settings/adobemuse/',
  22368.           '/settings/jimdo/',
  22369.           '/settings/postachio/',
  22370.           '/settings/gatsby/',
  22371.           '/settings/pattern/'
  22372.         ]
  22373.       },
  22374.       {
  22375.         path: '/settings/general/',
  22376.         label: 'General'
  22377.       },
  22378.       {
  22379.         path: '/settings/community/',
  22380.         label: 'Community'
  22381.       },
  22382.       {
  22383.         path: '/settings/moderation/',
  22384.         label: 'Moderation'
  22385.       }
  22386.     ].concat(function (e) {
  22387.       if (Array.isArray(e)) return zy(e)
  22388.     }(Hy = yo.a.isFeatureActive('polls_pub_admin') ? [
  22389.       {
  22390.         path: '/settings/moderators/',
  22391.         label: 'Moderators'
  22392.       }
  22393.     ] : [
  22394.     ]) || function (e) {
  22395.       if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  22396.     }(Hy) || function (e, t) {
  22397.       if (e) {
  22398.         if ('string' == typeof e) return zy(e, t);
  22399.         var n = Object.prototype.toString.call(e).slice(8, - 1);
  22400.         return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? zy(e, t) : void 0
  22401.       }
  22402.     }(Hy) || function () {
  22403.       throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  22404.     }(), [
  22405.       {
  22406.         path: '/settings/ads/',
  22407.         label: 'Ads',
  22408.         activeRoutes: [
  22409.           '/settings/ads/',
  22410.           '/settings/revenue/'
  22411.         ]
  22412.       },
  22413.       {
  22414.         path: '/settings/reactions/',
  22415.         label: 'Reactions'
  22416.       },
  22417.       {
  22418.         path: '/settings/recommendations/',
  22419.         label: 'Recommendations'
  22420.       },
  22421.       {
  22422.         path: '/settings/badges/',
  22423.         label: 'Badges',
  22424.         feature: 'badges'
  22425.       },
  22426.       {
  22427.         path: '/settings/behind-click/',
  22428.         label: 'Behind a Click',
  22429.         isNew: !0
  22430.       },
  22431.       {
  22432.         path: '/settings/email-subscriptions/',
  22433.         label: 'Email Subscriptions'
  22434.       },
  22435.       {
  22436.         path: '/settings/advanced/',
  22437.         label: 'Advanced'
  22438.       },
  22439.       {
  22440.         path: '/settings/webhooks/',
  22441.         label: 'Webhooks'
  22442.       }
  22443.     ]),
  22444.     Vy = [
  22445.       {
  22446.         path: '/settings/general/',
  22447.         label: 'General'
  22448.       },
  22449.       {
  22450.         path: '/settings/sites/',
  22451.         label: 'Sites'
  22452.       },
  22453.       {
  22454.         path: '/settings/admins/',
  22455.         label: 'Admins'
  22456.       }
  22457.     ],
  22458.     Wy = [
  22459.       {
  22460.         path: '/settings/polls/general/',
  22461.         label: 'General'
  22462.       },
  22463.       {
  22464.         path: '/settings/polls/pollsters/',
  22465.         label: 'Pollsters'
  22466.       }
  22467.     ],
  22468.     wi = function (e) {
  22469.       var t = e.children,
  22470.       n = e.isActive,
  22471.       a = e.label,
  22472.       r = e.handleToggle;
  22473.       return C.a.createElement('nav', {
  22474.         className: 'nav-section '.concat(e.isOpen ? 'nav-section--open' : '')
  22475.       }, C.a.createElement('div', {
  22476.         className: 'nav__subheadings padding-top-none '.concat(yo.a.isFeatureActive('polls_pub_admin') ? 'nav-section__toggle' : ''),
  22477.         onClick: r
  22478.       }, C.a.createElement('h4', {
  22479.         className: 'text-subheading'
  22480.       }, a), yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement('span', {
  22481.         className: 'nav__caret'
  22482.       })), C.a.createElement('div', {
  22483.         className: 'nav--mobile-dropdown '.concat(n ? '-active' : '')
  22484.       }, t))
  22485.     };
  22486.     wi.displayName = 'NavSection',
  22487.     wi.propTypes = {
  22488.       children: b.a.element,
  22489.       isActive: b.a.bool,
  22490.       isOpen: b.a.bool,
  22491.       label: b.a.string.isRequired,
  22492.       handleToggle: b.a.func
  22493.     };
  22494.     var Yy = wi;
  22495.     function Qy(e) {
  22496.       return (Qy = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  22497.         return typeof e
  22498.       }
  22499.        : function (e) {
  22500.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  22501.       }) (e)
  22502.     }
  22503.     function Ky() {
  22504.       return (Ky = Object.assign || function (e) {
  22505.         for (var t = 1; t < arguments.length; t++) {
  22506.           var n,
  22507.           a = arguments[t];
  22508.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  22509.         }
  22510.         return e
  22511.       }).apply(this, arguments)
  22512.     }
  22513.     function Jy(t, e) {
  22514.       var n,
  22515.       a = Object.keys(t);
  22516.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  22517.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  22518.       })), a.push.apply(a, n)),
  22519.       a
  22520.     }
  22521.     function $y(t) {
  22522.       for (var e = 1; e < arguments.length; e++) {
  22523.         var n = null != arguments[e] ? arguments[e] : {
  22524.         };
  22525.         e % 2 ? Jy(Object(n), !0).forEach(function (e) {
  22526.           ab(t, e, n[e])
  22527.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Jy(Object(n)).forEach(function (e) {
  22528.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  22529.         })
  22530.       }
  22531.       return t
  22532.     }
  22533.     function Zy(e, t) {
  22534.       for (var n = 0; n < t.length; n++) {
  22535.         var a = t[n];
  22536.         a.enumerable = a.enumerable || !1,
  22537.         a.configurable = !0,
  22538.         'value' in a && (a.writable = !0),
  22539.         Object.defineProperty(e, a.key, a)
  22540.       }
  22541.     }
  22542.     function Xy(e, t) {
  22543.       return (Xy = Object.setPrototypeOf || function (e, t) {
  22544.         return e.__proto__ = t,
  22545.         e
  22546.       }) (e, t)
  22547.     }
  22548.     function eb(n) {
  22549.       var a = function () {
  22550.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  22551.         if (Reflect.construct.sham) return !1;
  22552.         if ('function' == typeof Proxy) return !0;
  22553.         try {
  22554.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  22555.           ], function () {
  22556.           })),
  22557.           !0
  22558.         } catch (e) {
  22559.           return !1
  22560.         }
  22561.       }();
  22562.       return function () {
  22563.         var e,
  22564.         t = nb(n);
  22565.         return e = a ? (e = nb(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  22566.         t = this,
  22567.         !(e = e) || 'object' !== Qy(e) && 'function' != typeof e ? tb(t) : e
  22568.       }
  22569.     }
  22570.     function tb(e) {
  22571.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  22572.       return e
  22573.     }
  22574.     function nb(e) {
  22575.       return (nb = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  22576.         return e.__proto__ || Object.getPrototypeOf(e)
  22577.       }) (e)
  22578.     }
  22579.     function ab(e, t, n) {
  22580.       return t in e ? Object.defineProperty(e, t, {
  22581.         value: n,
  22582.         enumerable: !0,
  22583.         configurable: !0,
  22584.         writable: !0
  22585.       }) : e[t] = n,
  22586.       e
  22587.     }
  22588.     Fi = function () {
  22589.       !function (e, t) {
  22590.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  22591.         e.prototype = Object.create(t && t.prototype, {
  22592.           constructor: {
  22593.             value: e,
  22594.             writable: !0,
  22595.             configurable: !0
  22596.           }
  22597.         }),
  22598.         t && Xy(e, t)
  22599.       }(o, A);
  22600.       var e,
  22601.       t,
  22602.       n,
  22603.       r = eb(o);
  22604.       function o() {
  22605.         var n;
  22606.         !function (e, t) {
  22607.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  22608.         }(this, o);
  22609.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  22610.         return ab(tb(n = r.call.apply(r, [
  22611.           this
  22612.         ].concat(t))), 'state', $y($y({
  22613.         }, o.getFieldsFromForum(n.props.forumDetails)), {
  22614.         }, {
  22615.           isOpen: !1,
  22616.           openSection: {
  22617.             forum: !0,
  22618.             polls: !0,
  22619.             organization: !0
  22620.           }
  22621.         })),
  22622.         ab(tb(n), 'isDropdown', function () {
  22623.           return (window.innerWidth || window.document.documentElement.clientWidth || window.document.body.clientWidth || 0) < 768
  22624.         }),
  22625.         ab(tb(n), 'handleClick', function (e) {
  22626.           n.isDropdown() && (n.state.isOpen && 'icon icon-right-bracket' !== e.target.className || e.preventDefault(), n.setState({
  22627.             isOpen: !n.state.isOpen
  22628.           }))
  22629.         }),
  22630.         ab(tb(n), 'handleSectionToggle', function (e) {
  22631.           yo.a.isFeatureActive('polls_pub_admin') && !n.isDropdown() && n.setState({
  22632.             openSection: $y($y({
  22633.             }, n.state.openSection), {
  22634.             }, ab({
  22635.             }, e, !n.state.openSection[e]))
  22636.           })
  22637.         }),
  22638.         ab(tb(n), 'isForumTabActive', function () {
  22639.           return Gy.some(function (e) {
  22640.             return e.path === n.props.history.location.pathname
  22641.           })
  22642.         }),
  22643.         ab(tb(n), 'isPollsTabActive', function () {
  22644.           return Wy.some(function (e) {
  22645.             return e.path === n.props.history.location.pathname
  22646.           })
  22647.         }),
  22648.         ab(tb(n), 'isOrgTabActive', function () {
  22649.           return 'organization' === n.props.selection.type
  22650.         }),
  22651.         ab(tb(n), 'hasFeature', function (e) {
  22652.           return 'organization' === n.props.selection.type && n.props.selection.organization.forums.length ? n.props.selection.organizationForums[n.props.selection.organization.forums[0]].features[e] : !(!n.props.forumDetails || !n.props.forumDetails.features) && n.props.forumDetails.features[e]
  22653.         }),
  22654.         ab(tb(n), 'getForumTabs', function () {
  22655.           return Gy.filter(function (e) {
  22656.             return '/settings/behind-click/' !== e.path || n.state.behindClickEnabled
  22657.           })
  22658.         }),
  22659.         ab(tb(n), 'getOrgTabs', function () {
  22660.           var t = n.props.selection.organization.forums.length,
  22661.           e = Vy.map(function (e) {
  22662.             return '/settings/sites/' === e.path && (e.aside = t),
  22663.             e
  22664.           });
  22665.           return ql(n.props.selection) && e.push({
  22666.             path: '/settings/subscription/',
  22667.             label: 'Subscription & Billing'
  22668.           }),
  22669.           e
  22670.         }),
  22671.         ab(tb(n), 'linkClassName', function () {
  22672.           return n.state.isOpen ? 'nav__item dropdown-open' : 'nav__item'
  22673.         }),
  22674.         ab(tb(n), 'buildForumLink', function (e) {
  22675.           if (!e.feature || n.hasFeature(e.feature)) {
  22676.             if ('organization' === n.props.selection.type) return C.a.createElement('a', {
  22677.               href: '/admin'.concat(e.path),
  22678.               className: n.linkClassName(),
  22679.               key: e.path
  22680.             }, C.a.createElement(rb, Ky({
  22681.             }, e, {
  22682.               handleClick: n.handleClick
  22683.             })));
  22684.             var t = (e.activeRoutes || [
  22685.             ]).some(function (e) {
  22686.               return n.props.history.isActive(e)
  22687.             });
  22688.             return C.a.createElement(v.Link, {
  22689.               to: e.path,
  22690.               className: ''.concat(n.linkClassName()).concat(t ? ' active' : ''),
  22691.               activeClassName: 'active',
  22692.               key: e.path
  22693.             }, C.a.createElement(rb, Ky({
  22694.             }, e, {
  22695.               handleClick: n.handleClick
  22696.             })))
  22697.           }
  22698.         }),
  22699.         ab(tb(n), 'buildOrgLink', function (e) {
  22700.           var t = n.props.selection.organization;
  22701.           return 'forum' === n.props.selection.type ? C.a.createElement('a', {
  22702.             href: '//'.concat(br.disqusHost, '/admin/orgs/').concat(t.id, '/').concat(t.slug).concat(e.path),
  22703.             className: n.linkClassName(),
  22704.             key: e.path
  22705.           }, C.a.createElement(rb, Ky({
  22706.           }, e, {
  22707.             handleClick: n.handleClick
  22708.           }))) : C.a.createElement(v.Link, {
  22709.             to: '/orgs/'.concat(t.id, '/').concat(t.slug).concat(e.path),
  22710.             className: n.linkClassName(),
  22711.             activeClassName: 'active',
  22712.             key: e.path
  22713.           }, C.a.createElement(rb, Ky({
  22714.           }, e, {
  22715.             handleClick: n.handleClick
  22716.           })))
  22717.         }),
  22718.         ab(tb(n), 'buildPollsLink', function (e) {
  22719.           return C.a.createElement(v.Link, {
  22720.             to: ''.concat(e.path),
  22721.             className: n.linkClassName(),
  22722.             activeClassName: 'active',
  22723.             key: e.path
  22724.           }, C.a.createElement(rb, Ky({
  22725.           }, e, {
  22726.             handleClick: n.handleClick
  22727.           })))
  22728.         }),
  22729.         n
  22730.       }
  22731.       return e = o,
  22732.       (t = [
  22733.         {
  22734.           key: 'componentDidMount',
  22735.           value: function () {
  22736.             this.props.fetchForumDetails()
  22737.           }
  22738.         },
  22739.         {
  22740.           key: 'componentWillReceiveProps',
  22741.           value: function (e) {
  22742.             !this.props.forumDetails && e.forumDetails ? this.setState($y({
  22743.             }, o.getFieldsFromForum(e.forumDetails))) : 'organization' === this.props.selection.type && this.getForumTabs()
  22744.           }
  22745.         },
  22746.         {
  22747.           key: 'render',
  22748.           value: function () {
  22749.             var t = this,
  22750.             e = this.getForumTabs(),
  22751.             n = this.getOrgTabs(),
  22752.             a = this.props.selection.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus);
  22753.             return C.a.createElement('div', {
  22754.               className: 'layout__nav'
  22755.             }, this.props.selection.organization && !this.props.selection.organization.pollsOnly && C.a.createElement(Yy, {
  22756.               isActive: this.isForumTabActive(),
  22757.               isOpen: this.state.openSection.forum,
  22758.               label: yo.a.isFeatureActive('polls_pub_admin') ? 'Comments' : 'Site',
  22759.               handleToggle: function () {
  22760.                 return t.handleSectionToggle('forum')
  22761.               }
  22762.             }, C.a.createElement(C.a.Fragment, null, e.map(function (e) {
  22763.               return t.buildForumLink(e)
  22764.             }))), yo.a.isFeatureActive('polls_pub_admin', {
  22765.               username: this.props.auth.username
  22766.             }) && a && C.a.createElement(Yy, {
  22767.               isActive: this.isPollsTabActive(),
  22768.               isOpen: this.state.openSection.polls,
  22769.               label: 'Polls',
  22770.               handleToggle: function () {
  22771.                 return t.handleSectionToggle('polls')
  22772.               }
  22773.             }, C.a.createElement(C.a.Fragment, null, Wy.map(function (e) {
  22774.               return t.buildPollsLink(e)
  22775.             }))), C.a.createElement(Yy, {
  22776.               isActive: this.isOrgTabActive(),
  22777.               isOpen: this.state.openSection.organization,
  22778.               label: 'Organization',
  22779.               handleToggle: function () {
  22780.                 return t.handleSectionToggle('organization')
  22781.               }
  22782.             }, C.a.createElement(C.a.Fragment, null, n.map(function (e) {
  22783.               return t.buildOrgLink(e)
  22784.             }))))
  22785.           }
  22786.         }
  22787.       ]) && Zy(e.prototype, t),
  22788.       n && Zy(e, n),
  22789.       o
  22790.     }();
  22791.     ab(Fi, 'propTypes', {
  22792.       auth: Nc.isRequired,
  22793.       history: b.a.shape({
  22794.         isActive: b.a.func.isRequired
  22795.       }).isRequired,
  22796.       fetchForumDetails: b.a.func.isRequired,
  22797.       forumDetails: $c,
  22798.       forumDetailsError: b.a.string,
  22799.       forumDetailsIsFetching: b.a.bool,
  22800.       selection: ht.isRequired
  22801.     }),
  22802.     ab(Fi, 'getFieldsFromForum', function (e) {
  22803.       var t = (e = e || {
  22804.       }).settings || {
  22805.       };
  22806.       return {
  22807.         forum: e.id,
  22808.         badgesEnabled: t.badgesEnabled,
  22809.         behindClickEnabled: t.behindClickEnabled
  22810.       }
  22811.     });
  22812.     var rb = function (e) {
  22813.       return C.a.createElement('div', {
  22814.         className: 'nav-lnk -color-muted',
  22815.         onClick: e.handleClick
  22816.       }, C.a.createElement('div', {
  22817.         className: 'nav-lnk__blk'
  22818.       }, C.a.createElement('span', null, C.a.createElement('span', {
  22819.         className: 'button__text'
  22820.       }, e.label), e.isNew ? C.a.createElement('span', {
  22821.         className: 'label label-warning spacing-left-small'
  22822.       }, 'NEW') : null, e.aside ? C.a.createElement('span', {
  22823.         className: 'label--nav-aside spacing-left-small'
  22824.       }, e.aside) : null)), C.a.createElement('div', {
  22825.         className: 'nav-lnk__pointer'
  22826.       }, C.a.createElement('span', {
  22827.         className: 'icon icon-right-bracket'
  22828.       })))
  22829.     };
  22830.     rb.propTypes = {
  22831.       label: b.a.string.isRequired,
  22832.       handleClick: b.a.func.isRequired,
  22833.       aside: b.a.oneOfType([b.a.string,
  22834.       b.a.number]),
  22835.       isNew: b.a.bool,
  22836.       children: b.a.oneOfType([b.a.arrayOf(b.a.node),
  22837.       b.a.node])
  22838.     };
  22839.     var ob = Object(u.connect) (function (e) {
  22840.       var t = e.forumDetails;
  22841.       return {
  22842.         forumDetails: t.forumDetails,
  22843.         forumDetailsError: t.forumDetailsError,
  22844.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  22845.         selection: e.selection,
  22846.         subscription: e.subscription
  22847.       }
  22848.     }, {
  22849.       fetchForumDetails: ig
  22850.     }) (Fo() (Fi)),
  22851.     Yi = function (e) {
  22852.       e = C.a.createElement('div', null, C.a.createElement(ob, {
  22853.         auth: e.auth,
  22854.         selection: e.selection
  22855.       }), C.a.createElement('div', {
  22856.         className: 'layout__content'
  22857.       }, e.selection.forum.canAdminister ? C.a.cloneElement(e.children, e) : C.a.createElement(Ki, {
  22858.         alertType: 'brand',
  22859.         message: 'You don\'t have permission to change this site\'s settings. A site admin can give you permission if needed.'
  22860.       })));
  22861.       return C.a.createElement('div', {
  22862.         className: 'section-contained'
  22863.       }, C.a.createElement('div', {
  22864.         className: 'layout layout--publishers'
  22865.       }, '/settings/ads/' === fo() ? e : C.a.createElement('div', {
  22866.         className: 'layout__main'
  22867.       }, e)))
  22868.     };
  22869.     Yi.displayName = 'ForumSettings',
  22870.     Yi.propTypes = {
  22871.       auth: Nc.isRequired,
  22872.       children: b.a.node.isRequired,
  22873.       forums: b.a.object.isRequired,
  22874.       organizations: b.a.object.isRequired,
  22875.       selection: ht.isRequired
  22876.     };
  22877.     var ib = Object(u.connect) (function (e) {
  22878.       return {
  22879.         selection: e.selection
  22880.       }
  22881.     }) (Ni.a.attachDrivers(Yi, [
  22882.       bc
  22883.     ]));
  22884.     function sb(e) {
  22885.       return (sb = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  22886.         return typeof e
  22887.       }
  22888.        : function (e) {
  22889.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  22890.       }) (e)
  22891.     }
  22892.     function lb() {
  22893.       return (lb = Object.assign || function (e) {
  22894.         for (var t = 1; t < arguments.length; t++) {
  22895.           var n,
  22896.           a = arguments[t];
  22897.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  22898.         }
  22899.         return e
  22900.       }).apply(this, arguments)
  22901.     }
  22902.     function cb(e, t) {
  22903.       for (var n = 0; n < t.length; n++) {
  22904.         var a = t[n];
  22905.         a.enumerable = a.enumerable || !1,
  22906.         a.configurable = !0,
  22907.         'value' in a && (a.writable = !0),
  22908.         Object.defineProperty(e, a.key, a)
  22909.       }
  22910.     }
  22911.     function ub(e, t) {
  22912.       return (ub = Object.setPrototypeOf || function (e, t) {
  22913.         return e.__proto__ = t,
  22914.         e
  22915.       }) (e, t)
  22916.     }
  22917.     function pb(n) {
  22918.       var a = function () {
  22919.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  22920.         if (Reflect.construct.sham) return !1;
  22921.         if ('function' == typeof Proxy) return !0;
  22922.         try {
  22923.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  22924.           ], function () {
  22925.           })),
  22926.           !0
  22927.         } catch (e) {
  22928.           return !1
  22929.         }
  22930.       }();
  22931.       return function () {
  22932.         var e,
  22933.         t = mb(n);
  22934.         return e = a ? (e = mb(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  22935.         t = this,
  22936.         !(e = e) || 'object' !== sb(e) && 'function' != typeof e ? db(t) : e
  22937.       }
  22938.     }
  22939.     function db(e) {
  22940.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  22941.       return e
  22942.     }
  22943.     function mb(e) {
  22944.       return (mb = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  22945.         return e.__proto__ || Object.getPrototypeOf(e)
  22946.       }) (e)
  22947.     }
  22948.     function fb(e, t, n) {
  22949.       return t in e ? Object.defineProperty(e, t, {
  22950.         value: n,
  22951.         enumerable: !0,
  22952.         configurable: !0,
  22953.         writable: !0
  22954.       }) : e[t] = n,
  22955.       e
  22956.     }
  22957.     Vi = function () {
  22958.       !function (e, t) {
  22959.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  22960.         e.prototype = Object.create(t && t.prototype, {
  22961.           constructor: {
  22962.             value: e,
  22963.             writable: !0,
  22964.             configurable: !0
  22965.           }
  22966.         }),
  22967.         t && ub(e, t)
  22968.       }(o, A);
  22969.       var e,
  22970.       t,
  22971.       n,
  22972.       r = pb(o);
  22973.       function o() {
  22974.         var n;
  22975.         !function (e, t) {
  22976.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  22977.         }(this, o);
  22978.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  22979.         return fb(db(n = r.call.apply(r, [
  22980.           this
  22981.         ].concat(t))), 'state', {
  22982.           error: null,
  22983.           passwordError: null,
  22984.           isSaving: !1
  22985.         }),
  22986.         fb(db(n), 'handleDeleteForum', function (e, t) {
  22987.           return n.setState({
  22988.             isSaving: !0,
  22989.             error: null
  22990.           }),
  22991.           n.apiCall = io.a.call('forums/kill', {
  22992.             data: {
  22993.               forum: n.props.selection.forum.shortname,
  22994.               reason: e,
  22995.               password: t
  22996.             },
  22997.             method: 'POST'
  22998.           }).done(n.handleDeleteForumSuccess).fail(n.handleDeleteForumError),
  22999.           n.apiCall
  23000.         }),
  23001.         fb(db(n), 'handleDeleteForumSuccess', function () {
  23002.           n.setState({
  23003.             error: null,
  23004.             isSaving: !1
  23005.           }),
  23006.           window.location.href = 'https://disqus.com/admin/'
  23007.         }),
  23008.         fb(db(n), 'handleDeleteForumError', function (e) {
  23009.           n.setState(lb({
  23010.             isSaving: !1
  23011.           }, n.getErrorState(e)))
  23012.         }),
  23013.         fb(db(n), 'getErrorState', function (e) {
  23014.           var t = {
  23015.           };
  23016.           try {
  23017.             var n = JSON.parse(e.responseText).response;
  23018.             ~n.indexOf('Invalid password') ? t.passwordError = 'Incorrect password for this account.' : t.error = n
  23019.           } catch (e) {
  23020.             t.error = 'There was an error deleting this site.'
  23021.           }
  23022.           return t
  23023.         }),
  23024.         fb(db(n), 'getComponentProps', function () {
  23025.           return {
  23026.             forumDeleteError: n.state.error,
  23027.             forumDeletePasswordError: n.state.passwordError,
  23028.             forumDeleteIsSaving: n.state.isSaving,
  23029.             forumDeleteOnSave: n.handleDeleteForum
  23030.           }
  23031.         }),
  23032.         n
  23033.       }
  23034.       return e = o,
  23035.       (t = [
  23036.         {
  23037.           key: 'componentWillUnmount',
  23038.           value: function () {
  23039.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  23040.           }
  23041.         }
  23042.       ]) && cb(e.prototype, t),
  23043.       n && cb(e, n),
  23044.       o
  23045.     }();
  23046.     fb(Vi, 'displayName', 'ForumDeleteDriver'),
  23047.     fb(Vi, 'propTypes', {
  23048.       selection: ht.isRequired
  23049.     });
  23050.     sl = Object(ki.createDriver) (Vi, function (e) {
  23051.       return {
  23052.         selection: e.selection
  23053.       }
  23054.     });
  23055.     function hb(e) {
  23056.       return (hb = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  23057.         return typeof e
  23058.       }
  23059.        : function (e) {
  23060.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  23061.       }) (e)
  23062.     }
  23063.     function gb(e, t) {
  23064.       for (var n = 0; n < t.length; n++) {
  23065.         var a = t[n];
  23066.         a.enumerable = a.enumerable || !1,
  23067.         a.configurable = !0,
  23068.         'value' in a && (a.writable = !0),
  23069.         Object.defineProperty(e, a.key, a)
  23070.       }
  23071.     }
  23072.     function yb(e, t) {
  23073.       return (yb = Object.setPrototypeOf || function (e, t) {
  23074.         return e.__proto__ = t,
  23075.         e
  23076.       }) (e, t)
  23077.     }
  23078.     function bb(n) {
  23079.       var a = function () {
  23080.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  23081.         if (Reflect.construct.sham) return !1;
  23082.         if ('function' == typeof Proxy) return !0;
  23083.         try {
  23084.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  23085.           ], function () {
  23086.           })),
  23087.           !0
  23088.         } catch (e) {
  23089.           return !1
  23090.         }
  23091.       }();
  23092.       return function () {
  23093.         var e,
  23094.         t = _b(n);
  23095.         return e = a ? (e = _b(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  23096.         t = this,
  23097.         !(e = e) || 'object' !== hb(e) && 'function' != typeof e ? vb(t) : e
  23098.       }
  23099.     }
  23100.     function vb(e) {
  23101.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  23102.       return e
  23103.     }
  23104.     function _b(e) {
  23105.       return (_b = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  23106.         return e.__proto__ || Object.getPrototypeOf(e)
  23107.       }) (e)
  23108.     }
  23109.     function Eb(e, t, n) {
  23110.       return t in e ? Object.defineProperty(e, t, {
  23111.         value: n,
  23112.         enumerable: !0,
  23113.         configurable: !0,
  23114.         writable: !0
  23115.       }) : e[t] = n,
  23116.       e
  23117.     }
  23118.     yc = function () {
  23119.       !function (e, t) {
  23120.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  23121.         e.prototype = Object.create(t && t.prototype, {
  23122.           constructor: {
  23123.             value: e,
  23124.             writable: !0,
  23125.             configurable: !0
  23126.           }
  23127.         }),
  23128.         t && yb(e, t)
  23129.       }(o, A);
  23130.       var e,
  23131.       t,
  23132.       n,
  23133.       r = bb(o);
  23134.       function o() {
  23135.         var t;
  23136.         !function (e, t) {
  23137.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  23138.         }(this, o);
  23139.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  23140.         return Eb(vb(t = r.call.apply(r, [
  23141.           this
  23142.         ].concat(n))), 'state', {
  23143.           fetchError: null,
  23144.           saveError: null,
  23145.           isSaving: !1,
  23146.           isFetching: !1,
  23147.           trustedDomainList: null,
  23148.           isSaved: !1
  23149.         }),
  23150.         Eb(vb(t), 'fetchTrustedDomainList', function () {
  23151.           return t.setState({
  23152.             isFetching: !0,
  23153.             fetchError: null
  23154.           }),
  23155.           t.apiCall = io.a.call('forums/trustedDomain/list', {
  23156.             data: {
  23157.               forum: t.props.selection.forum.shortname
  23158.             }
  23159.           }).done(function (e) {
  23160.             t.setState({
  23161.               isFetching: !1,
  23162.               trustedDomainList: e.response
  23163.             })
  23164.           }).fail(function (e) {
  23165.             t.setState({
  23166.               isFetching: !1,
  23167.               fetchError: t.parseErrorResponse(e)
  23168.             })
  23169.           }),
  23170.           t.apiCall
  23171.         }),
  23172.         Eb(vb(t), 'handleCreateTrustedDomain', function (e) {
  23173.           return t.setState({
  23174.             isSaving: !0,
  23175.             saveError: null,
  23176.             isSaved: !1
  23177.           }),
  23178.           t.apiCall = io.a.call('forums/trustedDomain/create', {
  23179.             data: {
  23180.               forum: t.props.selection.forum.shortname,
  23181.               domainName: e
  23182.             },
  23183.             method: 'POST'
  23184.           }).done(t.handleSaveTrustedDomainSuccess).fail(t.handleSaveTrustedDomainError),
  23185.           t.apiCall
  23186.         }),
  23187.         Eb(vb(t), 'handleKillTrustedDomain', function (e) {
  23188.           return t.setState({
  23189.             isSaving: !0,
  23190.             saveError: null,
  23191.             isSaved: !1
  23192.           }),
  23193.           t.apiCall = io.a.call('forums/trustedDomain/kill', {
  23194.             data: {
  23195.               forum: t.props.selection.forum.shortname,
  23196.               domain: e
  23197.             },
  23198.             method: 'POST'
  23199.           }).done(t.handleSaveTrustedDomainSuccess).fail(t.handleSaveTrustedDomainError),
  23200.           t.apiCall
  23201.         }),
  23202.         Eb(vb(t), 'handleSaveTrustedDomainSuccess', function () {
  23203.           t.setState({
  23204.             saveError: null,
  23205.             isSaving: !1,
  23206.             isSaved: !0
  23207.           }),
  23208.           t.fetchTrustedDomainList()
  23209.         }),
  23210.         Eb(vb(t), 'handleSaveTrustedDomainError', function (e) {
  23211.           t.setState({
  23212.             saveError: t.parseErrorResponse(e),
  23213.             isSaving: !1
  23214.           })
  23215.         }),
  23216.         Eb(vb(t), 'parseErrorResponse', function (e) {
  23217.           var t;
  23218.           try {
  23219.             ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'domainName\'') && (t = 'This domain name isn\'t valid. The domain should be formatted like \'example.com\'')
  23220.           } catch (e) {
  23221.             t = 'There was an error saving your changes.'
  23222.           }
  23223.           return t
  23224.         }),
  23225.         Eb(vb(t), 'getComponentProps', function () {
  23226.           return {
  23227.             trustedDomainList: t.state.trustedDomainList,
  23228.             trustedDomainOnCreate: t.handleCreateTrustedDomain,
  23229.             trustedDomainOnKill: t.handleKillTrustedDomain,
  23230.             trustedDomainFetchError: t.state.fetchError,
  23231.             trustedDomainSaveError: t.state.saveError,
  23232.             trustedDomainIsFetching: t.state.isFetching,
  23233.             trustedDomainIsSaving: t.state.isSaving,
  23234.             trustedDomainIsSaved: t.state.isSaved
  23235.           }
  23236.         }),
  23237.         t
  23238.       }
  23239.       return e = o,
  23240.       (t = [
  23241.         {
  23242.           key: 'componentDidMount',
  23243.           value: function () {
  23244.             this.fetchTrustedDomainList()
  23245.           }
  23246.         },
  23247.         {
  23248.           key: 'componentWillUnmount',
  23249.           value: function () {
  23250.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  23251.           }
  23252.         }
  23253.       ]) && gb(e.prototype, t),
  23254.       n && gb(e, n),
  23255.       o
  23256.     }();
  23257.     Eb(yc, 'displayName', 'TrustedDomainDriver'),
  23258.     Eb(yc, 'propTypes', {
  23259.       selection: ht.isRequired
  23260.     });
  23261.     yl = Object(ki.createDriver) (yc, function (e) {
  23262.       return {
  23263.         selection: e.selection
  23264.       }
  23265.     }),
  23266.     Li = function (e) {
  23267.       var t = ''.concat(e.idNamespace || '', '_').concat(e.name),
  23268.       n = 'text-medium fieldset__block--checkbox '.concat(e.additionalClass || '', ' ').concat(e.readOnly ? 'readOnly' : ''),
  23269.       a = e.labelAdditionalClass || '',
  23270.       r = '-fieldset__block--checkbox'.concat(e.fieldsetAdditionalClass ? ' '.concat(e.fieldsetAdditionalClass) : '') || !1,
  23271.       t = C.a.createElement('label', {
  23272.         htmlFor: t,
  23273.         className: n
  23274.       }, C.a.createElement('input', {
  23275.         name: e.name || '',
  23276.         type: 'checkbox',
  23277.         id: t,
  23278.         checked: e.checked,
  23279.         value: e.value,
  23280.         onChange: e.onChange,
  23281.         disabled: e.readOnly,
  23282.         readOnly: e.readOnly
  23283.       }), e.secondaryLabel, e.ignoreFieldset ? e.children : null);
  23284.       return e.ignoreFieldset ? t : C.a.createElement(kf, {
  23285.         label: e.label,
  23286.         labelAdditionalClass: a,
  23287.         fieldsetAdditionalClass: r,
  23288.         tooltip: e.tooltip,
  23289.         shouldHighlight: e.shouldHighlight,
  23290.         childIsInput: !0
  23291.       }, t, e.children)
  23292.     };
  23293.     Li.propTypes = {
  23294.       name: b.a.string,
  23295.       checked: b.a.bool,
  23296.       value: b.a.oneOfType([b.a.string,
  23297.       b.a.number]),
  23298.       additionalClass: b.a.string,
  23299.       label: b.a.node,
  23300.       labelAdditionalClass: b.a.string,
  23301.       fieldsetAdditionalClass: b.a.string,
  23302.       secondaryLabel: b.a.node,
  23303.       onChange: b.a.func.isRequired,
  23304.       idNamespace: b.a.string,
  23305.       tooltip: b.a.node,
  23306.       children: b.a.node,
  23307.       readOnly: b.a.bool,
  23308.       shouldHighlight: b.a.bool,
  23309.       ignoreFieldset: b.a.bool
  23310.     };
  23311.     var Ob = Li,
  23312.     Pc = n(8),
  23313.     Sb = n.n(Pc);
  23314.     function wb(e) {
  23315.       return (wb = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  23316.         return typeof e
  23317.       }
  23318.        : function (e) {
  23319.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  23320.       }) (e)
  23321.     }
  23322.     function Pb(t, e) {
  23323.       var n,
  23324.       a = Object.keys(t);
  23325.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  23326.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  23327.       })), a.push.apply(a, n)),
  23328.       a
  23329.     }
  23330.     function kb(t) {
  23331.       for (var e = 1; e < arguments.length; e++) {
  23332.         var n = null != arguments[e] ? arguments[e] : {
  23333.         };
  23334.         e % 2 ? Pb(Object(n), !0).forEach(function (e) {
  23335.           Ib(t, e, n[e])
  23336.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Pb(Object(n)).forEach(function (e) {
  23337.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  23338.         })
  23339.       }
  23340.       return t
  23341.     }
  23342.     function Nb(e, t) {
  23343.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  23344.     }
  23345.     function Cb(e, t) {
  23346.       for (var n = 0; n < t.length; n++) {
  23347.         var a = t[n];
  23348.         a.enumerable = a.enumerable || !1,
  23349.         a.configurable = !0,
  23350.         'value' in a && (a.writable = !0),
  23351.         Object.defineProperty(e, a.key, a)
  23352.       }
  23353.     }
  23354.     function Rb(e, t, n) {
  23355.       return t && Cb(e.prototype, t),
  23356.       n && Cb(e, n),
  23357.       e
  23358.     }
  23359.     function xb(e, t) {
  23360.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  23361.       e.prototype = Object.create(t && t.prototype, {
  23362.         constructor: {
  23363.           value: e,
  23364.           writable: !0,
  23365.           configurable: !0
  23366.         }
  23367.       }),
  23368.       t && Ab(e, t)
  23369.     }
  23370.     function Ab(e, t) {
  23371.       return (Ab = Object.setPrototypeOf || function (e, t) {
  23372.         return e.__proto__ = t,
  23373.         e
  23374.       }) (e, t)
  23375.     }
  23376.     function Db(n) {
  23377.       var a = function () {
  23378.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  23379.         if (Reflect.construct.sham) return !1;
  23380.         if ('function' == typeof Proxy) return !0;
  23381.         try {
  23382.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  23383.           ], function () {
  23384.           })),
  23385.           !0
  23386.         } catch (e) {
  23387.           return !1
  23388.         }
  23389.       }();
  23390.       return function () {
  23391.         var e,
  23392.         t = Tb(n);
  23393.         return e = a ? (e = Tb(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  23394.         t = this,
  23395.         !(e = e) || 'object' !== wb(e) && 'function' != typeof e ? jb(t) : e
  23396.       }
  23397.     }
  23398.     function jb(e) {
  23399.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  23400.       return e
  23401.     }
  23402.     function Tb(e) {
  23403.       return (Tb = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  23404.         return e.__proto__ || Object.getPrototypeOf(e)
  23405.       }) (e)
  23406.     }
  23407.     function Ib(e, t, n) {
  23408.       return t in e ? Object.defineProperty(e, t, {
  23409.         value: n,
  23410.         enumerable: !0,
  23411.         configurable: !0,
  23412.         writable: !0
  23413.       }) : e[t] = n,
  23414.       e
  23415.     }
  23416.     Fc = function () {
  23417.       xb(o, A);
  23418.       var r = Db(o);
  23419.       function o() {
  23420.         var a;
  23421.         Nb(this, o);
  23422.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  23423.         return Ib(jb(a = r.call.apply(r, [
  23424.           this
  23425.         ].concat(t))), 'state', kb(kb({
  23426.         }, o.getEditableFieldsFromForum(a.props.forumDetails)), {
  23427.         }, {
  23428.           savedFields: o.getEditableFieldsFromForum(a.props.forumDetails),
  23429.           deleteFormExpanded: !1,
  23430.           newTrustedDomain: null,
  23431.           isTosExempt: o.isTosExempt(a.props.selection.forum.shortname)
  23432.         })),
  23433.         Ib(jb(a), 'confirmNavigationIfUnsaved', function () {
  23434.           if (a.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  23435.         }),
  23436.         Ib(jb(a), 'handleInputChange', function (e, t) {
  23437.           var n = t.target,
  23438.           t = 'checkbox' === n.type ? n.checked : n.value,
  23439.           t = Ib({
  23440.           }, e, t = 'radio' === n.type ? 'true' === t : t);
  23441.           a.setState(t)
  23442.         }),
  23443.         Ib(jb(a), 'hasFieldChanged', function (e) {
  23444.           return a.state[e] !== a.state.savedFields[e] && !(null === a.state.savedFields[e] && '' === a.state[e])
  23445.         }),
  23446.         Ib(jb(a), 'handleAddNewTrustedDomain', function () {
  23447.           a.props.trustedDomainOnCreate(a.state.newTrustedDomain).then(function () {
  23448.             a.setState({
  23449.               newTrustedDomain: null
  23450.             })
  23451.           })
  23452.         }),
  23453.         Ib(jb(a), 'hasUnsavedChanges', function () {
  23454.           return Object.keys(a.state.savedFields).some(function (e) {
  23455.             return a.hasFieldChanged(e)
  23456.           })
  23457.         }),
  23458.         Ib(jb(a), 'handleSaveChanges', function () {
  23459.           a.props.forumUpdateOnSave({
  23460.             disableThirdPartyTrackers: a.state.enable3rdPartyTrackers ? 0 : 1,
  23461.             linkAffiliationEnabled: a.state.linkAffiliationEnabled ? 1 : 0
  23462.           }).done(function () {
  23463.             a.setState(function (e) {
  23464.               return {
  23465.                 savedFields: {
  23466.                   enable3rdPartyTrackers: e.enable3rdPartyTrackers,
  23467.                   linkAffiliationEnabled: e.linkAffiliationEnabled
  23468.                 }
  23469.               }
  23470.             })
  23471.           })
  23472.         }),
  23473.         a
  23474.       }
  23475.       return Rb(o, [
  23476.         {
  23477.           key: 'componentDidMount',
  23478.           value: function () {
  23479.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  23480.             this.props.fetchForumDetails()
  23481.           }
  23482.         },
  23483.         {
  23484.           key: 'componentWillReceiveProps',
  23485.           value: function (e) {
  23486.             !this.props.forumDetails && e.forumDetails && (e = o.getEditableFieldsFromForum(e.forumDetails), this.setState(kb(kb({
  23487.             }, e), {
  23488.             }, {
  23489.               savedFields: e
  23490.             })))
  23491.           }
  23492.         },
  23493.         {
  23494.           key: 'render',
  23495.           value: function () {
  23496.             var t = this;
  23497.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  23498.               isPolls: !1,
  23499.               organization: this.props.selection.organization
  23500.             });
  23501.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  23502.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  23503.               className: 'content__wrap spacing-bottom-double'
  23504.             }, C.a.createElement(Ki, {
  23505.               message: this.props.forumDetailsError,
  23506.               alertType: 'error'
  23507.             }));
  23508.             var e = null,
  23509.             e = '' + this.context.auth.id === (this.props.forumDetails && this.props.forumDetails.founder) ? this.state.deleteFormExpanded ? C.a.createElement(o.DeleteForm, {
  23510.               error: this.props.forumDeleteError,
  23511.               passwordError: this.props.forumDeletePasswordError,
  23512.               isSaving: this.props.forumDeleteIsSaving,
  23513.               onConfirm: this.props.forumDeleteOnSave,
  23514.               onCancel: function () {
  23515.                 return t.setState({
  23516.                   deleteFormExpanded: !1
  23517.                 })
  23518.               }
  23519.             }) : C.a.createElement('div', null, C.a.createElement('button', {
  23520.               className: 'button button-fill button-medium',
  23521.               onClick: function () {
  23522.                 return t.setState({
  23523.                   deleteFormExpanded: !0
  23524.                 })
  23525.               }
  23526.             }, 'Delete site and comments.'), C.a.createElement('p', {
  23527.               className: 'fieldset__description text-small text-gray'
  23528.             }, 'This cannot be undone.')) : C.a.createElement('p', {
  23529.               className: 'text-small text-gray spacing-top'
  23530.             }, 'Only the primary moderator can delete this site.');
  23531.             return C.a.createElement('div', null, C.a.createElement('div', {
  23532.               className: 'content__wrap spacing-bottom-double'
  23533.             }, C.a.createElement('header', {
  23534.               className: 'settings__header'
  23535.             }, C.a.createElement('h2', {
  23536.               className: 'text-larger text-gray-darker spacing-bottom-small'
  23537.             }, 'Deeply integrate Disqus with your community.'), C.a.createElement('p', {
  23538.               className: 'text-gray'
  23539.             }, 'Disqus plays well with other systems and offers advanced integration options to developers. ', C.a.createElement('a', {
  23540.               href: Pn.developer,
  23541.               target: '_blank'
  23542.             }, 'Learn more »'))), C.a.createElement('section', {
  23543.               className: 'settings__content'
  23544.             }, C.a.createElement(Ob, {
  23545.               readOnly: this.state.isTosExempt,
  23546.               name: 'enable3rdPartyTrackers',
  23547.               checked: !this.state.isTosExempt && !!this.state.enable3rdPartyTrackers,
  23548.               label: 'Tracking',
  23549.               secondaryLabel: 'Enable anonymous cookie targeting for your site\'s visitors.',
  23550.               onChange: this.handleInputChange.bind(this, 'enable3rdPartyTrackers'),
  23551.               idNamespace: this.constructor.displayName,
  23552.               shouldHighlight: this.hasFieldChanged('enable3rdPartyTrackers'),
  23553.               tooltip: this.state.isTosExempt ? C.a.createElement(C.a.Fragment, null, 'This feature is disabled for your site. Please contact your account manager for assistance.') : C.a.createElement(C.a.Fragment, null, 'This helps to provide personalized content and advertising for your site\'s visitors. ', C.a.createElement('a', {
  23554.                 href: ''.concat(Pn.adTraining, '?utm_source=disqus&amp;utm_medium=forumset-tracking&amp;utm_content=txt'),
  23555.                 target: '_blank',
  23556.                 rel: 'noopener noreferrer'
  23557.               }, 'Learn more »'))
  23558.             }), C.a.createElement(Ob, {
  23559.               name: 'linkAffiliationEnabled',
  23560.               checked: !!this.state.linkAffiliationEnabled,
  23561.               label: 'Affiliate links',
  23562.               secondaryLabel: 'Automatically append merchant codes to product links on your site.',
  23563.               onChange: this.handleInputChange.bind(this, 'linkAffiliationEnabled'),
  23564.               idNamespace: this.constructor.displayName,
  23565.               shouldHighlight: this.hasFieldChanged('linkAffiliationEnabled')
  23566.             })), C.a.createElement('footer', {
  23567.               className: 'settings__footer'
  23568.             }, C.a.createElement(Bh, {
  23569.               disabled: !this.hasUnsavedChanges(),
  23570.               onClick: this.handleSaveChanges,
  23571.               isSaving: this.props.forumUpdateIsSaving,
  23572.               isSaved: this.props.forumUpdateIsSaved
  23573.             }, this.props.forumUpdateError ? C.a.createElement('p', {
  23574.               className: 'text-medium text-error text-semibold spacing-narrow'
  23575.             }, this.props.forumUpdateError) : null))), C.a.createElement('div', {
  23576.               className: 'content__wrap spacing-bottom-double'
  23577.             }, C.a.createElement('header', {
  23578.               className: 'settings__header'
  23579.             }, C.a.createElement('h2', {
  23580.               className: 'text-larger text-gray-darker spacing-bottom-small'
  23581.             }, 'Trusted Domains'), C.a.createElement('p', {
  23582.               className: 'text-gray'
  23583.             }, 'You may optionally specify a list of trusted domains that are allowed to load your Disqus comments embed.')), C.a.createElement('section', {
  23584.               className: 'settings__content'
  23585.             }, C.a.createElement(kf, {
  23586.               label: 'Trusted Domains',
  23587.               blockAdditionalClass: this.props.trustedDomainSaveError ? 'is-error' : null,
  23588.               tooltip: C.a.createElement(C.a.Fragment, null, 'Adding a domain will include all subdomains below it, e.g. ', C.a.createElement('code', null, 'disqus.com'), ' will include that domain, as well as ', C.a.createElement('code', null, 'blog.disqus.com'), ' and ', C.a.createElement('code', null, 'help.disqus.com'), '.')
  23589.             }, (this.props.trustedDomainList || [
  23590.             ]).map(function (e) {
  23591.               return C.a.createElement('div', {
  23592.                 key: e.id,
  23593.                 className: 'spacing-narrow text-medium'
  23594.               }, C.a.createElement('button', {
  23595.                 onClick: t.props.trustedDomainOnKill.bind(null, e.id),
  23596.                 disabled: t.props.trustedDomainIsSaving,
  23597.                 className: 'text-medium'
  23598.               }, C.a.createElement('span', {
  23599.                 className: 'text-gray-dark spacing-right-small'
  23600.               }, e.domain), C.a.createElement('span', {
  23601.                 className: 'icon-smallest icon-cancel'
  23602.               })))
  23603.             }), C.a.createElement('form', null, C.a.createElement('div', {
  23604.               className: 'align'
  23605.             }, C.a.createElement('input', {
  23606.               type: 'text',
  23607.               className: 'input--textbox spacing-right-small align__item--grow',
  23608.               placeholder: 'Enter a domain, e.g. disqus.com',
  23609.               value: null === this.state.newTrustedDomain ? '' : this.state.newTrustedDomain,
  23610.               onChange: function (e) {
  23611.                 return t.setState({
  23612.                   newTrustedDomain: e.target.value
  23613.                 })
  23614.               },
  23615.               disabled: this.props.trustedDomainIsSaving
  23616.             }), C.a.createElement('button', {
  23617.               className: 'button button-small button-fill',
  23618.               onClick: this.handleAddNewTrustedDomain,
  23619.               disabled: this.props.trustedDomainIsSaving
  23620.             }, 'Add')), this.props.trustedDomainSaveError ? C.a.createElement('p', {
  23621.               className: 'text-medium text-error text-semibold spacing-narrow'
  23622.             }, this.props.trustedDomainSaveError) : null)))), C.a.createElement('div', {
  23623.               className: 'content__wrap spacing-bottom-double'
  23624.             }, C.a.createElement('header', {
  23625.               className: 'settings__header'
  23626.             }, C.a.createElement('h2', {
  23627.               className: 'text-larger text-gray-darker spacing-bottom-small'
  23628.             }, 'Delete from Disqus'), C.a.createElement('p', {
  23629.               className: 'text-gray'
  23630.             }, 'Site data can not be recovered once a site is deleted so please be certain before taking this action.')), C.a.createElement('section', {
  23631.               className: 'settings__content'
  23632.             }, C.a.createElement(kf, {
  23633.               label: 'Delete from Disqus',
  23634.               blockAdditionalClass: this.props.forumDeletePasswordError ? 'is-error' : null
  23635.             }, e))))
  23636.           }
  23637.         }
  23638.       ]),
  23639.       o
  23640.     }();
  23641.     Ib(Fc, 'displayName', 'ForumSettingsAdvanced'),
  23642.     Ib(Fc, 'propTypes', {
  23643.       history: b.a.shape({
  23644.         setRouteLeaveHook: b.a.func.isRequired
  23645.       }).isRequired,
  23646.       route: b.a.object.isRequired,
  23647.       forumDetails: $c,
  23648.       forumDetailsError: b.a.string,
  23649.       forumDetailsIsFetching: b.a.bool,
  23650.       fetchForumDetails: b.a.func.isRequired,
  23651.       forumUpdateError: b.a.string,
  23652.       forumUpdateIsSaving: b.a.bool,
  23653.       forumUpdateIsSaved: b.a.bool,
  23654.       forumUpdateOnSave: b.a.func.isRequired,
  23655.       trustedDomainList: b.a.arrayOf(Cl),
  23656.       trustedDomainOnCreate: b.a.func.isRequired,
  23657.       trustedDomainOnKill: b.a.func.isRequired,
  23658.       trustedDomainSaveError: b.a.string,
  23659.       trustedDomainIsSaving: b.a.bool,
  23660.       forumDeleteError: b.a.string,
  23661.       forumDeletePasswordError: b.a.string,
  23662.       forumDeleteIsSaving: b.a.bool,
  23663.       forumDeleteOnSave: b.a.func.isRequired
  23664.     }),
  23665.     Ib(Fc, 'contextTypes', {
  23666.       auth: b.a.object
  23667.     }),
  23668.     Ib(Fc, 'getEditableFieldsFromForum', function (e) {
  23669.       e = (e = e || {
  23670.       }) && e.settings || {
  23671.       };
  23672.       return {
  23673.         enable3rdPartyTrackers: !e.disable3rdPartyTrackers,
  23674.         linkAffiliationEnabled: e.linkAffiliationEnabled
  23675.       }
  23676.     }),
  23677.     Ib(Fc, 'isTosExempt', function (e) {
  23678.       return Sb.a.tos_exempt_forums_shortnames.includes(e = e || '')
  23679.     }),
  23680.     Fc.DeleteForm = (lh = Yc = function () {
  23681.       xb(o, A);
  23682.       var r = Db(o);
  23683.       function o() {
  23684.         var t;
  23685.         Nb(this, o);
  23686.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  23687.         return Ib(jb(t = r.call.apply(r, [
  23688.           this
  23689.         ].concat(n))), 'state', {
  23690.           reason: null,
  23691.           password: null
  23692.         }),
  23693.         Ib(jb(t), 'handleReasonInputChange', function (e) {
  23694.           t.setState({
  23695.             reason: e.target.value
  23696.           })
  23697.         }),
  23698.         Ib(jb(t), 'handlePasswordInputChange', function (e) {
  23699.           t.setState({
  23700.             password: e.target.value
  23701.           })
  23702.         }),
  23703.         t
  23704.       }
  23705.       return Rb(o, [
  23706.         {
  23707.           key: 'render',
  23708.           value: function () {
  23709.             var n = this,
  23710.             e = !!this.state.reason,
  23711.             t = !(!e || !this.state.password),
  23712.             a = t && !this.props.isSaving;
  23713.             return C.a.createElement('div', null, C.a.createElement('div', {
  23714.               className: 'spacing-top-narrow'
  23715.             }, C.a.createElement('h3', {
  23716.               className: 'text-medium'
  23717.             }, 'Please tell us why (required)'), bf.map(function (e, t) {
  23718.               return C.a.createElement('label', {
  23719.                 key: t,
  23720.                 className: 'text-medium align align--middle spacing-top-narrow'
  23721.               }, C.a.createElement('input', {
  23722.                 type: 'radio',
  23723.                 name: 'ForumSettingsAdvancedDeleteForm_reason',
  23724.                 onChange: n.handleReasonInputChange,
  23725.                 value: e,
  23726.                 disabled: n.props.isSaving,
  23727.                 readOnly: n.props.isSaving
  23728.               }), e)
  23729.             })), e ? C.a.createElement('div', {
  23730.               className: 'spacing-top'
  23731.             }, C.a.createElement('h4', {
  23732.               className: 'text-medium'
  23733.             }, 'Please enter your password to confirm deletion.'), C.a.createElement('div', {
  23734.               className: 'align align--middle spacing-narrow'
  23735.             }, C.a.createElement('div', {
  23736.               className: 'text-gray spacing-right text-medium'
  23737.             }, 'Password'), C.a.createElement('div', {
  23738.               className: 'fieldset-item__input'
  23739.             }, C.a.createElement('input', {
  23740.               type: 'password',
  23741.               className: 'input--textbox',
  23742.               onChange: this.handlePasswordInputChange,
  23743.               disabled: this.props.isSaving,
  23744.               readOnly: this.props.isSaving
  23745.             }))), this.props.passwordError ? C.a.createElement('p', {
  23746.               className: 'text-medium text-error text-semibold spacing-narrow'
  23747.             }, this.props.passwordError) : null) : null, C.a.createElement('div', null, t ? C.a.createElement('p', {
  23748.               className: 'fieldset__description text-small text-gray spacing-narrow spacing-bottom'
  23749.             }, 'This will delete your website and its comments from Disqus. ', C.a.createElement('strong', null, 'Are you sure?')) : null, C.a.createElement('div', {
  23750.               className: 'spacing-top'
  23751.             }, C.a.createElement('button', {
  23752.               disabled: !a,
  23753.               className: 'button button-fill button-fill--red button-small',
  23754.               onClick: this.props.onConfirm.bind(null, this.state.reason, this.state.password)
  23755.             }, 'Delete'), C.a.createElement('span', {
  23756.               className: 'spacing-left spacing-right text-medium'
  23757.             }, 'or'), C.a.createElement('button', {
  23758.               className: 'button button-fill button-small',
  23759.               onClick: this.props.onCancel
  23760.             }, 'Cancel'), this.props.error ? C.a.createElement('p', {
  23761.               className: 'text-medium text-error text-semibold spacing-narrow'
  23762.             }, this.props.error) : null)))
  23763.           }
  23764.         }
  23765.       ]),
  23766.       o
  23767.     }(), Ib(Yc, 'propTypes', {
  23768.       error: b.a.string,
  23769.       passwordError: b.a.string,
  23770.       isSaving: b.a.bool,
  23771.       onConfirm: b.a.func.isRequired,
  23772.       onCancel: b.a.func.isRequired
  23773.     }), lh);
  23774.     vh = Object(u.connect) (function (e) {
  23775.       var t = e.forumDetails;
  23776.       return {
  23777.         forumDetails: t.forumDetails,
  23778.         forumDetailsError: t.forumDetailsError,
  23779.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  23780.         selection: e.selection
  23781.       }
  23782.     }, {
  23783.       fetchForumDetails: ig
  23784.     }) (Ni.a.attachDrivers(Fo() (Fc), [
  23785.       sl,
  23786.       m,
  23787.       yl
  23788.     ]));
  23789.     function qb(e) {
  23790.       return (qb = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  23791.         return typeof e
  23792.       }
  23793.        : function (e) {
  23794.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  23795.       }) (e)
  23796.     }
  23797.     function Fb(t, e) {
  23798.       var n,
  23799.       a = Object.keys(t);
  23800.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  23801.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  23802.       })), a.push.apply(a, n)),
  23803.       a
  23804.     }
  23805.     function Lb(t) {
  23806.       for (var e = 1; e < arguments.length; e++) {
  23807.         var n = null != arguments[e] ? arguments[e] : {
  23808.         };
  23809.         e % 2 ? Fb(Object(n), !0).forEach(function (e) {
  23810.           Gb(t, e, n[e])
  23811.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Fb(Object(n)).forEach(function (e) {
  23812.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  23813.         })
  23814.       }
  23815.       return t
  23816.     }
  23817.     function Ub(e, t) {
  23818.       for (var n = 0; n < t.length; n++) {
  23819.         var a = t[n];
  23820.         a.enumerable = a.enumerable || !1,
  23821.         a.configurable = !0,
  23822.         'value' in a && (a.writable = !0),
  23823.         Object.defineProperty(e, a.key, a)
  23824.       }
  23825.     }
  23826.     function Mb(e, t) {
  23827.       return (Mb = Object.setPrototypeOf || function (e, t) {
  23828.         return e.__proto__ = t,
  23829.         e
  23830.       }) (e, t)
  23831.     }
  23832.     function Bb(n) {
  23833.       var a = function () {
  23834.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  23835.         if (Reflect.construct.sham) return !1;
  23836.         if ('function' == typeof Proxy) return !0;
  23837.         try {
  23838.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  23839.           ], function () {
  23840.           })),
  23841.           !0
  23842.         } catch (e) {
  23843.           return !1
  23844.         }
  23845.       }();
  23846.       return function () {
  23847.         var e,
  23848.         t = Hb(n);
  23849.         return e = a ? (e = Hb(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  23850.         t = this,
  23851.         !(e = e) || 'object' !== qb(e) && 'function' != typeof e ? zb(t) : e
  23852.       }
  23853.     }
  23854.     function zb(e) {
  23855.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  23856.       return e
  23857.     }
  23858.     function Hb(e) {
  23859.       return (Hb = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  23860.         return e.__proto__ || Object.getPrototypeOf(e)
  23861.       }) (e)
  23862.     }
  23863.     function Gb(e, t, n) {
  23864.       return t in e ? Object.defineProperty(e, t, {
  23865.         value: n,
  23866.         enumerable: !0,
  23867.         configurable: !0,
  23868.         writable: !0
  23869.       }) : e[t] = n,
  23870.       e
  23871.     }
  23872.     var Vb = function () {
  23873.       !function (e, t) {
  23874.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  23875.         e.prototype = Object.create(t && t.prototype, {
  23876.           constructor: {
  23877.             value: e,
  23878.             writable: !0,
  23879.             configurable: !0
  23880.           }
  23881.         }),
  23882.         t && Mb(e, t)
  23883.       }(o, A);
  23884.       var e,
  23885.       t,
  23886.       n,
  23887.       r = Bb(o);
  23888.       function o() {
  23889.         var a;
  23890.         !function (e, t) {
  23891.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  23892.         }(this, o);
  23893.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  23894.         return Gb(zb(a = r.call.apply(r, [
  23895.           this
  23896.         ].concat(t))), 'state', Lb(Lb({
  23897.         }, o.getEditableFieldsFromForum(a.props.forumDetails)), {
  23898.         }, {
  23899.           invalidFields: {
  23900.           },
  23901.           savedFields: o.getEditableFieldsFromForum(a.props.forumDetails)
  23902.         })),
  23903.         Gb(zb(a), 'confirmNavigationIfUnsaved', function () {
  23904.           if (a.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  23905.         }),
  23906.         Gb(zb(a), 'handleInputChange', function (t, e) {
  23907.           var e = e.target,
  23908.           n = 'checkbox' !== e.type || null != e.value && '' !== e.value ? e.value : e.checked;
  23909.           'text' === e.type || 'boolean' == typeof n || '' === n || isNaN(n) || (n = parseInt(n, 10)),
  23910.           a.setState(function (e) {
  23911.             e = Lb(Lb({
  23912.             }, e), {
  23913.             }, Gb({
  23914.             }, t, n));
  23915.             return e.invalidFields[t] = !a.validateField(t, n),
  23916.             e
  23917.           })
  23918.         }),
  23919.         Gb(zb(a), 'hasFieldChanged', function (e) {
  23920.           return a.state[e] !== a.state.savedFields[e] && !(null === a.state.savedFields[e] && '' === a.state[e])
  23921.         }),
  23922.         Gb(zb(a), 'hasUnsavedChanges', function () {
  23923.           return Object.keys(a.state.savedFields).some(function (e) {
  23924.             return a.hasFieldChanged(e)
  23925.           })
  23926.         }),
  23927.         Gb(zb(a), 'handleSaveChanges', function () {
  23928.           var e = {
  23929.             commentsLinkZero: a.state.commentsLinkZero,
  23930.             commentsLinkOne: a.state.commentsLinkOne,
  23931.             commentsLinkMultiple: a.state.commentsLinkMultiple,
  23932.             moderatorBadgeText: a.state.moderatorBadgeText,
  23933.             sort: a.state.sort,
  23934.             validateAllPosts: a.state.validateAllPosts ? 1 : 0,
  23935.             unapproveLinks: a.state.unapproveLinks ? 1 : 0,
  23936.             mediaembedEnabled: a.state.mediaembedEnabled ? 1 : 0,
  23937.             gifPickerEnabled: a.state.gifPickerEnabled ? 1 : 0,
  23938.             flaggingNotifications: a.state.flaggingNotifications ? 1 : 0,
  23939.             flaggingEnabled: a.state.flaggingEnabled ? 1 : 0,
  23940.             flagThreshold: a.state.flagThreshold,
  23941.             daysThreadAlive: a.state.daysThreadAlive,
  23942.             twitterName: a.state.twitterName,
  23943.             allowAnonPost: a.state.allowAnonPost ? 1 : 0,
  23944.             votingType: a.state.votingType
  23945.           };
  23946.           a.hasFeature('threadRatings') && (e.threadRatingsEnabled = a.state.threadRatingsEnabled ? 1 : 0),
  23947.           a.hasFeature('embedCustomizations') && yo.a.isFeatureActive('embed_customizations', {
  23948.             forum: a.props.selection.forum.shortname
  23949.           }) && (e.disableSocialShare = a.state.disableSocialShare ? 1 : 0, e.initialCommentCount = a.state.initialCommentCount, e.commentsPlaceholderTextEmpty = a.state.commentsPlaceholderTextEmpty, e.commentsPlaceholderTextPopulated = a.state.commentsPlaceholderTextPopulated),
  23950.           a.props.forumUpdateOnSave(e).done(function () {
  23951.             a.setState(function (e) {
  23952.               return {
  23953.                 savedFields: {
  23954.                   commentsLinkZero: e.commentsLinkZero,
  23955.                   commentsLinkOne: e.commentsLinkOne,
  23956.                   commentsLinkMultiple: e.commentsLinkMultiple,
  23957.                   moderatorBadgeText: e.moderatorBadgeText,
  23958.                   sort: e.sort,
  23959.                   validateAllPosts: e.validateAllPosts,
  23960.                   unapproveLinks: e.unapproveLinks,
  23961.                   mediaembedEnabled: e.mediaembedEnabled,
  23962.                   gifPickerEnabled: e.gifPickerEnabled,
  23963.                   flaggingNotifications: e.flaggingNotifications,
  23964.                   flaggingEnabled: e.flaggingEnabled,
  23965.                   flagThreshold: e.flagThreshold,
  23966.                   daysThreadAlive: e.daysThreadAlive,
  23967.                   twitterName: e.twitterName,
  23968.                   allowAnonPost: e.allowAnonPost,
  23969.                   votingType: e.votingType,
  23970.                   threadRatingsEnabled: e.threadRatingsEnabled,
  23971.                   disableSocialShare: e.disableSocialShare,
  23972.                   initialCommentCount: e.initialCommentCount,
  23973.                   commentsPlaceholderTextEmpty: e.commentsPlaceholderTextEmpty,
  23974.                   commentsPlaceholderTextPopulated: e.commentsPlaceholderTextPopulated
  23975.                 }
  23976.               }
  23977.             })
  23978.           })
  23979.         }),
  23980.         Gb(zb(a), 'validateField', function (e, t) {
  23981.           return 'initialCommentCount' !== e || _f.min <= t && t <= _f.max
  23982.         }),
  23983.         Gb(zb(a), 'hasInvalidFields', function () {
  23984.           return 0 < Object.keys(a.state.invalidFields).filter(function (e) {
  23985.             return !0 === a.state.invalidFields[e]
  23986.           }).length
  23987.         }),
  23988.         Gb(zb(a), 'getInputId', function (e) {
  23989.           return ''.concat(a.constructor.displayName, '_').concat(e)
  23990.         }),
  23991.         Gb(zb(a), 'hasFeature', function (e) {
  23992.           return !!(a.props.forumDetails && a.props.forumDetails.features && a.props.forumDetails.features[e])
  23993.         }),
  23994.         a
  23995.       }
  23996.       return e = o,
  23997.       (t = [
  23998.         {
  23999.           key: 'componentDidMount',
  24000.           value: function () {
  24001.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  24002.             this.props.fetchForumDetails()
  24003.           }
  24004.         },
  24005.         {
  24006.           key: 'componentWillReceiveProps',
  24007.           value: function (e) {
  24008.             !this.props.forumDetails && e.forumDetails && this.setState(Lb(Lb({
  24009.             }, o.getEditableFieldsFromForum(e.forumDetails)), {
  24010.             }, {
  24011.               savedFields: o.getEditableFieldsFromForum(e.forumDetails)
  24012.             }))
  24013.           }
  24014.         },
  24015.         {
  24016.           key: 'render',
  24017.           value: function () {
  24018.             var t = this;
  24019.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  24020.               isPolls: !1,
  24021.               organization: this.props.selection.organization
  24022.             });
  24023.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  24024.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  24025.               className: 'content__wrap spacing-bottom-double'
  24026.             }, C.a.createElement(Ki, {
  24027.               message: this.props.forumDetailsError,
  24028.               alertType: 'error'
  24029.             }));
  24030.             var e = this.props.organizations[this.props.selection.forum.organization],
  24031.             n = this.hasFeature('threadRatings'),
  24032.             a = this.hasFeature('embedCustomizations'),
  24033.             r = [
  24034.             ],
  24035.             o = [
  24036.             ],
  24037.             i = C.a.createElement(Ob, {
  24038.               name: 'threadRatingsEnabled',
  24039.               key: 'threadRatingsEnabled',
  24040.               checked: n && !!this.state.threadRatingsEnabled,
  24041.               label: C.a.createElement('span', null, n || yo.a.isFeatureActive('embed_customizations', {
  24042.                 forum: this.props.selection.forum.shortname
  24043.               }) ? null : C.a.createElement(Ks, {
  24044.                 emitEvent: function (e) {
  24045.                   return t.props.emitTrackingEvent(Lb({
  24046.                     area: 'thread_ratings'
  24047.                   }, e))
  24048.                 },
  24049.                 organization: e,
  24050.                 iconClass: 'spacing-right-small'
  24051.               }), 'Star Ratings'),
  24052.               secondaryLabel: 'Enable Star Ratings',
  24053.               onChange: this.handleInputChange.bind(this, 'threadRatingsEnabled'),
  24054.               idNamespace: this.constructor.displayName,
  24055.               readOnly: !n || this.props.forumUpdateIsSaving,
  24056.               disabled: !n || this.props.forumUpdateIsSaving,
  24057.               shouldHighlight: this.hasFieldChanged('threadRatingsEnabled'),
  24058.               tooltip: 'Allow users to rate articles with their comments.'
  24059.             });
  24060.             (n || !yo.a.isFeatureActive('embed_customizations', {
  24061.               forum: this.props.selection.forum.shortname
  24062.             }) ? o : r).push(i);
  24063.             var s,
  24064.             l = C.a.createElement(Ob, {
  24065.               name: 'disableSocialShare',
  24066.               key: 'disableSocialShare',
  24067.               checked: !!this.state.disableSocialShare,
  24068.               label: 'Hide Social Share',
  24069.               secondaryLabel: 'Hide social share buttons.',
  24070.               onChange: this.handleInputChange.bind(this, 'disableSocialShare'),
  24071.               idNamespace: this.constructor.displayName,
  24072.               readOnly: !a || this.props.forumUpdateIsSaving,
  24073.               disabled: !a || this.props.forumUpdateIsSaving,
  24074.               shouldHighlight: this.hasFieldChanged('disableSocialShare'),
  24075.               tooltip: 'Hides social share buttons, Facebook and X (Twitter), from the embed.'
  24076.             }),
  24077.             c = C.a.createElement(Ob, {
  24078.               name: 'hideDownvoteDetails',
  24079.               key: 'hideDownvoteDetails',
  24080.               checked: !!this.state.votingType,
  24081.               label: 'Downvote Details',
  24082.               secondaryLabel: gf[1].label,
  24083.               value: (this.state.votingType === gf[1].key ? gf[0] : gf[1]).key,
  24084.               onChange: this.handleInputChange.bind(this, 'votingType'),
  24085.               idNamespace: this.constructor.displayName,
  24086.               readOnly: this.props.forumUpdateIsSaving,
  24087.               disabled: this.props.forumUpdateIsSaving,
  24088.               shouldHighlight: this.hasFieldChanged('votingType')
  24089.             });
  24090.             return yo.a.isFeatureActive('embed_customizations', {
  24091.               forum: this.props.selection.forum.shortname
  24092.             }) ? (s = C.a.createElement(kf, {
  24093.               label: 'Voting',
  24094.               key: 'votingType',
  24095.               blockAdditionalClass: '-fieldset__block--radio text-medium',
  24096.               readOnly: !a,
  24097.               shouldHighlight: this.hasFieldChanged('votingType'),
  24098.               childIsInput: !0
  24099.             }, C.a.createElement('label', {
  24100.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  24101.             }, C.a.createElement('input', {
  24102.               name: 'votingType',
  24103.               type: 'radio',
  24104.               value: gf[3].key,
  24105.               checked: this.state.votingType === gf[3].key,
  24106.               onChange: this.handleInputChange.bind(this, 'votingType'),
  24107.               readOnly: !a || this.props.forumUpdateIsSaving,
  24108.               disabled: !a || this.props.forumUpdateIsSaving
  24109.             }), gf[3].label), C.a.createElement('label', {
  24110.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  24111.             }, C.a.createElement('input', {
  24112.               name: 'votingType',
  24113.               type: 'radio',
  24114.               value: gf[2].key,
  24115.               checked: this.state.votingType === gf[2].key,
  24116.               onChange: this.handleInputChange.bind(this, 'votingType'),
  24117.               readOnly: !a || this.props.forumUpdateIsSaving,
  24118.               disabled: !a || this.props.forumUpdateIsSaving
  24119.             }), gf[2].label), C.a.createElement('label', {
  24120.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  24121.             }, C.a.createElement('input', {
  24122.               name: 'votingType',
  24123.               type: 'radio',
  24124.               value: gf[0].key,
  24125.               checked: this.state.votingType === gf[0].key || this.state.votingType === gf[1].key,
  24126.               onChange: this.handleInputChange.bind(this, 'votingType'),
  24127.               readOnly: !a || this.props.forumUpdateIsSaving,
  24128.               disabled: !a || this.props.forumUpdateIsSaving
  24129.             }), gf[0].label), C.a.createElement('label', {
  24130.               className: 'text-medium fieldset__block--checkbox spacing-left-large'
  24131.             }, C.a.createElement('input', {
  24132.               name: 'votingType',
  24133.               type: 'checkbox',
  24134.               value: (this.state.votingType === gf[1].key ? gf[0] : gf[1]).key,
  24135.               checked: this.state.votingType === gf[1].key,
  24136.               onChange: this.handleInputChange.bind(this, 'votingType'),
  24137.               disabled: !a || this.props.forumUpdateIsSaving,
  24138.               readOnly: !a || this.props.forumUpdateIsSaving
  24139.             }), gf[1].label)), n = C.a.createElement(kf, {
  24140.               labelId: this.getInputId('initialCommentCount'),
  24141.               readOnly: !a || this.props.forumUpdateIsSaving,
  24142.               label: 'Initial Comments',
  24143.               key: 'initialCommentCount',
  24144.               shouldHighlight: this.hasFieldChanged('initialCommentCount')
  24145.             }, C.a.createElement('div', {
  24146.               className: 'spacing-top-small text-medium'
  24147.             }, 'Display', C.a.createElement('input', {
  24148.               type: 'number',
  24149.               id: this.getInputId('initialCommentCount'),
  24150.               min: _f.min,
  24151.               max: _f.max,
  24152.               value: this.state.initialCommentCount || _f.default,
  24153.               onChange: this.handleInputChange.bind(this, 'initialCommentCount'),
  24154.               size: '3',
  24155.               className: 'input--textbox -text-small -inline spacing-left-small spacing-right-small',
  24156.               readOnly: !a || this.props.forumUpdateIsSaving,
  24157.               disabled: !a || this.props.forumUpdateIsSaving
  24158.             }), 'comments before the ', C.a.createElement('i', null, '"Load more comments"'), ' button.'), this.state.invalidFields.initialCommentCount ? C.a.createElement('div', {
  24159.               className: 'spacing-top-small text-small text-error'
  24160.             }, 'Initial comment count must be between 1-50') : null), i = C.a.createElement(kf, {
  24161.               label: 'Comment Prompt',
  24162.               blockAdditionalClass: '-no-input text-medium',
  24163.               key: 'commentsPlaceholderText',
  24164.               readOnly: !a,
  24165.               shouldHighlight: hf.some(function (e) {
  24166.                 return t.hasFieldChanged(e.key)
  24167.               })
  24168.             }, hf.map(function (e) {
  24169.               return C.a.createElement('div', {
  24170.                 key: e.key,
  24171.                 className: 'align align--middle spacing-bottom'
  24172.               }, C.a.createElement('div', {
  24173.                 className: 'fieldset-item__label'
  24174.               }, e.label), C.a.createElement('div', {
  24175.                 className: 'fieldset-item__input'
  24176.               }, C.a.createElement('input', {
  24177.                 type: 'text',
  24178.                 className: 'input--textbox',
  24179.                 value: t.state[e.key],
  24180.                 maxLength: 45,
  24181.                 onChange: t.handleInputChange.bind(t, e.key),
  24182.                 placeholder: 'e.g. '.concat(e.default),
  24183.                 readOnly: !a || t.props.forumUpdateIsSaving,
  24184.                 disabled: !a || t.props.forumUpdateIsSaving
  24185.               })))
  24186.             })), a ? o.push(l, s, n, i) : (r.push(l, s, n, i), o.push(c))) : (a && o.push(l), o.push(c)),
  24187.             C.a.createElement('div', null, C.a.createElement('div', {
  24188.               className: 'content__wrap spacing-bottom-double'
  24189.             }, C.a.createElement('header', {
  24190.               className: 'settings__header'
  24191.             }, C.a.createElement('h2', {
  24192.               className: 'text-larger text-gray-darker spacing-bottom-small'
  24193.             }, 'Community & Comments Configuration')), C.a.createElement('section', {
  24194.               className: 'settings__content'
  24195.             }, this.props.forumUpdateError ? C.a.createElement(Ki, {
  24196.               message: this.props.forumUpdateError,
  24197.               onRequestClose: this.props.forumUpdateOnDismissError,
  24198.               alertType: 'error'
  24199.             }) : null, C.a.createElement(kf, {
  24200.               label: 'Comment Count Link',
  24201.               blockAdditionalClass: '-no-input text-medium',
  24202.               shouldHighlight: mf.some(function (e) {
  24203.                 return t.hasFieldChanged(e.key)
  24204.               }),
  24205.               tooltip: C.a.createElement(C.a.Fragment, null, 'Customize the text of the comment count link. Use ', C.a.createElement('code', null, '{num}'), ' as a placeholder for the current comment count.')
  24206.             }, mf.map(function (e) {
  24207.               return C.a.createElement('div', {
  24208.                 key: e.key,
  24209.                 className: 'align align--middle spacing-bottom'
  24210.               }, C.a.createElement('div', {
  24211.                 className: 'fieldset-item__label'
  24212.               }, e.label), C.a.createElement('div', {
  24213.                 className: 'fieldset-item__input'
  24214.               }, C.a.createElement('input', {
  24215.                 type: 'text',
  24216.                 className: 'input--textbox',
  24217.                 value: t.state[e.key],
  24218.                 onChange: t.handleInputChange.bind(t, e.key),
  24219.                 placeholder: 'e.g. '.concat(ff[e.key]),
  24220.                 readOnly: t.props.forumUpdateIsSaving,
  24221.                 disabled: t.props.forumUpdateIsSaving
  24222.               })))
  24223.             })), C.a.createElement(Mf, {
  24224.               name: 'sort',
  24225.               options: df,
  24226.               value: this.state.sort,
  24227.               label: 'Default Sort',
  24228.               onChange: this.handleInputChange.bind(this, 'sort'),
  24229.               idNamespace: this.constructor.displayName,
  24230.               readOnly: this.props.forumUpdateIsSaving,
  24231.               disabled: this.props.forumUpdateIsSaving,
  24232.               shouldHighlight: this.hasFieldChanged('sort'),
  24233.               tooltip: '"Best first" sorts comments statistically based on votes.'
  24234.             }), C.a.createElement($h, {
  24235.               name: 'moderatorBadgeText',
  24236.               value: this.state.moderatorBadgeText,
  24237.               label: 'Moderator Badge Text',
  24238.               placeholder: 'Mod',
  24239.               onChange: this.handleInputChange.bind(this, 'moderatorBadgeText'),
  24240.               idNamespace: this.constructor.displayName,
  24241.               readOnly: this.props.forumUpdateIsSaving,
  24242.               disabled: this.props.forumUpdateIsSaving,
  24243.               shouldHighlight: this.hasFieldChanged('moderatorBadgeText')
  24244.             }), C.a.createElement($h, {
  24245.               name: 'twitterName',
  24246.               value: this.state.twitterName,
  24247.               label: 'X (Twitter) @Replies',
  24248.               onChange: this.handleInputChange.bind(this, 'twitterName'),
  24249.               idNamespace: this.constructor.displayName,
  24250.               readOnly: this.props.forumUpdateIsSaving,
  24251.               disabled: this.props.forumUpdateIsSaving,
  24252.               shouldHighlight: this.hasFieldChanged('twitterName'),
  24253.               tooltip: 'Allow your visitors to automatically @reply your X (Twitter) name when they are sharing replies to your comments.'
  24254.             }), o), r.length ? C.a.createElement('section', {
  24255.               className: 'settings__content'
  24256.             }, C.a.createElement('div', {
  24257.               className: 'settings-community__features-container'
  24258.             }, C.a.createElement(Ks, {
  24259.               emitEvent: function (e) {
  24260.                 return t.props.emitTrackingEvent(Lb({
  24261.                   area: 'embed_customizations'
  24262.                 }, e))
  24263.               },
  24264.               organization: e,
  24265.               iconClass: 'spacing-right-small'
  24266.             }), C.a.createElement('span', {
  24267.               className: 'fieldset__description text-medium'
  24268.             }, 'These features are only available to publishers on a Disqus Pro plan.', ' ', C.a.createElement(Us, {
  24269.               path: '/settings/subscription/',
  24270.               orgId: e.id,
  24271.               orgSlug: e.slug
  24272.             }, 'View upgrade options'), '.')), r) : null, C.a.createElement('footer', {
  24273.               className: 'settings__footer'
  24274.             }, C.a.createElement(Bh, {
  24275.               disabled: !this.hasUnsavedChanges() || this.hasInvalidFields(),
  24276.               onClick: this.handleSaveChanges,
  24277.               isSaving: this.props.forumUpdateIsSaving,
  24278.               isSaved: this.props.forumUpdateIsSaved
  24279.             }))))
  24280.           }
  24281.         }
  24282.       ]) && Ub(e.prototype, t),
  24283.       n && Ub(e, n),
  24284.       o
  24285.     }();
  24286.     Gb(Vb, 'displayName', 'ForumSettingsCommunity'),
  24287.     Gb(Vb, 'propTypes', {
  24288.       history: b.a.shape({
  24289.         setRouteLeaveHook: b.a.func.isRequired
  24290.       }).isRequired,
  24291.       route: b.a.object.isRequired,
  24292.       organizations: b.a.object.isRequired,
  24293.       selection: ht.isRequired,
  24294.       forumDetails: $c,
  24295.       forumDetailsError: b.a.string,
  24296.       forumDetailsIsFetching: b.a.bool,
  24297.       fetchForumDetails: b.a.func.isRequired,
  24298.       forumUpdateError: b.a.string,
  24299.       forumUpdateIsSaving: b.a.bool,
  24300.       forumUpdateIsSaved: b.a.bool,
  24301.       forumUpdateOnSave: b.a.func.isRequired,
  24302.       forumUpdateOnDismissError: b.a.func.isRequired,
  24303.       emitTrackingEvent: b.a.func.isRequired
  24304.     }),
  24305.     Gb(Vb, 'getEditableFieldsFromForum', function (e) {
  24306.       var t = (e = e || {
  24307.       }).settings || {
  24308.       };
  24309.       return {
  24310.         commentsLinkZero: e.commentsLinkZero || ff.commentsLinkZero,
  24311.         commentsLinkOne: e.commentsLinkOne || ff.commentsLinkZero,
  24312.         commentsLinkMultiple: e.commentsLinkMultiple || ff.commentsLinkZero,
  24313.         commentsPlaceholderTextEmpty: e.commentsPlaceholderTextEmpty || '',
  24314.         commentsPlaceholderTextPopulated: e.commentsPlaceholderTextPopulated || '',
  24315.         moderatorBadgeText: e.moderatorBadgeText,
  24316.         sort: e.sort,
  24317.         validateAllPosts: t.validateAllPosts,
  24318.         unapproveLinks: t.unapproveLinks,
  24319.         mediaembedEnabled: t.mediaembedEnabled,
  24320.         disableSocialShare: t.disableSocialShare,
  24321.         gifPickerEnabled: t.gifPickerEnabled,
  24322.         flaggingNotifications: t.flaggingNotifications,
  24323.         flaggingEnabled: t.flaggingEnabled,
  24324.         flagThreshold: e.flagThreshold,
  24325.         daysThreadAlive: e.daysThreadAlive,
  24326.         twitterName: e.twitterName,
  24327.         allowAnonPost: t.allowAnonPost,
  24328.         threadRatingsEnabled: t.threadRatingsEnabled,
  24329.         initialCommentCount: e.initialCommentCount,
  24330.         votingType: null === e.votingType ? nf.DEFAULT_VOTING_TYPE : e.votingType
  24331.       }
  24332.     });
  24333.     var Sh = Object(u.connect) (function (e) {
  24334.       var t = e.forumDetails;
  24335.       return {
  24336.         forumDetails: t.forumDetails,
  24337.         forumDetailsError: t.forumDetailsError,
  24338.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  24339.         selection: e.selection
  24340.       }
  24341.     }, {
  24342.       emitTrackingEvent: Xo({
  24343.         zone: 'settings',
  24344.         section: 'community'
  24345.       }),
  24346.       fetchForumDetails: ig
  24347.     }) (Ni.a.attachDrivers(Fo() (Vb), [
  24348.       m
  24349.     ])),
  24350.     cu = n(317),
  24351.     Wb = n.n(cu),
  24352.     Jc = n(318),
  24353.     Yb = n.n(Jc);
  24354.     function Qb(e) {
  24355.       return (Qb = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  24356.         return typeof e
  24357.       }
  24358.        : function (e) {
  24359.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  24360.       }) (e)
  24361.     }
  24362.     function Kb(t, e) {
  24363.       var n,
  24364.       a = Object.keys(t);
  24365.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  24366.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  24367.       })), a.push.apply(a, n)),
  24368.       a
  24369.     }
  24370.     function Jb(t) {
  24371.       for (var e = 1; e < arguments.length; e++) {
  24372.         var n = null != arguments[e] ? arguments[e] : {
  24373.         };
  24374.         e % 2 ? Kb(Object(n), !0).forEach(function (e) {
  24375.           ov(t, e, n[e])
  24376.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Kb(Object(n)).forEach(function (e) {
  24377.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  24378.         })
  24379.       }
  24380.       return t
  24381.     }
  24382.     function $b(e, t) {
  24383.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  24384.     }
  24385.     function Zb(e, t) {
  24386.       for (var n = 0; n < t.length; n++) {
  24387.         var a = t[n];
  24388.         a.enumerable = a.enumerable || !1,
  24389.         a.configurable = !0,
  24390.         'value' in a && (a.writable = !0),
  24391.         Object.defineProperty(e, a.key, a)
  24392.       }
  24393.     }
  24394.     function Xb(e, t, n) {
  24395.       return t && Zb(e.prototype, t),
  24396.       n && Zb(e, n),
  24397.       e
  24398.     }
  24399.     function ev(e, t) {
  24400.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  24401.       e.prototype = Object.create(t && t.prototype, {
  24402.         constructor: {
  24403.           value: e,
  24404.           writable: !0,
  24405.           configurable: !0
  24406.         }
  24407.       }),
  24408.       t && tv(e, t)
  24409.     }
  24410.     function tv(e, t) {
  24411.       return (tv = Object.setPrototypeOf || function (e, t) {
  24412.         return e.__proto__ = t,
  24413.         e
  24414.       }) (e, t)
  24415.     }
  24416.     function nv(n) {
  24417.       var a = function () {
  24418.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  24419.         if (Reflect.construct.sham) return !1;
  24420.         if ('function' == typeof Proxy) return !0;
  24421.         try {
  24422.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  24423.           ], function () {
  24424.           })),
  24425.           !0
  24426.         } catch (e) {
  24427.           return !1
  24428.         }
  24429.       }();
  24430.       return function () {
  24431.         var e,
  24432.         t = rv(n);
  24433.         return e = a ? (e = rv(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  24434.         t = this,
  24435.         !(e = e) || 'object' !== Qb(e) && 'function' != typeof e ? av(t) : e
  24436.       }
  24437.     }
  24438.     function av(e) {
  24439.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  24440.       return e
  24441.     }
  24442.     function rv(e) {
  24443.       return (rv = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  24444.         return e.__proto__ || Object.getPrototypeOf(e)
  24445.       }) (e)
  24446.     }
  24447.     function ov(e, t, n) {
  24448.       return t in e ? Object.defineProperty(e, t, {
  24449.         value: n,
  24450.         enumerable: !0,
  24451.         configurable: !0,
  24452.         writable: !0
  24453.       }) : e[t] = n,
  24454.       e
  24455.     }
  24456.     function iv(e) {
  24457.       var t = e.onAgree,
  24458.       n = e.onCancel,
  24459.       e = e.onClose;
  24460.       return C.a.createElement(_.a, {
  24461.         isOpen: !0,
  24462.         onRequestClose: n,
  24463.         className: 'admin-modal -clipped -wider',
  24464.         overlayClassName: 'modal-overlay -dark'
  24465.       }, C.a.createElement('div', {
  24466.         className: 'admin-modal__header align align--between'
  24467.       }, C.a.createElement('h3', {
  24468.         className: 'text-large'
  24469.       }, 'Exporting subscribers'), C.a.createElement('button', {
  24470.         className: 'link-gray',
  24471.         onClick: e
  24472.       }, C.a.createElement('span', {
  24473.         className: 'icon-cancel icon__position'
  24474.       }))), C.a.createElement('div', {
  24475.         className: 'padding-double'
  24476.       }, C.a.createElement('p', {
  24477.         className: 'spacing-bottom-small'
  24478.       }, 'By enabling this feature, you\'re agreeing to:'), C.a.createElement('ul', {
  24479.         className: 'list-bullet'
  24480.       }, C.a.createElement('li', null, 'Not share the information provided without the user\'s consent'), C.a.createElement('li', null, 'Refrain from sending malicious or manipulative communication'), C.a.createElement('li', null, 'Respect requests to unsubscribe and opt-out of future communications'))), C.a.createElement('div', {
  24481.         className: 'admin-modal__footer align align--between'
  24482.       }, C.a.createElement('button', {
  24483.         className: 'button button-fill text-small',
  24484.         onClick: n
  24485.       }, 'Go back'), C.a.createElement('button', {
  24486.         className: 'button button-fill--brand text-small spacing-left-large',
  24487.         onClick: t
  24488.       }, 'Agree, enable email subscriptions')))
  24489.     }
  24490.     Ru = b.a.shape({
  24491.       isFetching: b.a.bool.isRequired,
  24492.       isFetched: b.a.bool.isRequired,
  24493.       pendingExports: b.a.number,
  24494.       totalExports: b.a.number,
  24495.       lastExportDate: b.a.string
  24496.     });
  24497.     iv.propTypes = {
  24498.       onAgree: b.a.func,
  24499.       onCancel: b.a.func,
  24500.       onClose: b.a.func
  24501.     };
  24502.     function sv(e) {
  24503.       var a = e.all,
  24504.       r = e.forum,
  24505.       t = e.onCancel,
  24506.       n = e.onClose,
  24507.       o = e.onExport,
  24508.       e = e.pendingExportInfo;
  24509.       return C.a.createElement(_.a, {
  24510.         isOpen: !0,
  24511.         onRequestClose: n,
  24512.         className: 'admin-modal -clipped -wider',
  24513.         overlayClassName: 'modal-overlay -dark'
  24514.       }, C.a.createElement('div', {
  24515.         className: 'admin-modal__header align align--between'
  24516.       }, C.a.createElement('h3', {
  24517.         className: 'text-large'
  24518.       }, 'Exporting subscribers'), C.a.createElement('button', {
  24519.         className: 'link-gray',
  24520.         onClick: n
  24521.       }, C.a.createElement('span', {
  24522.         className: 'icon-cancel icon__position'
  24523.       }))), C.a.createElement('div', {
  24524.         className: 'padding-double'
  24525.       }, C.a.createElement('p', {
  24526.         className: 'spacing-bottom-small'
  24527.       }, 'By exporting this information, you\'re agreeing to:'), C.a.createElement('ul', {
  24528.         className: 'list-bullet'
  24529.       }, C.a.createElement('li', null, 'Not share the information provided without the user\'s consent'), C.a.createElement('li', null, 'Refrain from sending communication that may be malicious or manipulative'), C.a.createElement('li', null, 'Respect requests to unsubscribe and opt-out of future communications'))), C.a.createElement('div', {
  24530.         className: 'admin-modal__footer align align--between'
  24531.       }, C.a.createElement('button', {
  24532.         className: 'button button-fill text-small',
  24533.         onClick: t
  24534.       }, 'Go back'), C.a.createElement('button', {
  24535.         className: 'button button-fill--brand',
  24536.         onClick: function () {
  24537.           io.a.call('aet/export.csv', {
  24538.             data: {
  24539.               forum: r.shortname,
  24540.               full: a ? '1' : '0'
  24541.             },
  24542.             method: 'POST'
  24543.           }).done(function (e) {
  24544.             var e = new window.Blob([e], {
  24545.               type: 'text/csv'
  24546.             }),
  24547.             t = window.URL.createObjectURL(e),
  24548.             n = window.document.createElement('a');
  24549.             n.download = 'Disqus '.concat(r.shortname, ' ').concat(ct() ().format('MM/DD/YY'), ' ').concat(a ? 'Full ' : '', 'Email Export.csv'),
  24550.             n.href = t,
  24551.             n.style.display = 'none',
  24552.             window.document.body.appendChild(n),
  24553.             n.click(),
  24554.             setTimeout(function () {
  24555.               window.document.body.removeChild(n),
  24556.               window.URL.revokeObjectURL(t)
  24557.             }, 0)
  24558.           }).fail(function () {
  24559.             window.alert('There was an error exporting, please try again later.')
  24560.           }).always(function () {
  24561.             o(),
  24562.             n()
  24563.           })
  24564.         }
  24565.       }, a ? C.a.createElement('span', null, 'Agree, export all subscribers') : C.a.createElement('span', null, 'Agree, export ', e.pendingExports, ' new ', 1 === e.pendingExports ? 'subscriber' : 'subscribers'))))
  24566.     }
  24567.     sv.propTypes = {
  24568.       all: b.a.bool,
  24569.       forum: b.a.shape({
  24570.         shortname: b.a.string.isRequired
  24571.       }).isRequired,
  24572.       onCancel: b.a.func,
  24573.       onClose: b.a.func.isRequired,
  24574.       onExport: b.a.func.isRequired,
  24575.       pendingExportInfo: Ru.isRequired
  24576.     };
  24577.     var lv = 'loggedIn',
  24578.     cv = 'loggedOut',
  24579.     uv = function () {
  24580.       ev(o, A);
  24581.       var r = nv(o);
  24582.       function o() {
  24583.         var t;
  24584.         $b(this, o);
  24585.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  24586.         return ov(av(t = r.call.apply(r, [
  24587.           this
  24588.         ].concat(n))), 'state', {
  24589.           signupComplete: !1,
  24590.           previewState: lv
  24591.         }),
  24592.         ov(av(t), 'handleChooseState', function (e) {
  24593.           t.setState({
  24594.             signupComplete: !1,
  24595.             previewState: e.target.value
  24596.           })
  24597.         }),
  24598.         ov(av(t), 'handleSubscribe', function () {
  24599.           t.setState({
  24600.             signupComplete: !0
  24601.           })
  24602.         }),
  24603.         ov(av(t), 'handleDismiss', function () {
  24604.           t.setState({
  24605.             signupComplete: !1
  24606.           })
  24607.         }),
  24608.         t
  24609.       }
  24610.       return Xb(o, [
  24611.         {
  24612.           key: 'render',
  24613.           value: function () {
  24614.             return C.a.createElement('div', null, C.a.createElement('h2', {
  24615.               className: 'text-gray spacing-bottom'
  24616.             }, 'Preview'), C.a.createElement('p', {
  24617.               className: 'spacing-bottom'
  24618.             }, 'Readers logged-in to Disqus can subscribe with one click because their emails are already verified by Disqus. Logged-out readers enter their email address and receive a confirmation email. Click "Subscribe" to preview the confirmation message.'), C.a.createElement('form', null, C.a.createElement('label', null, C.a.createElement('input', {
  24619.               type: 'radio',
  24620.               name: 'state',
  24621.               value: lv,
  24622.               checked: this.state.previewState === lv,
  24623.               onChange: this.handleChooseState
  24624.             }), 'Logged-in to Disqus'), C.a.createElement('br', null), C.a.createElement('label', null, C.a.createElement('input', {
  24625.               type: 'radio',
  24626.               name: 'state',
  24627.               value: cv,
  24628.               checked: this.state.previewState === cv,
  24629.               onChange: this.handleChooseState
  24630.             }), 'Not logged-in to Disqus')), C.a.createElement('div', {
  24631.               className: 'email_preview'
  24632.             }, C.a.createElement('img', {
  24633.               className: 'email_preview__wide',
  24634.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/'.concat(this.state.previewState === lv ? 'logged_in_wide.png' : 'logged_out_wide.png')
  24635.             }), C.a.createElement('img', {
  24636.               className: 'email_preview__narrow',
  24637.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/'.concat(this.state.previewState === lv ? 'logged_in_narrow.png' : 'logged_out_narrow.png')
  24638.             }), this.state.signupComplete ? C.a.createElement(Wb.a, {
  24639.               forum: this.props.forum,
  24640.               isVerified: this.state.previewState === lv,
  24641.               onDismiss: this.handleDismiss
  24642.             }) : C.a.createElement(Yb.a, {
  24643.               forum: this.props.forum,
  24644.               isLoading: !1,
  24645.               isLoggedIn: this.state.previewState === lv,
  24646.               onSubscribe: this.handleSubscribe,
  24647.               allowEmpty: !0
  24648.             }), C.a.createElement('img', {
  24649.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/below.png'
  24650.             })))
  24651.           }
  24652.         }
  24653.       ]),
  24654.       o
  24655.     }();
  24656.     ov(uv, 'displayName', 'EmailSubscriptionPreview'),
  24657.     ov(uv, 'propTypes', {
  24658.       forum: $c.isRequired
  24659.     });
  24660.     function pv(e) {
  24661.       e.preventDefault()
  24662.     }
  24663.     var dv = 1,
  24664.     mv = 2,
  24665.     fv = 3,
  24666.     Bu = function () {
  24667.       ev(n, A);
  24668.       var t = nv(n);
  24669.       function n(e) {
  24670.         var a;
  24671.         $b(this, n),
  24672.         ov(av(a = t.call(this, e)), 'emitViewEvent', function (e) {
  24673.           var t = e.forumDetails,
  24674.           n = e.pendingExportInfo;
  24675.           if (!a._emittedViewEvent && t) {
  24676.             e = {
  24677.             };
  24678.             if (t.aetBannerEnabled) {
  24679.               if (!n.isFetched) return;
  24680.               e.new_subscribers_to_export = n.pendingExports,
  24681.               e.all_subscribers_to_export = n.totalExports,
  24682.               e.since_last_exported = n.lastExportDate || null
  24683.             }
  24684.             a._emittedViewEvent = a.emitEvent({
  24685.               verb: 'view',
  24686.               extra_data: e
  24687.             })
  24688.           }
  24689.         }),
  24690.         ov(av(a), 'emitEvent', function (e) {
  24691.           e = Pf(e, 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : a.props);
  24692.           return e && a.props.emitTrackingEvent(e),
  24693.           !!e
  24694.         }),
  24695.         ov(av(a), 'getFormStateFromForumDetails', function () {
  24696.           var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : a.props,
  24697.           t = e.forumDetails || {
  24698.           },
  24699.           n = e.selection && e.selection.forum && e.selection.forum.name,
  24700.           e = a.state && a.state.form || {
  24701.           };
  24702.           return {
  24703.             aetBannerEnabled: t.aetBannerEnabled || !1,
  24704.             aetBannerTitle: t.aetBannerTitle || e.aetBannerTitle || 'Like this article?',
  24705.             aetBannerDescription: t.aetBannerDescription || e.aetBannerDescription || (n ? 'Subscribe to '.concat(n, ' to receive daily updates of the latest articles delivered straight to your inbox.') : ''),
  24706.             aetBannerConfirmation: t.aetBannerConfirmation || e.aetBannerConfirmation || (n ? 'Thanks for subscribing to email updates from '.concat(n, '! If you\'d like to unsubscribe, there will be a link in emails you receive from ').concat(n, '.') : '')
  24707.           }
  24708.         }),
  24709.         ov(av(a), 'handleInputChange', function (t) {
  24710.           return function (e) {
  24711.             a.setState({
  24712.               form: Jb(Jb({
  24713.               }, a.state.form), {
  24714.               }, ov({
  24715.               }, t, e.target.value))
  24716.             })
  24717.           }
  24718.         }),
  24719.         ov(av(a), 'hasFieldChanged', function (e) {
  24720.           return a.state.form[e] !== a.state.savedForm[e] && !(null === a.state.savedForm[e] && '' === a.state.form[e])
  24721.         }),
  24722.         ov(av(a), 'getFormExtraData', function () {
  24723.           return {
  24724.             email_subscription_prompt: {
  24725.               title: a.state.form.aetBannerTitle,
  24726.               description_copy: a.state.form.aetBannerDescription,
  24727.               confirmation_copy: a.state.form.aetBannerConfirmation
  24728.             }
  24729.           }
  24730.         }),
  24731.         ov(av(a), 'handleOpenConfirmModal', function () {
  24732.           a.setState({
  24733.             modal: dv
  24734.           }),
  24735.           a.emitEvent({
  24736.             verb: 'view',
  24737.             adjective: 'enable_warning',
  24738.             object_type: 'note',
  24739.             object_id: 'enable_warning_modal',
  24740.             area: 'modal',
  24741.             extra_data: Jb(Jb({
  24742.             }, a.getFormExtraData()), {
  24743.             }, {
  24744.               aet_banner_enabled: {
  24745.                 before: !1,
  24746.                 after: !0
  24747.               }
  24748.             })
  24749.           })
  24750.         }),
  24751.         ov(av(a), 'handleCancelModal', function (e) {
  24752.           a.setState({
  24753.             modal: null
  24754.           }),
  24755.           a.emitEvent(Jb({
  24756.             verb: 'click',
  24757.             object_type: 'button',
  24758.             object_id: 'go_back',
  24759.             area: 'modal',
  24760.             extra_data: Jb(Jb({
  24761.             }, a.getFormExtraData()), {
  24762.             }, {
  24763.               aet_banner_enabled: {
  24764.                 before: !1,
  24765.                 after: !0
  24766.               }
  24767.             })
  24768.           }, e))
  24769.         }),
  24770.         ov(av(a), 'handleEnable', function () {
  24771.           a.setState({
  24772.             modal: null
  24773.           }),
  24774.           a.save({
  24775.             aetBannerEnabled: !0
  24776.           }),
  24777.           a.emitEvent({
  24778.             verb: 'update',
  24779.             object_type: 'forum',
  24780.             area: 'modal',
  24781.             object_id: a.props.selection.forum.shortname,
  24782.             extra_data: Jb(Jb({
  24783.             }, a.getFormExtraData()), {
  24784.             }, {
  24785.               aet_banner_enabled: {
  24786.                 before: !1,
  24787.                 after: !0
  24788.               }
  24789.             })
  24790.           })
  24791.         }),
  24792.         ov(av(a), 'handleSave', function () {
  24793.           a.save()
  24794.         }),
  24795.         ov(av(a), 'save', function (n) {
  24796.           var t = Jb(Jb({
  24797.           }, a.state.form), n);
  24798.           a.props.forumUpdateOnSave(Jb(Jb({
  24799.           }, t), {
  24800.           }, {
  24801.             aetBannerEnabled: t.aetBannerEnabled ? '1' : '0'
  24802.           })).then(function () {
  24803.             t.aetBannerEnabled === a.state.savedForm.aetBannerEnabled && [
  24804.               'aetBannerConfirmation',
  24805.               'aetBannerDescription',
  24806.               'aetBannerTitle'
  24807.             ].some(function (e) {
  24808.               return t[e] !== a.state.savedForm[e]
  24809.             }) && a.props.emitTrackingEvent({
  24810.               verb: 'update',
  24811.               object_type: 'area',
  24812.               object_id: 'email_subscription_copy',
  24813.               area: 'email_subscription_copy',
  24814.               extra_data: JSON.stringify(a.getFormExtraData())
  24815.             }),
  24816.             a.setState(function (e) {
  24817.               var t = e.form,
  24818.               e = e.savedForm;
  24819.               return {
  24820.                 form: Jb(Jb({
  24821.                 }, t), n),
  24822.                 savedForm: Jb(Jb(Jb({
  24823.                 }, e), t), n)
  24824.               }
  24825.             })
  24826.           })
  24827.         }),
  24828.         ov(av(a), 'handleDisable', function () {
  24829.           a.save({
  24830.             aetBannerEnabled: !1
  24831.           }),
  24832.           a.emitEvent({
  24833.             verb: 'update',
  24834.             object_type: 'forum',
  24835.             area: 'modal',
  24836.             object_id: a.props.selection.forum.shortname,
  24837.             extra_data: Jb(Jb({
  24838.             }, a.getFormExtraData()), {
  24839.             }, {
  24840.               aet_banner_enabled: {
  24841.                 before: !0,
  24842.                 after: !1
  24843.               }
  24844.             })
  24845.           })
  24846.         }),
  24847.         ov(av(a), 'handleTogglePreview', function () {
  24848.           a.setState(function (e) {
  24849.             return {
  24850.               isPreviewOpen: !e.isPreviewOpen
  24851.             }
  24852.           }, function () {
  24853.             a.state.isPreviewOpen && a.props.emitTrackingEvent({
  24854.               verb: 'open',
  24855.               object_type: 'area',
  24856.               object_id: 'preview',
  24857.               area: 'preview',
  24858.               extra_data: JSON.stringify(a.getFormExtraData())
  24859.             })
  24860.           })
  24861.         }),
  24862.         ov(av(a), 'handleExportClick', function () {
  24863.           a.setState({
  24864.             modal: fv
  24865.           }),
  24866.           a.emitEvent({
  24867.             verb: 'click',
  24868.             object_type: 'area',
  24869.             object_id: 'export_new_subscribers',
  24870.             area: 'export_new_subscribers',
  24871.             extra_data: {
  24872.               new_subscribers_to_export: a.props.pendingExportInfo.pendingExports,
  24873.               since_last_exported: a.props.pendingExportInfo.lastExportDate
  24874.             }
  24875.           }),
  24876.           a.emitExportWarningModalEvent()
  24877.         }),
  24878.         ov(av(a), 'handleExportAllClick', function (e) {
  24879.           e.preventDefault(),
  24880.           a.setState({
  24881.             modal: mv
  24882.           }),
  24883.           a.emitEvent({
  24884.             verb: 'click',
  24885.             object_type: 'area',
  24886.             object_id: 'export_all_subscribers',
  24887.             area: 'export_all_subscribers',
  24888.             extra_data: {
  24889.               all_subscribers_to_export: a.props.pendingExportInfo.totalExports,
  24890.               since_last_exported: a.props.pendingExportInfo.lastExportDate
  24891.             }
  24892.           }),
  24893.           a.emitExportWarningModalEvent()
  24894.         }),
  24895.         ov(av(a), 'emitExportWarningModalEvent', function () {
  24896.           a.emitEvent({
  24897.             adverb: 'auto',
  24898.             verb: 'view',
  24899.             adjective: 'export_warning',
  24900.             object_type: 'note',
  24901.             object_id: 'export_warning_modal',
  24902.             area: 'modal',
  24903.             extra_data: {
  24904.               new_subscribers_to_export: a.props.pendingExportInfo.pendingExports,
  24905.               all_subscribers_to_export: a.props.pendingExportInfo.totalExports,
  24906.               since_last_exported: a.props.pendingExportInfo.lastExportDate
  24907.             }
  24908.           })
  24909.         });
  24910.         e = a.getFormStateFromForumDetails(a.props);
  24911.         return a.state = {
  24912.           form: e,
  24913.           savedForm: e,
  24914.           modal: null,
  24915.           isModalVisible: !1,
  24916.           isPreviewOpen: !1
  24917.         },
  24918.         a
  24919.       }
  24920.       return Xb(n, [
  24921.         {
  24922.           key: 'componentWillMount',
  24923.           value: function () {
  24924.             this._emittedViewEvent = !1
  24925.           }
  24926.         },
  24927.         {
  24928.           key: 'componentWillReceiveProps',
  24929.           value: function (e) {
  24930.             var n;
  24931.             !this.props.forumDetails && e.forumDetails && (n = this.getFormStateFromForumDetails(e), this.setState(function (e) {
  24932.               var t = e.savedForm;
  24933.               return {
  24934.                 form: Jb(Jb({
  24935.                 }, e.form), n),
  24936.                 savedForm: Jb(Jb({
  24937.                 }, t), n)
  24938.               }
  24939.             })),
  24940.             this.emitViewEvent(e)
  24941.           }
  24942.         },
  24943.         {
  24944.           key: 'componentDidMount',
  24945.           value: function () {
  24946.             this.props.fetchPendingExportInfo(this.props.selection),
  24947.             this.props.fetchSubscription(),
  24948.             this.props.fetchForumDetails()
  24949.           }
  24950.         },
  24951.         {
  24952.           key: 'render',
  24953.           value: function () {
  24954.             var t = this;
  24955.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  24956.               isPolls: !1,
  24957.               organization: this.props.selection.organization
  24958.             });
  24959.             if (!this.props.pendingExportInfo.isFetched || this.props.forumDetailsIsFetching) return C.a.createElement(Qi, null);
  24960.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  24961.               className: 'content__wrap spacing-bottom-double'
  24962.             }, C.a.createElement(Ki, {
  24963.               message: this.props.forumDetailsError,
  24964.               alertType: 'error'
  24965.             }));
  24966.             var e = this.props.selection.organization && this.props.selection.organization.id,
  24967.             e = e && this.props.saasFeatures[e];
  24968.             if (!e || !e.isFetched) return C.a.createElement(Qi, null);
  24969.             e = !e.audienceEmailTransfer;
  24970.             return C.a.createElement('div', null, this.state.modal === dv ? C.a.createElement(iv, {
  24971.               onAgree: this.handleEnable,
  24972.               onCancel: function () {
  24973.                 t.handleCancelModal()
  24974.               },
  24975.               onClose: function () {
  24976.                 t.setState({
  24977.                   modal: null
  24978.                 })
  24979.               }
  24980.             }) : null, this.state.modal === mv || this.state.modal === fv ? C.a.createElement(sv, {
  24981.               all: this.state.modal === mv,
  24982.               forum: this.props.selection.forum,
  24983.               onCancel: function () {
  24984.                 return t.handleCancelModal({
  24985.                   adjective: 'export_warning'
  24986.                 })
  24987.               },
  24988.               onClose: function () {
  24989.                 t.setState({
  24990.                   modal: null
  24991.                 })
  24992.               },
  24993.               pendingExportInfo: this.props.pendingExportInfo,
  24994.               onExport: function () {
  24995.                 var e = t.state.modal === mv;
  24996.                 t.emitEvent({
  24997.                   verb: 'export',
  24998.                   adjective: 'subscriber_email',
  24999.                   object_type: 'file',
  25000.                   object_id: 'csv',
  25001.                   extra_data: {
  25002.                     export_type: e ? 'all' : 'new',
  25003.                     subscribers_to_export: t.props.pendingExportInfo[e ? 'totalExports' : 'pendingExports'],
  25004.                     since_last_exported: t.props.pendingExportInfo.lastExportDate
  25005.                   }
  25006.                 })
  25007.               }
  25008.             }) : null, e ? C.a.createElement(ch, {
  25009.               headline: 'Looking to collect newsletter signups?',
  25010.               promotionalPlan: 'Which Plan is Right For You',
  25011.               planDetailsUrl: 'https://disqus.com/pricing/',
  25012.               upsellMessageLeft: 'Unlock powerful new features with a Disqus Pro subscription. Learn more about Disqus upgrades at',
  25013.               upsellMessageRight: '.',
  25014.               selection: this.props.selection,
  25015.               emitTrackingEvent: this.props.emitTrackingEvent
  25016.             }) : null, this.state.form.aetBannerEnabled ? C.a.createElement('div', {
  25017.               className: 'content__wrap spacing-bottom-double'
  25018.             }, C.a.createElement('header', {
  25019.               className: 'settings__header settings-inline-section align align--middle'
  25020.             }, C.a.createElement('div', {
  25021.               className: 'align__item--flex-1 text-gray spacing-right-large'
  25022.             }, C.a.createElement('h2', {
  25023.               className: 'text-gray-darker text-larger  spacing-bottom-small'
  25024.             }, 'Export email list to .CSV'), C.a.createElement('p', {
  25025.               className: 'text-gray'
  25026.             }, 'Import this .CSV into the system you use to send emails. If a subscriber unsubscribes from your email, it is not reflected in this list. You can also', ' ', C.a.createElement('a', {
  25027.               href: '#',
  25028.               onClick: this.handleExportAllClick
  25029.             }, 'Export all subscribers'), ' ', 'who have ever subscribed via Disqus.')), C.a.createElement('div', {
  25030.               className: 'align__item--no-shrink spacing-right-large'
  25031.             }, C.a.createElement('button', {
  25032.               className: 'button '.concat(this.props.pendingExportInfo.pendingExports ? 'button-fill--brand' : 'button-disabled'),
  25033.               onClick: this.props.pendingExportInfo.pendingExports ? this.handleExportClick : pv,
  25034.               disabled: !this.props.pendingExportInfo.pendingExports
  25035.             }, this.props.pendingExportInfo.pendingExports ? C.a.createElement('span', null, 'Export ', this.props.pendingExportInfo.pendingExports, ' new ', 1 === this.props.pendingExportInfo.pendingExports ? 'subscriber' : 'subscribers') : C.a.createElement('span', null, 'No new subscribers to export')), this.props.pendingExportInfo.lastExportDate ? C.a.createElement('p', {
  25036.               className: 'text-gray text-small spacing-top-small'
  25037.             }, 'Since last exported ', ct() (this.props.pendingExportInfo.lastExportDate).format('MM/DD/YY')) : null))) : null, C.a.createElement('div', {
  25038.               className: 'content__wrap spacing-bottom-double'
  25039.             }, C.a.createElement('header', {
  25040.               className: 'settings__header'
  25041.             }, C.a.createElement('h2', {
  25042.               className: 'text-larger text-gray-darker spacing-bottom-small'
  25043.             }, 'Email subscriptions'), C.a.createElement('p', {
  25044.               className: 'text-gray'
  25045.             }, 'Convert readers into subscribers to your email list by showing an opt-in prompt in the comments section. Export new subscriber emails to CSV and import them into your email system.', ' ', C.a.createElement('a', {
  25046.               href: Pn.emailSubscriptionPrompt,
  25047.               target: '_blank',
  25048.               rel: 'noopener noreferrer'
  25049.             }, 'Learn more'))), C.a.createElement('section', {
  25050.               className: 'settings__content'
  25051.             }, C.a.createElement($h, {
  25052.               name: 'aetBannerTitle',
  25053.               value: this.state.form.aetBannerTitle,
  25054.               label: 'Title',
  25055.               onChange: this.handleInputChange('aetBannerTitle'),
  25056.               idNamespace: this.constructor.displayName,
  25057.               readOnly: this.props.forumUpdateIsSaving,
  25058.               disabled: e,
  25059.               shouldHighlight: this.hasFieldChanged('aetBannerTitle'),
  25060.               maxLength: '75',
  25061.               showLimit: !0
  25062.             }), C.a.createElement($h, {
  25063.               name: 'aetBannerDescription',
  25064.               value: this.state.form.aetBannerDescription,
  25065.               label: 'Short description',
  25066.               onChange: this.handleInputChange('aetBannerDescription'),
  25067.               idNamespace: this.constructor.displayName,
  25068.               readOnly: this.props.forumUpdateIsSaving,
  25069.               disabled: e,
  25070.               shouldHighlight: this.hasFieldChanged('aetBannerDescription'),
  25071.               maxLength: '360',
  25072.               showLimit: !0,
  25073.               useTextarea: !0,
  25074.               tooltip: C.a.createElement(C.a.Fragment, null, 'Describe the content readers are subscribing to, the frequency of the emails, and options for unsubscribing. This copy must adhere to email laws in your country.', ' ', C.a.createElement('a', {
  25075.                 href: Pn.emailSubscriptionPrompt,
  25076.                 target: '_blank',
  25077.                 rel: 'noopener noreferrer'
  25078.               }, 'Learn more'))
  25079.             }), C.a.createElement($h, {
  25080.               name: 'aetBannerConfirmation',
  25081.               value: this.state.form.aetBannerConfirmation,
  25082.               label: 'Confirmation message',
  25083.               onChange: this.handleInputChange('aetBannerConfirmation'),
  25084.               idNamespace: this.constructor.displayName,
  25085.               readOnly: this.props.forumUpdateIsSaving,
  25086.               disabled: e,
  25087.               shouldHighlight: this.hasFieldChanged('aetBannerConfirmation'),
  25088.               maxLength: '360',
  25089.               showLimit: !0,
  25090.               useTextarea: !0
  25091.             }), C.a.createElement('div', {
  25092.               className: 'spacing-top'
  25093.             }, C.a.createElement(Bh, {
  25094.               buttonLabel: this.state.form.aetBannerEnabled ? 'Save changes' : 'Enable email subscriptions',
  25095.               disabled: e,
  25096.               isSaving: this.props.forumUpdateIsSaving,
  25097.               isSaved: this.props.forumUpdateIsSaved,
  25098.               onClick: this.state.form.aetBannerEnabled ? this.handleSave : this.handleOpenConfirmModal
  25099.             })), C.a.createElement('div', {
  25100.               className: 'fieldset'
  25101.             }, C.a.createElement('div', {
  25102.               className: 'fieldset__label'
  25103.             }), C.a.createElement('div', {
  25104.               className: 'fieldset__block'
  25105.             }, C.a.createElement('button', {
  25106.               className: 'button button-fill button-padding-wider button-medium',
  25107.               onClick: this.handleTogglePreview,
  25108.               disabled: e
  25109.             }, this.state.isPreviewOpen ? 'Hide Preview  ▼' : 'Show Preview  ▶')))), this.state.isPreviewOpen ? C.a.createElement('section', {
  25110.               className: 'settings__content'
  25111.             }, C.a.createElement(uv, {
  25112.               forum: Jb(Jb({
  25113.               }, this.props.forumDetails), this.state.form)
  25114.             })) : null), this.state.form.aetBannerEnabled ? C.a.createElement('div', {
  25115.               className: 'content__wrap'
  25116.             }, C.a.createElement('header', {
  25117.               className: 'settings__header settings-inline-section align align--between align--middle'
  25118.             }, C.a.createElement('div', {
  25119.               className: 'spacing-right'
  25120.             }, C.a.createElement('h2', {
  25121.               className: 'text-larger text-gray-darker spacing-bottom-small'
  25122.             }, 'Turn email subscriptions off'), C.a.createElement('p', {
  25123.               className: 'text-gray'
  25124.             }, 'The email subscription prompt will be removed from all new and existing Disqus threads. You will not be able to export your email subscriber list after this feature has been turned off.')), C.a.createElement('div', {
  25125.               className: 'align__item--no-shrink'
  25126.             }, C.a.createElement('button', {
  25127.               className: 'button button-fill--red button-medium',
  25128.               onClick: this.handleDisable
  25129.             }, 'Turn email subscriptions off')))) : null)
  25130.           }
  25131.         }
  25132.       ]),
  25133.       n
  25134.     }();
  25135.     ov(Bu, 'displayName', 'ForumSettingsEmailSubscriptions'),
  25136.     ov(Bu, 'propTypes', {
  25137.       history: b.a.object.isRequired,
  25138.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  25139.       selection: ht.isRequired,
  25140.       forumDetails: $c,
  25141.       forumDetailsError: b.a.string,
  25142.       forumDetailsIsFetching: b.a.bool,
  25143.       fetchForumDetails: b.a.func.isRequired,
  25144.       forumUpdateError: b.a.string,
  25145.       forumUpdateIsSaving: b.a.bool,
  25146.       forumUpdateIsSaved: b.a.bool,
  25147.       forumUpdateOnSave: b.a.func.isRequired,
  25148.       forumUpdateOnDismissError: b.a.func.isRequired,
  25149.       fetchPendingExportInfo: b.a.func.isRequired,
  25150.       fetchSubscription: b.a.func.isRequired,
  25151.       orgSubscriptionIsFetching: b.a.bool.isRequired,
  25152.       orgCurrentPlan: b.a.shape({
  25153.         id: b.a.string.isRequired
  25154.       }),
  25155.       pendingExportInfo: Ru.isRequired,
  25156.       emitTrackingEvent: b.a.func.isRequired
  25157.     });
  25158.     function hv(n) {
  25159.       return function (e) {
  25160.         var t = n && je.a.contains(gv, n.type);
  25161.         return e({
  25162.           type: ee.validateImageFile,
  25163.           isValidImageFile: t
  25164.         }),
  25165.         t
  25166.       }
  25167.     }
  25168.     var Ju = Object(u.connect) (function (e) {
  25169.       var t = e.forumDetails,
  25170.       n = e.subscription;
  25171.       return {
  25172.         pendingExportInfo: e.aet.pendingExportInfo,
  25173.         forumDetails: t.forumDetails,
  25174.         forumDetailsError: t.forumDetailsError,
  25175.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  25176.         saasFeatures: e.saasFeatures,
  25177.         orgCurrentPlan: n.orgCurrentPlan,
  25178.         orgSubscriptionIsFetching: n.orgSubscriptionIsFetching,
  25179.         selection: e.selection
  25180.       }
  25181.     }, {
  25182.       fetchPendingExportInfo: function (e) {
  25183.         return function (t) {
  25184.           return t({
  25185.             type: L.fetching
  25186.           }),
  25187.           io.a.call('aet/pendingExportInfo', {
  25188.             data: {
  25189.               forum: e.forum.shortname
  25190.             }
  25191.           }).then(function (e) {
  25192.             t({
  25193.               type: L.onFetch,
  25194.               pendingExportInfo: e.response
  25195.             })
  25196.           }).then(null, function () {
  25197.             t({
  25198.               type: L.onError
  25199.             })
  25200.           })
  25201.         }
  25202.       },
  25203.       fetchForumDetails: ig,
  25204.       fetchSubscription: Hl,
  25205.       emitTrackingEvent: Xo({
  25206.         zone: 'settings',
  25207.         section: 'email_subscriptions'
  25208.       })
  25209.     }) (Ni.a.attachDrivers(Fo() (Bu), [
  25210.       m,
  25211.       bc
  25212.     ])),
  25213.     gv = [
  25214.       'image/jpeg',
  25215.       'image/png',
  25216.       'image/gif',
  25217.       'image/bmp'
  25218.     ],
  25219.     Zu = function () {
  25220.       return function (e, t) {
  25221.         t = t().forumUpdateFavicon.apiCall;
  25222.         t && 'pending' === t.state() && t.abort()
  25223.       }
  25224.     },
  25225.     cp = function (a) {
  25226.       return function (t, e) {
  25227.         hv(a),
  25228.         t({
  25229.           type: ee.isSaving
  25230.         });
  25231.         var n = new window.FormData;
  25232.         n.append('favicon_file', a, a.name),
  25233.         n.append('forum', e().selection.forum.shortname),
  25234.         n.append('api_key', pt.a.keys.api);
  25235.         n = io.a.call('forums/updateFavicon', {
  25236.           data: n,
  25237.           method: 'POST',
  25238.           omitDisqusApiKey: !0,
  25239.           contentType: !1,
  25240.           processData: !1
  25241.         }).done(function (e) {
  25242.           t({
  25243.             type: ee.onSave,
  25244.             data: e
  25245.           })
  25246.         }).fail(function (e) {
  25247.           t({
  25248.             type: ee.onError,
  25249.             error: function (e) {
  25250.               var t;
  25251.               try {
  25252.                 t = JSON.parse(e.responseText).response
  25253.               } catch (e) {
  25254.                 t = 'There was an error uploading this file. Make sure your image is valid and is less than 2MB.'
  25255.               }
  25256.               return t
  25257.             }(e)
  25258.           })
  25259.         });
  25260.         return t({
  25261.           type: ee.setApiCall,
  25262.           apiCall: n
  25263.         }),
  25264.         n
  25265.       }
  25266.     },
  25267.     bp = function () {
  25268.       return function (e) {
  25269.         e({
  25270.           type: ee.dismissError
  25271.         })
  25272.       }
  25273.     };
  25274.     function yv(e) {
  25275.       return (yv = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  25276.         return typeof e
  25277.       }
  25278.        : function (e) {
  25279.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  25280.       }) (e)
  25281.     }
  25282.     function bv(e, t) {
  25283.       for (var n = 0; n < t.length; n++) {
  25284.         var a = t[n];
  25285.         a.enumerable = a.enumerable || !1,
  25286.         a.configurable = !0,
  25287.         'value' in a && (a.writable = !0),
  25288.         Object.defineProperty(e, a.key, a)
  25289.       }
  25290.     }
  25291.     function vv(e, t) {
  25292.       return (vv = Object.setPrototypeOf || function (e, t) {
  25293.         return e.__proto__ = t,
  25294.         e
  25295.       }) (e, t)
  25296.     }
  25297.     function _v(n) {
  25298.       var a = function () {
  25299.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  25300.         if (Reflect.construct.sham) return !1;
  25301.         if ('function' == typeof Proxy) return !0;
  25302.         try {
  25303.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  25304.           ], function () {
  25305.           })),
  25306.           !0
  25307.         } catch (e) {
  25308.           return !1
  25309.         }
  25310.       }();
  25311.       return function () {
  25312.         var e,
  25313.         t = Ov(n);
  25314.         return e = a ? (e = Ov(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  25315.         t = this,
  25316.         !(e = e) || 'object' !== yv(e) && 'function' != typeof e ? Ev(t) : e
  25317.       }
  25318.     }
  25319.     function Ev(e) {
  25320.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  25321.       return e
  25322.     }
  25323.     function Ov(e) {
  25324.       return (Ov = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  25325.         return e.__proto__ || Object.getPrototypeOf(e)
  25326.       }) (e)
  25327.     }
  25328.     function Sv(e, t, n) {
  25329.       return t in e ? Object.defineProperty(e, t, {
  25330.         value: n,
  25331.         enumerable: !0,
  25332.         configurable: !0,
  25333.         writable: !0
  25334.       }) : e[t] = n,
  25335.       e
  25336.     }
  25337.     var wv = [
  25338.       'image/jpeg',
  25339.       'image/png',
  25340.       'image/gif',
  25341.       'image/bmp'
  25342.     ],
  25343.     Pv = 'Please choose a valid image file.  You may choose .jpg/.jpeg, .png, .gif, and .bmp files.',
  25344.     xu = function () {
  25345.       !function (e, t) {
  25346.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  25347.         e.prototype = Object.create(t && t.prototype, {
  25348.           constructor: {
  25349.             value: e,
  25350.             writable: !0,
  25351.             configurable: !0
  25352.           }
  25353.         }),
  25354.         t && vv(e, t)
  25355.       }(o, A);
  25356.       var e,
  25357.       t,
  25358.       n,
  25359.       r = _v(o);
  25360.       function o() {
  25361.         var n;
  25362.         !function (e, t) {
  25363.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  25364.         }(this, o);
  25365.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  25366.         return Sv(Ev(n = r.call.apply(r, [
  25367.           this
  25368.         ].concat(t))), 'state', {
  25369.           error: null,
  25370.           isSaving: !1,
  25371.           newAvatarUrl: null
  25372.         }),
  25373.         Sv(Ev(n), 'validateImageFile', function (e) {
  25374.           e = e && je.a.contains(wv, e.type);
  25375.           return n.setState({
  25376.             error: e ? null : Pv
  25377.           }),
  25378.           e
  25379.         }),
  25380.         Sv(Ev(n), 'handleSaveForumAvatar', function (e) {
  25381.           if (n.validateImageFile(e)) {
  25382.             n.setState({
  25383.               isSaving: !0
  25384.             });
  25385.             var t = new window.FormData;
  25386.             return t.append('avatar_file', e, e.name),
  25387.             t.append('forum', n.props.selection.forum.shortname),
  25388.             t.append('api_key', pt.a.keys.api),
  25389.             n.apiCall = io.a.call('forums/updateDefaultAvatar', {
  25390.               data: t,
  25391.               method: 'POST',
  25392.               omitDisqusApiKey: !0,
  25393.               contentType: !1,
  25394.               processData: !1
  25395.             }).done(n.handleUpdateSuccess).fail(n.handleUpdateError),
  25396.             n.apiCall
  25397.           }
  25398.         }),
  25399.         Sv(Ev(n), 'handleRemoveForumAvatar', function () {
  25400.           return n.setState({
  25401.             isSaving: !0,
  25402.             error: null
  25403.           }),
  25404.           n.apiCall = io.a.call('forums/removeDefaultAvatar', {
  25405.             data: {
  25406.               forum: n.props.selection.forum.shortname
  25407.             },
  25408.             method: 'POST'
  25409.           }).done(n.handleUpdateSuccess).fail(n.handleUpdateError),
  25410.           n.apiCall
  25411.         }),
  25412.         Sv(Ev(n), 'handleDismissError', function () {
  25413.           n.setState({
  25414.             error: null
  25415.           })
  25416.         }),
  25417.         Sv(Ev(n), 'handleUpdateSuccess', function (e) {
  25418.           n.setState({
  25419.             newAvatarUrl: e.response,
  25420.             isSaving: !1
  25421.           })
  25422.         }),
  25423.         Sv(Ev(n), 'handleUpdateError', function (e) {
  25424.           n.setState({
  25425.             error: n.parseErrorResponse(e),
  25426.             isSaving: !1
  25427.           })
  25428.         }),
  25429.         Sv(Ev(n), 'parseErrorResponse', function (e) {
  25430.           var t;
  25431.           try {
  25432.             t = JSON.parse(e.responseText).response
  25433.           } catch (e) {
  25434.             t = 'There was an error uploading this file. Make sure your image is valid and is less than 2MB.'
  25435.           }
  25436.           return t
  25437.         }),
  25438.         Sv(Ev(n), 'getComponentProps', function () {
  25439.           return {
  25440.             forumAvatarError: n.state.error,
  25441.             forumAvatarIsSaving: n.state.isSaving,
  25442.             forumAvatarNewUrl: n.state.newAvatarUrl,
  25443.             forumAvatarOnSave: n.handleSaveForumAvatar,
  25444.             forumAvatarOnRemove: n.handleRemoveForumAvatar,
  25445.             forumAvatarValidateImageFile: n.validateImageFile,
  25446.             forumAvatarOnDismissError: n.handleDismissError
  25447.           }
  25448.         }),
  25449.         n
  25450.       }
  25451.       return e = o,
  25452.       (t = [
  25453.         {
  25454.           key: 'componentWillUnmount',
  25455.           value: function () {
  25456.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  25457.           }
  25458.         }
  25459.       ]) && bv(e.prototype, t),
  25460.       n && bv(e, n),
  25461.       o
  25462.     }();
  25463.     Sv(xu, 'displayName', 'ForumUpdateAvatarDriver'),
  25464.     Sv(xu, 'propTypes', {
  25465.       selection: ht.isRequired
  25466.     });
  25467.     p = Object(ki.createDriver) (xu, function (e) {
  25468.       return {
  25469.         selection: e.selection
  25470.       }
  25471.     });
  25472.     function kv(e) {
  25473.       return (kv = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  25474.         return typeof e
  25475.       }
  25476.        : function (e) {
  25477.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  25478.       }) (e)
  25479.     }
  25480.     function Nv() {
  25481.       return (Nv = Object.assign || function (e) {
  25482.         for (var t = 1; t < arguments.length; t++) {
  25483.           var n,
  25484.           a = arguments[t];
  25485.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  25486.         }
  25487.         return e
  25488.       }).apply(this, arguments)
  25489.     }
  25490.     function Cv(e, t) {
  25491.       for (var n = 0; n < t.length; n++) {
  25492.         var a = t[n];
  25493.         a.enumerable = a.enumerable || !1,
  25494.         a.configurable = !0,
  25495.         'value' in a && (a.writable = !0),
  25496.         Object.defineProperty(e, a.key, a)
  25497.       }
  25498.     }
  25499.     function Rv(e, t) {
  25500.       return (Rv = Object.setPrototypeOf || function (e, t) {
  25501.         return e.__proto__ = t,
  25502.         e
  25503.       }) (e, t)
  25504.     }
  25505.     function xv(n) {
  25506.       var a = function () {
  25507.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  25508.         if (Reflect.construct.sham) return !1;
  25509.         if ('function' == typeof Proxy) return !0;
  25510.         try {
  25511.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  25512.           ], function () {
  25513.           })),
  25514.           !0
  25515.         } catch (e) {
  25516.           return !1
  25517.         }
  25518.       }();
  25519.       return function () {
  25520.         var e,
  25521.         t = Dv(n);
  25522.         return e = a ? (e = Dv(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  25523.         t = this,
  25524.         !(e = e) || 'object' !== kv(e) && 'function' != typeof e ? Av(t) : e
  25525.       }
  25526.     }
  25527.     function Av(e) {
  25528.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  25529.       return e
  25530.     }
  25531.     function Dv(e) {
  25532.       return (Dv = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  25533.         return e.__proto__ || Object.getPrototypeOf(e)
  25534.       }) (e)
  25535.     }
  25536.     function jv(e, t, n) {
  25537.       return t in e ? Object.defineProperty(e, t, {
  25538.         value: n,
  25539.         enumerable: !0,
  25540.         configurable: !0,
  25541.         writable: !0
  25542.       }) : e[t] = n,
  25543.       e
  25544.     }
  25545.     h = function () {
  25546.       !function (e, t) {
  25547.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  25548.         e.prototype = Object.create(t && t.prototype, {
  25549.           constructor: {
  25550.             value: e,
  25551.             writable: !0,
  25552.             configurable: !0
  25553.           }
  25554.         }),
  25555.         t && Rv(e, t)
  25556.       }(o, A);
  25557.       var e,
  25558.       t,
  25559.       n,
  25560.       a = xv(o);
  25561.       function o() {
  25562.         var r;
  25563.         !function (e, t) {
  25564.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  25565.         }(this, o);
  25566.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  25567.         return jv(Av(r = a.call.apply(a, [
  25568.           this
  25569.         ].concat(t))), 'loadFonts', function (e) {
  25570.           var t,
  25571.           n,
  25572.           a,
  25573.           r;
  25574.           'undefined' != typeof window && ((n = (t = window.document).createElement('link')).id = 'custom_google_fonts', n.rel = 'stylesheet', n.type = 'text/css', a = 'https://fonts.googleapis.com/css2', r = 0, e.forEach(function (e) {
  25575.             e.isDefault || 'Source+Sans+Pro' === e.name || (a += ''.concat(r < 1 ? '?' : '&', 'family=').concat(e.name), r += 1)
  25576.           }), n.href = a += '&subset=latin&display=swap', (e = t.getElementById(n.id)) && e.parentNode.removeChild(e), t.head.appendChild(n))
  25577.         }),
  25578.         jv(Av(r), 'getFontOptions', function () {
  25579.           var e = r.props.fontList;
  25580.           if (e) return e.map(function (e) {
  25581.             var t = e.name.replace(/\+/g, ' '),
  25582.             n = {
  25583.               fontWeight: '400'
  25584.             };
  25585.             e.isDefault || 'Source+Sans+Pro' === e.name || (n.fontFamily = ''.concat(t, ', ').concat(e.category));
  25586.             var a = r.props.defaultsOnly;
  25587.             return {
  25588.               key: e.name,
  25589.               label: t,
  25590.               value: e.name,
  25591.               category: e.category,
  25592.               isDefault: e.isDefault,
  25593.               isDisabled: (a = !a && 'auto' !== r.props.selectedCategory ? r.props.selectedCategory !== e.category : a) && !e.isDefault,
  25594.               style: n
  25595.             }
  25596.           }).sort(function (e, t) {
  25597.             return e.isDisabled === t.isDisabled ? t.key < e.key ? 1 : - 1 : e.isDisabled && !t.isDisabled ? 1 : - 1
  25598.           })
  25599.         }),
  25600.         r
  25601.       }
  25602.       return e = o,
  25603.       (t = [
  25604.         {
  25605.           key: 'componentDidMount',
  25606.           value: function () {
  25607.             this.props.fontList && this.props.fontList.length && this.loadFonts(this.props.fontList)
  25608.           }
  25609.         },
  25610.         {
  25611.           key: 'componentDidUpdate',
  25612.           value: function (e) {
  25613.             this.props.fontList !== e.fontList && this.loadFonts(this.props.fontList)
  25614.           }
  25615.         },
  25616.         {
  25617.           key: 'render',
  25618.           value: function () {
  25619.             return C.a.createElement(Mf, Nv({
  25620.               name: 'Font-family',
  25621.               value: this.props.value,
  25622.               options: this.getFontOptions()
  25623.             }, this.props))
  25624.           }
  25625.         }
  25626.       ]) && Cv(e.prototype, t),
  25627.       n && Cv(e, n),
  25628.       o
  25629.     }();
  25630.     h.propTypes = {
  25631.       fontList: b.a.arrayOf(b.a.shape({
  25632.         name: b.a.string,
  25633.         category: b.a.oneOf(['auto',
  25634.         'serif',
  25635.         'sans-serif']),
  25636.         isDefault: b.a.bool
  25637.       })),
  25638.       value: b.a.string,
  25639.       label: b.a.node,
  25640.       selectedCategory: b.a.string,
  25641.       secondaryLabel: b.a.node,
  25642.       defaultsOnly: b.a.bool,
  25643.       disabled: b.a.bool,
  25644.       loading: b.a.bool,
  25645.       shouldHighlight: b.a.bool,
  25646.       onChange: b.a.func.isRequired,
  25647.       idNamespace: b.a.string,
  25648.       tooltip: b.a.node,
  25649.       width: b.a.number,
  25650.       className: b.a.string,
  25651.       children: b.a.node,
  25652.       readOnly: b.a.bool
  25653.     };
  25654.     var Tv = h;
  25655.     function Iv() {
  25656.       return (Iv = Object.assign || function (e) {
  25657.         for (var t = 1; t < arguments.length; t++) {
  25658.           var n,
  25659.           a = arguments[t];
  25660.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  25661.         }
  25662.         return e
  25663.       }).apply(this, arguments)
  25664.     }
  25665.     y = function (a) {
  25666.       var e = ''.concat(a.idNamespace || '', '_').concat(a.name),
  25667.       r = null === a.value ? '' : a.value,
  25668.       o = null === a.additionalClass ? '' : a.additionalClass,
  25669.       i = {
  25670.         width: a.width,
  25671.         height: a.height
  25672.       },
  25673.       s = {
  25674.         minWidth: a.width,
  25675.         minHeight: a.height
  25676.       };
  25677.       return C.a.createElement(kf, Iv({
  25678.         label: a.label,
  25679.         labelId: e,
  25680.         tooltip: a.tooltip,
  25681.         fieldsetAdditionalClass: a.className
  25682.       }, a), C.a.createElement('div', {
  25683.         id: e,
  25684.         className: 'input--image-select',
  25685.         value: r
  25686.       }, a.options.map(function (e, t) {
  25687.         var n = r === t ? 'active' : '';
  25688.         return C.a.createElement('div', {
  25689.           key: e.key,
  25690.           index: e.key,
  25691.           value: e.value,
  25692.           className: 'input--image-item '.concat(o, ' ').concat(n),
  25693.           onClick: function (e) {
  25694.             return a.onChange(e)
  25695.           },
  25696.           style: i
  25697.         }, C.a.createElement('img', {
  25698.           src: e.image,
  25699.           style: s,
  25700.           alt: 'image '.concat(t)
  25701.         }))
  25702.       }), a.children ? C.a.createElement('div', {
  25703.         className: 'input--image-item '.concat(o),
  25704.         style: i
  25705.       }, a.children) : null), a.error ? C.a.createElement('span', {
  25706.         className: 'text-medium text-error text-semibold spacing-narrow'
  25707.       }, a.error) : null)
  25708.     };
  25709.     y.propTypes = {
  25710.       name: b.a.string.isRequired,
  25711.       options: b.a.arrayOf(b.a.shape({
  25712.         key: b.a.oneOfType([b.a.string,
  25713.         b.a.number]).isRequired,
  25714.         value: b.a.any.isRequired,
  25715.         image: b.a.string.isRequired
  25716.       }).isRequired).isRequired,
  25717.       className: b.a.string,
  25718.       additionalClass: b.a.string,
  25719.       defaultOptionName: b.a.string,
  25720.       defaultOptionIsDisabled: b.a.bool,
  25721.       value: b.a.number.isRequired,
  25722.       label: b.a.string.isRequired,
  25723.       onChange: b.a.func.isRequired,
  25724.       idNamespace: b.a.string.isRequired,
  25725.       tooltip: b.a.node,
  25726.       width: b.a.string,
  25727.       height: b.a.string,
  25728.       error: b.a.string,
  25729.       children: b.a.node
  25730.     };
  25731.     var qv = y;
  25732.     function Fv(e) {
  25733.       return (Fv = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  25734.         return typeof e
  25735.       }
  25736.        : function (e) {
  25737.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  25738.       }) (e)
  25739.     }
  25740.     function Lv(t, e) {
  25741.       var n,
  25742.       a = Object.keys(t);
  25743.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  25744.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  25745.       })), a.push.apply(a, n)),
  25746.       a
  25747.     }
  25748.     function Uv(t) {
  25749.       for (var e = 1; e < arguments.length; e++) {
  25750.         var n = null != arguments[e] ? arguments[e] : {
  25751.         };
  25752.         e % 2 ? Lv(Object(n), !0).forEach(function (e) {
  25753.           Vv(t, e, n[e])
  25754.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Lv(Object(n)).forEach(function (e) {
  25755.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  25756.         })
  25757.       }
  25758.       return t
  25759.     }
  25760.     function Mv(e, t) {
  25761.       for (var n = 0; n < t.length; n++) {
  25762.         var a = t[n];
  25763.         a.enumerable = a.enumerable || !1,
  25764.         a.configurable = !0,
  25765.         'value' in a && (a.writable = !0),
  25766.         Object.defineProperty(e, a.key, a)
  25767.       }
  25768.     }
  25769.     function Bv(e, t) {
  25770.       return (Bv = Object.setPrototypeOf || function (e, t) {
  25771.         return e.__proto__ = t,
  25772.         e
  25773.       }) (e, t)
  25774.     }
  25775.     function zv(n) {
  25776.       var a = function () {
  25777.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  25778.         if (Reflect.construct.sham) return !1;
  25779.         if ('function' == typeof Proxy) return !0;
  25780.         try {
  25781.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  25782.           ], function () {
  25783.           })),
  25784.           !0
  25785.         } catch (e) {
  25786.           return !1
  25787.         }
  25788.       }();
  25789.       return function () {
  25790.         var e,
  25791.         t = Gv(n);
  25792.         return e = a ? (e = Gv(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  25793.         t = this,
  25794.         !(e = e) || 'object' !== Fv(e) && 'function' != typeof e ? Hv(t) : e
  25795.       }
  25796.     }
  25797.     function Hv(e) {
  25798.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  25799.       return e
  25800.     }
  25801.     function Gv(e) {
  25802.       return (Gv = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  25803.         return e.__proto__ || Object.getPrototypeOf(e)
  25804.       }) (e)
  25805.     }
  25806.     function Vv(e, t, n) {
  25807.       return t in e ? Object.defineProperty(e, t, {
  25808.         value: n,
  25809.         enumerable: !0,
  25810.         configurable: !0,
  25811.         writable: !0
  25812.       }) : e[t] = n,
  25813.       e
  25814.     }
  25815.     lt = function () {
  25816.       !function (e, t) {
  25817.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  25818.         e.prototype = Object.create(t && t.prototype, {
  25819.           constructor: {
  25820.             value: e,
  25821.             writable: !0,
  25822.             configurable: !0
  25823.           }
  25824.         }),
  25825.         t && Bv(e, t)
  25826.       }(r, A);
  25827.       var e,
  25828.       t,
  25829.       n,
  25830.       a = zv(r);
  25831.       function r() {
  25832.         var o;
  25833.         !function (e, t) {
  25834.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  25835.         }(this, r);
  25836.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  25837.         return Vv(Hv(o = a.call.apply(a, [
  25838.           this
  25839.         ].concat(t))), 'state', Uv(Uv({
  25840.         }, r.getEditableFieldsFromForum(o.props.forumDetails)), {
  25841.         }, {
  25842.           selectedAvatarIndex: 0,
  25843.           avatarOptions: [
  25844.             of
  25845.           ],
  25846.           hasPendingAvatarChange: !1,
  25847.           selectedFaviconIndex: 0,
  25848.           faviconOptions: [
  25849.           ],
  25850.           hasPendingFaviconChange: !1,
  25851.           commentPolicyPreviewExpanded: !0,
  25852.           fontOptionList: r.getFontOptionsList(),
  25853.           savedFields: Uv(Uv({
  25854.           }, r.getEditableFieldsFromForum(o.props.forumDetails)), {
  25855.           }, {
  25856.             hasPendingAvatarChange: !1,
  25857.             hasPendingFaviconChange: !1
  25858.           })
  25859.         })),
  25860.         Vv(Hv(o), 'avatarFileInput', C.a.createRef()),
  25861.         Vv(Hv(o), 'faviconFileInput', C.a.createRef()),
  25862.         Vv(Hv(o), 'confirmNavigationIfUnsaved', function () {
  25863.           if (o.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  25864.         }),
  25865.         Vv(Hv(o), 'toggleCommentPolicyPreviewExpanded', function (e) {
  25866.           e.preventDefault(),
  25867.           o.setState(function (e) {
  25868.             return {
  25869.               commentPolicyPreviewExpanded: !e.commentPolicyPreviewExpanded
  25870.             }
  25871.           })
  25872.         }),
  25873.         Vv(Hv(o), 'getUploadedCustomAvatarFile', function () {
  25874.           var e = o.avatarFileInput.current && o.avatarFileInput.current.files;
  25875.           return e && e[0]
  25876.         }),
  25877.         Vv(Hv(o), 'getUploadedFaviconFile', function () {
  25878.           var e = o.faviconFileInput.current && o.faviconFileInput.current.files;
  25879.           return e && e[0]
  25880.         }),
  25881.         Vv(Hv(o), 'getAvatarOptions', function () {
  25882.           var e = o.props.forumDetails,
  25883.           n = o.state.avatarOptions;
  25884.           return o.state.hasCustomAvatar && 1 === n.length && (n.unshift(o.lastValidAvatar || o.props.forumAvatarNewUrl || e && e.avatar && e.avatar.large.permalink), o.setState({
  25885.             avatarOptions: n
  25886.           })),
  25887.           n.map(function (e, t) {
  25888.             return {
  25889.               key: t,
  25890.               value: {
  25891.                 isCustomAvatarSelected: t < n.length - 1
  25892.               },
  25893.               image: e
  25894.             }
  25895.           })
  25896.         }),
  25897.         Vv(Hv(o), 'getFaviconOptions', function () {
  25898.           return o.state.faviconOptions.map(function (e, t) {
  25899.             return {
  25900.               key: t,
  25901.               value: t,
  25902.               image: e
  25903.             }
  25904.           })
  25905.         }),
  25906.         Vv(Hv(o), 'getFontCategory', function (t) {
  25907.           return o.state.fontOptionList.filter(function (e) {
  25908.             return e.name === t
  25909.           }) [0].category
  25910.         }),
  25911.         Vv(Hv(o), 'handleFontSelection', function (r) {
  25912.           return function (e) {
  25913.             var t,
  25914.             n = o.state.customFont,
  25915.             a = o.state.typeface;
  25916.             'typeface' === r ? (a = e.target.value, t = o.getFontCategory(n), 'auto' !== a && 'auto' !== t && a !== t && (n = cf.name)) : 'auto' !== o.getFontCategory(n = e.target.value) && (a = o.getFontCategory(n)),
  25917.             o.setState({
  25918.               typeface: a,
  25919.               customFont: n
  25920.             })
  25921.           }
  25922.         }),
  25923.         Vv(Hv(o), 'hasValidCustomAvatar', function () {
  25924.           var e = o.getUploadedCustomAvatarFile();
  25925.           return o.state.hasCustomAvatar || !!(e ? o.props.forumAvatarValidateImageFile(e) : o.lastValidAvatar)
  25926.         }),
  25927.         Vv(Hv(o), 'hasValidFavicon', function () {
  25928.           var e = o.getUploadedFaviconFile();
  25929.           return !!(e ? o.props.forumFaviconValidateImageFile(e) : o.lastValidFavicon)
  25930.         }),
  25931.         Vv(Hv(o), 'isCustomAvatarSelected', function () {
  25932.           return o.hasValidCustomAvatar() && 0 === o.state.selectedAvatarIndex
  25933.         }),
  25934.         Vv(Hv(o), 'isNewFaviconSelected', function () {
  25935.           return o.hasValidFavicon() && 1 === o.state.selectedFaviconIndex
  25936.         }),
  25937.         Vv(Hv(o), 'handleAvatarTypeChange', function (e) {
  25938.           var t = parseInt(e.target.parentElement.getAttribute('index'), 10),
  25939.           n = o.hasValidCustomAvatar(),
  25940.           e = o.getUploadedCustomAvatarFile() || 0 !== t;
  25941.           o.setState({
  25942.             selectedAvatarIndex: t,
  25943.             hasCustomAvatar: n,
  25944.             hasPendingAvatarChange: e
  25945.           })
  25946.         }),
  25947.         Vv(Hv(o), 'handleFaviconTypeChange', function (e) {
  25948.           var t = parseInt(e.target.parentElement.getAttribute('index'), 10),
  25949.           e = o.getUploadedFaviconFile() || 0 !== t;
  25950.           o.setState({
  25951.             selectedFaviconIndex: t,
  25952.             hasNewFavicon: o.hasValidFavicon(),
  25953.             hasPendingFaviconChange: e
  25954.           })
  25955.         }),
  25956.         Vv(Hv(o), 'handleInputChange', function (a) {
  25957.           return function (e) {
  25958.             var e = e.target,
  25959.             n = 'checkbox' === e.type ? e.checked : e.value;
  25960.             'radio' === e.type ? n = 'true' === n : 'text' === e.type || 'boolean' == typeof n || '' === n || isNaN(n) || (n = parseInt(n, 10)),
  25961.             o.setState(function (e) {
  25962.               var t = {
  25963.               };
  25964.               return Vv(t, a, n),
  25965.               Vv(t, 'hasPendingAvatarChange', 'hasCustomAvatar' === a || e.hasPendingAvatarChange),
  25966.               Vv(t, 'hasPendingFaviconChange', 'hasNewFavicon' === a || e.hasPendingFaviconChange),
  25967.               t
  25968.             })
  25969.           }
  25970.         }),
  25971.         Vv(Hv(o), 'hasFieldChanged', function (e) {
  25972.           return o.state[e] !== o.state.savedFields[e] && !(null === o.state.savedFields[e] && '' === o.state[e])
  25973.         }),
  25974.         Vv(Hv(o), 'handleAvatarFileInputChange', function () {
  25975.           var e,
  25976.           t;
  25977.           o.hasValidCustomAvatar() ? (o.props.forumAvatarOnDismissError(), e = o.state.avatarOptions, t = o.getUploadedCustomAvatarFile(), 1 === e.length ? e.unshift(URL.createObjectURL(t)) : e[0] = URL.createObjectURL(t), o.setState({
  25978.             hasCustomAvatar: !0,
  25979.             hasPendingAvatarChange: !0,
  25980.             avatarOptions: e
  25981.           })) : o.setState({
  25982.             hasCustomAvatar: !1
  25983.           })
  25984.         }),
  25985.         Vv(Hv(o), 'handleFaviconFileInputChange', function () {
  25986.           var e,
  25987.           t;
  25988.           o.hasValidFavicon() ? (o.props.forumFaviconOnDismissError(), e = o.state.faviconOptions, t = o.getUploadedFaviconFile(), e[1] = URL.createObjectURL(t), o.setState({
  25989.             hasNewFavicon: !0,
  25990.             hasPendingFaviconChange: !0,
  25991.             faviconOptions: e,
  25992.             selectedFaviconIndex: 1
  25993.           })) : o.setState({
  25994.             hasNewFavicon: !1
  25995.           })
  25996.         }),
  25997.         Vv(Hv(o), 'hasUnsavedChanges', function () {
  25998.           return Object.keys(o.state.savedFields).some(function (e) {
  25999.             return o.hasFieldChanged(e)
  26000.           })
  26001.         }),
  26002.         Vv(Hv(o), 'handleSaveChanges', function () {
  26003.           var e;
  26004.           o.state.hasPendingAvatarChange ? o.handleSaveAvatar() : o.state.hasPendingFaviconChange ? o.handleSaveFavicon() : (e = {
  26005.             name: o.state.name,
  26006.             website: o.state.website,
  26007.             forumCategory: o.state.category,
  26008.             adultContent: o.state.adultContent ? 1 : 0,
  26009.             description: o.state.description,
  26010.             colorScheme: o.state.colorScheme,
  26011.             typeface: o.state.typeface,
  26012.             translationLanguage: o.state.language,
  26013.             disableDisqusBranding: o.state.enableDisqusBranding ? 0 : 1,
  26014.             commentPolicyLink: o.state.commentPolicyLink,
  26015.             commentPolicyText: o.state.commentPolicyText
  26016.           }, o.hasFeature('customFonts') && (e.customFont = o.state.customFont), o.props.forumUpdateOnSave(e).done(function () {
  26017.             o.setState(function (e) {
  26018.               return {
  26019.                 savedFields: {
  26020.                   name: e.name,
  26021.                   website: e.website,
  26022.                   category: e.category,
  26023.                   adultContent: e.adultContent,
  26024.                   colorScheme: e.colorScheme,
  26025.                   typeface: e.typeface,
  26026.                   customFont: e.customFont,
  26027.                   description: e.description,
  26028.                   hasCustomAvatar: e.hasCustomAvatar,
  26029.                   lastValidAvatar: e.lastValidAvatar,
  26030.                   language: e.language,
  26031.                   enableDisqusBranding: e.enableDisqusBranding,
  26032.                   commentPolicyText: e.commentPolicyText,
  26033.                   commentPolicyLink: e.commentPolicyLink,
  26034.                   hasPendingAvatarChange: !1,
  26035.                   hasPendingFaviconChange: !1
  26036.                 }
  26037.               }
  26038.             })
  26039.           }))
  26040.         }),
  26041.         Vv(Hv(o), 'handleSaveAvatar', function () {
  26042.           var e = o.state.hasCustomAvatar,
  26043.           t = o.getUploadedCustomAvatarFile(),
  26044.           t = t && o.isCustomAvatarSelected() ? o.props.forumAvatarOnSave(t) : o.props.forumAvatarOnRemove();
  26045.           t && t.done(function () {
  26046.             this.avatarFileInput.current.value = '',
  26047.             e && (this.lastValidAvatar = this.props.forumAvatarNewUrl),
  26048.             this.setState({
  26049.               hasPendingAvatarChange: !1
  26050.             }, this.handleSaveChanges)
  26051.           }.bind(Hv(o)))
  26052.         }),
  26053.         Vv(Hv(o), 'handleSaveFavicon', function () {
  26054.           var e = o.getUploadedFaviconFile();
  26055.           e && o.isNewFaviconSelected() ? o.props.forumFaviconOnSave(e).done(function () {
  26056.             this.faviconFileInput.current.value = '',
  26057.             this.lastValidFavicon = this.props.forumFaviconNewUrl,
  26058.             this.setState({
  26059.               hasPendingFaviconChange: !1,
  26060.               faviconOptions: [
  26061.                 this.props.forumFaviconNewUrl
  26062.               ]
  26063.             }, this.handleSaveChanges)
  26064.           }.bind(Hv(o))) : o.setState({
  26065.             hasPendingFaviconChange: !1
  26066.           }, o.handleSaveChanges)
  26067.         }),
  26068.         Vv(Hv(o), 'hasFeature', function (e) {
  26069.           return !!(o.props.forumDetails && o.props.forumDetails.features && o.props.forumDetails.features[e])
  26070.         }),
  26071.         Vv(Hv(o), 'getInputId', function (e) {
  26072.           return ''.concat(o.constructor.displayName, '_').concat(e)
  26073.         }),
  26074.         o
  26075.       }
  26076.       return e = r,
  26077.       (t = [
  26078.         {
  26079.           key: 'componentDidMount',
  26080.           value: function () {
  26081.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  26082.             this.props.emitTrackingEvent({
  26083.               verb: 'view',
  26084.               object_type: 'page',
  26085.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  26086.             }),
  26087.             this.props.fetchForumCategories(),
  26088.             this.props.fetchForumDetails(),
  26089.             this.props.fetchForumLanguages()
  26090.           }
  26091.         },
  26092.         {
  26093.           key: 'componentWillReceiveProps',
  26094.           value: function (t) {
  26095.             var n;
  26096.             !this.props.forumDetails && t.forumDetails && (n = r.getEditableFieldsFromForum(t.forumDetails), this.setState(function (e) {
  26097.               return Uv(Uv({
  26098.               }, n), {
  26099.               }, {
  26100.                 savedFields: Uv(Uv({
  26101.                 }, r.getEditableFieldsFromForum(t.forumDetails)), {
  26102.                 }, {
  26103.                   hasPendingAvatarChange: !1,
  26104.                   hasPendingFaviconChange: !1
  26105.                 }),
  26106.                 faviconOptions: !e.faviconOptions.length && t.forumDetails.favicon.permalink ? [
  26107.                   t.forumDetails.favicon.permalink
  26108.                 ] : e.faviconOptions
  26109.               })
  26110.             }, Function.bind.call(function () {
  26111.               var e;
  26112.               this.state.hasCustomAvatar && (this.lastValidAvatar = (e = t.forumDetails.avatar) && e.large.permalink),
  26113.               this.state.hasNewFavicon && (this.lastValidFavicon = (e = t.forumDetails.favicon) && e.permalink)
  26114.             }, this)))
  26115.           }
  26116.         },
  26117.         {
  26118.           key: 'componentWillUnmount',
  26119.           value: function () {
  26120.             this.props.abortUpdateForumFaviconApiCall()
  26121.           }
  26122.         },
  26123.         {
  26124.           key: 'render',
  26125.           value: function () {
  26126.             var t = this;
  26127.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  26128.               isPolls: !1,
  26129.               organization: this.props.selection.organization
  26130.             });
  26131.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  26132.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  26133.               className: 'content__wrap spacing-bottom-double'
  26134.             }, C.a.createElement(Ki, {
  26135.               message: this.props.forumDetailsError,
  26136.               alertType: 'error'
  26137.             }));
  26138.             var e = this.props.forumDetails,
  26139.             n = this.props.organizations[this.props.selection.forum.organization],
  26140.             a = this.props.forumCategories.allCategories.map(function (e) {
  26141.               return {
  26142.                 key: e.id,
  26143.                 value: e.id,
  26144.                 label: e.name
  26145.               }
  26146.             }),
  26147.             r = this.props.forumLanguages.map(function (e) {
  26148.               return {
  26149.                 key: e.code,
  26150.                 value: e.code,
  26151.                 label: e.name
  26152.               }
  26153.             }),
  26154.             o = this.getInputId('colorScheme'),
  26155.             i = this.getInputId('typeface'),
  26156.             s = this.hasFeature('brandingOptional'),
  26157.             l = this.hasFeature('customFonts'),
  26158.             c = yo.a.isFeatureActive('custom_fonts', {
  26159.               forum: (this.props.selection.forum || {
  26160.               }).shortname
  26161.             }),
  26162.             u = s || ql(this.props.selection);
  26163.             return C.a.createElement('div', null, C.a.createElement('div', {
  26164.               className: 'content__wrap spacing-bottom-double'
  26165.             }, C.a.createElement('header', {
  26166.               className: 'settings__header'
  26167.             }, C.a.createElement('h2', {
  26168.               className: 'text-larger text-gray-darker spacing-bottom-small'
  26169.             }, 'Configure Disqus for Your Site'), C.a.createElement('p', {
  26170.               className: 'text-gray'
  26171.             }, 'Disqus automatically adapts to your community and offers powerful customization options. ', C.a.createElement('a', {
  26172.               href: Pn.adminArticles,
  26173.               target: '_blank',
  26174.               rel: 'noopener noreferrer'
  26175.             }, 'Learn more »'))), C.a.createElement('section', {
  26176.               className: 'settings__content'
  26177.             }, this.props.forumUpdateError ? C.a.createElement(Ki, {
  26178.               message: this.props.forumUpdateError,
  26179.               onRequestClose: this.props.forumUpdateOnDismissError,
  26180.               alertType: 'error'
  26181.             }) : null, C.a.createElement(kf, {
  26182.               label: 'Organization',
  26183.               blockAdditionalClass: 'text-medium',
  26184.               tooltip: n.name ? C.a.createElement(C.a.Fragment, null, 'Organizations are used to manage multiple sites, and this is the organization this site belongs to.', C.a.createElement('span', null, ' ', C.a.createElement(Us, {
  26185.                 path: '/settings/general/',
  26186.                 orgId: n.id,
  26187.                 orgSlug: n.slug
  26188.               }, 'Edit organization settings.'))) : null
  26189.             }, C.a.createElement('div', null, n.name ? C.a.createElement('h4', {
  26190.               className: 'spacing-top-narrow'
  26191.             }, n.name) : C.a.createElement('p', {
  26192.               className: 'spacing-top-small'
  26193.             }, 'Organizations are used to manage multiple sites, and this is the organization this site belongs to.', C.a.createElement('span', null, ' ', C.a.createElement(Us, {
  26194.               path: '/settings/general/',
  26195.               orgId: n.id,
  26196.               orgSlug: n.slug
  26197.             }, 'Edit organization settings.'))))), C.a.createElement(kf, {
  26198.               label: 'Shortname',
  26199.               fieldsetAdditionalClass: 'spacing-top-narrow',
  26200.               blockAdditionalClass: 'text-medium',
  26201.               tooltip: 'This is used to uniquely identify your website on Disqus. It cannot be changed.'
  26202.             }, e ? C.a.createElement('div', {
  26203.               className: 'spacing-top-narrow'
  26204.             }, C.a.createElement('h4', null, e.id)) : null), C.a.createElement($h, {
  26205.               name: 'name',
  26206.               value: this.state.name,
  26207.               label: 'Website Name',
  26208.               onChange: this.handleInputChange('name'),
  26209.               idNamespace: this.constructor.displayName,
  26210.               readOnly: this.props.forumUpdateIsSaving,
  26211.               disabled: this.props.forumUpdateIsSaving,
  26212.               shouldHighlight: this.hasFieldChanged('name'),
  26213.               maxLength: '64'
  26214.             }), C.a.createElement($h, {
  26215.               name: 'website',
  26216.               value: this.state.website,
  26217.               label: 'Website URL',
  26218.               onChange: this.handleInputChange('website'),
  26219.               idNamespace: this.constructor.displayName,
  26220.               readOnly: this.props.forumUpdateIsSaving,
  26221.               disabled: this.props.forumUpdateIsSaving,
  26222.               shouldHighlight: this.hasFieldChanged('website'),
  26223.               tooltip: C.a.createElement(C.a.Fragment, null, 'Changing domains? ', C.a.createElement('a', {
  26224.                 href: '/admin/discussions/migrate/'
  26225.               }, 'Learn how'), '.')
  26226.             }), C.a.createElement(qv, {
  26227.               name: 'forum-favicon',
  26228.               label: 'Website Favicon',
  26229.               idNamespace: 'forum-favicon',
  26230.               className: 'spacing-bottom-large',
  26231.               options: this.getFaviconOptions(),
  26232.               value: this.state.selectedFaviconIndex,
  26233.               onChange: this.handleFaviconTypeChange,
  26234.               error: this.props.forumFaviconError,
  26235.               shouldHighlight: this.hasFieldChanged('hasPendingFaviconChange'),
  26236.               width: '48px',
  26237.               height: '48px',
  26238.               tooltip: C.a.createElement(C.a.Fragment, null, 'This will be the image for your site, which will appear at the top of your ', C.a.createElement('a', {
  26239.                 href: '//disqus.com/home/forum/'.concat(e && e.id)
  26240.               }, 'forum profile'), '.')
  26241.             }, C.a.createElement('input', {
  26242.               type: 'file',
  26243.               id: 'custom-favicon-input',
  26244.               className: 'input--display-label',
  26245.               ref: this.faviconFileInput,
  26246.               onChange: this.handleFaviconFileInputChange
  26247.             }), C.a.createElement('label', {
  26248.               htmlFor: 'custom-favicon-input'
  26249.             }, C.a.createElement('img', {
  26250.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/add-avatar-plus.svg',
  26251.               alt: 'Upload a favicon'
  26252.             }))), C.a.createElement($h, {
  26253.               name: 'commentPolicyLink',
  26254.               value: this.state.commentPolicyLink,
  26255.               label: 'Comment Policy URL',
  26256.               onChange: this.handleInputChange('commentPolicyLink'),
  26257.               idNamespace: this.constructor.displayName,
  26258.               readOnly: this.props.forumUpdateIsSaving,
  26259.               disabled: this.props.forumUpdateIsSaving,
  26260.               shouldHighlight: this.hasFieldChanged('commentPolicyLink'),
  26261.               tooltip: C.a.createElement(C.a.Fragment, null, 'Don\'t have a comment policy yet? ', C.a.createElement('a', {
  26262.                 href: Pn.commentPolicySuggestions
  26263.               }, 'Check out our suggestions.'))
  26264.             }), C.a.createElement($h, {
  26265.               name: 'commentPolicyText',
  26266.               value: this.state.commentPolicyText,
  26267.               label: 'Comment Policy Summary',
  26268.               onChange: this.handleInputChange('commentPolicyText'),
  26269.               idNamespace: this.constructor.displayName,
  26270.               readOnly: this.props.forumUpdateIsSaving,
  26271.               disabled: this.props.forumUpdateIsSaving,
  26272.               placeholder: 'Ex: We welcome relevant and respectful comments. Off-topic comments may be removed.',
  26273.               shouldHighlight: this.hasFieldChanged('commentPolicyText'),
  26274.               maxLength: 120,
  26275.               tooltip: C.a.createElement(C.a.Fragment, null, 'A brief summary of your policy that will appear above the comment area.', ' ', C.a.createElement('a', {
  26276.                 href: '#',
  26277.                 onClick: this.toggleCommentPolicyPreviewExpanded
  26278.               }, this.state.commentPolicyPreviewExpanded ? 'Collapse preview.' : 'Preview what it looks like.'))
  26279.             }), C.a.createElement(Zg, {
  26280.               commentPolicyLink: this.state.commentPolicyLink,
  26281.               commentPolicyText: this.state.commentPolicyText,
  26282.               colorScheme: this.state.colorScheme,
  26283.               forumDetails: this.props.forumDetails,
  26284.               expanded: this.state.commentPolicyPreviewExpanded
  26285.             }), C.a.createElement(qv, {
  26286.               name: 'default-commenter-avatar',
  26287.               label: 'Default Commenter Avatar',
  26288.               idNamespace: 'default-commenter-avatar',
  26289.               className: 'spacing-bottom-large',
  26290.               additionalClass: 'default-commenter-avatar',
  26291.               options: this.getAvatarOptions(),
  26292.               value: this.state.selectedAvatarIndex,
  26293.               onChange: this.handleAvatarTypeChange,
  26294.               error: this.props.forumAvatarError,
  26295.               shouldHighlight: this.hasFieldChanged('hasPendingAvatarChange'),
  26296.               width: '48px',
  26297.               height: '48px',
  26298.               tooltip: C.a.createElement(C.a.Fragment, null, 'Commenters without a chosen avatar picture will use this image on your site. To set your own avatar, ', C.a.createElement('a', {
  26299.                 href: Pn.profileAvatar
  26300.               }, 'go to your profile'), '.')
  26301.             }, C.a.createElement('input', {
  26302.               type: 'file',
  26303.               id: 'custom-avatar-input',
  26304.               className: 'custom-avatar-input input--display-label',
  26305.               ref: this.avatarFileInput,
  26306.               onChange: this.handleAvatarFileInputChange
  26307.             }), C.a.createElement('label', {
  26308.               htmlFor: 'custom-avatar-input'
  26309.             }, C.a.createElement('img', {
  26310.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/add-avatar-plus.svg',
  26311.               alt: 'Upload an Avatar'
  26312.             }))), C.a.createElement(Mf, {
  26313.               name: 'category',
  26314.               label: 'Category',
  26315.               value: this.state.category,
  26316.               options: a,
  26317.               placeholder: 'Please select a category',
  26318.               onChange: this.handleInputChange('category'),
  26319.               idNamespace: this.constructor.displayName,
  26320.               readOnly: this.props.forumUpdateIsSaving,
  26321.               disabled: !a.length || this.props.forumUpdateIsSaving,
  26322.               shouldHighlight: this.hasFieldChanged('category')
  26323.             }), C.a.createElement($h, {
  26324.               name: 'description',
  26325.               value: this.state.description,
  26326.               label: 'Description',
  26327.               onChange: this.handleInputChange('description'),
  26328.               idNamespace: this.constructor.displayName,
  26329.               useTextarea: !0,
  26330.               readOnly: this.props.forumUpdateIsSaving,
  26331.               disabled: this.props.forumUpdateIsSaving,
  26332.               shouldHighlight: this.hasFieldChanged('description'),
  26333.               maxLength: '300'
  26334.             }), C.a.createElement(Mf, {
  26335.               name: 'language',
  26336.               label: 'Language',
  26337.               value: this.state.language,
  26338.               options: r,
  26339.               placeholder: 'Select a Language',
  26340.               onChange: this.handleInputChange('language'),
  26341.               disabled: !r.length,
  26342.               idNamespace: this.constructor.displayName,
  26343.               shouldHighlight: this.hasFieldChanged('language'),
  26344.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  26345.                 href: Pn.translate
  26346.               }, 'Make Disqus available in your language.'))
  26347.             }), u ? C.a.createElement(Ob, {
  26348.               name: 'enableDisqusBranding',
  26349.               checked: this.state.enableDisqusBranding,
  26350.               label: C.a.createElement('span', null, s ? null : C.a.createElement(Ks, {
  26351.                 emitEvent: function (e) {
  26352.                   return t.props.emitTrackingEvent(Uv({
  26353.                     area: 'disqus_branding'
  26354.                   }, e))
  26355.                 },
  26356.                 organization: n,
  26357.                 iconClass: 'spacing-right-small'
  26358.               }), 'Disqus Branding'),
  26359.               secondaryLabel: 'Show Disqus logo and "Add Disqus to your site" text in comments area',
  26360.               onChange: this.handleInputChange('enableDisqusBranding'),
  26361.               idNamespace: this.constructor.displayName,
  26362.               readOnly: !s || this.props.forumUpdateIsSaving,
  26363.               shouldHighlight: this.hasFieldChanged('enableDisqusBranding')
  26364.             }, s ? null : C.a.createElement('p', {
  26365.               className: 'fieldset__description text-small text-gray'
  26366.             }, 'This feature is only available to publishers on a Disqus Pro plan.', ' ', C.a.createElement(Us, {
  26367.               path: '/settings/subscription/',
  26368.               orgId: n.id,
  26369.               orgSlug: n.slug
  26370.             }, 'View upgrade options'), '.')) : null, C.a.createElement(Ob, {
  26371.               name: 'adultContent',
  26372.               checked: this.state.adultContent,
  26373.               label: 'Adult Content',
  26374.               secondaryLabel: 'Flag my site as adult oriented or NSFW',
  26375.               onChange: this.handleInputChange('adultContent'),
  26376.               idNamespace: this.constructor.displayName,
  26377.               readOnly: this.props.forumUpdateIsSaving,
  26378.               shouldHighlight: this.hasFieldChanged('adultContent'),
  26379.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  26380.                 href: Pn.nsfwContent
  26381.               }, 'What does this mean?'))
  26382.             }), c ? C.a.createElement('span', null, C.a.createElement(Mf, {
  26383.               id: o,
  26384.               name: 'colorScheme',
  26385.               label: 'Color scheme',
  26386.               className: 'fieldset-item__select',
  26387.               value: this.state.colorScheme,
  26388.               options: pf,
  26389.               onChange: this.handleInputChange('colorScheme'),
  26390.               readOnly: this.props.forumUpdateIsSaving,
  26391.               loading: this.props.forumUpdateIsSaving,
  26392.               shouldHighlight: this.hasFieldChanged('colorScheme')
  26393.             }), C.a.createElement(kf, {
  26394.               label: 'Typeface',
  26395.               labelId: i,
  26396.               blockAdditionalClass: '-text text-medium align align--wrap',
  26397.               shouldHighlight: this.hasFieldChanged('typeface') || this.hasFieldChanged('customFont')
  26398.             }, C.a.createElement(Mf, {
  26399.               id: i,
  26400.               name: 'typeface',
  26401.               secondaryLabel: 'Category',
  26402.               className: 'fieldset-item__select',
  26403.               value: this.state.typeface,
  26404.               options: lf,
  26405.               onChange: this.handleFontSelection('typeface'),
  26406.               inline: !0,
  26407.               readOnly: this.props.forumUpdateIsSaving,
  26408.               loading: this.props.forumUpdateIsSaving
  26409.             }), C.a.createElement(Tv, {
  26410.               name: 'customFont',
  26411.               className: 'limit-menu-height',
  26412.               secondaryLabel: l ? 'Font Family' : C.a.createElement('span', null, C.a.createElement(Ks, {
  26413.                 className: 'media-middle',
  26414.                 plan: 'business',
  26415.                 height: 17,
  26416.                 emitEvent: function (e) {
  26417.                   return t.props.emitTrackingEvent(Uv({
  26418.                     area: 'disqus_branding'
  26419.                   }, e))
  26420.                 },
  26421.                 organization: n,
  26422.                 iconClass: 'spacing-right-small'
  26423.               }), 'Font Family'),
  26424.               value: this.state.customFont,
  26425.               fontList: this.state.fontOptionList,
  26426.               selectedCategory: this.state.typeface,
  26427.               defaultsOnly: !l,
  26428.               onChange: this.handleFontSelection('customFont'),
  26429.               inline: !0,
  26430.               readOnly: !this.state.fontOptionList.length || this.props.forumUpdateIsSaving,
  26431.               disabled: !this.state.fontOptionList.length || this.props.forumUpdateIsSaving
  26432.             }))) : C.a.createElement(kf, {
  26433.               label: 'Appearance',
  26434.               labelId: o,
  26435.               blockAdditionalClass: '-text text-medium align align--wrap',
  26436.               shouldHighlight: this.hasFieldChanged('colorScheme') || this.hasFieldChanged('typeface')
  26437.             }, C.a.createElement(Mf, {
  26438.               id: o,
  26439.               name: 'colorScheme',
  26440.               secondaryLabel: 'Color scheme',
  26441.               className: 'fieldset-item__select',
  26442.               value: this.state.colorScheme,
  26443.               options: pf,
  26444.               onChange: this.handleInputChange('colorScheme'),
  26445.               inline: !0,
  26446.               readOnly: this.props.forumUpdateIsSaving,
  26447.               loading: this.props.forumUpdateIsSaving
  26448.             }), C.a.createElement(Mf, {
  26449.               id: i,
  26450.               name: 'typeface',
  26451.               secondaryLabel: 'Typeface',
  26452.               className: 'fieldset-item__select',
  26453.               value: this.state.typeface,
  26454.               options: lf,
  26455.               onChange: this.handleInputChange('typeface'),
  26456.               inline: !0,
  26457.               readOnly: this.props.forumUpdateIsSaving,
  26458.               loading: this.props.forumUpdateIsSaving
  26459.             }))), C.a.createElement('footer', {
  26460.               className: 'settings__footer'
  26461.             }, C.a.createElement(Bh, {
  26462.               disabled: !this.hasUnsavedChanges(),
  26463.               onClick: this.handleSaveChanges,
  26464.               isSaving: this.props.forumUpdateIsSaving || this.props.forumAvatarIsSaving || this.props.forumFaviconIsSaving,
  26465.               isSaved: this.props.forumUpdateIsSaved
  26466.             }))))
  26467.           }
  26468.         }
  26469.       ]) && Mv(e.prototype, t),
  26470.       n && Mv(e, n),
  26471.       r
  26472.     }();
  26473.     Vv(lt, 'displayName', 'ForumSettingsGeneral'),
  26474.     Vv(lt, 'propTypes', {
  26475.       history: b.a.shape({
  26476.         setRouteLeaveHook: b.a.func.isRequired
  26477.       }).isRequired,
  26478.       route: b.a.object.isRequired,
  26479.       organizations: b.a.object.isRequired,
  26480.       selection: ht.isRequired,
  26481.       forumDetails: $c,
  26482.       forumDetailsError: b.a.string,
  26483.       forumDetailsIsFetching: b.a.bool,
  26484.       fetchForumDetails: b.a.func.isRequired,
  26485.       forumUpdateError: b.a.string,
  26486.       forumUpdateIsSaving: b.a.bool,
  26487.       forumUpdateIsSaved: b.a.bool,
  26488.       forumUpdateOnSave: b.a.func.isRequired,
  26489.       forumUpdateOnDismissError: b.a.func.isRequired,
  26490.       forumAvatarError: b.a.string,
  26491.       forumAvatarIsSaving: b.a.bool,
  26492.       forumAvatarNewUrl: b.a.string,
  26493.       forumAvatarOnSave: b.a.func.isRequired,
  26494.       forumAvatarOnRemove: b.a.func.isRequired,
  26495.       forumAvatarValidateImageFile: b.a.func.isRequired,
  26496.       forumAvatarOnDismissError: b.a.func.isRequired,
  26497.       forumCategories: b.a.shape({
  26498.         allCategories: b.a.arrayOf(vl)
  26499.       }).isRequired,
  26500.       forumLanguages: b.a.arrayOf(xl).isRequired,
  26501.       emitTrackingEvent: b.a.func.isRequired,
  26502.       fetchForumCategories: b.a.func.isRequired,
  26503.       fetchForumLanguages: b.a.func.isRequired,
  26504.       abortUpdateForumFaviconApiCall: b.a.func.isRequired,
  26505.       forumFaviconValidateImageFile: b.a.func.isRequired,
  26506.       forumFaviconOnSave: b.a.func.isRequired,
  26507.       forumFaviconOnDismissError: b.a.func.isRequired,
  26508.       forumFaviconError: b.a.string,
  26509.       forumFaviconIsSaving: b.a.bool,
  26510.       forumFaviconNewUrl: b.a.string
  26511.     }),
  26512.     Vv(lt, 'getEditableFieldsFromForum', function (e) {
  26513.       var t = (e = e || {
  26514.       }).settings || {
  26515.       };
  26516.       return {
  26517.         name: e.name,
  26518.         website: e.url,
  26519.         category: e.forumCategory && e.forumCategory.id || null,
  26520.         adultContent: !!t.adultContent,
  26521.         typeface: e.typeface,
  26522.         customFont: e.customFont || cf.name,
  26523.         colorScheme: e.colorScheme,
  26524.         description: e.raw_description,
  26525.         hasCustomAvatar: t.hasCustomAvatar,
  26526.         lastValidAvatar: t.hasCustomAvatar && e.avatar && e.avatar.large.permalink,
  26527.         lastValidFavicon: e.favicon && e.favicon.permalink,
  26528.         language: e.language,
  26529.         enableDisqusBranding: !e.disableDisqusBranding,
  26530.         commentPolicyText: e.commentPolicyText,
  26531.         commentPolicyLink: e.commentPolicyLink
  26532.       }
  26533.     }),
  26534.     Vv(lt, 'getFontOptionsList', function () {
  26535.       var e = (Sb.a.lounge || {
  26536.       }).font_options;
  26537.       return e[0] !== cf && e.unshift(cf),
  26538.       e
  26539.     });
  26540.     var Wv = Object(u.connect) (function (e) {
  26541.       var t = e.forumDetails,
  26542.       n = e.forumUpdateFavicon;
  26543.       return {
  26544.         forumCategories: e.forumCategories,
  26545.         forumLanguages: e.forumLanguages.languages,
  26546.         forumDetails: t.forumDetails,
  26547.         forumDetailsError: t.forumDetailsError,
  26548.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  26549.         forumFaviconError: n.error,
  26550.         forumFaviconIsSaving: n.isSaving,
  26551.         forumFaviconNewUrl: n.forumFaviconNewUrl,
  26552.         selection: e.selection
  26553.       }
  26554.     }, {
  26555.       emitTrackingEvent: Xo({
  26556.         zone: 'settings',
  26557.         section: 'general'
  26558.       }),
  26559.       fetchForumCategories: Nh,
  26560.       fetchForumLanguages: vu,
  26561.       fetchForumDetails: ig,
  26562.       abortUpdateForumFaviconApiCall: Zu,
  26563.       forumFaviconValidateImageFile: hv,
  26564.       forumFaviconOnSave: cp,
  26565.       forumFaviconOnDismissError: bp
  26566.     }) (Ni.a.attachDrivers(Fo() (lt), [
  26567.       m,
  26568.       p
  26569.     ])),
  26570.     ut = n(168),
  26571.     Yv = n.n(ut);
  26572.     function Qv(e) {
  26573.       return (Qv = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  26574.         return typeof e
  26575.       }
  26576.        : function (e) {
  26577.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  26578.       }) (e)
  26579.     }
  26580.     function Kv() {
  26581.       return (Kv = Object.assign || function (e) {
  26582.         for (var t = 1; t < arguments.length; t++) {
  26583.           var n,
  26584.           a = arguments[t];
  26585.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  26586.         }
  26587.         return e
  26588.       }).apply(this, arguments)
  26589.     }
  26590.     function Jv(e) {
  26591.       return function (e) {
  26592.         if (Array.isArray(e)) return Xv(e)
  26593.       }(e) || function (e) {
  26594.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  26595.       }(e) || Zv(e) || function () {
  26596.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  26597.       }()
  26598.     }
  26599.     function $v(e, t) {
  26600.       return function (e) {
  26601.         if (Array.isArray(e)) return e
  26602.       }(e) || function (e, t) {
  26603.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  26604.         if (null != n) {
  26605.           var a,
  26606.           r,
  26607.           o = [
  26608.           ],
  26609.           i = !0,
  26610.           s = !1;
  26611.           try {
  26612.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  26613.           } catch (e) {
  26614.             s = !0,
  26615.             r = e
  26616.           } finally {
  26617.             try {
  26618.               i || null == n.return || n.return()
  26619.             } finally {
  26620.               if (s) throw r
  26621.             }
  26622.           }
  26623.           return o
  26624.         }
  26625.       }(e, t) || Zv(e, t) || function () {
  26626.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  26627.       }()
  26628.     }
  26629.     function Zv(e, t) {
  26630.       if (e) {
  26631.         if ('string' == typeof e) return Xv(e, t);
  26632.         var n = Object.prototype.toString.call(e).slice(8, - 1);
  26633.         return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Xv(e, t) : void 0
  26634.       }
  26635.     }
  26636.     function Xv(e, t) {
  26637.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  26638.       return a
  26639.     }
  26640.     function e_(e, t) {
  26641.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  26642.     }
  26643.     function t_(e, t) {
  26644.       for (var n = 0; n < t.length; n++) {
  26645.         var a = t[n];
  26646.         a.enumerable = a.enumerable || !1,
  26647.         a.configurable = !0,
  26648.         'value' in a && (a.writable = !0),
  26649.         Object.defineProperty(e, a.key, a)
  26650.       }
  26651.     }
  26652.     function n_(e, t, n) {
  26653.       return t && t_(e.prototype, t),
  26654.       n && t_(e, n),
  26655.       e
  26656.     }
  26657.     function a_(e, t) {
  26658.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  26659.       e.prototype = Object.create(t && t.prototype, {
  26660.         constructor: {
  26661.           value: e,
  26662.           writable: !0,
  26663.           configurable: !0
  26664.         }
  26665.       }),
  26666.       t && r_(e, t)
  26667.     }
  26668.     function r_(e, t) {
  26669.       return (r_ = Object.setPrototypeOf || function (e, t) {
  26670.         return e.__proto__ = t,
  26671.         e
  26672.       }) (e, t)
  26673.     }
  26674.     function o_(n) {
  26675.       var a = function () {
  26676.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  26677.         if (Reflect.construct.sham) return !1;
  26678.         if ('function' == typeof Proxy) return !0;
  26679.         try {
  26680.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  26681.           ], function () {
  26682.           })),
  26683.           !0
  26684.         } catch (e) {
  26685.           return !1
  26686.         }
  26687.       }();
  26688.       return function () {
  26689.         var e,
  26690.         t = s_(n);
  26691.         return e = a ? (e = s_(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  26692.         t = this,
  26693.         !(e = e) || 'object' !== Qv(e) && 'function' != typeof e ? i_(t) : e
  26694.       }
  26695.     }
  26696.     function i_(e) {
  26697.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  26698.       return e
  26699.     }
  26700.     function s_(e) {
  26701.       return (s_ = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  26702.         return e.__proto__ || Object.getPrototypeOf(e)
  26703.       }) (e)
  26704.     }
  26705.     function l_(t, e) {
  26706.       var n,
  26707.       a = Object.keys(t);
  26708.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  26709.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  26710.       })), a.push.apply(a, n)),
  26711.       a
  26712.     }
  26713.     function c_(t) {
  26714.       for (var e = 1; e < arguments.length; e++) {
  26715.         var n = null != arguments[e] ? arguments[e] : {
  26716.         };
  26717.         e % 2 ? l_(Object(n), !0).forEach(function (e) {
  26718.           u_(t, e, n[e])
  26719.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : l_(Object(n)).forEach(function (e) {
  26720.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  26721.         })
  26722.       }
  26723.       return t
  26724.     }
  26725.     function u_(e, t, n) {
  26726.       return t in e ? Object.defineProperty(e, t, {
  26727.         value: n,
  26728.         enumerable: !0,
  26729.         configurable: !0,
  26730.         writable: !0
  26731.       }) : e[t] = n,
  26732.       e
  26733.     }
  26734.     var p_ = function (e) {
  26735.       return e.type && e.filter && e.action && Dn[e.type][e.filter] && jn[e.action] && jn[e.action].present && !e.isUpsell
  26736.     },
  26737.     d_ = function (n, a, r) {
  26738.       return {
  26739.         rule_id: n.isNew ? void 0 : n.id,
  26740.         status: 'enabled' === a ? {
  26741.           before: n.enabled ? 'on' : 'off',
  26742.           after: n.enabled ? 'off' : 'on'
  26743.         }
  26744.          : n.enabled ? 'on' : 'off',
  26745.         rule: [
  26746.           'type',
  26747.           'filter',
  26748.           'action'
  26749.         ].reduce(function (e, t) {
  26750.           return c_(c_({
  26751.           }, e), {
  26752.           }, u_({
  26753.           }, t, a === t ? {
  26754.             before: n[t],
  26755.             after: r
  26756.           }
  26757.            : n[t]))
  26758.         }, {
  26759.         })
  26760.       }
  26761.     },
  26762.     m_ = function () {
  26763.       a_(o, A);
  26764.       var r = o_(o);
  26765.       function o() {
  26766.         var a;
  26767.         e_(this, o);
  26768.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  26769.         return u_(i_(a = r.call.apply(r, [
  26770.           this
  26771.         ].concat(t))), 'toggleEnabled', function () {
  26772.           a.props.emitTrackingEvent({
  26773.             verb: 'update',
  26774.             object_type: 'rule',
  26775.             object_id: a.props.isNew ? void 0 : a.props.id,
  26776.             adjective: a.props.enabled ? 'disable' : 'enable',
  26777.             extra_data: JSON.stringify(d_(a.props, 'enabled', !a.props.enabled))
  26778.           }),
  26779.           a.props.onChange({
  26780.             enabled: !a.props.enabled
  26781.           })
  26782.         }),
  26783.         u_(i_(a), 'toggleExpanded', function (e) {
  26784.           a.props.type && a.props.filter && (~e.target.className.indexOf('expandable') || ~e.target.className.indexOf('row__header')) && (a.props.isExpanded || a.props.emitTrackingEvent({
  26785.             verb: 'click',
  26786.             object_type: 'area',
  26787.             area: 'card',
  26788.             extra_data: JSON.stringify({
  26789.               rule_id: a.props.isNew ? void 0 : a.props.id,
  26790.               comments_affected_history: a.props.moderationHistory
  26791.             })
  26792.           }), a.props.toggleExpanded())
  26793.         }),
  26794.         u_(i_(a), 'trackModerateFilterClick', function (e) {
  26795.           a.props.emitTrackingEvent({
  26796.             verb: 'click',
  26797.             object_type: 'link',
  26798.             object_id: e.target.href,
  26799.             area: 'card',
  26800.             extra_data: JSON.stringify({
  26801.               rule_id: a.props.isNew ? void 0 : a.props.id,
  26802.               comments_affected_history: a.props.moderationHistory
  26803.             })
  26804.           })
  26805.         }),
  26806.         u_(i_(a), 'onChange', function (e, t) {
  26807.           var n = d_(a.props, e, t.target.value);
  26808.           a.props.emitTrackingEvent({
  26809.             verb: 'update',
  26810.             object_type: 'rule',
  26811.             object_id: a.props.isNew ? void 0 : a.props.id,
  26812.             adjective: e,
  26813.             extra_data: JSON.stringify(c_(c_({
  26814.             }, n), {
  26815.             }, {
  26816.               rule: c_(c_({
  26817.               }, n.rule), {
  26818.               }, {
  26819.                 filter: 'type' === e ? '' : n.rule.filter
  26820.               })
  26821.             }))
  26822.           });
  26823.           t = u_({
  26824.             type: a.props.type,
  26825.             filter: 'type' === e ? '' : a.props.filter,
  26826.             severity: a.props.severity,
  26827.             action: a.props.action
  26828.           }, e, t.target.value);
  26829.           t.type && t.filter && t.action || (t.enabled = !1),
  26830.           a.props.onChange(t)
  26831.         }),
  26832.         u_(i_(a), 'getTypeOptions', function () {
  26833.           var e = Tn.filter(function (t) {
  26834.             return t === a.props.type || Object.keys(Dn[t]).some(function (e) {
  26835.               return !(a.props.existingRules[t] || {
  26836.               }) [e]
  26837.             })
  26838.           }).map(function (e) {
  26839.             return {
  26840.               key: e,
  26841.               value: e,
  26842.               label: e
  26843.             }
  26844.           });
  26845.           return e.unshift({
  26846.             key: 'default',
  26847.             value: '',
  26848.             label: 'Select type'
  26849.           }),
  26850.           e
  26851.         }),
  26852.         u_(i_(a), 'getFilterOptions', function () {
  26853.           var e = {
  26854.             key: 'default',
  26855.             value: '',
  26856.             label: 'Select filter'
  26857.           };
  26858.           if (!a.props.type) return [e];
  26859.           var t = Object.keys(Dn[a.props.type]).filter(function (e) {
  26860.             e = (a.props.existingRules[a.props.type] || {
  26861.             }) [e];
  26862.             return !e || e === a.props.id
  26863.           }).map(function (e) {
  26864.             var t = Dn[a.props.type][e];
  26865.             return {
  26866.               key: e,
  26867.               value: e,
  26868.               label: t.title,
  26869.               icon: a.props.limitedModRules && t.requiresFeature ? 'upgrade-arrow-pro' : ''
  26870.             }
  26871.           });
  26872.           return t.unshift(e),
  26873.           t
  26874.         }),
  26875.         u_(i_(a), 'getActionOptions', function () {
  26876.           var e = Object.keys(jn).filter(function (e) {
  26877.             return jn[e].present
  26878.           }).map(function (e) {
  26879.             return {
  26880.               key: e,
  26881.               value: e,
  26882.               label: jn[e].present
  26883.             }
  26884.           });
  26885.           return e.unshift({
  26886.             key: 'default',
  26887.             value: '',
  26888.             label: 'Select action'
  26889.           }),
  26890.           e
  26891.         }),
  26892.         u_(i_(a), 'getSeverityOptions', function () {
  26893.           return Object.entries(Un[a.props.filter] || {
  26894.           }).map(function (e) {
  26895.             var t = $v(e, 2),
  26896.             e = t[0];
  26897.             return {
  26898.               key: e,
  26899.               value: '' + e,
  26900.               label: t[1]
  26901.             }
  26902.           })
  26903.         }),
  26904.         u_(i_(a), 'isSeverityVisible', function () {
  26905.           return 1 < a.getSeverityOptions().length
  26906.         }),
  26907.         u_(i_(a), 'updateIndex', function (e, t) {
  26908.           t.stopPropagation(),
  26909.           a.props.updateIndex(e)
  26910.         }),
  26911.         u_(i_(a), 'unhighlight', function () {
  26912.           a.props.onChange({
  26913.             highlighted: !1
  26914.           })
  26915.         }),
  26916.         a
  26917.       }
  26918.       return n_(o, [
  26919.         {
  26920.           key: 'render',
  26921.           value: function () {
  26922.             var e,
  26923.             n = this,
  26924.             t = Object.keys(this.props.moderationHistory || {
  26925.             }).reduce(function (e, t) {
  26926.               return e + n.props.moderationHistory[t]
  26927.             }, 0),
  26928.             a = Object.keys(this.props.moderationHistory || {
  26929.             }).map(function (e) {
  26930.               return {
  26931.                 action: e,
  26932.                 count: n.props.moderationHistory[e],
  26933.                 percent: t ? Math.floor(n.props.moderationHistory[e] / t * 100) : 0
  26934.               }
  26935.             }).sort(function (e, t) {
  26936.               var n = t.count - e.count;
  26937.               return n || (e.action < t.action ? - 1 : t.action < e.action ? 1 : 0)
  26938.             }),
  26939.             r = Object.keys(this.props.existingRules).reduce(function (e, t) {
  26940.               return e + Object.keys(n.props.existingRules[t]).reduce(function (e) {
  26941.                 return e + 1
  26942.               }, 0)
  26943.             }, 0);
  26944.             return this.props.highlighted && (e = function () {
  26945.               return n.refs.rule.addEventListener('animationend', n.unhighlight)
  26946.             }, this.refs.rule ? e() : setTimeout(e, 0)),
  26947.             C.a.createElement('div', {
  26948.               className: 'rule row'.concat(this.props.highlighted ? ' highlight' : '').concat(this.props.moderationHistory ? ' expandable' : '').concat(this.props.isExpanded ? ' expanded' : ''),
  26949.               ref: 'rule',
  26950.               onClick: function (e) {
  26951.                 return n.toggleExpanded(e)
  26952.               }
  26953.             }, C.a.createElement('div', {
  26954.               className: 'row__header'.concat(this.props.isDirty ? ' settings__highlighted' : '')
  26955.             }, C.a.createElement('div', {
  26956.               className: 'align row__header-left text-gray spacing-bottom'
  26957.             }, C.a.createElement('span', {
  26958.               className: 'priority-arrows align align--column align--around spacing-right'
  26959.             }, C.a.createElement('span', {
  26960.               className: 'icon icon-arrow-2'.concat(this.props.index ? '' : ' disabled'),
  26961.               onClick: this.updateIndex.bind(this, - 1)
  26962.             }), C.a.createElement('span', {
  26963.               className: 'icon icon-arrow'.concat(this.props.index === r - 1 ? ' disabled' : ''),
  26964.               onClick: this.updateIndex.bind(this, 1)
  26965.             })), C.a.createElement('span', {
  26966.               className: 'align align--middle align--wrap'
  26967.             }, C.a.createElement('span', {
  26968.               className: 'type-wrapper align--wrap'
  26969.             }, 'If', C.a.createElement(Mf, {
  26970.               name: 'type',
  26971.               className: 'select__type'.concat(this.props.highlightInvalid && !this.props.type ? ' is-error' : ''),
  26972.               onChange: this.onChange.bind(this, 'type'),
  26973.               value: this.props.type || '',
  26974.               inline: !0,
  26975.               options: this.getTypeOptions()
  26976.             })), C.a.createElement('span', {
  26977.               className: 'filter-wrapper align--wrap'
  26978.             }, C.a.createElement(Mf, {
  26979.               name: 'filter',
  26980.               className: 'select__filter'.concat(this.props.highlightInvalid && !this.props.filter ? ' is-error' : ''),
  26981.               onChange: this.onChange.bind(this, 'filter'),
  26982.               value: this.props.filter || '',
  26983.               inline: !0,
  26984.               options: this.getFilterOptions()
  26985.             })), C.a.createElement('span', {
  26986.               className: 'action-wrapper align--wrap '.concat(this.isSeverityVisible() ? '' : 'hidden')
  26987.             }, 'with severity', C.a.createElement(Mf, {
  26988.               name: 'severity',
  26989.               className: 'select__severity'.concat(this.props.highlightInvalid && !this.props.severity ? ' is-error' : ''),
  26990.               onChange: this.onChange.bind(this, 'severity'),
  26991.               value: '' + (this.props.severity || ''),
  26992.               inline: !0,
  26993.               options: this.getSeverityOptions()
  26994.             })), C.a.createElement('span', {
  26995.               className: 'action-wrapper align--wrap'
  26996.             }, 'then', C.a.createElement(Mf, {
  26997.               name: 'action',
  26998.               className: 'select__action'.concat(this.props.highlightInvalid && !this.props.action ? ' is-error' : ''),
  26999.               onChange: this.onChange.bind(this, 'action'),
  27000.               value: this.props.action || '',
  27001.               inline: !0,
  27002.               options: this.getActionOptions()
  27003.             })))), C.a.createElement('div', {
  27004.               className: 'align row__header-right'
  27005.             }, C.a.createElement(Yv.a, {
  27006.               id: 'toggle_'.concat(this.props.id),
  27007.               isDisabled: !p_(this.props),
  27008.               isChecked: this.props.enabled,
  27009.               onChange: this.toggleEnabled,
  27010.               onClick: An
  27011.             }), C.a.createElement('button', {
  27012.               className: 'button button-outline button-small',
  27013.               onClick: this.props.removeRule
  27014.             }, 'Remove'))), this.props.type && this.props.filter ? C.a.createElement('div', {
  27015.               className: 'collapsible moderation-history'
  27016.             }, C.a.createElement('p', {
  27017.               className: 'spacing-bottom'
  27018.             }, Dn[this.props.type][this.props.filter].description), this.props.moderationHistory ? C.a.createElement('section', null, C.a.createElement('p', {
  27019.               className: 'spacing-bottom'
  27020.             }, 'In the past 30 days, your site had '.concat(t, ' total ').concat(this.props.type, 's filtered by ').concat('user' === this.props.type ? 'author ' : ''), C.a.createElement('strong', null, Dn[this.props.type][this.props.filter].title), ' and here is how you moderated them:'), C.a.createElement('div', {
  27021.               className: 'actions-graph spacing-bottom'
  27022.             }, a.map(function (e) {
  27023.               return jn[e.action] && jn[e.action].past ? C.a.createElement('div', {
  27024.                 key: e.action,
  27025.                 className: 'actions-graph__item'
  27026.               }, C.a.createElement('div', {
  27027.                 className: 'action-graph__label'
  27028.               }, jn[e.action].past), C.a.createElement('div', {
  27029.                 className: 'bar-container'
  27030.               }, C.a.createElement('div', {
  27031.                 className: 'bar',
  27032.                 style: {
  27033.                   width: ''.concat(0.8 * e.percent, '%')
  27034.                 }
  27035.               }), e.count, ' ('.concat(e.percent, '%)'))) : null
  27036.             })), Dn[this.props.type][this.props.filter].moderationFilter ? C.a.createElement('div', null, C.a.createElement(v.Link, {
  27037.               to: 'moderate/all/filter/'.concat(Dn[this.props.type][this.props.filter].moderationFilter.id, '/'),
  27038.               onClick: this.trackModerateFilterClick
  27039.             }, 'View comments on your site filtered by ', C.a.createElement('strong', null, Dn[this.props.type][this.props.filter].moderationFilter.name))) : null) : C.a.createElement(Ji, null)) : null)
  27040.           }
  27041.         }
  27042.       ]),
  27043.       o
  27044.     }();
  27045.     u_(m_, 'propTypes', c_(c_({
  27046.     }, qn), {
  27047.     }, {
  27048.       onChange: b.a.func.isRequired,
  27049.       toggleExpanded: b.a.func.isRequired,
  27050.       isExpanded: b.a.bool,
  27051.       updateIndex: b.a.func.isRequired,
  27052.       index: b.a.number.isRequired,
  27053.       existingRules: b.a.shape(Tn.reduce(function (e, t) {
  27054.         return e[t] = b.a.shape(Object.keys(Dn[t]).reduce(function (e, t) {
  27055.           return e[t] = b.a.oneOfType([b.a.string,
  27056.           b.a.number]),
  27057.           e
  27058.         }, {
  27059.         })),
  27060.         e
  27061.       }, {
  27062.       })),
  27063.       limitedModRules: b.a.bool,
  27064.       moderationHistory: b.a.shape(Fn),
  27065.       highlighted: b.a.bool.isRequired,
  27066.       highlightInvalid: b.a.bool,
  27067.       emitTrackingEvent: b.a.func.isRequired
  27068.     }));
  27069.     Sn = function () {
  27070.       a_(r, A);
  27071.       var a = o_(r);
  27072.       function r() {
  27073.         var l;
  27074.         e_(this, r);
  27075.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  27076.         return u_(i_(l = a.call.apply(a, [
  27077.           this
  27078.         ].concat(t))), 'state', {
  27079.           rules: l.props.rules,
  27080.           expandedRuleId: l.props.params.rule ? parseInt(l.props.params.rule, 10) : null,
  27081.           highlightedRuleId: null,
  27082.           invalidRulesErr: !1,
  27083.           isDirty: !1,
  27084.           rulesAreSaved: l.props.rulesAreSaved
  27085.         }),
  27086.         u_(i_(l), 'trackSave', function (e) {
  27087.           (e = e || l.props).emitTrackingEvent({
  27088.             verb: 'click',
  27089.             object_type: 'button',
  27090.             object_id: 'save',
  27091.             extra_data: {
  27092.               rules: e.rules.map(function (e) {
  27093.                 return e.id
  27094.               })
  27095.             }
  27096.           }),
  27097.           e.emitTrackingEvent({
  27098.             verb: 'view',
  27099.             object_type: 'page',
  27100.             object_id: ho.getAdminPath(),
  27101.             adjective: e.rulesAreSaved ? 'valid_save' : 'invalid_save'
  27102.           })
  27103.         }),
  27104.         u_(i_(l), 'addRule', function () {
  27105.           l.props.emitTrackingEvent({
  27106.             verb: 'create',
  27107.             object_type: 'rule'
  27108.           });
  27109.           var t = 'new'.concat(Math.random());
  27110.           l.setState(function (e) {
  27111.             return {
  27112.               rules: [
  27113.               ].concat(Jv(e.rules), [
  27114.                 {
  27115.                   id: t,
  27116.                   type: '',
  27117.                   filter: '',
  27118.                   severity: '',
  27119.                   action: '',
  27120.                   enabled: !1,
  27121.                   isNew: !0,
  27122.                   isInvalid: !0,
  27123.                   isDirty: !0
  27124.                 }
  27125.               ]),
  27126.               highlightedRuleId: t
  27127.             }
  27128.           }, function () {
  27129.             l.props.onRuleChange(l.state.rules)
  27130.           })
  27131.         }),
  27132.         u_(i_(l), 'removeRule', function (a) {
  27133.           l.setState(function (e) {
  27134.             var t = e.rules.findIndex(function (e) {
  27135.               return e.id === a
  27136.             });
  27137.             if (t < 0) return l.state;
  27138.             var n = e.rules[t];
  27139.             l.props.emitTrackingEvent({
  27140.               verb: 'delete',
  27141.               object_type: 'rule',
  27142.               object_id: n.isNew ? void 0 : a,
  27143.               extra_data: JSON.stringify(d_(n))
  27144.             });
  27145.             e = e.rules.slice(0);
  27146.             return n.isNew ? e.splice(t, 1) : e[t].isDeleted = e[t].isDirty = !0,
  27147.             {
  27148.               rules: e,
  27149.               invalidRulesErr: e.some(function (e) {
  27150.                 return !e.isDeleted && !p_(e)
  27151.               })
  27152.             }
  27153.           }, function () {
  27154.             l.props.onRuleChange(l.state.rules, l.state.invalidRulesErr)
  27155.           })
  27156.         }),
  27157.         u_(i_(l), 'handleRuleChange', function (i, s) {
  27158.           l.setState(function (e, t) {
  27159.             var n = e.rules.findIndex(function (e) {
  27160.               return e.id === i
  27161.             });
  27162.             if (n < 0) return e;
  27163.             var a = t.syncedRules.findIndex(function (e) {
  27164.               return e.id === i
  27165.             }),
  27166.             r = a < 0 || Object.keys(s).some(function (e) {
  27167.               return t.syncedRules[a][e] !== s[e]
  27168.             }),
  27169.             o = c_(c_(c_({
  27170.             }, e.rules[n]), s), {
  27171.             }, {
  27172.               isDirty: r
  27173.             });
  27174.             o.isUpsell = l.props.limitedModRules && Dn[o.type] && (Dn[o.type][o.filter] || {
  27175.             }).requiresFeature,
  27176.             o.isInvalid = !p_(o);
  27177.             r = [
  27178.             ].concat(Jv(e.rules.slice(0, n)), [
  27179.               o
  27180.             ], Jv(e.rules.slice(n + 1))),
  27181.             o = o.filter !== e.rules[n].filter && o.filter ? i : o.filter || e.expandedRuleId !== i ? e.expandedRuleId : null;
  27182.             return {
  27183.               rules: r,
  27184.               expandedRuleId: o,
  27185.               invalidRulesErr: e.invalidRulesErr && r.some(function (e) {
  27186.                 return !e.isDeleted && !p_(e)
  27187.               })
  27188.             }
  27189.           }, function () {
  27190.             l.props.onRuleChange(l.state.rules, l.state.invalidRulesErr)
  27191.           })
  27192.         }),
  27193.         u_(i_(l), 'toggleRuleExpanded', function (t) {
  27194.           l.setState(function (e) {
  27195.             return {
  27196.               expandedRuleId: e.expandedRuleId === t ? null : t
  27197.             }
  27198.           })
  27199.         }),
  27200.         u_(i_(l), 'updateRuleIndex', function (r, o) {
  27201.           l.setState(function (e) {
  27202.             for (var t = e.rules.findIndex(function (e) {
  27203.               return e.id === r
  27204.             }), n = t + o; 0 <= n && n < e.rules.length && e.rules[n].isDeleted; n += o);
  27205.             if (t < 0 || n < 0 || e.rules.length <= n) return l.prevState;
  27206.             var a = e.rules.slice();
  27207.             a.splice(t, 1),
  27208.             a.splice(n, 0, e.rules[t]),
  27209.             a[t].isDirty = a[n].isDirty = !0;
  27210.             t = e.highlightedRuleId === r;
  27211.             return t && setTimeout(function () {
  27212.               l.setState({
  27213.                 highlightedRuleId: r
  27214.               })
  27215.             }, 50),
  27216.             {
  27217.               rules: a,
  27218.               highlightedRuleId: t ? null : r
  27219.             }
  27220.           })
  27221.         }),
  27222.         u_(i_(l), 'saveRules', function () {
  27223.           if (l.state.rules.some(function (e) {
  27224.             return !e.isDeleted && !p_(e)
  27225.           })) return l.trackSave(),
  27226.           void l.setState({
  27227.             invalidRulesErr: !0,
  27228.             rulesAreSaved: !1
  27229.           });
  27230.           var n = [
  27231.           ],
  27232.           a = [
  27233.           ],
  27234.           r = [
  27235.           ];
  27236.           l.state.rules.forEach(function (e, t) {
  27237.             e.isDeleted ? r.push(e.id) : e.isNew ? n.push({
  27238.               filterName: e.filter,
  27239.               severity: e.severity,
  27240.               action: e.action,
  27241.               enabled: e.enabled,
  27242.               order: t
  27243.             }) : e.isDirty && a.push({
  27244.               rule: e.id,
  27245.               filterName: e.filter,
  27246.               severity: e.severity,
  27247.               action: e.action,
  27248.               enabled: e.enabled,
  27249.               order: t
  27250.             })
  27251.           }),
  27252.           l.props.saveRules({
  27253.             data: {
  27254.               newRules: JSON.stringify(n),
  27255.               updatedRules: JSON.stringify(a),
  27256.               deletedRules: r
  27257.             }
  27258.           })
  27259.         }),
  27260.         l
  27261.       }
  27262.       return n_(r, [
  27263.         {
  27264.           key: 'componentDidMount',
  27265.           value: function () {
  27266.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  27267.             window.onbeforeunload = this.confirmNavigationIfUnsaved
  27268.           }
  27269.         },
  27270.         {
  27271.           key: 'componentWillUnmount',
  27272.           value: function () {
  27273.             window.onbeforeunload = null
  27274.           }
  27275.         },
  27276.         {
  27277.           key: 'componentWillReceiveProps',
  27278.           value: function (e) {
  27279.             var t = {
  27280.             };
  27281.             this.props.rules !== e.rules && (t.rules = e.rules.map(function (e) {
  27282.               return e.isInvalid = !p_(e),
  27283.               e
  27284.             })),
  27285.             this.props.rulesAreSaved !== e.rulesAreSaved && (t.rulesAreSaved = e.rulesAreSaved),
  27286.             this.props.params.expandedRuleId !== e.params.expandedRuleId && (t.expandedRuleId = e.params.expandedRuleId),
  27287.             this.state.invalidRulesErr !== e.invalidRulesErr && (t.invalidRulesErr = e.invalidRulesErr),
  27288.             Object.keys(t).length && this.setState(t),
  27289.             this.props.rulesAreSaving && !e.rulesAreSaving && this.trackSave(e)
  27290.           }
  27291.         },
  27292.         {
  27293.           key: 'render',
  27294.           value: function () {
  27295.             var n = this,
  27296.             e = this.state.rules.filter(function (e) {
  27297.               return !e.isDeleted
  27298.             }),
  27299.             a = e.reduce(function (e, t) {
  27300.               return e[t.type] = e[t.type] || {
  27301.               },
  27302.               e[t.type][t.filter] = t.id,
  27303.               e
  27304.             }, {
  27305.             }),
  27306.             e = e.length ? e.map(function (e, t) {
  27307.               return C.a.createElement(m_, Kv({
  27308.               }, e, {
  27309.                 key: e.id,
  27310.                 severity: e.severity,
  27311.                 onChange: n.handleRuleChange.bind(n, e.id),
  27312.                 toggleExpanded: n.toggleRuleExpanded.bind(n, e.id),
  27313.                 updateIndex: n.updateRuleIndex.bind(n, e.id),
  27314.                 removeRule: n.removeRule.bind(n, e.id),
  27315.                 existingRules: a,
  27316.                 isExpanded: n.state.expandedRuleId === e.id,
  27317.                 index: t,
  27318.                 limitedModRules: n.props.limitedModRules,
  27319.                 moderationHistory: e.filter ? n.props.moderationHistory && n.props.moderationHistory[e.filter] : {
  27320.                 },
  27321.                 emitTrackingEvent: n.props.emitTrackingEvent,
  27322.                 highlighted: n.state.highlightedRuleId === e.id,
  27323.                 highlightInvalid: n.state.invalidRulesErr
  27324.               }))
  27325.             }) : this.props.rulesAreFetching ? C.a.createElement(Ji, null) : C.a.createElement('div', {
  27326.               className: 'align align--middle padding-quad padding-top padding-bottom'
  27327.             }, C.a.createElement('img', {
  27328.               className: 'img-responsive',
  27329.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/pam-confused.svg'
  27330.             }), C.a.createElement('div', {
  27331.               className: 'spacing-top padding-top-double'
  27332.             }, C.a.createElement('h2', {
  27333.               className: 'text-gray-dark text-large spacing-bottom-small'
  27334.             }, 'You don\'t have any moderation rules yet. Click the blue Add Rule button to begin!'), C.a.createElement('p', {
  27335.               className: 'text-gray'
  27336.             }, 'Want to learn about moderation rules? Check out our ', C.a.createElement('a', {
  27337.               href: Pn.moderationRules
  27338.             }, 'Knowledge Base Article.'))));
  27339.             return C.a.createElement('div', {
  27340.               className: 'moderation-rules'
  27341.             }, C.a.createElement('div', {
  27342.               className: 'rows__container'
  27343.             }, this.state.rules.some(function (e) {
  27344.               return e.isUpsell
  27345.             }) ? C.a.createElement(ch, {
  27346.               headline: 'Looking for more moderation rules?',
  27347.               promotionalPlan: 'Disqus Pro',
  27348.               planDetailsUrl: 'https://disqus.com/pricing/',
  27349.               upsellMessageLeft: 'Upgrade to',
  27350.               upsellMessageRight: ' to unlock the full potential of the moderation rules.',
  27351.               className: 'spacing-bottom-small',
  27352.               selection: this.props.selection,
  27353.               emitTrackingEvent: this.props.emitTrackingEvent
  27354.             }) : null, e, C.a.createElement('div', {
  27355.               className: 'add-row align'
  27356.             }, C.a.createElement('button', {
  27357.               className: 'button button-fill--brand button-small',
  27358.               onClick: this.addRule
  27359.             }, '+ Add rule'))))
  27360.           }
  27361.         }
  27362.       ]),
  27363.       r
  27364.     }();
  27365.     u_(Sn, 'propTypes', {
  27366.       history: b.a.shape({
  27367.         setRouteLeaveHook: b.a.func.isRequired
  27368.       }).isRequired,
  27369.       route: b.a.object.isRequired,
  27370.       selection: ht.isRequired,
  27371.       params: b.a.shape({
  27372.         rule: b.a.string
  27373.       }),
  27374.       rules: b.a.arrayOf(b.a.shape(qn)),
  27375.       syncedRules: b.a.arrayOf(b.a.shape(qn)),
  27376.       limitedModRules: b.a.bool,
  27377.       rulesAreFetching: b.a.bool,
  27378.       rulesAreSaving: b.a.bool,
  27379.       rulesAreSaved: b.a.bool,
  27380.       rulesSaveFailed: b.a.bool,
  27381.       saveRules: b.a.func.isRequired,
  27382.       onRuleChange: b.a.func.isRequired,
  27383.       moderationHistory: b.a.shape(Ln),
  27384.       emitTrackingEvent: b.a.func.isRequired
  27385.     });
  27386.     var f_ = Sn;
  27387.     function h_(e) {
  27388.       return (h_ = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  27389.         return typeof e
  27390.       }
  27391.        : function (e) {
  27392.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  27393.       }) (e)
  27394.     }
  27395.     function g_(e, t) {
  27396.       return function (e) {
  27397.         if (Array.isArray(e)) return e
  27398.       }(e) || function (e, t) {
  27399.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  27400.         if (null != n) {
  27401.           var a,
  27402.           r,
  27403.           o = [
  27404.           ],
  27405.           i = !0,
  27406.           s = !1;
  27407.           try {
  27408.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  27409.           } catch (e) {
  27410.             s = !0,
  27411.             r = e
  27412.           } finally {
  27413.             try {
  27414.               i || null == n.return || n.return()
  27415.             } finally {
  27416.               if (s) throw r
  27417.             }
  27418.           }
  27419.           return o
  27420.         }
  27421.       }(e, t) || function (e, t) {
  27422.         if (e) {
  27423.           if ('string' == typeof e) return y_(e, t);
  27424.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  27425.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? y_(e, t) : void 0
  27426.         }
  27427.       }(e, t) || function () {
  27428.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  27429.       }()
  27430.     }
  27431.     function y_(e, t) {
  27432.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  27433.       return a
  27434.     }
  27435.     function b_() {
  27436.       return (b_ = Object.assign || function (e) {
  27437.         for (var t = 1; t < arguments.length; t++) {
  27438.           var n,
  27439.           a = arguments[t];
  27440.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  27441.         }
  27442.         return e
  27443.       }).apply(this, arguments)
  27444.     }
  27445.     function v_(t, e) {
  27446.       var n,
  27447.       a = Object.keys(t);
  27448.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  27449.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  27450.       })), a.push.apply(a, n)),
  27451.       a
  27452.     }
  27453.     function __(t) {
  27454.       for (var e = 1; e < arguments.length; e++) {
  27455.         var n = null != arguments[e] ? arguments[e] : {
  27456.         };
  27457.         e % 2 ? v_(Object(n), !0).forEach(function (e) {
  27458.           k_(t, e, n[e])
  27459.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : v_(Object(n)).forEach(function (e) {
  27460.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  27461.         })
  27462.       }
  27463.       return t
  27464.     }
  27465.     function E_(e, t) {
  27466.       for (var n = 0; n < t.length; n++) {
  27467.         var a = t[n];
  27468.         a.enumerable = a.enumerable || !1,
  27469.         a.configurable = !0,
  27470.         'value' in a && (a.writable = !0),
  27471.         Object.defineProperty(e, a.key, a)
  27472.       }
  27473.     }
  27474.     function O_(e, t) {
  27475.       return (O_ = Object.setPrototypeOf || function (e, t) {
  27476.         return e.__proto__ = t,
  27477.         e
  27478.       }) (e, t)
  27479.     }
  27480.     function S_(n) {
  27481.       var a = function () {
  27482.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  27483.         if (Reflect.construct.sham) return !1;
  27484.         if ('function' == typeof Proxy) return !0;
  27485.         try {
  27486.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  27487.           ], function () {
  27488.           })),
  27489.           !0
  27490.         } catch (e) {
  27491.           return !1
  27492.         }
  27493.       }();
  27494.       return function () {
  27495.         var e,
  27496.         t = P_(n);
  27497.         return e = a ? (e = P_(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  27498.         t = this,
  27499.         !(e = e) || 'object' !== h_(e) && 'function' != typeof e ? w_(t) : e
  27500.       }
  27501.     }
  27502.     function w_(e) {
  27503.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  27504.       return e
  27505.     }
  27506.     function P_(e) {
  27507.       return (P_ = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  27508.         return e.__proto__ || Object.getPrototypeOf(e)
  27509.       }) (e)
  27510.     }
  27511.     function k_(e, t, n) {
  27512.       return t in e ? Object.defineProperty(e, t, {
  27513.         value: n,
  27514.         enumerable: !0,
  27515.         configurable: !0,
  27516.         writable: !0
  27517.       }) : e[t] = n,
  27518.       e
  27519.     }
  27520.     go = function () {
  27521.       !function (e, t) {
  27522.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  27523.         e.prototype = Object.create(t && t.prototype, {
  27524.           constructor: {
  27525.             value: e,
  27526.             writable: !0,
  27527.             configurable: !0
  27528.           }
  27529.         }),
  27530.         t && O_(e, t)
  27531.       }(r, A);
  27532.       var e,
  27533.       t,
  27534.       n,
  27535.       a = S_(r);
  27536.       function r() {
  27537.         var o;
  27538.         !function (e, t) {
  27539.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  27540.         }(this, r);
  27541.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  27542.         return k_(w_(o = a.call.apply(a, [
  27543.           this
  27544.         ].concat(t))), 'state', __(__({
  27545.         }, r.getEditableFieldsFromForum(o.props.forumDetails)), {
  27546.         }, {
  27547.           rules: o.props.rules,
  27548.           selectedProfile: null,
  27549.           profilesExpanded: !1,
  27550.           rulesChanged: !1,
  27551.           invalidRulesErr: !1,
  27552.           invalidFields: {
  27553.           },
  27554.           savedFields: r.getEditableFieldsFromForum(o.props.forumDetails)
  27555.         })),
  27556.         k_(w_(o), 'confirmNavigationIfUnsaved', function () {
  27557.           if (o.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  27558.         }),
  27559.         k_(w_(o), 'handleInputChange', function (t, e, n) {
  27560.           var a = e.target;
  27561.           void 0 === n && (n = a.value, 'checkbox' === a.type ? n = a.checked : 'radio' === a.type ? n = 'true' === n : 'text' === a.type || 'boolean' == typeof n || '' === n || isNaN(n) || (n = parseInt(n, 10))),
  27562.           o.setState(function (e) {
  27563.             e = __(__({
  27564.             }, e), {
  27565.             }, k_({
  27566.             }, t, n));
  27567.             return e.invalidFields[t] = !o.validateField(a),
  27568.             e
  27569.           })
  27570.         }),
  27571.         k_(w_(o), 'hasFieldChanged', function (e) {
  27572.           return o.state[e] !== o.state.savedFields[e] && !(null === o.state.savedFields[e] && '' === o.state[e])
  27573.         }),
  27574.         k_(w_(o), 'hasUnsavedChanges', function () {
  27575.           return Object.keys(o.state.savedFields).some(function (e) {
  27576.             return o.hasFieldChanged(e)
  27577.           })
  27578.         }),
  27579.         k_(w_(o), 'onRuleChange', function (e, t) {
  27580.           var n = e.some(function (e) {
  27581.             return e.isDirty
  27582.           });
  27583.           o.setState({
  27584.             rules: e,
  27585.             invalidRulesErr: t,
  27586.             rulesChanged: n
  27587.           })
  27588.         }),
  27589.         k_(w_(o), 'getUpdatedRules', function (e) {
  27590.           var a = b_({
  27591.           }, e.rules),
  27592.           n = o.state.rules.map(function (e) {
  27593.             if (a[e.filter]) {
  27594.               var t = a[e.filter];
  27595.               return delete a[e.filter],
  27596.               __(__(__({
  27597.               }, e), {
  27598.               }, {
  27599.                 action: t.action
  27600.               }, t.severity ? {
  27601.                 severity: '' + t.severity
  27602.               }
  27603.                : {
  27604.               }), {
  27605.               }, {
  27606.                 isDirty: (n = e).action !== (t = t).action || (!(!t.severity || '' + n.severity == '' + t.severity) || void 0),
  27607.                 enabled: !0,
  27608.                 isDeleted: !1,
  27609.                 isInvalid: !1
  27610.               })
  27611.             }
  27612.             var n;
  27613.             return e
  27614.           }),
  27615.           e = Object.values(a).map(function (e, t) {
  27616.             return __(__({
  27617.               id: 'new'.concat(Math.random()),
  27618.               type: e.type,
  27619.               filter: e.filter
  27620.             }, e.severity ? {
  27621.               severity: '' + e.severity
  27622.             }
  27623.              : {
  27624.             }), {
  27625.             }, {
  27626.               action: e.action,
  27627.               order: n.length + t,
  27628.               enabled: !0,
  27629.               isNew: !0,
  27630.               isDirty: !0,
  27631.               isInvalid: !1
  27632.             })
  27633.           });
  27634.           return n.concat(e)
  27635.         }),
  27636.         k_(w_(o), 'getRuleData', function () {
  27637.           var n = [
  27638.           ],
  27639.           a = [
  27640.           ],
  27641.           r = [
  27642.           ];
  27643.           return o.state.rules.forEach(function (e, t) {
  27644.             e.isDeleted ? r.push(e.id) : e.isNew ? n.push(__({
  27645.               filterName: e.filter,
  27646.               action: e.action,
  27647.               enabled: e.enabled,
  27648.               order: t
  27649.             }, e.severity ? {
  27650.               severity: e.severity
  27651.             }
  27652.              : {
  27653.             })) : e.isDirty && a.push(__(__({
  27654.               filterName: e.filter
  27655.             }, e.severity ? {
  27656.               severity: e.severity
  27657.             }
  27658.              : {
  27659.             }), {
  27660.             }, {
  27661.               action: e.action,
  27662.               enabled: e.enabled,
  27663.               order: t,
  27664.               rule: e.id
  27665.             }))
  27666.           }),
  27667.           {
  27668.             newRules: JSON.stringify(n),
  27669.             updatedRules: JSON.stringify(a),
  27670.             deletedRules: r
  27671.           }
  27672.         }),
  27673.         k_(w_(o), 'handleSaveChanges', function () {
  27674.           var e = {
  27675.             validateAllPosts: o.state.validateAllPosts ? 1 : 0,
  27676.             unapproveLinks: o.state.unapproveLinks ? 1 : 0,
  27677.             mediaembedEnabled: o.state.mediaembedEnabled ? 1 : 0,
  27678.             gifPickerEnabled: o.state.gifPickerEnabled ? 1 : 0,
  27679.             flaggingNotifications: o.state.flaggingNotifications ? 1 : 0,
  27680.             flaggingEnabled: o.state.flaggingEnabled ? 1 : 0,
  27681.             flagThreshold: o.state.flagThreshold,
  27682.             daysThreadAlive: o.state.daysThreadAlive,
  27683.             allowAnonPost: o.state.allowAnonPost ? 1 : 0
  27684.           };
  27685.           o.hasFeature('unapproveNewUsers') && yo.a.isFeatureActive('new_user_premoderation', {
  27686.             forum: o.props.selection.forum.name
  27687.           }) && (e.unapproveNewUsersEnabled = o.state.unapproveNewUsersEnabled ? 1 : 0, e.daysUnapproveNewUsers = o.state.daysUnapproveNewUsers || Sf.default),
  27688.           o.state.rules.some(function (e) {
  27689.             return !e.isDeleted && e.isInvalid
  27690.           }) ? o.setState({
  27691.             invalidRulesErr: !0,
  27692.             rulesAreSaved: !1
  27693.           }) : o.props.forumUpdateOnSave(e).done(function () {
  27694.             o.setState(function (e) {
  27695.               return {
  27696.                 savedFields: {
  27697.                   validateAllPosts: e.validateAllPosts,
  27698.                   unapproveLinks: e.unapproveLinks,
  27699.                   mediaembedEnabled: e.mediaembedEnabled,
  27700.                   gifPickerEnabled: e.gifPickerEnabled,
  27701.                   flaggingNotifications: e.flaggingNotifications,
  27702.                   flaggingEnabled: e.flaggingEnabled,
  27703.                   flagThreshold: e.flagThreshold,
  27704.                   daysThreadAlive: e.daysThreadAlive,
  27705.                   allowAnonPost: e.allowAnonPost,
  27706.                   unapproveNewUsersEnabled: e.unapproveNewUsersEnabled,
  27707.                   daysUnapproveNewUsers: e.daysUnapproveNewUsers
  27708.                 }
  27709.               }
  27710.             })
  27711.           }).then(o.props.saveRules({
  27712.             data: o.getRuleData()
  27713.           }))
  27714.         }),
  27715.         k_(w_(o), 'toggleModerationProfiles', function () {
  27716.           o.setState(function (e) {
  27717.             return {
  27718.               profilesExpanded: !e.profilesExpanded
  27719.             }
  27720.           })
  27721.         }),
  27722.         k_(w_(o), 'handleProfileSelect', function (t) {
  27723.           var e = wf.filter(function (e) {
  27724.             return e.name === t.currentTarget.dataset.value
  27725.           }) [0] || null,
  27726.           n = {
  27727.           };
  27728.           e && (e.settings.forEach(function (e) {
  27729.             n[e.key] = e.value
  27730.           }), a = Object.entries(e.rules), e.rules = Object.fromEntries(a.filter(function (e) {
  27731.             e = g_(e, 2);
  27732.             return !e[1].isHiveRule || o.hasFeature('allModRules') || yo.a.isFeatureActive('thehive', {
  27733.               forum: o.props.forumDetails.id
  27734.             })
  27735.           })));
  27736.           var a = o.getUpdatedRules(e);
  27737.           o.setState(__(__({
  27738.           }, n), {
  27739.           }, {
  27740.             rules: a,
  27741.             rulesChanged: a.some(function (e) {
  27742.               return e.isDirty
  27743.             }),
  27744.             selectedProfile: e.name
  27745.           }))
  27746.         }),
  27747.         k_(w_(o), 'validateField', function (e) {
  27748.           if ('number' !== e.type) return !0;
  27749.           var t = parseInt(e.min, 10),
  27750.           n = parseInt(e.max, 10);
  27751.           return (isNaN(t) || t <= e.value) && (isNaN(n) || e.value <= n)
  27752.         }),
  27753.         k_(w_(o), 'hasInvalidFields', function () {
  27754.           var e = Object.keys(o.state.invalidFields).some(function (e) {
  27755.             return !0 === o.state.invalidFields[e]
  27756.           }),
  27757.           t = o.state.rules.some(function (e) {
  27758.             return e.isUpsell
  27759.           });
  27760.           return e || t
  27761.         }),
  27762.         k_(w_(o), 'getInputId', function (e) {
  27763.           return ''.concat(o.constructor.displayName, '_').concat(e)
  27764.         }),
  27765.         k_(w_(o), 'hasFeature', function (e) {
  27766.           return !!(o.props.forumDetails && o.props.forumDetails.features && o.props.forumDetails.features[e])
  27767.         }),
  27768.         o
  27769.       }
  27770.       return e = r,
  27771.       (t = [
  27772.         {
  27773.           key: 'componentDidMount',
  27774.           value: function () {
  27775.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  27776.             this.props.fetchForumDetails(),
  27777.             this.props.fetchRules(),
  27778.             this.props.fetchModerationHistory()
  27779.           }
  27780.         },
  27781.         {
  27782.           key: 'componentWillReceiveProps',
  27783.           value: function (e) {
  27784.             var t = {
  27785.             },
  27786.             n = r.getEditableFieldsFromForum(e.forumDetails);
  27787.             !this.props.forumDetails && e.forumDetails && (t = __(__({
  27788.             }, n), {
  27789.             }, {
  27790.               savedFields: n
  27791.             })),
  27792.             this.props.rules !== e.rules && (t.rules = e.rules),
  27793.             this.props.rulesAreSaving !== e.rulesAreSaving && (t.rulesAreSaving = e.rulesAreSaving),
  27794.             this.props.rulesAreSaved !== e.rulesAreSaved && (t.rulesAreSaved = e.rulesAreSaved, t.rulesChanged = !1),
  27795.             this.setState(t)
  27796.           }
  27797.         },
  27798.         {
  27799.           key: 'render',
  27800.           value: function () {
  27801.             var e,
  27802.             t = this;
  27803.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  27804.               isPolls: !1,
  27805.               organization: this.props.selection.organization
  27806.             });
  27807.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  27808.             if (this.props.forumDetailsError) return C.a.createElement('div', {
  27809.               className: 'content__wrap spacing-bottom-double'
  27810.             }, C.a.createElement(Ki, {
  27811.               message: this.props.forumDetailsError,
  27812.               alertType: 'error'
  27813.             }));
  27814.             this.state.invalidRulesErr && (e = 'Your changes did not save because you have one or more rules missing a selection. Fix the highlighted fields above and try again.');
  27815.             var n = this.props.organizations[this.props.selection.forum.organization],
  27816.             a = !this.hasFeature('allModRules'),
  27817.             r = this.hasFeature('unapproveNewUsers');
  27818.             return C.a.createElement('div', null, C.a.createElement('div', {
  27819.               className: 'content__wrap spacing-bottom-double'
  27820.             }, C.a.createElement('header', {
  27821.               className: 'settings__header'
  27822.             }, C.a.createElement('h2', {
  27823.               className: 'text-larger text-gray-darker spacing-bottom-small'
  27824.             }, 'Comment & Moderation Settings'), C.a.createElement('p', {
  27825.               className: 'text-gray'
  27826.             }, 'Configure comments and setup rules to automatically moderate your community.', C.a.createElement('br', null), C.a.createElement('button', {
  27827.               className: 'text-button text-base',
  27828.               onClick: this.toggleModerationProfiles
  27829.             }, this.state.profilesExpanded ? 'Hide moderation profiles' : 'Choose a moderation profile', ' »'))), C.a.createElement('section', {
  27830.               className: 'settings__content'
  27831.             }, this.props.rulesSaveError ? C.a.createElement(Ki, {
  27832.               message: this.props.rulesSaveError,
  27833.               alertType: 'error'
  27834.             }) : null, C.a.createElement('section', {
  27835.               className: 'moderation-profile-section border-bottom'.concat(this.state.profilesExpanded ? ' expanded padding-bottom-double spacing-bottom' : ' collapsed')
  27836.             }, C.a.createElement('header', {
  27837.               className: 'spacing-bottom'
  27838.             }, C.a.createElement('h2', {
  27839.               className: 'text-gray-dark text-large spacing-bottom-small'
  27840.             }, 'Moderation Profiles'), C.a.createElement('p', {
  27841.               className: 'text-gray text-medium'
  27842.             }, 'Select the profile that best fits your moderation style and the community you would like to foster. Below, you can customize your selection and modify all the individual settings to your liking.')), wf.map(function (e) {
  27843.               return C.a.createElement(Ey, {
  27844.                 key: e.name,
  27845.                 profile: e,
  27846.                 showDescription: !0,
  27847.                 showSettings: !1,
  27848.                 isSelected: t.state.selectedProfile === e.name,
  27849.                 handleClick: t.handleProfileSelect,
  27850.                 forumId: t.props.forumDetails && t.props.forumDetails.id
  27851.               })
  27852.             })), this.props.forumUpdateError ? C.a.createElement(Ki, {
  27853.               message: this.props.forumUpdateError,
  27854.               onRequestClose: this.props.forumUpdateOnDismissError,
  27855.               alertType: 'error'
  27856.             }) : null, C.a.createElement('section', {
  27857.               className: 'moderation-rule-section spacing-bottom border-bottom'
  27858.             }, C.a.createElement('header', {
  27859.               className: 'spacing-bottom'
  27860.             }, C.a.createElement('h2', {
  27861.               className: 'text-gray-dark text-large spacing-bottom-small'
  27862.             }, 'Moderation Rules'), C.a.createElement('p', {
  27863.               className: 'text-gray text-medium'
  27864.             }, 'Automatically moderate comments by defining a rule and assigning an action to a filter. Rules at the top take highest priority if a comment matches multiple conditions.')), C.a.createElement(f_, {
  27865.               history: this.props.history,
  27866.               route: this.props.route,
  27867.               selection: this.props.selection,
  27868.               params: this.props.params,
  27869.               rules: this.state.rules,
  27870.               syncedRules: this.props.rules,
  27871.               limitedModRules: a,
  27872.               saveRules: this.props.saveRules,
  27873.               rulesAreFetching: this.props.rulesAreFetching,
  27874.               rulesAreSaving: this.props.rulesAreSaving,
  27875.               rulesAreSaved: this.props.rulesAreSaved,
  27876.               rulesSaveFailed: this.props.rulesSaveFailed,
  27877.               onRuleChange: this.onRuleChange,
  27878.               invalidRulesErr: this.state.invalidRulesErr,
  27879.               moderationHistory: this.props.moderationHistory,
  27880.               emitTrackingEvent: this.props.emitTrackingEvent
  27881.             })), C.a.createElement('section', {
  27882.               className: 'moderation-setting-section spacing-bottom'
  27883.             }, C.a.createElement('header', {
  27884.               className: 'spacing-bottom'
  27885.             }, C.a.createElement('h2', {
  27886.               className: 'text-gray-dark text-large spacing-bottom-small'
  27887.             }, 'Moderation Settings')), C.a.createElement(kf, {
  27888.               label: 'Pre-moderation',
  27889.               blockAdditionalClass: '-fieldset__block--radio text-medium',
  27890.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('strong', null, 'Note'), ': Registered users must now ', C.a.createElement('a', {
  27891.                 href: Pn.verifyAccount
  27892.               }, 'verify'), ' their email address prior to posting a comment. Pre-moderation is always enabled for guest comments.'),
  27893.               shouldHighlight: this.hasFieldChanged('validateAllPosts') || r && this.hasFieldChanged('unapproveNewUsersEnabled') || r && this.hasFieldChanged('daysUnapproveNewUsers'),
  27894.               childIsInput: !0
  27895.             }, C.a.createElement('label', {
  27896.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  27897.             }, C.a.createElement('input', {
  27898.               name: this.getInputId('validateAllPosts'),
  27899.               type: 'radio',
  27900.               checked: !this.state.validateAllPosts && !this.state.unapproveNewUsersEnabled,
  27901.               value: !1,
  27902.               onChange: function (e) {
  27903.                 t.handleInputChange('validateAllPosts', e),
  27904.                 t.handleInputChange('unapproveNewUsersEnabled', e, !1)
  27905.               },
  27906.               readOnly: this.props.forumUpdateIsSaving,
  27907.               disabled: this.props.forumUpdateIsSaving
  27908.             }), C.a.createElement('strong', null, 'None'), ' — Comments don\'t need to be approved before they are published.'), yo.a.isFeatureActive('new_user_premoderation', {
  27909.               forum: this.props.selection.forum.name
  27910.             }) ? C.a.createElement('label', {
  27911.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  27912.             }, C.a.createElement('input', {
  27913.               name: this.getInputId('unapproveNewUsersEnabled'),
  27914.               type: 'radio',
  27915.               checked: !!this.state.unapproveNewUsersEnabled,
  27916.               value: !0,
  27917.               onChange: function (e) {
  27918.                 t.handleInputChange('unapproveNewUsersEnabled', e),
  27919.                 t.handleInputChange('validateAllPosts', e, !1)
  27920.               },
  27921.               readOnly: this.props.forumUpdateIsSaving || !r,
  27922.               disabled: this.props.forumUpdateIsSaving || !r
  27923.             }), r ? null : C.a.createElement(Ks, {
  27924.               emitEvent: function (e) {
  27925.                 return t.props.emitTrackingEvent(__({
  27926.                   area: 'unapprove_new_users'
  27927.                 }, e))
  27928.               },
  27929.               organization: n,
  27930.               iconClass: 'spacing-right-small',
  27931.               height: 24
  27932.             }), C.a.createElement('strong', null, 'New Commenters'), ' — Commenters new to your forum will require approval for', C.a.createElement('input', {
  27933.               type: 'number',
  27934.               id: this.getInputId('daysUnapproveNewUsers'),
  27935.               min: Sf.min,
  27936.               max: Sf.max,
  27937.               value: this.state.daysUnapproveNewUsers || Sf.default,
  27938.               onChange: this.handleInputChange.bind(this, 'daysUnapproveNewUsers'),
  27939.               size: '2',
  27940.               className: 'input--textbox -text-small -inline spacing-left-small spacing-right-small',
  27941.               readOnly: this.props.forumUpdateIsSaving || !r,
  27942.               disabled: this.props.forumUpdateIsSaving || !r
  27943.             }), 'days.') : null, C.a.createElement('label', {
  27944.               className: 'fieldset__block--radio text-medium spacing-bottom-small'
  27945.             }, C.a.createElement('input', {
  27946.               name: this.getInputId('validateAllPosts'),
  27947.               type: 'radio',
  27948.               checked: this.state.validateAllPosts,
  27949.               value: !0,
  27950.               onChange: function (e) {
  27951.                 t.handleInputChange('validateAllPosts', e),
  27952.                 t.handleInputChange('unapproveNewUsersEnabled', e, !1)
  27953.               },
  27954.               readOnly: this.props.forumUpdateIsSaving,
  27955.               disabled: this.props.forumUpdateIsSaving
  27956.             }), C.a.createElement('strong', null, 'All'), ' — Moderators must approve all comments.')), C.a.createElement(Ob, {
  27957.               name: 'allowAnonPost',
  27958.               checked: !!this.state.allowAnonPost,
  27959.               label: 'Guest Commenting',
  27960.               secondaryLabel: 'Allow guests to comment',
  27961.               onChange: this.handleInputChange.bind(this, 'allowAnonPost'),
  27962.               idNamespace: this.constructor.displayName,
  27963.               readOnly: this.props.forumUpdateIsSaving,
  27964.               disabled: this.props.forumUpdateIsSaving,
  27965.               shouldHighlight: this.hasFieldChanged('allowAnonPost'),
  27966.               tooltip: 'Guest commenters do not receive email notifications and do not have profiles showing their comment history.'
  27967.             }), C.a.createElement(Ob, {
  27968.               name: 'unapproveLinks',
  27969.               checked: !!this.state.unapproveLinks,
  27970.               label: 'Links in Comments',
  27971.               secondaryLabel: 'Comments containing links must be approved before they are published.',
  27972.               onChange: this.handleInputChange.bind(this, 'unapproveLinks'),
  27973.               idNamespace: this.constructor.displayName,
  27974.               readOnly: this.props.forumUpdateIsSaving,
  27975.               disabled: this.props.forumUpdateIsSaving,
  27976.               shouldHighlight: this.hasFieldChanged('unapproveLinks')
  27977.             }), C.a.createElement(Ob, {
  27978.               name: 'flaggingNotifications',
  27979.               checked: !!this.state.flaggingNotifications,
  27980.               label: 'Flagged Comments',
  27981.               secondaryLabel: 'Email moderators when a post is flagged.',
  27982.               onChange: this.handleInputChange.bind(this, 'flaggingNotifications'),
  27983.               idNamespace: this.constructor.displayName,
  27984.               readOnly: this.props.forumUpdateIsSaving,
  27985.               disabled: this.props.forumUpdateIsSaving,
  27986.               shouldHighlight: this.hasFieldChanged('flaggingNotifications') || this.hasFieldChanged('flaggingEnabled') || this.hasFieldChanged('flagThreshold'),
  27987.               tooltip: C.a.createElement(C.a.Fragment, null, 'People may flag comments for moderator attention. ', C.a.createElement('a', {
  27988.                 href: Pn.flagging
  27989.               }, 'Learn more about flagging.'))
  27990.             }, C.a.createElement(Ob, {
  27991.               name: 'flaggingEnabled',
  27992.               checked: !!this.state.flaggingEnabled,
  27993.               label: 'Flagged Comments',
  27994.               secondaryLabel: 'Do not display a comment once it is flagged',
  27995.               onChange: this.handleInputChange.bind(this, 'flaggingEnabled'),
  27996.               idNamespace: this.constructor.displayName,
  27997.               readOnly: this.props.forumUpdateIsSaving,
  27998.               disabled: this.props.forumUpdateIsSaving,
  27999.               ignoreFieldset: !0
  28000.             }, C.a.createElement(Mf, {
  28001.               name: 'flagThreshold',
  28002.               className: '-text-small spacing-left',
  28003.               options: yf,
  28004.               value: this.state.flagThreshold,
  28005.               width: 120,
  28006.               inline: !0,
  28007.               onChange: this.handleInputChange.bind(this, 'flagThreshold'),
  28008.               readOnly: this.props.forumUpdateIsSaving,
  28009.               disabled: !this.state.flaggingEnabled || this.props.forumUpdateIsSaving
  28010.             }))), C.a.createElement(Ob, {
  28011.               name: 'mediaembedEnabled',
  28012.               checked: !!this.state.mediaembedEnabled,
  28013.               label: 'Images and Videos',
  28014.               secondaryLabel: 'Allow comments with images and videos',
  28015.               onChange: this.handleInputChange.bind(this, 'mediaembedEnabled'),
  28016.               idNamespace: this.constructor.displayName,
  28017.               readOnly: this.props.forumUpdateIsSaving,
  28018.               disabled: this.props.forumUpdateIsSaving,
  28019.               shouldHighlight: this.hasFieldChanged('mediaembedEnabled'),
  28020.               tooltip: 'Automatically attach and display images and videos that are mentioned with comments.'
  28021.             }), C.a.createElement(Ob, {
  28022.               name: 'gifPickerEnabled',
  28023.               checked: !!this.state.gifPickerEnabled,
  28024.               label: 'Gif Picker',
  28025.               secondaryLabel: 'Enable Gif Picker',
  28026.               onChange: this.handleInputChange.bind(this, 'gifPickerEnabled'),
  28027.               idNamespace: this.constructor.displayName,
  28028.               readOnly: this.props.forumUpdateIsSaving,
  28029.               disabled: this.props.forumUpdateIsSaving,
  28030.               shouldHighlight: this.hasFieldChanged('gifPickerEnabled'),
  28031.               tooltip: 'Allow users to search and add safe GIFs to their comments.'
  28032.             }), C.a.createElement(kf, {
  28033.               label: 'Automatic Closing',
  28034.               labelId: this.getInputId('daysThreadAlive'),
  28035.               shouldHighlight: this.hasFieldChanged('daysThreadAlive')
  28036.             }, C.a.createElement('div', {
  28037.               className: 'spacing-top-small spacing-left-tiny text-medium'
  28038.             }, 'Do not allow comments after', C.a.createElement('input', {
  28039.               type: 'number',
  28040.               id: this.getInputId('daysThreadAlive'),
  28041.               min: Ef,
  28042.               max: Of,
  28043.               value: this.state.daysThreadAlive,
  28044.               onChange: this.handleInputChange.bind(this, 'daysThreadAlive'),
  28045.               size: '3',
  28046.               className: 'input--textbox -text-small -inline spacing-left-small spacing-right-small',
  28047.               readOnly: this.props.forumUpdateIsSaving,
  28048.               disabled: this.props.forumUpdateIsSaving
  28049.             }), 'days. Using 0 days will disable this feature.')))), C.a.createElement('footer', {
  28050.               className: 'settings__footer'
  28051.             }, C.a.createElement(Bh, {
  28052.               disabled: !(this.hasUnsavedChanges() || this.state.rulesChanged) || this.hasInvalidFields(),
  28053.               onClick: this.handleSaveChanges,
  28054.               isSaving: this.props.forumUpdateIsSaving || this.props.rulesAreSaving,
  28055.               isSaved: this.props.forumUpdateIsSaved && this.props.rulesAreSaved,
  28056.               saveErr: !!e
  28057.             }, e && !this.hasInvalidFields() ? C.a.createElement('div', {
  28058.               className: 'text-medium text-gray-dark spacing-narrow'
  28059.             }, e) : null))))
  28060.           }
  28061.         }
  28062.       ]) && E_(e.prototype, t),
  28063.       n && E_(e, n),
  28064.       r
  28065.     }();
  28066.     k_(go, 'displayName', 'ForumSettingsModeration'),
  28067.     k_(go, 'propTypes', {
  28068.       history: b.a.shape({
  28069.         setRouteLeaveHook: b.a.func.isRequired
  28070.       }).isRequired,
  28071.       route: b.a.object.isRequired,
  28072.       params: b.a.shape({
  28073.         rule: b.a.string
  28074.       }),
  28075.       organizations: b.a.object.isRequired,
  28076.       selection: ht.isRequired,
  28077.       forumDetails: $c,
  28078.       forumDetailsError: b.a.string,
  28079.       forumDetailsIsFetching: b.a.bool,
  28080.       fetchForumDetails: b.a.func.isRequired,
  28081.       forumUpdateError: b.a.string,
  28082.       forumUpdateIsSaving: b.a.bool,
  28083.       forumUpdateIsSaved: b.a.bool,
  28084.       forumUpdateOnSave: b.a.func.isRequired,
  28085.       forumUpdateOnDismissError: b.a.func.isRequired,
  28086.       rulesAreFetching: b.a.bool,
  28087.       rulesAreSaving: b.a.bool,
  28088.       rulesAreSaved: b.a.bool,
  28089.       rulesSaveFailed: b.a.bool,
  28090.       rulesSaveError: b.a.string,
  28091.       rules: b.a.arrayOf(b.a.shape(qn)),
  28092.       moderationHistory: b.a.shape(Ln),
  28093.       fetchRules: b.a.func.isRequired,
  28094.       fetchModerationHistory: b.a.func.isRequired,
  28095.       saveRules: b.a.func.isRequired,
  28096.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  28097.       emitTrackingEvent: b.a.func.isRequired
  28098.     }),
  28099.     k_(go, 'getEditableFieldsFromForum', function (e) {
  28100.       var t = (e = e || {
  28101.       }).settings || {
  28102.       };
  28103.       return {
  28104.         validateAllPosts: t.validateAllPosts,
  28105.         unapproveLinks: t.unapproveLinks,
  28106.         mediaembedEnabled: t.mediaembedEnabled,
  28107.         gifPickerEnabled: t.gifPickerEnabled,
  28108.         flaggingNotifications: t.flaggingNotifications,
  28109.         flaggingEnabled: t.flaggingEnabled,
  28110.         flagThreshold: e.flagThreshold,
  28111.         daysThreadAlive: e.daysThreadAlive,
  28112.         allowAnonPost: t.allowAnonPost,
  28113.         unapproveNewUsersEnabled: t.unapproveNewUsersEnabled,
  28114.         daysUnapproveNewUsers: e.daysUnapproveNewUsers
  28115.       }
  28116.     });
  28117.     oo = Object(u.connect) (function (e) {
  28118.       var t = e.forumDetails,
  28119.       n = e.saasFeatures,
  28120.       a = e.selection;
  28121.       return __(__({
  28122.         forumDetails: t.forumDetails,
  28123.         forumDetailsError: t.forumDetailsError,
  28124.         forumDetailsIsFetching: t.forumDetailsIsFetching
  28125.       }, e.moderationRules), {
  28126.       }, {
  28127.         saasFeatures: n,
  28128.         selection: a
  28129.       })
  28130.     }, {
  28131.       fetchRules: i,
  28132.       fetchModerationHistory: function (n) {
  28133.         return function (t, e) {
  28134.           ug(n, e(), function (e) {
  28135.             io.a.call('rules/moderationHistory', e).success(function (e) {
  28136.               t({
  28137.                 type: oe.onFetchModerationHistory,
  28138.                 response: e.response
  28139.               })
  28140.             })
  28141.           })
  28142.         }
  28143.       },
  28144.       saveRules: c,
  28145.       emitTrackingEvent: Xo({
  28146.         zone: 'settings',
  28147.         section: 'moderation'
  28148.       }),
  28149.       fetchForumDetails: ig
  28150.     }) (Ni.a.attachDrivers(Fo() (go), [
  28151.       m
  28152.     ])),
  28153.     bo = b.a.shape({
  28154.       cache: b.a.string,
  28155.       isCustom: b.a.bool,
  28156.       permalink: b.a.string,
  28157.       small: b.a.shape({
  28158.         cache: b.a.string,
  28159.         permalink: b.a.string
  28160.       }),
  28161.       large: b.a.shape({
  28162.         cache: b.a.string,
  28163.         permalink: b.a.string
  28164.       })
  28165.     }),
  28166.     To = b.a.shape({
  28167.       id: b.a.string.isRequired,
  28168.       name: b.a.string,
  28169.       username: b.a.string.isRequired,
  28170.       url: b.a.string.isRequired,
  28171.       profileUrl: b.a.string.isRequired,
  28172.       signedUrl: b.a.string.isRequired,
  28173.       location: b.a.string,
  28174.       joinedAt: b.a.string,
  28175.       avatar: bo
  28176.     });
  28177.     function N_(t, e) {
  28178.       var n,
  28179.       a = Object.keys(t);
  28180.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  28181.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  28182.       })), a.push.apply(a, n)),
  28183.       a
  28184.     }
  28185.     function C_(a) {
  28186.       for (var e = 1; e < arguments.length; e++) {
  28187.         var r = null != arguments[e] ? arguments[e] : {
  28188.         };
  28189.         e % 2 ? N_(Object(r), !0).forEach(function (e) {
  28190.           var t,
  28191.           n;
  28192.           n = r[t = e],
  28193.           t in (e = a) ? Object.defineProperty(e, t, {
  28194.             value: n,
  28195.             enumerable: !0,
  28196.             configurable: !0,
  28197.             writable: !0
  28198.           }) : e[t] = n
  28199.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : N_(Object(r)).forEach(function (e) {
  28200.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  28201.         })
  28202.       }
  28203.       return a
  28204.     }
  28205.     function R_() {
  28206.       return (R_ = Object.assign || function (e) {
  28207.         for (var t = 1; t < arguments.length; t++) {
  28208.           var n,
  28209.           a = arguments[t];
  28210.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  28211.         }
  28212.         return e
  28213.       }).apply(this, arguments)
  28214.     }
  28215.     Qs = {
  28216.       fetchForumModeratorList: function () {
  28217.         return function (t, e) {
  28218.           t({
  28219.             type: Z.fetching
  28220.           });
  28221.           e = e().selection.forum.shortname;
  28222.           io.a.call('forums/listModerators', {
  28223.             type: 'GET',
  28224.             data: {
  28225.               forum: e
  28226.             },
  28227.             success: function (e) {
  28228.               t({
  28229.                 type: Z.onFetch,
  28230.                 moderatorList: e.response
  28231.               })
  28232.             },
  28233.             error: function (e) {
  28234.               t({
  28235.                 type: Z.onFetchError,
  28236.                 data: e
  28237.               })
  28238.             }
  28239.           })
  28240.         }
  28241.       },
  28242.       addForumModerator: function (n, a) {
  28243.         return function (t, e) {
  28244.           t({
  28245.             type: Z.saving
  28246.           });
  28247.           e = e().selection.forum.shortname,
  28248.           e = R_({
  28249.             user: 'username:'.concat(n),
  28250.             forum: e
  28251.           }, a);
  28252.           io.a.call('forums/addModerator', {
  28253.             type: 'POST',
  28254.             data: e,
  28255.             success: function () {
  28256.               t({
  28257.                 type: Z.onSave
  28258.               })
  28259.             },
  28260.             error: function (e) {
  28261.               t({
  28262.                 type: Z.onSaveError,
  28263.                 data: e
  28264.               })
  28265.             }
  28266.           })
  28267.         }
  28268.       },
  28269.       removeForumModerator: function (e) {
  28270.         return function (t) {
  28271.           t({
  28272.             type: Z.saving
  28273.           }),
  28274.           io.a.call('forums/removeModerator', {
  28275.             type: 'POST',
  28276.             data: {
  28277.               moderator: e
  28278.             },
  28279.             success: function () {
  28280.               t({
  28281.                 type: Z.onSave
  28282.               })
  28283.             },
  28284.             error: function (e) {
  28285.               t({
  28286.                 type: Z.onSaveError,
  28287.                 data: e
  28288.               })
  28289.             }
  28290.           })
  28291.         }
  28292.       },
  28293.       updateModeratorPermissions: function (n, a) {
  28294.         return function (t, e) {
  28295.           t({
  28296.             type: Z.updating,
  28297.             username: n,
  28298.             permissions: {
  28299.               isSaving: !0
  28300.             }
  28301.           });
  28302.           e = e().selection.forum.shortname,
  28303.           e = R_({
  28304.             user: 'username:'.concat(n),
  28305.             forum: e
  28306.           }, a);
  28307.           io.a.call('forums/addModerator', {
  28308.             type: 'POST',
  28309.             data: e,
  28310.             success: function (e) {
  28311.               t({
  28312.                 type: Z.onUpdate,
  28313.                 username: n,
  28314.                 permissions: C_(C_({
  28315.                 }, e.response), {
  28316.                 }, {
  28317.                   isSaving: !1
  28318.                 })
  28319.               })
  28320.             },
  28321.             error: function (e) {
  28322.               t(C_({
  28323.                 type: Z.onUpdateError,
  28324.                 username: n,
  28325.                 permissions: {
  28326.                   isSaving: !1
  28327.                 }
  28328.               }, e))
  28329.             }
  28330.           })
  28331.         }
  28332.       }
  28333.     };
  28334.     function x_(t, e) {
  28335.       var n,
  28336.       a = Object.keys(t);
  28337.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  28338.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  28339.       })), a.push.apply(a, n)),
  28340.       a
  28341.     }
  28342.     function A_(a) {
  28343.       for (var e = 1; e < arguments.length; e++) {
  28344.         var r = null != arguments[e] ? arguments[e] : {
  28345.         };
  28346.         e % 2 ? x_(Object(r), !0).forEach(function (e) {
  28347.           var t,
  28348.           n;
  28349.           n = r[t = e],
  28350.           t in (e = a) ? Object.defineProperty(e, t, {
  28351.             value: n,
  28352.             enumerable: !0,
  28353.             configurable: !0,
  28354.             writable: !0
  28355.           }) : e[t] = n
  28356.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : x_(Object(r)).forEach(function (e) {
  28357.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  28358.         })
  28359.       }
  28360.       return a
  28361.     }
  28362.     Ss = {
  28363.       fetchOrgAdminList: function () {
  28364.         return function (t, e) {
  28365.           t({
  28366.             type: ie.fetching
  28367.           });
  28368.           e = e().selection.organization.id;
  28369.           io.a.call('organizations/listOrganizationRoles', {
  28370.             type: 'GET',
  28371.             data: {
  28372.               organization: e
  28373.             },
  28374.             success: function (e) {
  28375.               t({
  28376.                 type: ie.onFetch,
  28377.                 orgAdminList: e.response
  28378.               })
  28379.             },
  28380.             error: function (e) {
  28381.               t({
  28382.                 type: ie.onFetchError,
  28383.                 data: e
  28384.               })
  28385.             }
  28386.           })
  28387.         }
  28388.       },
  28389.       addOrgAdmin: function (e) {
  28390.         var n = e.data,
  28391.         a = e.onSuccess;
  28392.         return function (t, e) {
  28393.           t({
  28394.             type: ie.saving
  28395.           });
  28396.           e = e().selection.organization.id;
  28397.           io.a.call('organizations/addAdmin', {
  28398.             type: 'POST',
  28399.             data: {
  28400.               user: 'username:'.concat(n.username),
  28401.               organization: e
  28402.             },
  28403.             success: function () {
  28404.               t({
  28405.                 type: ie.onSave
  28406.               }),
  28407.               a()
  28408.             },
  28409.             error: function (e) {
  28410.               t({
  28411.                 type: ie.onSaveError,
  28412.                 data: e
  28413.               })
  28414.             }
  28415.           })
  28416.         }
  28417.       },
  28418.       updateOrgAdmin: function (n, a) {
  28419.         return function (t, e) {
  28420.           t({
  28421.             type: ie.saving
  28422.           });
  28423.           e = e().selection.organization.id;
  28424.           io.a.call('organizations/setRole', {
  28425.             type: 'POST',
  28426.             data: A_({
  28427.               user: 'username:'.concat(n),
  28428.               organization: e
  28429.             }, a),
  28430.             success: function () {
  28431.               t({
  28432.                 type: ie.onSave
  28433.               })
  28434.             },
  28435.             error: function (e) {
  28436.               t({
  28437.                 type: ie.onSaveError,
  28438.                 data: e
  28439.               })
  28440.             }
  28441.           })
  28442.         }
  28443.       },
  28444.       removeOrgAdmin: function (n) {
  28445.         return function (t, e) {
  28446.           t({
  28447.             type: ie.saving
  28448.           });
  28449.           e = e().selection.organization.id;
  28450.           io.a.call('organizations/removeAdmin', {
  28451.             type: 'POST',
  28452.             data: {
  28453.               user: n,
  28454.               organization: e
  28455.             },
  28456.             success: function () {
  28457.               t({
  28458.                 type: ie.onSave
  28459.               })
  28460.             },
  28461.             error: function (e) {
  28462.               t({
  28463.                 type: ie.onSaveError,
  28464.                 data: e
  28465.               })
  28466.             }
  28467.           })
  28468.         }
  28469.       }
  28470.     };
  28471.     function D_(e) {
  28472.       return (D_ = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  28473.         return typeof e
  28474.       }
  28475.        : function (e) {
  28476.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  28477.       }) (e)
  28478.     }
  28479.     function j_(t, e) {
  28480.       var n,
  28481.       a = Object.keys(t);
  28482.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  28483.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  28484.       })), a.push.apply(a, n)),
  28485.       a
  28486.     }
  28487.     function T_(t) {
  28488.       for (var e = 1; e < arguments.length; e++) {
  28489.         var n = null != arguments[e] ? arguments[e] : {
  28490.         };
  28491.         e % 2 ? j_(Object(n), !0).forEach(function (e) {
  28492.           M_(t, e, n[e])
  28493.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : j_(Object(n)).forEach(function (e) {
  28494.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  28495.         })
  28496.       }
  28497.       return t
  28498.     }
  28499.     function I_(e, t) {
  28500.       for (var n = 0; n < t.length; n++) {
  28501.         var a = t[n];
  28502.         a.enumerable = a.enumerable || !1,
  28503.         a.configurable = !0,
  28504.         'value' in a && (a.writable = !0),
  28505.         Object.defineProperty(e, a.key, a)
  28506.       }
  28507.     }
  28508.     function q_(e, t) {
  28509.       return (q_ = Object.setPrototypeOf || function (e, t) {
  28510.         return e.__proto__ = t,
  28511.         e
  28512.       }) (e, t)
  28513.     }
  28514.     function F_(n) {
  28515.       var a = function () {
  28516.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  28517.         if (Reflect.construct.sham) return !1;
  28518.         if ('function' == typeof Proxy) return !0;
  28519.         try {
  28520.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  28521.           ], function () {
  28522.           })),
  28523.           !0
  28524.         } catch (e) {
  28525.           return !1
  28526.         }
  28527.       }();
  28528.       return function () {
  28529.         var e,
  28530.         t = U_(n);
  28531.         return e = a ? (e = U_(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  28532.         t = this,
  28533.         !(e = e) || 'object' !== D_(e) && 'function' != typeof e ? L_(t) : e
  28534.       }
  28535.     }
  28536.     function L_(e) {
  28537.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  28538.       return e
  28539.     }
  28540.     function U_(e) {
  28541.       return (U_ = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  28542.         return e.__proto__ || Object.getPrototypeOf(e)
  28543.       }) (e)
  28544.     }
  28545.     function M_(e, t, n) {
  28546.       return t in e ? Object.defineProperty(e, t, {
  28547.         value: n,
  28548.         enumerable: !0,
  28549.         configurable: !0,
  28550.         writable: !0
  28551.       }) : e[t] = n,
  28552.       e
  28553.     }
  28554.     Ts = function () {
  28555.       !function (e, t) {
  28556.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  28557.         e.prototype = Object.create(t && t.prototype, {
  28558.           constructor: {
  28559.             value: e,
  28560.             writable: !0,
  28561.             configurable: !0
  28562.           }
  28563.         }),
  28564.         t && q_(e, t)
  28565.       }(o, A);
  28566.       var e,
  28567.       t,
  28568.       n,
  28569.       r = F_(o);
  28570.       function o() {
  28571.         var a;
  28572.         !function (e, t) {
  28573.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  28574.         }(this, o);
  28575.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  28576.         return M_(L_(a = r.call.apply(r, [
  28577.           this
  28578.         ].concat(t))), 'state', {
  28579.           newUsername: ''
  28580.         }),
  28581.         M_(L_(a), 'handleAddModerator', function () {
  28582.           var e = a.state.newUsername.trim();
  28583.           e && a.props.addForumModerator(e)
  28584.         }),
  28585.         M_(L_(a), 'handlePermissionChange', function (e, t, n) {
  28586.           a.props.updateModeratorPermissions(e.user.username, M_({
  28587.           }, t, n.target.checked ? 1 : 0))
  28588.         }),
  28589.         M_(L_(a), 'getOrgAdminPermissions', function (e) {
  28590.           var t = [
  28591.           ];
  28592.           e.isAdmin && t.push('can edit organization info'),
  28593.           e.isModerator && t.push('can moderate all organization sites');
  28594.           e = t.join(', ');
  28595.           return t.length ? (e[0] || '').toUpperCase() + e.slice(1) : ''
  28596.         }),
  28597.         a
  28598.       }
  28599.       return e = o,
  28600.       (t = [
  28601.         {
  28602.           key: 'componentDidMount',
  28603.           value: function () {
  28604.             this.props.fetchForumModeratorList(),
  28605.             this.props.selection.organization && this.props.fetchOrgAdminList()
  28606.           }
  28607.         },
  28608.         {
  28609.           key: 'componentWillReceiveProps',
  28610.           value: function (e) {
  28611.             var t = {
  28612.             };
  28613.             !e.isSaving && this.props.isSaving && (this.props.fetchForumModeratorList(), t.newUsername = ''),
  28614.             this.setState(t)
  28615.           }
  28616.         },
  28617.         {
  28618.           key: 'render',
  28619.           value: function () {
  28620.             var r = this;
  28621.             return this.props.selection.organization && this.props.selection.organization.pollsOnly ? C.a.createElement(Cm, {
  28622.               isPolls: !1,
  28623.               organization: this.props.selection.organization
  28624.             }) : C.a.createElement('div', null, this.props.fetchError || this.props.updateError ? C.a.createElement(Ki, {
  28625.               message: this.props.fetchError || this.props.updateError,
  28626.               alertType: 'error'
  28627.             }) : null, C.a.createElement('div', {
  28628.               className: 'content__wrap spacing-bottom-double'
  28629.             }, C.a.createElement('header', {
  28630.               className: 'settings__header'
  28631.             }, C.a.createElement('h2', {
  28632.               className: 'text-larger text-gray-darker spacing-bottom-small'
  28633.             }, 'Comment Moderators'), C.a.createElement('p', {
  28634.               className: 'text-gray text-medium'
  28635.             }, 'Add people to help moderate your community. All moderators can ban users.', C.a.createElement('a', {
  28636.               href: Pn.modArticles,
  28637.               target: '_blank',
  28638.               rel: 'noopener noreferrer'
  28639.             }, ' Learn more » '))), C.a.createElement('section', null, this.props.isFetching && !this.props.forumModeratorList ? C.a.createElement(Ji, null) : null, (this.props.forumModeratorList || [
  28640.             ]).map(function (e) {
  28641.               var t = e.user.username === r.props.selection.forum.founder.username,
  28642.               n = '//'.concat(pt.a.disqusHost, '/by/').concat(e.user.username, '/'),
  28643.               a = r.props.isSaving || e.isSaving;
  28644.               return C.a.createElement('div', {
  28645.                 key: e.user.id,
  28646.                 className: 'settings-list__item',
  28647.                 style: {
  28648.                   opacity: e.isSaving ? '0.7' : '1'
  28649.                 }
  28650.               }, C.a.createElement('div', {
  28651.                 className: 'align align--between'
  28652.               }, C.a.createElement('div', {
  28653.                 className: 'spacing-right align'
  28654.               }, C.a.createElement('div', {
  28655.                 className: 'spacing-right spacing-top-small'
  28656.               }, C.a.createElement('img', {
  28657.                 className: 'border-radius-base',
  28658.                 src: e.user.avatar.cache,
  28659.                 width: '40',
  28660.                 height: '40'
  28661.               })), C.a.createElement('div', null, C.a.createElement('a', {
  28662.                 href: n,
  28663.                 className: 'text-medium text-semibold'
  28664.               }, e.user.name), t ? C.a.createElement('p', {
  28665.                 className: 'text-small text-gray spacing-top-tiny'
  28666.               }, 'Primary moderator has full permissions. ', C.a.createElement('a', {
  28667.                 href: Pn.changePrimaryMod,
  28668.                 target: '_blank',
  28669.                 rel: 'noopener noreferrer'
  28670.               }, 'Need to change the primary moderator?')) : C.a.createElement('p', {
  28671.                 className: 'text-small text-gray spacing-top-tiny'
  28672.               }, C.a.createElement('label', {
  28673.                 className: 'fieldset__inline-block--checkbox spacing-right-large'
  28674.               }, C.a.createElement('input', {
  28675.                 type: 'checkbox',
  28676.                 className: 'input--checkbox',
  28677.                 checked: e.canAdminister,
  28678.                 onChange: r.handlePermissionChange.bind(r, e, 'canAdminister'),
  28679.                 disabled: a
  28680.               }), ' Can change settings'), C.a.createElement('label', {
  28681.                 className: 'fieldset__inline-block--checkbox'
  28682.               }, C.a.createElement('input', {
  28683.                 type: 'checkbox',
  28684.                 className: 'input--checkbox',
  28685.                 checked: e.canEdit,
  28686.                 onChange: r.handlePermissionChange.bind(r, e, 'canEdit'),
  28687.                 disabled: a
  28688.               }), ' Can edit comments')))), t ? null : C.a.createElement('div', {
  28689.                 className: 'align-min-tablet align--middle spacing-top-small spacing-bottom-small'
  28690.               }, C.a.createElement('button', {
  28691.                 className: 'button button-outline text-medium',
  28692.                 onClick: r.props.removeForumModerator.bind(null, e.id),
  28693.                 disabled: a
  28694.               }, 'Remove'))))
  28695.             }), C.a.createElement('div', {
  28696.               className: 'settings-list__item'
  28697.             }, C.a.createElement('form', {
  28698.               onSubmit: function (e) {
  28699.                 return e.preventDefault()
  28700.               }
  28701.             }, C.a.createElement('div', {
  28702.               className: 'align spacing-top-small'
  28703.             }, C.a.createElement('div', {
  28704.               className: 'spacing-right align__item--grow'
  28705.             }, C.a.createElement('input', {
  28706.               type: 'text',
  28707.               className: 'input--textbox',
  28708.               placeholder: 'Add a new comment moderator by their username',
  28709.               onChange: function (e) {
  28710.                 return r.setState({
  28711.                   newUsername: e.target.value
  28712.                 })
  28713.               },
  28714.               value: this.state.newUsername,
  28715.               disabled: this.props.isSaving
  28716.             })), C.a.createElement('button', {
  28717.               className: 'button button-outline text-medium',
  28718.               onClick: this.handleAddModerator,
  28719.               disabled: this.props.isSaving || !this.state.newUsername
  28720.             }, 'Add')), C.a.createElement('p', {
  28721.               className: 'fieldset__description spacing-bottom-small text-small text-gray spacing-top-tiny'
  28722.             }, 'Moderators require a Disqus account.', C.a.createElement('a', {
  28723.               href: Pn.modArticles,
  28724.               target: '_blank',
  28725.               rel: 'noopener noreferrer'
  28726.             }, ' Learn more » ')), this.props.saveError ? C.a.createElement('p', {
  28727.               className: 'text-medium text-error text-semibold spacing-narrow'
  28728.             }, this.props.saveError) : null)))), this.props.selection.organization ? C.a.createElement('div', {
  28729.               className: 'content__wrap spacing-bottom-double'
  28730.             }, C.a.createElement('header', {
  28731.               className: 'settings__header'
  28732.             }, C.a.createElement('h2', {
  28733.               className: 'text-larger text-gray-darker spacing-bottom-small'
  28734.             }, 'Organization Admins'), C.a.createElement('p', {
  28735.               className: 'text-gray text-medium'
  28736.             }, 'Organization admins have full moderation permissions on each of the sites in the organization.', ' ', C.a.createElement(Us, {
  28737.               path: '/settings/admins/',
  28738.               orgId: this.props.selection.organization.id,
  28739.               orgSlug: this.props.selection.organization.slug
  28740.             }, 'Manage Admins »'))), C.a.createElement('section', null, this.props.orgAdminListIsFetching && !this.props.orgAdminList ? C.a.createElement(Ji, null) : null, (this.props.orgAdminList || [
  28741.             ]).map(function (e) {
  28742.               var t = r.props.selection.organization && e.user.username === r.props.selection.organization.owner,
  28743.               n = '//'.concat(pt.a.disqusHost, '/by/').concat(e.user.username, '/');
  28744.               return C.a.createElement('div', {
  28745.                 className: 'settings-list__item',
  28746.                 key: e.id
  28747.               }, C.a.createElement('div', {
  28748.                 className: 'align align--between'
  28749.               }, C.a.createElement('div', {
  28750.                 className: 'spacing-right align'
  28751.               }, C.a.createElement('div', {
  28752.                 className: 'spacing-right spacing-top-small'
  28753.               }, C.a.createElement('img', {
  28754.                 className: 'border-radius-base',
  28755.                 src: e.user.avatar.cache,
  28756.                 width: '40',
  28757.                 height: '40'
  28758.               })), C.a.createElement('div', null, C.a.createElement('a', {
  28759.                 href: n,
  28760.                 className: 'text-medium text-semibold'
  28761.               }, e.user.name), C.a.createElement('p', {
  28762.                 className: 'text-small text-gray spacing-top-tiny'
  28763.               }, t ? 'Organization owner has full permissions.' : r.getOrgAdminPermissions(e))))))
  28764.             }))) : null)
  28765.           }
  28766.         }
  28767.       ]) && I_(e.prototype, t),
  28768.       n && I_(e, n),
  28769.       o
  28770.     }();
  28771.     M_(Ts, 'displayName', 'ForumSettingsModerators'),
  28772.     M_(Ts, 'propTypes', {
  28773.       selection: ht.isRequired,
  28774.       forumModeratorList: b.a.arrayOf(b.a.shape({
  28775.         user: b.a.shape({
  28776.           id: b.a.string,
  28777.           username: b.a.string,
  28778.           name: b.a.string,
  28779.           avatar: b.a.shape({
  28780.             cache: b.a.string
  28781.           })
  28782.         }),
  28783.         id: b.a.string,
  28784.         forum: b.a.string,
  28785.         canAdminister: b.a.bool,
  28786.         canEdit: b.a.bool
  28787.       })),
  28788.       isFetching: b.a.bool,
  28789.       isSaving: b.a.bool,
  28790.       isUpdating: b.a.bool,
  28791.       fetchError: b.a.string,
  28792.       saveError: b.a.string,
  28793.       updateError: b.a.string,
  28794.       orgAdminList: b.a.arrayOf(b.a.shape({
  28795.         id: b.a.number.isRequired,
  28796.         organizationId: b.a.number.isRequired,
  28797.         isAdmin: b.a.bool.isRequired,
  28798.         isModerator: b.a.bool.isRequired,
  28799.         user: To
  28800.       })),
  28801.       orgAdminIsFetching: b.a.bool,
  28802.       fetchOrgAdminList: b.a.func.isRequired,
  28803.       fetchForumModeratorList: b.a.func.isRequired,
  28804.       addForumModerator: b.a.func.isRequired,
  28805.       removeForumModerator: b.a.func.isRequired,
  28806.       updateModeratorPermissions: b.a.func.isRequired
  28807.     });
  28808.     qs = Object(u.connect) (function (e) {
  28809.       var t = e.orgAdmin;
  28810.       return T_(T_({
  28811.         selection: e.selection
  28812.       }, e.forumModerator), t)
  28813.     }, T_(T_({
  28814.     }, Qs), Ss)) (Fo() (Ts)),
  28815.     ac = function (e) {
  28816.       return C.a.createElement('label', {
  28817.         className: 'align spacing-bottom-narrow text-medium'
  28818.       }, C.a.createElement('input', {
  28819.         type: 'radio',
  28820.         name: 'reason',
  28821.         className: 'spacing-right',
  28822.         value: e.reason,
  28823.         onChange: e.onChange,
  28824.         checked: e.checked
  28825.       }), e.reason_text, e.children)
  28826.     };
  28827.     ac.propTypes = {
  28828.       reason: b.a.string,
  28829.       onChange: b.a.func,
  28830.       checked: b.a.bool,
  28831.       children: b.a.node,
  28832.       reason_text: b.a.string.isRequired
  28833.     };
  28834.     var B_ = ac;
  28835.     function z_(e) {
  28836.       return (z_ = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  28837.         return typeof e
  28838.       }
  28839.        : function (e) {
  28840.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  28841.       }) (e)
  28842.     }
  28843.     function H_(t, e) {
  28844.       var n,
  28845.       a = Object.keys(t);
  28846.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  28847.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  28848.       })), a.push.apply(a, n)),
  28849.       a
  28850.     }
  28851.     function G_(t) {
  28852.       for (var e = 1; e < arguments.length; e++) {
  28853.         var n = null != arguments[e] ? arguments[e] : {
  28854.         };
  28855.         e % 2 ? H_(Object(n), !0).forEach(function (e) {
  28856.           J_(t, e, n[e])
  28857.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : H_(Object(n)).forEach(function (e) {
  28858.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  28859.         })
  28860.       }
  28861.       return t
  28862.     }
  28863.     function V_(e, t) {
  28864.       for (var n = 0; n < t.length; n++) {
  28865.         var a = t[n];
  28866.         a.enumerable = a.enumerable || !1,
  28867.         a.configurable = !0,
  28868.         'value' in a && (a.writable = !0),
  28869.         Object.defineProperty(e, a.key, a)
  28870.       }
  28871.     }
  28872.     function W_(e, t) {
  28873.       return (W_ = Object.setPrototypeOf || function (e, t) {
  28874.         return e.__proto__ = t,
  28875.         e
  28876.       }) (e, t)
  28877.     }
  28878.     function Y_(n) {
  28879.       var a = function () {
  28880.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  28881.         if (Reflect.construct.sham) return !1;
  28882.         if ('function' == typeof Proxy) return !0;
  28883.         try {
  28884.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  28885.           ], function () {
  28886.           })),
  28887.           !0
  28888.         } catch (e) {
  28889.           return !1
  28890.         }
  28891.       }();
  28892.       return function () {
  28893.         var e,
  28894.         t = K_(n);
  28895.         return e = a ? (e = K_(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  28896.         t = this,
  28897.         !(e = e) || 'object' !== z_(e) && 'function' != typeof e ? Q_(t) : e
  28898.       }
  28899.     }
  28900.     function Q_(e) {
  28901.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  28902.       return e
  28903.     }
  28904.     function K_(e) {
  28905.       return (K_ = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  28906.         return e.__proto__ || Object.getPrototypeOf(e)
  28907.       }) (e)
  28908.     }
  28909.     function J_(e, t, n) {
  28910.       return t in e ? Object.defineProperty(e, t, {
  28911.         value: n,
  28912.         enumerable: !0,
  28913.         configurable: !0,
  28914.         writable: !0
  28915.       }) : e[t] = n,
  28916.       e
  28917.     }
  28918.     var $_ = {
  28919.       ad_quality: 'The ads are low quality or inappropriate.',
  28920.       ad_relevance: 'The ads are not relevant to our content.',
  28921.       ad_revenue: 'The earnings are not high enough.',
  28922.       ad_design: 'The ad layout, size, design, and/or placement doesn\'t work for our site.',
  28923.       ad_conflict: 'The ads conflict with our existing contracts with other ad providers.',
  28924.       ad_payment: 'The payments are too slow and/or confusing.',
  28925.       ad_load_speed: 'The ads make our site(s) slow-to-load.',
  28926.       ad_controls: 'The ad controls are too limited for our needs.'
  28927.     },
  28928.     cs = function () {
  28929.       !function (e, t) {
  28930.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  28931.         e.prototype = Object.create(t && t.prototype, {
  28932.           constructor: {
  28933.             value: e,
  28934.             writable: !0,
  28935.             configurable: !0
  28936.           }
  28937.         }),
  28938.         t && W_(e, t)
  28939.       }(o, A);
  28940.       var e,
  28941.       t,
  28942.       n,
  28943.       r = Y_(o);
  28944.       function o() {
  28945.         var t;
  28946.         !function (e, t) {
  28947.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  28948.         }(this, o);
  28949.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  28950.         return J_(Q_(t = r.call.apply(r, [
  28951.           this
  28952.         ].concat(n))), 'state', {
  28953.           showForm: !1,
  28954.           selectedReason: '',
  28955.           reasonText: ''
  28956.         }),
  28957.         J_(Q_(t), 'startDeactivation', function () {
  28958.           t.setState({
  28959.             showForm: !0
  28960.           })
  28961.         }),
  28962.         J_(Q_(t), 'cancelDeactivation', function () {
  28963.           t.setState({
  28964.             showForm: !1
  28965.           })
  28966.         }),
  28967.         J_(Q_(t), 'onReasonSelected', function (e) {
  28968.           t.setState({
  28969.             selectedReason: e.target.value,
  28970.             reasonText: $_[e.target.value]
  28971.           })
  28972.         }),
  28973.         J_(Q_(t), 'otherReasonSelected', function (e) {
  28974.           t.setState({
  28975.             selectedReason: 'other',
  28976.             reasonText: e.target.value
  28977.           })
  28978.         }),
  28979.         J_(Q_(t), 'reportUpgradeEvent', function () {
  28980.           t.props.emitTrackingEvent({
  28981.             verb: 'click',
  28982.             object_type: 'button',
  28983.             object_id: 'upgrade_account'
  28984.           })
  28985.         }),
  28986.         J_(Q_(t), 'confirmDeactivation', function () {
  28987.           t.props.emitTrackingEvent({
  28988.             verb: 'update',
  28989.             object_type: 'forum',
  28990.             object_id: t.props.selection.forum.shortname,
  28991.             area: 'deactivation',
  28992.             extra_data: JSON.stringify(G_(G_({
  28993.             }, t.props.forumState), {
  28994.             }, {
  28995.               reason: t.state.selectedReason,
  28996.               reason_text: t.state.reasonText
  28997.             }))
  28998.           }),
  28999.           t.props.onDeactivate()
  29000.         }),
  29001.         t
  29002.       }
  29003.       return e = o,
  29004.       (t = [
  29005.         {
  29006.           key: 'render',
  29007.           value: function () {
  29008.             var t = this;
  29009.             return this.props.isNewPolicy && this.props.hasAdsOptional ? C.a.createElement('div', {
  29010.               className: 'deactivation '.concat(this.state.showForm ? '-show-form' : '')
  29011.             }, C.a.createElement('div', {
  29012.               className: 'cta',
  29013.               id: 'deactivate'
  29014.             }, C.a.createElement('div', {
  29015.               className: 'settings__content padding-double'
  29016.             }, C.a.createElement('header', {
  29017.               className: 'align align--between'
  29018.             }, C.a.createElement('h2', {
  29019.               className: 'text-gray-darker text-larger'
  29020.             }, 'Turn ads off'), C.a.createElement('div', {
  29021.               className: 'button button-fill button-padding-wide',
  29022.               onClick: this.startDeactivation
  29023.             }, 'Start deactivation')))), C.a.createElement('div', {
  29024.               className: 'form'
  29025.             }, C.a.createElement('div', {
  29026.               className: 'reasons padding-double'
  29027.             }, C.a.createElement('div', {
  29028.               className: 'text-gray spacing-bottom'
  29029.             }, 'Please help us improve our ads experience by answering the following question: why would you like to deactivate ads?'), Object.keys($_).map(function (e) {
  29030.               return C.a.createElement(B_, {
  29031.                 key: e,
  29032.                 reason: e,
  29033.                 reason_text: $_[e],
  29034.                 checked: e === t.state.selectedReason,
  29035.                 onChange: t.onReasonSelected
  29036.               })
  29037.             }), C.a.createElement(B_, {
  29038.               key: 'Other',
  29039.               reason: 'other',
  29040.               reason_text: 'Other',
  29041.               checked: 'other' === this.state.selectedReason,
  29042.               onChange: this.onReasonSelected
  29043.             }, C.a.createElement('input', {
  29044.               type: 'text',
  29045.               className: 'input--default spacing-left',
  29046.               onChange: this.otherReasonSelected,
  29047.               onClick: this.otherReasonSelected
  29048.             }))), C.a.createElement('footer', {
  29049.               className: 'settings__footer align align--between'
  29050.             }, C.a.createElement('button', {
  29051.               className: 'button button-fill--blue-light button-padding-wide button-medium',
  29052.               onClick: this.cancelDeactivation
  29053.             }, 'Cancel Deactivation'), C.a.createElement('button', {
  29054.               className: 'button button-fill--brand button-padding-wide button-medium',
  29055.               onClick: this.confirmDeactivation
  29056.             }, 'Deactivate Ads')))) : this.props.isNewPolicy && !this.props.hasAdsOptional ? C.a.createElement('header', {
  29057.               className: 'settings__header settings-inline-section align align--between align--middle padding-double'
  29058.             }, C.a.createElement('div', {
  29059.               className: 'align__item--flex-1 text-gray spacing-right-large'
  29060.             }, C.a.createElement('h2', {
  29061.               className: 'text-gray-darker text-larger'
  29062.             }, 'Looking to remove ads?'), 'Disqus is powered by its relationship with its publishers.', ' ', 'Learn more about', ' ', C.a.createElement('a', {
  29063.               target: '_blank',
  29064.               rel: 'noopener noreferrer',
  29065.               href: 'https://disqus.com/features/'
  29066.             }, 'How Disqus Works'), ' ', 'and finding', ' ', C.a.createElement(Us, {
  29067.               path: '/settings/subscription/',
  29068.               orgId: this.props.selection.organization.id,
  29069.               orgSlug: this.props.selection.organization.slug
  29070.             }, 'Which Plan is Right For You'), '.'), C.a.createElement('div', {
  29071.               className: 'align__item--no-shrink',
  29072.               onClick: this.reportUpgradeEvent
  29073.             }, C.a.createElement(Us, {
  29074.               path: '/settings/subscription/',
  29075.               orgId: this.props.selection.organization.id,
  29076.               orgSlug: this.props.selection.organization.slug
  29077.             }, C.a.createElement('div', {
  29078.               className: 'button button-fill button-fill--yellow button-padding-wide'
  29079.             }, C.a.createElement('span', {
  29080.               className: 'icon-upgrade-arrow icon__position spacing-right-small'
  29081.             }), 'Upgrade Your Account')))) : !this.props.isNewPolicy && this.props.hasAdsOptional ? C.a.createElement('header', {
  29082.               className: 'settings__content align align--between padding-double'
  29083.             }, C.a.createElement('h2', {
  29084.               className: 'text-gray-darker text-larger'
  29085.             }, 'Deactivate Reveal Ads'), C.a.createElement(Uo, {
  29086.               path: '/settings/revenue/hub',
  29087.               selection: this.props.selection
  29088.             }, C.a.createElement('div', {
  29089.               className: 'button button-outline -border-red'
  29090.             }, 'Start Ads Deactivation Process'))) : C.a.createElement('header', {
  29091.               className: 'settings__header settings-inline-section padding-double'
  29092.             }, C.a.createElement('div', null, 'Looking to remove ads?'), C.a.createElement('div', null, C.a.createElement('a', {
  29093.               href: Pn.revealContact
  29094.             }, C.a.createElement('strong', null, 'Contact our Publisher Support Team to upgrade your account.')), ' We\'ll get back to you shortly.'))
  29095.           }
  29096.         }
  29097.       ]) && V_(e.prototype, t),
  29098.       n && V_(e, n),
  29099.       o
  29100.     }();
  29101.     J_(cs, 'propTypes', {
  29102.       isNewPolicy: b.a.bool,
  29103.       forumState: b.a.object,
  29104.       hasAdsOptional: b.a.bool,
  29105.       onDeactivate: b.a.func.isRequired,
  29106.       selection: ht.isRequired,
  29107.       emitTrackingEvent: b.a.func.isRequired
  29108.     });
  29109.     function Z_(e) {
  29110.       var t = e.adPosition,
  29111.       n = e.allowedLocation,
  29112.       a = e.titleOnly;
  29113.       return C.a.createElement('div', {
  29114.         className: 'reveal-preview__card'.concat((e = e.extraClass) ? ' '.concat(e) : '')
  29115.       }, C.a.createElement('p', {
  29116.         className: 'primary-comment'
  29117.       }, C.a.createElement('span', {
  29118.         className: 'icon-checkmark'
  29119.       }), ' ', t, ' Ads Position'), a ? null : C.a.createElement('p', {
  29120.         className: 'secondary-comment'
  29121.       }, 'Ads are allowed ', n, ' comments'))
  29122.     }
  29123.     var X_ = Object(u.connect) (null, {
  29124.       emitTrackingEvent: Xo({
  29125.         zone: 'settings',
  29126.         section: 'ads'
  29127.       })
  29128.     }) (cs);
  29129.     Z_.propTypes = {
  29130.       adPosition: b.a.string.isRequired,
  29131.       allowedLocation: b.a.string.isRequired,
  29132.       titleOnly: b.a.bool,
  29133.       extraClass: b.a.string
  29134.     };
  29135.     function eE(e) {
  29136.       return C.a.createElement('div', {
  29137.         className: 'align'
  29138.       }, e.positionEnabled ? C.a.createElement(Z_, {
  29139.         adPosition: 'Recommendations',
  29140.         allowedLocation: 'recommendations',
  29141.         titleOnly: !0,
  29142.         extraClass: 'align align--middle spacing-top-double spacing-right padding-double'
  29143.       }) : null, C.a.createElement('img', {
  29144.         className: 'reveal-preview__image recommendations align-inline spacing-bottom-none',
  29145.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/reveal_preview/recommendations.png'
  29146.       }))
  29147.     }
  29148.     eE.propTypes = {
  29149.       positionEnabled: b.a.bool.isRequired
  29150.     };
  29151.     Ls = function (e) {
  29152.       return C.a.createElement('div', {
  29153.         className: 'reveal-preview text-center'
  29154.       }, C.a.createElement('div', {
  29155.         className: 'reveal-preview__inner'
  29156.       }, C.a.createElement('img', {
  29157.         className: 'reveal-preview__image spacing-top-none',
  29158.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/reveal_preview/site_content.png'
  29159.       }), e.adsPositionsEnabled.topEnabled ? C.a.createElement(Z_, {
  29160.         adPosition: 'Above',
  29161.         allowedLocation: 'above'
  29162.       }) : null, C.a.createElement('img', {
  29163.         className: 'reveal-preview__image',
  29164.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/reveal_preview/comments_top.png'
  29165.       }), e.adsPositionsEnabled.inthreadEnabled ? C.a.createElement(Z_, {
  29166.         adPosition: 'In-thread',
  29167.         allowedLocation: 'within'
  29168.       }) : null, C.a.createElement('img', {
  29169.         className: 'reveal-preview__image spacing-bottom-none',
  29170.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/reveal_preview/comments_bottom.png'
  29171.       }), e.adsPositionsEnabled.bottomEnabled ? C.a.createElement(Z_, {
  29172.         adPosition: 'Below',
  29173.         allowedLocation: 'below',
  29174.         extraClass: 'spacing-bottom-none'
  29175.       }) : null, e.recommendationsEnabled ? C.a.createElement(eE, {
  29176.         positionEnabled: !!e.adsPositionsEnabled.recommendationsEnabled
  29177.       }) : null))
  29178.     };
  29179.     Ls.displayName = 'AdPreviewer',
  29180.     Ls.propTypes = {
  29181.       adsPositionsEnabled: b.a.shape({
  29182.         topEnabled: b.a.bool,
  29183.         inthreadEnabled: b.a.bool,
  29184.         bottomEnabled: b.a.bool,
  29185.         recommendationsEnabled: b.a.bool
  29186.       }).isRequired,
  29187.       recommendationsEnabled: b.a.bool.isRequired
  29188.     };
  29189.     var tE = Ls,
  29190.     Lo = function (e) {
  29191.       var t = e.isSubHeading ? 'settings__subheading' : 'settings__header',
  29192.       n = 'text-gray'.concat(e.isSubHeading ? ' text-medium' : '');
  29193.       return C.a.createElement('header', {
  29194.         className: t
  29195.       }, C.a.createElement('h2', {
  29196.         className: 'text-gray-darker '.concat(e.isSubHeading ? 'text-large' : 'text-larger spacing-bottom-small')
  29197.       }, e.headline), e.description ? C.a.createElement('p', {
  29198.         className: n
  29199.       }, e.description) : null, e.subDescription ? C.a.createElement('p', {
  29200.         className: n
  29201.       }, e.subDescription) : null, e.children)
  29202.     };
  29203.     Lo.displayName = 'ForumSettingsHeader',
  29204.     Lo.propTypes = {
  29205.       headline: b.a.string.isRequired,
  29206.       description: b.a.node,
  29207.       subDescription: b.a.node,
  29208.       isSubHeading: b.a.bool,
  29209.       children: b.a.node
  29210.     };
  29211.     var nE = Lo;
  29212.     function aE(e) {
  29213.       return (aE = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  29214.         return typeof e
  29215.       }
  29216.        : function (e) {
  29217.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  29218.       }) (e)
  29219.     }
  29220.     function rE(t, e) {
  29221.       var n,
  29222.       a = Object.keys(t);
  29223.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  29224.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  29225.       })), a.push.apply(a, n)),
  29226.       a
  29227.     }
  29228.     function oE(t) {
  29229.       for (var e = 1; e < arguments.length; e++) {
  29230.         var n = null != arguments[e] ? arguments[e] : {
  29231.         };
  29232.         e % 2 ? rE(Object(n), !0).forEach(function (e) {
  29233.           pE(t, e, n[e])
  29234.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : rE(Object(n)).forEach(function (e) {
  29235.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  29236.         })
  29237.       }
  29238.       return t
  29239.     }
  29240.     function iE(e, t) {
  29241.       for (var n = 0; n < t.length; n++) {
  29242.         var a = t[n];
  29243.         a.enumerable = a.enumerable || !1,
  29244.         a.configurable = !0,
  29245.         'value' in a && (a.writable = !0),
  29246.         Object.defineProperty(e, a.key, a)
  29247.       }
  29248.     }
  29249.     function sE(e, t) {
  29250.       return (sE = Object.setPrototypeOf || function (e, t) {
  29251.         return e.__proto__ = t,
  29252.         e
  29253.       }) (e, t)
  29254.     }
  29255.     function lE(n) {
  29256.       var a = function () {
  29257.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  29258.         if (Reflect.construct.sham) return !1;
  29259.         if ('function' == typeof Proxy) return !0;
  29260.         try {
  29261.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  29262.           ], function () {
  29263.           })),
  29264.           !0
  29265.         } catch (e) {
  29266.           return !1
  29267.         }
  29268.       }();
  29269.       return function () {
  29270.         var e,
  29271.         t = uE(n);
  29272.         return e = a ? (e = uE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  29273.         t = this,
  29274.         !(e = e) || 'object' !== aE(e) && 'function' != typeof e ? cE(t) : e
  29275.       }
  29276.     }
  29277.     function cE(e) {
  29278.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  29279.       return e
  29280.     }
  29281.     function uE(e) {
  29282.       return (uE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  29283.         return e.__proto__ || Object.getPrototypeOf(e)
  29284.       }) (e)
  29285.     }
  29286.     function pE(e, t, n) {
  29287.       return t in e ? Object.defineProperty(e, t, {
  29288.         value: n,
  29289.         enumerable: !0,
  29290.         configurable: !0,
  29291.         writable: !0
  29292.       }) : e[t] = n,
  29293.       e
  29294.     }
  29295.     var dE = [
  29296.       'adsPositionTopEnabled',
  29297.       'adsPositionInthreadEnabled',
  29298.       'adsPositionBottomEnabled',
  29299.       'adsPositionRecommendationsEnabled'
  29300.     ],
  29301.     mE = [
  29302.       'adsPositionTopEnabled',
  29303.       'adsPositionBottomEnabled',
  29304.       'activationStarted'
  29305.     ],
  29306.     Mo = function () {
  29307.       !function (e, t) {
  29308.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  29309.         e.prototype = Object.create(t && t.prototype, {
  29310.           constructor: {
  29311.             value: e,
  29312.             writable: !0,
  29313.             configurable: !0
  29314.           }
  29315.         }),
  29316.         t && sE(e, t)
  29317.       }(o, A);
  29318.       var e,
  29319.       t,
  29320.       n,
  29321.       a = lE(o);
  29322.       function o(e) {
  29323.         var r;
  29324.         !function (e, t) {
  29325.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  29326.         }(this, o),
  29327.         pE(cE(r = a.call(this, e)), 'getStateFromForum', function (e) {
  29328.           e = e && e.settings || {
  29329.           };
  29330.           return {
  29331.             adsPositionTopEnabled: e.adsPositionTopEnabled,
  29332.             adsPositionInthreadEnabled: e.adsPositionInthreadEnabled,
  29333.             adsPositionBottomEnabled: e.adsPositionBottomEnabled,
  29334.             adsPositionRecommendationsEnabled: e.adsPositionRecommendationsEnabled
  29335.           }
  29336.         }),
  29337.         pE(cE(r), 'getOrganization', function () {
  29338.           return r.props.selection.organization || r.props.organizations[r.props.selection.forum.organization]
  29339.         }),
  29340.         pE(cE(r), 'isActivation', function () {
  29341.           return r.props.forumDetails && !r.props.forumDetails.settings.adsEnabled
  29342.         }),
  29343.         pE(cE(r), 'isTopBottomDisabled', function () {
  29344.           return !(r.props.selection.organization.eligibleForEarnings || r.isAdsOptional() || r.state.adsPositionTopEnabled || r.state.adsPositionBottomEnabled)
  29345.         }),
  29346.         pE(cE(r), 'isNewPolicy', function () {
  29347.           return r.props.forumDetails && r.props.forumDetails.newPolicy
  29348.         }),
  29349.         pE(cE(r), 'isAdsOptional', function () {
  29350.           return r.props.forumDetails && r.props.forumDetails.features && r.props.forumDetails.features.adsOptional
  29351.         }),
  29352.         pE(cE(r), 'adsReviewStatus', function () {
  29353.           return r.props.forumDetails && r.props.forumDetails.adsReviewStatus
  29354.         }),
  29355.         pE(cE(r), 'getImageToggleClassNameByName', function (e) {
  29356.           var t = '-'.concat(e.toLowerCase());
  29357.           return 'fieldset__card '.concat(r.state['show'.concat(e, 'ImageToggle')] ? '-show '.concat(t) : t)
  29358.         }),
  29359.         pE(cE(r), 'getAlertBar', function (e) {
  29360.           var t,
  29361.           n = !r.hasPositionEnabled(),
  29362.           a = r.isTopBottomDisabled();
  29363.           if (!e) if (n) e = 'At least one position must be allowed.';
  29364.            else {
  29365.             if (!a) return null;
  29366.             e = 'Please enable Top or Bottom placements.'
  29367.           }
  29368.           return (n && !r.isActivation() || r.isTopBottomDisabled()) && (t = r.isAdsOptional() ? r.isNewPolicy() ? C.a.createElement('span', null, ' Trying to deactivate ads? ', C.a.createElement('a', {
  29369.             href: '#deactivate'
  29370.           }, 'Start deactivation process »')) : C.a.createElement('span', null, ' Trying to deactivate ads? ', C.a.createElement(Uo, {
  29371.             path: '/settings/revenue/hub',
  29372.             selection: r.props.selection
  29373.           }, 'Start deactivation process »')) : (t = r.getOrganization(), r.isNewPolicy() ? C.a.createElement('span', null, ' Looking to remove ads? ', C.a.createElement(Us, {
  29374.             path: '/settings/subscription/',
  29375.             orgId: t.id,
  29376.             orgSlug: t.slug
  29377.           }, 'Upgrade Your Account')) : C.a.createElement('span', null, ' Looking to remove ads? ', C.a.createElement('br', null), C.a.createElement('a', {
  29378.             href: Pn.revealContact
  29379.           }, 'Contact our Publisher Support Team to upgrade your account.'), ' We\'ll get back to you shortly.'))),
  29380.           C.a.createElement(Ki, {
  29381.             message: e,
  29382.             alertType: 'error',
  29383.             topMarginClass: 'spacing-top-narrow'
  29384.           }, t)
  29385.         }),
  29386.         pE(cE(r), 'getActivationFields', function () {
  29387.           var e = mE;
  29388.           return r.props.forumDetails && r.props.forumDetails.settings.organicDiscoveryEnabled && e.push('adsPositionRecommendationsEnabled'),
  29389.           e
  29390.         }),
  29391.         pE(cE(r), 'updateActivationFields', function (n) {
  29392.           var e = r.getActivationFields();
  29393.           r.setState(e.reduce(function (e, t) {
  29394.             return oE(oE({
  29395.             }, e), {
  29396.             }, pE({
  29397.             }, t, n))
  29398.           }, {
  29399.           }))
  29400.         }),
  29401.         pE(cE(r), 'startActivation', function () {
  29402.           r.updateActivationFields(!0)
  29403.         }),
  29404.         pE(cE(r), 'cancelActivation', function () {
  29405.           r.updateActivationFields(!1)
  29406.         }),
  29407.         pE(cE(r), 'confirmDeactivation', function () {
  29408.           r.props.forumUpdateOnDisableAds().done(function (e) {
  29409.             r.setState({
  29410.               showForm: !1
  29411.             }),
  29412.             r.handleForumDetailsUpdate(e)
  29413.           })
  29414.         }),
  29415.         pE(cE(r), 'getDeactivateModule', function () {
  29416.           return r.isActivation() ? null : C.a.createElement('div', {
  29417.             className: 'content__wrap'
  29418.           }, C.a.createElement(X_, {
  29419.             isNewPolicy: r.isNewPolicy(),
  29420.             hasAdsOptional: r.isAdsOptional(),
  29421.             onDeactivate: r.confirmDeactivation,
  29422.             selection: r.props.selection,
  29423.             forumState: r.getStateFromForum(r.props.forumDetails)
  29424.           }))
  29425.         }),
  29426.         pE(cE(r), 'recommendationsTooltip', function (e, t) {
  29427.           return e ? t ? null : C.a.createElement(Ks, {
  29428.             emitEvent: function (e) {
  29429.               return r.props.emitTrackingEvent(oE({
  29430.                 area: 'recommendations_ads'
  29431.               }, e))
  29432.             },
  29433.             plan: 'plus',
  29434.             height: 18,
  29435.             organization: r.getOrganization(),
  29436.             iconClass: 'spacing-left-small'
  29437.           }) : C.a.createElement(Md, {
  29438.             tooltipKey: 'ads-recommendations',
  29439.             direction: 'bottom',
  29440.             content: C.a.createElement(C.a.Fragment, null, ' Recommendations are not enabled on this forum. ', C.a.createElement(Uo, {
  29441.               key: 'recommendations-link',
  29442.               path: '/settings/recommendations/',
  29443.               selection: r.props.selection
  29444.             }, 'Enable Recommendations'))
  29445.           })
  29446.         }),
  29447.         pE(cE(r), 'handleInputChange', function (e, t) {
  29448.           r.setState(pE({
  29449.           }, e, t.target.checked), function () {
  29450.             this.props.forumUpdateValidate(this.getSaveData())
  29451.           })
  29452.         }),
  29453.         pE(cE(r), 'hasFieldChanged', function (e) {
  29454.           return r.state[e] !== r.state.savedFields[e] && !(null === r.state.savedFields[e] && '' === r.state[e])
  29455.         }),
  29456.         pE(cE(r), 'handleViewExample', function (e) {
  29457.           e = 'show'.concat(e, 'ImageToggle');
  29458.           r.setState(pE({
  29459.           }, e, !r.state[e]))
  29460.         }),
  29461.         pE(cE(r), 'getSaveData', function () {
  29462.           return dE.reduce(function (e, t) {
  29463.             return e[t] = r.state[t] ? 1 : 0,
  29464.             e
  29465.           }, {
  29466.           })
  29467.         }),
  29468.         pE(cE(r), 'handleSaveChanges', function () {
  29469.           r.props.forumUpdateOnSave(r.getSaveData()).done(r.handleForumDetailsUpdate)
  29470.         }),
  29471.         pE(cE(r), 'hasUnsavedChanges', function () {
  29472.           return Object.keys(r.state.savedFields).some(function (e) {
  29473.             return r.hasFieldChanged(e)
  29474.           })
  29475.         }),
  29476.         pE(cE(r), 'handleForumDetailsUpdate', function (e) {
  29477.           r.trackSettingsUpdated(r.props.forumDetails, e.response),
  29478.           r.setState(r.getStateFromForum(e.response), r.props.fetchForumDetails)
  29479.         }),
  29480.         pE(cE(r), 'trackSettingsUpdated', function (e, t) {
  29481.           Jo.trackSettingsChanges({
  29482.             selection: r.props.selection,
  29483.             jesterData: {
  29484.               verb: 'update',
  29485.               zone: 'settings',
  29486.               section: 'reveal'
  29487.             },
  29488.             oldState: Jo.ensureBooleans(e.settings),
  29489.             newState: Jo.ensureBooleans(t.settings),
  29490.             keys: Jo.ADS_KEYS
  29491.           })
  29492.         }),
  29493.         pE(cE(r), 'togglePreview', function () {
  29494.           r.setState(function (e) {
  29495.             return {
  29496.               isPreviewVisible: !e.isPreviewVisible
  29497.             }
  29498.           })
  29499.         }),
  29500.         pE(cE(r), 'confirmNavigationIfUnsaved', function (e) {
  29501.           if (r.hasUnsavedChanges() && '/settings/revenue/hub' !== e.pathname) return 'You have unsaved changes. Do you want to leave this page?'
  29502.         }),
  29503.         pE(cE(r), 'hasPositionEnabled', function (e) {
  29504.           return (e = e || r.state).adsPositionTopEnabled || e.adsPositionInthreadEnabled || e.adsPositionBottomEnabled
  29505.         }),
  29506.         pE(cE(r), 'adsEnabled', function (e) {
  29507.           return !e && r.hasPositionEnabled()
  29508.         });
  29509.         e = r.getStateFromForum(r.props.forumDetails);
  29510.         return r.state = oE(oE({
  29511.         }, e), {
  29512.         }, {
  29513.           alertBar: null,
  29514.           isPreviewVisible: !0,
  29515.           savedFields: e
  29516.         }),
  29517.         r
  29518.       }
  29519.       return e = o,
  29520.       (t = [
  29521.         {
  29522.           key: 'componentDidMount',
  29523.           value: function () {
  29524.             var e = this;
  29525.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  29526.             this.props.emitTrackingEvent({
  29527.               verb: 'view',
  29528.               object_type: 'page',
  29529.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  29530.             }),
  29531.             this.props.fetchSubscription(),
  29532.             this.props.fetchForumDetails();
  29533.             var t = new window.XMLHttpRequest;
  29534.             t.open('GET', Pn.adsTxt),
  29535.             t.onreadystatechange = function () {
  29536.               t.readyState === window.XMLHttpRequest.DONE && 200 === t.status && e.setState({
  29537.                 adstxt: 'disqus.com, '.concat(e.props.selection.organization.id, ', DIRECT\n').concat(t.responseText)
  29538.               })
  29539.             },
  29540.             t.send()
  29541.           }
  29542.         },
  29543.         {
  29544.           key: 'componentWillReceiveProps',
  29545.           value: function (e) {
  29546.             var t;
  29547.             this.props.forumDetails !== e.forumDetails && (t = this.getStateFromForum(e.forumDetails), this.setState(oE(oE({
  29548.             }, t), {
  29549.             }, {
  29550.               savedFields: t
  29551.             }))),
  29552.             this.props.forumUpdateIsValidating && !e.forumUpdateIsValidating && this.setState({
  29553.               alertBar: this.getAlertBar(e.forumUpdateError)
  29554.             })
  29555.           }
  29556.         },
  29557.         {
  29558.           key: 'render',
  29559.           value: function () {
  29560.             var t = this;
  29561.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  29562.               isPolls: !1,
  29563.               organization: this.props.selection.organization
  29564.             });
  29565.             var e = this.props.forumDetails && this.props.forumDetails.settings.adsSettingsLocked,
  29566.             n = e || this.props.forumUpdateIsSaving,
  29567.             a = this.isActivation(),
  29568.             r = a && !this.state.activationStarted,
  29569.             o = this.props.forumDetails && this.props.forumDetails.permissions.canEditPayments,
  29570.             i = this.props.forumDetails && this.props.forumDetails.settings.organicDiscoveryEnabled,
  29571.             s = !this.hasUnsavedChanges() || this.props.forumUpdateIsSaving || !this.adsEnabled(this.props.forumUpdateError) || this.isTopBottomDisabled(),
  29572.             l = {
  29573.               topEnabled: this.state.adsPositionTopEnabled,
  29574.               inthreadEnabled: this.state.adsPositionInthreadEnabled,
  29575.               bottomEnabled: this.state.adsPositionBottomEnabled,
  29576.               recommendationsEnabled: this.state.adsPositionRecommendationsEnabled
  29577.             },
  29578.             c = this.isAdsOptional(),
  29579.             u = !c && this.state.adsPositionTopEnabled,
  29580.             p = !c && this.state.adsPositionRecommendationsEnabled;
  29581.             return this.props.forumDetailsIsFetching && !this.props.forumDetails ? C.a.createElement(Ji, null) : this.props.forumDetailsError ? C.a.createElement('div', {
  29582.               className: 'content__wrap spacing-bottom-double'
  29583.             }, C.a.createElement(Ki, {
  29584.               message: this.props.forumDetailsError,
  29585.               alertType: 'error'
  29586.             })) : this.props.forumDetails ? C.a.createElement('div', {
  29587.               className: 'layout__main'
  29588.             }, C.a.createElement('div', {
  29589.               className: 'content__wrap'
  29590.             }, C.a.createElement(nE, {
  29591.               headline: 'Ads Configuration',
  29592.               description: r ? null : 'Control the content and visual layout of the ads Disqus serves on your site.'
  29593.             }, r ? C.a.createElement(Ki, {
  29594.               alertType: 'error',
  29595.               message: C.a.createElement('span', null, 'Ads are currently deactivated. ', C.a.createElement('span', {
  29596.                 className: 'link link-inverted-opaque',
  29597.                 onClick: this.startActivation
  29598.               }, 'Activate ads now »'))
  29599.             }) : null), r ? null : C.a.createElement('section', {
  29600.               className: 'settings__content'
  29601.             }, e ? C.a.createElement('div', {
  29602.               className: 'ads-settings-inner alert alert--warning spacing-narrow text-medium'
  29603.             }, C.a.createElement('span', {
  29604.               className: 'help-block'
  29605.             }, C.a.createElement('strong', null, 'Looking to change the ad types on your site?'), C.a.createElement('br', null), C.a.createElement('a', {
  29606.               href: Pn.revealContact
  29607.             }, 'Contact our Publisher Support Team directly'), '. We\'d be happy to help.')) : null, C.a.createElement(nE, {
  29608.               isSubHeading: !0,
  29609.               headline: 'Positions',
  29610.               description: 'Disqus will only display ads in the positions that you select below:'
  29611.             }), C.a.createElement(Ob, {
  29612.               name: 'adsTop',
  29613.               checked: this.state.adsPositionTopEnabled,
  29614.               label: 'Above Comments',
  29615.               secondaryLabel: C.a.createElement(C.a.Fragment, null, 'Allow ads above the comments.', u ? C.a.createElement(Ks, {
  29616.                 emitEvent: function (e) {
  29617.                   return t.props.emitTrackingEvent(oE({
  29618.                     area: 'top_ads'
  29619.                   }, e))
  29620.                 },
  29621.                 plan: 'plus',
  29622.                 height: 18,
  29623.                 organization: this.getOrganization(),
  29624.                 iconClass: 'spacing-left-small'
  29625.               }) : null),
  29626.               readOnly: n || u,
  29627.               idNamespace: this.constructor.displayName,
  29628.               onChange: this.handleInputChange.bind(this, 'adsPositionTopEnabled'),
  29629.               shouldHighlight: this.hasFieldChanged('adsPositionTopEnabled')
  29630.             }), C.a.createElement(Ob, {
  29631.               name: 'adsInthread',
  29632.               checked: this.state.adsPositionInthreadEnabled,
  29633.               label: 'In-thread',
  29634.               secondaryLabel: 'Allow ads within comments.',
  29635.               readOnly: n,
  29636.               idNamespace: this.constructor.displayName,
  29637.               onChange: this.handleInputChange.bind(this, 'adsPositionInthreadEnabled'),
  29638.               shouldHighlight: this.hasFieldChanged('adsPositionInthreadEnabled')
  29639.             }), C.a.createElement(Ob, {
  29640.               name: 'adsBottom',
  29641.               checked: this.state.adsPositionBottomEnabled,
  29642.               label: 'Below Comments',
  29643.               secondaryLabel: 'Allow ads below the comments.',
  29644.               readOnly: n,
  29645.               idNamespace: this.constructor.displayName,
  29646.               onChange: this.handleInputChange.bind(this, 'adsPositionBottomEnabled'),
  29647.               shouldHighlight: this.hasFieldChanged('adsPositionBottomEnabled')
  29648.             }), C.a.createElement(Ob, {
  29649.               name: 'adsRecommendations',
  29650.               checked: this.state.adsPositionRecommendationsEnabled && i,
  29651.               label: 'Recommendations',
  29652.               secondaryLabel: C.a.createElement(C.a.Fragment, null, 'Allow ads in Recommendations.', this.recommendationsTooltip(i, c)),
  29653.               readOnly: n || p || !i,
  29654.               idNamespace: this.constructor.displayName,
  29655.               onChange: this.handleInputChange.bind(this, 'adsPositionRecommendationsEnabled'),
  29656.               shouldHighlight: this.hasFieldChanged('adsPositionRecommendationsEnabled')
  29657.             }), C.a.createElement('div', {
  29658.               className: 'spacing-top-double'
  29659.             }, this.state.alertBar, C.a.createElement(Bh, {
  29660.               disabled: s,
  29661.               buttonLabel: a ? 'Activate Ads' : void 0,
  29662.               onClick: this.handleSaveChanges,
  29663.               isSaving: this.props.forumUpdateIsSaving,
  29664.               isSaved: this.props.forumUpdateIsSaved
  29665.             }, a ? C.a.createElement('button', {
  29666.               onClick: this.cancelActivation,
  29667.               className: 'button button-outline button-padding-wider button-medium spacing-left'
  29668.             }, 'Cancel') : null), C.a.createElement('div', {
  29669.               className: 'fieldset fieldset--save spacing-top'
  29670.             }, C.a.createElement('div', {
  29671.               className: 'fieldset__label'
  29672.             }), C.a.createElement('div', {
  29673.               className: 'fieldset__block'
  29674.             }, C.a.createElement('button', {
  29675.               className: 'button button-fill button-medium',
  29676.               onClick: this.togglePreview
  29677.             }, this.state.isPreviewVisible ? 'Hide Preview' : 'Show Preview', C.a.createElement('span', {
  29678.               className: 'spacing-left-small icon icon-arrow'
  29679.             }))))), this.state.isPreviewVisible ? C.a.createElement('div', {
  29680.               className: 'spacing-top-double'
  29681.             }, C.a.createElement(tE, {
  29682.               adsPositionsEnabled: l,
  29683.               recommendationsEnabled: i
  29684.             })) : null)), this.state.adstxt && !r ? C.a.createElement('div', {
  29685.               className: 'content__wrap'
  29686.             }, C.a.createElement(nE, {
  29687.               headline: 'Ads.txt',
  29688.               description: C.a.createElement('span', null, 'To ensure you\'re maximizing your ad revenue, please copy and paste the following up-to-date ads.txt lines onto your site. Need help? Check out ', C.a.createElement('a', {
  29689.                 href: 'https://help.disqus.com/en/articles/1765357-ads-txt-implementation-guide',
  29690.                 target: '_blank',
  29691.                 rel: 'noopener noreferrer'
  29692.               }, 'our implementation guide'), ' for some quick and easy instructions.')
  29693.             }), C.a.createElement('section', {
  29694.               className: 'settings__content'
  29695.             }, C.a.createElement($h, {
  29696.               name: 'adsTxt',
  29697.               value: this.state.adstxt,
  29698.               label: 'Ads.txt lines',
  29699.               idNamespace: this.constructor.displayName,
  29700.               inputOverrideClassName: 'input--textbox adstxt-lines',
  29701.               readOnly: !0,
  29702.               disabled: !0,
  29703.               useTextarea: !0,
  29704.               onChange: function () {
  29705.               }
  29706.             }), C.a.createElement('div', {
  29707.               className: 'fieldset fieldset--save'
  29708.             }, C.a.createElement('div', {
  29709.               className: 'fieldset__label'.concat(this.state.adsTxtCopied ? ' is-copied' : '')
  29710.             }, C.a.createElement('div', {
  29711.               className: this.state.adsTxtCopied ? 'icon-checkmark' : ''
  29712.             })), C.a.createElement('div', {
  29713.               className: 'fieldset__block'
  29714.             }, C.a.createElement('button', {
  29715.               className: 'button button-fill--brand button-padding-wider button-medium',
  29716.               onClick: function () {
  29717.                 window.navigator.clipboard.writeText(t.state.adstxt),
  29718.                 t.setState({
  29719.                   adsTxtCopied: !0
  29720.                 }),
  29721.                 setTimeout(function () {
  29722.                   return t.setState({
  29723.                     adsTxtCopied: !1
  29724.                   })
  29725.                 }, 1000)
  29726.               }
  29727.             }, 'Copy to clipboard'))))) : null, C.a.createElement('div', {
  29728.               className: 'content__wrap'
  29729.             }, C.a.createElement(nE, {
  29730.               headline: 'Payment',
  29731.               description: 'Control the way Disqus pays your site for earnings.'
  29732.             }), C.a.createElement('section', {
  29733.               className: 'settings__content'
  29734.             }, C.a.createElement('div', {
  29735.               className: 'fieldset'
  29736.             }, C.a.createElement('label', {
  29737.               className: 'fieldset__label text-gray'
  29738.             }, 'Payment Information'), C.a.createElement('div', {
  29739.               className: 'fieldset__block'
  29740.             }, o ? C.a.createElement('a', {
  29741.               target: '_blank',
  29742.               rel: 'noopener noreferrer',
  29743.               href: this.props.selection.forum.tipaltiUrl,
  29744.               className: 'button button-fill button-medium'
  29745.             }, 'Set up or update your payment method »') : C.a.createElement('strong', {
  29746.               className: 'text-gray text-small'
  29747.             }, 'Sorry! It seems you do not have permission to manage payment information.'), C.a.createElement('p', {
  29748.               className: 'fieldset__description text-small text-gray'
  29749.             }, 'Payments will be made by the end of the month for the previous quarter\'s earnings. ', C.a.createElement('a', {
  29750.               href: Pn.payments
  29751.             }, 'Learn more »')))))), r ? null : C.a.createElement('div', {
  29752.               className: 'content__wrap'
  29753.             }, C.a.createElement(nE, {
  29754.               headline: 'Advanced',
  29755.               description: 'General site settings that affect ads.'
  29756.             }), C.a.createElement('section', {
  29757.               className: 'settings__content'
  29758.             }, C.a.createElement(kf, {
  29759.               label: 'Appearance',
  29760.               blockAdditionalClass: 'fieldset__block--text text-medium',
  29761.               tooltip: C.a.createElement(C.a.Fragment, null, 'Ads take on the site\'s appearance settings. ', C.a.createElement(Uo, {
  29762.                 path: '/settings/general/',
  29763.                 selection: this.props.selection
  29764.               }, 'Modify site apperance.'))
  29765.             }, C.a.createElement('div', {
  29766.               className: 'align text-medium'
  29767.             }, C.a.createElement('div', {
  29768.               className: 'spacing-right fieldset-item__select'
  29769.             }, C.a.createElement('strong', null, 'Color Scheme'), C.a.createElement('br', null), uf[this.props.forumDetails.colorScheme]), C.a.createElement('div', {
  29770.               className: 'spacing-right fieldset-item__select'
  29771.             }, C.a.createElement('strong', null, 'Typography'), C.a.createElement('br', null), sf[this.props.forumDetails.typeface]))), C.a.createElement(kf, {
  29772.               label: 'Category',
  29773.               blockAdditionalClass: 'fieldset__block--text text-medium',
  29774.               tooltip: C.a.createElement(C.a.Fragment, null, 'Ads are affected by your site category. ', C.a.createElement(Uo, {
  29775.                 path: '/settings/general/',
  29776.                 selection: this.props.selection
  29777.               }, 'Modify site category.'))
  29778.             }, C.a.createElement('p', {
  29779.               className: 'text-medium'
  29780.             }, this.props.forumDetails.forumCategory ? this.props.forumDetails.forumCategory.name : C.a.createElement('em', null, 'Uncategorized'))))), C.a.createElement('div', {
  29781.               className: 'content__wrap'
  29782.             }, C.a.createElement('div', {
  29783.               className: 'padding-default border-bottom text-gray-dark text-center text-medium'
  29784.             }, C.a.createElement('p', {
  29785.               className: 'spacing-narrow'
  29786.             }, 'Need help? ', 'Want to earn more?'), C.a.createElement('a', {
  29787.               href: Pn.revealContact,
  29788.               className: 'button button-outline button-medium button-wide'
  29789.             }, 'Talk to our Publisher Support Team'))), this.getDeactivateModule()) : null
  29790.           }
  29791.         }
  29792.       ]) && iE(e.prototype, t),
  29793.       n && iE(e, n),
  29794.       o
  29795.     }();
  29796.     pE(Mo, 'displayName', 'ForumSettingsAds'),
  29797.     pE(Mo, 'propTypes', {
  29798.       history: b.a.shape({
  29799.         setRouteLeaveHook: b.a.func.isRequired
  29800.       }).isRequired,
  29801.       route: b.a.object.isRequired,
  29802.       organizations: b.a.object.isRequired,
  29803.       selection: ht.isRequired,
  29804.       fetchForumDetails: b.a.func.isRequired,
  29805.       forumUpdateOnSave: b.a.func.isRequired,
  29806.       forumUpdateOnDisableAds: b.a.func.isRequired,
  29807.       forumUpdateValidate: b.a.func.isRequired,
  29808.       forumUpdateIsValidating: b.a.bool.isRequired,
  29809.       emitTrackingEvent: b.a.func.isRequired,
  29810.       forumDetails: $c,
  29811.       forumDetailsError: b.a.string,
  29812.       forumDetailsIsFetching: b.a.bool,
  29813.       forumUpdateIsSaving: b.a.bool,
  29814.       forumUpdateIsSaved: b.a.bool,
  29815.       forumUpdateError: b.a.string,
  29816.       fetchSubscription: b.a.func.isRequired,
  29817.       orgCurrentPackage: Ur.PACKAGE_SHAPE
  29818.     }),
  29819.     pE(Mo, 'contextTypes', {
  29820.       auth: b.a.object
  29821.     });
  29822.     var ai = Object(u.connect) (function (e) {
  29823.       var t = e.forumDetails;
  29824.       return {
  29825.         forumDetails: t.forumDetails,
  29826.         forumDetailsError: t.forumDetailsError,
  29827.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  29828.         orgCurrentPackage: e.subscription.orgCurrentPackage,
  29829.         selection: e.selection
  29830.       }
  29831.     }, {
  29832.       emitTrackingEvent: Xo({
  29833.         zone: 'settings',
  29834.         section: 'ads'
  29835.       }),
  29836.       fetchForumDetails: ig,
  29837.       fetchSubscription: Hl
  29838.     }) (Ni.a.attachDrivers(Fo() (Mo), [
  29839.       m,
  29840.       bc
  29841.     ])),
  29842.     di = n(169),
  29843.     fE = n.n(di);
  29844.     function hE() {
  29845.       return (hE = Object.assign || function (e) {
  29846.         for (var t = 1; t < arguments.length; t++) {
  29847.           var n,
  29848.           a = arguments[t];
  29849.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  29850.         }
  29851.         return e
  29852.       }).apply(this, arguments)
  29853.     }
  29854.     var gE = Object.freeze({
  29855.       campaign: 'engage-reveal-policy',
  29856.       action: 'agree'
  29857.     });
  29858.     function yE(e) {
  29859.       return (yE = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  29860.         return typeof e
  29861.       }
  29862.        : function (e) {
  29863.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  29864.       }) (e)
  29865.     }
  29866.     function bE(e, t) {
  29867.       for (var n = 0; n < t.length; n++) {
  29868.         var a = t[n];
  29869.         a.enumerable = a.enumerable || !1,
  29870.         a.configurable = !0,
  29871.         'value' in a && (a.writable = !0),
  29872.         Object.defineProperty(e, a.key, a)
  29873.       }
  29874.     }
  29875.     function vE(e, t) {
  29876.       return (vE = Object.setPrototypeOf || function (e, t) {
  29877.         return e.__proto__ = t,
  29878.         e
  29879.       }) (e, t)
  29880.     }
  29881.     function _E(n) {
  29882.       var a = function () {
  29883.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  29884.         if (Reflect.construct.sham) return !1;
  29885.         if ('function' == typeof Proxy) return !0;
  29886.         try {
  29887.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  29888.           ], function () {
  29889.           })),
  29890.           !0
  29891.         } catch (e) {
  29892.           return !1
  29893.         }
  29894.       }();
  29895.       return function () {
  29896.         var e,
  29897.         t = EE(n);
  29898.         return e = a ? (e = EE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  29899.         t = this,
  29900.         !(e = e) || 'object' !== yE(e) && 'function' != typeof e ? function (e) {
  29901.           if (void 0 !== e) return e;
  29902.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  29903.         }(t) : e
  29904.       }
  29905.     }
  29906.     function EE(e) {
  29907.       return (EE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  29908.         return e.__proto__ || Object.getPrototypeOf(e)
  29909.       }) (e)
  29910.     }
  29911.     function OE(e, t, n) {
  29912.       return t in e ? Object.defineProperty(e, t, {
  29913.         value: n,
  29914.         enumerable: !0,
  29915.         configurable: !0,
  29916.         writable: !0
  29917.       }) : e[t] = n,
  29918.       e
  29919.     }
  29920.     var SE = [
  29921.       {
  29922.         key: 'section1',
  29923.         header: 'What is Disqus?',
  29924.         text: C.a.createElement('span', null, 'Disqus is a platform for publishers to build and engage with their audiences. ', C.a.createElement('strong', null, 'Engage'), ' is the most popular comment system used across the web, and ', C.a.createElement('strong', null, 'Reveal'), ' is the integrated system that helps publishers earn incremental revenue through advertising.')
  29925.       },
  29926.       {
  29927.         key: 'section2',
  29928.         header: 'What is Disqus Engage? The world\'s most popular comment system',
  29929.         text: C.a.createElement('span', null, 'Engage by Disqus makes building and managing communities easier for publishers. Millions of people already use Disqus to post more than 50 million comments every month. It\'s easy to install using a plugin or universal code, so you can get going right away!')
  29930.       },
  29931.       {
  29932.         key: 'section3',
  29933.         header: 'What is Disqus Reveal? Do I have to use it?',
  29934.         text: C.a.createElement('span', null, 'Reveal helps publishers generate revenue through integrated ads and keeps Disqus free to use. Reveal is a default part of Disqus. If advertising is not a good fit for your site, we offer an ad-free version of Disqus for an affordable monthly subscription.')
  29935.       }
  29936.     ],
  29937.     wi = function () {
  29938.       !function (e, t) {
  29939.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  29940.         e.prototype = Object.create(t && t.prototype, {
  29941.           constructor: {
  29942.             value: e,
  29943.             writable: !0,
  29944.             configurable: !0
  29945.           }
  29946.         }),
  29947.         t && vE(e, t)
  29948.       }(r, A);
  29949.       var e,
  29950.       t,
  29951.       n,
  29952.       a = _E(r);
  29953.       function r() {
  29954.         return function (e, t) {
  29955.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  29956.         }(this, r),
  29957.         a.apply(this, arguments)
  29958.       }
  29959.       return e = r,
  29960.       (t = [
  29961.         {
  29962.           key: 'componentWillUnmount',
  29963.           value: function () {
  29964.             this.props.abortPolicyApiCall()
  29965.           }
  29966.         },
  29967.         {
  29968.           key: 'render',
  29969.           value: function () {
  29970.             return C.a.createElement('div', null, C.a.createElement('header', {
  29971.               className: 'alert--brand padding-default border-radius-sm-top'
  29972.             }, C.a.createElement('div', {
  29973.               className: 'text-center spacing-top-narrow spacing-bottom-narrow'
  29974.             }, C.a.createElement('strong', null, 'Welcome to Disqus!'))), C.a.createElement('section', {
  29975.               className: 'settings__content'
  29976.             }, C.a.createElement('div', {
  29977.               className: 'align-min-tablet align--middle'
  29978.             }, C.a.createElement('div', {
  29979.               className: 'text-center-sm policy__content'
  29980.             }, SE.map(function (e) {
  29981.               return C.a.createElement('div', {
  29982.                 key: e.key,
  29983.                 className: 'spacing-top-double'
  29984.               }, C.a.createElement('h3', null, e.header), C.a.createElement('p', null, e.text))
  29985.             })), C.a.createElement('div', {
  29986.               className: 'spacing-left-double text-center relative__wrapper'
  29987.             }, C.a.createElement('img', {
  29988.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/policy/engage-reveal.png',
  29989.               className: 'img-responsive img-block spacing-center',
  29990.               width: '300'
  29991.             }), C.a.createElement('div', {
  29992.               className: 'policy__link'
  29993.             }, C.a.createElement('a', {
  29994.               href: 'https://disqus.com/features/?utm_source=policy&utm_medium=web',
  29995.               target: '_blank',
  29996.               rel: 'noopener noreferrer'
  29997.             }, C.a.createElement('strong', null, 'Learn how they work together.')))))), C.a.createElement('footer', {
  29998.               className: 'settings__footer'
  29999.             }, C.a.createElement('button', {
  30000.               className: 'button button-outline button-wide button-large',
  30001.               onClick: this.props.policyOnAgree.bind(null, this.props.history, this.props.isBaseInstallPath),
  30002.               disabled: this.props.policyIsSaving
  30003.             }, 'Got it. Let\'s get started!')))
  30004.           }
  30005.         }
  30006.       ]) && bE(e.prototype, t),
  30007.       n && bE(e, n),
  30008.       r
  30009.     }();
  30010.     OE(wi, 'displayName', 'SetupPolicyContent'),
  30011.     OE(wi, 'propTypes', {
  30012.       history: b.a.object.isRequired,
  30013.       selection: ht.isRequired,
  30014.       policyOnAgree: b.a.func.isRequired,
  30015.       policyIsSaving: b.a.bool
  30016.     });
  30017.     var wE = Object(u.connect) (function (e) {
  30018.       return {
  30019.         policyIsSaving: e.policy.policyIsSaving
  30020.       }
  30021.     }, {
  30022.       abortPolicyApiCall: function () {
  30023.         return function (e, t) {
  30024.           t = t().policy.apiCall;
  30025.           t && 'pending' === t.state() && t.abort()
  30026.         }
  30027.       },
  30028.       policyOnAgree: function (n, a) {
  30029.         return function (e, t) {
  30030.           e({
  30031.             type: le.saving
  30032.           });
  30033.           t = hE({
  30034.             organization: t().selection.organization.id
  30035.           }, gE),
  30036.           t = io.a.call('organizations/campaigns/performAction', {
  30037.             data: t,
  30038.             method: 'POST'
  30039.           }).always(function (e, t, n) {
  30040.             n({
  30041.               type: le.onSave
  30042.             });
  30043.             t = ho.getRoute(t ? '/install/' : '/settings/install/');
  30044.             e.push(t)
  30045.           }.bind(null, n, a, e));
  30046.           return e({
  30047.             type: le.setApiCall,
  30048.             apiCall: t
  30049.           }),
  30050.           t
  30051.         }
  30052.       }
  30053.     }) (wi);
  30054.     function PE(e) {
  30055.       return (PE = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  30056.         return typeof e
  30057.       }
  30058.        : function (e) {
  30059.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  30060.       }) (e)
  30061.     }
  30062.     function kE(e, t) {
  30063.       for (var n = 0; n < t.length; n++) {
  30064.         var a = t[n];
  30065.         a.enumerable = a.enumerable || !1,
  30066.         a.configurable = !0,
  30067.         'value' in a && (a.writable = !0),
  30068.         Object.defineProperty(e, a.key, a)
  30069.       }
  30070.     }
  30071.     function NE(e, t) {
  30072.       return (NE = Object.setPrototypeOf || function (e, t) {
  30073.         return e.__proto__ = t,
  30074.         e
  30075.       }) (e, t)
  30076.     }
  30077.     function CE(n) {
  30078.       var a = function () {
  30079.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  30080.         if (Reflect.construct.sham) return !1;
  30081.         if ('function' == typeof Proxy) return !0;
  30082.         try {
  30083.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  30084.           ], function () {
  30085.           })),
  30086.           !0
  30087.         } catch (e) {
  30088.           return !1
  30089.         }
  30090.       }();
  30091.       return function () {
  30092.         var e,
  30093.         t = xE(n);
  30094.         return e = a ? (e = xE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  30095.         t = this,
  30096.         !(e = e) || 'object' !== PE(e) && 'function' != typeof e ? RE(t) : e
  30097.       }
  30098.     }
  30099.     function RE(e) {
  30100.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  30101.       return e
  30102.     }
  30103.     function xE(e) {
  30104.       return (xE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  30105.         return e.__proto__ || Object.getPrototypeOf(e)
  30106.       }) (e)
  30107.     }
  30108.     function AE(e, t, n) {
  30109.       return t in e ? Object.defineProperty(e, t, {
  30110.         value: n,
  30111.         enumerable: !0,
  30112.         configurable: !0,
  30113.         writable: !0
  30114.       }) : e[t] = n,
  30115.       e
  30116.     }
  30117.     Fi = function () {
  30118.       !function (e, t) {
  30119.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  30120.         e.prototype = Object.create(t && t.prototype, {
  30121.           constructor: {
  30122.             value: e,
  30123.             writable: !0,
  30124.             configurable: !0
  30125.           }
  30126.         }),
  30127.         t && NE(e, t)
  30128.       }(o, A);
  30129.       var e,
  30130.       t,
  30131.       n,
  30132.       r = CE(o);
  30133.       function o() {
  30134.         var e;
  30135.         !function (e, t) {
  30136.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  30137.         }(this, o);
  30138.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  30139.         return AE(RE(e = r.call.apply(r, [
  30140.           this
  30141.         ].concat(n))), 'state', {
  30142.           policyModalOpen: !!fE() ().setup
  30143.         }),
  30144.         e
  30145.       }
  30146.       return e = o,
  30147.       (t = [
  30148.         {
  30149.           key: 'componentWillReceiveProps',
  30150.           value: function () {
  30151.             this.setState({
  30152.               policyModalOpen: !!fE() ().setup
  30153.             })
  30154.           }
  30155.         },
  30156.         {
  30157.           key: 'render',
  30158.           value: function () {
  30159.             var t = this;
  30160.             return this.props.selection.organization && this.props.selection.organization.pollsOnly ? C.a.createElement(Cm, {
  30161.               isPolls: !1,
  30162.               organization: this.props.selection.organization
  30163.             }) : C.a.createElement('div', null, C.a.createElement('div', {
  30164.               className: 'content__wrap'
  30165.             }, C.a.createElement('header', {
  30166.               className: 'settings__header'
  30167.             }, C.a.createElement('h2', {
  30168.               className: 'text-larger text-gray-darker spacing-bottom-small'
  30169.             }, 'What platform is your site on?')), C.a.createElement('div', {
  30170.               className: 'align align--wrap align--install spacing-top'
  30171.             }, vf.map(function (e) {
  30172.               return C.a.createElement('div', {
  30173.                 className: 'platform-list__option',
  30174.                 key: e.id
  30175.               }, C.a.createElement(Uo, {
  30176.                 path: '/settings/'.concat(e.id, '/'),
  30177.                 linkClassName: 'text-large link-gray-darker',
  30178.                 selection: t.props.selection
  30179.               }, C.a.createElement('div', {
  30180.                 className: 'platform-list__icon -'.concat(e.id)
  30181.               }, C.a.createElement('img', {
  30182.                 src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/install_icons/'.concat(e.id, '.png'),
  30183.                 alt: e.name,
  30184.                 height: '64',
  30185.                 width: '64'
  30186.               })), e.name))
  30187.             })), C.a.createElement('div', {
  30188.               className: 'align align--around spacing-top-quad spacing-bottom-quad'
  30189.             }, C.a.createElement(Uo, {
  30190.               path: '/settings/universalcode/',
  30191.               linkClassName: 'text-large',
  30192.               selection: this.props.selection
  30193.             }, C.a.createElement('div', {
  30194.               className: 'platform-list__universal align align--middle'
  30195.             }, C.a.createElement('img', {
  30196.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/install_icons/universal-code.svg',
  30197.               alt: 'Universal Code',
  30198.               height: '64',
  30199.               width: '64'
  30200.             }), C.a.createElement('span', null, 'I don\'t see my platform listed, install manually with ', C.a.createElement('strong', null, 'Universal Code'))))), C.a.createElement(_.a, {
  30201.               className: 'admin-modal -widest -clipped',
  30202.               overlayClassName: 'modal-overlay',
  30203.               isOpen: this.state.policyModalOpen,
  30204.               onRequestClose: null
  30205.             }, C.a.createElement(wE, {
  30206.               selection: this.props.selection,
  30207.               history: this.props.history
  30208.             }))))
  30209.           }
  30210.         }
  30211.       ]) && kE(e.prototype, t),
  30212.       n && kE(e, n),
  30213.       o
  30214.     }();
  30215.     AE(Fi, 'displayName', 'ForumSettingsInstall'),
  30216.     AE(Fi, 'propTypes', {
  30217.       history: b.a.object.isRequired,
  30218.       selection: ht.isRequired
  30219.     });
  30220.     Yi = Object(u.connect) (function (e) {
  30221.       return {
  30222.         selection: e.selection
  30223.       }
  30224.     }) (Fo() (Fi)),
  30225.     Vi = {
  30226.       fetch: function (e) {
  30227.         return function (t) {
  30228.           t({
  30229.             type: te.fetching
  30230.           }),
  30231.           io.a.call('forums/webhooks/list', {
  30232.             data: {
  30233.               forum: e
  30234.             },
  30235.             success: function (e) {
  30236.               t({
  30237.                 type: te.onFetch,
  30238.                 subscriptionList: e.response
  30239.               })
  30240.             },
  30241.             error: function () {
  30242.               t({
  30243.                 type: te.onFetchError,
  30244.                 message: 'An error occurred trying to fetch your webhook subscriptions.'
  30245.               })
  30246.             }
  30247.           })
  30248.         }
  30249.       },
  30250.       save: function (n, a) {
  30251.         return function (t) {
  30252.           t({
  30253.             type: te.saving
  30254.           });
  30255.           var e = {
  30256.             subscription: n.id,
  30257.             enableSending: n.enableSending ? 1 : 0
  30258.           };
  30259.           (a.url || a.secret) && (e.url = n.url, e.secret = n.secret),
  30260.           io.a.call('forums/webhooks/update', {
  30261.             method: 'POST',
  30262.             data: e,
  30263.             success: function (e) {
  30264.               t({
  30265.                 type: te.onSave,
  30266.                 savedSubscription: e.response
  30267.               })
  30268.             },
  30269.             error: function () {
  30270.               t({
  30271.                 type: te.onSaveError,
  30272.                 message: 'An error occurred trying to save your webhook subscription.'
  30273.               })
  30274.             }
  30275.           })
  30276.         }
  30277.       },
  30278.       selectSubscription: function (t) {
  30279.         return function (e) {
  30280.           e({
  30281.             type: te.selectSubscription,
  30282.             subscription: t
  30283.           })
  30284.         }
  30285.       },
  30286.       updateInput: function (t, n) {
  30287.         return function (e) {
  30288.           e({
  30289.             type: te.updateInput,
  30290.             name: t,
  30291.             evt: n
  30292.           })
  30293.         }
  30294.       }
  30295.     };
  30296.     function DE(e) {
  30297.       return (DE = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  30298.         return typeof e
  30299.       }
  30300.        : function (e) {
  30301.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  30302.       }) (e)
  30303.     }
  30304.     function jE(e, t) {
  30305.       for (var n = 0; n < t.length; n++) {
  30306.         var a = t[n];
  30307.         a.enumerable = a.enumerable || !1,
  30308.         a.configurable = !0,
  30309.         'value' in a && (a.writable = !0),
  30310.         Object.defineProperty(e, a.key, a)
  30311.       }
  30312.     }
  30313.     function TE(e, t) {
  30314.       return (TE = Object.setPrototypeOf || function (e, t) {
  30315.         return e.__proto__ = t,
  30316.         e
  30317.       }) (e, t)
  30318.     }
  30319.     function IE(n) {
  30320.       var a = function () {
  30321.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  30322.         if (Reflect.construct.sham) return !1;
  30323.         if ('function' == typeof Proxy) return !0;
  30324.         try {
  30325.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  30326.           ], function () {
  30327.           })),
  30328.           !0
  30329.         } catch (e) {
  30330.           return !1
  30331.         }
  30332.       }();
  30333.       return function () {
  30334.         var e,
  30335.         t = FE(n);
  30336.         return e = a ? (e = FE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  30337.         t = this,
  30338.         !(e = e) || 'object' !== DE(e) && 'function' != typeof e ? qE(t) : e
  30339.       }
  30340.     }
  30341.     function qE(e) {
  30342.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  30343.       return e
  30344.     }
  30345.     function FE(e) {
  30346.       return (FE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  30347.         return e.__proto__ || Object.getPrototypeOf(e)
  30348.       }) (e)
  30349.     }
  30350.     function LE(e, t, n) {
  30351.       return t in e ? Object.defineProperty(e, t, {
  30352.         value: n,
  30353.         enumerable: !0,
  30354.         configurable: !0,
  30355.         writable: !0
  30356.       }) : e[t] = n,
  30357.       e
  30358.     }
  30359.     yc = function () {
  30360.       !function (e, t) {
  30361.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  30362.         e.prototype = Object.create(t && t.prototype, {
  30363.           constructor: {
  30364.             value: e,
  30365.             writable: !0,
  30366.             configurable: !0
  30367.           }
  30368.         }),
  30369.         t && TE(e, t)
  30370.       }(o, A);
  30371.       var e,
  30372.       t,
  30373.       n,
  30374.       r = IE(o);
  30375.       function o() {
  30376.         var t;
  30377.         !function (e, t) {
  30378.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  30379.         }(this, o);
  30380.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  30381.         return LE(qE(t = r.call.apply(r, [
  30382.           this
  30383.         ].concat(n))), 'getListPlaceholderContent', function () {
  30384.           var e = t.props.forumWebhooks;
  30385.           return e.fetchError ? C.a.createElement('div', {
  30386.             className: 'spacing-default'
  30387.           }, C.a.createElement(Ki, {
  30388.             message: e.fetchError,
  30389.             alertType: 'error'
  30390.           })) : e.isFetching ? C.a.createElement(Ji, null) : (e.subscriptionList || [
  30391.           ]).length ? null : C.a.createElement('p', {
  30392.             className: 'text-small text-gray text-center padding-double'
  30393.           }, 'This site has no webhook subscriptions yet.')
  30394.         }),
  30395.         t
  30396.       }
  30397.       return e = o,
  30398.       (t = [
  30399.         {
  30400.           key: 'componentDidMount',
  30401.           value: function () {
  30402.             this.props.fetchSubscriptions(this.props.selection.forum.shortname)
  30403.           }
  30404.         },
  30405.         {
  30406.           key: 'render',
  30407.           value: function () {
  30408.             var t = this;
  30409.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  30410.               isPolls: !1,
  30411.               organization: this.props.selection.organization
  30412.             });
  30413.             var n = this.props.forumWebhooks,
  30414.             e = n.subscriptionList || [
  30415.             ],
  30416.             a = n.selectedSubscription;
  30417.             return C.a.createElement('div', null, a ? C.a.createElement('div', {
  30418.               className: 'content__wrap spacing-bottom-double'
  30419.             }, C.a.createElement('header', {
  30420.               className: 'settings__header'
  30421.             }, C.a.createElement('h2', {
  30422.               className: 'text-larger text-gray-darker spacing-bottom-small'
  30423.             }, 'Edit Webhook Subscription'), C.a.createElement('button', {
  30424.               className: 'button button-link padding-small',
  30425.               onClick: this.props.onSelectSubscription.bind(null, null)
  30426.             }, '« Back to list')), C.a.createElement('section', null, C.a.createElement('div', {
  30427.               className: 'settings-list__item'
  30428.             }, n.saveError ? C.a.createElement(Ki, {
  30429.               message: n.saveError,
  30430.               alertType: 'error'
  30431.             }) : null, C.a.createElement($h, {
  30432.               name: 'url',
  30433.               value: a.url,
  30434.               label: 'Webhook URL',
  30435.               onChange: this.props.onSubscriptionInputChange.bind(null, 'url'),
  30436.               idNamespace: this.constructor.displayName,
  30437.               readOnly: n.isSaving,
  30438.               disabled: n.isSaving
  30439.             }), C.a.createElement($h, {
  30440.               name: 'secret',
  30441.               value: a.secret,
  30442.               label: 'Secret Key',
  30443.               onChange: this.props.onSubscriptionInputChange.bind(null, 'secret'),
  30444.               idNamespace: this.constructor.displayName,
  30445.               readOnly: n.isSaving,
  30446.               disabled: n.isSaving
  30447.             }), C.a.createElement(Ob, {
  30448.               name: 'enableSending',
  30449.               checked: a.enableSending,
  30450.               label: 'Enabled',
  30451.               secondaryLabel: 'Enable sending events',
  30452.               onChange: this.props.onSubscriptionInputChange.bind(null, 'enableSending'),
  30453.               idNamespace: this.constructor.displayName,
  30454.               readOnly: n.isSaving
  30455.             }))), C.a.createElement('footer', {
  30456.               className: 'settings__footer'
  30457.             }, C.a.createElement(Bh, {
  30458.               onClick: this.props.onSaveSubscription.bind(null, a, n.changedInputs),
  30459.               isSaving: n.isSaving,
  30460.               isSaved: n.isSaved,
  30461.               disabled: 0 === Object.keys(n.changedInputs).length
  30462.             }))) : C.a.createElement('div', {
  30463.               className: 'content__wrap spacing-bottom-double'
  30464.             }, C.a.createElement('header', {
  30465.               className: 'settings__header'
  30466.             }, C.a.createElement('h2', {
  30467.               className: 'text-larger text-gray-darker spacing-bottom-small'
  30468.             }, 'Manage Webhooks'), C.a.createElement('p', {
  30469.               className: 'text-gray'
  30470.             }, 'Webhooks allow another service to be notified when comments are posted or updated for this site. ', C.a.createElement('a', {
  30471.               href: Pn.webhooks,
  30472.               target: '_blank',
  30473.               rel: 'noopener noreferrer'
  30474.             }, 'Learn more »'))), C.a.createElement('section', null, this.getListPlaceholderContent(), e.map(function (e) {
  30475.               return C.a.createElement('div', {
  30476.                 className: 'settings-list__item',
  30477.                 key: e.id
  30478.               }, C.a.createElement('div', {
  30479.                 className: 'align align--between'
  30480.               }, C.a.createElement('div', {
  30481.                 className: 'spacing-right align'
  30482.               }, C.a.createElement('div', null, C.a.createElement('a', {
  30483.                 href: e.url,
  30484.                 className: 'text-medium text-semibold'
  30485.               }, e.url), C.a.createElement('p', {
  30486.                 className: 'text-small text-gray'
  30487.               }, 'Status: ', C.a.createElement('strong', null, e.enableSending ? 'Enabled' : 'Paused')))), C.a.createElement('div', {
  30488.                 className: 'align-min-tablet align--middle spacing-top-small spacing-bottom-small'
  30489.               }, C.a.createElement('button', {
  30490.                 className: 'button button-outline text-medium',
  30491.                 onClick: t.props.onSelectSubscription.bind(null, e),
  30492.                 disabled: n.isFetching
  30493.               }, 'Edit'))))
  30494.             }))))
  30495.           }
  30496.         }
  30497.       ]) && jE(e.prototype, t),
  30498.       n && jE(e, n),
  30499.       o
  30500.     }();
  30501.     LE(yc, 'displayName', 'ForumSettingsWebhooks'),
  30502.     LE(yc, 'propTypes', {
  30503.       selection: ht.isRequired,
  30504.       fetchSubscriptions: b.a.func.isRequired,
  30505.       onSaveSubscription: b.a.func.isRequired,
  30506.       onSelectSubscription: b.a.func.isRequired,
  30507.       onSubscriptionInputChange: b.a.func.isRequired,
  30508.       forumWebhooks: b.a.shape({
  30509.         changedInputs: b.a.object.isRequired,
  30510.         subscriptionList: b.a.arrayOf(b.a.any),
  30511.         isSaved: b.a.bool,
  30512.         isSaving: b.a.bool,
  30513.         isFetching: b.a.bool,
  30514.         fetchError: b.a.string,
  30515.         saveError: b.a.string
  30516.       }).isRequired
  30517.     });
  30518.     var Li = Object(u.connect) (function (e) {
  30519.       return {
  30520.         forumWebhooks: e.forumWebhooks,
  30521.         selection: e.selection
  30522.       }
  30523.     }, {
  30524.       fetchSubscriptions: Vi.fetch,
  30525.       onSaveSubscription: Vi.save,
  30526.       onSelectSubscription: Vi.selectSubscription,
  30527.       onSubscriptionInputChange: Vi.updateInput
  30528.     }) (yc),
  30529.     Pc = n(319),
  30530.     UE = n.n(Pc);
  30531.     function ME(e) {
  30532.       return (ME = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  30533.         return typeof e
  30534.       }
  30535.        : function (e) {
  30536.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  30537.       }) (e)
  30538.     }
  30539.     function BE(e, t) {
  30540.       for (var n = 0; n < t.length; n++) {
  30541.         var a = t[n];
  30542.         a.enumerable = a.enumerable || !1,
  30543.         a.configurable = !0,
  30544.         'value' in a && (a.writable = !0),
  30545.         Object.defineProperty(e, a.key, a)
  30546.       }
  30547.     }
  30548.     function zE(e, t) {
  30549.       return (zE = Object.setPrototypeOf || function (e, t) {
  30550.         return e.__proto__ = t,
  30551.         e
  30552.       }) (e, t)
  30553.     }
  30554.     function HE(n) {
  30555.       var a = function () {
  30556.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  30557.         if (Reflect.construct.sham) return !1;
  30558.         if ('function' == typeof Proxy) return !0;
  30559.         try {
  30560.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  30561.           ], function () {
  30562.           })),
  30563.           !0
  30564.         } catch (e) {
  30565.           return !1
  30566.         }
  30567.       }();
  30568.       return function () {
  30569.         var e,
  30570.         t = VE(n);
  30571.         return e = a ? (e = VE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  30572.         t = this,
  30573.         !(e = e) || 'object' !== ME(e) && 'function' != typeof e ? GE(t) : e
  30574.       }
  30575.     }
  30576.     function GE(e) {
  30577.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  30578.       return e
  30579.     }
  30580.     function VE(e) {
  30581.       return (VE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  30582.         return e.__proto__ || Object.getPrototypeOf(e)
  30583.       }) (e)
  30584.     }
  30585.     function WE(e, t, n) {
  30586.       return t in e ? Object.defineProperty(e, t, {
  30587.         value: n,
  30588.         enumerable: !0,
  30589.         configurable: !0,
  30590.         writable: !0
  30591.       }) : e[t] = n,
  30592.       e
  30593.     }
  30594.     Cl = function () {
  30595.       !function (e, t) {
  30596.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  30597.         e.prototype = Object.create(t && t.prototype, {
  30598.           constructor: {
  30599.             value: e,
  30600.             writable: !0,
  30601.             configurable: !0
  30602.           }
  30603.         }),
  30604.         t && zE(e, t)
  30605.       }(o, A);
  30606.       var e,
  30607.       t,
  30608.       n,
  30609.       r = HE(o);
  30610.       function o() {
  30611.         var e;
  30612.         !function (e, t) {
  30613.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  30614.         }(this, o);
  30615.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  30616.         return WE(GE(e = r.call.apply(r, [
  30617.           this
  30618.         ].concat(n))), 'state', {
  30619.           hasCopied: !1
  30620.         }),
  30621.         WE(GE(e), 'copyToClipboard', function (e) {
  30622.           var t = window.document.createElement('textarea');
  30623.           t.value = e,
  30624.           t.setAttribute('readonly', ''),
  30625.           t.style.position = 'absolute',
  30626.           t.style.left = '-9999px',
  30627.           window.document.body.appendChild(t),
  30628.           t.select(),
  30629.           window.document.execCommand('copy')
  30630.         }),
  30631.         WE(GE(e), 'handleCopyClick', function () {
  30632.           e.state.hasCopied || (e.copyToClipboard(e.props.children), e.setState({
  30633.             hasCopied: !0
  30634.           }), setTimeout(function () {
  30635.             e.setState({
  30636.               hasCopied: !1
  30637.             })
  30638.           }, 5000))
  30639.         }),
  30640.         e
  30641.       }
  30642.       return e = o,
  30643.       (t = [
  30644.         {
  30645.           key: 'componentDidMount',
  30646.           value: function () {
  30647.             UE.a.highlightBlock(this.node)
  30648.           }
  30649.         },
  30650.         {
  30651.           key: 'render',
  30652.           value: function () {
  30653.             var t = this;
  30654.             return C.a.createElement('div', {
  30655.               className: 'codeblock-wrapper'
  30656.             }, C.a.createElement('pre', {
  30657.               className: this.props.language,
  30658.               ref: function (e) {
  30659.                 return t.node = e
  30660.               }
  30661.             }, C.a.createElement('code', {
  30662.               className: 'highlight-'.concat(this.props.language).concat(this.props.inline ? ' inline' : '')
  30663.             }, this.props.children)), C.a.createElement('button', {
  30664.               className: 'codeblock-copy-button',
  30665.               onClick: this.handleCopyClick
  30666.             }, this.state.hasCopied ? 'Copied' : 'Copy'))
  30667.           }
  30668.         }
  30669.       ]) && BE(e.prototype, t),
  30670.       n && BE(e, n),
  30671.       o
  30672.     }();
  30673.     Cl.defaultProps = {
  30674.       language: 'html'
  30675.     },
  30676.     Cl.propTypes = {
  30677.       language: b.a.string,
  30678.       inline: b.a.bool,
  30679.       children: b.a.node
  30680.     };
  30681.     var YE = Cl;
  30682.     function QE(e) {
  30683.       return (QE = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  30684.         return typeof e
  30685.       }
  30686.        : function (e) {
  30687.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  30688.       }) (e)
  30689.     }
  30690.     function KE(e, t) {
  30691.       for (var n = 0; n < t.length; n++) {
  30692.         var a = t[n];
  30693.         a.enumerable = a.enumerable || !1,
  30694.         a.configurable = !0,
  30695.         'value' in a && (a.writable = !0),
  30696.         Object.defineProperty(e, a.key, a)
  30697.       }
  30698.     }
  30699.     function JE(e, t) {
  30700.       return (JE = Object.setPrototypeOf || function (e, t) {
  30701.         return e.__proto__ = t,
  30702.         e
  30703.       }) (e, t)
  30704.     }
  30705.     function $E(n) {
  30706.       var a = function () {
  30707.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  30708.         if (Reflect.construct.sham) return !1;
  30709.         if ('function' == typeof Proxy) return !0;
  30710.         try {
  30711.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  30712.           ], function () {
  30713.           })),
  30714.           !0
  30715.         } catch (e) {
  30716.           return !1
  30717.         }
  30718.       }();
  30719.       return function () {
  30720.         var e,
  30721.         t = XE(n);
  30722.         return e = a ? (e = XE(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  30723.         t = this,
  30724.         !(e = e) || 'object' !== QE(e) && 'function' != typeof e ? ZE(t) : e
  30725.       }
  30726.     }
  30727.     function ZE(e) {
  30728.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  30729.       return e
  30730.     }
  30731.     function XE(e) {
  30732.       return (XE = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  30733.         return e.__proto__ || Object.getPrototypeOf(e)
  30734.       }) (e)
  30735.     }
  30736.     function eO(e, t, n) {
  30737.       return t in e ? Object.defineProperty(e, t, {
  30738.         value: n,
  30739.         enumerable: !0,
  30740.         configurable: !0,
  30741.         writable: !0
  30742.       }) : e[t] = n,
  30743.       e
  30744.     }
  30745.     Yc = function () {
  30746.       !function (e, t) {
  30747.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  30748.         e.prototype = Object.create(t && t.prototype, {
  30749.           constructor: {
  30750.             value: e,
  30751.             writable: !0,
  30752.             configurable: !0
  30753.           }
  30754.         }),
  30755.         t && JE(e, t)
  30756.       }(o, A);
  30757.       var e,
  30758.       t,
  30759.       n,
  30760.       r = $E(o);
  30761.       function o() {
  30762.         var t;
  30763.         !function (e, t) {
  30764.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  30765.         }(this, o);
  30766.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  30767.         return eO(ZE(t = r.call.apply(r, [
  30768.           this
  30769.         ].concat(n))), 'handleClickEvent', function (e) {
  30770.           t.props.emitTrackingEvent({
  30771.             verb: 'click',
  30772.             zone: 'install',
  30773.             object_type: 'section',
  30774.             object_id: e,
  30775.             extra_data: JSON.stringify({
  30776.               platform: t.props.platformPageName
  30777.             })
  30778.           })
  30779.         }),
  30780.         t
  30781.       }
  30782.       return e = o,
  30783.       (t = [
  30784.         {
  30785.           key: 'componentDidMount',
  30786.           value: function () {
  30787.             this.props.emitTrackingEvent({
  30788.               verb: 'view',
  30789.               extra_data: JSON.stringify({
  30790.                 platform: this.props.platformPageName
  30791.               })
  30792.             })
  30793.           }
  30794.         },
  30795.         {
  30796.           key: 'render',
  30797.           value: function () {
  30798.             var e,
  30799.             t = this;
  30800.             this.context.auth.isAuthenticated || (e = C.a.createElement('div', {
  30801.               className: 'alert alert--brand text-medium spacing-double padding-double spacing-bottom-none border-radius-base'
  30802.             }, C.a.createElement('h2', {
  30803.               className: 'text-larger'
  30804.             }, 'Ready to install Disqus?'), C.a.createElement('p', null, 'Create an account to install Disqus on your site. These instructions only work if you have an account registered with Disqus and are logged in.'), C.a.createElement('a', {
  30805.               href: ''.concat(dt, '/publishers/signup/')
  30806.             }, C.a.createElement('button', {
  30807.               className: 'button button-medium button-padding-wide button-wide--mobile button-outline spacing-top'
  30808.             }, 'Get Started'))));
  30809.             var n = this.props.selection.type === ft.forum;
  30810.             return C.a.createElement('div', null, C.a.createElement('div', {
  30811.               className: 'content__wrap'
  30812.             }, C.a.createElement('header', {
  30813.               className: 'settings__header'
  30814.             }, C.a.createElement('div', {
  30815.               className: 'settings__header--icon -'.concat(this.props.platformClassName)
  30816.             }, C.a.createElement('img', {
  30817.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/install_icons/'.concat(this.props.platformClassName, '.png'),
  30818.               width: '28'
  30819.             })), C.a.createElement('h2', {
  30820.               className: 'text-larger text-gray-darker spacing-bottom-small'
  30821.             }, this.props.platformPageName, ' install instructions'), C.a.createElement('p', {
  30822.               className: 'text-gray'
  30823.             }, 'Not using ', this.props.platformPageName, '? ', C.a.createElement(v.Link, {
  30824.               to: this.props.isBaseInstallPath ? '/install/' : '/settings/install/'
  30825.             }, C.a.createElement('strong', null, 'Change platform')))), e, this.props.children, this.props.isBaseInstallPath ? C.a.createElement('footer', {
  30826.               className: 'settings__footer clearfix'
  30827.             }, C.a.createElement(v.Link, {
  30828.               to: '/install/',
  30829.               className: 'button button-fill button-padding-wide button-medium pull-left'
  30830.             }, 'Back'), n ? C.a.createElement(v.Link, {
  30831.               to: '/install/settings/',
  30832.               className: 'button button-fill--brand button-padding-wide button-medium pull-right',
  30833.               onClick: function () {
  30834.                 return t.handleClickEvent('configure')
  30835.               }
  30836.             }, 'Configure') : null) : null))
  30837.           }
  30838.         }
  30839.       ]) && KE(e.prototype, t),
  30840.       n && KE(e, n),
  30841.       o
  30842.     }();
  30843.     eO(Yc, 'displayName', 'InstallationInstruction'),
  30844.     eO(Yc, 'propTypes', {
  30845.       children: b.a.node.isRequired,
  30846.       platformClassName: b.a.string.isRequired,
  30847.       platformPageName: b.a.string.isRequired,
  30848.       emitTrackingEvent: b.a.func.isRequired,
  30849.       selection: ht,
  30850.       isBaseInstallPath: b.a.bool
  30851.     }),
  30852.     eO(Yc, 'contextTypes', {
  30853.       auth: b.a.object.isRequired
  30854.     });
  30855.     var tO = Object(u.connect) (null, {
  30856.       emitTrackingEvent: Xo({
  30857.         zone: 'install',
  30858.         section: 'platform'
  30859.       })
  30860.     }) (Yc),
  30861.     lh = function (e) {
  30862.       var t = ((e.selection || {
  30863.       }).forum || {
  30864.       }).shortname || 'EXAMPLE';
  30865.       return C.a.createElement(tO, {
  30866.         selection: e.selection,
  30867.         platformClassName: 'universalcode',
  30868.         platformPageName: 'Universal Code',
  30869.         isBaseInstallPath: e.isBaseInstallPath
  30870.       }, C.a.createElement('div', {
  30871.         className: 'settings__content'
  30872.       }, C.a.createElement('div', {
  30873.         className: 'video-wrapper'
  30874.       }, C.a.createElement('iframe', {
  30875.         id: 'ytplayer',
  30876.         type: 'text/html',
  30877.         width: '720',
  30878.         height: '405',
  30879.         src: 'https://www.youtube.com/embed/Dr6pSdeJgkA?modestbranding=1&rel=0&showinfo=0',
  30880.         frameBorder: '0',
  30881.         allowFullScreen: !0
  30882.       })), C.a.createElement('ol', {
  30883.         className: 'installation__instruction-list'
  30884.       }, C.a.createElement('li', null, 'Place the following code where you\'d like Disqus to load:', C.a.createElement('br', null), C.a.createElement(YE, {
  30885.         language: 'html'
  30886.       }, '<div id="disqus_thread"></div>\n<script>\n    /**\n    *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.\n    *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables    */\n    /*\n    var disqus_config = function () {\n    this.page.url = PAGE_URL;  // Replace PAGE_URL with your page\'s canonical URL variable\n    this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page\'s unique identifier variable\n    };\n    */\n    (function() { // DON\'T EDIT BELOW THIS LINE\n    var d = document, s = d.createElement(\'script\');\n    s.src = \'https://'.concat(t, '.disqus.com/embed.js\';\n    s.setAttribute(\'data-timestamp\', +new Date());\n    (d.head || d.body).appendChild(s);\n    })();\n</script>\n<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>'))), C.a.createElement('li', null, '(Recommended) Edit the ', C.a.createElement('code', null, 'RECOMMENDED CONFIGURATION VARIABLES'), ' section using your CMS or platform\'s dynamic values. See our ', C.a.createElement('a', {
  30887.         href: Pn.splitThreads
  30888.       }, 'documentation'), ' to learn why defining ', C.a.createElement('code', null, 'identifier'), ' and ', C.a.createElement('code', null, 'url'), ' is important for preventing duplicate threads.')), C.a.createElement('h2', {
  30889.         className: 'text-gray-dark text-larger spacing-bottom'
  30890.       }, 'How to display comment count'), C.a.createElement('div', {
  30891.         className: 'video-wrapper'
  30892.       }, C.a.createElement('iframe', {
  30893.         id: 'ytplayer',
  30894.         type: 'text/html',
  30895.         width: '720',
  30896.         height: '405',
  30897.         src: 'https://www.youtube.com/embed/EalamXPZFeY?modestbranding=1&rel=0&showinfo=0',
  30898.         frameBorder: '0',
  30899.         allowFullScreen: !0
  30900.       })), C.a.createElement('ol', {
  30901.         className: 'installation__instruction-list'
  30902.       }, C.a.createElement('li', null, 'Place the following code before your site\'s closing ', C.a.createElement('code', null, '</body>'), ' tag:', C.a.createElement('br', null), C.a.createElement(YE, {
  30903.         language: 'html'
  30904.       }, '<script id="dsq-count-scr" src="//'.concat(t, '.disqus.com/count.js" async></script>'))), C.a.createElement('li', null, 'Append ', C.a.createElement('code', null, '#disqus_thread'), ' to the ', C.a.createElement('code', null, 'href'), ' attribute in your links. This will tell Disqus which links to look up and return the comment count. For example: ', C.a.createElement('code', null, '<a href="http://foo.com/bar.html#disqus_thread">Link</a>'), '.')), C.a.createElement('h2', {
  30905.         className: 'text-gray-dark text-larger spacing-bottom'
  30906.       }, 'Additional customization'), C.a.createElement('div', {
  30907.         className: 'alert alert--muted text-medium'
  30908.       }, 'See our ', C.a.createElement('a', {
  30909.         href: Pn.commentCountLinks
  30910.       }, 'Adding comment count links to your home page'), ' documentation.')))
  30911.     };
  30912.     lh.displayName = 'UniversalCodeInstall',
  30913.     lh.propTypes = {
  30914.       selection: ht,
  30915.       isBaseInstallPath: b.a.bool
  30916.     };
  30917.     Fc = lh;
  30918.     function nO(e) {
  30919.       var t = window.opener;
  30920.       t && t.postMessage(e, '*')
  30921.     }
  30922.     sl = {
  30923.       configure: function (n, a) {
  30924.         return function (e) {
  30925.           e({
  30926.             type: Ee.configuring
  30927.           });
  30928.           var t = a.trim().split(' ');
  30929.           t.length < 2 ? e({
  30930.             type: Ee.onConfigureError,
  30931.             message: 'Your install token is invalid. Try copying and pasting it from your plugin installation page again.'
  30932.           }) : io.a.call('integration/wordpress/updateConfiguration', {
  30933.             method: 'POST',
  30934.             data: {
  30935.               forum: n,
  30936.               url: t[0],
  30937.               secret: t[1]
  30938.             },
  30939.             success: function () {
  30940.               e({
  30941.                 type: Ee.onConfigure
  30942.               }),
  30943.               nO('configurationUpdated')
  30944.             },
  30945.             error: function () {
  30946.               e({
  30947.                 type: Ee.onConfigureError,
  30948.                 message: 'An error occurred trying to configure your site. Make sure the Disqus plugin is installed and activated, and that your site is publicly accessible.'
  30949.               }),
  30950.               nO('configurationError')
  30951.             }
  30952.           })
  30953.         }
  30954.       },
  30955.       updateInstallToken: function (e) {
  30956.         return {
  30957.           type: Ee.updateInstallToken,
  30958.           token: e.data || e.target.value
  30959.         }
  30960.       }
  30961.     };
  30962.     function aO(e) {
  30963.       return (aO = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  30964.         return typeof e
  30965.       }
  30966.        : function (e) {
  30967.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  30968.       }) (e)
  30969.     }
  30970.     function rO(e, t) {
  30971.       for (var n = 0; n < t.length; n++) {
  30972.         var a = t[n];
  30973.         a.enumerable = a.enumerable || !1,
  30974.         a.configurable = !0,
  30975.         'value' in a && (a.writable = !0),
  30976.         Object.defineProperty(e, a.key, a)
  30977.       }
  30978.     }
  30979.     function oO(e, t) {
  30980.       return (oO = Object.setPrototypeOf || function (e, t) {
  30981.         return e.__proto__ = t,
  30982.         e
  30983.       }) (e, t)
  30984.     }
  30985.     function iO(n) {
  30986.       var a = function () {
  30987.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  30988.         if (Reflect.construct.sham) return !1;
  30989.         if ('function' == typeof Proxy) return !0;
  30990.         try {
  30991.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  30992.           ], function () {
  30993.           })),
  30994.           !0
  30995.         } catch (e) {
  30996.           return !1
  30997.         }
  30998.       }();
  30999.       return function () {
  31000.         var e,
  31001.         t = lO(n);
  31002.         return e = a ? (e = lO(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  31003.         t = this,
  31004.         !(e = e) || 'object' !== aO(e) && 'function' != typeof e ? sO(t) : e
  31005.       }
  31006.     }
  31007.     function sO(e) {
  31008.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  31009.       return e
  31010.     }
  31011.     function lO(e) {
  31012.       return (lO = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  31013.         return e.__proto__ || Object.getPrototypeOf(e)
  31014.       }) (e)
  31015.     }
  31016.     function cO(e, t, n) {
  31017.       return t in e ? Object.defineProperty(e, t, {
  31018.         value: n,
  31019.         enumerable: !0,
  31020.         configurable: !0,
  31021.         writable: !0
  31022.       }) : e[t] = n,
  31023.       e
  31024.     }
  31025.     var uO = !!window.opener,
  31026.     yl = function () {
  31027.       !function (e, t) {
  31028.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  31029.         e.prototype = Object.create(t && t.prototype, {
  31030.           constructor: {
  31031.             value: e,
  31032.             writable: !0,
  31033.             configurable: !0
  31034.           }
  31035.         }),
  31036.         t && oO(e, t)
  31037.       }(o, A);
  31038.       var e,
  31039.       t,
  31040.       n,
  31041.       r = iO(o);
  31042.       function o() {
  31043.         var t;
  31044.         !function (e, t) {
  31045.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  31046.         }(this, o);
  31047.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  31048.         return cO(sO(t = r.call.apply(r, [
  31049.           this
  31050.         ].concat(n))), 'handleReceivePostMessage', function (e) {
  31051.           ~e.data.indexOf('disqus/v1/settings') && t.props.updateInstallToken(e)
  31052.         }),
  31053.         cO(sO(t), 'submitInstallForum', function (e) {
  31054.           e.preventDefault();
  31055.           e = t.props.selection && t.props.selection.forum && t.props.selection.forum.shortname;
  31056.           e && t.props.configure(e, t.props.wordpressInstall.installToken)
  31057.         }),
  31058.         t
  31059.       }
  31060.       return e = o,
  31061.       (t = [
  31062.         {
  31063.           key: 'componentDidMount',
  31064.           value: function () {
  31065.             nO('installPageReady'),
  31066.             window.opener && window.addEventListener('message', this.handleReceivePostMessage, !1)
  31067.           }
  31068.         },
  31069.         {
  31070.           key: 'componentWillUnmount',
  31071.           value: function () {
  31072.             window.opener && window.removeEventListener('message', this.handleReceivePostMessage, !1)
  31073.           }
  31074.         },
  31075.         {
  31076.           key: 'render',
  31077.           value: function () {
  31078.             var e = (this.props.selection.forum || {
  31079.             }).shortname,
  31080.             t = this.props.wordpressInstall.installToken,
  31081.             n = this.props.wordpressInstall.isConfiguring ? 'Contacting your site…' : C.a.createElement('span', null, 'Install ', C.a.createElement('em', null, e), ' on your site'),
  31082.             e = this.props.wordpressInstall.isConfigured ? C.a.createElement('div', {
  31083.               className: 'spacing-top-double spacing-bottom'
  31084.             }, C.a.createElement('span', {
  31085.               className: 'icon icon-checkmark'
  31086.             }), ' Site updated. Click ', C.a.createElement('strong', null, 'Configure'), ' to continue setting up Disqus.') : e ? C.a.createElement('div', null, C.a.createElement('div', {
  31087.               className: 'video-wrapper'
  31088.             }, C.a.createElement('iframe', {
  31089.               id: 'ytplayer',
  31090.               type: 'text/html',
  31091.               width: '720',
  31092.               height: '405',
  31093.               src: 'https://www.youtube.com/embed/a4JBJXyuaFk?modestbranding=1&rel=0&showinfo=0',
  31094.               frameBorder: '0',
  31095.               allowFullScreen: !0
  31096.             })), C.a.createElement('ol', {
  31097.               className: 'installation__instruction-list'
  31098.             }, uO ? null : [
  31099.               C.a.createElement('li', {
  31100.                 key: '1'
  31101.               }, 'In the left panel of your WordPress admin, select ', C.a.createElement('strong', null, 'Plugins > Add New.')),
  31102.               C.a.createElement('li', {
  31103.                 key: '2'
  31104.               }, 'Search for "Disqus" and find the plugin provided by "Disqus".'),
  31105.               C.a.createElement('li', {
  31106.                 key: '3'
  31107.               }, 'Select ', C.a.createElement('strong', null, 'Install Now'), ' then ', C.a.createElement('strong', null, 'Activate Plugin')),
  31108.               C.a.createElement('li', {
  31109.                 key: '4'
  31110.               }, 'Click "Disqus" in the left panel of your WordPress admin.')
  31111.             ], C.a.createElement('li', null, C.a.createElement('form', {
  31112.               onSubmit: this.submitInstallForum
  31113.             }, C.a.createElement('label', null, 'Copy the ', C.a.createElement('strong', null, 'Installation Token'), ' and paste it into the form below to complete the installation', C.a.createElement('input', {
  31114.               type: 'text',
  31115.               className: 'input--textbox spacing-top-narrow',
  31116.               name: 'installToken',
  31117.               placeholder: 'Paste your WordPress install key here',
  31118.               value: t,
  31119.               onChange: this.props.updateInstallToken,
  31120.               disabled: !e
  31121.             })), C.a.createElement('button', {
  31122.               className: 'button button-fill--brand button-padding-wide button-medium spacing-top-narrow',
  31123.               disabled: this.props.wordpressInstall.isConfiguring || !t || !t.length
  31124.             }, n)), this.props.wordpressInstall.configureError ? C.a.createElement(Ki, {
  31125.               message: this.props.wordpressInstall.configureError,
  31126.               alertType: 'error'
  31127.             }) : null, C.a.createElement('div', null, C.a.createElement('h3', {
  31128.               className: 'spacing-top'
  31129.             }, 'Using manual installation?'), C.a.createElement('ul', {
  31130.               className: 'list-bullet'
  31131.             }, C.a.createElement('li', null, 'In the shortname field, enter your shortname: ', C.a.createElement('code', {
  31132.               className: 'inline'
  31133.             }, e)), C.a.createElement('li', null, 'Optionally, create an ', C.a.createElement('a', {
  31134.               href: 'https://disqus.com/api/applications/'
  31135.             }, 'API Application'), ' for your site.', C.a.createElement('ul', {
  31136.               className: 'list-circle'
  31137.             }, C.a.createElement('li', null, 'After registering the application, go to the settings tab and set ', C.a.createElement('strong', null, 'Default Access'), ' to ', C.a.createElement('em', null, 'Read, write, and manage forums'), '.'), C.a.createElement('li', null, 'On the plugin configuration page, enter the API key, secret, and access token and click ', C.a.createElement('strong', null, 'Save'), '.')))))))) : C.a.createElement('div', {
  31138.               className: 'spacing-top-double spacing-bottom'
  31139.             }, C.a.createElement('strong', null, 'Pick a Site'), ' or ', C.a.createElement('strong', null, 'Create a Site'), ' to continue installation.');
  31140.             return C.a.createElement(tO, {
  31141.               selection: this.props.selection,
  31142.               platformClassName: 'wordpress',
  31143.               platformPageName: 'WordPress',
  31144.               isBaseInstallPath: this.props.isBaseInstallPath
  31145.             }, C.a.createElement('div', {
  31146.               className: 'padding-double'
  31147.             }, e))
  31148.           }
  31149.         }
  31150.       ]) && rO(e.prototype, t),
  31151.       n && rO(e, n),
  31152.       o
  31153.     }();
  31154.     cO(yl, 'displayName', 'WordpressInstall'),
  31155.     cO(yl, 'propTypes', {
  31156.       selection: ht.isRequired,
  31157.       configure: b.a.func.isRequired,
  31158.       updateInstallToken: b.a.func.isRequired,
  31159.       wordpressInstall: b.a.shape({
  31160.         installToken: b.a.string,
  31161.         isConfiguring: b.a.bool,
  31162.         isConfigured: b.a.bool,
  31163.         configureError: b.a.string
  31164.       }).isRequired,
  31165.       isBaseInstallPath: b.a.bool,
  31166.       installToken: b.a.string,
  31167.       isConfiguring: b.a.bool,
  31168.       isConfigured: b.a.bool,
  31169.       configureError: b.a.string
  31170.     });
  31171.     Vb = {
  31172.       configure: sl.configure,
  31173.       updateInstallToken: sl.updateInstallToken
  31174.     },
  31175.     cu = Object(u.connect) (function (e) {
  31176.       return {
  31177.         wordpressInstall: e.wordpressInstall
  31178.       }
  31179.     }, Vb) (yl);
  31180.     function pO(e) {
  31181.       return (pO = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  31182.         return typeof e
  31183.       }
  31184.        : function (e) {
  31185.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  31186.       }) (e)
  31187.     }
  31188.     function dO(e, t) {
  31189.       for (var n = 0; n < t.length; n++) {
  31190.         var a = t[n];
  31191.         a.enumerable = a.enumerable || !1,
  31192.         a.configurable = !0,
  31193.         'value' in a && (a.writable = !0),
  31194.         Object.defineProperty(e, a.key, a)
  31195.       }
  31196.     }
  31197.     function mO(e, t) {
  31198.       return (mO = Object.setPrototypeOf || function (e, t) {
  31199.         return e.__proto__ = t,
  31200.         e
  31201.       }) (e, t)
  31202.     }
  31203.     function fO(n) {
  31204.       var a = function () {
  31205.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  31206.         if (Reflect.construct.sham) return !1;
  31207.         if ('function' == typeof Proxy) return !0;
  31208.         try {
  31209.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  31210.           ], function () {
  31211.           })),
  31212.           !0
  31213.         } catch (e) {
  31214.           return !1
  31215.         }
  31216.       }();
  31217.       return function () {
  31218.         var e,
  31219.         t = gO(n);
  31220.         return e = a ? (e = gO(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  31221.         t = this,
  31222.         !(e = e) || 'object' !== pO(e) && 'function' != typeof e ? hO(t) : e
  31223.       }
  31224.     }
  31225.     function hO(e) {
  31226.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  31227.       return e
  31228.     }
  31229.     function gO(e) {
  31230.       return (gO = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  31231.         return e.__proto__ || Object.getPrototypeOf(e)
  31232.       }) (e)
  31233.     }
  31234.     function yO(e, t, n) {
  31235.       return t in e ? Object.defineProperty(e, t, {
  31236.         value: n,
  31237.         enumerable: !0,
  31238.         configurable: !0,
  31239.         writable: !0
  31240.       }) : e[t] = n,
  31241.       e
  31242.     }
  31243.     Jc = function () {
  31244.       !function (e, t) {
  31245.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  31246.         e.prototype = Object.create(t && t.prototype, {
  31247.           constructor: {
  31248.             value: e,
  31249.             writable: !0,
  31250.             configurable: !0
  31251.           }
  31252.         }),
  31253.         t && mO(e, t)
  31254.       }(o, A);
  31255.       var e,
  31256.       t,
  31257.       n,
  31258.       r = fO(o);
  31259.       function o() {
  31260.         var t;
  31261.         !function (e, t) {
  31262.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  31263.         }(this, o);
  31264.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  31265.         return yO(hO(t = r.call.apply(r, [
  31266.           this
  31267.         ].concat(n))), 'handleClick', function (e) {
  31268.           e.preventDefault(),
  31269.           Au.openCurrentInstance(t.props.path)
  31270.         }),
  31271.         t
  31272.       }
  31273.       return e = o,
  31274.       (t = [
  31275.         {
  31276.           key: 'render',
  31277.           value: function () {
  31278.             return C.a.createElement('a', {
  31279.               href: ho.getRoute(this.props.path),
  31280.               onClick: this.handleClick,
  31281.               className: this.props.linkClassName
  31282.             }, this.props.children)
  31283.           }
  31284.         }
  31285.       ]) && dO(e.prototype, t),
  31286.       n && dO(e, n),
  31287.       o
  31288.     }();
  31289.     yO(Jc, 'propTypes', {
  31290.       children: b.a.node.isRequired,
  31291.       linkClassName: b.a.string,
  31292.       path: b.a.string.isRequired
  31293.     });
  31294.     var bO = Jc,
  31295.     Ru = function (e) {
  31296.       e = ((e.selection || {
  31297.       }).forum || {
  31298.       }).shortname || 'EXAMPLE';
  31299.       return C.a.createElement('form', {
  31300.         method: 'post',
  31301.         action: 'https://www.blogger.com/add-widget',
  31302.         target: '_blank'
  31303.       }, C.a.createElement('input', {
  31304.         type: 'hidden',
  31305.         name: 'infoUrl',
  31306.         value: 'https://'.concat(e, '.disqus.com/admin/settings/blogger/')
  31307.       }), C.a.createElement('input', {
  31308.         type: 'hidden',
  31309.         name: 'logoUrl',
  31310.         value: 'https://disqus.com/api/forums/favicons/'.concat(e, '.jpg')
  31311.       }), C.a.createElement('input', {
  31312.         type: 'hidden',
  31313.         name: 'widget.title',
  31314.         value: 'Disqus for '.concat(e)
  31315.       }), C.a.createElement('textarea', {
  31316.         name: 'widget.content',
  31317.         className: 'installation__textarea',
  31318.         style: {
  31319.           display: 'none'
  31320.         }
  31321.       }, '<!-- Disqus Widget -->'), C.a.createElement('input', {
  31322.         type: 'hidden',
  31323.         name: 'widget.template',
  31324.         value: '<b:includable id=\'main\'>\n<script type=\'text/javascript\'>\nvar disqus_shortname = \''.concat(e, '\';\nvar disqus_blogger_current_url = "<data:blog.canonicalUrl/>";\nif (!disqus_blogger_current_url.length) {\ndisqus_blogger_current_url = "<data:blog.url/>";\n}\nvar disqus_blogger_homepage_url = "<data:blog.homepageUrl/>";\nvar disqus_blogger_canonical_homepage_url = "<data:blog.canonicalHomepageUrl/>";\n</script>\n<b:if cond=\'data:blog.pageType == "item"\'>\n<style type=\'text/css\'>\n#comments {display:none;}\n</style>\n<script type=\'text/javascript\'>\n(function() {\n    var bloggerjs = document.createElement(\'script\');\n    bloggerjs.type = \'text/javascript\';\n    bloggerjs.async = true;\n    bloggerjs.src = \'//\' + disqus_shortname + \'.disqus.com/blogger_item.js\';\n    (document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0]).appendChild(bloggerjs);\n})();\n</script>\n</b:if>\n<style type=\'text/css\'>\n.post-comment-link { visibility: hidden; }\n</style>\n<script type=\'text/javascript\'>\n(function() {\nvar bloggerjs = document.createElement(\'script\');\nbloggerjs.type = \'text/javascript\';\nbloggerjs.async = true;\nbloggerjs.src = \'//\' + disqus_shortname + \'.disqus.com/blogger_index.js\';\n(document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0]).appendChild(bloggerjs);\n})();\n</script>\n</b:includable>')
  31325.       }), C.a.createElement('button', {
  31326.         className: 'button button-fill--brand button-padding-wide button-medium',
  31327.         name: 'go'
  31328.       }, 'Add '.concat(e, ' to my Blogger site')))
  31329.     };
  31330.     Ru.displayName = 'UniversalCodeInstallationBloggerWidget',
  31331.     Ru.propTypes = {
  31332.       selection: ht
  31333.     };
  31334.     var vO = Ru,
  31335.     Bu = function (e, t) {
  31336.       var n = t.auth.isAuthenticated,
  31337.       t = ''.concat(dt, '/publishers/login/?next=').concat(window.location.pathname),
  31338.       t = n ? e.selection.forum ? C.a.createElement(vO, {
  31339.         selection: e.selection
  31340.       }) : C.a.createElement('p', null, C.a.createElement(bO, null, 'Please select a site'), ' to add the Blogger widget.') : C.a.createElement('p', null, C.a.createElement('a', {
  31341.         href: t
  31342.       }, 'Please login'), ' to add the Blogger widget.');
  31343.       return C.a.createElement(tO, {
  31344.         selection: e.selection,
  31345.         platformClassName: 'blogger',
  31346.         platformPageName: 'Blogger',
  31347.         isBaseInstallPath: e.isBaseInstallPath
  31348.       }, C.a.createElement('div', {
  31349.         className: 'padding-double'
  31350.       }, C.a.createElement('div', {
  31351.         className: 'video-wrapper'
  31352.       }, C.a.createElement('iframe', {
  31353.         id: 'ytplayer',
  31354.         type: 'text/html',
  31355.         width: '720',
  31356.         height: '405',
  31357.         src: 'https://www.youtube.com/embed/JldEG0XU9w8?modestbranding=1&rel=0&showinfo=0',
  31358.         frameBorder: '0',
  31359.         allowFullScreen: !0
  31360.       })), C.a.createElement('ol', {
  31361.         className: 'installation__instruction-list -blogger'
  31362.       }, C.a.createElement('li', null, t), C.a.createElement('li', null, 'Import your existing Blogger comments into Disqus at ', C.a.createElement(Uo, {
  31363.         path: '/discussions/import/platform/blogger/',
  31364.         selection: e.selection
  31365.       }, 'Discussions > Import'), '.'), C.a.createElement('li', null, 'Update your blogger template\'s meta tags for full Internet Explorer compatibility. ', C.a.createElement('a', {
  31366.         href: Pn.bloggerIEFix
  31367.       }, 'See instructions here.'))), C.a.createElement('div', {
  31368.         className: 'alert alert--muted text-medium'
  31369.       }, 'If the widget does not work, see ', C.a.createElement('a', {
  31370.         href: Pn.bloggerManualInstall
  31371.       }, 'Blogger Installation Help'), ' for instructions on how to update your Blogger template to work with the widget.')))
  31372.     };
  31373.     Bu.displayName = 'BloggerInstall',
  31374.     Bu.contextTypes = {
  31375.       auth: b.a.object.isRequired
  31376.     },
  31377.     Bu.propTypes = {
  31378.       selection: ht,
  31379.       isBaseInstallPath: b.a.bool
  31380.     };
  31381.     xu = Bu,
  31382.     h = function (e) {
  31383.       var t = ((e.selection || {
  31384.       }).forum || {
  31385.       }).shortname || 'EXAMPLE';
  31386.       return C.a.createElement(tO, {
  31387.         selection: e.selection,
  31388.         platformClassName: 'tumblr',
  31389.         platformPageName: 'Tumblr',
  31390.         isBaseInstallPath: e.isBaseInstallPath
  31391.       }, C.a.createElement('div', {
  31392.         className: 'padding-double'
  31393.       }, C.a.createElement('ol', {
  31394.         className: 'installation__instruction-list'
  31395.       }, C.a.createElement('li', null, 'In Tumblr, visit ', C.a.createElement('a', {
  31396.         href: 'https://www.tumblr.com/settings/',
  31397.         target: '_blank'
  31398.       }, C.a.createElement('strong', null, 'Settings')), ' > pick your blog > click ', C.a.createElement('span', {
  31399.         className: 'installation__instruction-tumblr-edit-theme'
  31400.       }, 'Edit theme')), C.a.createElement('li', null, 'In the shortname field, enter your shortname: ', C.a.createElement('code', {
  31401.         className: 'inline'
  31402.       }, t)), C.a.createElement('li', null, 'Save your theme and you\'re done.')), C.a.createElement('div', {
  31403.         className: 'alert alert--muted text-medium'
  31404.       }, C.a.createElement('p', null, C.a.createElement('strong', null, 'Note:'), ' If your Tumblr theme does not have built-in Disqus support, you can ', C.a.createElement('a', {
  31405.         href: Pn.tumblrManualInstall,
  31406.         target: '_blank'
  31407.       }, 'install Disqus manually'), '.'))))
  31408.     };
  31409.     h.displayName = 'TumblrInstall',
  31410.     h.propTypes = {
  31411.       selection: ht,
  31412.       isBaseInstallPath: b.a.bool
  31413.     };
  31414.     y = h,
  31415.     lt = function (e) {
  31416.       var t = ((e.selection || {
  31417.       }).forum || {
  31418.       }).shortname || 'EXAMPLE';
  31419.       return C.a.createElement(tO, {
  31420.         selection: e.selection,
  31421.         platformClassName: 'squarespace',
  31422.         platformPageName: 'Squarespace',
  31423.         isBaseInstallPath: e.isBaseInstallPath
  31424.       }, C.a.createElement('div', {
  31425.         className: 'padding-double'
  31426.       }, C.a.createElement('ol', {
  31427.         className: 'installation__instruction-list'
  31428.       }, C.a.createElement('li', null, 'Navigate to your Squarespace ', C.a.createElement('strong', null, 'Settings > Blogging'), ' page.'), C.a.createElement('li', null, 'In the Disqus shortname field, enter your shortname: ', C.a.createElement('code', {
  31429.         className: 'inline site-shortname'
  31430.       }, t), '.'), C.a.createElement('li', null, 'Navigate to your ', C.a.createElement('strong', null, 'Comments Settings'), ' page and select ', C.a.createElement('strong', null, 'Enable Comments Globally'), '.')), C.a.createElement('div', {
  31431.         className: 'alert alert--muted text-medium'
  31432.       }, C.a.createElement('strong', null, 'Note:'), ' This installation method enables Disqus on blog pages only.  To add Disqus to non-blog content like e-commerce pages, use the ', C.a.createElement(v.Link, {
  31433.         to: '/install/platforms/universalcode/'
  31434.       }, 'Universal Code'), ' instructions and Squarespace\'s ', C.a.createElement('a', {
  31435.         href: 'https://support.squarespace.com/hc/en-us/articles/205815908-Using-Code-Injection',
  31436.         target: '_blank'
  31437.       }, 'Code Injection'), ' tool.')))
  31438.     };
  31439.     lt.displayName = 'SquarespaceInstall',
  31440.     lt.propTypes = {
  31441.       selection: ht,
  31442.       isBaseInstallPath: b.a.bool
  31443.     };
  31444.     p = lt,
  31445.     ut = function (e) {
  31446.       var t = ((e.selection || {
  31447.       }).forum || {
  31448.       }).shortname || 'EXAMPLE';
  31449.       return C.a.createElement(tO, {
  31450.         selection: e.selection,
  31451.         platformClassName: 'typepad',
  31452.         platformPageName: 'TypePad',
  31453.         isBaseInstallPath: e.isBaseInstallPath
  31454.       }, C.a.createElement('div', {
  31455.         className: 'padding-double'
  31456.       }, C.a.createElement('ol', {
  31457.         className: 'installation__instruction-list'
  31458.       }, C.a.createElement('li', null, 'In your TypePad dashboard select ', C.a.createElement('strong', null, 'Design'), '.'), C.a.createElement('li', null, 'On the left sidebar select ', C.a.createElement('strong', null, 'Content'), '.'), C.a.createElement('li', null, 'Under Modules, choose ', C.a.createElement('strong', null, 'Embed your own HTML'), ' > ', C.a.createElement('strong', null, 'Add this module'), '.', C.a.createElement('div', {
  31459.         className: 'alert alert--muted text-medium'
  31460.       }, 'Note: If you do not have the Content or \'Embed Your Own HTML\' option with your design, please see Typepad\'s more specific ', C.a.createElement('a', {
  31461.         href: Pn.typePadHelp,
  31462.         target: '_blank',
  31463.         rel: 'noopener noreferrer'
  31464.       }, 'installation instructions'), '.')), C.a.createElement('li', null, 'In the label field type "Disqus".'), C.a.createElement('li', null, 'Copy and paste the following code into the HTML field.', 'EXAMPLE' === t ? C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  31465.         className: 'alert alert--muted text-medium spacing-top-small spacing-bottom-none'
  31466.       }, 'Make sure to replace ', C.a.createElement('i', null, 'EXAMPLE'), ' in the ', C.a.createElement('code', {
  31467.         className: 'inline'
  31468.       }, 'disqus_shortname'), ' with the shortname for your own forum.')) : null, C.a.createElement(YE, {
  31469.         language: 'html'
  31470.       }, '<script type=\'text/javascript\'>\n    var disqus_shortname = \''.concat(t, '\';\n    // DON\'T EDIT BELOW THIS LINE\n    (function () {\n        var loaded = false;\n        function loadDisqus() {\n            if (loaded) return;\n            loaded = true;\n            var div = document.getElementById(\'all-comments\');\n            div.innerHTML = \'\'; div.id = \'disqus_thread\';\n\n            var dsq = document.createElement(\'script\'); dsq.type = \'text/javascript\'; dsq.async = true;\n            dsq.src = \'https://\' + disqus_shortname + \'.disqus.com/embed.js\';\n\n            (document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0]).appendChild(dsq);\n\n        }\n\n        if ( document.getElementById(\'all-comments\') || document.readyState === "complete" ) {\n            return setTimeout( loadDisqus, 1 );\n        }\n\n        if ( document.addEventListener ) {\n            document.addEventListener( "DOMContentLoaded", loadDisqus, false );\n            window.addEventListener( "load", loadDisqus, false );\n        } else if ( document.attachEvent ) {\n            document.attachEvent( "onreadystatechange", loadDisqus );\n            window.attachEvent( "onload", loadDisqus);\n        }\n    }());\n</script>'))), C.a.createElement('li', null, 'On the left sidebar select ', C.a.createElement('strong', null, 'Custom CSS'), ' and copy and paste the following code.', C.a.createElement(YE, {
  31471.         language: 'css'
  31472.       }, '#all-comments {\n    display: none !important;\n}\n.comments-open {\n    display: none !important;\n}')), C.a.createElement('li', null, 'Save your changes.'))))
  31473.     };
  31474.     ut.displayName = 'TypepadInstall',
  31475.     ut.propTypes = {
  31476.       selection: ht,
  31477.       isBaseInstallPath: b.a.bool
  31478.     };
  31479.     Sn = ut,
  31480.     qn = function (e) {
  31481.       var t = ((e.selection || {
  31482.       }).forum || {
  31483.       }).shortname || 'EXAMPLE';
  31484.       return C.a.createElement(tO, {
  31485.         selection: e.selection,
  31486.         platformClassName: 'movabletype',
  31487.         platformPageName: 'Movable Type',
  31488.         isBaseInstallPath: e.isBaseInstallPath
  31489.       }, C.a.createElement('div', {
  31490.         className: 'padding-double'
  31491.       }, C.a.createElement('ol', {
  31492.         className: 'installation__instruction-list'
  31493.       }, C.a.createElement('li', null, 'Download the ', C.a.createElement('a', {
  31494.         href: 'https://media.disqus.com/disqus-movabletype-2.02.zip'
  31495.       }, 'Disqus plugin for Movable Type')), C.a.createElement('li', null, 'Unpack the archive to the ', C.a.createElement('code', {
  31496.         className: 'inline'
  31497.       }, '/path/to/movabletype'), ' directory inside of Movable Type.', C.a.createElement('div', {
  31498.         className: 'alert alert--muted text-medium'
  31499.       }, C.a.createElement('span', null, C.a.createElement('strong', null, 'Important:'), ' Maintain the directory structure of the archive. All extracted files should exist in: ', C.a.createElement('br', null), C.a.createElement('br', null), C.a.createElement('code', null, '/path/to/movabletype/plugins/disqus/'), ' — If your site doesn\'t allow global CGI execution, this path may be located in your cgi-bin.', C.a.createElement('br', null), C.a.createElement('br', null), C.a.createElement('code', null, '/path/to/movabletype/mt-static/plugins/disqus/')))), C.a.createElement('li', null, 'On your site\'s ', C.a.createElement('strong', null, 'Tools > Plugins'), ' page, enable the Disqus plugin.'), C.a.createElement('li', null, 'In the ', C.a.createElement('strong', null, 'Settings'), ' tab, choose ', C.a.createElement('strong', null, 'Install DISQUS')), C.a.createElement('li', null, 'Follow the walkthrough setup process. In the shortname field, enter your shortname: ', C.a.createElement('code', {
  31500.         className: 'inline'
  31501.       }, t), '.'), C.a.createElement('li', null, 'Choose ', C.a.createElement('strong', null, 'Publish Site'), ' and publish all files.'))))
  31502.     };
  31503.     qn.displayName = 'MovableTypeInstall',
  31504.     qn.propTypes = {
  31505.       selection: ht,
  31506.       isBaseInstallPath: b.a.bool
  31507.     };
  31508.     Ln = qn,
  31509.     i = function (e) {
  31510.       var t = ((e.selection || {
  31511.       }).forum || {
  31512.       }).shortname || 'EXAMPLE';
  31513.       return C.a.createElement(tO, {
  31514.         selection: e.selection,
  31515.         platformClassName: 'drupal',
  31516.         platformPageName: 'Drupal',
  31517.         isBaseInstallPath: e.isBaseInstallPath
  31518.       }, C.a.createElement('div', {
  31519.         className: 'padding-double'
  31520.       }, C.a.createElement('ol', {
  31521.         className: 'installation__instruction-list'
  31522.       }, C.a.createElement('li', null, 'Download the ', C.a.createElement('a', {
  31523.         href: 'https://www.drupal.org/project/disqus',
  31524.         target: '_blank'
  31525.       }, 'Disqus Drupal module'), '.'), C.a.createElement('li', null, 'Upload the Disqus module to your site\'s modules directory in ', C.a.createElement('code', {
  31526.         className: 'inline'
  31527.       }, 'sites/all/modules')), C.a.createElement('li', null, 'Visit ', C.a.createElement('strong', null, 'Administer > Site building > Modules'), ' and enable the module.'), C.a.createElement('li', null, 'Visit ', C.a.createElement('strong', null, 'Administer > Site configuration > Disqus'), '.'), C.a.createElement('li', null, 'In the shortname field, enter your shortname: ', C.a.createElement('code', {
  31528.         className: 'inline'
  31529.       }, t), '.'), C.a.createElement('li', null, 'Visit ', C.a.createElement('strong', null, 'Administer > User Management > Permissions'), ' and enable the "View Disqus Comments" permission.'))))
  31530.     };
  31531.     i.displayName = 'DrupalInstall',
  31532.     i.propTypes = {
  31533.       selection: ht,
  31534.       isBaseInstallPath: b.a.bool
  31535.     };
  31536.     c = i,
  31537.     go = function (e) {
  31538.       var t = ((e.selection || {
  31539.       }).forum || {
  31540.       }).shortname || 'EXAMPLE';
  31541.       return C.a.createElement(tO, {
  31542.         selection: e.selection,
  31543.         platformClassName: 'joomla',
  31544.         platformPageName: 'Joomla',
  31545.         isBaseInstallPath: e.isBaseInstallPath
  31546.       }, C.a.createElement('div', {
  31547.         className: 'padding-double'
  31548.       }, C.a.createElement('ol', {
  31549.         className: 'installation__instruction-list'
  31550.       }, C.a.createElement('li', null, 'Download the ', C.a.createElement('a', {
  31551.         href: 'http://extensions.joomla.org/extensions/extension/social-web/social-comments/disqus-comments',
  31552.         target: '_blank'
  31553.       }, 'Disqus for Joomla plug-in'), '.'), C.a.createElement('li', null, 'In your Joomla admin select ', C.a.createElement('strong', null, 'Extension Manager'), '.'), C.a.createElement('li', null, 'Upload the Disqus plugin.'), C.a.createElement('li', null, 'Under the Extensions menu choose ', C.a.createElement('strong', null, 'Plug-in Manager'), '.'), C.a.createElement('li', null, 'In the Disqus subdomain field, enter your shortname: ', C.a.createElement('code', {
  31554.         className: 'inline'
  31555.       }, t), '.'))))
  31556.     };
  31557.     go.displayName = 'JoomlaInstall',
  31558.     go.propTypes = {
  31559.       selection: ht,
  31560.       isBaseInstallPath: b.a.bool
  31561.     };
  31562.     bo = go,
  31563.     Qs = function (e) {
  31564.       return C.a.createElement(tO, {
  31565.         selection: e.selection,
  31566.         platformClassName: 'weebly',
  31567.         platformPageName: 'Weebly',
  31568.         isBaseInstallPath: e.isBaseInstallPath
  31569.       }, C.a.createElement('div', {
  31570.         className: 'padding-double'
  31571.       }, C.a.createElement('ol', {
  31572.         className: 'installation__instruction-list'
  31573.       }, C.a.createElement('li', null, 'Go to the Blog Settings button at the bottom of your blog.'), C.a.createElement('li', null, 'Choose "Disqus" from the Commenting System drop down menu.'), C.a.createElement('li', null, 'Enter your shortname in the Weebly "Disqus Shortname" field.'), C.a.createElement('li', null, 'Save your changes and Publish your site.'))))
  31574.     };
  31575.     Qs.displayName = 'WeeblyInstall',
  31576.     Qs.propTypes = {
  31577.       selection: ht,
  31578.       isBaseInstallPath: b.a.bool
  31579.     };
  31580.     Ts = Qs,
  31581.     ac = function (e) {
  31582.       var t = ((e.selection || {
  31583.       }).forum || {
  31584.       }).shortname || 'EXAMPLE';
  31585.       return C.a.createElement(tO, {
  31586.         selection: e.selection,
  31587.         platformClassName: 'strikingly',
  31588.         platformPageName: 'Strikingly',
  31589.         isBaseInstallPath: e.isBaseInstallPath
  31590.       }, C.a.createElement('div', {
  31591.         className: 'padding-double'
  31592.       }, C.a.createElement('ol', {
  31593.         className: 'installation__instruction-list'
  31594.       }, C.a.createElement('li', null, 'In Strikingly, click on ', C.a.createElement('strong', null, 'Manage Blog Posts'), '.'), C.a.createElement('li', null, 'In the ', C.a.createElement('strong', null, 'BLOG SETTINGS'), ' tab, enter your ', C.a.createElement('strong', null, 'shortname:'), ' ', C.a.createElement('code', {
  31595.         className: 'inline'
  31596.       }, t)), C.a.createElement('li', null, 'Click ', C.a.createElement('strong', null, 'SAVE CHANGES'), '.'))))
  31597.     };
  31598.     ac.displayName = 'StrikinglyInstall',
  31599.     ac.propTypes = {
  31600.       selection: ht,
  31601.       isBaseInstallPath: b.a.bool
  31602.     };
  31603.     cs = ac,
  31604.     Ls = function (e) {
  31605.       return C.a.createElement(tO, {
  31606.         selection: e.selection,
  31607.         platformClassName: 'jekyll',
  31608.         platformPageName: 'Jekyll',
  31609.         isBaseInstallPath: e.isBaseInstallPath
  31610.       }, C.a.createElement('div', {
  31611.         className: 'padding-double'
  31612.       }, C.a.createElement('ol', {
  31613.         className: 'installation__instruction-list'
  31614.       }, C.a.createElement('li', null, 'Add a variable called ', C.a.createElement('code', {
  31615.         className: 'inline'
  31616.       }, 'comments'), ' to the', C.a.createElement('a', {
  31617.         href: Pn.yamlFrontMatter,
  31618.         target: '_blank',
  31619.         rel: 'noopener noreferrer'
  31620.       }, ' ', 'YAML Front Matter'), ' and set its value to ', C.a.createElement('code', {
  31621.         className: 'inline'
  31622.       }, 'true'), '. A sample front matter might look like:', C.a.createElement('br', null), C.a.createElement(YE, {
  31623.         language: 'yaml'
  31624.       }, '---\nlayout: default\ncomments: true\n# other options\n---')), C.a.createElement('li', null, 'In between a ', C.a.createElement('code', {
  31625.         className: 'inline'
  31626.       }, '{% if page.comments %}'), ' and', ' ', 'a ', C.a.createElement('code', {
  31627.         className: 'inline'
  31628.       }, '{% endif %}'), ' tag, copy and paste the', ' ', C.a.createElement(v.Link, {
  31629.         to: '/install/platforms/universalcode'
  31630.       }, 'Universal Embed Code'), ' in the', ' ', 'appropriate template where you\'d like Disqus to load.')), C.a.createElement('div', {
  31631.         className: 'alert alert--muted text-medium'
  31632.       }, 'Note: Comments can be disabled per-page by setting ', C.a.createElement('code', {
  31633.         className: 'inline'
  31634.       }, 'comments: false'), ' or by not including the comments option at all.')))
  31635.     };
  31636.     Ls.displayName = 'JekyllInstall',
  31637.     Ls.propTypes = {
  31638.       selection: ht,
  31639.       isBaseInstallPath: b.a.bool
  31640.     };
  31641.     Lo = Ls,
  31642.     Mo = function (e) {
  31643.       return C.a.createElement(tO, {
  31644.         selection: e.selection,
  31645.         platformClassName: 'ghost',
  31646.         platformPageName: 'Ghost',
  31647.         isBaseInstallPath: e.isBaseInstallPath
  31648.       }, C.a.createElement('div', {
  31649.         className: 'padding-double'
  31650.       }, C.a.createElement('ol', {
  31651.         className: 'installation__instruction-list'
  31652.       }, C.a.createElement('li', null, 'Find the ', C.a.createElement('strong', null, 'post.hbs'), ' file located in your current theme\'s directory, for example ', C.a.createElement('code', {
  31653.         className: 'inline'
  31654.       }, 'yourghostdir/content/themes/casper/')), C.a.createElement('li', null, 'Copy and paste the ', C.a.createElement(v.Link, {
  31655.         to: '/install/platforms/universalcode'
  31656.       }, 'Universal Embed Code'), ' somewhere', ' ', 'between the opening ', C.a.createElement('code', {
  31657.         className: 'inline'
  31658.       }, '{{#post}}'), ' and closing', ' ', C.a.createElement('code', {
  31659.         className: 'inline'
  31660.       }, '{{/post}}'), ' helpers.'), C.a.createElement('li', null, 'Change ', C.a.createElement('code', {
  31661.         className: 'inline'
  31662.       }, 'PAGE_IDENTIFER'), 'to be', C.a.createElement('code', {
  31663.         className: 'inline'
  31664.       }, '"ghost-{{comment_id}}"'), ' (including quotes).'), C.a.createElement('li', null, 'Restart Ghost.')), C.a.createElement('div', {
  31665.         className: 'alert alert--muted text-medium'
  31666.       }, 'Note: If you choose to place the snippet outside of the', C.a.createElement('code', {
  31667.         className: 'inline'
  31668.       }, '{{#post}}{{/post}}'), 'block, your identifier would need to be', C.a.createElement('code', {
  31669.         className: 'inline'
  31670.       }, '"ghost-{{post.comment_id}}'), '. The ', C.a.createElement('code', {
  31671.         className: 'inline'
  31672.       }, 'comment_id'), ' identifier is required to avoid any issues caused by post URLs changing. ', C.a.createElement('a', {
  31673.         href: Pn.splitThreads
  31674.       }, 'Learn more'), '.')))
  31675.     };
  31676.     Mo.displayName = 'GhostInstall',
  31677.     Mo.propTypes = {
  31678.       selection: ht,
  31679.       isBaseInstallPath: b.a.bool
  31680.     };
  31681.     di = Mo,
  31682.     wi = function (e) {
  31683.       return C.a.createElement(tO, {
  31684.         selection: e.selection,
  31685.         platformClassName: 'hubspot',
  31686.         platformPageName: 'HubSpot',
  31687.         isBaseInstallPath: e.isBaseInstallPath
  31688.       }, C.a.createElement('div', {
  31689.         className: 'padding-double'
  31690.       }, C.a.createElement('ol', {
  31691.         className: 'installation__instruction-list'
  31692.       }, C.a.createElement('li', null, 'From your Hubspot blog admin click ', C.a.createElement('strong', null, 'options'), '.'), C.a.createElement('li', null, 'Under General options uncheck ', C.a.createElement('strong', null, 'Allow Comments'), '.'), C.a.createElement('li', null, 'Uncheck ', C.a.createElement('strong', null, 'Include Footer'), ' on Listing Pages.'), C.a.createElement('li', null, 'Click on ', C.a.createElement('strong', null, 'HTML'), ' in the blog footer edit menu.'), C.a.createElement('li', null, 'Copy and paste the ', C.a.createElement(v.Link, {
  31693.         to: '/install/platforms/universalcode'
  31694.       }, 'Universal Embed Code'), ' ', 'in the HTML Code widow.'))))
  31695.     };
  31696.     wi.displayName = 'HubspotInstall',
  31697.     wi.propTypes = {
  31698.       selection: ht,
  31699.       isBaseInstallPath: b.a.bool
  31700.     };
  31701.     Fi = wi,
  31702.     Vi = function (e) {
  31703.       return C.a.createElement(tO, {
  31704.         selection: e.selection,
  31705.         platformClassName: 'shopify',
  31706.         platformPageName: 'Shopify',
  31707.         isBaseInstallPath: e.isBaseInstallPath
  31708.       }, C.a.createElement('div', {
  31709.         className: 'padding-double'
  31710.       }, C.a.createElement('ol', {
  31711.         className: 'installation__instruction-list'
  31712.       }, C.a.createElement('li', null, 'In the Shopify store admin, go to ', C.a.createElement('strong', null, 'Online Store > Themes'), '.'), C.a.createElement('li', null, 'Click the ', C.a.createElement('strong', null, '...'), ' menu, and then click ', C.a.createElement('strong', null, 'Edit HTML/CSS'), '.'), C.a.createElement('li', null, 'Copy the ', C.a.createElement(v.Link, {
  31713.         to: '/install/platforms/universalcode'
  31714.       }, 'Universal Embed Code'), '.'), C.a.createElement('li', null, 'If you want the Disqus embed to load on your product pages, paste the code at the bottom of the ', C.a.createElement('code', {
  31715.         className: 'inline'
  31716.       }, 'product.liquid'), ' file.'), C.a.createElement('li', null, 'If you want the Disqus embed to load on your blog pages, paste the code at the bottom of the ', C.a.createElement('code', {
  31717.         className: 'inline'
  31718.       }, 'article.liquid'), ' file.'), C.a.createElement('li', null, C.a.createElement('strong', null, 'Save'), ' your changes.'))))
  31719.     };
  31720.     Vi.displayName = 'ShopifyInstall',
  31721.     Vi.propTypes = {
  31722.       selection: ht,
  31723.       isBaseInstallPath: b.a.bool
  31724.     };
  31725.     yc = Vi,
  31726.     Pc = function (e) {
  31727.       var t = ((e.selection || {
  31728.       }).forum || {
  31729.       }).shortname || 'EXAMPLE';
  31730.       return C.a.createElement(tO, {
  31731.         selection: e.selection,
  31732.         platformClassName: 'amp',
  31733.         platformPageName: 'Amp',
  31734.         isBaseInstallPath: e.isBaseInstallPath
  31735.       }, C.a.createElement('div', {
  31736.         className: 'padding-double'
  31737.       }, C.a.createElement('ol', {
  31738.         className: 'installation__instruction-list'
  31739.       }, C.a.createElement('li', {
  31740.         id: 'step-1'
  31741.       }, 'Create and host the following Universal Code file on a different domain than where you intend to load Disqus for AMP. This will be the URL that you will provide to the ', C.a.createElement('code', {
  31742.         className: 'inline'
  31743.       }, 'src'), ' attribute in ', C.a.createElement('a', {
  31744.         className: 'text-bold',
  31745.         href: '#step-4'
  31746.       }, 'Step 4'), ' below.', 'EXAMPLE' === t ? C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  31747.         className: 'alert alert--muted text-medium spacing-top-small spacing-bottom-none'
  31748.       }, 'Make sure to replace the ', C.a.createElement('i', null, 'EXAMPLE'), ' inside ', C.a.createElement('code', {
  31749.         className: 'inline'
  31750.       }, 's.src'), ' with the name of your own forum.')) : null, C.a.createElement(YE, {
  31751.         language: 'html'
  31752.       }, '<div id="disqus_thread"></div>\n<script>\n    window.addEventListener(\'message\', receiveMessage, false);\n    function receiveMessage(event) {\n        if (event.data) {\n            var msg;\n            try {\n                msg = JSON.parse(event.data);\n            } catch (err) {\n                // Do nothing\n            }\n            if (!msg) {\n                return false;\n            }\n            if (msg.name === \'resize\' || msg.name === \'rendered\') {\n                window.parent.postMessage({\n                sentinel: \'amp\',\n                type: \'embed-size\',\n                height: msg.data.height\n                }, \'*\');\n            }\n        }\n    }\n</script>\n<script>\n    /**\n    *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.\n    *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables\n    */\n    var disqus_config = function () {\n        this.page.url = window.location;\n        this.page.identifier = window.location.hash;\n    };\n    (function() {  // DON\'T EDIT BELOW THIS LINE\n        var d = document, s = d.createElement(\'script\');\n\n        s.src = \'//'.concat(t, '.disqus.com/embed.js\';\n\n        s.setAttribute(\'data-timestamp\', +new Date());\n        (d.head || d.body).appendChild(s);\n    })();\n</script>'))), C.a.createElement('li', {
  31753.         id: 'step-2'
  31754.       }, 'Refer to the ', C.a.createElement('code', {
  31755.         className: 'inline'
  31756.       }, 'amp-iframe'), ' ', C.a.createElement('a', {
  31757.         href: 'https://www.ampproject.org/docs/reference/extended/amp-iframe.html',
  31758.         target: '_blank',
  31759.         rel: 'noopener noreferrer'
  31760.       }, 'documentation'), ' and add the required ', C.a.createElement('code', {
  31761.         className: 'inline'
  31762.       }, 'amp-iframe'), ' script to your document\'s ', C.a.createElement('code', {
  31763.         className: 'inline'
  31764.       }, '<head>'), ':', C.a.createElement('br', null), C.a.createElement(YE, {
  31765.         language: 'html'
  31766.       }, '<script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script>')), C.a.createElement('li', {
  31767.         id: 'step-3'
  31768.       }, 'Place the following ', C.a.createElement('code', {
  31769.         className: 'inline'
  31770.       }, '<amp-iframe>'), ' element anywhere within the ', C.a.createElement('code', {
  31771.         className: 'inline'
  31772.       }, '<body>'), ' of your AMP page. It will likely make sense to place it at the end of your article content, where ever your audience should engage further after reading.', C.a.createElement('br', null), C.a.createElement(YE, {
  31773.         language: 'html'
  31774.       }, '<amp-iframe\n    width=600 height=140\n    src="https://example.com/amp#hash"\n    layout="responsive"\n    sandbox="allow-scripts allow-same-origin allow-modals allow-popups allow-forms"\n    resizable\n>\n    <div\n        aria-label="Load more"\n        role=button\n        tabindex=0\n        overflow\n        style="display:block;font-size:12px;font-weight:500;font-family:Helvetica Neue, arial, sans-serif;text-align:center;line-height:1.1;padding:12px 16px;border-radius:4px;background:rgba(29,47,58,0.6);color:rgb(255,255,255)"\n    >\n        Load more\n    </div>\n</amp-iframe>')), C.a.createElement('li', {
  31775.         id: 'step-4'
  31776.       }, 'Replace ', C.a.createElement('code', {
  31777.         className: 'inline'
  31778.       }, 'hash'), ' in the ', C.a.createElement('code', {
  31779.         className: 'inline'
  31780.       }, 'src'), ' with a unique identifier that represents the page where you’d like a specific thread to display. If you are loading the ', C.a.createElement('code', {
  31781.         className: 'inline'
  31782.       }, '<amp-iframe>'), ' element on multiple pages, you will need to generate the ', C.a.createElement('code', {
  31783.         className: 'inline'
  31784.       }, 'hash'), ' dynamically for each page.', C.a.createElement('br', null), 'The hash you provide will be used in the ', C.a.createElement('code', {
  31785.         className: 'inline'
  31786.       }, 'identifier'), ' variable in ', C.a.createElement('a', {
  31787.         className: 'text-bold',
  31788.         href: '#step-1'
  31789.       }, 'Step 1'), '. Learn more about ', C.a.createElement('a', {
  31790.         href: Pn.pageIdentifiers
  31791.       }, 'identifiers'), '.'), C.a.createElement('li', {
  31792.         id: 'step-5'
  31793.       }, 'Add the new domain as a Trusted Domain in your Admin › Settings › ', C.a.createElement(v.Link, {
  31794.         to: '/settings/advanced/'
  31795.       }, 'Advanced'), '.'))))
  31796.     };
  31797.     Pc.displayName = 'AmpInstall',
  31798.     Pc.propTypes = {
  31799.       selection: ht,
  31800.       isBaseInstallPath: b.a.bool
  31801.     };
  31802.     Cl = Pc,
  31803.     Yc = function (e) {
  31804.       return C.a.createElement(tO, {
  31805.         selection: e.selection,
  31806.         platformClassName: 'adobemuse',
  31807.         platformPageName: 'Adobe Muse',
  31808.         isBaseInstallPath: e.isBaseInstallPath
  31809.       }, C.a.createElement('div', {
  31810.         className: 'padding-double'
  31811.       }, C.a.createElement('ol', {
  31812.         className: 'installation__instruction-list'
  31813.       }, C.a.createElement('li', null, 'Open your website\'s ', C.a.createElement('strong', null, '.muse'), ' file and select a page where you would like Disqus to load'), C.a.createElement('li', null, 'In the menu, go to Object > ', C.a.createElement('strong', null, 'Insert HTML...')), C.a.createElement('li', null, 'Copy and paste the ', C.a.createElement(v.Link, {
  31814.         to: '/install/platforms/universalcode'
  31815.       }, 'Universal Embed Code'), ' ', 'in the HTML Code widow.'))))
  31816.     };
  31817.     Yc.displayName = 'AdobemuseInstall',
  31818.     Yc.propTypes = {
  31819.       selection: ht,
  31820.       isBaseInstallPath: b.a.bool
  31821.     };
  31822.     lh = Yc,
  31823.     sl = function (e) {
  31824.       var t = ((e.selection || {
  31825.       }).forum || {
  31826.       }).shortname || 'EXAMPLE';
  31827.       return C.a.createElement(tO, {
  31828.         selection: e.selection,
  31829.         platformClassName: 'jimdo',
  31830.         platformPageName: 'Jimdo',
  31831.         isBaseInstallPath: e.isBaseInstallPath
  31832.       }, C.a.createElement('div', {
  31833.         className: 'padding-double'
  31834.       }, C.a.createElement('ol', {
  31835.         className: 'installation__instruction-list'
  31836.       }, C.a.createElement('li', null, 'Log into Jimdo, open the menu in the top left, and click ', C.a.createElement('strong', null, 'Blog'), '.'), C.a.createElement('li', null, 'Click ', C.a.createElement('strong', null, 'General'), ' in the Settings section on the left.'), C.a.createElement('li', null, 'Enable comments, choose Disqus from the dropdown, enter your shortname:', ' ', C.a.createElement('code', {
  31837.         className: 'inline'
  31838.       }, t), ' and click ', C.a.createElement('strong', null, 'Save'), '.')), C.a.createElement('div', {
  31839.         className: 'alert alert--muted text-medium'
  31840.       }, C.a.createElement('strong', null, 'Note:'), ' This installation method enables Disqus on Blog Posts only. To add Disqus to other pages, use the ', C.a.createElement(v.Link, {
  31841.         to: '/install/platforms/universalcode'
  31842.       }, 'Universal Embed Code'), ' ', 'instructions and Jimdo\'s', ' ', C.a.createElement('a', {
  31843.         href: Pn.jimdoHelp,
  31844.         target: '_blank',
  31845.         rel: 'noopener noreferrer'
  31846.       }, 'Widget/HTML module'), '.')))
  31847.     };
  31848.     sl.displayName = 'JimdoInstall',
  31849.     sl.propTypes = {
  31850.       selection: ht,
  31851.       isBaseInstallPath: b.a.bool
  31852.     };
  31853.     Vb = sl,
  31854.     yl = function (e) {
  31855.       var t = ((e.selection || {
  31856.       }).forum || {
  31857.       }).shortname || 'EXAMPLE';
  31858.       return C.a.createElement(tO, {
  31859.         selection: e.selection,
  31860.         platformClassName: 'postachio',
  31861.         platformPageName: 'Postach.io',
  31862.         isBaseInstallPath: e.isBaseInstallPath
  31863.       }, C.a.createElement('div', {
  31864.         className: 'padding-double'
  31865.       }, C.a.createElement('ol', {
  31866.         className: 'installation__instruction-list'
  31867.       }, C.a.createElement('li', null, 'In Postach.io, on your Sites page, click on the ', C.a.createElement('strong', null, 'pencil icon'), ' to edit.'), C.a.createElement('li', null, 'Select ', C.a.createElement('strong', null, 'Add-Ons'), '. '), C.a.createElement('li', null, 'Find the ', C.a.createElement('strong', null, 'Disqus Comments'), ' Add-On and click ', C.a.createElement('strong', null, 'Set Up'), '.'), C.a.createElement('li', null, 'In the box provided, enter your shortname: ', C.a.createElement('code', {
  31868.         className: 'inline'
  31869.       }, t)), C.a.createElement('li', null, 'Save your changes.'))))
  31870.     };
  31871.     yl.displayName = 'PostachioInstall',
  31872.     yl.propTypes = {
  31873.       selection: ht,
  31874.       isBaseInstallPath: b.a.bool
  31875.     };
  31876.     Jc = yl,
  31877.     Ru = function (e) {
  31878.       var t = ((e.selection || {
  31879.       }).forum || {
  31880.       }).shortname || 'EXAMPLE';
  31881.       return C.a.createElement(tO, {
  31882.         selection: e.selection,
  31883.         platformClassName: 'gatsby',
  31884.         platformPageName: 'Gatsby',
  31885.         isBaseInstallPath: e.isBaseInstallPath
  31886.       }, C.a.createElement('div', {
  31887.         className: 'padding-double'
  31888.       }, C.a.createElement('ol', {
  31889.         className: 'installation__instruction-list'
  31890.       }, C.a.createElement('li', null, 'Install the ', C.a.createElement('code', {
  31891.         className: 'inline'
  31892.       }, 'gatsby-plugin-disqus'), ' plugin as a dependency with ', C.a.createElement('a', {
  31893.         href: 'https://www.npmjs.com/',
  31894.         target: '_blank',
  31895.         rel: 'noopener noreferrer'
  31896.       }, 'npm'), ' by running the following command in your website directory.', C.a.createElement('br', null), C.a.createElement(YE, {
  31897.         language: 'sh'
  31898.       }, 'npm install --save gatsby-plugin-disqus')), C.a.createElement('li', null, 'Add the plugin to your ', C.a.createElement('code', {
  31899.         className: 'inline'
  31900.       }, 'gatsby-config.js'), ' file with your Disqus shortname.', 'EXAMPLE' === t ? C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  31901.         className: 'alert alert--muted text-medium spacing-top-small spacing-bottom-none'
  31902.       }, 'Make sure to replace the ', C.a.createElement('i', null, 'EXAMPLE'), ' inside ', C.a.createElement('code', {
  31903.         className: 'inline'
  31904.       }, 'options'), ' with the shortname for your own forum.')) : null, C.a.createElement('br', null), C.a.createElement(YE, {
  31905.         language: 'javascript'
  31906.       }, '// gatsby-config.js\nmodule.exports = {\n    plugins: [\n        {\n            resolve: `gatsby-plugin-disqus`,\n            options: {\n                shortname: `'.concat(t, '`\n            }\n        },\n    ]\n}'))), C.a.createElement('li', null, 'The plugin can then be used to place the Disqus comment section in your page as shown in the following example:', C.a.createElement('br', null), C.a.createElement(YE, {
  31907.         language: 'jsx'
  31908.       }, 'import { Disqus } from \'gatsby-plugin-disqus\';\n\nconst Template = () => (\n    /* Page contents */\n\n    <Disqus\n        config={\n            /* Replace PAGE_URL with your post\'s canonical URL variable */\n            url: \'PAGE_URL\',\n            /* Replace PAGE_IDENTIFIER with your page\'s unique identifier variable */\n            identifier: \'PAGE_IDENTIFIER\',\n            /* Replace PAGE_TITLE with the title of the page */\n            title: \'PAGE_TITLE\',\n        }\n    />\n);')))))
  31909.     };
  31910.     Ru.displayName = 'GatsbyInstall',
  31911.     Ru.propTypes = {
  31912.       selection: ht,
  31913.       isBaseInstallPath: b.a.bool
  31914.     };
  31915.     Bu = Ru,
  31916.     h = function (e) {
  31917.       var t = ((e.selection || {
  31918.       }).forum || {
  31919.       }).shortname || 'EXAMPLE';
  31920.       return C.a.createElement(tO, {
  31921.         selection: e.selection,
  31922.         platformClassName: 'pattern',
  31923.         platformPageName: 'Pattern by Etsy',
  31924.         isBaseInstallPath: e.isBaseInstallPath
  31925.       }, C.a.createElement('div', {
  31926.         className: 'padding-double'
  31927.       }, C.a.createElement('ol', {
  31928.         className: 'installation__instruction-list'
  31929.       }, C.a.createElement('li', null, 'Navigate to your ', C.a.createElement('strong', null, 'Settings'), ' from your Pattern Dashboard.'), C.a.createElement('li', null, 'In the Disqus shortname field, enter your shortname:  ', C.a.createElement('code', {
  31930.         className: 'inline site-shortname'
  31931.       }, t), '.'), C.a.createElement('li', null, 'Click ', C.a.createElement('strong', null, 'Publish'), '.')), C.a.createElement('div', {
  31932.         className: 'alert alert--muted text-medium'
  31933.       }, 'Note: For blog posts, you will have to enable comments on each post in your  ', C.a.createElement('strong', null, 'Blog Settings'), '.')))
  31934.     };
  31935.     h.displayName = 'PatternInstall',
  31936.     h.propTypes = {
  31937.       selection: ht,
  31938.       isBaseInstallPath: b.a.bool
  31939.     };
  31940.     lt = h,
  31941.     ut = function (e) {
  31942.       var t = ((e.selection || {
  31943.       }).forum || {
  31944.       }).shortname || 'EXAMPLE';
  31945.       return C.a.createElement(tO, {
  31946.         selection: e.selection,
  31947.         platformClassName: 'react',
  31948.         platformPageName: 'React',
  31949.         isBaseInstallPath: e.isBaseInstallPath
  31950.       }, C.a.createElement('div', {
  31951.         className: 'settings__content'
  31952.       }, C.a.createElement('h2', {
  31953.         className: 'text-gray-dark text-larger spacing-bottom'
  31954.       }, 'Installation'), C.a.createElement('ul', {
  31955.         className: 'spacing-bottom'
  31956.       }, C.a.createElement('li', {
  31957.         className: 'spacing-bottom'
  31958.       }, 'Using npm:', C.a.createElement(YE, null, '$ npm install --save disqus-react')), C.a.createElement('li', null, 'Using yarn:', C.a.createElement(YE, null, '$ npm install --save disqus-react'))), C.a.createElement('h2', {
  31959.         className: 'text-gray-dark text-larger spacing-bottom'
  31960.       }, 'Usage: DiscussionEmbed'), C.a.createElement('p', null, 'This is the component that will load the main Disqus comments section.'), C.a.createElement(YE, {
  31961.         language: 'typescript'
  31962.       }, 'import { DiscussionEmbed } from \'disqus-react\';\n\n<DiscussionEmbed\n    shortname=\''.concat(t, '\'\n    config={\n        {\n            url: this.props.article.url,\n            identifier: this.props.article.id,\n            title: this.props.article.title,\n            language: \'zh_TW\' //e.g. for Traditional Chinese (Taiwan)\n        }\n    }\n/>')), C.a.createElement('p', {
  31963.         className: 'spacing-top spacing-bottom'
  31964.       }, 'This component is limited to one instance in the DOM at a time and will handle updates to both the ', C.a.createElement('code', null, 'config'), ' and ', C.a.createElement('code', null, 'shortname'), ' props and reload appropriately with the new discussion thread.'), C.a.createElement('h2', {
  31965.         className: 'text-gray-dark text-larger spacing-bottom'
  31966.       }, 'Usage: CommentCount'), C.a.createElement('p', null, 'This component will display the comment count for the Disqus thread associated with the provided config.'), C.a.createElement(YE, {
  31967.         language: 'typescript'
  31968.       }, 'import { CommentCount } from \'disqus-react\';\n\n<CommentCount\n    shortname=\''.concat(t, '\'\n    config={\n        {\n            url: this.props.article.url,\n            identifier: this.props.article.id,\n            title: this.props.article.title,\n        }\n    }\n>\n    {/* Placeholder Text */}\n    Comments\n</CommentCount>')), C.a.createElement('p', {
  31969.         className: 'spacing-top spacing-bottom'
  31970.       }, 'Multiple instances of this component can be included on the same page with different', ' ', C.a.createElement('code', null, 'config'), ' variables (e.g. an article list showing the comment count for each). However, all threads on the site must be under the same primary site ', C.a.createElement('code', null, 'shortname'), '. If the component receives a new ', C.a.createElement('code', null, 'shortname'), ', all instances will be reset with counts for threads matching the updated site.'), C.a.createElement('div', {
  31971.         className: 'alert alert--muted text-medium'
  31972.       }, 'See our ', C.a.createElement('a', {
  31973.         href: Pn.githubDisqusReact,
  31974.         target: '_blank',
  31975.         rel: 'noopener noreferrer'
  31976.       }, 'GitHub'), ' ', 'for more examples.')))
  31977.     };
  31978.     ut.displayName = 'UniversalCodeInstall',
  31979.     ut.propTypes = {
  31980.       selection: ht,
  31981.       isBaseInstallPath: b.a.bool
  31982.     };
  31983.     qn = ut;
  31984.     function _O(e) {
  31985.       return (_O = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  31986.         return typeof e
  31987.       }
  31988.        : function (e) {
  31989.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  31990.       }) (e)
  31991.     }
  31992.     function EO(e, t) {
  31993.       for (var n = 0; n < t.length; n++) {
  31994.         var a = t[n];
  31995.         a.enumerable = a.enumerable || !1,
  31996.         a.configurable = !0,
  31997.         'value' in a && (a.writable = !0),
  31998.         Object.defineProperty(e, a.key, a)
  31999.       }
  32000.     }
  32001.     function OO(e, t) {
  32002.       return (OO = Object.setPrototypeOf || function (e, t) {
  32003.         return e.__proto__ = t,
  32004.         e
  32005.       }) (e, t)
  32006.     }
  32007.     function SO(n) {
  32008.       var a = function () {
  32009.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  32010.         if (Reflect.construct.sham) return !1;
  32011.         if ('function' == typeof Proxy) return !0;
  32012.         try {
  32013.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  32014.           ], function () {
  32015.           })),
  32016.           !0
  32017.         } catch (e) {
  32018.           return !1
  32019.         }
  32020.       }();
  32021.       return function () {
  32022.         var e,
  32023.         t = PO(n);
  32024.         return e = a ? (e = PO(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  32025.         t = this,
  32026.         !(e = e) || 'object' !== _O(e) && 'function' != typeof e ? wO(t) : e
  32027.       }
  32028.     }
  32029.     function wO(e) {
  32030.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  32031.       return e
  32032.     }
  32033.     function PO(e) {
  32034.       return (PO = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  32035.         return e.__proto__ || Object.getPrototypeOf(e)
  32036.       }) (e)
  32037.     }
  32038.     function kO(e, t, n) {
  32039.       return t in e ? Object.defineProperty(e, t, {
  32040.         value: n,
  32041.         enumerable: !0,
  32042.         configurable: !0,
  32043.         writable: !0
  32044.       }) : e[t] = n,
  32045.       e
  32046.     }
  32047.     i = function () {
  32048.       !function (e, t) {
  32049.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  32050.         e.prototype = Object.create(t && t.prototype, {
  32051.           constructor: {
  32052.             value: e,
  32053.             writable: !0,
  32054.             configurable: !0
  32055.           }
  32056.         }),
  32057.         t && OO(e, t)
  32058.       }(o, A);
  32059.       var e,
  32060.       t,
  32061.       n,
  32062.       r = SO(o);
  32063.       function o() {
  32064.         var t;
  32065.         !function (e, t) {
  32066.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  32067.         }(this, o);
  32068.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  32069.         return kO(wO(t = r.call.apply(r, [
  32070.           this
  32071.         ].concat(n))), 'state', {
  32072.           details: null,
  32073.           fetchError: null,
  32074.           isFetching: !1
  32075.         }),
  32076.         kO(wO(t), 'fetchImportDetails', function (e) {
  32077.           return t.setState({
  32078.             isFetching: !0,
  32079.             fetchError: null
  32080.           }),
  32081.           t.apiCall = io.a.call('imports/details', {
  32082.             data: {
  32083.               forum: t.props.selection.forum.shortname,
  32084.               group: e
  32085.             }
  32086.           }).done(t.handleFetchDetailsSuccess).fail(t.handleFetchError),
  32087.           t.apiCall
  32088.         }),
  32089.         kO(wO(t), 'handleFetchDetailsSuccess', function (e) {
  32090.           t.setState({
  32091.             isFetching: !1,
  32092.             details: e.response
  32093.           })
  32094.         }),
  32095.         kO(wO(t), 'handleFetchError', function (e) {
  32096.           t.setState({
  32097.             isFetching: !1,
  32098.             fetchError: t.parseErrorResponse(e)
  32099.           })
  32100.         }),
  32101.         kO(wO(t), 'parseErrorResponse', function (e) {
  32102.           var t;
  32103.           try {
  32104.             ~(t = JSON.parse(e.responseText).response).indexOf('Invalid argument, \'group\': Unable to find group') && (t = 'No import was found with this ID.')
  32105.           } catch (e) {
  32106.             t = 'There was an error retrieving the details of this import.'
  32107.           }
  32108.           return t
  32109.         }),
  32110.         kO(wO(t), 'getComponentProps', function () {
  32111.           return {
  32112.             importHistoryDetails: t.state.details,
  32113.             importHistoryIsFetching: t.state.isFetching,
  32114.             importHistoryError: t.state.fetchError
  32115.           }
  32116.         }),
  32117.         t
  32118.       }
  32119.       return e = o,
  32120.       (t = [
  32121.         {
  32122.           key: 'componentDidMount',
  32123.           value: function () {
  32124.             this.props.params.groupId && this.fetchImportDetails(this.props.params.groupId)
  32125.           }
  32126.         },
  32127.         {
  32128.           key: 'componentWillUnmount',
  32129.           value: function () {
  32130.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  32131.           }
  32132.         }
  32133.       ]) && EO(e.prototype, t),
  32134.       n && EO(e, n),
  32135.       o
  32136.     }();
  32137.     kO(i, 'displayName', 'ImportHistoryDriver'),
  32138.     kO(i, 'propTypes', {
  32139.       selection: ht.isRequired,
  32140.       params: b.a.object.isRequired
  32141.     });
  32142.     var go = Object(ki.createDriver) (i, function (e) {
  32143.       return {
  32144.         selection: e.selection
  32145.       }
  32146.     }),
  32147.     NO = '//import.disqus.com/',
  32148.     Qs = function (e) {
  32149.       if (e.importHistoryIsFetching) return C.a.createElement(Ji, null);
  32150.       if (e.importHistoryError) return C.a.createElement(Ki, {
  32151.         message: e.importHistoryError,
  32152.         alertType: 'error'
  32153.       });
  32154.       if (!e.importHistoryDetails) return null;
  32155.       var t = e.importHistoryDetails,
  32156.       n = t.startedAt && ct() (t.startedAt).format('LLL'),
  32157.       a = t.finishedAt && ct() (t.finishedAt).format('LLL'),
  32158.       r = 'text-gray';
  32159.       return 100 <= t.statusCode ? r = 'text-success' : t.statusCode < 0 && (r = 'text-error'),
  32160.       C.a.createElement('div', null, C.a.createElement('div', {
  32161.         className: 'content__wrap spacing-bottom-double'
  32162.       }, C.a.createElement('header', {
  32163.         className: 'settings__header'
  32164.       }, C.a.createElement('h2', {
  32165.         className: 'text-larger text-gray-darker spacing-bottom-small'
  32166.       }, 'Import Details'), t ? C.a.createElement('p', {
  32167.         className: r
  32168.       }, t.statusName) : null), C.a.createElement('section', {
  32169.         className: 'settings__content'
  32170.       }, t ? C.a.createElement('div', {
  32171.         className: 'text-medium text-gray-dark spacing-top-narrow'
  32172.       }, C.a.createElement('p', null, C.a.createElement('strong', {
  32173.         className: 'spacing-right text-gray-darker'
  32174.       }, 'Started'), n), C.a.createElement('p', null, C.a.createElement('strong', {
  32175.         className: 'spacing-right text-gray-darker'
  32176.       }, 'Completed'), a), C.a.createElement('p', null, C.a.createElement('strong', {
  32177.         className: 'spacing-right text-gray-darker'
  32178.       }, 'Platform'), t.platform), C.a.createElement('p', null, C.a.createElement('strong', {
  32179.         className: 'spacing-right text-gray-darker'
  32180.       }, 'Progress'), ''.concat(t.chunksDone, ' / ').concat(t.chunksTotal, ' ').concat(1 === t.chunksTotal ? 'File' : 'Files')), C.a.createElement('p', {
  32181.         className: 'spacing-bottom'
  32182.       }, C.a.createElement('strong', {
  32183.         className: 'spacing-right text-gray-darker'
  32184.       }, 'Status'), C.a.createElement('span', {
  32185.         className: r
  32186.       }, t.statusName)), C.a.createElement('a', {
  32187.         href: ''.concat(NO, 'group/').concat(t.forum, '/').concat(e.params.groupId, '/'),
  32188.         className: 'button button-small button-outline'
  32189.       }, 'More Details')) : null), C.a.createElement('footer', {
  32190.         className: 'settings__footer'
  32191.       }, C.a.createElement('a', {
  32192.         href: ''.concat(NO + t.forum, '/?a=1'),
  32193.         className: 'button button-outline button-medium'
  32194.       }, 'All Imports for ', t.forum))))
  32195.     };
  32196.     Qs.displayName = 'ImportDetails',
  32197.     Qs.propTypes = {
  32198.       params: b.a.object.isRequired,
  32199.       importHistoryDetails: b.a.object,
  32200.       importHistoryIsFetching: b.a.bool,
  32201.       importHistoryError: b.a.string
  32202.     };
  32203.     var ac = Object(u.connect) (function (e) {
  32204.       return {
  32205.         selection: e.selection
  32206.       }
  32207.     }) (Ni.a.attachDrivers(Qs, [
  32208.       go
  32209.     ])),
  32210.     CO = {
  32211.       forum: 'signup_forum',
  32212.       org: 'signup_org',
  32213.       start: 'signup_start',
  32214.       settingsOrg: 'settings_org',
  32215.       deactivationHubOrg: 'deactivation_hub_organization_flow',
  32216.       deactivationHubForum: 'deactivation_hub_forum_flow'
  32217.     };
  32218.     function RO(t, e) {
  32219.       var n,
  32220.       a = Object.keys(t);
  32221.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  32222.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  32223.       })), a.push.apply(a, n)),
  32224.       a
  32225.     }
  32226.     function xO(a) {
  32227.       for (var e = 1; e < arguments.length; e++) {
  32228.         var r = null != arguments[e] ? arguments[e] : {
  32229.         };
  32230.         e % 2 ? RO(Object(r), !0).forEach(function (e) {
  32231.           var t,
  32232.           n;
  32233.           n = r[t = e],
  32234.           t in (e = a) ? Object.defineProperty(e, t, {
  32235.             value: n,
  32236.             enumerable: !0,
  32237.             configurable: !0,
  32238.             writable: !0
  32239.           }) : e[t] = n
  32240.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : RO(Object(r)).forEach(function (e) {
  32241.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  32242.         })
  32243.       }
  32244.       return a
  32245.     }
  32246.     Ls = function (e) {
  32247.       return C.a.createElement('div', {
  32248.         className: 'section-contained'
  32249.       }, C.a.createElement('div', {
  32250.         className: 'layout layout--publishers'
  32251.       }, C.a.createElement('div', {
  32252.         className: 'layout__main'
  32253.       }, C.a.createElement(ob, {
  32254.         auth: e.auth,
  32255.         selection: e.selection
  32256.       }), C.a.createElement('div', {
  32257.         className: 'layout__content'
  32258.       }, C.a.cloneElement(e.children, xO(xO({
  32259.       }, e), {
  32260.       }, {
  32261.         initialQuestionGroup: CO.settingsOrg
  32262.       }))))))
  32263.     };
  32264.     Ls.displayName = 'OrgSettings',
  32265.     Ls.propTypes = {
  32266.       auth: Nc.isRequired,
  32267.       children: b.a.node.isRequired,
  32268.       forums: b.a.object.isRequired,
  32269.       organizations: b.a.object.isRequired,
  32270.       selection: ht.isRequired
  32271.     };
  32272.     var AO = Object(u.connect) (function (e) {
  32273.       return {
  32274.         selection: e.selection
  32275.       }
  32276.     }) (Ni.a.attachDrivers(Ls, [
  32277.       bc
  32278.     ]));
  32279.     function DO(e) {
  32280.       return (DO = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  32281.         return typeof e
  32282.       }
  32283.        : function (e) {
  32284.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  32285.       }) (e)
  32286.     }
  32287.     function jO(t, e) {
  32288.       var n,
  32289.       a = Object.keys(t);
  32290.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  32291.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  32292.       })), a.push.apply(a, n)),
  32293.       a
  32294.     }
  32295.     function TO(t) {
  32296.       for (var e = 1; e < arguments.length; e++) {
  32297.         var n = null != arguments[e] ? arguments[e] : {
  32298.         };
  32299.         e % 2 ? jO(Object(n), !0).forEach(function (e) {
  32300.           MO(t, e, n[e])
  32301.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : jO(Object(n)).forEach(function (e) {
  32302.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  32303.         })
  32304.       }
  32305.       return t
  32306.     }
  32307.     function IO(e, t) {
  32308.       for (var n = 0; n < t.length; n++) {
  32309.         var a = t[n];
  32310.         a.enumerable = a.enumerable || !1,
  32311.         a.configurable = !0,
  32312.         'value' in a && (a.writable = !0),
  32313.         Object.defineProperty(e, a.key, a)
  32314.       }
  32315.     }
  32316.     function qO(e, t) {
  32317.       return (qO = Object.setPrototypeOf || function (e, t) {
  32318.         return e.__proto__ = t,
  32319.         e
  32320.       }) (e, t)
  32321.     }
  32322.     function FO(n) {
  32323.       var a = function () {
  32324.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  32325.         if (Reflect.construct.sham) return !1;
  32326.         if ('function' == typeof Proxy) return !0;
  32327.         try {
  32328.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  32329.           ], function () {
  32330.           })),
  32331.           !0
  32332.         } catch (e) {
  32333.           return !1
  32334.         }
  32335.       }();
  32336.       return function () {
  32337.         var e,
  32338.         t = UO(n);
  32339.         return e = a ? (e = UO(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  32340.         t = this,
  32341.         !(e = e) || 'object' !== DO(e) && 'function' != typeof e ? LO(t) : e
  32342.       }
  32343.     }
  32344.     function LO(e) {
  32345.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  32346.       return e
  32347.     }
  32348.     function UO(e) {
  32349.       return (UO = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  32350.         return e.__proto__ || Object.getPrototypeOf(e)
  32351.       }) (e)
  32352.     }
  32353.     function MO(e, t, n) {
  32354.       return t in e ? Object.defineProperty(e, t, {
  32355.         value: n,
  32356.         enumerable: !0,
  32357.         configurable: !0,
  32358.         writable: !0
  32359.       }) : e[t] = n,
  32360.       e
  32361.     }
  32362.     Mo = function () {
  32363.       !function (e, t) {
  32364.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  32365.         e.prototype = Object.create(t && t.prototype, {
  32366.           constructor: {
  32367.             value: e,
  32368.             writable: !0,
  32369.             configurable: !0
  32370.           }
  32371.         }),
  32372.         t && qO(e, t)
  32373.       }(o, A);
  32374.       var e,
  32375.       t,
  32376.       n,
  32377.       r = FO(o);
  32378.       function o() {
  32379.         var a;
  32380.         !function (e, t) {
  32381.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  32382.         }(this, o);
  32383.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  32384.         return MO(LO(a = r.call.apply(r, [
  32385.           this
  32386.         ].concat(t))), 'state', {
  32387.           newUsername: ''
  32388.         }),
  32389.         MO(LO(a), 'handleAddModerator', function () {
  32390.           var e = a.state.newUsername.trim();
  32391.           e && a.props.addOrgAdmin({
  32392.             data: {
  32393.               username: e
  32394.             },
  32395.             onSuccess: function () {
  32396.               a.setState({
  32397.                 newUsername: ''
  32398.               })
  32399.             }
  32400.           })
  32401.         }),
  32402.         MO(LO(a), 'handlePermissionChange', function (e, t, n) {
  32403.           n = MO({
  32404.             isAdmin: e.isAdmin ? 1 : 0,
  32405.             isModerator: e.isModerator ? 1 : 0
  32406.           }, t, n.target.checked ? 1 : 0);
  32407.           a.props.updateOrgAdmin(e.user.username, n)
  32408.         }),
  32409.         a
  32410.       }
  32411.       return e = o,
  32412.       (t = [
  32413.         {
  32414.           key: 'componentDidMount',
  32415.           value: function () {
  32416.             this.props.fetchOrgAdminList()
  32417.           }
  32418.         },
  32419.         {
  32420.           key: 'componentWillReceiveProps',
  32421.           value: function (e) {
  32422.             this.props.orgAdminIsSaving && e.orgAdminIsSaved && this.props.fetchOrgAdminList()
  32423.           }
  32424.         },
  32425.         {
  32426.           key: 'render',
  32427.           value: function () {
  32428.             var a = this;
  32429.             return this.props.orgAdminListIsFetching && !this.props.orgAdminList ? C.a.createElement(Ji, null) : this.props.orgAdminListError ? C.a.createElement(Ki, {
  32430.               message: this.props.orgAdminListError,
  32431.               alertType: 'error'
  32432.             }) : C.a.createElement('div', null, C.a.createElement('div', {
  32433.               className: 'content__wrap spacing-bottom-double'
  32434.             }, C.a.createElement('header', {
  32435.               className: 'settings__header'
  32436.             }, C.a.createElement('h2', {
  32437.               className: 'text-larger text-gray-darker spacing-bottom-small'
  32438.             }, 'Organization Admins'), C.a.createElement('p', {
  32439.               className: 'text-gray'
  32440.             }, 'Add and remove admins so they can help manage your organization. ', C.a.createElement('a', {
  32441.               href: Pn.adminRoles,
  32442.               target: '_blank',
  32443.               rel: 'noopener noreferrer'
  32444.             }, 'Learn more »'))), C.a.createElement('section', null, (this.props.orgAdminList || [
  32445.             ]).map(function (e) {
  32446.               var t = e.user.username === a.props.selection.organization.owner,
  32447.               n = '//'.concat(pt.a.disqusHost, '/by/').concat(e.user.username, '/');
  32448.               return C.a.createElement('div', {
  32449.                 className: 'settings-list__item',
  32450.                 key: e.id
  32451.               }, C.a.createElement('div', {
  32452.                 className: 'align align--between'
  32453.               }, C.a.createElement('div', {
  32454.                 className: 'spacing-right align'
  32455.               }, C.a.createElement('div', {
  32456.                 className: 'spacing-right spacing-top-small'
  32457.               }, C.a.createElement('img', {
  32458.                 className: 'border-radius-base',
  32459.                 src: e.user.avatar.cache,
  32460.                 width: '40',
  32461.                 height: '40'
  32462.               })), C.a.createElement('div', null, C.a.createElement('a', {
  32463.                 href: n,
  32464.                 className: 'text-medium text-semibold'
  32465.               }, e.user.name), t ? C.a.createElement('p', {
  32466.                 className: 'text-small text-gray spacing-top-tiny'
  32467.               }, 'You\'re the organization super admin and have full permissions.') : C.a.createElement('p', {
  32468.                 className: 'text-small text-gray spacing-top-tiny'
  32469.               }, C.a.createElement('label', {
  32470.                 className: 'fieldset__inline-block--checkbox spacing-right-large'
  32471.               }, C.a.createElement('input', {
  32472.                 type: 'checkbox',
  32473.                 className: 'input--checkbox',
  32474.                 checked: e.isAdmin,
  32475.                 onChange: a.handlePermissionChange.bind(a, e, 'isAdmin'),
  32476.                 disabled: a.props.orgAdminIsSaving
  32477.               }), 'Can edit organization info'), C.a.createElement('label', {
  32478.                 className: 'fieldset__inline-block--checkbox'
  32479.               }, C.a.createElement('input', {
  32480.                 type: 'checkbox',
  32481.                 className: 'input--checkbox',
  32482.                 checked: e.isModerator,
  32483.                 onChange: a.handlePermissionChange.bind(a, e, 'isModerator'),
  32484.                 disabled: a.props.orgAdminIsSaving
  32485.               }), 'Can manage all organization sites')))), t ? null : C.a.createElement('div', {
  32486.                 className: 'align-min-tablet align--middle spacing-top-small spacing-bottom-small'
  32487.               }, C.a.createElement('button', {
  32488.                 className: 'button button-outline text-medium',
  32489.                 onClick: a.props.removeOrgAdmin.bind(null, e.user.id),
  32490.                 disabled: a.props.orgAdminIsSaving
  32491.               }, 'Remove'))))
  32492.             }), C.a.createElement('div', {
  32493.               className: 'settings-list__item'
  32494.             }, C.a.createElement('form', {
  32495.               onSubmit: function (e) {
  32496.                 return e.preventDefault()
  32497.               }
  32498.             }, C.a.createElement('div', {
  32499.               className: 'align spacing-top-small'
  32500.             }, C.a.createElement('div', {
  32501.               className: 'spacing-right align__item--grow'
  32502.             }, C.a.createElement('input', {
  32503.               type: 'text',
  32504.               className: 'input--textbox',
  32505.               placeholder: 'Add a new org admin by username',
  32506.               onChange: function (e) {
  32507.                 return a.setState({
  32508.                   newUsername: e.target.value
  32509.                 })
  32510.               },
  32511.               value: this.state.newUsername,
  32512.               disabled: this.props.orgAdminIsSaving
  32513.             })), C.a.createElement('button', {
  32514.               className: 'button button-outline text-medium',
  32515.               onClick: this.handleAddModerator,
  32516.               disabled: this.props.orgAdminIsSaving || !this.state.newUsername
  32517.             }, 'Add Admin')), C.a.createElement('p', {
  32518.               className: 'fieldset__description spacing-bottom-small text-small text-gray spacing-top-tiny'
  32519.             }, 'People you add will receive a notification that they\'re now an admin of this organization.'), this.props.orgAdminSaveError ? C.a.createElement('p', {
  32520.               className: 'text-medium text-error text-semibold spacing-narrow'
  32521.             }, this.props.orgAdminSaveError) : null)))))
  32522.           }
  32523.         }
  32524.       ]) && IO(e.prototype, t),
  32525.       n && IO(e, n),
  32526.       o
  32527.     }();
  32528.     MO(Mo, 'displayName', 'OrgSettingsAdmins'),
  32529.     MO(Mo, 'propTypes', {
  32530.       selection: ht.isRequired,
  32531.       orgAdminList: b.a.arrayOf(b.a.shape({
  32532.         id: b.a.number.isRequired,
  32533.         organizationId: b.a.number.isRequired,
  32534.         isAdmin: b.a.bool.isRequired,
  32535.         isModerator: b.a.bool.isRequired,
  32536.         user: To
  32537.       })),
  32538.       orgAdminIsFetching: b.a.bool,
  32539.       orgAdminIsSaving: b.a.bool,
  32540.       orgAdminIsSaved: b.a.bool,
  32541.       orgAdminFetchError: b.a.string,
  32542.       orgAdminSaveError: b.a.string,
  32543.       fetchOrgAdminList: b.a.func.isRequired,
  32544.       addOrgAdmin: b.a.func.isRequired,
  32545.       updateOrgAdmin: b.a.func.isRequired,
  32546.       removeOrgAdmin: b.a.func.isRequired
  32547.     });
  32548.     wi = Object(u.connect) (function (e) {
  32549.       return TO({
  32550.         selection: e.selection
  32551.       }, e.orgAdmin)
  32552.     }, TO({
  32553.     }, Ss)) (Fo() (Mo));
  32554.     function BO(e) {
  32555.       return (BO = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  32556.         return typeof e
  32557.       }
  32558.        : function (e) {
  32559.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  32560.       }) (e)
  32561.     }
  32562.     function zO() {
  32563.       return (zO = Object.assign || function (e) {
  32564.         for (var t = 1; t < arguments.length; t++) {
  32565.           var n,
  32566.           a = arguments[t];
  32567.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  32568.         }
  32569.         return e
  32570.       }).apply(this, arguments)
  32571.     }
  32572.     function HO(e, t) {
  32573.       for (var n = 0; n < t.length; n++) {
  32574.         var a = t[n];
  32575.         a.enumerable = a.enumerable || !1,
  32576.         a.configurable = !0,
  32577.         'value' in a && (a.writable = !0),
  32578.         Object.defineProperty(e, a.key, a)
  32579.       }
  32580.     }
  32581.     function GO(e, t) {
  32582.       return (GO = Object.setPrototypeOf || function (e, t) {
  32583.         return e.__proto__ = t,
  32584.         e
  32585.       }) (e, t)
  32586.     }
  32587.     function VO(n) {
  32588.       var a = function () {
  32589.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  32590.         if (Reflect.construct.sham) return !1;
  32591.         if ('function' == typeof Proxy) return !0;
  32592.         try {
  32593.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  32594.           ], function () {
  32595.           })),
  32596.           !0
  32597.         } catch (e) {
  32598.           return !1
  32599.         }
  32600.       }();
  32601.       return function () {
  32602.         var e,
  32603.         t = YO(n);
  32604.         return e = a ? (e = YO(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  32605.         t = this,
  32606.         !(e = e) || 'object' !== BO(e) && 'function' != typeof e ? WO(t) : e
  32607.       }
  32608.     }
  32609.     function WO(e) {
  32610.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  32611.       return e
  32612.     }
  32613.     function YO(e) {
  32614.       return (YO = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  32615.         return e.__proto__ || Object.getPrototypeOf(e)
  32616.       }) (e)
  32617.     }
  32618.     function QO(e, t, n) {
  32619.       return t in e ? Object.defineProperty(e, t, {
  32620.         value: n,
  32621.         enumerable: !0,
  32622.         configurable: !0,
  32623.         writable: !0
  32624.       }) : e[t] = n,
  32625.       e
  32626.     }
  32627.     Vi = function () {
  32628.       !function (e, t) {
  32629.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  32630.         e.prototype = Object.create(t && t.prototype, {
  32631.           constructor: {
  32632.             value: e,
  32633.             writable: !0,
  32634.             configurable: !0
  32635.           }
  32636.         }),
  32637.         t && GO(e, t)
  32638.       }(o, A);
  32639.       var e,
  32640.       t,
  32641.       n,
  32642.       r = VO(o);
  32643.       function o() {
  32644.         var n;
  32645.         !function (e, t) {
  32646.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  32647.         }(this, o);
  32648.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  32649.         return QO(WO(n = r.call.apply(r, [
  32650.           this
  32651.         ].concat(t))), 'state', {
  32652.           name: n.props.selection.organization ? n.props.selection.organization.name : '',
  32653.           error: null,
  32654.           isLoading: !1
  32655.         }),
  32656.         QO(WO(n), 'handleUpdateOrg', function (e, t) {
  32657.           return n.setState({
  32658.             isLoading: !0,
  32659.             error: null
  32660.           }),
  32661.           n.props.selection.organization && (e = zO({
  32662.             organization: n.props.selection.organization.id
  32663.           }, e)),
  32664.           n.apiCall = io.a.call(t && t.useInternal ? 'internal/organizations/update' : 'organizations/update', {
  32665.             data: e,
  32666.             method: 'POST'
  32667.           }).done(n.handleUpdateSuccess).fail(n.handleUpdateError),
  32668.           n.apiCall
  32669.         }),
  32670.         QO(WO(n), 'handleDismissError', function () {
  32671.           n.setState({
  32672.             error: null
  32673.           })
  32674.         }),
  32675.         QO(WO(n), 'handleUpdateSuccess', function () {
  32676.           n.setState({
  32677.             error: null,
  32678.             isLoading: !1
  32679.           })
  32680.         }),
  32681.         QO(WO(n), 'handleUpdateError', function (e) {
  32682.           var t;
  32683.           try {
  32684.             ~(t = JSON.parse(e.responseText).response).indexOf('Missing required argument: \'name\'') && (t = 'Name can\'t be blank')
  32685.           } catch (e) {
  32686.             t = 'There was an error saving your changes.'
  32687.           }
  32688.           n.setState({
  32689.             error: t,
  32690.             isLoading: !1
  32691.           })
  32692.         }),
  32693.         QO(WO(n), 'getComponentProps', function () {
  32694.           return {
  32695.             orgUpdateName: n.state.name,
  32696.             orgUpdateError: n.state.error,
  32697.             orgUpdateIsLoading: n.state.isLoading,
  32698.             orgUpdateOnUpdateOrg: n.handleUpdateOrg,
  32699.             orgUpdateOnDismissError: n.handleDismissError
  32700.           }
  32701.         }),
  32702.         n
  32703.       }
  32704.       return e = o,
  32705.       (t = [
  32706.         {
  32707.           key: 'componentWillUnmount',
  32708.           value: function () {
  32709.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  32710.           }
  32711.         }
  32712.       ]) && HO(e.prototype, t),
  32713.       n && HO(e, n),
  32714.       o
  32715.     }();
  32716.     QO(Vi, 'displayName', 'OrgUpdateDriver'),
  32717.     QO(Vi, 'propTypes', {
  32718.       selection: ht.isRequired
  32719.     });
  32720.     Pc = Object(ki.createDriver) (Vi, function (e) {
  32721.       return {
  32722.         selection: e.selection
  32723.       }
  32724.     });
  32725.     function KO(e) {
  32726.       return (KO = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  32727.         return typeof e
  32728.       }
  32729.        : function (e) {
  32730.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  32731.       }) (e)
  32732.     }
  32733.     function JO(e) {
  32734.       return function (e) {
  32735.         if (Array.isArray(e)) return $O(e)
  32736.       }(e) || function (e) {
  32737.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  32738.       }(e) || function (e, t) {
  32739.         if (e) {
  32740.           if ('string' == typeof e) return $O(e, t);
  32741.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  32742.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? $O(e, t) : void 0
  32743.         }
  32744.       }(e) || function () {
  32745.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  32746.       }()
  32747.     }
  32748.     function $O(e, t) {
  32749.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  32750.       return a
  32751.     }
  32752.     function ZO(e, t) {
  32753.       for (var n = 0; n < t.length; n++) {
  32754.         var a = t[n];
  32755.         a.enumerable = a.enumerable || !1,
  32756.         a.configurable = !0,
  32757.         'value' in a && (a.writable = !0),
  32758.         Object.defineProperty(e, a.key, a)
  32759.       }
  32760.     }
  32761.     function XO(e, t) {
  32762.       return (XO = Object.setPrototypeOf || function (e, t) {
  32763.         return e.__proto__ = t,
  32764.         e
  32765.       }) (e, t)
  32766.     }
  32767.     function eS(n) {
  32768.       var a = function () {
  32769.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  32770.         if (Reflect.construct.sham) return !1;
  32771.         if ('function' == typeof Proxy) return !0;
  32772.         try {
  32773.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  32774.           ], function () {
  32775.           })),
  32776.           !0
  32777.         } catch (e) {
  32778.           return !1
  32779.         }
  32780.       }();
  32781.       return function () {
  32782.         var e,
  32783.         t = nS(n);
  32784.         return e = a ? (e = nS(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  32785.         t = this,
  32786.         !(e = e) || 'object' !== KO(e) && 'function' != typeof e ? tS(t) : e
  32787.       }
  32788.     }
  32789.     function tS(e) {
  32790.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  32791.       return e
  32792.     }
  32793.     function nS(e) {
  32794.       return (nS = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  32795.         return e.__proto__ || Object.getPrototypeOf(e)
  32796.       }) (e)
  32797.     }
  32798.     function aS(e, t, n) {
  32799.       return t in e ? Object.defineProperty(e, t, {
  32800.         value: n,
  32801.         enumerable: !0,
  32802.         configurable: !0,
  32803.         writable: !0
  32804.       }) : e[t] = n,
  32805.       e
  32806.     }
  32807.     Yc = function () {
  32808.       !function (e, t) {
  32809.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  32810.         e.prototype = Object.create(t && t.prototype, {
  32811.           constructor: {
  32812.             value: e,
  32813.             writable: !0,
  32814.             configurable: !0
  32815.           }
  32816.         }),
  32817.         t && XO(e, t)
  32818.       }(o, A);
  32819.       var e,
  32820.       t,
  32821.       n,
  32822.       a = eS(o);
  32823.       function o() {
  32824.         var r;
  32825.         !function (e, t) {
  32826.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  32827.         }(this, o);
  32828.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  32829.         return aS(tS(r = a.call.apply(a, [
  32830.           this
  32831.         ].concat(t))), 'state', {
  32832.           questions: null,
  32833.           questionsGroup: r.props.initialQuestionGroup || (r.props.selection.type === ft.forum ? CO.deactivationHubForum : CO.start)
  32834.         }),
  32835.         aS(tS(r), 'fetchData', function (e) {
  32836.           var t,
  32837.           e = {
  32838.             group: e || r.state.questionsGroup
  32839.           };
  32840.           r.props.selection.type === ft.forum ? (t = 'forums/questions/listGroup', e.forum = r.props.selection.forum.shortname) : r.props.selection.type === ft.organization && (t = 'organizations/questions/listGroup', e.organization = r.props.selection.organization.id),
  32841.           r.apiCall = io.a.call(t, {
  32842.             data: e
  32843.           }).done(je.a.partial(r.onFetch, e.group))
  32844.         }),
  32845.         aS(tS(r), 'onFetch', function (e, t) {
  32846.           var n = t.response.objects;
  32847.           r.setState({
  32848.             questionsGroup: e,
  32849.             questions: t.response.items.map(function (e) {
  32850.               return {
  32851.                 question: n[e.reference],
  32852.                 answer: e.answer
  32853.               }
  32854.             })
  32855.           })
  32856.         }),
  32857.         aS(tS(r), 'updateAnswer', function (e, t) {
  32858.           var n,
  32859.           a = {
  32860.             answer: t,
  32861.             group: r.state.questionsGroup,
  32862.             question: e
  32863.           };
  32864.           return r.updateLocalAnswer(e, t),
  32865.           r.props.selection.type === ft.forum ? (n = 'forums/questions/answer', a.forum = r.props.selection.forum.shortname) : r.props.selection.type === ft.organization && (n = 'organizations/questions/answer', a.organization = r.props.selection.organization.id),
  32866.           r.apiCall = io.a.call(n, {
  32867.             data: a,
  32868.             method: 'POST'
  32869.           }),
  32870.           r.apiCall
  32871.         }),
  32872.         aS(tS(r), 'updateLocalAnswer', function (t, e) {
  32873.           var n = JO(r.state.questions);
  32874.           n.find(function (e) {
  32875.             return e.question.id === t
  32876.           }).answer = '' === e.text ? e.choice : ''.concat(e.choice, ': ').concat(e.text),
  32877.           r.setState({
  32878.             questions: n
  32879.           })
  32880.         }),
  32881.         aS(tS(r), 'getComponentProps', function () {
  32882.           return {
  32883.             questions: r.state.questions,
  32884.             updateAnswer: r.updateAnswer
  32885.           }
  32886.         }),
  32887.         r
  32888.       }
  32889.       return e = o,
  32890.       (t = [
  32891.         {
  32892.           key: 'componentDidMount',
  32893.           value: function () {
  32894.             this.fetchData()
  32895.           }
  32896.         }
  32897.       ]) && ZO(e.prototype, t),
  32898.       n && ZO(e, n),
  32899.       o
  32900.     }();
  32901.     aS(Yc, 'displayName', 'QuestionsDriver'),
  32902.     aS(Yc, 'propTypes', {
  32903.       selection: ht.isRequired,
  32904.       initialQuestionGroup: b.a.string
  32905.     });
  32906.     sl = Object(ki.createDriver) (Yc, function (e) {
  32907.       return {
  32908.         selection: e.selection
  32909.       }
  32910.     });
  32911.     function rS(e) {
  32912.       return (rS = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  32913.         return typeof e
  32914.       }
  32915.        : function (e) {
  32916.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  32917.       }) (e)
  32918.     }
  32919.     function oS() {
  32920.       return (oS = Object.assign || function (e) {
  32921.         for (var t = 1; t < arguments.length; t++) {
  32922.           var n,
  32923.           a = arguments[t];
  32924.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  32925.         }
  32926.         return e
  32927.       }).apply(this, arguments)
  32928.     }
  32929.     function iS(t, e) {
  32930.       var n,
  32931.       a = Object.keys(t);
  32932.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  32933.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  32934.       })), a.push.apply(a, n)),
  32935.       a
  32936.     }
  32937.     function sS(t) {
  32938.       for (var e = 1; e < arguments.length; e++) {
  32939.         var n = null != arguments[e] ? arguments[e] : {
  32940.         };
  32941.         e % 2 ? iS(Object(n), !0).forEach(function (e) {
  32942.           mS(t, e, n[e])
  32943.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : iS(Object(n)).forEach(function (e) {
  32944.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  32945.         })
  32946.       }
  32947.       return t
  32948.     }
  32949.     function lS(e, t) {
  32950.       for (var n = 0; n < t.length; n++) {
  32951.         var a = t[n];
  32952.         a.enumerable = a.enumerable || !1,
  32953.         a.configurable = !0,
  32954.         'value' in a && (a.writable = !0),
  32955.         Object.defineProperty(e, a.key, a)
  32956.       }
  32957.     }
  32958.     function cS(e, t) {
  32959.       return (cS = Object.setPrototypeOf || function (e, t) {
  32960.         return e.__proto__ = t,
  32961.         e
  32962.       }) (e, t)
  32963.     }
  32964.     function uS(n) {
  32965.       var a = function () {
  32966.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  32967.         if (Reflect.construct.sham) return !1;
  32968.         if ('function' == typeof Proxy) return !0;
  32969.         try {
  32970.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  32971.           ], function () {
  32972.           })),
  32973.           !0
  32974.         } catch (e) {
  32975.           return !1
  32976.         }
  32977.       }();
  32978.       return function () {
  32979.         var e,
  32980.         t = dS(n);
  32981.         return e = a ? (e = dS(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  32982.         t = this,
  32983.         !(e = e) || 'object' !== rS(e) && 'function' != typeof e ? pS(t) : e
  32984.       }
  32985.     }
  32986.     function pS(e) {
  32987.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  32988.       return e
  32989.     }
  32990.     function dS(e) {
  32991.       return (dS = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  32992.         return e.__proto__ || Object.getPrototypeOf(e)
  32993.       }) (e)
  32994.     }
  32995.     function mS(e, t, n) {
  32996.       return t in e ? Object.defineProperty(e, t, {
  32997.         value: n,
  32998.         enumerable: !0,
  32999.         configurable: !0,
  33000.         writable: !0
  33001.       }) : e[t] = n,
  33002.       e
  33003.     }
  33004.     var fS = 'question_',
  33005.     hS = 'error_',
  33006.     gS = 'success_',
  33007.     yl = function () {
  33008.       !function (e, t) {
  33009.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  33010.         e.prototype = Object.create(t && t.prototype, {
  33011.           constructor: {
  33012.             value: e,
  33013.             writable: !0,
  33014.             configurable: !0
  33015.           }
  33016.         }),
  33017.         t && cS(e, t)
  33018.       }(i, A);
  33019.       var e,
  33020.       t,
  33021.       n,
  33022.       o = uS(i);
  33023.       function i() {
  33024.         var e,
  33025.         r;
  33026.         !function (e, t) {
  33027.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  33028.         }(this, i);
  33029.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  33030.         return mS(pS(r = o.call.apply(o, [
  33031.           this
  33032.         ].concat(n))), 'state', sS(sS({
  33033.         }, i.getAnswerStateFromQuestions(r.props.questions)), {
  33034.         }, (mS(e = {
  33035.           name: r.props.orgUpdateName
  33036.         }, ''.concat(hS, 'name'), r.props.orgUpdateError), mS(e, 'isSaved', !1), mS(e, 'savedFields', sS(sS({
  33037.         }, i.getAnswerStateFromQuestions(r.props.questions)), {
  33038.         }, {
  33039.           name: r.props.orgUpdateName
  33040.         })), e))),
  33041.         mS(pS(r), 'handleInputChange', function (e, t) {
  33042.           var n = (mS(n = {
  33043.           }, e, t.target.value), mS(n, hS + e, null), mS(n, gS + e, null), n);
  33044.           r.setState(n)
  33045.         }),
  33046.         mS(pS(r), 'hasFieldChanged', function (e) {
  33047.           return r.state[e] !== r.state.savedFields[e] && !(null === r.state.savedFields[e] && '' === r.state[e])
  33048.         }),
  33049.         mS(pS(r), 'hasUnsavedChanges', function () {
  33050.           return Object.keys(r.state.savedFields).some(function (e) {
  33051.             return r.hasFieldChanged(e)
  33052.           })
  33053.         }),
  33054.         mS(pS(r), 'handleSaveChangesClick', function () {
  33055.           var e,
  33056.           a,
  33057.           t;
  33058.           r.props.orgUpdateIsSaving || (a = [
  33059.           ], (t = r.props.selection.organization.name !== (e = r.state.name)) && a.push(r.props.orgUpdateOnUpdateOrg({
  33060.             name: e
  33061.           })), r.props.questions && r.props.questions.forEach(function (e) {
  33062.             var t = fS + e.question.id,
  33063.             n = this.state[t];
  33064.             void 0 !== n && e.answer !== n && a.push(this.props.updateAnswer(e.question.id, n).fail(this.handleQuestionApiCallFail.bind(this, t)))
  33065.           }.bind(pS(r))), vo.a.when.apply(vo.a, a).then(r.handleAllApiCallsComplete.bind(pS(r), t)))
  33066.         }),
  33067.         mS(pS(r), 'handleAllApiCallsComplete', function (a) {
  33068.           r.setState(function (n, e) {
  33069.             var t = {
  33070.             };
  33071.             return mS(t, ''.concat(gS, 'name'), !!a),
  33072.             mS(t, 'isSaved', !0),
  33073.             mS(t, 'savedFields', e.questions.reduce(function (e, t) {
  33074.               return e[fS + t.question.id] = n[fS + t.question.id],
  33075.               e
  33076.             }, {
  33077.               name: n.name
  33078.             })),
  33079.             t
  33080.           })
  33081.         }),
  33082.         mS(pS(r), 'handleQuestionApiCallFail', function (e, t) {
  33083.           var n;
  33084.           try {
  33085.             ~(n = JSON.parse(t.responseText).response).indexOf('Missing required argument: \'answer\'') && (n = 'Answer can\'t be blank')
  33086.           } catch (e) {
  33087.             n = 'Invalid answer'
  33088.           }
  33089.           r.setState((mS(t = {
  33090.           }, hS + e, n), mS(t, gS + e, null), t))
  33091.         }),
  33092.         r
  33093.       }
  33094.       return e = i,
  33095.       (t = [
  33096.         {
  33097.           key: 'componentWillReceiveProps',
  33098.           value: function (e) {
  33099.             var t,
  33100.             n = {
  33101.             };
  33102.             (n = !this.props.questions && e.questions ? sS(sS({
  33103.             }, t = i.getAnswerStateFromQuestions(e.questions)), {
  33104.             }, {
  33105.               savedFields: sS(sS({
  33106.               }, t), {
  33107.               }, {
  33108.                 name: e.orgUpdateName
  33109.               })
  33110.             }) : n) [''.concat(hS, 'name')] = e.orgUpdateError,
  33111.             this.setState(n)
  33112.           }
  33113.         },
  33114.         {
  33115.           key: 'render',
  33116.           value: function () {
  33117.             var r = this,
  33118.             e = this.props.selection.organization.forums.length;
  33119.             return C.a.createElement('div', null, C.a.createElement('div', {
  33120.               className: 'content__wrap spacing-bottom-double'
  33121.             }, C.a.createElement('header', {
  33122.               className: 'settings__header'
  33123.             }, C.a.createElement('h2', {
  33124.               className: 'text-larger text-gray-darker spacing-bottom-small'
  33125.             }, ''.concat(this.props.selection.organization.name, ' Info')), C.a.createElement('p', {
  33126.               className: 'text-gray'
  33127.             }, 'Update your basic organization information.')), C.a.createElement('section', {
  33128.               className: 'settings__content'
  33129.             }, C.a.createElement(kf, {
  33130.               label: 'Sites',
  33131.               blockAdditionalClass: '-no-input text-medium'
  33132.             }, C.a.createElement('span', {
  33133.               className: 'spacing-right'
  33134.             }, e, ' total.'), C.a.createElement(Us, {
  33135.               path: '/settings/sites/',
  33136.               orgId: this.props.selection.organization.id,
  33137.               orgSlug: this.props.selection.organization.slug,
  33138.               linkClassName: 'button button-outline text-medium spacing-left-small'
  33139.             }, 'View'), C.a.createElement('a', {
  33140.               href: pt.a.urls.createSite,
  33141.               className: 'button button-outline text-medium spacing-left-small'
  33142.             }, 'Add')), C.a.createElement($h, {
  33143.               name: 'name',
  33144.               value: this.state.name,
  33145.               placeholder: 'Enter a name for your organization',
  33146.               inputState: this.state[''.concat(hS, 'name')] ? 'error' : 'none',
  33147.               label: 'Name',
  33148.               onChange: this.handleInputChange.bind(this, 'name'),
  33149.               idNamespace: this.constructor.displayName,
  33150.               shouldHighlight: this.hasFieldChanged('name'),
  33151.               tooltip: 'Only shown to other organization admins.'
  33152.             }, this.state[''.concat(hS, 'name')] ? C.a.createElement('span', {
  33153.               className: 'text-medium text-error text-semibold spacing-narrow'
  33154.             }, this.state[''.concat(hS, 'name')]) : null, this.state[''.concat(gS, 'name')] ? C.a.createElement('span', {
  33155.               className: 'text-medium text-success text-semibold spacing-narrow'
  33156.             }, 'Your organizaton name was updated. You may need to ', C.a.createElement('a', {
  33157.               href: window.location.href
  33158.             }, 'Reload the page'), ' to see the changes.') : null), (this.props.questions || [
  33159.             ]).map(function (e) {
  33160.               var t = fS + e.question.id,
  33161.               n = r.state[hS + t];
  33162.               if ('MULTIPLE_CHOICE' !== e.question.typeName) return C.a.createElement($h, {
  33163.                 key: e.question.id,
  33164.                 name: t,
  33165.                 value: r.state[t],
  33166.                 type: 'INTEGER' === e.question.typeName ? 'number' : 'text',
  33167.                 inputState: n ? 'error' : 'none',
  33168.                 label: e.question.text,
  33169.                 onChange: r.handleInputChange.bind(r, t),
  33170.                 idNamespace: r.constructor.displayName,
  33171.                 placeholder: e.question.placeholderText,
  33172.                 min: 'INTEGER' === e.question.typeName ? 0 : null,
  33173.                 shouldHighlight: r.hasFieldChanged(t)
  33174.               }, n ? C.a.createElement('span', {
  33175.                 className: 'text-medium text-error text-semibold spacing-narrow'
  33176.               }, n) : null);
  33177.               var a = e.question.typeContext.map(function (e) {
  33178.                 return {
  33179.                   key: e,
  33180.                   value: e,
  33181.                   label: e
  33182.                 }
  33183.               });
  33184.               return C.a.createElement(Mf, {
  33185.                 key: e.question.id,
  33186.                 name: t,
  33187.                 disabled: !1,
  33188.                 options: a,
  33189.                 placeholder: 'Choose an answer',
  33190.                 value: r.state[t],
  33191.                 label: e.question.text,
  33192.                 onChange: r.handleInputChange.bind(r, t),
  33193.                 idNamespace: r.constructor.displayName,
  33194.                 shouldHighlight: r.hasFieldChanged(t)
  33195.               }, n ? C.a.createElement('span', {
  33196.                 className: 'text-medium text-error text-semibold spacing-narrow'
  33197.               }, n) : null)
  33198.             })), C.a.createElement('footer', {
  33199.               className: 'settings__footer'
  33200.             }, C.a.createElement(Bh, {
  33201.               disabled: !this.hasUnsavedChanges(),
  33202.               onClick: this.handleSaveChangesClick,
  33203.               isSaving: this.props.orgUpdateIsSaving,
  33204.               isSaved: this.state.isSaved
  33205.             }))), C.a.createElement('div', {
  33206.               className: 'content__wrap hidden'
  33207.             }, C.a.createElement('header', {
  33208.               className: 'settings__header'
  33209.             }, C.a.createElement('h2', {
  33210.               className: 'text-larger text-gray-darker spacing-bottom-small'
  33211.             }, 'Payment'), C.a.createElement('p', {
  33212.               className: 'text-gray'
  33213.             }, 'Control the way Disqus pays your organization for earnings.')), C.a.createElement('section', {
  33214.               className: 'settings__content'
  33215.             }, C.a.createElement('div', {
  33216.               className: 'fieldset'
  33217.             }, C.a.createElement('label', {
  33218.               htmlFor: '',
  33219.               className: 'fieldset__label text-gray'
  33220.             }, 'By Site'), C.a.createElement('div', {
  33221.               className: 'fieldset__block'
  33222.             }, C.a.createElement('div', {
  33223.               className: 'fieldset__block--radio'
  33224.             }, C.a.createElement('input', {
  33225.               type: 'radio',
  33226.               name: ''
  33227.             }), C.a.createElement('label', {
  33228.               htmlFor: '',
  33229.               className: 'text-medium'
  33230.             }, 'Subscribe automatically to discussions you comment on')), C.a.createElement('p', {
  33231.               className: 'fieldset__description text-small text-gray'
  33232.             }, 'Only shown to other organization admins.'))), C.a.createElement('div', {
  33233.               className: 'fieldset'
  33234.             }, C.a.createElement('label', {
  33235.               htmlFor: '',
  33236.               className: 'fieldset__label text-gray'
  33237.             }, 'By Organization'), C.a.createElement('div', {
  33238.               className: 'fieldset__block'
  33239.             }, C.a.createElement('div', {
  33240.               className: 'fieldset__block--radio'
  33241.             }, C.a.createElement('input', {
  33242.               type: 'radio',
  33243.               name: ''
  33244.             }), C.a.createElement('label', {
  33245.               htmlFor: '',
  33246.               className: 'text-medium'
  33247.             }, 'The organization is paid once for all sites')), C.a.createElement('p', {
  33248.               className: 'fieldset__description text-small spacing-bottom-narrow'
  33249.             }, C.a.createElement('strong', null, 'Are you sure? This is a big deal. It affects the way you file taxes.')), C.a.createElement('button', {
  33250.               className: 'button button-small button-fill--brand'
  33251.             }, 'Yes, I understand. Let me set up my organization payment info »')))), C.a.createElement('footer', {
  33252.               className: 'settings__footer'
  33253.             }, C.a.createElement('div', {
  33254.               className: 'fieldset fieldset--save'
  33255.             }, C.a.createElement('div', {
  33256.               className: 'fieldset__label'
  33257.             }, C.a.createElement('div', {
  33258.               className: 'spinner-small'
  33259.             }), C.a.createElement('div', {
  33260.               className: 'icon-checkmark'
  33261.             })), C.a.createElement('div', {
  33262.               className: 'fieldset__block'
  33263.             }, C.a.createElement('button', {
  33264.               className: 'button button-fill--brand button-padding-wider text-medium',
  33265.               disabled: !0
  33266.             }, 'Save'))))))
  33267.           }
  33268.         }
  33269.       ]) && lS(e.prototype, t),
  33270.       n && lS(e, n),
  33271.       i
  33272.     }();
  33273.     mS(yl, 'displayName', 'OrgSettingsGeneral'),
  33274.     mS(yl, 'propTypes', {
  33275.       forums: b.a.object.isRequired,
  33276.       selection: ht.isRequired,
  33277.       questions: b.a.array,
  33278.       updateAnswer: b.a.func.isRequired,
  33279.       orgUpdateName: b.a.string,
  33280.       orgUpdateError: b.a.string,
  33281.       orgUpdateIsSaving: b.a.bool,
  33282.       orgUpdateOnUpdateOrg: b.a.func.isRequired
  33283.     }),
  33284.     mS(yl, 'getAnswerStateFromQuestions', function (e) {
  33285.       return (e || [
  33286.       ]).reduce(function (e, t) {
  33287.         return oS(e, mS({
  33288.         }, fS + t.question.id, t.answer))
  33289.       }, {
  33290.       })
  33291.     });
  33292.     var yS = Object(u.connect) (function (e) {
  33293.       return {
  33294.         selection: e.selection
  33295.       }
  33296.     }) (Ni.a.attachDrivers(yl, [
  33297.       Pc,
  33298.       sl
  33299.     ])),
  33300.     Ru = {
  33301.       fetchOrgForums: function () {
  33302.         return function (t, e) {
  33303.           t({
  33304.             type: se.fetching
  33305.           });
  33306.           e = e().selection.organization.id;
  33307.           io.a.call('organizations/listForums', {
  33308.             type: 'GET',
  33309.             data: {
  33310.               organization: e
  33311.             },
  33312.             success: function (e) {
  33313.               t({
  33314.                 type: se.onFetch,
  33315.                 forumList: e.response,
  33316.                 cursor: e.cursor
  33317.               })
  33318.             },
  33319.             error: function (e) {
  33320.               t({
  33321.                 type: se.onFetchError,
  33322.                 data: e
  33323.               })
  33324.             }
  33325.           })
  33326.         }
  33327.       },
  33328.       fetchMoreOrgForums: function () {
  33329.         return function (t, e) {
  33330.           t({
  33331.             type: se.fetching
  33332.           });
  33333.           var n = e().selection.organization.id,
  33334.           e = e().orgForums.orgForumsCursor;
  33335.           e && e.hasNext && io.a.call('organizations/listForums', {
  33336.             type: 'GET',
  33337.             data: {
  33338.               organization: n,
  33339.               cursor: e.next
  33340.             },
  33341.             success: function (e) {
  33342.               t({
  33343.                 type: se.onFetchMore,
  33344.                 forumList: e.response,
  33345.                 cursor: e.cursor
  33346.               })
  33347.             },
  33348.             error: function (e) {
  33349.               t({
  33350.                 type: se.onFetchError,
  33351.                 data: e
  33352.               })
  33353.             }
  33354.           })
  33355.         }
  33356.       }
  33357.     };
  33358.     function bS(e) {
  33359.       return (bS = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  33360.         return typeof e
  33361.       }
  33362.        : function (e) {
  33363.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  33364.       }) (e)
  33365.     }
  33366.     function vS(t, e) {
  33367.       var n,
  33368.       a = Object.keys(t);
  33369.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  33370.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  33371.       })), a.push.apply(a, n)),
  33372.       a
  33373.     }
  33374.     function _S(t) {
  33375.       for (var e = 1; e < arguments.length; e++) {
  33376.         var n = null != arguments[e] ? arguments[e] : {
  33377.         };
  33378.         e % 2 ? vS(Object(n), !0).forEach(function (e) {
  33379.           kS(t, e, n[e])
  33380.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : vS(Object(n)).forEach(function (e) {
  33381.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  33382.         })
  33383.       }
  33384.       return t
  33385.     }
  33386.     function ES(e, t) {
  33387.       for (var n = 0; n < t.length; n++) {
  33388.         var a = t[n];
  33389.         a.enumerable = a.enumerable || !1,
  33390.         a.configurable = !0,
  33391.         'value' in a && (a.writable = !0),
  33392.         Object.defineProperty(e, a.key, a)
  33393.       }
  33394.     }
  33395.     function OS(e, t) {
  33396.       return (OS = Object.setPrototypeOf || function (e, t) {
  33397.         return e.__proto__ = t,
  33398.         e
  33399.       }) (e, t)
  33400.     }
  33401.     function SS(n) {
  33402.       var a = function () {
  33403.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  33404.         if (Reflect.construct.sham) return !1;
  33405.         if ('function' == typeof Proxy) return !0;
  33406.         try {
  33407.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  33408.           ], function () {
  33409.           })),
  33410.           !0
  33411.         } catch (e) {
  33412.           return !1
  33413.         }
  33414.       }();
  33415.       return function () {
  33416.         var e,
  33417.         t = PS(n);
  33418.         return e = a ? (e = PS(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  33419.         t = this,
  33420.         !(e = e) || 'object' !== bS(e) && 'function' != typeof e ? wS(t) : e
  33421.       }
  33422.     }
  33423.     function wS(e) {
  33424.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  33425.       return e
  33426.     }
  33427.     function PS(e) {
  33428.       return (PS = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  33429.         return e.__proto__ || Object.getPrototypeOf(e)
  33430.       }) (e)
  33431.     }
  33432.     function kS(e, t, n) {
  33433.       return t in e ? Object.defineProperty(e, t, {
  33434.         value: n,
  33435.         enumerable: !0,
  33436.         configurable: !0,
  33437.         writable: !0
  33438.       }) : e[t] = n,
  33439.       e
  33440.     }
  33441.     var NS = [
  33442.       'adsProductVideoEnabled',
  33443.       'adsProductStoriesEnabled',
  33444.       'adsProductLinksEnabled'
  33445.     ],
  33446.     h = function () {
  33447.       !function (e, t) {
  33448.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  33449.         e.prototype = Object.create(t && t.prototype, {
  33450.           constructor: {
  33451.             value: e,
  33452.             writable: !0,
  33453.             configurable: !0
  33454.           }
  33455.         }),
  33456.         t && OS(e, t)
  33457.       }(o, A);
  33458.       var e,
  33459.       t,
  33460.       n,
  33461.       r = SS(o);
  33462.       function o() {
  33463.         var e;
  33464.         !function (e, t) {
  33465.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  33466.         }(this, o);
  33467.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  33468.         return kS(wS(e = r.call.apply(r, [
  33469.           this
  33470.         ].concat(n))), 'loadMoreForums', function () {
  33471.           e.props.fetchMoreOrgForums()
  33472.         }),
  33473.         e
  33474.       }
  33475.       return e = o,
  33476.       (t = [
  33477.         {
  33478.           key: 'componentDidMount',
  33479.           value: function () {
  33480.             this.props.fetchOrgForums()
  33481.           }
  33482.         },
  33483.         {
  33484.           key: 'render',
  33485.           value: function () {
  33486.             var n = this;
  33487.             if (this.props.orgForumsIsFetching && !this.props.orgForumsList) return C.a.createElement(Ji, null);
  33488.             if (this.props.orgForumsError) return C.a.createElement(Ki, {
  33489.               message: this.props.orgForumsError,
  33490.               alertType: 'error'
  33491.             });
  33492.             var e,
  33493.             t,
  33494.             a = this.props.selection.organization.forums.length,
  33495.             r = this.props.orgForumsList ? this.props.orgForumsList.length : 0,
  33496.             a = 1 === a ? '1 site' : ''.concat(a, ' sites');
  33497.             return this.props.orgForumsHasMore ? (e = 'Info on '.concat(r, ' of ').concat(a, ' in this organization'), t = C.a.createElement('button', {
  33498.               className: 'button button-large button-wide button-padding-wide button-wide--mobile button-fill--brand',
  33499.               onClick: this.loadMoreForums
  33500.             }, 'Load More')) : e = 'Info on the '.concat(a, ' in this organization.'),
  33501.             C.a.createElement('div', {
  33502.               className: 'content__wrap spacing-bottom-double'
  33503.             }, C.a.createElement('header', {
  33504.               className: 'settings__header'
  33505.             }, C.a.createElement('h2', {
  33506.               className: 'text-larger text-gray-darker spacing-bottom-small'
  33507.             }, 'Organization Sites'), C.a.createElement('p', {
  33508.               className: 'text-gray'
  33509.             }, e)), C.a.createElement('section', null, (this.props.orgForumsList || [
  33510.             ]).map(function (t) {
  33511.               var e = je.a.some(NS, function (e) {
  33512.                 return t.settings[e]
  33513.               }) && n.props.selection.organization.eligibleForEarnings;
  33514.               return C.a.createElement('div', {
  33515.                 className: 'settings-list__item',
  33516.                 key: t.id
  33517.               }, C.a.createElement('div', {
  33518.                 className: 'align align--between'
  33519.               }, C.a.createElement('div', {
  33520.                 className: 'spacing-right align align--middle align--wrap'
  33521.               }, t.signedUrl ? C.a.createElement('a', {
  33522.                 href: t.signedUrl,
  33523.                 target: '_blank',
  33524.                 rel: 'noopener noreferrer',
  33525.                 className: 'text-semibold spacing-right-large'
  33526.               }, t.name) : C.a.createElement('span', {
  33527.                 className: 'text-semibold spacing-right-large'
  33528.               }, t.name), C.a.createElement('span', {
  33529.                 className: 'text-small text-gray spacing-right-small'
  33530.               }, 'Created ', ct() (t.createdAt).format('MMM Do YYYY')), e ? C.a.createElement('span', {
  33531.                 className: 'bullet text-small text-gray spacing-right-small'
  33532.               }, 'Reveal enabled') : null), C.a.createElement('div', {
  33533.                 className: 'align-min-tablet align--middle spacing-top-small spacing-bottom-small'
  33534.               }, C.a.createElement(Uo, {
  33535.                 linkClassName: 'button button-outline text-medium',
  33536.                 linkActiveClassName: 'active',
  33537.                 path: '/settings/general/',
  33538.                 selection: n.props.selection,
  33539.                 forumId: t.id
  33540.               }, 'Edit Settings'))))
  33541.             })), t)
  33542.           }
  33543.         }
  33544.       ]) && ES(e.prototype, t),
  33545.       n && ES(e, n),
  33546.       o
  33547.     }();
  33548.     kS(h, 'displayName', 'OrgSettingsSites'),
  33549.     kS(h, 'propTypes', {
  33550.       selection: ht.isRequired,
  33551.       orgForumsList: b.a.array,
  33552.       orgForumsError: b.a.string,
  33553.       orgForumsIsFetching: b.a.bool,
  33554.       orgForumsHasMore: b.a.bool.isRequired,
  33555.       fetchOrgForums: b.a.func.isRequired,
  33556.       fetchMoreOrgForums: b.a.func.isRequired
  33557.     });
  33558.     var ut = Object(u.connect) (function (e) {
  33559.       return _S({
  33560.         selection: e.selection
  33561.       }, e.orgForums)
  33562.     }, _S({
  33563.     }, Ru)) (Fo() (h)),
  33564.     CS = 'https://looker.local.disqus.net/looks/',
  33565.     RS = [
  33566.       'forum_id',
  33567.       'website',
  33568.       'url',
  33569.       'ads_language',
  33570.       'ads_review_status',
  33571.       'ads_review_notes',
  33572.       'adult_content',
  33573.       'forum_category_id',
  33574.       'ads_settings_and_analytics_viewable'
  33575.     ],
  33576.     xS = {
  33577.       'Daily-Inbox': 'F2BCMn6cW3KwnpQZHyzfBW6wBrrdPNN8',
  33578.       'Needs-Review-English-Most-Traffic-Sort': 'bYKqFk7yc3t4nGyvtKDFrS2bf5FvDc5p',
  33579.       'Needs-Category-Reveal-Active-Most-Traffic-Sort': 'H49RQHXfmzcjzhWPsFnrjmMRwf8F5jPm',
  33580.       'Needs-Category-English-Most-Traffic-Sort': 'KR7tg543MH98qGnfkr2Rr7q7SFHyVCn6',
  33581.       'Low-US-Sort': 'RPCnb6ddrBtczpmqdbRVxGr73sHyZvsJ',
  33582.       'Search-by-Shortname': 'Ddtt8g7fzr9jKpNRV3PdKJdzyVK7dqtX'
  33583.     },
  33584.     i = Fm.data.map(function (e) {
  33585.       return {
  33586.         id: e.attributes.code,
  33587.         code: e.attributes.code,
  33588.         name: e.attributes.name
  33589.       }
  33590.     }).sort(function (e, t) {
  33591.       return t.name < e.name ? 1 : e.name < t.name ? - 1 : 0
  33592.     }),
  33593.     AS = {
  33594.       NOT_REVIEWED: '0',
  33595.       QUALIFIED: '1',
  33596.       DISQUALIFIED: '2'
  33597.     },
  33598.     DS = [
  33599.       {
  33600.         id: 4,
  33601.         name: 'A - Paying'
  33602.       },
  33603.       {
  33604.         id: 1,
  33605.         name: 'B - Non-Commercial'
  33606.       },
  33607.       {
  33608.         id: 3,
  33609.         name: 'C - Policy Against Ads'
  33610.       },
  33611.       {
  33612.         id: 5,
  33613.         name: 'D - Squeaky'
  33614.       },
  33615.       {
  33616.         id: 6,
  33617.         name: 'E - Feature Instream Position'
  33618.       },
  33619.       {
  33620.         id: 14,
  33621.         name: 'F - Feature Niche Demand'
  33622.       },
  33623.       {
  33624.         id: 15,
  33625.         name: 'G - Feature Earnings'
  33626.       },
  33627.       {
  33628.         id: 2,
  33629.         name: 'H - Channel Conflict'
  33630.       },
  33631.       {
  33632.         id: 8,
  33633.         name: 'I - Data Value Risk'
  33634.       },
  33635.       {
  33636.         id: 9,
  33637.         name: 'J - Brand Value Risk'
  33638.       },
  33639.       {
  33640.         id: 10,
  33641.         name: 'K - Other Partner'
  33642.       },
  33643.       {
  33644.         id: 'null',
  33645.         name: 'Reviewed, not Excepted'
  33646.       }
  33647.     ],
  33648.     jS = Object.freeze({
  33649.       _order: [
  33650.         'url',
  33651.         'website',
  33652.         'ads_review_status',
  33653.         'ads_review_notes',
  33654.         'ads_settings_and_analytics_viewable',
  33655.         'forum_category_id',
  33656.         'ads_language',
  33657.         'adult_content'
  33658.       ],
  33659.       url: {
  33660.         title: 'Forum Shortname',
  33661.         type: 'text'
  33662.       },
  33663.       website: {
  33664.         title: 'Website',
  33665.         type: 'link'
  33666.       },
  33667.       ads_review_status: {
  33668.         options: [
  33669.           {
  33670.             id: AS.NOT_REVIEWED,
  33671.             name: 'Not Reviewed'
  33672.           },
  33673.           {
  33674.             id: AS.QUALIFIED,
  33675.             name: 'Qualified'
  33676.           },
  33677.           {
  33678.             id: AS.DISQUALIFIED,
  33679.             name: 'Disqualified'
  33680.           }
  33681.         ],
  33682.         title: 'Review Status',
  33683.         type: 'select'
  33684.       },
  33685.       ads_review_notes: {
  33686.         title: 'Notes',
  33687.         type: 'input'
  33688.       },
  33689.       ads_settings_and_analytics_viewable: {
  33690.         title: 'Reveal Eligible Settings Enabled',
  33691.         type: 'checkbox',
  33692.         computeValue: function (e) {
  33693.           return 'true' === e
  33694.         }
  33695.       },
  33696.       forum_category_id: {
  33697.         defaultValue: {
  33698.           id: '',
  33699.           name: 'None'
  33700.         },
  33701.         options: [
  33702.           {
  33703.             id: '1',
  33704.             name: 'Business'
  33705.           },
  33706.           {
  33707.             id: '2',
  33708.             name: 'Celebrity'
  33709.           },
  33710.           {
  33711.             id: '3',
  33712.             name: 'Culture'
  33713.           },
  33714.           {
  33715.             id: '4',
  33716.             name: 'Entertainment'
  33717.           },
  33718.           {
  33719.             id: '5',
  33720.             name: 'Games'
  33721.           },
  33722.           {
  33723.             id: '6',
  33724.             name: 'Living'
  33725.           },
  33726.           {
  33727.             id: '7',
  33728.             name: 'News'
  33729.           },
  33730.           {
  33731.             id: '8',
  33732.             name: 'Tech'
  33733.           },
  33734.           {
  33735.             id: '9',
  33736.             name: 'Style'
  33737.           },
  33738.           {
  33739.             id: '10',
  33740.             name: 'Sports'
  33741.           }
  33742.         ],
  33743.         title: 'Category',
  33744.         type: 'select'
  33745.       },
  33746.       ads_language: {
  33747.         defaultValue: {
  33748.           id: '',
  33749.           name: 'None'
  33750.         },
  33751.         optionId: 'code',
  33752.         options: i,
  33753.         title: 'Ads Language',
  33754.         type: 'select'
  33755.       },
  33756.       adult_content: {
  33757.         computeValue: function (e) {
  33758.           return 'true' === e
  33759.         },
  33760.         title: 'Adult Content',
  33761.         type: 'checkbox'
  33762.       }
  33763.     }),
  33764.     TS = Object.freeze({
  33765.       _order: [
  33766.         'organization_id',
  33767.         'organization_yesterday_pageviews',
  33768.         'org_largest_forum_shortname',
  33769.         'org_largest_forum_website',
  33770.         'deactivation_date',
  33771.         'open_to_ads',
  33772.         'hub_answer_detail',
  33773.         'suggested_exception_id',
  33774.         'exception_granted'
  33775.       ],
  33776.       organization_id: {
  33777.         title: 'Org ID',
  33778.         type: 'text'
  33779.       },
  33780.       organization_yesterday_pageviews: {
  33781.         title: 'Total Daily Engage Loads',
  33782.         type: 'text'
  33783.       },
  33784.       org_largest_forum_shortname: {
  33785.         title: 'Largest Forum in Org (deactivated from campaign) or Forum (deactivated from Reveal)',
  33786.         type: 'text'
  33787.       },
  33788.       org_largest_forum_website: {
  33789.         title: 'Website URL for largest forum shortname by traffic',
  33790.         type: 'link'
  33791.       },
  33792.       deactivation_date: {
  33793.         title: 'Deactivation Date',
  33794.         type: 'text'
  33795.       },
  33796.       open_to_ads: {
  33797.         computeValue: function (e) {
  33798.           return !0 === e ? 'Y' : 'N'
  33799.         },
  33800.         title: 'Open to Ads?',
  33801.         type: 'text'
  33802.       },
  33803.       hub_answer_detail: {
  33804.         title: 'Hub Question: Answer Detail',
  33805.         type: 'text'
  33806.       },
  33807.       suggested_exception_id: {
  33808.         computeValue: function (t) {
  33809.           return '' === t ? '' : DS.filter(function (e) {
  33810.             return e.id === t
  33811.           }) [0].name
  33812.         },
  33813.         title: 'Suggested Exception (if available)',
  33814.         type: 'text'
  33815.       },
  33816.       exception_granted: {
  33817.         defaultValue: {
  33818.           id: '',
  33819.           name: 'To Be Reviewed'
  33820.         },
  33821.         options: DS,
  33822.         title: 'Exception',
  33823.         type: 'select'
  33824.       }
  33825.     });
  33826.     function IS(e) {
  33827.       return (IS = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  33828.         return typeof e
  33829.       }
  33830.        : function (e) {
  33831.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  33832.       }) (e)
  33833.     }
  33834.     function qS() {
  33835.       return (qS = Object.assign || function (e) {
  33836.         for (var t = 1; t < arguments.length; t++) {
  33837.           var n,
  33838.           a = arguments[t];
  33839.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  33840.         }
  33841.         return e
  33842.       }).apply(this, arguments)
  33843.     }
  33844.     function FS(e) {
  33845.       return function (e) {
  33846.         if (Array.isArray(e)) return LS(e)
  33847.       }(e) || function (e) {
  33848.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  33849.       }(e) || function (e, t) {
  33850.         if (e) {
  33851.           if ('string' == typeof e) return LS(e, t);
  33852.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  33853.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? LS(e, t) : void 0
  33854.         }
  33855.       }(e) || function () {
  33856.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  33857.       }()
  33858.     }
  33859.     function LS(e, t) {
  33860.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  33861.       return a
  33862.     }
  33863.     function US(e, t) {
  33864.       for (var n = 0; n < t.length; n++) {
  33865.         var a = t[n];
  33866.         a.enumerable = a.enumerable || !1,
  33867.         a.configurable = !0,
  33868.         'value' in a && (a.writable = !0),
  33869.         Object.defineProperty(e, a.key, a)
  33870.       }
  33871.     }
  33872.     function MS(e, t) {
  33873.       return (MS = Object.setPrototypeOf || function (e, t) {
  33874.         return e.__proto__ = t,
  33875.         e
  33876.       }) (e, t)
  33877.     }
  33878.     function BS(n) {
  33879.       var a = function () {
  33880.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  33881.         if (Reflect.construct.sham) return !1;
  33882.         if ('function' == typeof Proxy) return !0;
  33883.         try {
  33884.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  33885.           ], function () {
  33886.           })),
  33887.           !0
  33888.         } catch (e) {
  33889.           return !1
  33890.         }
  33891.       }();
  33892.       return function () {
  33893.         var e,
  33894.         t = HS(n);
  33895.         return e = a ? (e = HS(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  33896.         t = this,
  33897.         !(e = e) || 'object' !== IS(e) && 'function' != typeof e ? zS(t) : e
  33898.       }
  33899.     }
  33900.     function zS(e) {
  33901.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  33902.       return e
  33903.     }
  33904.     function HS(e) {
  33905.       return (HS = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  33906.         return e.__proto__ || Object.getPrototypeOf(e)
  33907.       }) (e)
  33908.     }
  33909.     function GS(e, t, n) {
  33910.       return t in e ? Object.defineProperty(e, t, {
  33911.         value: n,
  33912.         enumerable: !0,
  33913.         configurable: !0,
  33914.         writable: !0
  33915.       }) : e[t] = n,
  33916.       e
  33917.     }
  33918.     Qs = function () {
  33919.       !function (e, t) {
  33920.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  33921.         e.prototype = Object.create(t && t.prototype, {
  33922.           constructor: {
  33923.             value: e,
  33924.             writable: !0,
  33925.             configurable: !0
  33926.           }
  33927.         }),
  33928.         t && MS(e, t)
  33929.       }(o, A);
  33930.       var e,
  33931.       t,
  33932.       n,
  33933.       a = BS(o);
  33934.       function o() {
  33935.         var r;
  33936.         !function (e, t) {
  33937.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  33938.         }(this, o);
  33939.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  33940.         return GS(zS(r = a.call.apply(a, [
  33941.           this
  33942.         ].concat(t))), 'state', {
  33943.           forums: [
  33944.           ],
  33945.           isFetching: !1,
  33946.           error: null
  33947.         }),
  33948.         GS(zS(r), 'fetchData', function (e) {
  33949.           r.setState({
  33950.             isFetching: !0,
  33951.             error: null
  33952.           });
  33953.           e = xS[e || r.props.params.tab],
  33954.           e = r.isExceptionTool() ? 'internal/exceptionManagement/list' : ''.concat(CS).concat(e, '.json');
  33955.           io.a.call(e).done(r.onFetch).fail(r.onFail)
  33956.         }),
  33957.         GS(zS(r), 'onFetch', function (e) {
  33958.           r.isExceptionTool() ? r.onExceptionFetch(e) : r.onOnboardingFetch(e)
  33959.         }),
  33960.         GS(zS(r), 'onExceptionFetch', function (e) {
  33961.           r.setState({
  33962.             forums: e.response,
  33963.             isFetching: !1
  33964.           })
  33965.         }),
  33966.         GS(zS(r), 'onOnboardingFetch', function (e) {
  33967.           e.length && e[0].looker_error ? r.setError(e[0].looker_error) : r.setState({
  33968.             forums: e.map(function (t) {
  33969.               return Object.keys(t).map(function (e) {
  33970.                 return [e.split('.') [1],
  33971.                 t[e]]
  33972.               }).reduce(function (e, t) {
  33973.                 return e[t[0]] = t[1],
  33974.                 e
  33975.               }, {
  33976.               })
  33977.             }),
  33978.             isFetching: !1
  33979.           })
  33980.         }),
  33981.         GS(zS(r), 'onFail', function (e) {
  33982.           r.setError(r.parseErrorResponse(e))
  33983.         }),
  33984.         GS(zS(r), 'setError', function (e) {
  33985.           r.setState({
  33986.             error: e,
  33987.             isFetching: !1
  33988.           })
  33989.         }),
  33990.         GS(zS(r), 'parseErrorResponse', function (e) {
  33991.           var t;
  33992.           try {
  33993.             t = JSON.parse(e.responseText).response
  33994.           } catch (e) {
  33995.             t = 'There was an error loading the report'
  33996.           }
  33997.           return t
  33998.         }),
  33999.         GS(zS(r), 'onUpdate', function (e, t) {
  34000.           r.updateForumKey(e, t, 'saving', !1)
  34001.         }),
  34002.         GS(zS(r), 'formatDataForUpdate', function (e) {
  34003.           return r.isExceptionTool() ? {
  34004.             organization: e.organization_id,
  34005.             adsExceptionReason: 'null' === e.exception_granted ? null : + ('' + e.exception_granted)
  34006.           }
  34007.            : {
  34008.             adsLanguage: e.ads_language,
  34009.             adsReviewStatus: e.ads_review_status,
  34010.             adsReviewNotes: e.ads_review_notes,
  34011.             adsAnalyticsViewable: 'true' === e.ads_settings_and_analytics_viewable ? 1 : 0,
  34012.             adsSettingsViewable: 'true' === e.ads_settings_and_analytics_viewable ? 1 : 0,
  34013.             adultContent: 'true' === e.adult_content ? 1 : 0,
  34014.             forum: e.url,
  34015.             forumCategory: e.forum_category_id
  34016.           }
  34017.         }),
  34018.         GS(zS(r), 'updateForum', function (e, t) {
  34019.           r.updateForumKey(e, t, 'saving', !0);
  34020.           var n = r.formatDataForUpdate(e);
  34021.           (r.isExceptionTool() ? r.props.orgUpdateOnUpdateOrg(n, {
  34022.             useInternal: !0
  34023.           }) : r.props.forumUpdateOnSave(n, {
  34024.             useInternal: !0
  34025.           })).done(r.onUpdate.bind(zS(r), e, t))
  34026.         }),
  34027.         GS(zS(r), 'updateForumKey', function (e, t, n, a) {
  34028.           r.setState({
  34029.             forums: [
  34030.             ].concat(FS(r.state.forums.slice(0, t)), [
  34031.               r.getDownstreamState(e, n, a)
  34032.             ], FS(r.state.forums.slice(t + 1)))
  34033.           })
  34034.         }),
  34035.         GS(zS(r), 'isExceptionTool', function () {
  34036.           return /exception/.test(r.props.route.path)
  34037.         }),
  34038.         GS(zS(r), 'getDownstreamState', function (e, t, n) {
  34039.           var a = !('saving' === t && !n),
  34040.           e = qS({
  34041.           }, e, (GS(e = {
  34042.           }, t, n), GS(e, 'isDirty', a), e));
  34043.           return 'ads_review_status' === t && n === AS.QUALIFIED ? r.getDownstreamState(e, 'ads_settings_and_analytics_viewable', 'true') : 'adult_content' === t && 'true' === n ? r.getDownstreamState(e, 'ads_review_status', AS.DISQUALIFIED) : e
  34044.         }),
  34045.         GS(zS(r), 'getComponentProps', function () {
  34046.           return {
  34047.             onboardingToolForums: r.state.forums,
  34048.             onboardingToolIsFetching: r.state.isFetching,
  34049.             onboardingToolError: r.state.error,
  34050.             onboardingToolFetchData: r.fetchData,
  34051.             onboardingToolUpdateForum: r.updateForum,
  34052.             onboardingToolUpdateForumKey: r.updateForumKey,
  34053.             isExceptionTool: r.isExceptionTool()
  34054.           }
  34055.         }),
  34056.         r
  34057.       }
  34058.       return e = o,
  34059.       (t = [
  34060.         {
  34061.           key: 'componentDidMount',
  34062.           value: function () {
  34063.             this.fetchData()
  34064.           }
  34065.         },
  34066.         {
  34067.           key: 'componentWillUpdate',
  34068.           value: function (e) {
  34069.             e.params.tab !== this.props.params.tab && this.fetchData(e.params.tab)
  34070.           }
  34071.         },
  34072.         {
  34073.           key: 'componentWillUnmount',
  34074.           value: function () {
  34075.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  34076.           }
  34077.         }
  34078.       ]) && US(e.prototype, t),
  34079.       n && US(e, n),
  34080.       o
  34081.     }();
  34082.     GS(Qs, 'displayName', 'OnboardingToolDriver'),
  34083.     GS(Qs, 'propTypes', {
  34084.       params: b.a.object.isRequired,
  34085.       orgUpdateOnUpdateOrg: b.a.func.isRequired,
  34086.       forumUpdateOnSave: b.a.func.isRequired,
  34087.       route: b.a.object.isRequired
  34088.     });
  34089.     go = Object(ki.attachDrivers) (Object(ki.createDriver) (Qs), [
  34090.       Pc,
  34091.       m
  34092.     ]);
  34093.     function VS(e) {
  34094.       return (VS = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  34095.         return typeof e
  34096.       }
  34097.        : function (e) {
  34098.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  34099.       }) (e)
  34100.     }
  34101.     function WS(e, t) {
  34102.       for (var n = 0; n < t.length; n++) {
  34103.         var a = t[n];
  34104.         a.enumerable = a.enumerable || !1,
  34105.         a.configurable = !0,
  34106.         'value' in a && (a.writable = !0),
  34107.         Object.defineProperty(e, a.key, a)
  34108.       }
  34109.     }
  34110.     function YS(e, t) {
  34111.       return (YS = Object.setPrototypeOf || function (e, t) {
  34112.         return e.__proto__ = t,
  34113.         e
  34114.       }) (e, t)
  34115.     }
  34116.     function QS(n) {
  34117.       var a = function () {
  34118.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  34119.         if (Reflect.construct.sham) return !1;
  34120.         if ('function' == typeof Proxy) return !0;
  34121.         try {
  34122.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  34123.           ], function () {
  34124.           })),
  34125.           !0
  34126.         } catch (e) {
  34127.           return !1
  34128.         }
  34129.       }();
  34130.       return function () {
  34131.         var e,
  34132.         t = JS(n);
  34133.         return e = a ? (e = JS(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  34134.         t = this,
  34135.         !(e = e) || 'object' !== VS(e) && 'function' != typeof e ? KS(t) : e
  34136.       }
  34137.     }
  34138.     function KS(e) {
  34139.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  34140.       return e
  34141.     }
  34142.     function JS(e) {
  34143.       return (JS = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  34144.         return e.__proto__ || Object.getPrototypeOf(e)
  34145.       }) (e)
  34146.     }
  34147.     function $S(e, t, n) {
  34148.       return t in e ? Object.defineProperty(e, t, {
  34149.         value: n,
  34150.         enumerable: !0,
  34151.         configurable: !0,
  34152.         writable: !0
  34153.       }) : e[t] = n,
  34154.       e
  34155.     }
  34156.     var ZS = Object.freeze({
  34157.       text: function (e) {
  34158.         return C.a.createElement('td', {
  34159.           key: e.forumKey,
  34160.           className: 'onboarding-table__text-cell'
  34161.         }, e.forumKeyValue)
  34162.       },
  34163.       link: function (e) {
  34164.         var t = e.forumKeyValue.match(/^https?:\/\//) ? e.forumKeyValue : 'http://'.concat(e.forumKeyValue);
  34165.         return C.a.createElement('td', {
  34166.           key: e.forumKey,
  34167.           className: 'onboarding-table__text-cell'
  34168.         }, C.a.createElement('a', {
  34169.           href: t,
  34170.           target: '_blank'
  34171.         }, e.forumKeyValue))
  34172.       },
  34173.       select: function (e, t) {
  34174.         var n,
  34175.         a = e.forumKeyStatic.optionId || 'id';
  34176.         return e.forumKeyStatic.defaultValue && (n = C.a.createElement('option', {
  34177.           value: e.forumKeyStatic.defaultValue.id
  34178.         }, e.forumKeyStatic.defaultValue.name)),
  34179.         C.a.createElement('td', {
  34180.           key: e.forumKey
  34181.         }, C.a.createElement('select', {
  34182.           value: e.forumKeyValue,
  34183.           className: 'onboarding-table__select',
  34184.           onChange: t.bind(null, e.forum, e.forumIndex, e.forumKey)
  34185.         }, n, e.forumKeyStatic.options.map(function (e) {
  34186.           return C.a.createElement('option', {
  34187.             key: e[a],
  34188.             value: e[a]
  34189.           }, e.name)
  34190.         })))
  34191.       },
  34192.       input: function (e, t) {
  34193.         return C.a.createElement('td', {
  34194.           key: e.forumKey
  34195.         }, C.a.createElement('input', {
  34196.           onChange: t.bind(null, e.forum, e.forumIndex, e.forumKey),
  34197.           className: 'onboarding-table__input',
  34198.           value: e.forumKeyValue
  34199.         }))
  34200.       },
  34201.       checkbox: function (e, t) {
  34202.         return C.a.createElement('td', {
  34203.           key: e.forumKey
  34204.         }, C.a.createElement('input', {
  34205.           type: 'checkbox',
  34206.           checked: e.forumKeyValue,
  34207.           onChange: t.bind(null, e.forum, e.forumIndex, e.forumKey)
  34208.         }))
  34209.       }
  34210.     }),
  34211.     Ls = function () {
  34212.       !function (e, t) {
  34213.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  34214.         e.prototype = Object.create(t && t.prototype, {
  34215.           constructor: {
  34216.             value: e,
  34217.             writable: !0,
  34218.             configurable: !0
  34219.           }
  34220.         }),
  34221.         t && YS(e, t)
  34222.       }(r, A);
  34223.       var e,
  34224.       t,
  34225.       n,
  34226.       a = QS(r);
  34227.       function r() {
  34228.         var l;
  34229.         !function (e, t) {
  34230.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  34231.         }(this, r);
  34232.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  34233.         return $S(KS(l = a.call.apply(a, [
  34234.           this
  34235.         ].concat(t))), 'getDynamicKeys', function () {
  34236.           return je.a.isEmpty(l.props.forums) ? [
  34237.           ] : Object.keys(l.props.forums[0]).filter(function (e) {
  34238.             return l.props.isExceptionTool ? TS[e] : !!~RS.indexOf(e)
  34239.           })
  34240.         }),
  34241.         $S(KS(l), 'updateForum', function (e, t) {
  34242.           l.props.updateForum(e, t)
  34243.         }),
  34244.         $S(KS(l), 'onInputChange', function (e, t, n, a) {
  34245.           l.props.updateForumKey(e, t, n, a.target.value)
  34246.         }),
  34247.         $S(KS(l), 'onCheckboxChange', function (e, t, n, a) {
  34248.           l.props.updateForumKey(e, t, n, a.target.checked ? 'true' : '')
  34249.         }),
  34250.         $S(KS(l), 'generateTableHeaders', function (t) {
  34251.           return t._order.map(function (e) {
  34252.             return C.a.createElement('th', {
  34253.               key: e
  34254.             }, t[e].title)
  34255.           })
  34256.         }),
  34257.         $S(KS(l), 'generateTableElements', function (o, i, s) {
  34258.           return o._order.map(function (e) {
  34259.             var t,
  34260.             n = o[e],
  34261.             a = null,
  34262.             r = null;
  34263.             return n && (t = null === i[e] ? '' : i[e], n.computeValue && (t = n.computeValue(t)), 'input' !== n.type && 'select' !== n.type || (r = l.onInputChange), a = ZS[n.type]({
  34264.               forumKey: e,
  34265.               forumKeyValue: t,
  34266.               forumKeyStatic: n,
  34267.               forum: i,
  34268.               forumIndex: s
  34269.             }, r = 'checkbox' === n.type ? l.onCheckboxChange : r)),
  34270.             a
  34271.           })
  34272.         }),
  34273.         l
  34274.       }
  34275.       return e = r,
  34276.       (t = [
  34277.         {
  34278.           key: 'render',
  34279.           value: function () {
  34280.             var e,
  34281.             a = this;
  34282.             return !1 === this.props.isExceptionTool && (e = this.getDynamicKeys().map(function (e) {
  34283.               return C.a.createElement('th', {
  34284.                 key: e
  34285.               }, e.replace(/_/g, ' ').split(' ').map(function (e) {
  34286.                 return (e[0] || '').toUpperCase() + e.slice(1)
  34287.               }).join(' '))
  34288.             })),
  34289.             C.a.createElement('div', {
  34290.               style: {
  34291.                 overflowX: 'scroll'
  34292.               }
  34293.             }, C.a.createElement('table', {
  34294.               className: 'padding-top zebra-striped',
  34295.               style: {
  34296.                 width: 'auto'
  34297.               }
  34298.             }, C.a.createElement('thead', null, C.a.createElement('tr', null, C.a.createElement('th', {
  34299.               style: {
  34300.                 minWidth: '100px'
  34301.               }
  34302.             }), this.generateTableHeaders(this.props.isExceptionTool ? TS : jS), e)), C.a.createElement('tbody', null, this.props.forums.map(function (t, e) {
  34303.               var n;
  34304.               return !1 === a.props.isExceptionTool && (n = a.getDynamicKeys().map(function (e) {
  34305.                 return C.a.createElement('td', {
  34306.                   key: ''.concat(t.forum_id, '_').concat(e),
  34307.                   style: {
  34308.                     minWidth: '100px'
  34309.                   }
  34310.                 }, t[e])
  34311.               })),
  34312.               C.a.createElement('tr', {
  34313.                 key: t.organization_id
  34314.               }, C.a.createElement('td', {
  34315.                 style: {
  34316.                   textAlign: 'center'
  34317.                 }
  34318.               }, C.a.createElement('button', {
  34319.                 value: 'submit',
  34320.                 className: 'button button-fill--brand button-small',
  34321.                 disabled: t.saving || !t.isDirty,
  34322.                 onClick: a.updateForum.bind(a, t, e)
  34323.               }, t.saving ? 'Saving...' : 'Save')), a.generateTableElements(a.props.isExceptionTool ? TS : jS, t, e), n)
  34324.             }, this))))
  34325.           }
  34326.         }
  34327.       ]) && WS(e.prototype, t),
  34328.       n && WS(e, n),
  34329.       r
  34330.     }();
  34331.     $S(Ls, 'propTypes', {
  34332.       forums: b.a.array.isRequired,
  34333.       isExceptionTool: b.a.bool.isRequired,
  34334.       updateForum: b.a.func.isRequired,
  34335.       updateForumKey: b.a.func.isRequired
  34336.     });
  34337.     var XS = Ls;
  34338.     function ew(e) {
  34339.       return (ew = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  34340.         return typeof e
  34341.       }
  34342.        : function (e) {
  34343.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  34344.       }) (e)
  34345.     }
  34346.     function tw(e, t) {
  34347.       for (var n = 0; n < t.length; n++) {
  34348.         var a = t[n];
  34349.         a.enumerable = a.enumerable || !1,
  34350.         a.configurable = !0,
  34351.         'value' in a && (a.writable = !0),
  34352.         Object.defineProperty(e, a.key, a)
  34353.       }
  34354.     }
  34355.     function nw(e, t) {
  34356.       return (nw = Object.setPrototypeOf || function (e, t) {
  34357.         return e.__proto__ = t,
  34358.         e
  34359.       }) (e, t)
  34360.     }
  34361.     function aw(n) {
  34362.       var a = function () {
  34363.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  34364.         if (Reflect.construct.sham) return !1;
  34365.         if ('function' == typeof Proxy) return !0;
  34366.         try {
  34367.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  34368.           ], function () {
  34369.           })),
  34370.           !0
  34371.         } catch (e) {
  34372.           return !1
  34373.         }
  34374.       }();
  34375.       return function () {
  34376.         var e,
  34377.         t = ow(n);
  34378.         return e = a ? (e = ow(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  34379.         t = this,
  34380.         !(e = e) || 'object' !== ew(e) && 'function' != typeof e ? rw(t) : e
  34381.       }
  34382.     }
  34383.     function rw(e) {
  34384.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  34385.       return e
  34386.     }
  34387.     function ow(e) {
  34388.       return (ow = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  34389.         return e.__proto__ || Object.getPrototypeOf(e)
  34390.       }) (e)
  34391.     }
  34392.     function iw(e, t, n) {
  34393.       return t in e ? Object.defineProperty(e, t, {
  34394.         value: n,
  34395.         enumerable: !0,
  34396.         configurable: !0,
  34397.         writable: !0
  34398.       }) : e[t] = n,
  34399.       e
  34400.     }
  34401.     Mo = function () {
  34402.       !function (e, t) {
  34403.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  34404.         e.prototype = Object.create(t && t.prototype, {
  34405.           constructor: {
  34406.             value: e,
  34407.             writable: !0,
  34408.             configurable: !0
  34409.           }
  34410.         }),
  34411.         t && nw(e, t)
  34412.       }(o, A);
  34413.       var e,
  34414.       t,
  34415.       n,
  34416.       r = aw(o);
  34417.       function o() {
  34418.         var t;
  34419.         !function (e, t) {
  34420.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  34421.         }(this, o);
  34422.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  34423.         return iw(rw(t = r.call.apply(r, [
  34424.           this
  34425.         ].concat(n))), 'state', {
  34426.           isExpanded: !1
  34427.         }),
  34428.         iw(rw(t), 'fetchData', function (e) {
  34429.           t.props.onboardingToolFetchData(e)
  34430.         }),
  34431.         iw(rw(t), 'toggleExpanded', function () {
  34432.           t.setState({
  34433.             isExpanded: !t.state.isExpanded
  34434.           })
  34435.         }),
  34436.         t
  34437.       }
  34438.       return e = o,
  34439.       (t = [
  34440.         {
  34441.           key: 'render',
  34442.           value: function () {
  34443.             if (!this.props.auth.staff) return C.a.createElement('div', {
  34444.               className: 'section-contained'
  34445.             }, C.a.createElement('div', null, ' You aren\'t allowed to access this page '));
  34446.             var e,
  34447.             t = this.state.isExpanded ? '' : 'section-contained section-contained-expanded';
  34448.             return !1 === this.props.isExceptionTool && (e = C.a.createElement('div', {
  34449.               className: 'spacing-bottom-double align align--between'
  34450.             }, C.a.createElement('ul', {
  34451.               className: 'nav-tabs -small -inline'
  34452.             }, Object.keys(xS).map(function (e) {
  34453.               return C.a.createElement('li', {
  34454.                 key: e
  34455.               }, C.a.createElement(v.Link, {
  34456.                 to: '/tools/onboarding/'.concat(e, '/'),
  34457.                 activeClassName: 'active'
  34458.               }, e.replace(/-/g, ' ')))
  34459.             })), C.a.createElement('div', {
  34460.               className: 'align align--middle'
  34461.             }, C.a.createElement('button', {
  34462.               onClick: this.toggleExpanded,
  34463.               className: 'button button-fill button-small spacing-right'
  34464.             }, this.state.isExpanded ? 'Make narrower' : 'Make wider'), C.a.createElement('button', {
  34465.               className: 'button button-fill button-small',
  34466.               onClick: this.fetchData.bind(this, this.props.params.tab)
  34467.             }, 'Refresh')))),
  34468.             C.a.createElement('div', {
  34469.               className: t
  34470.             }, C.a.createElement('div', {
  34471.               className: 'layout content__wrap admin_content'
  34472.             }, e, this.props.onboardingToolIsFetching ? C.a.createElement('div', {
  34473.               className: 'spinner'
  34474.             }) : C.a.createElement('div', null, this.props.onboardingToolForums && 0 < this.props.onboardingToolForums.length ? C.a.createElement(XS, {
  34475.               fetchData: this.props.onboardingToolFetchData,
  34476.               forums: this.props.onboardingToolForums,
  34477.               tab: this.props.params.tab,
  34478.               updateForum: this.props.onboardingToolUpdateForum,
  34479.               updateForumKey: this.props.onboardingToolUpdateForumKey,
  34480.               isExceptionTool: this.props.isExceptionTool
  34481.             }) : C.a.createElement('div', null, this.props.onboardingToolError ? C.a.createElement(Ki, {
  34482.               message: this.props.onboardingToolError,
  34483.               alertType: 'error'
  34484.             }) : 'No rows returned.', C.a.createElement('a', {
  34485.               href: '#',
  34486.               onClick: this.fetchData.bind(this, this.props.params.tab)
  34487.             }, 'Try again')))))
  34488.           }
  34489.         }
  34490.       ]) && tw(e.prototype, t),
  34491.       n && tw(e, n),
  34492.       o
  34493.     }();
  34494.     iw(Mo, 'propTypes', {
  34495.       auth: b.a.object,
  34496.       isExceptionTool: b.a.bool,
  34497.       onboardingToolForums: b.a.array.isRequired,
  34498.       onboardingToolFetchData: b.a.func.isRequired,
  34499.       onboardingToolIsFetching: b.a.bool.isRequired,
  34500.       onboardingToolUpdateForum: b.a.func.isRequired,
  34501.       onboardingToolUpdateForumKey: b.a.func.isRequired,
  34502.       onboardingToolError: b.a.string,
  34503.       params: b.a.shape({
  34504.         tab: b.a.string
  34505.       }).isRequired
  34506.     });
  34507.     Vi = Object(u.connect) (function (e) {
  34508.       return {
  34509.         auth: e.auth.auth,
  34510.         selection: e.selection
  34511.       }
  34512.     }) (Ni.a.attachDrivers(Mo, [
  34513.       go
  34514.     ]));
  34515.     function sw(e) {
  34516.       return (sw = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  34517.         return typeof e
  34518.       }
  34519.        : function (e) {
  34520.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  34521.       }) (e)
  34522.     }
  34523.     function lw(e, t) {
  34524.       for (var n = 0; n < t.length; n++) {
  34525.         var a = t[n];
  34526.         a.enumerable = a.enumerable || !1,
  34527.         a.configurable = !0,
  34528.         'value' in a && (a.writable = !0),
  34529.         Object.defineProperty(e, a.key, a)
  34530.       }
  34531.     }
  34532.     function cw(e, t) {
  34533.       return (cw = Object.setPrototypeOf || function (e, t) {
  34534.         return e.__proto__ = t,
  34535.         e
  34536.       }) (e, t)
  34537.     }
  34538.     function uw(n) {
  34539.       var a = function () {
  34540.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  34541.         if (Reflect.construct.sham) return !1;
  34542.         if ('function' == typeof Proxy) return !0;
  34543.         try {
  34544.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  34545.           ], function () {
  34546.           })),
  34547.           !0
  34548.         } catch (e) {
  34549.           return !1
  34550.         }
  34551.       }();
  34552.       return function () {
  34553.         var e,
  34554.         t = dw(n);
  34555.         return e = a ? (e = dw(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  34556.         t = this,
  34557.         !(e = e) || 'object' !== sw(e) && 'function' != typeof e ? pw(t) : e
  34558.       }
  34559.     }
  34560.     function pw(e) {
  34561.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  34562.       return e
  34563.     }
  34564.     function dw(e) {
  34565.       return (dw = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  34566.         return e.__proto__ || Object.getPrototypeOf(e)
  34567.       }) (e)
  34568.     }
  34569.     function mw(e, t, n) {
  34570.       return t in e ? Object.defineProperty(e, t, {
  34571.         value: n,
  34572.         enumerable: !0,
  34573.         configurable: !0,
  34574.         writable: !0
  34575.       }) : e[t] = n,
  34576.       e
  34577.     }
  34578.     Yc = function (i) {
  34579.       var e = (i[0] || '').toUpperCase() + i.substring(1),
  34580.       t = 'ForumFlag'.concat(e, 'Driver'),
  34581.       s = 'forumFlag'.concat(e),
  34582.       e = function () {
  34583.         !function (e, t) {
  34584.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  34585.           e.prototype = Object.create(t && t.prototype, {
  34586.             constructor: {
  34587.               value: e,
  34588.               writable: !0,
  34589.               configurable: !0
  34590.             }
  34591.           }),
  34592.           t && cw(e, t)
  34593.         }(o, A);
  34594.         var e,
  34595.         t,
  34596.         n,
  34597.         r = uw(o);
  34598.         function o() {
  34599.           var t;
  34600.           !function (e, t) {
  34601.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  34602.           }(this, o);
  34603.           for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  34604.           return mw(pw(t = r.call.apply(r, [
  34605.             this
  34606.           ].concat(n))), 'state', mw({
  34607.           }, s, null)),
  34608.           mw(pw(t), 'fetchData', function () {
  34609.             var e = {
  34610.               forum: t.props.selection.forum.shortname
  34611.             };
  34612.             t.apiCall = io.a.call('forums/'.concat(i), {
  34613.               data: e
  34614.             }).done(t.onFetch)
  34615.           }),
  34616.           mw(pw(t), 'onFetch', function (e) {
  34617.             null !== e.response && t.setState(mw({
  34618.             }, s, e.response))
  34619.           }),
  34620.           mw(pw(t), 'getComponentProps', function () {
  34621.             return mw({
  34622.             }, s, t.state[s])
  34623.           }),
  34624.           t
  34625.         }
  34626.         return e = o,
  34627.         (t = [
  34628.           {
  34629.             key: 'componentDidMount',
  34630.             value: function () {
  34631.               this.props.selection.type === ft.forum && this.fetchData()
  34632.             }
  34633.           },
  34634.           {
  34635.             key: 'componentWillUnmount',
  34636.             value: function () {
  34637.               this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  34638.             }
  34639.           }
  34640.         ]) && lw(e.prototype, t),
  34641.         n && lw(e, n),
  34642.         o
  34643.       }();
  34644.       return mw(e, 'displayName', t),
  34645.       mw(e, 'propTypes', {
  34646.         selection: ht.isRequired
  34647.       }),
  34648.       Object(ki.createDriver) (e, function (e) {
  34649.         return {
  34650.           selection: e.selection
  34651.         }
  34652.       })
  34653.     };
  34654.     function fw(e) {
  34655.       return (fw = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  34656.         return typeof e
  34657.       }
  34658.        : function (e) {
  34659.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  34660.       }) (e)
  34661.     }
  34662.     function hw() {
  34663.       return (hw = Object.assign || function (e) {
  34664.         for (var t = 1; t < arguments.length; t++) {
  34665.           var n,
  34666.           a = arguments[t];
  34667.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  34668.         }
  34669.         return e
  34670.       }).apply(this, arguments)
  34671.     }
  34672.     function gw(e, t) {
  34673.       for (var n = 0; n < t.length; n++) {
  34674.         var a = t[n];
  34675.         a.enumerable = a.enumerable || !1,
  34676.         a.configurable = !0,
  34677.         'value' in a && (a.writable = !0),
  34678.         Object.defineProperty(e, a.key, a)
  34679.       }
  34680.     }
  34681.     function yw(e, t) {
  34682.       return (yw = Object.setPrototypeOf || function (e, t) {
  34683.         return e.__proto__ = t,
  34684.         e
  34685.       }) (e, t)
  34686.     }
  34687.     function bw(n) {
  34688.       var a = function () {
  34689.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  34690.         if (Reflect.construct.sham) return !1;
  34691.         if ('function' == typeof Proxy) return !0;
  34692.         try {
  34693.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  34694.           ], function () {
  34695.           })),
  34696.           !0
  34697.         } catch (e) {
  34698.           return !1
  34699.         }
  34700.       }();
  34701.       return function () {
  34702.         var e,
  34703.         t = _w(n);
  34704.         return e = a ? (e = _w(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  34705.         t = this,
  34706.         !(e = e) || 'object' !== fw(e) && 'function' != typeof e ? vw(t) : e
  34707.       }
  34708.     }
  34709.     function vw(e) {
  34710.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  34711.       return e
  34712.     }
  34713.     function _w(e) {
  34714.       return (_w = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  34715.         return e.__proto__ || Object.getPrototypeOf(e)
  34716.       }) (e)
  34717.     }
  34718.     function Ew(e, t, n) {
  34719.       return t in e ? Object.defineProperty(e, t, {
  34720.         value: n,
  34721.         enumerable: !0,
  34722.         configurable: !0,
  34723.         writable: !0
  34724.       }) : e[t] = n,
  34725.       e
  34726.     }
  34727.     var Ow = 100,
  34728.     yl = function () {
  34729.       !function (e, t) {
  34730.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  34731.         e.prototype = Object.create(t && t.prototype, {
  34732.           constructor: {
  34733.             value: e,
  34734.             writable: !0,
  34735.             configurable: !0
  34736.           }
  34737.         }),
  34738.         t && yw(e, t)
  34739.       }(o, A);
  34740.       var e,
  34741.       t,
  34742.       n,
  34743.       r = bw(o);
  34744.       function o() {
  34745.         var n;
  34746.         !function (e, t) {
  34747.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  34748.         }(this, o);
  34749.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  34750.         return Ew(vw(n = r.call.apply(r, [
  34751.           this
  34752.         ].concat(t))), 'state', {
  34753.           revenue: null,
  34754.           revenueErrorCode: null,
  34755.           revenueLoading: null
  34756.         }),
  34757.         Ew(vw(n), 'shouldFetch', function () {
  34758.           return null !== n.props.forumFlagHasCustomTerms && !n.props.forumFlagHasCustomTerms && (!n.state.revenue && !n.state.revenueLoading && (!n.props.selection.organization || !n.props.selection.organization.activeGuarantee))
  34759.         }),
  34760.         Ew(vw(n), 'fetchData', function () {
  34761.           var e = {
  34762.             forum: n.props.selection.forum.shortname
  34763.           };
  34764.           n.setState({
  34765.             revenueLoading: !0,
  34766.             revenueErrorCode: null
  34767.           }),
  34768.           n.apiCall = io.a.call('discovery/reports/revenueReport.json', {
  34769.             data: e
  34770.           }).done(n.onFetch).error(n.onError)
  34771.         }),
  34772.         Ew(vw(n), 'onFetch', function (e) {
  34773.           e.response && n.setState({
  34774.             revenue: e.response.earnings.map(function (e) {
  34775.               return hw({
  34776.               }, e, {
  34777.                 payDateStart: ct.a.utc(e.payDateStart),
  34778.                 payDateEnd: ct.a.utc(e.payDateEnd),
  34779.                 periodStart: ct.a.utc(e.periodStart),
  34780.                 periodEnd: ct.a.utc(e.periodEnd),
  34781.                 isLessThanMinimum: e.amount < Ow
  34782.               })
  34783.             }),
  34784.             revenueErrorCode: null,
  34785.             revenueLoading: !1
  34786.           })
  34787.         }),
  34788.         Ew(vw(n), 'onError', function (e) {
  34789.           try {
  34790.             var t = JSON.parse(e.responseText).code
  34791.           } catch (e) {
  34792.             t = !0
  34793.           }
  34794.           n.setState({
  34795.             revenueErrorCode: t,
  34796.             revenueLoading: !1
  34797.           })
  34798.         }),
  34799.         Ew(vw(n), 'getComponentProps', function () {
  34800.           return {
  34801.             revenue: n.state.revenue,
  34802.             revenueErrorCode: n.state.revenueErrorCode,
  34803.             revenueLoading: n.state.revenueLoading
  34804.           }
  34805.         }),
  34806.         n
  34807.       }
  34808.       return e = o,
  34809.       (t = [
  34810.         {
  34811.           key: 'componentDidMount',
  34812.           value: function () {
  34813.             this.shouldFetch() && this.fetchData()
  34814.           }
  34815.         },
  34816.         {
  34817.           key: 'componentWillReceiveProps',
  34818.           value: function () {
  34819.             this.shouldFetch() && this.fetchData()
  34820.           }
  34821.         }
  34822.       ]) && gw(e.prototype, t),
  34823.       n && gw(e, n),
  34824.       o
  34825.     }();
  34826.     Ew(yl, 'displayName', 'RevenueDriver'),
  34827.     Ew(yl, 'propTypes', {
  34828.       forumFlagHasCustomTerms: b.a.bool,
  34829.       forumFlagHasPaymentInfo: b.a.bool,
  34830.       selection: ht.isRequired
  34831.     });
  34832.     function Sw() {
  34833.       var e = (e = br.shortname && window._v5Config.forums[br.shortname]) && e.tipaltiUrl;
  34834.       return C.a.createElement('div', {
  34835.         className: 'alert alert--warning-light spacing-bottom'
  34836.       }, C.a.createElement('div', {
  34837.         className: 'spacing-narrow'
  34838.       }, C.a.createElement('h2', {
  34839.         className: 'spacing-bottom-narrow'
  34840.       }, C.a.createElement('span', {
  34841.         className: 'icon__position spacing-right-small'
  34842.       }, C.a.createElement('img', {
  34843.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/vip-info.png',
  34844.         width: '20'
  34845.       })), 'We need more info to pay you!'), C.a.createElement('p', {
  34846.         className: 'text-medium'
  34847.       }, 'You\'ve earned money that we\'d like to send you. Be sure to fill out your ', C.a.createElement('strong', null, C.a.createElement('a', {
  34848.         href: e,
  34849.         target: '_blank'
  34850.       }, 'payment information')), ' so we can pay you soon.')))
  34851.     }
  34852.     h = Object(ki.attachDrivers) (Object(ki.createDriver) (yl), [
  34853.       Yc('hasPaymentInfo'),
  34854.       Yc('hasCustomTerms')
  34855.     ]);
  34856.     function ww(e) {
  34857.       return (ww = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  34858.         return typeof e
  34859.       }
  34860.        : function (e) {
  34861.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  34862.       }) (e)
  34863.     }
  34864.     function Pw(e, t) {
  34865.       for (var n = 0; n < t.length; n++) {
  34866.         var a = t[n];
  34867.         a.enumerable = a.enumerable || !1,
  34868.         a.configurable = !0,
  34869.         'value' in a && (a.writable = !0),
  34870.         Object.defineProperty(e, a.key, a)
  34871.       }
  34872.     }
  34873.     function kw(e, t) {
  34874.       return (kw = Object.setPrototypeOf || function (e, t) {
  34875.         return e.__proto__ = t,
  34876.         e
  34877.       }) (e, t)
  34878.     }
  34879.     function Nw(n) {
  34880.       var a = function () {
  34881.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  34882.         if (Reflect.construct.sham) return !1;
  34883.         if ('function' == typeof Proxy) return !0;
  34884.         try {
  34885.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  34886.           ], function () {
  34887.           })),
  34888.           !0
  34889.         } catch (e) {
  34890.           return !1
  34891.         }
  34892.       }();
  34893.       return function () {
  34894.         var e,
  34895.         t = Rw(n);
  34896.         return e = a ? (e = Rw(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  34897.         t = this,
  34898.         !(e = e) || 'object' !== ww(e) && 'function' != typeof e ? Cw(t) : e
  34899.       }
  34900.     }
  34901.     function Cw(e) {
  34902.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  34903.       return e
  34904.     }
  34905.     function Rw(e) {
  34906.       return (Rw = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  34907.         return e.__proto__ || Object.getPrototypeOf(e)
  34908.       }) (e)
  34909.     }
  34910.     function xw(e, t, n) {
  34911.       return t in e ? Object.defineProperty(e, t, {
  34912.         value: n,
  34913.         enumerable: !0,
  34914.         configurable: !0,
  34915.         writable: !0
  34916.       }) : e[t] = n,
  34917.       e
  34918.     }
  34919.     i = b.a.shape({
  34920.       periodStart: s.moment,
  34921.       periodEnd: s.moment,
  34922.       payDateStart: s.moment,
  34923.       payDateEnd: s.moment
  34924.     }),
  34925.     Qs = function n(e) {
  34926.       var a = e.icon;
  34927.       return C.a.createElement('table', {
  34928.         className: 'table--no-border -inner-no-border earnings-table'
  34929.       }, C.a.createElement('thead', {
  34930.         className: 'earnings-table__subtext text-subheading'
  34931.       }, C.a.createElement('tr', null, C.a.createElement('th', {
  34932.         className: 'earnings-timeline__indicator'
  34933.       }), C.a.createElement('th', null, 'Earnings Period'), C.a.createElement('th', null, 'Estimated Pay Date'), C.a.createElement('th', null, 'Amount'))), C.a.createElement('tbody', null, e.rows.map(function (e) {
  34934.         var t = ct() (e.periodStart).format('MMDDYY');
  34935.         return C.a.createElement(n.Row, {
  34936.           key: t,
  34937.           row: e,
  34938.           icon: a
  34939.         })
  34940.       }), e.total ? C.a.createElement('tr', {
  34941.         className: 'earnings-table__subtext text-subheading'
  34942.       }, C.a.createElement('td', null), C.a.createElement('td', {
  34943.         colSpan: '2'
  34944.       }, 'Total'), C.a.createElement('td', null, '$', Dp.addThousandsSeparator(e.total.toFixed(2)))) : null))
  34945.     };
  34946.     Qs.displayName = 'EarningsTable',
  34947.     Qs.propTypes = {
  34948.       icon: b.a.string.isRequired,
  34949.       rows: b.a.arrayOf(i).isRequired,
  34950.       total: b.a.number
  34951.     },
  34952.     Qs.Row = (Ls = Pc = function () {
  34953.       !function (e, t) {
  34954.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  34955.         e.prototype = Object.create(t && t.prototype, {
  34956.           constructor: {
  34957.             value: e,
  34958.             writable: !0,
  34959.             configurable: !0
  34960.           }
  34961.         }),
  34962.         t && kw(e, t)
  34963.       }(o, A);
  34964.       var e,
  34965.       t,
  34966.       n,
  34967.       r = Nw(o);
  34968.       function o() {
  34969.         var e;
  34970.         !function (e, t) {
  34971.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  34972.         }(this, o);
  34973.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  34974.         return xw(Cw(e = r.call.apply(r, [
  34975.           this
  34976.         ].concat(n))), 'formatDate', function (e) {
  34977.           return e.utc().format('MM/D/YY')
  34978.         }),
  34979.         e
  34980.       }
  34981.       return e = o,
  34982.       (t = [
  34983.         {
  34984.           key: 'render',
  34985.           value: function () {
  34986.             var e = this.props.row.periodStart.utc().format('MMM'),
  34987.             t = this.formatDate(this.props.row.periodStart),
  34988.             n = this.formatDate(this.props.row.periodEnd),
  34989.             a = this.formatDate(this.props.row.payDateStart),
  34990.             r = this.formatDate(this.props.row.payDateEnd);
  34991.             return C.a.createElement('tr', null, C.a.createElement('td', {
  34992.               className: 'earnings-timeline__indicator'
  34993.             }, C.a.createElement('span', {
  34994.               className: 'earnings-timeline__date'
  34995.             }, e), C.a.createElement('img', {
  34996.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/'.concat(this.props.icon)
  34997.             })), C.a.createElement('td', null, t, ' - ', n), C.a.createElement('td', null, this.props.row.isLessThanMinimum ? C.a.createElement(Md, {
  34998.               tooltipKey: 'payment',
  34999.               content: 'Payment dates can be estimated for upcoming payments of $100 or more.',
  35000.               direction: 'top'
  35001.             }) : ''.concat(a, ' - ').concat(r)), C.a.createElement('td', null, '$', Dp.addThousandsSeparator(this.props.row.amount.toFixed(2))))
  35002.           }
  35003.         }
  35004.       ]) && Pw(e.prototype, t),
  35005.       n && Pw(e, n),
  35006.       o
  35007.     }(), xw(Pc, 'propTypes', {
  35008.       icon: b.a.string.isRequired,
  35009.       row: i.isRequired
  35010.     }), Ls),
  35011.     Qs.ROW_SHAPE = i;
  35012.     var Aw = Qs,
  35013.     Mo = function (e) {
  35014.       var t,
  35015.       n,
  35016.       a,
  35017.       r = 'earnings-timeline earnings-timeline--first';
  35018.       return 0 === e.rows.length && (r += ' earnings-timeline--empty'),
  35019.       0 === e.total ? a = C.a.createElement('p', null, 'You don\'t have any upcoming payments. ', C.a.createElement('a', {
  35020.         href: 'https://help.disqus.com/customer/portal/articles/1208081-receiving-payments-from-disqus'
  35021.       }, 'Learn more'), '.') : e.total < 100 ? a = C.a.createElement('p', {
  35022.         className: 'text-error spacing-narrow'
  35023.       }, 'Payment minimum not met. Payment will be scheduled when the balance reaches $100.') : 100 <= e.total && (n = e.rows[0], t = ct() (n.payDateStart).format('MMMM DD, YYYY'), n = ct() (n.payDateEnd).format('MMMM DD, YYYY'), a = C.a.createElement('p', {
  35024.         className: 'spacing-bottom'
  35025.       }, 'Estimated delivery ', t, ' - ', n)),
  35026.       C.a.createElement('div', null, C.a.createElement('div', {
  35027.         className: r
  35028.       }, C.a.createElement('div', {
  35029.         className: 'earnings-timeline__indicator pull-left'
  35030.       }, C.a.createElement('span', {
  35031.         className: 'earnings-timeline__date'
  35032.       }), C.a.createElement('img', {
  35033.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/icon-analytics-mail.png'
  35034.       })), C.a.createElement('div', {
  35035.         className: 'earnings-timeline__header'
  35036.       }, C.a.createElement('h3', {
  35037.         className: 'spacing-bottom-narrow'
  35038.       }, C.a.createElement('strong', null, 'Upcoming Payment: '), C.a.createElement('span', {
  35039.         className: 'text-success'
  35040.       }, '$', Dp.addThousandsSeparator(e.total.toFixed(2)))), a), e.rows && 0 < e.rows.length ? C.a.createElement(Aw, {
  35041.         rows: e.rows,
  35042.         icon: '/img/icons/icon-analytics-check.png'
  35043.       }) : null))
  35044.     };
  35045.     Mo.displayName = 'UpcomingPayments',
  35046.     Mo.propTypes = {
  35047.       total: b.a.number.isRequired,
  35048.       rows: b.a.arrayOf(Aw.ROW_SHAPE).isRequired
  35049.     };
  35050.     var Dw = Mo,
  35051.     go = function (e) {
  35052.       var t = 'earnings-timeline earnings-timeline--last';
  35053.       return 0 === e.rows.length && (t += ' earnings-timeline--empty'),
  35054.       C.a.createElement('div', null, C.a.createElement('div', {
  35055.         className: t
  35056.       }, C.a.createElement('div', {
  35057.         className: 'earnings-timeline__indicator pull-left'
  35058.       }), C.a.createElement('div', {
  35059.         className: 'earnings-timeline__header'
  35060.       }, C.a.createElement('h3', {
  35061.         className: 'spacing-bottom-narrow'
  35062.       }, C.a.createElement('strong', null, 'Unpaid Earnings: '), C.a.createElement('span', {
  35063.         className: 'text-warning'
  35064.       }, '$', Dp.addThousandsSeparator(e.total.toFixed(2)))), 0 < e.total ? null : C.a.createElement('p', null, 'You don\'t have any unpaid earnings. ', C.a.createElement('a', {
  35065.         href: 'https://help.disqus.com/customer/portal/articles/1208081-receiving-payments-from-disqus'
  35066.       }, 'Learn more'), '.')), e.rows && 0 < e.rows.length ? C.a.createElement(Aw, {
  35067.         rows: e.rows,
  35068.         total: e.total,
  35069.         icon: '/img/icons/icon-analytics-clock.png'
  35070.       }) : null))
  35071.     };
  35072.     go.displayName = 'UnpaidEarnings',
  35073.     go.propTypes = {
  35074.       total: b.a.number.isRequired,
  35075.       rows: b.a.arrayOf(Aw.ROW_SHAPE).isRequired
  35076.     };
  35077.     var jw = go;
  35078.     function Tw(e) {
  35079.       return (Tw = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  35080.         return typeof e
  35081.       }
  35082.        : function (e) {
  35083.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  35084.       }) (e)
  35085.     }
  35086.     function Iw(e, t) {
  35087.       for (var n = 0; n < t.length; n++) {
  35088.         var a = t[n];
  35089.         a.enumerable = a.enumerable || !1,
  35090.         a.configurable = !0,
  35091.         'value' in a && (a.writable = !0),
  35092.         Object.defineProperty(e, a.key, a)
  35093.       }
  35094.     }
  35095.     function qw(e, t) {
  35096.       return (qw = Object.setPrototypeOf || function (e, t) {
  35097.         return e.__proto__ = t,
  35098.         e
  35099.       }) (e, t)
  35100.     }
  35101.     function Fw(n) {
  35102.       var a = function () {
  35103.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  35104.         if (Reflect.construct.sham) return !1;
  35105.         if ('function' == typeof Proxy) return !0;
  35106.         try {
  35107.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  35108.           ], function () {
  35109.           })),
  35110.           !0
  35111.         } catch (e) {
  35112.           return !1
  35113.         }
  35114.       }();
  35115.       return function () {
  35116.         var e,
  35117.         t = Uw(n);
  35118.         return e = a ? (e = Uw(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  35119.         t = this,
  35120.         !(e = e) || 'object' !== Tw(e) && 'function' != typeof e ? Lw(t) : e
  35121.       }
  35122.     }
  35123.     function Lw(e) {
  35124.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  35125.       return e
  35126.     }
  35127.     function Uw(e) {
  35128.       return (Uw = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  35129.         return e.__proto__ || Object.getPrototypeOf(e)
  35130.       }) (e)
  35131.     }
  35132.     function Mw(e, t, n) {
  35133.       return t in e ? Object.defineProperty(e, t, {
  35134.         value: n,
  35135.         enumerable: !0,
  35136.         configurable: !0,
  35137.         writable: !0
  35138.       }) : e[t] = n,
  35139.       e
  35140.     }
  35141.     yl = function () {
  35142.       !function (e, t) {
  35143.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  35144.         e.prototype = Object.create(t && t.prototype, {
  35145.           constructor: {
  35146.             value: e,
  35147.             writable: !0,
  35148.             configurable: !0
  35149.           }
  35150.         }),
  35151.         t && qw(e, t)
  35152.       }(o, A);
  35153.       var e,
  35154.       t,
  35155.       n,
  35156.       r = Fw(o);
  35157.       function o() {
  35158.         var t;
  35159.         !function (e, t) {
  35160.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  35161.         }(this, o);
  35162.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  35163.         return Mw(Lw(t = r.call.apply(r, [
  35164.           this
  35165.         ].concat(n))), 'state', {
  35166.           showHistory: !1
  35167.         }),
  35168.         Mw(Lw(t), 'onShowHistory', function (e) {
  35169.           e.preventDefault(),
  35170.           t.setState({
  35171.             showHistory: !0
  35172.           })
  35173.         }),
  35174.         t
  35175.       }
  35176.       return e = o,
  35177.       (t = [
  35178.         {
  35179.           key: 'render',
  35180.           value: function () {
  35181.             if (null === this.props.forumFlagHasPaymentInfo || null === this.props.forumFlagHasCustomTerms) return C.a.createElement('div', {
  35182.               className: 'admin_content'
  35183.             }, C.a.createElement(o.Header, {
  35184.               selection: this.props.selection
  35185.             }), C.a.createElement(Ji, null));
  35186.             if (this.props.forumFlagHasCustomTerms) return C.a.createElement('div', {
  35187.               className: 'admin_content'
  35188.             }, C.a.createElement(o.Header, {
  35189.               selection: this.props.selection
  35190.             }), C.a.createElement(o.SpecialTermsAlert, null));
  35191.             var e = je.a.where(this.props.revenue, {
  35192.               status: 'upcoming'
  35193.             }),
  35194.             t = e.reduce(function (e, t) {
  35195.               return e + t.amount
  35196.             }, 0),
  35197.             n = je.a.where(this.props.revenue, {
  35198.               status: 'unpaid'
  35199.             }),
  35200.             a = n.reduce(function (e, t) {
  35201.               return e + t.amount
  35202.             }, 0),
  35203.             r = this.props.selection.organization && this.props.selection.organization.activeGuarantee;
  35204.             return C.a.createElement('div', {
  35205.               className: 'admin_content'
  35206.             }, C.a.createElement(o.Header, {
  35207.               selection: this.props.selection
  35208.             }), !this.props.forumFlagHasPaymentInfo && 75 <= t ? C.a.createElement(Sw, null) : null, this.props.revenueErrorCode ? C.a.createElement(dd, {
  35209.               isPermissionError: 22 === this.props.revenueErrorCode
  35210.             }) : null, r ? C.a.createElement(pd, {
  35211.               secondaryMessageType: 'payments',
  35212.               startDate: ct() (r.start),
  35213.               endDate: ct() (r.end),
  35214.               amount: r.amount
  35215.             }) : null, this.props.revenueLoading ? C.a.createElement(Ji, null) : null, this.props.revenueErrorCode || this.props.revenueLoading || r ? null : C.a.createElement('div', null, C.a.createElement(Dw, {
  35216.               rows: e,
  35217.               total: t
  35218.             }), C.a.createElement(jw, {
  35219.               rows: n,
  35220.               total: a
  35221.             })))
  35222.           }
  35223.         }
  35224.       ]) && Iw(e.prototype, t),
  35225.       n && Iw(e, n),
  35226.       o
  35227.     }();
  35228.     Mw(yl, 'propTypes', {
  35229.       forumFlagHasCustomTerms: b.a.bool,
  35230.       forumFlagHasPaymentInfo: b.a.bool,
  35231.       revenue: b.a.array,
  35232.       revenueErrorCode: b.a.number,
  35233.       revenueLoading: b.a.bool,
  35234.       selection: ht.isRequired
  35235.     }),
  35236.     yl.Header = function (e) {
  35237.       return C.a.createElement('div', {
  35238.         className: 'spacing-bottom'
  35239.       }, C.a.createElement('h2', {
  35240.         className: 'text-larger text-gray-darker'
  35241.       }, 'Your Site\'s Payment Schedule', C.a.createElement('div', {
  35242.         className: 'tooltip-ct label--gray label--payments-tooltip'
  35243.       }, 'What\'s This?', C.a.createElement('span', {
  35244.         className: 'tooltip'
  35245.       }, 'Disqus pays out monthly on a 90-day trailing basis and with a $100 minimum. Be sure to fill out your ', C.a.createElement('a', {
  35246.         href: e.selection.forum.tipaltiUrl,
  35247.         target: '_blank'
  35248.       }, 'payment method and other information'), ' needed for your payment to reach you.'))))
  35249.     },
  35250.     yl.Header.displayName = 'PaymentsHeader',
  35251.     yl.Header.propTypes = {
  35252.       selection: ht.isRequired
  35253.     },
  35254.     yl.SpecialTermsAlert = function () {
  35255.       return C.a.createElement('div', {
  35256.         className: 'alert alert--warning-light spacing-bottom'
  35257.       }, C.a.createElement('div', {
  35258.         className: 'spacing-narrow'
  35259.       }, C.a.createElement('h2', {
  35260.         className: 'spacing-bottom-narrow'
  35261.       }, C.a.createElement('span', {
  35262.         className: 'icon__position spacing-right-small'
  35263.       }, C.a.createElement('img', {
  35264.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/icons/credentials.png',
  35265.         width: '20'
  35266.       })), 'You have special payment terms!'), C.a.createElement('p', {
  35267.         className: 'text-medium'
  35268.       }, 'You can download your Earnings and Payments. Please ', C.a.createElement('strong', null, C.a.createElement('a', {
  35269.         href: Pn.revealContact
  35270.       }, 'contact our Publisher Support Team')), ' for further assistance.')))
  35271.     },
  35272.     yl.SpecialTermsAlert.displayName = 'PaymentsSpecialTermsAlert';
  35273.     var Bw = Ni.a.attachDrivers(yl, [
  35274.       h,
  35275.       Yc('hasPaymentInfo'),
  35276.       Yc('hasCustomTerms')
  35277.     ]),
  35278.     Pc = n(493),
  35279.     zw = n.n(Pc);
  35280.     function Hw(e) {
  35281.       return (Hw = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  35282.         return typeof e
  35283.       }
  35284.        : function (e) {
  35285.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  35286.       }) (e)
  35287.     }
  35288.     function Gw(e, t) {
  35289.       for (var n = 0; n < t.length; n++) {
  35290.         var a = t[n];
  35291.         a.enumerable = a.enumerable || !1,
  35292.         a.configurable = !0,
  35293.         'value' in a && (a.writable = !0),
  35294.         Object.defineProperty(e, a.key, a)
  35295.       }
  35296.     }
  35297.     function Vw(e, t) {
  35298.       return (Vw = Object.setPrototypeOf || function (e, t) {
  35299.         return e.__proto__ = t,
  35300.         e
  35301.       }) (e, t)
  35302.     }
  35303.     function Ww(n) {
  35304.       var a = function () {
  35305.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  35306.         if (Reflect.construct.sham) return !1;
  35307.         if ('function' == typeof Proxy) return !0;
  35308.         try {
  35309.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  35310.           ], function () {
  35311.           })),
  35312.           !0
  35313.         } catch (e) {
  35314.           return !1
  35315.         }
  35316.       }();
  35317.       return function () {
  35318.         var e,
  35319.         t = Qw(n);
  35320.         return e = a ? (e = Qw(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  35321.         t = this,
  35322.         !(e = e) || 'object' !== Hw(e) && 'function' != typeof e ? Yw(t) : e
  35323.       }
  35324.     }
  35325.     function Yw(e) {
  35326.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  35327.       return e
  35328.     }
  35329.     function Qw(e) {
  35330.       return (Qw = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  35331.         return e.__proto__ || Object.getPrototypeOf(e)
  35332.       }) (e)
  35333.     }
  35334.     function Kw(e, t, n) {
  35335.       return t in e ? Object.defineProperty(e, t, {
  35336.         value: n,
  35337.         enumerable: !0,
  35338.         configurable: !0,
  35339.         writable: !0
  35340.       }) : e[t] = n,
  35341.       e
  35342.     }
  35343.     Ls = function () {
  35344.       !function (e, t) {
  35345.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  35346.         e.prototype = Object.create(t && t.prototype, {
  35347.           constructor: {
  35348.             value: e,
  35349.             writable: !0,
  35350.             configurable: !0
  35351.           }
  35352.         }),
  35353.         t && Vw(e, t)
  35354.       }(o, A);
  35355.       var e,
  35356.       t,
  35357.       n,
  35358.       r = Ww(o);
  35359.       function o() {
  35360.         var e;
  35361.         !function (e, t) {
  35362.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  35363.         }(this, o);
  35364.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  35365.         return Kw(Yw(e = r.call.apply(r, [
  35366.           this
  35367.         ].concat(n))), 'state', {
  35368.           isOpen: !1
  35369.         }),
  35370.         Kw(Yw(e), 'handleClick', function () {
  35371.           e.setState({
  35372.             isOpen: !e.state.isOpen
  35373.           })
  35374.         }),
  35375.         e
  35376.       }
  35377.       return e = o,
  35378.       (t = [
  35379.         {
  35380.           key: 'render',
  35381.           value: function () {
  35382.             var e = this.state.isOpen ? 'nav__item dropdown-open' : 'nav__item';
  35383.             return C.a.createElement('nav', {
  35384.               className: 'layout__nav'
  35385.             }, C.a.createElement('div', {
  35386.               onClick: this.handleClick,
  35387.               className: 'nav--mobile-dropdown'
  35388.             }, C.a.createElement(ri, {
  35389.               linkClassName: e,
  35390.               linkActiveClassName: 'active',
  35391.               path: '/analytics/revenue/',
  35392.               selection: this.props.selection
  35393.             }, C.a.createElement('div', {
  35394.               className: 'nav-lnk -color-muted'
  35395.             }, C.a.createElement('div', {
  35396.               className: 'nav-lnk__blk'
  35397.             }, C.a.createElement('span', {
  35398.               className: 'button__text'
  35399.             }, 'Analyze revenue')), C.a.createElement('div', {
  35400.               className: 'nav-lnk__pointer'
  35401.             }, C.a.createElement('span', {
  35402.               className: 'icon icon-right-bracket'
  35403.             })))), C.a.createElement(Uo, {
  35404.               linkClassName: e,
  35405.               linkActiveClassName: 'active',
  35406.               path: '/analytics/payments/',
  35407.               selection: this.props.selection
  35408.             }, C.a.createElement('div', {
  35409.               className: 'nav-lnk -color-muted'
  35410.             }, C.a.createElement('div', {
  35411.               className: 'nav-lnk__blk'
  35412.             }, C.a.createElement('span', {
  35413.               className: 'button__text'
  35414.             }, 'Payments')), C.a.createElement('div', {
  35415.               className: 'nav-lnk__pointer'
  35416.             }, C.a.createElement('span', {
  35417.               className: 'icon icon-right-bracket'
  35418.             }))))), C.a.createElement(Uo, {
  35419.               linkClassName: 'button button-fill--brand text-medium button-wide hidden-md',
  35420.               linkActiveClassName: 'active',
  35421.               path: '/settings/ads/',
  35422.               selection: this.props.selection
  35423.             }, C.a.createElement('span', {
  35424.               className: 'icon-cog icon__position text-smaller spacing-right-small'
  35425.             }), 'Ad Settings'))
  35426.           }
  35427.         }
  35428.       ]) && Gw(e.prototype, t),
  35429.       n && Gw(e, n),
  35430.       o
  35431.     }();
  35432.     Kw(Ls, 'propTypes', {
  35433.       selection: ht.isRequired
  35434.     });
  35435.     var Jw = Ls,
  35436.     i = function (e) {
  35437.       var t = {
  35438.         selection: e.selection,
  35439.         initialQuestionGroup: CO.deactivationHubOrg
  35440.       };
  35441.       return C.a.createElement('div', {
  35442.         className: 'section-contained'
  35443.       }, C.a.createElement('div', {
  35444.         className: 'layout layout--publishers'
  35445.       }, C.a.createElement('div', {
  35446.         className: 'layout__main'
  35447.       }, C.a.createElement(Jw, {
  35448.         selection: e.selection
  35449.       }), C.a.createElement('div', {
  35450.         className: 'layout__content'
  35451.       }, C.a.cloneElement(e.children, t)))))
  35452.     };
  35453.     i.displayName = 'Reveal',
  35454.     i.propTypes = {
  35455.       children: b.a.node.isRequired,
  35456.       selection: ht.isRequired
  35457.     };
  35458.     var $w = Object(u.connect) (function (e) {
  35459.       return {
  35460.         selection: e.selection
  35461.       }
  35462.     }) (i),
  35463.     Qs = function (e) {
  35464.       return C.a.createElement('div', {
  35465.         className: 'content__wrap spacing-bottom-double'
  35466.       }, e.header ? C.a.createElement('header', {
  35467.         className: 'settings__header'
  35468.       }, e.header) : null, C.a.createElement('section', {
  35469.         className: 'settings__content'
  35470.       }, e.children), e.footer ? C.a.createElement('footer', {
  35471.         className: 'settings__footer'
  35472.       }, C.a.createElement('div', {
  35473.         className: 'fieldset__block'
  35474.       }, e.footer)) : null)
  35475.     };
  35476.     Qs.displayName = 'DeactivationBasePanel',
  35477.     Qs.propTypes = {
  35478.       header: b.a.node,
  35479.       footer: b.a.node,
  35480.       children: b.a.node.isRequired
  35481.     };
  35482.     var Zw = Qs,
  35483.     Mo = function (t) {
  35484.       return C.a.createElement(Zw, {
  35485.         header: [
  35486.           C.a.createElement('h1', {
  35487.             key: 'header',
  35488.             className: 'text-semibold text-larger text-gray-darker spacing-bottom-small'
  35489.           }, t.header),
  35490.           C.a.createElement('div', {
  35491.             key: 'description',
  35492.             className: 'text-gray'
  35493.           }, t.description)
  35494.         ],
  35495.         footer: [
  35496.           t.goBackButton,
  35497.           C.a.createElement('button', {
  35498.             key: 'submitButton',
  35499.             onClick: t.onAnswerSubmit,
  35500.             className: 'button button-fill--brand button-medium button-padding-taller pull-right',
  35501.             disabled: t.submitDisabled
  35502.           }, C.a.createElement('span', {
  35503.             className: 'spacing-left-small'
  35504.           }, t.submitContent), C.a.createElement('span', {
  35505.             className: 'icon-right-bracket icon__position -md spacing-left-small'
  35506.           }))
  35507.         ]
  35508.       }, C.a.createElement('div', {
  35509.         className: 'spacing-top-narrow'
  35510.       }, t.formHeader ? C.a.createElement('div', {
  35511.         className: 'border-bottom spacing-bottom padding-bottom'
  35512.       }, C.a.createElement('strong', null, t.formHeader)) : null, t.choices.map(function (e) {
  35513.         return C.a.createElement('label', {
  35514.           key: e.choice,
  35515.           className: 'align spacing-bottom-narrow text-medium'
  35516.         }, C.a.createElement('input', {
  35517.           type: 'radio',
  35518.           name: t.name,
  35519.           className: 'spacing-right',
  35520.           value: e.choice,
  35521.           onChange: t.onAnswerSelected,
  35522.           checked: e.choice === t.selectedAnswer
  35523.         }), e.choice, e.has_arbitrary_text ? C.a.createElement('input', {
  35524.           type: 'text',
  35525.           className: 'input--textbox -text-small spacing-left deactivation-input--other',
  35526.           value: t.selectedAnswerArbitraryText,
  35527.           onChange: t.onAnswerArbitraryTextChange,
  35528.           disabled: e.choice !== t.selectedAnswer
  35529.         }) : null)
  35530.       })))
  35531.     };
  35532.     Mo.displayName = 'DeactivationAnswerForm',
  35533.     Mo.propTypes = {
  35534.       onAnswerSelected: b.a.func.isRequired,
  35535.       onAnswerArbitraryTextChange: b.a.func.isRequired,
  35536.       onAnswerSubmit: b.a.func.isRequired,
  35537.       header: b.a.string.isRequired,
  35538.       name: b.a.string.isRequired,
  35539.       goBackButton: b.a.element.isRequired,
  35540.       submitContent: b.a.string.isRequired,
  35541.       submitDisabled: b.a.bool,
  35542.       description: b.a.oneOfType([b.a.string,
  35543.       b.a.element]).isRequired,
  35544.       formHeader: b.a.string.isRequired,
  35545.       choices: b.a.arrayOf(b.a.shape({
  35546.         choice: b.a.string.isRequired,
  35547.         has_arbitrary_text: b.a.bool.isRequired
  35548.       })).isRequired,
  35549.       selectedAnswer: b.a.string,
  35550.       selectedAnswerArbitraryText: b.a.string
  35551.     };
  35552.     var Xw = Mo,
  35553.     go = function (e) {
  35554.       return C.a.createElement(Zw, {
  35555.         header: [
  35556.           C.a.createElement('span', {
  35557.             key: 'icon',
  35558.             className: 'text-green icon-checkmark text-large icon__position -md spacing-right'
  35559.           }),
  35560.           C.a.createElement('span', {
  35561.             key: 'answer',
  35562.             className: 'text-gray'
  35563.           }, e.answer)
  35564.         ],
  35565.         footer: [
  35566.           C.a.createElement('button', {
  35567.             key: 'back',
  35568.             onClick: e.onGoBack,
  35569.             className: 'button button-outline text-medium button-padding-taller'
  35570.           }, C.a.createElement('span', {
  35571.             className: 'icon-right-bracket icon-flipped spacing-right-small'
  35572.           }), C.a.createElement('span', {
  35573.             className: 'spacing-right'
  35574.           }, 'Go back')),
  35575.           C.a.createElement('button', {
  35576.             key: 'continue',
  35577.             onClick: e.onContinue,
  35578.             className: 'button button-fill--brand button-medium button-padding-taller pull-right'
  35579.           }, C.a.createElement('span', {
  35580.             className: 'spacing-left-small'
  35581.           }, 'Continue Deactivating Ads'), C.a.createElement('span', {
  35582.             className: 'icon-right-bracket icon__position -md spacing-left-small'
  35583.           }))
  35584.         ]
  35585.       }, C.a.createElement('div', {
  35586.         className: 'spacing-top'
  35587.       }, C.a.createElement('p', null, C.a.createElement('strong', null, e.followUpText)), e.followUpButton))
  35588.     };
  35589.     go.displayName = 'DeactivationFollowup',
  35590.     go.propTypes = {
  35591.       onGoBack: b.a.func.isRequired,
  35592.       onContinue: b.a.func.isRequired,
  35593.       answer: b.a.string.isRequired,
  35594.       followUpText: b.a.string.isRequired,
  35595.       followUpButton: b.a.element.isRequired
  35596.     };
  35597.     var eP = go,
  35598.     yl = function (e) {
  35599.       return C.a.createElement(Zw, {
  35600.         header: [
  35601.           C.a.createElement('h1', {
  35602.             key: 'header',
  35603.             className: 'text-semibold text-larger text-gray-darker spacing-bottom-small'
  35604.           }, 'Please confirm that you’d like to deactivate Reveal'),
  35605.           C.a.createElement('div', {
  35606.             key: 'description',
  35607.             className: 'text-gray'
  35608.           }, 'Thanks again for your input! Please confirm that you’d like to deactivate Reveal on the following:')
  35609.         ],
  35610.         footer: [
  35611.           C.a.createElement('button', {
  35612.             key: 'back',
  35613.             onClick: e.onGoBack,
  35614.             className: 'button button-outline text-medium button-padding-taller'
  35615.           }, C.a.createElement('span', {
  35616.             className: 'icon-right-bracket icon-flipped spacing-right-small'
  35617.           }), C.a.createElement('span', {
  35618.             className: 'spacing-right'
  35619.           }, 'Go back')),
  35620.           C.a.createElement('button', {
  35621.             key: 'continue',
  35622.             onClick: e.onConfirm,
  35623.             className: 'button button-fill--brand button-medium button-padding-taller spacing-right pull-right'
  35624.           }, 'Deactivate Ads Now')
  35625.         ]
  35626.       }, C.a.createElement('div', {
  35627.         className: 'spacing-top'
  35628.       }, 'organization' === e.selection.type ? C.a.createElement('div', {
  35629.         className: 'media spacing-top'
  35630.       }, C.a.createElement('div', {
  35631.         className: 'media-left'
  35632.       }, C.a.createElement('span', {
  35633.         className: 'icon-organization text-gray text-larger'
  35634.       })), C.a.createElement('div', {
  35635.         className: 'media-body'
  35636.       }, C.a.createElement('p', {
  35637.         className: 'text-large spacing-bottom'
  35638.       }, C.a.createElement('strong', {
  35639.         className: 'spacing-right-small'
  35640.       }, e.selection.organization.name || 'Your Organization'), '(', function (e) {
  35641.         e = e.length;
  35642.         return 1 === e ? '1 site' : ''.concat(e, ' sites')
  35643.       }(e.hubQualifiedForums), ')'), C.a.createElement('ul', {
  35644.         className: 'list-bullet'
  35645.       }, e.hubQualifiedForums.map(function (e) {
  35646.         return C.a.createElement('li', {
  35647.           key: e.id
  35648.         }, e.name)
  35649.       })))) : C.a.createElement('div', {
  35650.         className: 'media spacing-top'
  35651.       }, C.a.createElement('div', {
  35652.         className: 'media-body'
  35653.       }, C.a.createElement('p', {
  35654.         className: 'text-large spacing-bottom'
  35655.       }, C.a.createElement('strong', null, e.selection.forum.name))))))
  35656.     };
  35657.     yl.propTypes = {
  35658.       selection: ht.isRequired,
  35659.       onConfirm: b.a.func.isRequired,
  35660.       onGoBack: b.a.func.isRequired,
  35661.       hubQualifiedForums: b.a.array
  35662.     },
  35663.     yl.displayName = 'DeactivationConfirmation';
  35664.     var tP = yl,
  35665.     h = function (e) {
  35666.       return C.a.createElement(Zw, {
  35667.         footer: [
  35668.           C.a.createElement(Uo, {
  35669.             key: 'back',
  35670.             path: '/settings/ads/',
  35671.             linkClassName: 'button button-fill--brand button-medium button-padding-taller',
  35672.             selection: e.selection
  35673.           }, 'Ad Settings'),
  35674.           C.a.createElement('a', {
  35675.             key: 'contact',
  35676.             href: e.contactUrl,
  35677.             target: '_blank',
  35678.             className: 'button button-outline button-medium spacing-left button-padding-taller'
  35679.           }, 'Contact Support')
  35680.         ]
  35681.       }, C.a.createElement('h1', {
  35682.         className: 'text-semibold text-larger text-gray-darker spacing-top spacing-bottom'
  35683.       }, 'You’ve successfully deactivated Reveal'), C.a.createElement('p', {
  35684.         className: 'text-gray'
  35685.       }, 'Thanks again for your responses. If you had Reveal ads running, please allow some time for your sites to update, as the system may take several minutes to remove your ads. Our publisher success team may follow up with you soon. In the meantime, if you have any questions about Reveal, please get in touch with us. Thanks again for using Disqus!'))
  35686.     };
  35687.     h.propTypes = {
  35688.       selection: ht.isRequired,
  35689.       contactUrl: b.a.string.isRequired
  35690.     },
  35691.     h.displayName = 'DeactivationComplete';
  35692.     var nP = h;
  35693.     function aP(e) {
  35694.       return (aP = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  35695.         return typeof e
  35696.       }
  35697.        : function (e) {
  35698.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  35699.       }) (e)
  35700.     }
  35701.     function rP() {
  35702.       return (rP = Object.assign || function (e) {
  35703.         for (var t = 1; t < arguments.length; t++) {
  35704.           var n,
  35705.           a = arguments[t];
  35706.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  35707.         }
  35708.         return e
  35709.       }).apply(this, arguments)
  35710.     }
  35711.     function oP(t, e) {
  35712.       var n,
  35713.       a = Object.keys(t);
  35714.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  35715.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  35716.       })), a.push.apply(a, n)),
  35717.       a
  35718.     }
  35719.     function iP(t) {
  35720.       for (var e = 1; e < arguments.length; e++) {
  35721.         var n = null != arguments[e] ? arguments[e] : {
  35722.         };
  35723.         e % 2 ? oP(Object(n), !0).forEach(function (e) {
  35724.           fP(t, e, n[e])
  35725.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : oP(Object(n)).forEach(function (e) {
  35726.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  35727.         })
  35728.       }
  35729.       return t
  35730.     }
  35731.     function sP(e) {
  35732.       return function (e) {
  35733.         if (Array.isArray(e)) return lP(e)
  35734.       }(e) || function (e) {
  35735.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  35736.       }(e) || function (e, t) {
  35737.         if (e) {
  35738.           if ('string' == typeof e) return lP(e, t);
  35739.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  35740.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? lP(e, t) : void 0
  35741.         }
  35742.       }(e) || function () {
  35743.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  35744.       }()
  35745.     }
  35746.     function lP(e, t) {
  35747.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  35748.       return a
  35749.     }
  35750.     function cP(e, t) {
  35751.       for (var n = 0; n < t.length; n++) {
  35752.         var a = t[n];
  35753.         a.enumerable = a.enumerable || !1,
  35754.         a.configurable = !0,
  35755.         'value' in a && (a.writable = !0),
  35756.         Object.defineProperty(e, a.key, a)
  35757.       }
  35758.     }
  35759.     function uP(e, t) {
  35760.       return (uP = Object.setPrototypeOf || function (e, t) {
  35761.         return e.__proto__ = t,
  35762.         e
  35763.       }) (e, t)
  35764.     }
  35765.     function pP(n) {
  35766.       var a = function () {
  35767.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  35768.         if (Reflect.construct.sham) return !1;
  35769.         if ('function' == typeof Proxy) return !0;
  35770.         try {
  35771.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  35772.           ], function () {
  35773.           })),
  35774.           !0
  35775.         } catch (e) {
  35776.           return !1
  35777.         }
  35778.       }();
  35779.       return function () {
  35780.         var e,
  35781.         t = mP(n);
  35782.         return e = a ? (e = mP(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  35783.         t = this,
  35784.         !(e = e) || 'object' !== aP(e) && 'function' != typeof e ? dP(t) : e
  35785.       }
  35786.     }
  35787.     function dP(e) {
  35788.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  35789.       return e
  35790.     }
  35791.     function mP(e) {
  35792.       return (mP = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  35793.         return e.__proto__ || Object.getPrototypeOf(e)
  35794.       }) (e)
  35795.     }
  35796.     function fP(e, t, n) {
  35797.       return t in e ? Object.defineProperty(e, t, {
  35798.         value: n,
  35799.         enumerable: !0,
  35800.         configurable: !0,
  35801.         writable: !0
  35802.       }) : e[t] = n,
  35803.       e
  35804.     }
  35805.     Yc = function () {
  35806.       !function (e, t) {
  35807.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  35808.         e.prototype = Object.create(t && t.prototype, {
  35809.           constructor: {
  35810.             value: e,
  35811.             writable: !0,
  35812.             configurable: !0
  35813.           }
  35814.         }),
  35815.         t && uP(e, t)
  35816.       }(o, A);
  35817.       var e,
  35818.       t,
  35819.       n,
  35820.       a = pP(o);
  35821.       function o() {
  35822.         var r;
  35823.         !function (e, t) {
  35824.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  35825.         }(this, o);
  35826.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  35827.         return fP(dP(r = a.call.apply(a, [
  35828.           this
  35829.         ].concat(t))), 'state', {
  35830.           currentQuestion: null,
  35831.           currentAnswer: null,
  35832.           currentAnswerArbitraryText: null,
  35833.           previousAnswers: [
  35834.           ],
  35835.           previousQuestions: [
  35836.           ],
  35837.           followup: null,
  35838.           hasCompletedFirstQuestion: !1,
  35839.           hasDismissedFollowup: !1,
  35840.           hasCompletedDeactivation: !1
  35841.         }),
  35842.         fP(dP(r), 'handleGoBack', function () {
  35843.           var e,
  35844.           t = sP(r.state.previousQuestions),
  35845.           n = r.state.previousAnswers.slice(0, - 1),
  35846.           a = t.pop().id;
  35847.           a === r.props.questions[0].question.id ? r.setInitialQuestion(r.props.questions) : (e = {
  35848.           }, e = r.state.hasDismissedFollowup ? {
  35849.             hasDismissedFollowup: !1
  35850.           }
  35851.            : {
  35852.             followup: null,
  35853.             previousQuestions: t,
  35854.             previousAnswers: n
  35855.           }, r.setState(iP(iP({
  35856.           }, r.parseQuestionId(a)), e)))
  35857.         }),
  35858.         fP(dP(r), 'setInitialQuestion', function (e) {
  35859.           var t = e[0],
  35860.           e = r.parseAnswer(t.answer);
  35861.           r.setState({
  35862.             currentQuestion: t.question,
  35863.             currentAnswer: e.choice,
  35864.             currentAnswerArbitraryText: e.text
  35865.           })
  35866.         }),
  35867.         fP(dP(r), 'handleConfirmDeactivate', function () {
  35868.           var e = r.props.params;
  35869.           r.props.deactivateOnPerformAction(e.campaign, 'user-opt-out', e.hubspotCompanyId, r.jesterEmit),
  35870.           r.setState({
  35871.             hasCompletedDeactivation: !0
  35872.           })
  35873.         }),
  35874.         fP(dP(r), 'jesterEmit', function (e) {
  35875.           var t,
  35876.           n,
  35877.           a;
  35878.           r.props.selection.type === ft.forum && (t = r.props.forumDetails.settings, n = e.response.settings, a = Jo.ADS_KEYS),
  35879.           Jo.trackSettingsChanges({
  35880.             selection: r.props.selection,
  35881.             jesterData: {
  35882.               verb: 'update',
  35883.               zone: 'settings',
  35884.               section: 'deactivation_hub'
  35885.             },
  35886.             oldState: Jo.ensureBooleans(t),
  35887.             newState: Jo.ensureBooleans(n),
  35888.             keys: a
  35889.           })
  35890.         }),
  35891.         fP(dP(r), 'getFollowupButton', function (e) {
  35892.           e = e.extra_data;
  35893.           if (e.link_text) {
  35894.             if (e.forum_admin_link_path) return C.a.createElement(Uo, {
  35895.               path: e.forum_admin_link_path,
  35896.               selection: r.props.selection,
  35897.               linkClassName: 'button button-fill--brand button-medium button-padding-taller spacing-top'
  35898.             }, e.link_text);
  35899.             if (e.button_link) return C.a.createElement('a', {
  35900.               className: 'button button-fill--brand button-medium button-padding-taller spacing-top',
  35901.               href: e.button_link,
  35902.               target: '_blank',
  35903.               rel: 'noopener noreferrer'
  35904.             }, e.link_text)
  35905.           }
  35906.           return C.a.createElement('a', {
  35907.             href: ho.getRoot(),
  35908.             className: 'button button-outline button-medium'
  35909.           }, 'Back to Disqus')
  35910.         }),
  35911.         fP(dP(r), 'handleAnswerSelected', function (e) {
  35912.           r.setState({
  35913.             currentAnswer: e.target.value
  35914.           })
  35915.         }),
  35916.         fP(dP(r), 'handleAnswerArbitraryTextChange', function (e) {
  35917.           r.setState({
  35918.             currentAnswerArbitraryText: e.target.value
  35919.           })
  35920.         }),
  35921.         fP(dP(r), 'handleSaveAnswer', function () {
  35922.           var e = r.findOptionForAnswer(r.state.currentQuestion, r.state.currentAnswer),
  35923.           t = JSON.stringify({
  35924.             choice: r.state.currentAnswer,
  35925.             text: e.has_arbitrary_text ? r.state.currentAnswerArbitraryText : ''
  35926.           });
  35927.           r.props.updateAnswer(r.state.currentQuestion.id, t);
  35928.           t = {
  35929.             previousAnswers: [
  35930.             ].concat(sP(r.state.previousAnswers), [
  35931.               r.state.currentAnswer
  35932.             ]),
  35933.             previousQuestions: [
  35934.             ].concat(sP(r.state.previousQuestions), [
  35935.               r.state.currentQuestion
  35936.             ])
  35937.           };
  35938.           r.state.currentQuestion.id === r.props.questions[0].question.id && (t.hasCompletedFirstQuestion = !0),
  35939.           e.extra_data.follow_up_text && (t.followup = {
  35940.             text: e.extra_data.follow_up_text,
  35941.             button: r.getFollowupButton(e)
  35942.           }),
  35943.           e.extra_data.next_question_id ? rP(t, r.parseQuestionId(e.extra_data.next_question_id)) : (t.currentQuestion = null, t.currentAnswer = null, t.currentAnswerArbitraryText = null),
  35944.           r.setState(t)
  35945.         }),
  35946.         fP(dP(r), 'findOptionForAnswer', function (e, t) {
  35947.           return t ? je.a.findWhere(e.typeContext, {
  35948.             choice: t
  35949.           }) : null
  35950.         }),
  35951.         fP(dP(r), 'parseAnswer', function (e) {
  35952.           if (~(e = e || '').indexOf(': ')) {
  35953.             var t = e.split(':');
  35954.             return {
  35955.               choice: t[0],
  35956.               text: t[1].trim()
  35957.             }
  35958.           }
  35959.           return {
  35960.             choice: e,
  35961.             text: ''
  35962.           }
  35963.         }),
  35964.         fP(dP(r), 'parseQuestionId', function (t) {
  35965.           var e = je.a.find(r.props.questions, function (e) {
  35966.             return e.question.id === t
  35967.           }),
  35968.           n = r.parseAnswer(e.answer);
  35969.           return {
  35970.             currentQuestion: e.question,
  35971.             currentAnswer: n.choice,
  35972.             currentAnswerArbitraryText: n.text
  35973.           }
  35974.         }),
  35975.         fP(dP(r), 'dismissFollowup', function () {
  35976.           r.setState({
  35977.             hasDismissedFollowup: !0
  35978.           })
  35979.         }),
  35980.         r
  35981.       }
  35982.       return e = o,
  35983.       (t = [
  35984.         {
  35985.           key: 'componentDidMount',
  35986.           value: function () {
  35987.             this.props.emitTrackingEvent({
  35988.               verb: 'view',
  35989.               section: this.props.selection.type === ft.forum ? 'forum' : 'organization'
  35990.             }),
  35991.             this.props.fetchCampaignData(this.props.params.campaign),
  35992.             this.props.fetchForumDetails(),
  35993.             this.props.fetchOrgForums()
  35994.           }
  35995.         },
  35996.         {
  35997.           key: 'componentWillReceiveProps',
  35998.           value: function (e) {
  35999.             e.questions && !this.props.questions && this.setInitialQuestion(e.questions)
  36000.           }
  36001.         },
  36002.         {
  36003.           key: 'render',
  36004.           value: function () {
  36005.             if (!this.props.campaign.canParticipate) return C.a.createElement('section', {
  36006.               className: 'content__wrap'
  36007.             }, C.a.createElement('header', {
  36008.               className: 'settings__header'
  36009.             }, C.a.createElement('h2', {
  36010.               className: 'text-larger text-gray-darker'
  36011.             }, 'Uh-oh – this link is no longer valid.')), C.a.createElement('div', {
  36012.               className: 'settings__content'
  36013.             }, C.a.createElement('p', {
  36014.               className: 'spacing-top spacing-bottom'
  36015.             }, 'This link is no longer valid. If you’d like to make changes to your ad settings, visit the Revenue Settings page for your Disqus site(s).'), C.a.createElement(Uo, {
  36016.               path: '/settings/ads/',
  36017.               selection: this.props.selection,
  36018.               linkClassName: 'button button-outline button-medium button-padding-taller'
  36019.             }, 'View your Ad Settings')));
  36020.             if (!this.props.questions) return C.a.createElement(Ji, null);
  36021.             if (!this.state.hasCompletedFirstQuestion) return C.a.createElement(Xw, {
  36022.               name: 'initial',
  36023.               onAnswerSelected: this.handleAnswerSelected,
  36024.               onAnswerArbitraryTextChange: this.handleAnswerArbitraryTextChange,
  36025.               onAnswerSubmit: this.handleSaveAnswer,
  36026.               header: 'Reveal ads may not be a good fit',
  36027.               goBackButton: C.a.createElement(Uo, {
  36028.                 key: 'back',
  36029.                 path: '/settings/ads/',
  36030.                 selection: this.props.selection,
  36031.                 linkClassName: 'button button-outline button-medium button-padding-taller'
  36032.               }, 'Go to Ad Settings'),
  36033.               submitContent: 'Continue Deactivating Ads',
  36034.               submitDisabled: !this.state.currentAnswer,
  36035.               description: C.a.createElement('div', {
  36036.                 className: 'settings__description--nested align-min-tablet align--between align--row-reverse'
  36037.               }, C.a.createElement('div', {
  36038.                 className: 'padding-default text-center'
  36039.               }, C.a.createElement('img', {
  36040.                 src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/engage-reveal-no-bg.svg',
  36041.                 className: 'img-responsive',
  36042.                 width: '250'
  36043.               })), C.a.createElement('div', {
  36044.                 className: 'align__item--flex-1 text-gray text-medium spacing-right-large spacing-top spacing-bottom'
  36045.               }, C.a.createElement('p', null, 'The Disqus platform helps publishers grow successfully with two products that go hand in hand:'), C.a.createElement('ol', {
  36046.                 className: 'spacing-left-large spacing-top-small spacing-bottom'
  36047.               }, C.a.createElement('li', null, 'Engage: the Internet’s most popular comment system.'), C.a.createElement('li', null, 'Reveal: integrated native ads that help you earn money.')), C.a.createElement('p', null, 'Engage and Reveal work together to keep Disqus free and to help you earn money from your engaged audience. Smaller, non-commercial sites can turn off Reveal.'))),
  36048.               formHeader: this.state.currentQuestion.text,
  36049.               selectedAnswer: this.state.currentAnswer,
  36050.               selectedAnswerArbitraryText: this.state.currentAnswerArbitraryText,
  36051.               choices: this.state.currentQuestion.typeContext
  36052.             });
  36053.             if (this.state.followup && !this.state.hasDismissedFollowup) return C.a.createElement(eP, {
  36054.               onGoBack: this.handleGoBack,
  36055.               onContinue: this.dismissFollowup,
  36056.               answer: C.a.createElement('span', null, 'You picked: ', C.a.createElement('em', null, this.state.previousAnswers[this.state.previousAnswers.length - 1])),
  36057.               followUpText: this.state.followup.text,
  36058.               followUpButton: this.state.followup.button
  36059.             });
  36060.             if (this.state.currentQuestion) {
  36061.               var e = this.findOptionForAnswer(this.state.currentQuestion, this.state.currentAnswer),
  36062.               e = e && e.has_arbitrary_text ? !(!this.state.currentAnswer || !this.state.currentAnswerArbitraryText) : !!this.state.currentAnswer;
  36063.               return C.a.createElement(Xw, {
  36064.                 name: 'secondary',
  36065.                 onAnswerSelected: this.handleAnswerSelected,
  36066.                 onAnswerArbitraryTextChange: this.handleAnswerArbitraryTextChange,
  36067.                 onAnswerSubmit: this.handleSaveAnswer,
  36068.                 header: this.state.currentQuestion.text,
  36069.                 goBackButton: C.a.createElement('button', {
  36070.                   key: 'back',
  36071.                   onClick: this.handleGoBack,
  36072.                   className: 'button button-outline text-medium button-padding-taller'
  36073.                 }, C.a.createElement('span', {
  36074.                   className: 'icon-right-bracket icon-flipped spacing-right-small'
  36075.                 }), C.a.createElement('span', {
  36076.                   className: 'spacing-right'
  36077.                 }, 'Go back')),
  36078.                 submitContent: 'Continue Deactivating Ads',
  36079.                 submitDisabled: !e,
  36080.                 description: C.a.createElement('span', null, 'You picked: ', C.a.createElement('em', null, this.state.previousAnswers[this.state.previousAnswers.length - 1])),
  36081.                 formHeader: 'Select one',
  36082.                 selectedAnswer: this.state.currentAnswer,
  36083.                 selectedAnswerArbitraryText: this.state.currentAnswerArbitraryText,
  36084.                 choices: this.state.currentQuestion.typeContext
  36085.               })
  36086.             }
  36087.             var t;
  36088.             return this.state.hasCompletedDeactivation ? C.a.createElement(nP, {
  36089.               contactUrl: Pn.revealDeactivationContact,
  36090.               selection: this.props.selection
  36091.             }) : (this.props.selection.type === ft.organization && (t = this.props.orgForumsList.filter(function (e) {
  36092.               return !e.settings.adsEnabled
  36093.             })), C.a.createElement(tP, {
  36094.               selection: this.props.selection,
  36095.               onConfirm: this.handleConfirmDeactivate,
  36096.               onGoBack: this.handleGoBack,
  36097.               hubQualifiedForums: t
  36098.             }))
  36099.           }
  36100.         }
  36101.       ]) && cP(e.prototype, t),
  36102.       n && cP(e, n),
  36103.       o
  36104.     }();
  36105.     fP(Yc, 'displayName', 'RevealSettingsDeactivate'),
  36106.     fP(Yc, 'propTypes', {
  36107.       emitTrackingEvent: b.a.func.isRequired,
  36108.       fetchCampaignData: b.a.func.isRequired,
  36109.       selection: ht.isRequired,
  36110.       updateAnswer: b.a.func.isRequired,
  36111.       deactivateOnPerformAction: b.a.func.isRequired,
  36112.       campaign: b.a.shape({
  36113.         canParticipate: b.a.bool.isRequired
  36114.       }).isRequired,
  36115.       orgForumsList: b.a.array,
  36116.       params: b.a.shape({
  36117.         campaign: b.a.string,
  36118.         hubspotCompanyId: b.a.string,
  36119.         id: b.a.string,
  36120.         name: b.a.string
  36121.       }).isRequired,
  36122.       forumDetails: $c,
  36123.       fetchForumDetails: b.a.func.isRequired,
  36124.       fetchOrgForums: b.a.func.isRequired,
  36125.       questions: b.a.arrayOf(b.a.shape({
  36126.         question: b.a.shape({
  36127.           id: b.a.number.isRequired,
  36128.           order: b.a.number.isRequired,
  36129.           text: b.a.string.isRequired,
  36130.           type: b.a.number.isRequired,
  36131.           typeContext: b.a.arrayOf(b.a.shape({
  36132.             choice: b.a.string.isRequired,
  36133.             has_arbitrary_text: b.a.bool.isRequired,
  36134.             extra_data: b.a.shape({
  36135.               follow_up_text: b.a.string,
  36136.               forum_admin_link_path: b.a.string,
  36137.               mailto_link: b.a.string,
  36138.               link_text: b.a.string
  36139.             }).isRequired
  36140.           })),
  36141.           typeName: b.a.oneOf(['MULTIPLE_CHOICE',
  36142.           'MULTIPLE_CHOICE_WITH_ARBITRARY_TEXT'])
  36143.         }),
  36144.         answer: b.a.string
  36145.       }))
  36146.     });
  36147.     Pc = Object(u.connect) (function (e) {
  36148.       return iP(iP({
  36149.         campaign: e.campaign,
  36150.         forumDetails: e.forumDetails.forumDetails
  36151.       }, e.orgForums), {
  36152.       }, {
  36153.         defaultEventData: {
  36154.           zone: 'deactivation_hub'
  36155.         }
  36156.       })
  36157.     }, iP({
  36158.       deactivateOnPerformAction: function (r, o, i, s) {
  36159.         return function (e, t) {
  36160.           var n,
  36161.           a,
  36162.           t = t().selection;
  36163.           return t.type === ft.forum ? (a = 'forums/update', n = {
  36164.             forum: t.forum.shortname,
  36165.             adsPositionTopEnabled: 0,
  36166.             adsPositionBottomEnabled: 0,
  36167.             adsPositionInthreadEnabled: 0,
  36168.             adsPositionRecommendationsEnabled: 0
  36169.           }) : t.type === ft.organization && (a = 'organizations/campaigns/performAction', n = {
  36170.             organization: t.organization.id,
  36171.             campaign: r,
  36172.             action: o,
  36173.             hubspotCompanyId: i
  36174.           }),
  36175.           io.a.call(a, {
  36176.             data: n,
  36177.             method: 'POST'
  36178.           }).done(s)
  36179.         }
  36180.       },
  36181.       emitTrackingEvent: Xo({
  36182.         zone: 'deactivation_hub'
  36183.       }),
  36184.       fetchCampaignData: function (o) {
  36185.         return function (t, e) {
  36186.           var n,
  36187.           a,
  36188.           r = e().selection;
  36189.           return r.type === ft.forum ? (n = 'forums/update', a = {
  36190.             data: {
  36191.               forum: r.forum.shortname
  36192.             },
  36193.             method: 'POST'
  36194.           }) : r.type === ft.organization && (n = 'organizations/campaigns/details', a = {
  36195.             data: {
  36196.               campaign: o,
  36197.               organization: r.organization.id
  36198.             }
  36199.           }),
  36200.           io.a.call(n, a).done(function (e) {
  36201.             t({
  36202.               type: G.onFetch,
  36203.               response: e.response,
  36204.               selection: r
  36205.             })
  36206.           }).fail(function () {
  36207.             t({
  36208.               type: G.onError
  36209.             })
  36210.           })
  36211.         }
  36212.       },
  36213.       fetchForumDetails: ig
  36214.     }, Ru)) (Ni.a.attachDrivers(Yc, [
  36215.       sl
  36216.     ]));
  36217.     function hP(e) {
  36218.       return (hP = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  36219.         return typeof e
  36220.       }
  36221.        : function (e) {
  36222.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  36223.       }) (e)
  36224.     }
  36225.     function gP(e, t) {
  36226.       for (var n = 0; n < t.length; n++) {
  36227.         var a = t[n];
  36228.         a.enumerable = a.enumerable || !1,
  36229.         a.configurable = !0,
  36230.         'value' in a && (a.writable = !0),
  36231.         Object.defineProperty(e, a.key, a)
  36232.       }
  36233.     }
  36234.     function yP(e, t) {
  36235.       return (yP = Object.setPrototypeOf || function (e, t) {
  36236.         return e.__proto__ = t,
  36237.         e
  36238.       }) (e, t)
  36239.     }
  36240.     function bP(n) {
  36241.       var a = function () {
  36242.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  36243.         if (Reflect.construct.sham) return !1;
  36244.         if ('function' == typeof Proxy) return !0;
  36245.         try {
  36246.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  36247.           ], function () {
  36248.           })),
  36249.           !0
  36250.         } catch (e) {
  36251.           return !1
  36252.         }
  36253.       }();
  36254.       return function () {
  36255.         var e,
  36256.         t = vP(n);
  36257.         return e = a ? (e = vP(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  36258.         t = this,
  36259.         !(e = e) || 'object' !== hP(e) && 'function' != typeof e ? function (e) {
  36260.           if (void 0 !== e) return e;
  36261.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  36262.         }(t) : e
  36263.       }
  36264.     }
  36265.     function vP(e) {
  36266.       return (vP = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  36267.         return e.__proto__ || Object.getPrototypeOf(e)
  36268.       }) (e)
  36269.     }
  36270.     function _P(e, t, n) {
  36271.       return t in e ? Object.defineProperty(e, t, {
  36272.         value: n,
  36273.         enumerable: !0,
  36274.         configurable: !0,
  36275.         writable: !0
  36276.       }) : e[t] = n,
  36277.       e
  36278.     }
  36279.     Ls = function () {
  36280.       !function (e, t) {
  36281.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  36282.         e.prototype = Object.create(t && t.prototype, {
  36283.           constructor: {
  36284.             value: e,
  36285.             writable: !0,
  36286.             configurable: !0
  36287.           }
  36288.         }),
  36289.         t && yP(e, t)
  36290.       }(r, A);
  36291.       var e,
  36292.       t,
  36293.       n,
  36294.       a = bP(r);
  36295.       function r() {
  36296.         return function (e, t) {
  36297.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  36298.         }(this, r),
  36299.         a.apply(this, arguments)
  36300.       }
  36301.       return e = r,
  36302.       (t = [
  36303.         {
  36304.           key: 'render',
  36305.           value: function () {
  36306.             var e = this.props.selection.type === ft.global ? C.a.createElement('div', {
  36307.               className: 'start__icon -larger icon-group'
  36308.             }) : this.props.isLoading ? C.a.createElement('div', {
  36309.               className: 'start-stats__loading-wrapper'
  36310.             }, C.a.createElement('div', {
  36311.               className: 'spinner'
  36312.             })) : C.a.createElement('div', null, C.a.createElement('div', {
  36313.               className: 'start-stats__metric'
  36314.             }, (this.props.data || 0).toLocaleString()), C.a.createElement('div', {
  36315.               className: 'start-stats__label'
  36316.             }, 'Total Active Polls'));
  36317.             return C.a.createElement('div', {
  36318.               className: 'start-stats__block align__item--grow'
  36319.             }, C.a.createElement(Uo, {
  36320.               path: '/polls/list/',
  36321.               selection: this.props.selection,
  36322.               linkClassName: 'start-stats__content -moderate'
  36323.             }, e, C.a.createElement('button', {
  36324.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  36325.             }, 'View Polls')))
  36326.           }
  36327.         }
  36328.       ]) && gP(e.prototype, t),
  36329.       n && gP(e, n),
  36330.       r
  36331.     }();
  36332.     _P(Ls, 'displayName', 'StartActivePollsButton'),
  36333.     _P(Ls, 'propTypes', {
  36334.       selection: ht.isRequired,
  36335.       data: b.a.number,
  36336.       isLoading: b.a.bool
  36337.     });
  36338.     function EP() {
  36339.       return ct.a.utc().startOf('day')
  36340.     }
  36341.     var OP = Ls;
  36342.     function SP(e) {
  36343.       return (SP = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  36344.         return typeof e
  36345.       }
  36346.        : function (e) {
  36347.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  36348.       }) (e)
  36349.     }
  36350.     function wP(e, t) {
  36351.       for (var n = 0; n < t.length; n++) {
  36352.         var a = t[n];
  36353.         a.enumerable = a.enumerable || !1,
  36354.         a.configurable = !0,
  36355.         'value' in a && (a.writable = !0),
  36356.         Object.defineProperty(e, a.key, a)
  36357.       }
  36358.     }
  36359.     function PP(e, t) {
  36360.       return (PP = Object.setPrototypeOf || function (e, t) {
  36361.         return e.__proto__ = t,
  36362.         e
  36363.       }) (e, t)
  36364.     }
  36365.     function kP(n) {
  36366.       var a = function () {
  36367.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  36368.         if (Reflect.construct.sham) return !1;
  36369.         if ('function' == typeof Proxy) return !0;
  36370.         try {
  36371.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  36372.           ], function () {
  36373.           })),
  36374.           !0
  36375.         } catch (e) {
  36376.           return !1
  36377.         }
  36378.       }();
  36379.       return function () {
  36380.         var e,
  36381.         t = NP(n);
  36382.         return e = a ? (e = NP(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  36383.         t = this,
  36384.         !(e = e) || 'object' !== SP(e) && 'function' != typeof e ? function (e) {
  36385.           if (void 0 !== e) return e;
  36386.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  36387.         }(t) : e
  36388.       }
  36389.     }
  36390.     function NP(e) {
  36391.       return (NP = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  36392.         return e.__proto__ || Object.getPrototypeOf(e)
  36393.       }) (e)
  36394.     }
  36395.     function CP(e, t, n) {
  36396.       return t in e ? Object.defineProperty(e, t, {
  36397.         value: n,
  36398.         enumerable: !0,
  36399.         configurable: !0,
  36400.         writable: !0
  36401.       }) : e[t] = n,
  36402.       e
  36403.     }
  36404.     i = function () {
  36405.       !function (e, t) {
  36406.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  36407.         e.prototype = Object.create(t && t.prototype, {
  36408.           constructor: {
  36409.             value: e,
  36410.             writable: !0,
  36411.             configurable: !0
  36412.           }
  36413.         }),
  36414.         t && PP(e, t)
  36415.       }(r, A);
  36416.       var e,
  36417.       t,
  36418.       n,
  36419.       a = kP(r);
  36420.       function r() {
  36421.         return function (e, t) {
  36422.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  36423.         }(this, r),
  36424.         a.apply(this, arguments)
  36425.       }
  36426.       return e = r,
  36427.       (t = [
  36428.         {
  36429.           key: 'componentDidMount',
  36430.           value: function () {
  36431.             this.props.selection.type !== ft.global && this.props.fetchCommentCounts()
  36432.           }
  36433.         },
  36434.         {
  36435.           key: 'render',
  36436.           value: function () {
  36437.             var e;
  36438.             return e = this.props.selection.type === ft.global ? C.a.createElement('div', {
  36439.               className: 'start__icon -larger icon-graph'
  36440.             }) : this.props.commentCounts ? (e = je.a.reduce(this.props.commentCounts, function (e, t) {
  36441.               return e + t[1]
  36442.             }, 0), C.a.createElement('div', null, C.a.createElement('div', {
  36443.               className: 'start-stats__metric'
  36444.             }, e.toLocaleString()), C.a.createElement('div', {
  36445.               className: 'start-stats__label'
  36446.             }, 'Comments This Week'))) : C.a.createElement('div', {
  36447.               className: 'start-stats__loading-wrapper'
  36448.             }, C.a.createElement('div', {
  36449.               className: 'spinner'
  36450.             })),
  36451.             C.a.createElement('div', {
  36452.               className: 'start-stats__block align__item--grow'
  36453.             }, C.a.createElement(ri, {
  36454.               path: '/analytics/comments/',
  36455.               selection: this.props.selection,
  36456.               linkClassName: 'start-stats__content -moderate'
  36457.             }, e, C.a.createElement('button', {
  36458.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  36459.             }, 'Analyze Engagement')))
  36460.           }
  36461.         }
  36462.       ]) && wP(e.prototype, t),
  36463.       n && wP(e, n),
  36464.       r
  36465.     }();
  36466.     CP(i, 'displayName', 'StartEngagementButton'),
  36467.     CP(i, 'propTypes', {
  36468.       selection: ht.isRequired,
  36469.       commentCounts: b.a.array
  36470.     });
  36471.     function RP(e) {
  36472.       return 1 === e ? 'One comment' : ''.concat(e, ' comments')
  36473.     }
  36474.     var xP = Object(u.connect) (function (e) {
  36475.       return {
  36476.         commentCounts: e.commentCounts.commentCounts,
  36477.         selection: e.selection
  36478.       }
  36479.     }, {
  36480.       fetchCommentCounts: function () {
  36481.         return function (t, e) {
  36482.           var n,
  36483.           a = e().selection,
  36484.           r = ct() (EP()).subtract(1, 'week'),
  36485.           e = EP(),
  36486.           e = {
  36487.             start: r.toISOString(),
  36488.             end: e.toISOString()
  36489.           };
  36490.           return a.type === ft.organization ? (e.organization = a.organization.id, n = 'organizations/admin/reports/interactionReport') : a.type === ft.forum && (e.forum = a.forum.shortname, n = 'forums/admin/reports/interactionReport'),
  36491.           io.a.call(n, {
  36492.             data: e
  36493.           }).done(function (e) {
  36494.             t({
  36495.               type: V.onFetch,
  36496.               response: e.response
  36497.             })
  36498.           })
  36499.         }
  36500.       }
  36501.     }) (i),
  36502.     AP = 'default_moderation_time',
  36503.     DP = [
  36504.       {
  36505.         key: 'day',
  36506.         label: 'Past Day'
  36507.       },
  36508.       {
  36509.         key: 'week',
  36510.         label: 'Past Week'
  36511.       },
  36512.       {
  36513.         key: 'month',
  36514.         label: 'Past Month'
  36515.       },
  36516.       {
  36517.         key: 'year',
  36518.         label: 'Past Year'
  36519.       },
  36520.       {
  36521.         key: 'all',
  36522.         label: 'All Time'
  36523.       },
  36524.       {
  36525.         key: 'custom',
  36526.         label: 'Custom'
  36527.       }
  36528.     ],
  36529.     jP = {
  36530.       maxDate: ct() ().endOf('day'),
  36531.       minDate: ct() ('01 01 2007', 'MM DD YYYY').startOf('day')
  36532.     },
  36533.     TP = 2000,
  36534.     IP = {
  36535.       all: [
  36536.         'approved',
  36537.         'unapproved',
  36538.         'spam',
  36539.         'deleted'
  36540.       ],
  36541.       approved: 'approved',
  36542.       pending: [
  36543.         'unapproved',
  36544.         'flagged'
  36545.       ],
  36546.       spam: 'spam',
  36547.       deleted: 'deleted'
  36548.     },
  36549.     qP = 'default_moderation_order',
  36550.     FP = [
  36551.       {
  36552.         key: 'desc',
  36553.         label: 'Newest'
  36554.       },
  36555.       {
  36556.         key: 'asc',
  36557.         label: 'Oldest'
  36558.       },
  36559.       {
  36560.         key: 'worst',
  36561.         label: 'Priority'
  36562.       }
  36563.     ],
  36564.     LP = Is.a.get(AP);
  36565.     'custom' !== LP && je.a.find(DP, function (e) {
  36566.       return e.key === LP
  36567.     }) || (LP = 'year');
  36568.     var UP = Is.a.get(qP),
  36569.     MP = {
  36570.       page: 'pending',
  36571.       perPage: 25,
  36572.       expandComments: !1,
  36573.       fetchSize: 25,
  36574.       lang: 'en',
  36575.       sortOrder: UP = !je.a.find(FP, function (e) {
  36576.         return e.key === UP
  36577.       }) ? 'desc' : UP,
  36578.       startDate: 'all' === LP ? jP.minDate : ct() ().startOf('day').subtract(1, LP),
  36579.       endDate: ct() ().endOf('day')
  36580.     },
  36581.     BP = {
  36582.       approve: {
  36583.         apiPath: 'posts/approve',
  36584.         status: 'approved',
  36585.         successMessage: function (e) {
  36586.           return ''.concat(RP(e), ' approved')
  36587.         }
  36588.       },
  36589.       unapprove: {
  36590.         apiPath: 'posts/unapprove',
  36591.         status: 'unapproved',
  36592.         successMessage: function (e) {
  36593.           return ''.concat(RP(e), ' unapproved')
  36594.         }
  36595.       },
  36596.       spam: {
  36597.         apiPath: 'posts/spam',
  36598.         status: 'spam',
  36599.         successMessage: function (e) {
  36600.           return ''.concat(RP(e), ' marked as spam')
  36601.         }
  36602.       },
  36603.       delete : {
  36604.         apiPath: 'posts/remove',
  36605.         status: 'deleted',
  36606.         successMessage: function (e) {
  36607.           return ''.concat(RP(e), ' deleted')
  36608.         }
  36609.       }
  36610.     },
  36611.     zP = je.a.chain(BP).map(function (e, t) {
  36612.       return [e.status,
  36613.       t]
  36614.     }).object().value(),
  36615.     HP = {
  36616.       ']': {
  36617.         callbackName: 'tabOver',
  36618.         callbackArgs: [
  36619.           1
  36620.         ]
  36621.       },
  36622.       '[': {
  36623.         callbackName: 'tabOver',
  36624.         callbackArgs: [
  36625.           - 1
  36626.         ]
  36627.       },
  36628.       1: {
  36629.         callbackName: 'tab',
  36630.         callbackArgs: [
  36631.           0
  36632.         ]
  36633.       },
  36634.       2: {
  36635.         callbackName: 'tab',
  36636.         callbackArgs: [
  36637.           1
  36638.         ]
  36639.       },
  36640.       3: {
  36641.         callbackName: 'tab',
  36642.         callbackArgs: [
  36643.           2
  36644.         ]
  36645.       },
  36646.       4: {
  36647.         callbackName: 'tab',
  36648.         callbackArgs: [
  36649.           3
  36650.         ]
  36651.       },
  36652.       5: {
  36653.         callbackName: 'tab',
  36654.         callbackArgs: [
  36655.           4
  36656.         ]
  36657.       },
  36658.       j: 'activateNextPost',
  36659.       k: 'activatePreviousPost',
  36660.       n: 'fetchMorePosts',
  36661.       p: 'prevPage',
  36662.       '/': 'focusSearch',
  36663.       x: 'toggleActivePostChecked',
  36664.       a: 'markCheckedPostsApproved',
  36665.       s: 'markCheckedPostsSpam',
  36666.       d: 'markCheckedPostsTrash',
  36667.       z: 'undoAction',
  36668.       o: 'toggleActivePostPanelVisible',
  36669.       '?': 'toggleHelpVisible',
  36670.       R: 'refreshCurrentPage',
  36671.       Esc: {
  36672.         callbackName: 'removeFocus',
  36673.         options: {
  36674.           exclude: [
  36675.           ]
  36676.         }
  36677.       }
  36678.     };
  36679.     je.a.extend(HP, {
  36680.       '{': HP['['],
  36681.       '}': HP[']'],
  36682.       '>': HP.n,
  36683.       '<': HP.p,
  36684.       b: HP.p,
  36685.       '!': HP.s,
  36686.       '#': HP.d,
  36687.       '.': HP.o,
  36688.       Enter: HP.o
  36689.     });
  36690.     var GP = {
  36691.       r: 'startReplyHotkey',
  36692.       e: 'startEditHotkey',
  36693.       Esc: 'removeFocus'
  36694.     },
  36695.     VP = {
  36696.       posts: {
  36697.         approve: {
  36698.           text: 'Approve',
  36699.           icon: 'checkmark'
  36700.         },
  36701.         unapprove: {
  36702.           text: 'Mark Post as Pending',
  36703.           icon: 'spam'
  36704.         },
  36705.         delete : {
  36706.           text: 'Delete',
  36707.           icon: 'delete'
  36708.         },
  36709.         spam: {
  36710.           text: 'Mark as Spam',
  36711.           icon: 'spam'
  36712.         }
  36713.       },
  36714.       users: {
  36715.         permaban: {
  36716.           text: 'Ban Author',
  36717.           banType: Wn.BAN_TYPES.PERMANENT
  36718.         },
  36719.         tempban: {
  36720.           text: 'Timeout Author',
  36721.           banType: Wn.BAN_TYPES.TEMP
  36722.         },
  36723.         shadowban: {
  36724.           text: 'Shadowban Author',
  36725.           banType: Wn.BAN_TYPES.SHADOW
  36726.         }
  36727.       }
  36728.     },
  36729.     WP = {
  36730.       approve: 'icon-checkmark',
  36731.       approved: 'icon-checkmark',
  36732.       spam: 'icon-spam',
  36733.       delete : 'icon-delete',
  36734.       deleted: 'icon-delete',
  36735.       pending: 'icon-pending'
  36736.     },
  36737.     Qs = {
  36738.       forum: b.a.object.isRequired,
  36739.       thread: b.a.object.isRequired,
  36740.       id: b.a.string.isRequired,
  36741.       url: b.a.string.isRequired,
  36742.       author: b.a.object.isRequired,
  36743.       ipAddress: b.a.string,
  36744.       isDeletedByAuthor: b.a.bool.isRequired,
  36745.       message: b.a.string.isRequired,
  36746.       modMessage: b.a.string.isRequired,
  36747.       media: b.a.array.isRequired,
  36748.       createdAt: b.a.string.isRequired,
  36749.       editableUntil: b.a.string.isRequired,
  36750.       likes: b.a.number.isRequired,
  36751.       dislikes: b.a.number.isRequired,
  36752.       userScore: b.a.number.isRequired,
  36753.       raw_message: b.a.string.isRequired,
  36754.       moderationLabels: b.a.arrayOf(b.a.string).isRequired,
  36755.       numReports: b.a.number.isRequired,
  36756.       shadowBanned: b.a.bool,
  36757.       child: b.a.object,
  36758.       isFlagged: b.a.bool,
  36759.       isApproved: b.a.bool,
  36760.       isHighlighted: b.a.bool,
  36761.       flaggers: b.a.arrayOf(b.a.shape({
  36762.         name: b.a.string.isRequired,
  36763.         username: b.a.string.isRequired,
  36764.         profileUrl: b.a.string.isRequired
  36765.       })),
  36766.       rule: b.a.object,
  36767.       isNewUserNeedsApproval: b.a.bool
  36768.     },
  36769.     YP = Object.keys(window._v5Config.moderated_forums.reduce(function (e, t) {
  36770.       return e[window._v5Config.forums[t].organization] = !0,
  36771.       e
  36772.     }, {
  36773.     })).some(function (e) {
  36774.       return yo.a.isFeatureActive('suggested_actions', {
  36775.         organization: e
  36776.       })
  36777.     }),
  36778.     QP = {
  36779.       approveModalIsOpen: !1,
  36780.       approveModalPostId: null,
  36781.       approveModalAuthor: null
  36782.     };
  36783.     function KP(e) {
  36784.       return (KP = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  36785.         return typeof e
  36786.       }
  36787.        : function (e) {
  36788.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  36789.       }) (e)
  36790.     }
  36791.     function JP(e, t) {
  36792.       for (var n = 0; n < t.length; n++) {
  36793.         var a = t[n];
  36794.         a.enumerable = a.enumerable || !1,
  36795.         a.configurable = !0,
  36796.         'value' in a && (a.writable = !0),
  36797.         Object.defineProperty(e, a.key, a)
  36798.       }
  36799.     }
  36800.     function $P(e, t) {
  36801.       return ($P = Object.setPrototypeOf || function (e, t) {
  36802.         return e.__proto__ = t,
  36803.         e
  36804.       }) (e, t)
  36805.     }
  36806.     function ZP(n) {
  36807.       var a = function () {
  36808.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  36809.         if (Reflect.construct.sham) return !1;
  36810.         if ('function' == typeof Proxy) return !0;
  36811.         try {
  36812.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  36813.           ], function () {
  36814.           })),
  36815.           !0
  36816.         } catch (e) {
  36817.           return !1
  36818.         }
  36819.       }();
  36820.       return function () {
  36821.         var e,
  36822.         t = ek(n);
  36823.         return e = a ? (e = ek(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  36824.         t = this,
  36825.         !(e = e) || 'object' !== KP(e) && 'function' != typeof e ? XP(t) : e
  36826.       }
  36827.     }
  36828.     function XP(e) {
  36829.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  36830.       return e
  36831.     }
  36832.     function ek(e) {
  36833.       return (ek = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  36834.         return e.__proto__ || Object.getPrototypeOf(e)
  36835.       }) (e)
  36836.     }
  36837.     function tk(e, t, n) {
  36838.       return t in e ? Object.defineProperty(e, t, {
  36839.         value: n,
  36840.         enumerable: !0,
  36841.         configurable: !0,
  36842.         writable: !0
  36843.       }) : e[t] = n,
  36844.       e
  36845.     }
  36846.     Mo = function () {
  36847.       !function (e, t) {
  36848.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  36849.         e.prototype = Object.create(t && t.prototype, {
  36850.           constructor: {
  36851.             value: e,
  36852.             writable: !0,
  36853.             configurable: !0
  36854.           }
  36855.         }),
  36856.         t && $P(e, t)
  36857.       }(o, A);
  36858.       var e,
  36859.       t,
  36860.       n,
  36861.       r = ZP(o);
  36862.       function o() {
  36863.         var t;
  36864.         !function (e, t) {
  36865.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  36866.         }(this, o);
  36867.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  36868.         return tk(XP(t = r.call.apply(r, [
  36869.           this
  36870.         ].concat(n))), 'state', {
  36871.           pendingCounts: {
  36872.             total: 0,
  36873.             hasBadWords: 0,
  36874.             hasLinks: 0,
  36875.             hasLowRep: 0,
  36876.             isFlagged: 0,
  36877.             isAtFlagLimit: 0,
  36878.             isAnonymous: 0,
  36879.             isToxic: 0,
  36880.             hasMedia: 0
  36881.           },
  36882.           isFetching: !1
  36883.         }),
  36884.         tk(XP(t), 'fetchData', function (e) {
  36885.           e = e || {
  36886.           },
  36887.           t.setState({
  36888.             isFetching: !0
  36889.           }),
  36890.           t.props.selection.type === ft.forum && (e.forum = t.props.selection.forum.shortname),
  36891.           t.apiCall = io.a.call('posts/countPending', {
  36892.             data: e
  36893.           }).done(t.onFetch)
  36894.         }),
  36895.         tk(XP(t), 'onFetch', function (e) {
  36896.           e = e.response;
  36897.           e && t.setState({
  36898.             pendingCounts: e,
  36899.             isFetching: !1
  36900.           })
  36901.         }),
  36902.         tk(XP(t), 'getComponentProps', function () {
  36903.           return {
  36904.             pendingCounts: t.state.pendingCounts,
  36905.             refreshPendingCommentsCount: t.fetchData,
  36906.             pendingCountsIsFetching: t.state.isFetching
  36907.           }
  36908.         }),
  36909.         t
  36910.       }
  36911.       return e = o,
  36912.       (t = [
  36913.         {
  36914.           key: 'componentWillUnmount',
  36915.           value: function () {
  36916.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  36917.           }
  36918.         }
  36919.       ]) && JP(e.prototype, t),
  36920.       n && JP(e, n),
  36921.       o
  36922.     }();
  36923.     tk(Mo, 'displayName', 'PendingCommentsCountDriver'),
  36924.     tk(Mo, 'propTypes', {
  36925.       selection: ht.isRequired
  36926.     });
  36927.     go = Object(ki.createDriver) (Mo);
  36928.     function nk(e) {
  36929.       return (nk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  36930.         return typeof e
  36931.       }
  36932.        : function (e) {
  36933.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  36934.       }) (e)
  36935.     }
  36936.     function ak(e, t) {
  36937.       for (var n = 0; n < t.length; n++) {
  36938.         var a = t[n];
  36939.         a.enumerable = a.enumerable || !1,
  36940.         a.configurable = !0,
  36941.         'value' in a && (a.writable = !0),
  36942.         Object.defineProperty(e, a.key, a)
  36943.       }
  36944.     }
  36945.     function rk(e, t) {
  36946.       return (rk = Object.setPrototypeOf || function (e, t) {
  36947.         return e.__proto__ = t,
  36948.         e
  36949.       }) (e, t)
  36950.     }
  36951.     function ok(n) {
  36952.       var a = function () {
  36953.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  36954.         if (Reflect.construct.sham) return !1;
  36955.         if ('function' == typeof Proxy) return !0;
  36956.         try {
  36957.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  36958.           ], function () {
  36959.           })),
  36960.           !0
  36961.         } catch (e) {
  36962.           return !1
  36963.         }
  36964.       }();
  36965.       return function () {
  36966.         var e,
  36967.         t = ik(n);
  36968.         return e = a ? (e = ik(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  36969.         t = this,
  36970.         !(e = e) || 'object' !== nk(e) && 'function' != typeof e ? function (e) {
  36971.           if (void 0 !== e) return e;
  36972.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  36973.         }(t) : e
  36974.       }
  36975.     }
  36976.     function ik(e) {
  36977.       return (ik = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  36978.         return e.__proto__ || Object.getPrototypeOf(e)
  36979.       }) (e)
  36980.     }
  36981.     function sk(e, t, n) {
  36982.       return t in e ? Object.defineProperty(e, t, {
  36983.         value: n,
  36984.         enumerable: !0,
  36985.         configurable: !0,
  36986.         writable: !0
  36987.       }) : e[t] = n,
  36988.       e
  36989.     }
  36990.     yl = function () {
  36991.       !function (e, t) {
  36992.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  36993.         e.prototype = Object.create(t && t.prototype, {
  36994.           constructor: {
  36995.             value: e,
  36996.             writable: !0,
  36997.             configurable: !0
  36998.           }
  36999.         }),
  37000.         t && rk(e, t)
  37001.       }(r, A);
  37002.       var e,
  37003.       t,
  37004.       n,
  37005.       a = ok(r);
  37006.       function r() {
  37007.         return function (e, t) {
  37008.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37009.         }(this, r),
  37010.         a.apply(this, arguments)
  37011.       }
  37012.       return e = r,
  37013.       (t = [
  37014.         {
  37015.           key: 'componentDidMount',
  37016.           value: function () {
  37017.             this.props.refreshPendingCommentsCount({
  37018.               start: MP.startDate.toISOString(),
  37019.               end: MP.endDate.toISOString()
  37020.             })
  37021.           }
  37022.         },
  37023.         {
  37024.           key: 'render',
  37025.           value: function () {
  37026.             var e = this.props.selection.type === ft.global ? C.a.createElement('div', {
  37027.               className: 'start__icon -larger icon-moderate'
  37028.             }) : this.props.pendingCountsIsFetching ? C.a.createElement('div', {
  37029.               className: 'start-stats__loading-wrapper'
  37030.             }, C.a.createElement('div', {
  37031.               className: 'spinner'
  37032.             })) : C.a.createElement('div', null, C.a.createElement('div', {
  37033.               className: 'start-stats__metric'
  37034.             }, TP <= this.props.pendingCounts.total ? ''.concat(TP.toLocaleString(), '+') : this.props.pendingCounts.total.toLocaleString()), C.a.createElement('div', {
  37035.               className: 'start-stats__label'
  37036.             }, 'Pending Comments For All Sites'));
  37037.             return C.a.createElement('div', {
  37038.               className: 'start-stats__block align__item--grow'
  37039.             }, C.a.createElement(v.Link, {
  37040.               to: ho.getRoute('/moderate/'),
  37041.               className: 'start-stats__content -moderate'
  37042.             }, e, C.a.createElement('button', {
  37043.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  37044.             }, 'Moderate Comments')))
  37045.           }
  37046.         }
  37047.       ]) && ak(e.prototype, t),
  37048.       n && ak(e, n),
  37049.       r
  37050.     }();
  37051.     sk(yl, 'displayName', 'StartModerateButton'),
  37052.     sk(yl, 'propTypes', {
  37053.       pendingCountsIsFetching: b.a.bool.isRequired,
  37054.       pendingCounts: b.a.shape({
  37055.         total: b.a.number
  37056.       }),
  37057.       refreshPendingCommentsCount: b.a.func.isRequired,
  37058.       selection: ht.isRequired
  37059.     });
  37060.     var lk = Ni.a.attachDrivers(yl, [
  37061.       go
  37062.     ]);
  37063.     function ck(e) {
  37064.       return (ck = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37065.         return typeof e
  37066.       }
  37067.        : function (e) {
  37068.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37069.       }) (e)
  37070.     }
  37071.     function uk(e, t) {
  37072.       for (var n = 0; n < t.length; n++) {
  37073.         var a = t[n];
  37074.         a.enumerable = a.enumerable || !1,
  37075.         a.configurable = !0,
  37076.         'value' in a && (a.writable = !0),
  37077.         Object.defineProperty(e, a.key, a)
  37078.       }
  37079.     }
  37080.     function pk(e, t) {
  37081.       return (pk = Object.setPrototypeOf || function (e, t) {
  37082.         return e.__proto__ = t,
  37083.         e
  37084.       }) (e, t)
  37085.     }
  37086.     function dk(n) {
  37087.       var a = function () {
  37088.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37089.         if (Reflect.construct.sham) return !1;
  37090.         if ('function' == typeof Proxy) return !0;
  37091.         try {
  37092.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37093.           ], function () {
  37094.           })),
  37095.           !0
  37096.         } catch (e) {
  37097.           return !1
  37098.         }
  37099.       }();
  37100.       return function () {
  37101.         var e,
  37102.         t = mk(n);
  37103.         return e = a ? (e = mk(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  37104.         t = this,
  37105.         !(e = e) || 'object' !== ck(e) && 'function' != typeof e ? function (e) {
  37106.           if (void 0 !== e) return e;
  37107.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  37108.         }(t) : e
  37109.       }
  37110.     }
  37111.     function mk(e) {
  37112.       return (mk = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  37113.         return e.__proto__ || Object.getPrototypeOf(e)
  37114.       }) (e)
  37115.     }
  37116.     function fk(e, t, n) {
  37117.       return t in e ? Object.defineProperty(e, t, {
  37118.         value: n,
  37119.         enumerable: !0,
  37120.         configurable: !0,
  37121.         writable: !0
  37122.       }) : e[t] = n,
  37123.       e
  37124.     }
  37125.     h = function () {
  37126.       !function (e, t) {
  37127.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  37128.         e.prototype = Object.create(t && t.prototype, {
  37129.           constructor: {
  37130.             value: e,
  37131.             writable: !0,
  37132.             configurable: !0
  37133.           }
  37134.         }),
  37135.         t && pk(e, t)
  37136.       }(r, A);
  37137.       var e,
  37138.       t,
  37139.       n,
  37140.       a = dk(r);
  37141.       function r() {
  37142.         return function (e, t) {
  37143.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37144.         }(this, r),
  37145.         a.apply(this, arguments)
  37146.       }
  37147.       return e = r,
  37148.       (t = [
  37149.         {
  37150.           key: 'render',
  37151.           value: function () {
  37152.             var e = this.props.selection.type === ft.global ? C.a.createElement('div', {
  37153.               className: 'start__icon -larger icon-graph'
  37154.             }) : this.props.isLoading ? C.a.createElement('div', {
  37155.               className: 'start-stats__loading-wrapper'
  37156.             }, C.a.createElement('div', {
  37157.               className: 'spinner'
  37158.             })) : C.a.createElement('div', null, C.a.createElement('div', {
  37159.               className: 'start-stats__metric'
  37160.             }, (this.props.data || 0).toLocaleString()), C.a.createElement('div', {
  37161.               className: 'start-stats__label'
  37162.             }, 'Total Respondents'));
  37163.             return C.a.createElement('div', {
  37164.               className: 'start-stats__block align__item--grow'
  37165.             }, C.a.createElement(Uo, {
  37166.               path: '/polls/insights/',
  37167.               selection: this.props.selection,
  37168.               linkClassName: 'start-stats__content -moderate'
  37169.             }, e, C.a.createElement('button', {
  37170.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  37171.             }, 'View ', this.props.selection.type === ft.global || this.props.selection.type === ft.organization ? 'Poll' : '', ' Insights')))
  37172.           }
  37173.         }
  37174.       ]) && uk(e.prototype, t),
  37175.       n && uk(e, n),
  37176.       r
  37177.     }();
  37178.     fk(h, 'displayName', 'StartPollsRespondentsButton'),
  37179.     fk(h, 'propTypes', {
  37180.       selection: ht.isRequired,
  37181.       data: b.a.number,
  37182.       isLoading: b.a.bool
  37183.     });
  37184.     var hk = h;
  37185.     function gk(e) {
  37186.       return (gk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37187.         return typeof e
  37188.       }
  37189.        : function (e) {
  37190.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37191.       }) (e)
  37192.     }
  37193.     function yk(e, t) {
  37194.       for (var n = 0; n < t.length; n++) {
  37195.         var a = t[n];
  37196.         a.enumerable = a.enumerable || !1,
  37197.         a.configurable = !0,
  37198.         'value' in a && (a.writable = !0),
  37199.         Object.defineProperty(e, a.key, a)
  37200.       }
  37201.     }
  37202.     function bk(e, t) {
  37203.       return (bk = Object.setPrototypeOf || function (e, t) {
  37204.         return e.__proto__ = t,
  37205.         e
  37206.       }) (e, t)
  37207.     }
  37208.     function vk(n) {
  37209.       var a = function () {
  37210.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37211.         if (Reflect.construct.sham) return !1;
  37212.         if ('function' == typeof Proxy) return !0;
  37213.         try {
  37214.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37215.           ], function () {
  37216.           })),
  37217.           !0
  37218.         } catch (e) {
  37219.           return !1
  37220.         }
  37221.       }();
  37222.       return function () {
  37223.         var e,
  37224.         t = _k(n);
  37225.         return e = a ? (e = _k(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  37226.         t = this,
  37227.         !(e = e) || 'object' !== gk(e) && 'function' != typeof e ? function (e) {
  37228.           if (void 0 !== e) return e;
  37229.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  37230.         }(t) : e
  37231.       }
  37232.     }
  37233.     function _k(e) {
  37234.       return (_k = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  37235.         return e.__proto__ || Object.getPrototypeOf(e)
  37236.       }) (e)
  37237.     }
  37238.     function Ek(e, t, n) {
  37239.       return t in e ? Object.defineProperty(e, t, {
  37240.         value: n,
  37241.         enumerable: !0,
  37242.         configurable: !0,
  37243.         writable: !0
  37244.       }) : e[t] = n,
  37245.       e
  37246.     }
  37247.     Ru = function () {
  37248.       !function (e, t) {
  37249.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  37250.         e.prototype = Object.create(t && t.prototype, {
  37251.           constructor: {
  37252.             value: e,
  37253.             writable: !0,
  37254.             configurable: !0
  37255.           }
  37256.         }),
  37257.         t && bk(e, t)
  37258.       }(r, A);
  37259.       var e,
  37260.       t,
  37261.       n,
  37262.       a = vk(r);
  37263.       function r() {
  37264.         return function (e, t) {
  37265.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37266.         }(this, r),
  37267.         a.apply(this, arguments)
  37268.       }
  37269.       return e = r,
  37270.       (t = [
  37271.         {
  37272.           key: 'render',
  37273.           value: function () {
  37274.             var e = this.props.selection.type === ft.global ? C.a.createElement('div', {
  37275.               className: 'start__icon -larger icon-graph'
  37276.             }) : this.props.isLoading ? C.a.createElement('div', {
  37277.               className: 'start-stats__loading-wrapper'
  37278.             }, C.a.createElement('div', {
  37279.               className: 'spinner'
  37280.             })) : C.a.createElement('div', null, C.a.createElement('div', {
  37281.               className: 'start-stats__metric'
  37282.             }, (this.props.data || 0).toLocaleString(void 0, {
  37283.               style: 'percent',
  37284.               minimumFractionDigits: 2
  37285.             })), C.a.createElement('div', {
  37286.               className: 'start-stats__label'
  37287.             }, 'Avg. Overall Response Rate'));
  37288.             return C.a.createElement('div', {
  37289.               className: 'start-stats__block align__item--grow'
  37290.             }, C.a.createElement(Uo, {
  37291.               path: '/polls/insights/',
  37292.               selection: this.props.selection,
  37293.               linkClassName: 'start-stats__content -moderate'
  37294.             }, e, C.a.createElement('button', {
  37295.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  37296.             }, 'View ', this.props.selection.type === ft.global || this.props.selection.type === ft.organization ? 'Poll' : '', ' Insights')))
  37297.           }
  37298.         }
  37299.       ]) && yk(e.prototype, t),
  37300.       n && yk(e, n),
  37301.       r
  37302.     }();
  37303.     Ek(Ru, 'displayName', 'StartPollsResponseRateButton'),
  37304.     Ek(Ru, 'propTypes', {
  37305.       selection: ht.isRequired,
  37306.       data: b.a.number,
  37307.       isLoading: b.a.bool
  37308.     });
  37309.     var Ok = Ru;
  37310.     function Sk(t, e) {
  37311.       var n,
  37312.       a = Object.keys(t);
  37313.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  37314.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  37315.       })), a.push.apply(a, n)),
  37316.       a
  37317.     }
  37318.     function wk(a) {
  37319.       for (var e = 1; e < arguments.length; e++) {
  37320.         var r = null != arguments[e] ? arguments[e] : {
  37321.         };
  37322.         e % 2 ? Sk(Object(r), !0).forEach(function (e) {
  37323.           var t,
  37324.           n;
  37325.           n = r[t = e],
  37326.           t in (e = a) ? Object.defineProperty(e, t, {
  37327.             value: n,
  37328.             enumerable: !0,
  37329.             configurable: !0,
  37330.             writable: !0
  37331.           }) : e[t] = n
  37332.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Sk(Object(r)).forEach(function (e) {
  37333.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  37334.         })
  37335.       }
  37336.       return a
  37337.     }
  37338.     function Pk() {
  37339.       return ct.a.utc().startOf('day')
  37340.     }
  37341.     function kk(e) {
  37342.       return (kk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37343.         return typeof e
  37344.       }
  37345.        : function (e) {
  37346.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37347.       }) (e)
  37348.     }
  37349.     function Nk(e, t) {
  37350.       for (var n = 0; n < t.length; n++) {
  37351.         var a = t[n];
  37352.         a.enumerable = a.enumerable || !1,
  37353.         a.configurable = !0,
  37354.         'value' in a && (a.writable = !0),
  37355.         Object.defineProperty(e, a.key, a)
  37356.       }
  37357.     }
  37358.     function Ck(e, t) {
  37359.       return (Ck = Object.setPrototypeOf || function (e, t) {
  37360.         return e.__proto__ = t,
  37361.         e
  37362.       }) (e, t)
  37363.     }
  37364.     function Rk(n) {
  37365.       var a = function () {
  37366.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37367.         if (Reflect.construct.sham) return !1;
  37368.         if ('function' == typeof Proxy) return !0;
  37369.         try {
  37370.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37371.           ], function () {
  37372.           })),
  37373.           !0
  37374.         } catch (e) {
  37375.           return !1
  37376.         }
  37377.       }();
  37378.       return function () {
  37379.         var e,
  37380.         t = Ak(n);
  37381.         return e = a ? (e = Ak(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  37382.         t = this,
  37383.         !(e = e) || 'object' !== kk(e) && 'function' != typeof e ? xk(t) : e
  37384.       }
  37385.     }
  37386.     function xk(e) {
  37387.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  37388.       return e
  37389.     }
  37390.     function Ak(e) {
  37391.       return (Ak = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  37392.         return e.__proto__ || Object.getPrototypeOf(e)
  37393.       }) (e)
  37394.     }
  37395.     function Dk(e, t, n) {
  37396.       return t in e ? Object.defineProperty(e, t, {
  37397.         value: n,
  37398.         enumerable: !0,
  37399.         configurable: !0,
  37400.         writable: !0
  37401.       }) : e[t] = n,
  37402.       e
  37403.     }
  37404.     Yc = function () {
  37405.       !function (e, t) {
  37406.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  37407.         e.prototype = Object.create(t && t.prototype, {
  37408.           constructor: {
  37409.             value: e,
  37410.             writable: !0,
  37411.             configurable: !0
  37412.           }
  37413.         }),
  37414.         t && Ck(e, t)
  37415.       }(o, A);
  37416.       var e,
  37417.       t,
  37418.       n,
  37419.       r = Rk(o);
  37420.       function o() {
  37421.         var t;
  37422.         !function (e, t) {
  37423.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37424.         }(this, o);
  37425.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  37426.         return Dk(xk(t = r.call.apply(r, [
  37427.           this
  37428.         ].concat(n))), 'orgHasActiveGuarantee', function () {
  37429.           return t.props.selection.organization && t.props.selection.organization.activeGuarantee
  37430.         }),
  37431.         Dk(xk(t), 'getMetric', function () {
  37432.           if (t.orgHasActiveGuarantee()) return ct() (t.props.selection.organization.activeGuarantee.end).utc().diff(ct.a.utc(), 'days');
  37433.           var e = t.props.earnings ? t.props.earnings.reduce(function (e, t) {
  37434.             return e + t.earnings
  37435.           }, 0) : 0;
  37436.           return '$'.concat(e.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'))
  37437.         }),
  37438.         Dk(xk(t), 'getLabel', function () {
  37439.           return t.orgHasActiveGuarantee() ? 'Days Left of Reveal Promotional Period' : 'Revenue this week'
  37440.         }),
  37441.         t
  37442.       }
  37443.       return e = o,
  37444.       (t = [
  37445.         {
  37446.           key: 'componentDidMount',
  37447.           value: function () {
  37448.             this.props.fetchEarningsData()
  37449.           }
  37450.         },
  37451.         {
  37452.           key: 'render',
  37453.           value: function () {
  37454.             var e = '/analytics/revenue/',
  37455.             t = 'start-stats__content -revenue',
  37456.             n = this.props.selection.isRevealVisible ? this.props.selection.type === ft.global ? C.a.createElement('div', {
  37457.               className: 'start__icon -larger icon-revenue'
  37458.             }) : this.props.earnings || this.orgHasActiveGuarantee() ? C.a.createElement('div', null, C.a.createElement('div', {
  37459.               className: 'start-stats__metric'
  37460.             }, this.getMetric()), C.a.createElement('div', {
  37461.               className: 'start-stats__label'
  37462.             }, this.getLabel())) : C.a.createElement('div', {
  37463.               className: 'start-stats__loading-wrapper'
  37464.             }, C.a.createElement('div', {
  37465.               className: 'spinner'
  37466.             })) : (e = 'https://publishers.disqus.com/reveal/', t += ' inactive', C.a.createElement('div', null, C.a.createElement('div', {
  37467.               className: 'start-stats__metric'
  37468.             }, '$0.00'), C.a.createElement('div', {
  37469.               className: 'start-stats__label'
  37470.             }, 'Reveal is not enabled. Monetize your content with Reveal.')));
  37471.             return C.a.createElement('div', {
  37472.               className: 'start-stats__block align__item--grow'
  37473.             }, this.props.selection.isRevealVisible ? C.a.createElement(ri, {
  37474.               path: e,
  37475.               linkClassName: t,
  37476.               selection: this.props.selection
  37477.             }, n, C.a.createElement('button', {
  37478.               className: 'button button-large button-padding-wide button-wide--mobile button-outline'
  37479.             }, 'Analyze Revenue')) : C.a.createElement('a', {
  37480.               href: e,
  37481.               className: t
  37482.             }, n, C.a.createElement('button', {
  37483.               className: 'button button-large button-padding-wide button-wide--mobile button-outline text-gray -border-muted'
  37484.             }, 'Learn More')))
  37485.           }
  37486.         }
  37487.       ]) && Nk(e.prototype, t),
  37488.       n && Nk(e, n),
  37489.       o
  37490.     }();
  37491.     Dk(Yc, 'propTypes', {
  37492.       earnings: b.a.array,
  37493.       selection: ht.isRequired
  37494.     });
  37495.     var jk = Object(u.connect) (function (e) {
  37496.       return {
  37497.         earnings: e.earnings.earnings,
  37498.         selection: e.selection
  37499.       }
  37500.     }, {
  37501.       fetchEarningsData: function () {
  37502.         return function (t, e) {
  37503.           var n = e().selection;
  37504.           if (n && n.isRevealVisible && n.type !== ft.global && (n.type !== ft.organization || !n.organization.activeGuarantee)) {
  37505.             var a,
  37506.             e = {
  37507.               start: ct() (Pk()).subtract(1, 'week'),
  37508.               end: Pk()
  37509.             };
  37510.             return n.type === ft.organization ? (e.organization = n.organization.id, a = 'organizationRevealStats') : n.type === ft.forum && (e.forum = n.forum.shortname, a = 'revealStats'),
  37511.             io.a.call('discovery/reports/'.concat(a), {
  37512.               data: e
  37513.             }).done(function (e) {
  37514.               return t(wk({
  37515.                 type: Y.onFetch
  37516.               }, e.response))
  37517.             })
  37518.           }
  37519.         }
  37520.       }
  37521.     }) (Yc);
  37522.     function Tk(e) {
  37523.       return (Tk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37524.         return typeof e
  37525.       }
  37526.        : function (e) {
  37527.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37528.       }) (e)
  37529.     }
  37530.     function Ik(e, t) {
  37531.       for (var n = 0; n < t.length; n++) {
  37532.         var a = t[n];
  37533.         a.enumerable = a.enumerable || !1,
  37534.         a.configurable = !0,
  37535.         'value' in a && (a.writable = !0),
  37536.         Object.defineProperty(e, a.key, a)
  37537.       }
  37538.     }
  37539.     function qk(e, t) {
  37540.       return (qk = Object.setPrototypeOf || function (e, t) {
  37541.         return e.__proto__ = t,
  37542.         e
  37543.       }) (e, t)
  37544.     }
  37545.     function Fk(n) {
  37546.       var a = function () {
  37547.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37548.         if (Reflect.construct.sham) return !1;
  37549.         if ('function' == typeof Proxy) return !0;
  37550.         try {
  37551.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37552.           ], function () {
  37553.           })),
  37554.           !0
  37555.         } catch (e) {
  37556.           return !1
  37557.         }
  37558.       }();
  37559.       return function () {
  37560.         var e,
  37561.         t = Lk(n);
  37562.         return e = a ? (e = Lk(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  37563.         t = this,
  37564.         !(e = e) || 'object' !== Tk(e) && 'function' != typeof e ? function (e) {
  37565.           if (void 0 !== e) return e;
  37566.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  37567.         }(t) : e
  37568.       }
  37569.     }
  37570.     function Lk(e) {
  37571.       return (Lk = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  37572.         return e.__proto__ || Object.getPrototypeOf(e)
  37573.       }) (e)
  37574.     }
  37575.     function Uk(e, t, n) {
  37576.       return t in e ? Object.defineProperty(e, t, {
  37577.         value: n,
  37578.         enumerable: !0,
  37579.         configurable: !0,
  37580.         writable: !0
  37581.       }) : e[t] = n,
  37582.       e
  37583.     }
  37584.     sl = function () {
  37585.       !function (e, t) {
  37586.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  37587.         e.prototype = Object.create(t && t.prototype, {
  37588.           constructor: {
  37589.             value: e,
  37590.             writable: !0,
  37591.             configurable: !0
  37592.           }
  37593.         }),
  37594.         t && qk(e, t)
  37595.       }(r, A);
  37596.       var e,
  37597.       t,
  37598.       n,
  37599.       a = Fk(r);
  37600.       function r() {
  37601.         return function (e, t) {
  37602.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37603.         }(this, r),
  37604.         a.apply(this, arguments)
  37605.       }
  37606.       return e = r,
  37607.       (t = [
  37608.         {
  37609.           key: 'render',
  37610.           value: function () {
  37611.             return C.a.createElement('div', {
  37612.               className: 'resubscribe content__wrap align align--column align--middle align--center'
  37613.             }, C.a.createElement('img', {
  37614.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/astronauts.svg',
  37615.               className: 'astronauts'
  37616.             }), C.a.createElement('div', {
  37617.               className: 'resubscribe'
  37618.             }, 'Don\'t miss out — re-subscribe now to regain full access to Polls and continue engaging your audiences.'), this.props.organization ? C.a.createElement(Us, {
  37619.               path: '/settings/subscription/',
  37620.               orgId: this.props.organization.id,
  37621.               orgSlug: this.props.organization.slug,
  37622.               linkClassName: 'button button-fill--brand button-padding-wider text-medium'
  37623.             }, 'Re-Subscribe') : C.a.createElement(v.Link, {
  37624.               to: '/settings/subscription',
  37625.               className: 'button button-fill--brand button-padding-wider text-medium'
  37626.             }, 'Re-Subscribe'))
  37627.           }
  37628.         }
  37629.       ]) && Ik(e.prototype, t),
  37630.       n && Ik(e, n),
  37631.       r
  37632.     }();
  37633.     Uk(sl, 'displayName', 'Resubscribe'),
  37634.     Uk(sl, 'propTypes', {
  37635.       organization: b.a.shape({
  37636.         id: b.a.number.isRequired,
  37637.         slug: b.a.string.isRequired
  37638.       })
  37639.     });
  37640.     var Mk = sl;
  37641.     function Bk(e) {
  37642.       return (Bk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37643.         return typeof e
  37644.       }
  37645.        : function (e) {
  37646.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37647.       }) (e)
  37648.     }
  37649.     function zk(e, t) {
  37650.       for (var n = 0; n < t.length; n++) {
  37651.         var a = t[n];
  37652.         a.enumerable = a.enumerable || !1,
  37653.         a.configurable = !0,
  37654.         'value' in a && (a.writable = !0),
  37655.         Object.defineProperty(e, a.key, a)
  37656.       }
  37657.     }
  37658.     function Hk(e, t) {
  37659.       return (Hk = Object.setPrototypeOf || function (e, t) {
  37660.         return e.__proto__ = t,
  37661.         e
  37662.       }) (e, t)
  37663.     }
  37664.     function Gk(n) {
  37665.       var a = function () {
  37666.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37667.         if (Reflect.construct.sham) return !1;
  37668.         if ('function' == typeof Proxy) return !0;
  37669.         try {
  37670.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37671.           ], function () {
  37672.           })),
  37673.           !0
  37674.         } catch (e) {
  37675.           return !1
  37676.         }
  37677.       }();
  37678.       return function () {
  37679.         var e,
  37680.         t = Wk(n);
  37681.         return e = a ? (e = Wk(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  37682.         t = this,
  37683.         !(e = e) || 'object' !== Bk(e) && 'function' != typeof e ? Vk(t) : e
  37684.       }
  37685.     }
  37686.     function Vk(e) {
  37687.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  37688.       return e
  37689.     }
  37690.     function Wk(e) {
  37691.       return (Wk = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  37692.         return e.__proto__ || Object.getPrototypeOf(e)
  37693.       }) (e)
  37694.     }
  37695.     function Yk(e, t, n) {
  37696.       return t in e ? Object.defineProperty(e, t, {
  37697.         value: n,
  37698.         enumerable: !0,
  37699.         configurable: !0,
  37700.         writable: !0
  37701.       }) : e[t] = n,
  37702.       e
  37703.     }
  37704.     Ls = {
  37705.       zone: 'welcome'
  37706.     },
  37707.     i = function () {
  37708.       !function (e, t) {
  37709.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  37710.         e.prototype = Object.create(t && t.prototype, {
  37711.           constructor: {
  37712.             value: e,
  37713.             writable: !0,
  37714.             configurable: !0
  37715.           }
  37716.         }),
  37717.         t && Hk(e, t)
  37718.       }(o, A);
  37719.       var e,
  37720.       t,
  37721.       n,
  37722.       r = Gk(o);
  37723.       function o() {
  37724.         var t;
  37725.         !function (e, t) {
  37726.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  37727.         }(this, o);
  37728.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  37729.         return Yk(Vk(t = r.call.apply(r, [
  37730.           this
  37731.         ].concat(n))), 'state', {
  37732.           showVerifiedAlert: !!fE() ().email_verified
  37733.         }),
  37734.         Yk(Vk(t), 'handleDismissVerification', function () {
  37735.           t.setState({
  37736.             showVerifiedAlert: !1
  37737.           })
  37738.         }),
  37739.         Yk(Vk(t), 'handleClickEvent', function (e) {
  37740.           t.props.emitTrackingEvent({
  37741.             verb: 'click',
  37742.             object_type: 'section',
  37743.             object_id: e
  37744.           })
  37745.         }),
  37746.         t
  37747.       }
  37748.       return e = o,
  37749.       (t = [
  37750.         {
  37751.           key: 'componentDidMount',
  37752.           value: function () {
  37753.             yo.a.isFeatureActive('polls_pub_admin') && (this.props.selection.type === ft.forum && this.props.fetchPollForumStats(), this.props.selection.type === ft.organization && this.props.fetchPollOrgStats())
  37754.           }
  37755.         },
  37756.         {
  37757.           key: 'render',
  37758.           value: function () {
  37759.             var e,
  37760.             t,
  37761.             n,
  37762.             a = this;
  37763.             this.props.selection.organization ? (r = this.props.selection.organization.pollsActivationDate, t = Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus), n = !this.props.selection.organization.pollsOnly) : window._v5Config && window._v5Config.organizations && (t = r = (e = Object.values(window._v5Config.organizations)).some(function (e) {
  37764.               return e.pollsActivationDate
  37765.             }), n = e.some(function (e) {
  37766.               return !e.pollsOnly
  37767.             }));
  37768.             var r = r && !t && !n;
  37769.             return C.a.createElement('div', {
  37770.               className: 'admin-layout admin-home'
  37771.             }, C.a.createElement('div', {
  37772.               className: 'layout section-contained'
  37773.             }, C.a.createElement('div', {
  37774.               className: 'layout__content'
  37775.             }, this.state.showVerifiedAlert ? C.a.createElement(Ki, {
  37776.               alertType: 'success',
  37777.               message: C.a.createElement('strong', null, 'Your email has been verified successfully!'),
  37778.               onRequestClose: this.handleDismissVerification
  37779.             }) : null, C.a.createElement('div', {
  37780.               className: 'box clearfix'
  37781.             }, C.a.createElement('div', {
  37782.               className: 'text-gray-darker align-min-tablet align--between spacing-bottom'
  37783.             }, C.a.createElement('div', {
  37784.               className: 'spacing-narrow start-welcome__intro'
  37785.             }, C.a.createElement(o.Intro, {
  37786.               selection: this.props.selection,
  37787.               forums: this.props.forums,
  37788.               user: this.props.user
  37789.             })), this.props.selection.isSettingsVisible ? C.a.createElement('div', {
  37790.               className: 'spacing-narrow start-welcome__link'
  37791.             }, C.a.createElement(Uo, {
  37792.               path: '/settings/general/',
  37793.               selection: this.props.selection
  37794.             }, 'Edit Settings')) : null), !yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  37795.               className: 'start-stats__wrapper'
  37796.             }, C.a.createElement(lk, {
  37797.               selection: this.props.selection
  37798.             }), C.a.createElement(xP, {
  37799.               selection: this.props.selection
  37800.             }), this.props.selection.isRevealVisible ? C.a.createElement(jk, {
  37801.               selection: this.props.selection,
  37802.               forums: this.props.forums
  37803.             }) : null), C.a.createElement('div', {
  37804.               className: 'start-help'
  37805.             }, C.a.createElement('div', {
  37806.               className: 'start-help__block'
  37807.             }, C.a.createElement(v.Link, {
  37808.               to: '/install/',
  37809.               onClick: function () {
  37810.                 return a.handleClickEvent('platform_list')
  37811.               }
  37812.             }, C.a.createElement('div', {
  37813.               className: 'start__icon -large icon icon-install'
  37814.             }), 'Installing Disqus', C.a.createElement('span', {
  37815.               className: 'start__icon -right-bracket icon-right-bracket'
  37816.             }))), C.a.createElement(o.SecondaryButton, {
  37817.               id: 'disqus',
  37818.               url: 'https://about.disqus.com/disqus-101',
  37819.               label: 'Disqus 101'
  37820.             }), C.a.createElement(o.SecondaryButton, {
  37821.               id: 'flag-tilted',
  37822.               url: 'https://help.disqus.com/customer/portal/articles/466238',
  37823.               label: 'Moderating your community'
  37824.             }), C.a.createElement(o.SecondaryButton, {
  37825.               id: 'conversation',
  37826.               url: Pn.contactSupport,
  37827.               label: 'Need Help?'
  37828.             }))), yo.a.isFeatureActive('polls_pub_admin') && n && C.a.createElement('div', {
  37829.               className: 'start-stats__wrapper'
  37830.             }, C.a.createElement(lk, {
  37831.               selection: this.props.selection
  37832.             }), C.a.createElement(xP, {
  37833.               selection: this.props.selection
  37834.             }), this.props.selection.isRevealVisible ? C.a.createElement(jk, {
  37835.               selection: this.props.selection,
  37836.               forums: this.props.forums
  37837.             }) : null), yo.a.isFeatureActive('polls_pub_admin') && t && C.a.createElement('div', {
  37838.               className: 'start-stats__wrapper'
  37839.             }, C.a.createElement(OP, {
  37840.               data: this.props.pollStats && this.props.pollStats.activePolls,
  37841.               selection: this.props.selection,
  37842.               isLoading: this.props.pollStatsIsFetching
  37843.             }), C.a.createElement(hk, {
  37844.               data: this.props.pollStats && this.props.pollStats.respondents,
  37845.               selection: this.props.selection,
  37846.               isLoading: this.props.pollStatsIsFetching
  37847.             }), C.a.createElement(Ok, {
  37848.               data: this.props.pollStats && this.props.pollStats.responseRate,
  37849.               selection: this.props.selection,
  37850.               isLoading: this.props.pollStatsIsFetching
  37851.             }), this.props.selection.isRevealVisible && !n ? C.a.createElement(jk, {
  37852.               selection: this.props.selection,
  37853.               forums: this.props.forums
  37854.             }) : null), yo.a.isFeatureActive('polls_pub_admin') && r && C.a.createElement(Mk, {
  37855.               organization: this.props.selection.organization
  37856.             })))))
  37857.           }
  37858.         }
  37859.       ]) && zk(e.prototype, t),
  37860.       n && zk(e, n),
  37861.       o
  37862.     }();
  37863.     Yk(i, 'propTypes', {
  37864.       forums: b.a.object.isRequired,
  37865.       selection: ht.isRequired,
  37866.       user: b.a.shape({
  37867.         name: b.a.string
  37868.       }),
  37869.       emitTrackingEvent: b.a.func.isRequired,
  37870.       emitDefaultViewEvent: b.a.func.isRequired,
  37871.       pollStats: b.a.shape({
  37872.         activePolls: b.a.number,
  37873.         respondents: b.a.number,
  37874.         responseRate: b.a.number
  37875.       }).isRequired,
  37876.       fetchPollForumStats: b.a.func.isRequired,
  37877.       fetchPollOrgStats: b.a.func.isRequired
  37878.     }),
  37879.     i.Intro = function (e) {
  37880.       var t = e.selection,
  37881.       t = t.type === ft.organization ? ''.concat(t.organization.name || 'your organization', '.') : t.type === ft.forum ? ''.concat(t.forum.name || t.forum.shortname, '.') : C.a.createElement('span', null, 'your ', Object.keys(e.forums).length, ' sites. ', C.a.createElement(bO, {
  37882.         path: '/'
  37883.       }, 'Select a specific site.'));
  37884.       return C.a.createElement('div', null, C.a.createElement('strong', null, 'Hey', e.user ? ' '.concat(e.user.name) : null, ', check out what\'s been happening on ', t))
  37885.     },
  37886.     i.Intro.displayName = 'StartIntro',
  37887.     i.Intro.propTypes = {
  37888.       forums: b.a.object.isRequired,
  37889.       selection: ht.isRequired,
  37890.       user: b.a.shape({
  37891.         name: b.a.string
  37892.       })
  37893.     },
  37894.     i.SecondaryButton = function (e) {
  37895.       return C.a.createElement('div', {
  37896.         className: 'start-help__block'
  37897.       }, C.a.createElement('a', {
  37898.         href: e.url
  37899.       }, C.a.createElement('div', {
  37900.         className: 'start__icon -large icon icon-'.concat(e.id)
  37901.       }), e.label, C.a.createElement('span', {
  37902.         className: 'start__icon -right-bracket icon-right-bracket'
  37903.       })))
  37904.     },
  37905.     i.SecondaryButton.displayName = 'StartSecondaryButton',
  37906.     i.SecondaryButton.propTypes = {
  37907.       url: b.a.string.isRequired,
  37908.       id: b.a.string.isRequired,
  37909.       label: b.a.string.isRequired
  37910.     };
  37911.     Mo = Object(u.connect) (function (e) {
  37912.       var t = e.pollStats;
  37913.       return {
  37914.         selection: e.selection,
  37915.         pollStats: t.pollStats,
  37916.         pollStatsIsFetching: t.isFetching,
  37917.         subscription: e.subscription
  37918.       }
  37919.     }, {
  37920.       emitTrackingEvent: Xo(Ls),
  37921.       emitDefaultViewEvent: ei(Ls),
  37922.       fetchPollForumStats: function () {
  37923.         return function (t, e) {
  37924.           e = e().selection;
  37925.           return t({
  37926.             type: pe.isFetching
  37927.           }),
  37928.           io.a.call('polls/overviewForum', {
  37929.             data: {
  37930.               forum: e.forum.shortname
  37931.             }
  37932.           }).done(function (e) {
  37933.             t({
  37934.               type: pe.onFetch,
  37935.               response: e.response
  37936.             })
  37937.           })
  37938.         }
  37939.       },
  37940.       fetchPollOrgStats: function () {
  37941.         return function (t, e) {
  37942.           e = e().selection;
  37943.           return t({
  37944.             type: pe.isFetching
  37945.           }),
  37946.           io.a.call('polls/overviewOrg', {
  37947.             data: {
  37948.               organization: e.organization.id
  37949.             }
  37950.           }).done(function (e) {
  37951.             t({
  37952.               type: pe.onFetch,
  37953.               response: e.response
  37954.             })
  37955.           })
  37956.         }
  37957.       }
  37958.     }) (Ni.a.attachDrivers(i, [
  37959.       rc
  37960.     ]));
  37961.     function Qk(e) {
  37962.       return (Qk = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  37963.         return typeof e
  37964.       }
  37965.        : function (e) {
  37966.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  37967.       }) (e)
  37968.     }
  37969.     function Kk(e, t) {
  37970.       for (var n = 0; n < t.length; n++) {
  37971.         var a = t[n];
  37972.         a.enumerable = a.enumerable || !1,
  37973.         a.configurable = !0,
  37974.         'value' in a && (a.writable = !0),
  37975.         Object.defineProperty(e, a.key, a)
  37976.       }
  37977.     }
  37978.     function Jk(e, t) {
  37979.       return (Jk = Object.setPrototypeOf || function (e, t) {
  37980.         return e.__proto__ = t,
  37981.         e
  37982.       }) (e, t)
  37983.     }
  37984.     function $k(n) {
  37985.       var a = function () {
  37986.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  37987.         if (Reflect.construct.sham) return !1;
  37988.         if ('function' == typeof Proxy) return !0;
  37989.         try {
  37990.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  37991.           ], function () {
  37992.           })),
  37993.           !0
  37994.         } catch (e) {
  37995.           return !1
  37996.         }
  37997.       }();
  37998.       return function () {
  37999.         var e,
  38000.         t = Xk(n);
  38001.         return e = a ? (e = Xk(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  38002.         t = this,
  38003.         !(e = e) || 'object' !== Qk(e) && 'function' != typeof e ? Zk(t) : e
  38004.       }
  38005.     }
  38006.     function Zk(e) {
  38007.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  38008.       return e
  38009.     }
  38010.     function Xk(e) {
  38011.       return (Xk = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  38012.         return e.__proto__ || Object.getPrototypeOf(e)
  38013.       }) (e)
  38014.     }
  38015.     function eN(e, t, n) {
  38016.       return t in e ? Object.defineProperty(e, t, {
  38017.         value: n,
  38018.         enumerable: !0,
  38019.         configurable: !0,
  38020.         writable: !0
  38021.       }) : e[t] = n,
  38022.       e
  38023.     }
  38024.     yl = function () {
  38025.       !function (e, t) {
  38026.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  38027.         e.prototype = Object.create(t && t.prototype, {
  38028.           constructor: {
  38029.             value: e,
  38030.             writable: !0,
  38031.             configurable: !0
  38032.           }
  38033.         }),
  38034.         t && Jk(e, t)
  38035.       }(o, A);
  38036.       var e,
  38037.       t,
  38038.       n,
  38039.       r = $k(o);
  38040.       function o() {
  38041.         var e;
  38042.         !function (e, t) {
  38043.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  38044.         }(this, o);
  38045.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  38046.         return eN(Zk(e = r.call.apply(r, [
  38047.           this
  38048.         ].concat(n))), 'handleDismiss', function () {
  38049.           Is.a.set('engageFeaturedMessage', !0),
  38050.           e.setState({
  38051.             engageFeaturedMessage: !0
  38052.           })
  38053.         }),
  38054.         e
  38055.       }
  38056.       return e = o,
  38057.       (t = [
  38058.         {
  38059.           key: 'render',
  38060.           value: function () {
  38061.             return Is.a.get('engageFeaturedMessage') ? null : C.a.createElement('div', {
  38062.               className: 'content__wrap padding-small text-center'
  38063.             }, C.a.createElement('img', {
  38064.               className: 'img-responsive',
  38065.               width: '120',
  38066.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/logos/logo-engage-black.png'
  38067.             }), C.a.createElement('p', {
  38068.               className: 'text-large spacing-bottom'
  38069.             }, C.a.createElement('strong', null, 'Commenting platform for publishers')), C.a.createElement('p', {
  38070.               className: 'text-medium spacing-narrow'
  38071.             }, 'As you start to build a community, you may have questions on how to moderate or how to get started.'), C.a.createElement('a', {
  38072.               href: 'https://disqus.com/features/',
  38073.               className: 'button button-fill--brand text-medium spacing-narrow spacing-right'
  38074.             }, 'Learn More'), C.a.createElement('button', {
  38075.               className: 'button button-fill--brand text-medium spacing-narrow spacing-right',
  38076.               onClick: this.handleDismiss
  38077.             }, 'Dismiss'))
  38078.           }
  38079.         }
  38080.       ]) && Kk(e.prototype, t),
  38081.       n && Kk(e, n),
  38082.       o
  38083.     }();
  38084.     eN(yl, 'displayName', 'EngageFeaturedMessage');
  38085.     h = yl;
  38086.     function tN(e) {
  38087.       return (tN = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  38088.         return typeof e
  38089.       }
  38090.        : function (e) {
  38091.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  38092.       }) (e)
  38093.     }
  38094.     function nN(e, t) {
  38095.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  38096.     }
  38097.     function aN(e, t) {
  38098.       for (var n = 0; n < t.length; n++) {
  38099.         var a = t[n];
  38100.         a.enumerable = a.enumerable || !1,
  38101.         a.configurable = !0,
  38102.         'value' in a && (a.writable = !0),
  38103.         Object.defineProperty(e, a.key, a)
  38104.       }
  38105.     }
  38106.     function rN(e, t, n) {
  38107.       return t && aN(e.prototype, t),
  38108.       n && aN(e, n),
  38109.       e
  38110.     }
  38111.     function oN(e, t) {
  38112.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  38113.       e.prototype = Object.create(t && t.prototype, {
  38114.         constructor: {
  38115.           value: e,
  38116.           writable: !0,
  38117.           configurable: !0
  38118.         }
  38119.       }),
  38120.       t && iN(e, t)
  38121.     }
  38122.     function iN(e, t) {
  38123.       return (iN = Object.setPrototypeOf || function (e, t) {
  38124.         return e.__proto__ = t,
  38125.         e
  38126.       }) (e, t)
  38127.     }
  38128.     function sN(n) {
  38129.       var a = function () {
  38130.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  38131.         if (Reflect.construct.sham) return !1;
  38132.         if ('function' == typeof Proxy) return !0;
  38133.         try {
  38134.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  38135.           ], function () {
  38136.           })),
  38137.           !0
  38138.         } catch (e) {
  38139.           return !1
  38140.         }
  38141.       }();
  38142.       return function () {
  38143.         var e,
  38144.         t = cN(n);
  38145.         return e = a ? (e = cN(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  38146.         t = this,
  38147.         !(e = e) || 'object' !== tN(e) && 'function' != typeof e ? lN(t) : e
  38148.       }
  38149.     }
  38150.     function lN(e) {
  38151.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  38152.       return e
  38153.     }
  38154.     function cN(e) {
  38155.       return (cN = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  38156.         return e.__proto__ || Object.getPrototypeOf(e)
  38157.       }) (e)
  38158.     }
  38159.     function uN(e, t, n) {
  38160.       return t in e ? Object.defineProperty(e, t, {
  38161.         value: n,
  38162.         enumerable: !0,
  38163.         configurable: !0,
  38164.         writable: !0
  38165.       }) : e[t] = n,
  38166.       e
  38167.     }
  38168.     var pN = Object(u.connect) (null, {
  38169.       emitTrackingEvent: Xo({
  38170.         zone: 'moderation_panel',
  38171.         area: 'suggested_action_sidebar',
  38172.         section: 'welcome',
  38173.         product: 'publisher_admin'
  38174.       })
  38175.     }) (Ni.a.attachDrivers((Yc = Ru = function () {
  38176.       oN(o, A);
  38177.       var r = sN(o);
  38178.       function o() {
  38179.         var t;
  38180.         nN(this, o);
  38181.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  38182.         return uN(lN(t = r.call.apply(r, [
  38183.           this
  38184.         ].concat(n))), 'trackButtonClick', function (e) {
  38185.           t.props.emitTrackingEvent({
  38186.             verb: 'click',
  38187.             object_type: 'button',
  38188.             object_id: e
  38189.           })
  38190.         }),
  38191.         t
  38192.       }
  38193.       return rN(o, [
  38194.         {
  38195.           key: 'render',
  38196.           value: function () {
  38197.             return this.props.selection.organization && this.props.selection.organization.pollsOnly ? null : C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  38198.               className: 'text-larger text-semibold'
  38199.             }, 'Suggested actions are new to the moderation panel! Here are the basics:'), C.a.createElement('div', {
  38200.               className: 'suggested-actions__module'
  38201.             }, C.a.createElement('div', {
  38202.               className: 'spacing-narrow spacing-bottom'
  38203.             }, C.a.createElement('ul', {
  38204.               className: 'suggested-actions__list'
  38205.             }, C.a.createElement('li', {
  38206.               className: 'suggested-actions__item'
  38207.             }, C.a.createElement('span', {
  38208.               className: 'icon-lightning'
  38209.             }), C.a.createElement('span', {
  38210.               className: 'text'
  38211.             }, 'Suggested actions were made to help you moderate faster and more consistently.')), C.a.createElement('li', {
  38212.               className: 'suggested-actions__item'
  38213.             }, C.a.createElement('span', {
  38214.               className: 'icon-lightning'
  38215.             }), C.a.createElement('span', {
  38216.               className: 'text'
  38217.             }, 'If you take a different action than the suggestion, we\'ll use that information to improve our algorithm.')), C.a.createElement('li', {
  38218.               className: 'suggested-actions__item'
  38219.             }, C.a.createElement('span', {
  38220.               className: 'icon-lightning'
  38221.             }), C.a.createElement('span', {
  38222.               className: 'text'
  38223.             }, 'You can select multiple comments and accept all the suggested actions at once.')))), C.a.createElement('a', {
  38224.               href: 'https://www.surveymonkey.com/r/8LWBQS3'.concat(this.props.user ? '?username='.concat(this.props.user.username) : ''),
  38225.               className: 'button button-large button-fill--white text-medium spacing-narrow spacing-right',
  38226.               target: '_blank',
  38227.               rel: 'noopener noreferrer',
  38228.               onClick: this.trackButtonClick.bind(null, 'leave_us_feedback')
  38229.             }, 'Leave us Feedback'), C.a.createElement('a', {
  38230.               href: Pn.suggestedActions,
  38231.               className: 'button button-large button-fill--brand text-medium spacing-narrow spacing-right',
  38232.               target: '_blank',
  38233.               rel: 'noopener noreferrer',
  38234.               onClick: this.trackButtonClick.bind(null, 'learn_more')
  38235.             }, 'Learn more'), C.a.createElement('button', {
  38236.               className: 'button button-large button-fill--brand text-medium spacing-narrow',
  38237.               target: '_blank',
  38238.               rel: 'noopener noreferrer',
  38239.               onClick: this.props.handleDismiss
  38240.             }, 'Dismiss')))
  38241.           }
  38242.         }
  38243.       ]),
  38244.       o
  38245.     }(), uN(Ru, 'propTypes', {
  38246.       emitTrackingEvent: b.a.func.isRequired,
  38247.       user: b.a.shape({
  38248.         username: b.a.string
  38249.       }),
  38250.       handleDismiss: b.a.func.isRequired
  38251.     }), Yc), [
  38252.       rc
  38253.     ])),
  38254.     dN = Object(u.connect) (null, {
  38255.       emitTrackingEvent: Xo({
  38256.         zone: 'moderation_panel',
  38257.         area: 'moderation_rules_sidebar',
  38258.         section: 'welcome',
  38259.         product: 'publisher_admin'
  38260.       }),
  38261.       addIntercomScript: D,
  38262.       intercomInitWithUser: I,
  38263.       removeIntercomScript: F
  38264.     }) (Ni.a.attachDrivers((Ls = sl = function () {
  38265.       oN(o, A);
  38266.       var r = sN(o);
  38267.       function o() {
  38268.         var t;
  38269.         nN(this, o);
  38270.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  38271.         return uN(lN(t = r.call.apply(r, [
  38272.           this
  38273.         ].concat(n))), 'componentWillMount', function () {
  38274.           t.props.addIntercomScript()
  38275.         }),
  38276.         uN(lN(t), 'componentWillUnmount', function () {
  38277.           t.props.removeIntercomScript()
  38278.         }),
  38279.         uN(lN(t), 'handleIntercomClick', function (e) {
  38280.           t.trackButtonClick(e),
  38281.           t.props.intercomInitWithUser(t.props.user)
  38282.         }),
  38283.         uN(lN(t), 'trackButtonClick', function (e) {
  38284.           t.props.emitTrackingEvent({
  38285.             verb: 'click',
  38286.             object_type: 'button',
  38287.             object_id: e
  38288.           })
  38289.         }),
  38290.         t
  38291.       }
  38292.       return rN(o, [
  38293.         {
  38294.           key: 'render',
  38295.           value: function () {
  38296.             return this.props.selection.organization && this.props.selection.organization.pollsOnly ? null : C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  38297.               className: 'text-larger text-semibold'
  38298.             }, 'Moderation rules have been added to the moderation panel!'), C.a.createElement('div', {
  38299.               className: 'suggested-actions__module'
  38300.             }, C.a.createElement('div', {
  38301.               className: 'spacing-narrow spacing-bottom'
  38302.             }, C.a.createElement('ul', {
  38303.               className: 'suggested-actions__list'
  38304.             }, C.a.createElement('li', {
  38305.               className: 'moderation-rules__item'
  38306.             }, C.a.createElement('span', {
  38307.               className: 'icon-lightning'
  38308.             }), C.a.createElement('span', {
  38309.               className: 'text'
  38310.             }, 'Moderation rules were made to help you moderate more efficiently while maintaining your moderation preferences.')), C.a.createElement('li', {
  38311.               className: 'moderation-rules__item'
  38312.             }, C.a.createElement('span', {
  38313.               className: 'icon-lightning'
  38314.             }), C.a.createElement('span', {
  38315.               className: 'text'
  38316.             }, 'Comments affected by a moderation rule will be marked with a reason like:', C.a.createElement('br', null), C.a.createElement('span', {
  38317.               className: 'icon-pending'
  38318.             }), C.a.createElement('strong', null, ' In Pending'), ' ', 'because ', C.a.createElement('strong', null, 'Toxic'))), C.a.createElement('li', {
  38319.               className: 'moderation-rules__item'
  38320.             }, C.a.createElement('span', {
  38321.               className: 'icon-lightning'
  38322.             }), C.a.createElement('span', {
  38323.               className: 'text'
  38324.             }, 'This feature is optional and you can choose not to use it.')))), C.a.createElement('button', {
  38325.               className: 'button button-large button-fill--white text-medium spacing-narrow spacing-right',
  38326.               target: '_blank',
  38327.               rel: 'noopener noreferrer',
  38328.               onClick: this.handleIntercomClick.bind(null, 'talk_to_support')
  38329.             }, 'Talk to Support'), C.a.createElement('a', {
  38330.               href: Pn.moderationRules,
  38331.               className: 'button button-large button-fill--brand text-medium spacing-narrow spacing-right',
  38332.               target: '_blank',
  38333.               rel: 'noopener noreferrer',
  38334.               onClick: this.trackButtonClick.bind(null, 'learn_more')
  38335.             }, 'Learn more'), C.a.createElement('button', {
  38336.               className: 'button button-large button-fill--brand text-medium spacing-narrow',
  38337.               target: '_blank',
  38338.               rel: 'noopener noreferrer',
  38339.               onClick: this.props.handleDismiss
  38340.             }, 'Dismiss')))
  38341.           }
  38342.         }
  38343.       ]),
  38344.       o
  38345.     }(), uN(sl, 'propTypes', {
  38346.       emitTrackingEvent: b.a.func.isRequired,
  38347.       addIntercomScript: b.a.func.isRequired,
  38348.       intercomInitWithUser: b.a.func.isRequired,
  38349.       removeIntercomScript: b.a.func.isRequired,
  38350.       user: b.a.shape({
  38351.         id: b.a.string.isRequired,
  38352.         username: b.a.string.isRequired,
  38353.         email: b.a.string.isRequired,
  38354.         name: b.a.string.isRequired
  38355.       }),
  38356.       handleDismiss: b.a.func.isRequired
  38357.     }), Ls), [
  38358.       rc
  38359.     ])),
  38360.     i = function () {
  38361.       oN(o, A);
  38362.       var r = sN(o);
  38363.       function o() {
  38364.         var t;
  38365.         nN(this, o);
  38366.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  38367.         return uN(lN(t = r.call.apply(r, [
  38368.           this
  38369.         ].concat(n))), 'handleDismiss', function (e) {
  38370.           e && (Is.a.set(e, !0), t.setState(uN({
  38371.           }, e, !0)))
  38372.         }),
  38373.         t
  38374.       }
  38375.       return rN(o, [
  38376.         {
  38377.           key: 'render',
  38378.           value: function () {
  38379.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return null;
  38380.             var e,
  38381.             t = this.props,
  38382.             n = t.selection,
  38383.             t = t.saasFeatures[(n.organization || {
  38384.             }).id] || {
  38385.             };
  38386.             return yo.a.isFeatureActive('moderationRulesMessage', {
  38387.               forum: pt.a.currentForum
  38388.             }) && n.organization && t.isFetched && t.allModRules && !Is.a.get('moderationRulesMessage') ? e = C.a.createElement(dN, {
  38389.               handleDismiss: this.handleDismiss.bind(this, 'moderationRulesMessage')
  38390.             }) : YP && !Is.a.get('suggestedActionsMessage') && (e = C.a.createElement(pN, {
  38391.               handleDismiss: this.handleDismiss.bind(this, 'suggestedActionsMessage')
  38392.             })),
  38393.             C.a.createElement('div', null, e ? C.a.createElement(Ki, {
  38394.               alertType: 'brand-new',
  38395.               topMarginClass: 'spacing-top-none',
  38396.               message: e
  38397.             }) : null, C.a.createElement('p', {
  38398.               className: 'spacing-top-bottom text-small text-gray'
  38399.             }, 'Type ', C.a.createElement('code', null, '?'), ' to see shortcuts'))
  38400.           }
  38401.         }
  38402.       ]),
  38403.       o
  38404.     }();
  38405.     uN(i, 'propTypes', {
  38406.       selection: ht.isRequired,
  38407.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired
  38408.     });
  38409.     var yl = Object(u.connect) (function (e) {
  38410.       return {
  38411.         selection: e.selection,
  38412.         saasFeatures: e.saasFeatures
  38413.       }
  38414.     }) (i),
  38415.     mN = [
  38416.       {
  38417.         module: C.a.createElement(yl, null),
  38418.         routes: [
  38419.           /^\/moderate/,
  38420.           /^\/settings\/rules/
  38421.         ]
  38422.       },
  38423.       {
  38424.         module: C.a.createElement(h, null),
  38425.         routes: [
  38426.           '/discussions/migrate/',
  38427.           '/discussions/export/',
  38428.           /^\/discussions\/import\//
  38429.         ]
  38430.       },
  38431.       {
  38432.         module: null,
  38433.         routes: [
  38434.           '/discussions/',
  38435.           /^\/discussions\/history\//,
  38436.           '/tools/migrate-map/'
  38437.         ]
  38438.       }
  38439.     ],
  38440.     Ru = function (e) {
  38441.       var t = {
  38442.         auth: e.auth,
  38443.         forums: e.forums,
  38444.         location: e.location,
  38445.         organizations: e.organizations,
  38446.         selection: e.selection
  38447.       },
  38448.       n = fo(),
  38449.       a = je.a.find(mN, function (e) {
  38450.         return e.routes.some(function (e) {
  38451.           return e.test ? e.test(n) : e === n
  38452.         })
  38453.       });
  38454.       return C.a.createElement('div', {
  38455.         className: 'section-contained'
  38456.       }, C.a.createElement('div', {
  38457.         className: 'layout layout--stacked-tablet'
  38458.       }, C.a.createElement('div', {
  38459.         className: (a = a && a.module) ? '' : 'layout__main'
  38460.       }, C.a.createElement(Si, {
  38461.         selection: e.selection,
  38462.         pollsOnly: e.selection.organization && e.selection.organization.pollsOnly
  38463.       }), C.a.createElement('div', {
  38464.         className: 'layout__content'
  38465.       }, a || null, C.a.cloneElement(e.children, t)))))
  38466.     };
  38467.     Ru.displayName = 'EngageLayout',
  38468.     Ru.propTypes = {
  38469.       auth: b.a.object.isRequired,
  38470.       children: b.a.node.isRequired,
  38471.       forums: b.a.object.isRequired,
  38472.       location: b.a.object.isRequired,
  38473.       organizations: b.a.object.isRequired,
  38474.       selection: ht.isRequired
  38475.     };
  38476.     Yc = Object(u.connect) (function (e) {
  38477.       return {
  38478.         selection: e.selection
  38479.       }
  38480.     }) (Ru);
  38481.     Yc.supportedRoutes = mN.reduce(function (e, t) {
  38482.       return e.concat(t.routes)
  38483.     }, [
  38484.     ]);
  38485.     var fN = Yc,
  38486.     D = {
  38487.       updateBadgesModal: function (e) {
  38488.         return {
  38489.           type: z.updateModal,
  38490.           isOpen: e.isOpen,
  38491.           forum: e.forum,
  38492.           user: e.author
  38493.         }
  38494.       },
  38495.       awardBadge: function (e, n, a) {
  38496.         return function (t) {
  38497.           t({
  38498.             type: z.awarding
  38499.           }),
  38500.           io.a.call('badges/award', {
  38501.             type: 'POST',
  38502.             data: e,
  38503.             success: function (e) {
  38504.               e = e.response;
  38505.               t({
  38506.                 type: z.onAward,
  38507.                 badge: e
  38508.               }),
  38509.               n(e)
  38510.             },
  38511.             error: function () {
  38512.               var e = 'An error occurred trying to award this badge. Try again.';
  38513.               t({
  38514.                 type: z.onAwardError,
  38515.                 error: e
  38516.               }),
  38517.               a(e)
  38518.             }
  38519.           })
  38520.         }
  38521.       },
  38522.       removeBadge: function (e, n, a) {
  38523.         return function (t) {
  38524.           t({
  38525.             type: z.removing
  38526.           }),
  38527.           io.a.call('badges/remove', {
  38528.             type: 'POST',
  38529.             data: e,
  38530.             success: function (e) {
  38531.               e = e.response;
  38532.               t({
  38533.                 type: z.onRemove,
  38534.                 badge: e
  38535.               }),
  38536.               n(e)
  38537.             },
  38538.             error: function () {
  38539.               var e = 'An error occurred trying to remove this badge. Try again.';
  38540.               t({
  38541.                 type: z.onRemoveError,
  38542.                 error: e
  38543.               }),
  38544.               a(e)
  38545.             }
  38546.           })
  38547.         }
  38548.       }
  38549.     },
  38550.     I = {
  38551.       updateLocalQuery: function (e) {
  38552.         return {
  38553.           type: ne.update,
  38554.           search: e
  38555.         }
  38556.       },
  38557.       changeActive: function (e) {
  38558.         return {
  38559.           type: ne.changeActive,
  38560.           isActive: e
  38561.         }
  38562.       }
  38563.     },
  38564.     F = {
  38565.       fetch: function (r) {
  38566.         return function (t, n) {
  38567.           var a = n();
  38568.           return r.every(function (e) {
  38569.             return !!a.suggestedActions[e]
  38570.           }) ? vo.a.Deferred().resolve({
  38571.             suggestedActions: a.suggestedActions
  38572.           }).promise() : io.a.call('apothecary/suggest', {
  38573.             data: {
  38574.               posts: r
  38575.             }
  38576.           }).done(function (e) {
  38577.             return t({
  38578.               type: ae.onFetch,
  38579.               suggestedActions: e.response,
  38580.               postIds: r
  38581.             }),
  38582.             {
  38583.               suggestedActions: n().suggestedActions
  38584.             }
  38585.           })
  38586.         }
  38587.       }
  38588.     },
  38589.     hN = {
  38590.       normalizeReputation: function (e) {
  38591.         var t = e.toFixed(2),
  38592.         n = {
  38593.           raw: e,
  38594.           rounded: t
  38595.         },
  38596.         e = '';
  38597.         return n.verboseName = {
  38598.           low1: 'Low Rep',
  38599.           low2: 'Low Rep',
  38600.           average: 'Average',
  38601.           high: 'High Rep'
  38602.         }
  38603.         [
  38604.           e = t < 0.25 ? 'low1' : t < 0.8 ? 'low2' : t < 2.9 ? 'average' : 'high'
  38605.         ],
  38606.         n.shortName = {
  38607.           low1: 'Low',
  38608.           low2: 'Low',
  38609.           average: 'Avg',
  38610.           high: 'High'
  38611.         }
  38612.         [
  38613.           e
  38614.         ],
  38615.         n.type = e,
  38616.         n
  38617.       },
  38618.       getUrl: function (e) {
  38619.         var t = e.search,
  38620.         n = e.filters;
  38621.         return ho.getRoute('/moderate/' + e.tab + (1 === n.length ? '/filter/'.concat(n[0]) : '') + (t ? '/search/'.concat(t) : ''))
  38622.       }
  38623.     };
  38624.     function gN(e) {
  38625.       return (gN = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  38626.         return typeof e
  38627.       }
  38628.        : function (e) {
  38629.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  38630.       }) (e)
  38631.     }
  38632.     function yN() {
  38633.       return (yN = Object.assign || function (e) {
  38634.         for (var t = 1; t < arguments.length; t++) {
  38635.           var n,
  38636.           a = arguments[t];
  38637.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  38638.         }
  38639.         return e
  38640.       }).apply(this, arguments)
  38641.     }
  38642.     function bN(t, e) {
  38643.       var n,
  38644.       a = Object.keys(t);
  38645.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  38646.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  38647.       })), a.push.apply(a, n)),
  38648.       a
  38649.     }
  38650.     function vN(t) {
  38651.       for (var e = 1; e < arguments.length; e++) {
  38652.         var n = null != arguments[e] ? arguments[e] : {
  38653.         };
  38654.         e % 2 ? bN(Object(n), !0).forEach(function (e) {
  38655.           PN(t, e, n[e])
  38656.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : bN(Object(n)).forEach(function (e) {
  38657.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  38658.         })
  38659.       }
  38660.       return t
  38661.     }
  38662.     function _N(e, t) {
  38663.       for (var n = 0; n < t.length; n++) {
  38664.         var a = t[n];
  38665.         a.enumerable = a.enumerable || !1,
  38666.         a.configurable = !0,
  38667.         'value' in a && (a.writable = !0),
  38668.         Object.defineProperty(e, a.key, a)
  38669.       }
  38670.     }
  38671.     function EN(e, t) {
  38672.       return (EN = Object.setPrototypeOf || function (e, t) {
  38673.         return e.__proto__ = t,
  38674.         e
  38675.       }) (e, t)
  38676.     }
  38677.     function ON(n) {
  38678.       var a = function () {
  38679.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  38680.         if (Reflect.construct.sham) return !1;
  38681.         if ('function' == typeof Proxy) return !0;
  38682.         try {
  38683.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  38684.           ], function () {
  38685.           })),
  38686.           !0
  38687.         } catch (e) {
  38688.           return !1
  38689.         }
  38690.       }();
  38691.       return function () {
  38692.         var e,
  38693.         t = wN(n);
  38694.         return e = a ? (e = wN(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  38695.         t = this,
  38696.         !(e = e) || 'object' !== gN(e) && 'function' != typeof e ? SN(t) : e
  38697.       }
  38698.     }
  38699.     function SN(e) {
  38700.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  38701.       return e
  38702.     }
  38703.     function wN(e) {
  38704.       return (wN = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  38705.         return e.__proto__ || Object.getPrototypeOf(e)
  38706.       }) (e)
  38707.     }
  38708.     function PN(e, t, n) {
  38709.       return t in e ? Object.defineProperty(e, t, {
  38710.         value: n,
  38711.         enumerable: !0,
  38712.         configurable: !0,
  38713.         writable: !0
  38714.       }) : e[t] = n,
  38715.       e
  38716.     }
  38717.     var kN = {
  38718.       isAnonymous: 1,
  38719.       hasLinks: 2,
  38720.       hasLowRep: 3,
  38721.       hasBadWords: 4,
  38722.       isFlagged: 5,
  38723.       noIssue: 6,
  38724.       isToxic: 7,
  38725.       modifiedByRule: 8,
  38726.       hasMedia: 10,
  38727.       isAtFlagLimit: 11,
  38728.       isNewUserNeedsApproval: 13,
  38729.       isSexual: 14,
  38730.       isHate: 15,
  38731.       isBullying: 16,
  38732.       isViolence: 17,
  38733.       isPromotion: 18
  38734.     },
  38735.     sl = function () {
  38736.       !function (e, t) {
  38737.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  38738.         e.prototype = Object.create(t && t.prototype, {
  38739.           constructor: {
  38740.             value: e,
  38741.             writable: !0,
  38742.             configurable: !0
  38743.           }
  38744.         }),
  38745.         t && EN(e, t)
  38746.       }(r, A);
  38747.       var e,
  38748.       t,
  38749.       n,
  38750.       a = ON(r);
  38751.       function r() {
  38752.         var l;
  38753.         !function (e, t) {
  38754.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  38755.         }(this, r);
  38756.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  38757.         return PN(SN(l = a.call.apply(a, [
  38758.           this
  38759.         ].concat(t))), 'state', {
  38760.           cursor: {
  38761.           },
  38762.           posts: {
  38763.           },
  38764.           message: null,
  38765.           include: null,
  38766.           sortOrder: MP.sortOrder,
  38767.           fetchingAmount: 0,
  38768.           isPerformingAction: !1,
  38769.           filters: l.props.params.filter ? [
  38770.             l.props.params.filter
  38771.           ] : [
  38772.           ],
  38773.           searchQuery: l.props.params.search ? window.decodeURIComponent(l.props.params.search) : '',
  38774.           startDate: MP.startDate,
  38775.           endDate: MP.endDate
  38776.         }),
  38777.         PN(SN(l), 'fetchMore', function (e) {
  38778.           l.state.cursor && !l.state.cursor.hasNext || l.fetchData({
  38779.             cursor: l.state.cursor.next
  38780.           }, e, !0)
  38781.         }),
  38782.         PN(SN(l), 'getFetchData', function (e, t) {
  38783.           t = t || l.props;
  38784.           var n = je.a.extend({
  38785.             attach: [
  38786.               'postModHtml',
  38787.               'postAuthorRep'
  38788.             ],
  38789.             limit: MP.fetchSize,
  38790.             include: l.state.include,
  38791.             order: l.state.sortOrder,
  38792.             related: [
  38793.               'thread',
  38794.               'forum'
  38795.             ],
  38796.             filters: l.state.filters.map(function (e) {
  38797.               return kN[e]
  38798.             })
  38799.           }, e);
  38800.           'worst' === n.order && (n.order = 'desc', n.sortType = 'priority'),
  38801.           l.state.searchQuery && (n.query = window.decodeURIComponent(l.state.searchQuery));
  38802.           e = t.saasFeatures[(t.selection.organization || {
  38803.           }).id] || {
  38804.           };
  38805.           t.selection.organization && e.isFetched && e.allModRules && n.attach.push('postRule'),
  38806.           t.selection.organization && t.selection.forum && e.unapproveNewUsers && yo.a.isFeatureActive('new_user_premoderation', {
  38807.             forum: t.selection.forum.name
  38808.           }) && n.attach.push('postAuthorNewBypass');
  38809.           e = Ve.a.getFromCookie();
  38810.           if (t.selection.type === ft.organization) n.forum = je.a.intersection(t.selection.organization.forums, window._v5Config.moderated_forums);
  38811.            else if (t.selection.type === ft.forum) n.forum = t.selection.forum.shortname;
  38812.            else if (e.staff) n.forum = ':all';
  38813.            else {
  38814.             if (!e.isModerator) return;
  38815.             n.forum = ':moderated'
  38816.           }
  38817.           return l.state.startDate && l.state.endDate && (n.start = l.state.startDate.toISOString(), n.end = l.state.endDate.toISOString()),
  38818.           n
  38819.         }),
  38820.         PN(SN(l), 'fetchData', function (e, t, n, a) {
  38821.           if ((a = a || l.props).selection && l.state.include) {
  38822.             var r = a.saasFeatures[(a.selection.organization || {
  38823.             }).id] || {
  38824.             };
  38825.             if (r.isFetching && !r.isFetched) return l.onSaasFeaturesFetched = l.onSaasFeaturesFetched || [
  38826.             ],
  38827.             void l.onSaasFeaturesFetched.push(l.fetchData.bind(SN(l), e, t, n));
  38828.             var o = l.getFetchData(e, a);
  38829.             o && l.setState({
  38830.               fetchingAmount: l.state.fetchingAmount + 1
  38831.             }, function () {
  38832.               l.apiCall = io.a.call('posts/list', {
  38833.                 cache: !1,
  38834.                 data: o
  38835.               }).done(je.a.partial(l.onFetch, je.a, t, n)).fail(l.onFetchError)
  38836.             })
  38837.           }
  38838.         }),
  38839.         PN(SN(l), 'onFetch', function (e, t, n) {
  38840.           var a,
  38841.           r;
  38842.           null !== e.response && (a = l.state.fetchingAmount - 1, r = je.a.chain(e.response).map(function (e) {
  38843.             return e.forum.badges && e.forum.badges.length && e.author.badges && e.author.badges.length && (e.author.badges = l.getPostBadges(e)),
  38844.             [
  38845.               e.id,
  38846.               e
  38847.             ]
  38848.           }).object().value(), l.fetchFlaggers(r), n && je.a.extend(r, l.state.posts), a <= 0 ? l.setState({
  38849.             fetchingAmount: 0,
  38850.             cursor: e.cursor,
  38851.             posts: r
  38852.           }, t) : l.setState({
  38853.             fetchingAmount: a
  38854.           }))
  38855.         }),
  38856.         PN(SN(l), 'onFetchError', function () {
  38857.           l.setState({
  38858.             fetchingAmount: l.state.fetchingAmount - 1
  38859.           })
  38860.         }),
  38861.         PN(SN(l), 'fetchFlaggers', function (n, e) {
  38862.           var t = Object.keys(n).reduce(function (e, t) {
  38863.             return n[t].numReports && e.push(t),
  38864.             e
  38865.           }, [
  38866.           ]);
  38867.           t.length && io.a.call('posts/listReporters', {
  38868.             data: {
  38869.               posts: t,
  38870.               numberPerPost: e = e || 1
  38871.             }
  38872.           }).done(l.onFetchFlaggers)
  38873.         }),
  38874.         PN(SN(l), 'onFetchFlaggers', function (e) {
  38875.           var n = e.response;
  38876.           l.setState({
  38877.             posts: Object.keys(n).reduce(function (e, t) {
  38878.               return e[t] = vN(vN({
  38879.               }, e[t]), {
  38880.               }, {
  38881.                 flaggers: n[t]
  38882.               }),
  38883.               e
  38884.             }, vN({
  38885.             }, l.state.posts))
  38886.           })
  38887.         }),
  38888.         PN(SN(l), 'updateFetchData', function (t, e) {
  38889.           var n = [
  38890.             'filters',
  38891.             'include',
  38892.             'searchQuery',
  38893.             'sortOrder',
  38894.             'startDate',
  38895.             'endDate'
  38896.           ];
  38897.           je.a.all(n, function (e) {
  38898.             return void 0 === t[e] || je.a.isEqual(t[e], this.state[e])
  38899.           }, SN(l)) ? 'function' == typeof e && e() : l.setState(je.a.chain(t).pick(n).defaults(l.state).value(), je.a.partial(l.fetchData, {
  38900.           }, e))
  38901.         }),
  38902.         PN(SN(l), 'getPostBadges', function (e) {
  38903.           var n = {
  38904.           };
  38905.           return e.forum.badges.forEach(function (e) {
  38906.             n[e.id] = e
  38907.           }),
  38908.           e.author.badges.reduce(function (e, t) {
  38909.             return 'string' == typeof t && e.push(n[t]),
  38910.             e
  38911.           }, [
  38912.           ])
  38913.         }),
  38914.         PN(SN(l), 'performAction', function (e, t, n, a) {
  38915.           e.length && (n = n || je.a.noop, l.setState({
  38916.             isPerformingAction: !0
  38917.           }), io.a.call(BP[t].apiPath, {
  38918.             data: {
  38919.               post: e,
  38920.               attach: [
  38921.                 'postAuthorNewBypass'
  38922.               ],
  38923.               newUserPremodBypass: a && a.newUserPremodBypass
  38924.             },
  38925.             method: 'POST'
  38926.           }).done(je.a.partial(l.onPerformAction, je.a, n)))
  38927.         }),
  38928.         PN(SN(l), 'onPerformAction', function (e, t) {
  38929.           var a = l.state.posts,
  38930.           e = e.response.reduce(function (e, t) {
  38931.             var n = a[t.id];
  38932.             return yN(e, PN({
  38933.             }, t.id, yN(n, t, {
  38934.               thread: n.thread,
  38935.               forum: n.forum
  38936.             })))
  38937.           }, {
  38938.           });
  38939.           l.setState({
  38940.             isPerformingAction: !1,
  38941.             posts: yN(l.state.posts, e)
  38942.           }),
  38943.           t.call(SN(l))
  38944.         }),
  38945.         PN(SN(l), 'getPostParents', function (e) {
  38946.           var t = l.state.posts[e];
  38947.           t && t.parent && io.a.call('posts/getContext', {
  38948.             data: {
  38949.               attach: [
  38950.                 'postModHtml',
  38951.                 'postAuthorRep'
  38952.               ],
  38953.               post: t.parent,
  38954.               depth: 4
  38955.             }
  38956.           }).done(je.a.partial(l.onFetchPostParents, je.a, e))
  38957.         }),
  38958.         PN(SN(l), 'onFetchPostParents', function (e, t) {
  38959.           var n = l.state.posts[t];
  38960.           n && (e = je.a.defaults({
  38961.             parents: je.a.chain(e.response).map(function (e) {
  38962.               return [e.id,
  38963.               je.a.defaults({
  38964.                 forum: n.forum,
  38965.                 thread: n.thread
  38966.               }, e)]
  38967.             }).object().value()
  38968.           }, n), l.setState({
  38969.             posts: je.a.defaults(PN({
  38970.             }, t, e), l.state.posts)
  38971.           }))
  38972.         }),
  38973.         PN(SN(l), 'fetchThreadReactionsEnabled', function (e) {
  38974.           return io.a.call('threadReactions/loadReactions', {
  38975.             data: {
  38976.               thread: e
  38977.             },
  38978.             method: 'GET'
  38979.           }).done(je.a.partial(l.onFetchThreadReactions, je.a, e))
  38980.         }),
  38981.         PN(SN(l), 'onFetchThreadReactions', function (t, e) {
  38982.           l.setState({
  38983.             posts: l.applyPostsWithThreadId(e, function (e) {
  38984.               return je.a.defaults({
  38985.                 thread: je.a.defaults({
  38986.                   reactionsEnabled: !!t.response.reactions.length,
  38987.                   reactionsEligible: t.response.eligible
  38988.                 }, e.thread)
  38989.               }, e)
  38990.             })
  38991.           })
  38992.         }),
  38993.         PN(SN(l), 'toggleReactions', function (e, t) {
  38994.           io.a.call('threadReactions/disableForThread', {
  38995.             data: {
  38996.               thread: e,
  38997.               enable: t ? 1 : 0
  38998.             },
  38999.             method: 'POST'
  39000.           }).done(je.a.partial(l.onToggleReactions, je.a, t))
  39001.         }),
  39002.         PN(SN(l), 'onToggleReactions', function (t, n) {
  39003.           l.setState({
  39004.             posts: l.applyPostsWithThreadId(t.response.id, function (e) {
  39005.               return je.a.defaults({
  39006.                 thread: je.a.defaults(je.a.defaults({
  39007.                   reactionsEnabled: n
  39008.                 }, t.response), e.thread),
  39009.                 forum: je.a.defaults({
  39010.                   settings: je.a.defaults({
  39011.                     threadReactionsEnabled: n
  39012.                   }, e.forum.settings)
  39013.                 }, e.forum)
  39014.               }, e)
  39015.             })
  39016.           })
  39017.         }),
  39018.         PN(SN(l), 'toggleThreadClosed', function (e, t) {
  39019.           l.setState({
  39020.             isTogglingClosed: !0
  39021.           }),
  39022.           io.a.call(t ? 'threads/close' : 'threads/open', {
  39023.             data: {
  39024.               thread: e
  39025.             },
  39026.             method: 'POST'
  39027.           }).done(je.a.partial(l.onToggleThreadClosed, je.a, t))
  39028.         }),
  39029.         PN(SN(l), 'onToggleThreadClosed', function (e, t) {
  39030.           l.setState({
  39031.             isTogglingClosed: !1,
  39032.             posts: l.applyPostsWithThreadId(e.response[0].id, function (e) {
  39033.               return je.a.defaults({
  39034.                 thread: je.a.defaults({
  39035.                   isClosed: t
  39036.                 }, e.thread)
  39037.               }, e)
  39038.             })
  39039.           })
  39040.         }),
  39041.         PN(SN(l), 'applyPostsWithThreadId', function (n, a) {
  39042.           return je.a.chain(l.state.posts).map(function (e, t) {
  39043.             return e.thread.id !== n ? [
  39044.               t,
  39045.               e
  39046.             ] : [
  39047.               t,
  39048.               a(e)
  39049.             ]
  39050.           }).object().value()
  39051.         }),
  39052.         PN(SN(l), 'toggleThreadPremoderation', function (e, t) {
  39053.           io.a.call('threads/update', {
  39054.             data: {
  39055.               thread: e,
  39056.               validateAllPosts: t ? 1 : 0
  39057.             },
  39058.             method: 'POST'
  39059.           }).then(l.onToggleThreadPremoderation)
  39060.         }),
  39061.         PN(SN(l), 'onToggleThreadPremoderation', function (e) {
  39062.           var a = e.response;
  39063.           l.setState({
  39064.             posts: Object.keys(l.state.posts).reduce(function (e, t) {
  39065.               var n = l.state.posts[t];
  39066.               return e[t] = n.thread.id !== a.id ? n : vN(vN({
  39067.               }, n), {
  39068.               }, {
  39069.                 thread: vN(vN({
  39070.                 }, n.thread), a)
  39071.               }),
  39072.               e
  39073.             }, {
  39074.             })
  39075.           })
  39076.         }),
  39077.         PN(SN(l), 'updateVote', function (e, t) {
  39078.           var n,
  39079.           a,
  39080.           r = l.state.posts[e],
  39081.           o = t === r.userScore,
  39082.           i = t === - 1 * r.userScore,
  39083.           s = o ? 0 : t;
  39084.           io.a.call('posts/vote', {
  39085.             data: {
  39086.               post: e,
  39087.               vote: s
  39088.             },
  39089.             method: 'POST'
  39090.           }),
  39091.           1 === t ? (n = o ? - 1 : 1, a = i ? - 1 : 0) : - 1 === t && (n = i ? - 1 : 0, a = o ? - 1 : 1);
  39092.           r = je.a.defaults({
  39093.             likes: r.likes + n,
  39094.             dislikes: r.dislikes + a,
  39095.             userScore: s
  39096.           }, r);
  39097.           l.setState({
  39098.             posts: je.a.defaults(PN({
  39099.             }, e, r), l.state.posts)
  39100.           })
  39101.         }),
  39102.         PN(SN(l), 'updatePostMessage', function (e, t, n) {
  39103.           io.a.call('posts/update', {
  39104.             data: {
  39105.               post: e,
  39106.               message: t,
  39107.               attach: [
  39108.                 'postModHtml',
  39109.                 'postAuthorRep'
  39110.               ]
  39111.             },
  39112.             method: 'POST'
  39113.           }).done(je.a.partial(l.onUpdatePostMessage, je.a, n))
  39114.         }),
  39115.         PN(SN(l), 'onUpdatePostMessage', function (e, t) {
  39116.           t = t || je.a.noop;
  39117.           var n = e.response.id,
  39118.           e = je.a.defaults({
  39119.             modMessage: e.response.modMessage,
  39120.             message: e.response.message,
  39121.             raw_message: e.response.raw_message
  39122.           }, l.state.posts[n]);
  39123.           l.setState({
  39124.             posts: je.a.defaults(PN({
  39125.             }, n, e), l.state.posts)
  39126.           }, t)
  39127.         }),
  39128.         PN(SN(l), 'savePostReply', function (e, t, n, a) {
  39129.           io.a.call('posts/create', {
  39130.             data: {
  39131.               parent: e,
  39132.               message: t,
  39133.               attach: [
  39134.                 'postModHtml',
  39135.                 'postAuthorRep'
  39136.               ]
  39137.             },
  39138.             method: 'POST'
  39139.           }).done(je.a.partial(l.onSavePostReply, je.a, n)).fail(a)
  39140.         }),
  39141.         PN(SN(l), 'onSavePostReply', function (e, t) {
  39142.           e = e.response;
  39143.           io.a.call('posts/approve', {
  39144.             data: {
  39145.               post: e.id
  39146.             },
  39147.             method: 'POST'
  39148.           }).done(je.a.partial(l.onApprovePostReply, e, t))
  39149.         }),
  39150.         PN(SN(l), 'onApprovePostReply', function (e, t) {
  39151.           var n = e.parent,
  39152.           e = je.a.defaults({
  39153.             child: e
  39154.           }, l.state.posts[n]);
  39155.           l.setState({
  39156.             posts: je.a.defaults(PN({
  39157.             }, n, e), l.state.posts)
  39158.           }, t)
  39159.         }),
  39160.         PN(SN(l), 'updateUserBadges', function (n, a) {
  39161.           var r = {
  39162.           },
  39163.           o = l.state.posts;
  39164.           Object.keys(o).forEach(function (e) {
  39165.             var t = o[e];
  39166.             n.id === t.author.id && (t.author.badges = a),
  39167.             r[e] = t
  39168.           }),
  39169.           l.setState({
  39170.             posts: r
  39171.           })
  39172.         }),
  39173.         PN(SN(l), 'getComponentProps', function () {
  39174.           return {
  39175.             posts: l.state.posts,
  39176.             searchQuery: l.state.searchQuery,
  39177.             updateFetchData: l.updateFetchData,
  39178.             performAction: l.performAction,
  39179.             message: l.state.message,
  39180.             updateVote: l.updateVote,
  39181.             updatePostMessage: l.updatePostMessage,
  39182.             savePostReply: l.savePostReply,
  39183.             sortOrder: l.state.sortOrder,
  39184.             searchFilters: l.state.filters,
  39185.             hasMorePosts: l.state.cursor.hasNext,
  39186.             refreshPosts: l.fetchData,
  39187.             fetchMorePosts: l.fetchMore,
  39188.             postsAreFetching: !!l.state.fetchingAmount,
  39189.             postsAreUpdating: l.state.isPerformingAction,
  39190.             fetchThreadReactionsEnabled: l.fetchThreadReactionsEnabled,
  39191.             toggleReactions: l.toggleReactions,
  39192.             toggleThreadClosed: l.toggleThreadClosed,
  39193.             toggleThreadPremoderation: l.toggleThreadPremoderation,
  39194.             isTogglingClosed: l.state.isTogglingClosed,
  39195.             getPostParents: l.getPostParents,
  39196.             startDate: l.state.startDate,
  39197.             endDate: l.state.endDate,
  39198.             fetchFlaggers: l.fetchFlaggers,
  39199.             updateUserBadges: l.updateUserBadges
  39200.           }
  39201.         }),
  39202.         l
  39203.       }
  39204.       return e = r,
  39205.       (t = [
  39206.         {
  39207.           key: 'componentWillUnmount',
  39208.           value: function () {
  39209.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  39210.           }
  39211.         },
  39212.         {
  39213.           key: 'componentWillReceiveProps',
  39214.           value: function (t) {
  39215.             !(this.props.saasFeatures[(this.props.selection.organization || {
  39216.             }).id] || {
  39217.             }).isFetched && (t.saasFeatures[(this.props.selection.organization || {
  39218.             }).id] || {
  39219.             }).isFetched && this.onSaasFeaturesFetched && this.onSaasFeaturesFetched.forEach(function (e) {
  39220.               e(t)
  39221.             })
  39222.           }
  39223.         }
  39224.       ]) && _N(e.prototype, t),
  39225.       n && _N(e, n),
  39226.       r
  39227.     }();
  39228.     PN(sl, 'displayName', 'PostListDriver'),
  39229.     PN(sl, 'propTypes', {
  39230.       selection: ht.isRequired,
  39231.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  39232.       params: b.a.object.isRequired
  39233.     });
  39234.     Ls = Object(ki.createDriver) (sl, function (e) {
  39235.       return {
  39236.         saasFeatures: e.saasFeatures
  39237.       }
  39238.     });
  39239.     function NN(e) {
  39240.       return (NN = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  39241.         return typeof e
  39242.       }
  39243.        : function (e) {
  39244.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  39245.       }) (e)
  39246.     }
  39247.     function CN(t, e) {
  39248.       var n,
  39249.       a = Object.keys(t);
  39250.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  39251.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  39252.       })), a.push.apply(a, n)),
  39253.       a
  39254.     }
  39255.     function RN(t) {
  39256.       for (var e = 1; e < arguments.length; e++) {
  39257.         var n = null != arguments[e] ? arguments[e] : {
  39258.         };
  39259.         e % 2 ? CN(Object(n), !0).forEach(function (e) {
  39260.           IN(t, e, n[e])
  39261.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : CN(Object(n)).forEach(function (e) {
  39262.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  39263.         })
  39264.       }
  39265.       return t
  39266.     }
  39267.     function xN(e, t) {
  39268.       for (var n = 0; n < t.length; n++) {
  39269.         var a = t[n];
  39270.         a.enumerable = a.enumerable || !1,
  39271.         a.configurable = !0,
  39272.         'value' in a && (a.writable = !0),
  39273.         Object.defineProperty(e, a.key, a)
  39274.       }
  39275.     }
  39276.     function AN(e, t) {
  39277.       return (AN = Object.setPrototypeOf || function (e, t) {
  39278.         return e.__proto__ = t,
  39279.         e
  39280.       }) (e, t)
  39281.     }
  39282.     function DN(n) {
  39283.       var a = function () {
  39284.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  39285.         if (Reflect.construct.sham) return !1;
  39286.         if ('function' == typeof Proxy) return !0;
  39287.         try {
  39288.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  39289.           ], function () {
  39290.           })),
  39291.           !0
  39292.         } catch (e) {
  39293.           return !1
  39294.         }
  39295.       }();
  39296.       return function () {
  39297.         var e,
  39298.         t = TN(n);
  39299.         return e = a ? (e = TN(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  39300.         t = this,
  39301.         !(e = e) || 'object' !== NN(e) && 'function' != typeof e ? jN(t) : e
  39302.       }
  39303.     }
  39304.     function jN(e) {
  39305.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  39306.       return e
  39307.     }
  39308.     function TN(e) {
  39309.       return (TN = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  39310.         return e.__proto__ || Object.getPrototypeOf(e)
  39311.       }) (e)
  39312.     }
  39313.     function IN(e, t, n) {
  39314.       return t in e ? Object.defineProperty(e, t, {
  39315.         value: n,
  39316.         enumerable: !0,
  39317.         configurable: !0,
  39318.         writable: !0
  39319.       }) : e[t] = n,
  39320.       e
  39321.     }
  39322.     var qN = {
  39323.       enter: 13,
  39324.       return : 13,
  39325.       esc: 27,
  39326.       escape: 27,
  39327.       backspace: 8
  39328.     },
  39329.     FN = je.a.chain(qN).values().reduce(function (e, t) {
  39330.       return e[t] = !0,
  39331.       e
  39332.     }, {
  39333.     }).value(),
  39334.     i = function () {
  39335.       !function (e, t) {
  39336.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  39337.         e.prototype = Object.create(t && t.prototype, {
  39338.           constructor: {
  39339.             value: e,
  39340.             writable: !0,
  39341.             configurable: !0
  39342.           }
  39343.         }),
  39344.         t && AN(e, t)
  39345.       }(o, A);
  39346.       var e,
  39347.       t,
  39348.       n,
  39349.       a = DN(o);
  39350.       function o() {
  39351.         var r;
  39352.         !function (e, t) {
  39353.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  39354.         }(this, o);
  39355.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  39356.         return IN(jN(r = a.call.apply(a, [
  39357.           this
  39358.         ].concat(t))), 'defaults', {
  39359.           exclude: [
  39360.             'input',
  39361.             'textarea'
  39362.           ]
  39363.         }),
  39364.         IN(jN(r), 'state', {
  39365.           shortcuts: {
  39366.           }
  39367.         }),
  39368.         IN(jN(r), 'addMultiple', function (e) {
  39369.           je.a.reduce(e, function (e, t) {
  39370.             return je.a.partial(this.add, t.keyName, t.callback, t.options, e)
  39371.           }, je.a.noop, jN(r)) ()
  39372.         }),
  39373.         IN(jN(r), 'add', function (e, t, n, a) {
  39374.           1 === e.split(/\s+/).length && (n = RN(RN({
  39375.           }, r.defaults), n), e = qN.hasOwnProperty(e.toLowerCase()) ? qN[e.toLowerCase()] : e.charCodeAt(0), (n = r.state.shortcuts[e] || {
  39376.             callbacks: [
  39377.             ],
  39378.             options: n
  39379.           }).callbacks.push(t), r.setState({
  39380.             shortcuts: je.a.defaults(IN({
  39381.             }, e, n), r.state.shortcuts)
  39382.           }, a))
  39383.         }),
  39384.         IN(jN(r), 'remove', function (e) {
  39385.           e = e.toLowerCase(),
  39386.           r.state.shortcuts.hasOwnProperty(e) && r.setState({
  39387.             shortcuts: je.a.defaults(IN({
  39388.             }, e, void 0), r.state.shortcuts)
  39389.           })
  39390.         }),
  39391.         IN(jN(r), 'handleKeyEvent', function (t) {
  39392.           var n,
  39393.           a;
  39394.           t.ctrlKey || t.altKey || t.metaKey || !je.a.size(r.state.shortcuts) || (n = t.which, 'keydown' === t.type && !FN.hasOwnProperty(n) || 'keypress' === t.type && FN.hasOwnProperty(n) || r.state.shortcuts.hasOwnProperty(n) && (a = r.state.shortcuts[n].options || r.defaults, je.a.each(r.state.shortcuts[n].callbacks, function (e) {
  39395.             27 !== n && a.exclude.some(function (e) {
  39396.               return e.toLowerCase() == t.target.tagName.toLowerCase()
  39397.             }) || (e(t), t.preventDefault())
  39398.           })))
  39399.         }),
  39400.         IN(jN(r), 'getComponentProps', function () {
  39401.           return {
  39402.             addHotkeys: r.addMultiple,
  39403.             removeHotkey: r.remove
  39404.           }
  39405.         }),
  39406.         r
  39407.       }
  39408.       return e = o,
  39409.       (t = [
  39410.         {
  39411.           key: 'componentDidMount',
  39412.           value: function () {
  39413.             var e = window.document;
  39414.             e.addEventListener('keydown', this.handleKeyEvent),
  39415.             e.addEventListener('keypress', this.handleKeyEvent)
  39416.           }
  39417.         },
  39418.         {
  39419.           key: 'componentWillUnmount',
  39420.           value: function () {
  39421.             var e = window.document;
  39422.             e.removeEventListener('keydown', this.handleKeyEvent),
  39423.             e.removeEventListener('keypress', this.handleKeyEvent)
  39424.           }
  39425.         }
  39426.       ]) && xN(e.prototype, t),
  39427.       n && xN(e, n),
  39428.       o
  39429.     }();
  39430.     IN(i, 'displayName', 'HotkeysDriver');
  39431.     yl = Object(ki.createDriver) (i);
  39432.     function LN(e) {
  39433.       return (LN = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  39434.         return typeof e
  39435.       }
  39436.        : function (e) {
  39437.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  39438.       }) (e)
  39439.     }
  39440.     function UN(e, t) {
  39441.       for (var n = 0; n < t.length; n++) {
  39442.         var a = t[n];
  39443.         a.enumerable = a.enumerable || !1,
  39444.         a.configurable = !0,
  39445.         'value' in a && (a.writable = !0),
  39446.         Object.defineProperty(e, a.key, a)
  39447.       }
  39448.     }
  39449.     function MN(e, t) {
  39450.       return (MN = Object.setPrototypeOf || function (e, t) {
  39451.         return e.__proto__ = t,
  39452.         e
  39453.       }) (e, t)
  39454.     }
  39455.     function BN(n) {
  39456.       var a = function () {
  39457.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  39458.         if (Reflect.construct.sham) return !1;
  39459.         if ('function' == typeof Proxy) return !0;
  39460.         try {
  39461.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  39462.           ], function () {
  39463.           })),
  39464.           !0
  39465.         } catch (e) {
  39466.           return !1
  39467.         }
  39468.       }();
  39469.       return function () {
  39470.         var e,
  39471.         t = HN(n);
  39472.         return e = a ? (e = HN(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  39473.         t = this,
  39474.         !(e = e) || 'object' !== LN(e) && 'function' != typeof e ? zN(t) : e
  39475.       }
  39476.     }
  39477.     function zN(e) {
  39478.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  39479.       return e
  39480.     }
  39481.     function HN(e) {
  39482.       return (HN = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  39483.         return e.__proto__ || Object.getPrototypeOf(e)
  39484.       }) (e)
  39485.     }
  39486.     function GN(e, t, n) {
  39487.       return t in e ? Object.defineProperty(e, t, {
  39488.         value: n,
  39489.         enumerable: !0,
  39490.         configurable: !0,
  39491.         writable: !0
  39492.       }) : e[t] = n,
  39493.       e
  39494.     }
  39495.     h = function () {
  39496.       !function (e, t) {
  39497.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  39498.         e.prototype = Object.create(t && t.prototype, {
  39499.           constructor: {
  39500.             value: e,
  39501.             writable: !0,
  39502.             configurable: !0
  39503.           }
  39504.         }),
  39505.         t && MN(e, t)
  39506.       }(o, A);
  39507.       var e,
  39508.       t,
  39509.       n,
  39510.       r = BN(o);
  39511.       function o() {
  39512.         var t;
  39513.         !function (e, t) {
  39514.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  39515.         }(this, o);
  39516.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  39517.         return GN(zN(t = r.call.apply(r, [
  39518.           this
  39519.         ].concat(n))), 'onOpen', function () {
  39520.           t.props.emitTrackingEvent({
  39521.             verb: 'view',
  39522.             object_type: 'area'
  39523.           })
  39524.         }),
  39525.         GN(zN(t), 'onButtonClick', function (e) {
  39526.           t.props.emitTrackingEvent({
  39527.             verb: 'click',
  39528.             object_type: 'button',
  39529.             adverb: e
  39530.           })
  39531.         }),
  39532.         t
  39533.       }
  39534.       return e = o,
  39535.       (t = [
  39536.         {
  39537.           key: 'componentDidMount',
  39538.           value: function () {
  39539.             this.props.isOpen && this.onOpen()
  39540.           }
  39541.         },
  39542.         {
  39543.           key: 'componentWillReceiveProps',
  39544.           value: function (e) {
  39545.             !this.props.isOpen && e.isOpen && this.onOpen()
  39546.           }
  39547.         },
  39548.         {
  39549.           key: 'render',
  39550.           value: function () {
  39551.             var e = this;
  39552.             return C.a.createElement('section', {
  39553.               className: 'featured-message__moderation-rules'
  39554.             }, C.a.createElement('div', {
  39555.               className: 'icon icon-star-fourpoint -one'
  39556.             }), C.a.createElement('div', {
  39557.               className: 'icon icon-star-fourpoint -two'
  39558.             }), C.a.createElement('div', {
  39559.               className: 'icon icon-star-fourpoint -three'
  39560.             }), C.a.createElement('div', {
  39561.               className: 'icon icon-star-fourpoint -four'
  39562.             }), C.a.createElement('div', {
  39563.               className: 'icon icon-star-fourpoint -five'
  39564.             }), C.a.createElement('div', {
  39565.               className: 'icon icon-star-fourpoint -six'
  39566.             }), C.a.createElement('div', {
  39567.               className: 'icon icon-star-fourpoint -seven'
  39568.             }), C.a.createElement('div', {
  39569.               className: 'icon icon-star-fourpoint -eight'
  39570.             }), C.a.createElement('div', {
  39571.               className: 'icon icon-star-fourpoint -nine'
  39572.             }), C.a.createElement('div', {
  39573.               className: 'icon icon-star-fourpoint -ten'
  39574.             }), C.a.createElement('div', {
  39575.               className: 'icon icon-star-fourpoint -eleven'
  39576.             }), C.a.createElement('div', {
  39577.               className: 'admin-modal__header align align--column align--middle',
  39578.               key: 'header'
  39579.             }, C.a.createElement('h3', {
  39580.               className: 'text-large'
  39581.             }, 'New for You!'), C.a.createElement('img', {
  39582.               className: 'img-responsive spacing-top-small',
  39583.               style: {
  39584.                 marginLeft: '55px'
  39585.               },
  39586.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/pam-new.svg'
  39587.             })), C.a.createElement('div', {
  39588.               className: 'admin-modal__content text-gray',
  39589.               key: 'content'
  39590.             }, C.a.createElement('p', {
  39591.               className: 'spacing-bottom spacing-top'
  39592.             }, C.a.createElement('strong', null, 'Moderation Rules are new to the moderation panel!')), C.a.createElement('p', {
  39593.               className: 'spacing-bottom'
  39594.             }, 'Tired of moderating the same types of comments the same way over and over? You can now create a moderation rule that will automatically perform an action based on the comment criteria that you choose.'), C.a.createElement('p', null, 'We plan to make updates and continually improve this feature, so be sure to leave us feedback via the Pam widget on the right!')), C.a.createElement('div', {
  39595.               className: 'admin-modal__footer align align--between',
  39596.               key: 'footer'
  39597.             }, C.a.createElement('button', {
  39598.               className: 'button button-fill button-small button-wide spacing-right-large',
  39599.               onClick: function () {
  39600.                 e.onButtonClick('dismiss'),
  39601.                 e.props.onClose()
  39602.               }
  39603.             }, 'Thanks, I\'ll check it out later'), C.a.createElement(v.Link, {
  39604.               className: 'button button-fill--brand button-small button-wide',
  39605.               to: '/settings/moderation/',
  39606.               onClick: this.onButtonClick.bind(this, 'continue')
  39607.             }, 'Take me to the Moderation Rules')))
  39608.           }
  39609.         }
  39610.       ]) && UN(e.prototype, t),
  39611.       n && UN(e, n),
  39612.       o
  39613.     }();
  39614.     GN(h, 'propTypes', {
  39615.       onClose: b.a.func.isRequired,
  39616.       isOpen: b.a.bool.isRequired,
  39617.       emitTrackingEvent: b.a.func.isRequired
  39618.     });
  39619.     var VN = {
  39620.       moderationRules: {
  39621.         modalContent: Object(u.connect) (null, {
  39622.           emitTrackingEvent: Xo({
  39623.             zone: 'moderation_panel',
  39624.             section: 'welcome',
  39625.             area: 'modal',
  39626.             product: 'publisher_admin',
  39627.             object_id: 'moderation_rules',
  39628.             adjective: 'new_feature'
  39629.           })
  39630.         }) (h)
  39631.       }
  39632.     };
  39633.     function WN(e) {
  39634.       return function (t) {
  39635.         io.a.call('announcements/messages/checkViewed', {
  39636.           data: {
  39637.             message: e.messageIds
  39638.           }
  39639.         }).success(function (e) {
  39640.           t({
  39641.             type: Q.onFetchViewStatus,
  39642.             response: e.response
  39643.           })
  39644.         })
  39645.       }
  39646.     }
  39647.     function YN(r) {
  39648.       return function (a) {
  39649.         io.a.call('announcements/messages/view', {
  39650.           method: 'POST',
  39651.           data: {
  39652.             message: r.messageId
  39653.           }
  39654.         }).success(function () {
  39655.           var e,
  39656.           t,
  39657.           n;
  39658.           a({
  39659.             type: Q.onFetchViewStatus,
  39660.             response: (n = !0, (t = r.messageId) in (e = {
  39661.             }) ? Object.defineProperty(e, t, {
  39662.               value: n,
  39663.               enumerable: !0,
  39664.               configurable: !0,
  39665.               writable: !0
  39666.             }) : e[t] = n, e)
  39667.           })
  39668.         })
  39669.       }
  39670.     }
  39671.     function QN(e) {
  39672.       return (QN = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  39673.         return typeof e
  39674.       }
  39675.        : function (e) {
  39676.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  39677.       }) (e)
  39678.     }
  39679.     function KN(e, t) {
  39680.       for (var n = 0; n < t.length; n++) {
  39681.         var a = t[n];
  39682.         a.enumerable = a.enumerable || !1,
  39683.         a.configurable = !0,
  39684.         'value' in a && (a.writable = !0),
  39685.         Object.defineProperty(e, a.key, a)
  39686.       }
  39687.     }
  39688.     function JN(e, t) {
  39689.       return (JN = Object.setPrototypeOf || function (e, t) {
  39690.         return e.__proto__ = t,
  39691.         e
  39692.       }) (e, t)
  39693.     }
  39694.     function $N(n) {
  39695.       var a = function () {
  39696.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  39697.         if (Reflect.construct.sham) return !1;
  39698.         if ('function' == typeof Proxy) return !0;
  39699.         try {
  39700.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  39701.           ], function () {
  39702.           })),
  39703.           !0
  39704.         } catch (e) {
  39705.           return !1
  39706.         }
  39707.       }();
  39708.       return function () {
  39709.         var e,
  39710.         t = XN(n);
  39711.         return e = a ? (e = XN(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  39712.         t = this,
  39713.         !(e = e) || 'object' !== QN(e) && 'function' != typeof e ? ZN(t) : e
  39714.       }
  39715.     }
  39716.     function ZN(e) {
  39717.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  39718.       return e
  39719.     }
  39720.     function XN(e) {
  39721.       return (XN = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  39722.         return e.__proto__ || Object.getPrototypeOf(e)
  39723.       }) (e)
  39724.     }
  39725.     function eC(t, e) {
  39726.       var n,
  39727.       a = Object.keys(t);
  39728.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  39729.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  39730.       })), a.push.apply(a, n)),
  39731.       a
  39732.     }
  39733.     function tC(t) {
  39734.       for (var e = 1; e < arguments.length; e++) {
  39735.         var n = null != arguments[e] ? arguments[e] : {
  39736.         };
  39737.         e % 2 ? eC(Object(n), !0).forEach(function (e) {
  39738.           nC(t, e, n[e])
  39739.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : eC(Object(n)).forEach(function (e) {
  39740.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  39741.         })
  39742.       }
  39743.       return t
  39744.     }
  39745.     function nC(e, t, n) {
  39746.       return t in e ? Object.defineProperty(e, t, {
  39747.         value: n,
  39748.         enumerable: !0,
  39749.         configurable: !0,
  39750.         writable: !0
  39751.       }) : e[t] = n,
  39752.       e
  39753.     }
  39754.     var Ru = function (i) {
  39755.       function e(a) {
  39756.         var e,
  39757.         t;
  39758.         return Object(u.connect) (function (e) {
  39759.           return tC({
  39760.           }, e.featuredMessages)
  39761.         }, {
  39762.           fetchFeaturedMessagesViewStatuses: WN,
  39763.           markFeaturedMessageAsViewed: YN
  39764.         }) ((t = e = function () {
  39765.           !function (e, t) {
  39766.             if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  39767.             e.prototype = Object.create(t && t.prototype, {
  39768.               constructor: {
  39769.                 value: e,
  39770.                 writable: !0,
  39771.                 configurable: !0
  39772.               }
  39773.             }),
  39774.             t && JN(e, t)
  39775.           }(o, A);
  39776.           var e,
  39777.           t,
  39778.           n,
  39779.           r = $N(o);
  39780.           function o() {
  39781.             var e;
  39782.             !function (e, t) {
  39783.               if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  39784.             }(this, o);
  39785.             for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  39786.             return nC(ZN(e = r.call.apply(r, [
  39787.               this
  39788.             ].concat(n))), 'state', {
  39789.               isOpen: !1,
  39790.               currentMessageId: null,
  39791.               messageViewable: i.reduce(function (e, t) {
  39792.                 return tC(tC({
  39793.                 }, e), {
  39794.                 }, nC({
  39795.                 }, t, !1))
  39796.               }, {
  39797.               })
  39798.             }),
  39799.             nC(ZN(e), 'getComponentProps', function () {
  39800.               return {
  39801.                 showFeaturedMessage: e.showFeaturedMessage
  39802.               }
  39803.             }),
  39804.             nC(ZN(e), 'onClose', function () {
  39805.               e.setState({
  39806.                 isOpen: !1
  39807.               })
  39808.             }),
  39809.             nC(ZN(e), 'onOpen', function () {
  39810.               e.props.markFeaturedMessageAsViewed({
  39811.                 messageId: e.state.currentMessageId
  39812.               })
  39813.             }),
  39814.             nC(ZN(e), 'showFeaturedMessage', function (a, r) {
  39815.               return (r = r || e.props).isFetched ? void e.setState(function (n) {
  39816.                 var t = i.reduce(function (e, t) {
  39817.                   return tC(tC({
  39818.                   }, e), {
  39819.                   }, nC({
  39820.                   }, t, VN[t] && (n.messageViewable[t] || !!~a.indexOf(t))))
  39821.                 }, {
  39822.                 }),
  39823.                 e = a.filter(function (e) {
  39824.                   return !1 === r.userHasViewedMessages[e] && t[e]
  39825.                 }) [0];
  39826.                 return {
  39827.                   isOpen: void 0 !== e,
  39828.                   currentMessageId: e,
  39829.                   messageViewable: t
  39830.                 }
  39831.               }) : (e.onFetchFeaturedMessagesViewStatuses = e.onFetchFeaturedMessagesViewStatuses || [
  39832.               ], void e.onFetchFeaturedMessagesViewStatuses.push(e.showFeaturedMessage.bind(ZN(e), a)))
  39833.             }),
  39834.             e
  39835.           }
  39836.           return e = o,
  39837.           (t = [
  39838.             {
  39839.               key: 'componentDidMount',
  39840.               value: function () {
  39841.                 this.props.fetchFeaturedMessagesViewStatuses({
  39842.                   messageIds: i
  39843.                 })
  39844.               }
  39845.             },
  39846.             {
  39847.               key: 'componentWillReceiveProps',
  39848.               value: function (t) {
  39849.                 t.isFetched && !this.props.isFetched && this.onFetchFeaturedMessagesViewStatuses && (this.onFetchFeaturedMessagesViewStatuses.forEach(function (e) {
  39850.                   e(t)
  39851.                 }), this.onFetchFeaturedMessagesViewStatuses = null)
  39852.               }
  39853.             },
  39854.             {
  39855.               key: 'render',
  39856.               value: function () {
  39857.                 var e = tC(tC({
  39858.                 }, this.props), this.getComponentProps()),
  39859.                 t = (VN[this.state.currentMessageId] || {
  39860.                 }).modalContent;
  39861.                 return C.a.createElement('section', null, C.a.createElement(_.a, {
  39862.                   isOpen: this.state.isOpen,
  39863.                   onRequestClose: this.onClose,
  39864.                   onAfterOpen: this.onOpen,
  39865.                   className: 'admin-modal -clipped -wider padding-double '.concat(this.state.modalClass || ''),
  39866.                   overlayClassName: 'modal-overlay -dark'
  39867.                 }, t ? C.a.createElement(t, {
  39868.                   isOpen: this.state.isOpen,
  39869.                   onClose: this.onClose
  39870.                 }) : null), C.a.createElement(a, e))
  39871.               }
  39872.             }
  39873.           ]) && KN(e.prototype, t),
  39874.           n && KN(e, n),
  39875.           o
  39876.         }(), nC(e, 'displayName', ''.concat(a.displayName, ':').concat(n)), nC(e, 'propTypes', {
  39877.           userHasViewedMessages: function (e, t, n, a, r) {
  39878.             var o;
  39879.             if (Object.keys(o = e[t]).some(function (e) {
  39880.               return 'boolean' != typeof o[e]
  39881.             })) return Error('The '.concat(a, ' `').concat(r || t, '` in `').concat(n, '` is expected to map string keys to boolean values.'))
  39882.           },
  39883.           isFetched: b.a.bool.isRequired,
  39884.           fetchFeaturedMessagesViewStatuses: b.a.func.isRequired,
  39885.           markFeaturedMessageAsViewed: b.a.func.isRequired
  39886.         }), t))
  39887.       }
  39888.       var n = 'FeaturedMessageDriver';
  39889.       return e.driverName = n,
  39890.       e.isDriver = !0,
  39891.       e
  39892.     },
  39893.     Yc = n(494),
  39894.     aC = n.n(Yc);
  39895.     function rC(e, t) {
  39896.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  39897.       return a
  39898.     }
  39899.     function oC(e) {
  39900.       var t = e.badge,
  39901.       n = e.user;
  39902.       return C.a.createElement('span', {
  39903.         id: ''.concat(e.context, '-badge_').concat(n.id, '-').concat(t.id),
  39904.         className: 'user-badge badge-tooltip__wrapper',
  39905.         'data-role': 'user-badge',
  39906.         onClick: function (e) {
  39907.           return e.stopPropagation()
  39908.         },
  39909.         tabIndex: 0
  39910.       }, C.a.createElement('img', {
  39911.         className: 'user-badge-image',
  39912.         src: t.image,
  39913.         alt: t.name
  39914.       }), C.a.createElement('div', {
  39915.         className: 'badge-tooltip__container'
  39916.       }, C.a.createElement('div', {
  39917.         className: 'tooltip show badge-tooltip'
  39918.       }, C.a.createElement('span', {
  39919.         className: 'badge-tooltip__content'
  39920.       }, t.name))))
  39921.     }
  39922.     var iC,
  39923.     sC = 99999,
  39924.     lC = 25000,
  39925.     cC = 0,
  39926.     uC = 1,
  39927.     pC = 2,
  39928.     dC = [
  39929.       {
  39930.         key: We.BADGES_CRITERIA.MANUAL,
  39931.         value: We.BADGES_CRITERIA.MANUAL,
  39932.         label: 'Manual'
  39933.       },
  39934.       {
  39935.         key: We.BADGES_CRITERIA.COMMENTS,
  39936.         value: We.BADGES_CRITERIA.COMMENTS,
  39937.         label: 'Number of comments'
  39938.       },
  39939.       {
  39940.         key: We.BADGES_CRITERIA.FEATURED_COMMENTS,
  39941.         value: We.BADGES_CRITERIA.FEATURED_COMMENTS,
  39942.         label: 'Number of featured comments'
  39943.       },
  39944.       {
  39945.         key: We.BADGES_CRITERIA.COMMENT_UPVOTES,
  39946.         value: We.BADGES_CRITERIA.COMMENT_UPVOTES,
  39947.         label: 'Number of upvotes on a comment'
  39948.       }
  39949.     ],
  39950.     sl = {
  39951.       id: b.a.number.isRequired,
  39952.       image: b.a.string,
  39953.       name: b.a.string,
  39954.       criteria: b.a.oneOf([].concat(function (e) {
  39955.         if (Array.isArray(e)) return rC(e)
  39956.       }(iC = Object.values(We.BADGES_CRITERIA)) || function (e) {
  39957.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  39958.       }(iC) || function (e, t) {
  39959.         if (e) {
  39960.           if ('string' == typeof e) return rC(e, t);
  39961.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  39962.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? rC(e, t) : void 0
  39963.         }
  39964.       }(iC) || function () {
  39965.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  39966.       }(), [
  39967.         ''
  39968.       ])),
  39969.       target: b.a.number
  39970.     },
  39971.     mC = {
  39972.       image: '',
  39973.       name: '',
  39974.       criteria: '',
  39975.       target: 0,
  39976.       imageFile: null,
  39977.       isNew: !0,
  39978.       isInvalid: !0,
  39979.       hasChanges: !1,
  39980.       imageErrors: [
  39981.       ]
  39982.     };
  39983.     oC.propTypes = {
  39984.       badge: b.a.shape(sl).isRequired,
  39985.       user: b.a.shape({
  39986.         id: b.a.string.isRequired
  39987.       }).isRequired,
  39988.       context: b.a.string.isRequired
  39989.     };
  39990.     i = function (e) {
  39991.       var n = e.forum,
  39992.       a = e.user,
  39993.       r = e.context,
  39994.       t = e.limit;
  39995.       if (!n.settings.badgesEnabled || !a || a.isAnonymous || !a.badges || !a.badges.length) return null;
  39996.       var e = t < a.badges.length,
  39997.       o = e ? t - 1 : t;
  39998.       return C.a.createElement('span', {
  39999.         'data-role': 'badges',
  40000.         className: 'user-badges-collection'
  40001.       }, a.badges.map(function (e, t) {
  40002.         return t < o ? C.a.createElement(oC, {
  40003.           key: t,
  40004.           badge: e,
  40005.           user: a,
  40006.           forumId: n.id,
  40007.           context: r
  40008.         }) : null
  40009.       }), e ? C.a.createElement('span', {
  40010.         className: 'user-badge truncate-badge publisher-background-color',
  40011.         'data-role': 'user-badge',
  40012.         tabIndex: 0
  40013.       }, C.a.createElement('span', {
  40014.         className: 'user-badge-more'
  40015.       }, '+', a.badges.length - o)) : null)
  40016.     };
  40017.     i.propTypes = {
  40018.       forum: b.a.shape({
  40019.         id: b.a.string.isRequired,
  40020.         settings: b.a.shape({
  40021.           badgesEnabled: b.a.bool.isRequired
  40022.         }).isRequired
  40023.       }).isRequired,
  40024.       user: b.a.shape({
  40025.         id: b.a.string,
  40026.         badges: b.a.arrayOf(b.a.shape(sl))
  40027.       }).isRequired,
  40028.       context: b.a.string.isRequired,
  40029.       limit: b.a.number.isRequired
  40030.     };
  40031.     var fC = i;
  40032.     function hC(e) {
  40033.       return (hC = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  40034.         return typeof e
  40035.       }
  40036.        : function (e) {
  40037.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  40038.       }) (e)
  40039.     }
  40040.     function gC(e, t) {
  40041.       for (var n = 0; n < t.length; n++) {
  40042.         var a = t[n];
  40043.         a.enumerable = a.enumerable || !1,
  40044.         a.configurable = !0,
  40045.         'value' in a && (a.writable = !0),
  40046.         Object.defineProperty(e, a.key, a)
  40047.       }
  40048.     }
  40049.     function yC(e, t) {
  40050.       return (yC = Object.setPrototypeOf || function (e, t) {
  40051.         return e.__proto__ = t,
  40052.         e
  40053.       }) (e, t)
  40054.     }
  40055.     function bC(n) {
  40056.       var a = function () {
  40057.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  40058.         if (Reflect.construct.sham) return !1;
  40059.         if ('function' == typeof Proxy) return !0;
  40060.         try {
  40061.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  40062.           ], function () {
  40063.           })),
  40064.           !0
  40065.         } catch (e) {
  40066.           return !1
  40067.         }
  40068.       }();
  40069.       return function () {
  40070.         var e,
  40071.         t = _C(n);
  40072.         return e = a ? (e = _C(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  40073.         t = this,
  40074.         !(e = e) || 'object' !== hC(e) && 'function' != typeof e ? vC(t) : e
  40075.       }
  40076.     }
  40077.     function vC(e) {
  40078.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  40079.       return e
  40080.     }
  40081.     function _C(e) {
  40082.       return (_C = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  40083.         return e.__proto__ || Object.getPrototypeOf(e)
  40084.       }) (e)
  40085.     }
  40086.     function EC(e, t, n) {
  40087.       return t in e ? Object.defineProperty(e, t, {
  40088.         value: n,
  40089.         enumerable: !0,
  40090.         configurable: !0,
  40091.         writable: !0
  40092.       }) : e[t] = n,
  40093.       e
  40094.     }
  40095.     h = function () {
  40096.       !function (e, t) {
  40097.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  40098.         e.prototype = Object.create(t && t.prototype, {
  40099.           constructor: {
  40100.             value: e,
  40101.             writable: !0,
  40102.             configurable: !0
  40103.           }
  40104.         }),
  40105.         t && yC(e, t)
  40106.       }(o, A);
  40107.       var e,
  40108.       t,
  40109.       n,
  40110.       r = bC(o);
  40111.       function o() {
  40112.         var t;
  40113.         !function (e, t) {
  40114.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  40115.         }(this, o);
  40116.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  40117.         return EC(vC(t = r.call.apply(r, [
  40118.           this
  40119.         ].concat(n))), 'handleClick', function (e) {
  40120.           if (!e || !e.nativeEvent || 1 === e.nativeEvent.which) return e.preventDefault(),
  40121.           t.props.showUserPanel(t.props.post),
  40122.           !1
  40123.         }),
  40124.         t
  40125.       }
  40126.       return e = o,
  40127.       (t = [
  40128.         {
  40129.           key: 'render',
  40130.           value: function () {
  40131.             return C.a.createElement('a', {
  40132.               href: this.props.post.author.profileUrl,
  40133.               className: 'profile-launcher',
  40134.               onClick: this.handleClick
  40135.             }, this.props.contents)
  40136.           }
  40137.         }
  40138.       ]) && gC(e.prototype, t),
  40139.       n && gC(e, n),
  40140.       o
  40141.     }();
  40142.     EC(h, 'propTypes', {
  40143.       contents: b.a.object.isRequired,
  40144.       showUserPanel: b.a.func.isRequired,
  40145.       post: b.a.shape({
  40146.         author: b.a.object.isRequired,
  40147.         ipAddress: b.a.string
  40148.       }).isRequired
  40149.     });
  40150.     var OC = h;
  40151.     function SC(e) {
  40152.       return (SC = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  40153.         return typeof e
  40154.       }
  40155.        : function (e) {
  40156.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  40157.       }) (e)
  40158.     }
  40159.     function wC(e, t) {
  40160.       return function (e) {
  40161.         if (Array.isArray(e)) return e
  40162.       }(e) || function (e, t) {
  40163.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  40164.         if (null != n) {
  40165.           var a,
  40166.           r,
  40167.           o = [
  40168.           ],
  40169.           i = !0,
  40170.           s = !1;
  40171.           try {
  40172.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  40173.           } catch (e) {
  40174.             s = !0,
  40175.             r = e
  40176.           } finally {
  40177.             try {
  40178.               i || null == n.return || n.return()
  40179.             } finally {
  40180.               if (s) throw r
  40181.             }
  40182.           }
  40183.           return o
  40184.         }
  40185.       }(e, t) || function (e, t) {
  40186.         if (e) {
  40187.           if ('string' == typeof e) return PC(e, t);
  40188.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  40189.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? PC(e, t) : void 0
  40190.         }
  40191.       }(e, t) || function () {
  40192.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  40193.       }()
  40194.     }
  40195.     function PC(e, t) {
  40196.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  40197.       return a
  40198.     }
  40199.     function kC(e, t) {
  40200.       for (var n = 0; n < t.length; n++) {
  40201.         var a = t[n];
  40202.         a.enumerable = a.enumerable || !1,
  40203.         a.configurable = !0,
  40204.         'value' in a && (a.writable = !0),
  40205.         Object.defineProperty(e, a.key, a)
  40206.       }
  40207.     }
  40208.     function NC(e, t) {
  40209.       return (NC = Object.setPrototypeOf || function (e, t) {
  40210.         return e.__proto__ = t,
  40211.         e
  40212.       }) (e, t)
  40213.     }
  40214.     function CC(n) {
  40215.       var a = function () {
  40216.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  40217.         if (Reflect.construct.sham) return !1;
  40218.         if ('function' == typeof Proxy) return !0;
  40219.         try {
  40220.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  40221.           ], function () {
  40222.           })),
  40223.           !0
  40224.         } catch (e) {
  40225.           return !1
  40226.         }
  40227.       }();
  40228.       return function () {
  40229.         var e,
  40230.         t = xC(n);
  40231.         return e = a ? (e = xC(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  40232.         t = this,
  40233.         !(e = e) || 'object' !== SC(e) && 'function' != typeof e ? RC(t) : e
  40234.       }
  40235.     }
  40236.     function RC(e) {
  40237.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  40238.       return e
  40239.     }
  40240.     function xC(e) {
  40241.       return (xC = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  40242.         return e.__proto__ || Object.getPrototypeOf(e)
  40243.       }) (e)
  40244.     }
  40245.     function AC(e, t, n) {
  40246.       return t in e ? Object.defineProperty(e, t, {
  40247.         value: n,
  40248.         enumerable: !0,
  40249.         configurable: !0,
  40250.         writable: !0
  40251.       }) : e[t] = n,
  40252.       e
  40253.     }
  40254.     var DC = {
  40255.       badWords: 'Restricted Word',
  40256.       links: 'Contains Link',
  40257.       anonymous: 'Guest Comment',
  40258.       media: 'Contains Media',
  40259.       toxic: 'Toxic',
  40260.       bullying: 'Bullying',
  40261.       hate: 'Hate Speech',
  40262.       violent: 'Violence',
  40263.       sexual: 'Sexual',
  40264.       promotion: 'Promotion',
  40265.       spam: 'Spam',
  40266.       shadowBannedGlobal: 'Shadow Banned Globally',
  40267.       isNewUserNeedsApproval: 'New Commenter'
  40268.     },
  40269.     jC = [
  40270.       'bullying',
  40271.       'hate',
  40272.       'violent',
  40273.       'sexual',
  40274.       'promotion'
  40275.     ],
  40276.     Yc = function () {
  40277.       !function (e, t) {
  40278.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  40279.         e.prototype = Object.create(t && t.prototype, {
  40280.           constructor: {
  40281.             value: e,
  40282.             writable: !0,
  40283.             configurable: !0
  40284.           }
  40285.         }),
  40286.         t && NC(e, t)
  40287.       }(o, A);
  40288.       var e,
  40289.       t,
  40290.       n,
  40291.       r = CC(o);
  40292.       function o() {
  40293.         var n;
  40294.         !function (e, t) {
  40295.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  40296.         }(this, o);
  40297.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  40298.         return AC(RC(n = r.call.apply(r, [
  40299.           this
  40300.         ].concat(t))), 'handleFlaggercardAfterShow', function () {
  40301.           n.props.emitTrackingEvent({
  40302.             verb: 'hover',
  40303.             object_type: 'label',
  40304.             object_id: 'flagged_post',
  40305.             extra_data: JSON.stringify({
  40306.               number_of_flags: n.props.numReports
  40307.             })
  40308.           })
  40309.         }),
  40310.         AC(RC(n), 'handleFlaggerClick', function (e) {
  40311.           n.props.emitTrackingEvent({
  40312.             verb: 'click',
  40313.             object_type: 'user',
  40314.             object_id: e.username
  40315.           })
  40316.         }),
  40317.         AC(RC(n), 'getPostLabels', function () {
  40318.           var e,
  40319.           t = [
  40320.           ];
  40321.           return !n.props.reputationLabel || 'Average' !== (e = n.props.reputationLabel.split(' ') [0]) && t.push({
  40322.             key: ''.concat(e.toLowerCase(), 'Rep'),
  40323.             content: ''.concat(e, ' Rep')
  40324.           }),
  40325.           n.props.shadowBanned && t.push({
  40326.             key: 'shadowBanned',
  40327.             content: 'Shadow Banned'
  40328.           }),
  40329.           n.props.moderationLabels && (0 === n.props.moderationLabels.length ? t.push({
  40330.             key: 'noIssue',
  40331.             content: 'No issue detected'
  40332.           }) : t = t.concat(n.props.moderationLabels.filter(function (e) {
  40333.             var t = n.props.hasAllModRules || yo.a.isFeatureActive('thehive', {
  40334.               forum: n.props.forum.id
  40335.             });
  40336.             return !(~jC.indexOf(e) && !t) && DC[e.split(':').shift()]
  40337.           }).map(function (e) {
  40338.             var t = wC(e.split(':'), 2),
  40339.             n = t[0],
  40340.             e = t[1],
  40341.             t = DC[n];
  40342.             return e && (t += ' - '.concat(e)),
  40343.             {
  40344.               key: n,
  40345.               className: e ? '-severity'.concat(e) : '',
  40346.               content: t
  40347.             }
  40348.           }))),
  40349.           n.props.numReports ? t.push({
  40350.             key: 'flagged',
  40351.             className: 'flaggercard-trigger',
  40352.             content: [
  40353.               C.a.createElement(Md, {
  40354.                 key: 'flaggerCard',
  40355.                 tooltipKey: 'flaggerCard',
  40356.                 direction: 'top',
  40357.                 additionalClass: 'hovercard flagger-card',
  40358.                 onShow: function () {
  40359.                   n.props.flaggers && n.props.numReports === n.props.flaggers.length || n.props.fetchAllFlaggers(),
  40360.                   n.handleFlaggercardAfterShow()
  40361.                 },
  40362.                 content: C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  40363.                   className: 'hovercard__content flagger-card__content',
  40364.                   onClick: function (e) {
  40365.                     e.stopPropagation()
  40366.                   }
  40367.                 }, 'Flagged by ', n.props.flaggers && n.props.flaggers.length ? n.props.flaggers.map(function (e) {
  40368.                   return e.name ? C.a.createElement('a', {
  40369.                     className: 'flagger-card__link',
  40370.                     href: e.profileUrl,
  40371.                     target: '_blank',
  40372.                     rel: 'noopener noreferrer',
  40373.                     onClick: n.handleFlaggerClick.bind(RC(n), e),
  40374.                     key: e.name
  40375.                   }, e.name) : null
  40376.                 }) : 'Unknown'))
  40377.               }, C.a.createElement('span', {
  40378.                 key: 'flaggercardTrigger',
  40379.                 'data-tip': !0,
  40380.                 'data-for': 'flaggerCard-'.concat(n.props.postId)
  40381.               }, C.a.createElement('span', {
  40382.                 className: 'icon-person icon__position spacing-right-small'
  40383.               }), 1 === n.props.numReports ? 'Flagged once' : 'Flagged '.concat(n.props.numReports, ' times')))
  40384.             ]
  40385.           }) : n.props.numReports && t.push({
  40386.             key: 'flagged',
  40387.             content: 'Flagged '.concat(n.props.numReports, ' times')
  40388.           }),
  40389.           t
  40390.         }),
  40391.         n
  40392.       }
  40393.       return e = o,
  40394.       (t = [
  40395.         {
  40396.           key: 'render',
  40397.           value: function () {
  40398.             return C.a.createElement('ul', {
  40399.               className: 'badge--post-label__list'
  40400.             }, this.getPostLabels().map(function (e) {
  40401.               return C.a.createElement('li', {
  40402.                 key: e.key,
  40403.                 className: 'badge--post-label -'.concat(e.key, ' ').concat(e.className || '').trim()
  40404.               }, e.content)
  40405.             }))
  40406.           }
  40407.         }
  40408.       ]) && kC(e.prototype, t),
  40409.       n && kC(e, n),
  40410.       o
  40411.     }();
  40412.     AC(Yc, 'propTypes', {
  40413.       moderationLabels: b.a.arrayOf(b.a.string),
  40414.       numReports: b.a.number.isRequired,
  40415.       shadowBanned: b.a.bool.isRequired,
  40416.       postId: b.a.string.isRequired,
  40417.       emitTrackingEvent: b.a.func.isRequired,
  40418.       reputationLabel: b.a.string,
  40419.       flaggers: b.a.arrayOf(b.a.shape({
  40420.         name: b.a.string.isRequired,
  40421.         username: b.a.string.isRequired,
  40422.         profileUrl: b.a.string.isRequired
  40423.       })),
  40424.       fetchAllFlaggers: b.a.func.isRequired,
  40425.       forum: b.a.shape({
  40426.         id: b.a.string.isRequired
  40427.       }).isRequired,
  40428.       hasAllModRules: b.a.bool.isRequired
  40429.     });
  40430.     var TC = Object(u.connect) (null, {
  40431.       emitTrackingEvent: Xo({
  40432.         zone: 'moderation_panel',
  40433.         area: 'post_label'
  40434.       })
  40435.     }) (Yc),
  40436.     i = n(100),
  40437.     IC = n.n(i);
  40438.     function qC(e) {
  40439.       return (qC = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  40440.         return typeof e
  40441.       }
  40442.        : function (e) {
  40443.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  40444.       }) (e)
  40445.     }
  40446.     function FC(t, e) {
  40447.       var n,
  40448.       a = Object.keys(t);
  40449.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  40450.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  40451.       })), a.push.apply(a, n)),
  40452.       a
  40453.     }
  40454.     function LC(t) {
  40455.       for (var e = 1; e < arguments.length; e++) {
  40456.         var n = null != arguments[e] ? arguments[e] : {
  40457.         };
  40458.         e % 2 ? FC(Object(n), !0).forEach(function (e) {
  40459.           YC(t, e, n[e])
  40460.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : FC(Object(n)).forEach(function (e) {
  40461.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  40462.         })
  40463.       }
  40464.       return t
  40465.     }
  40466.     function UC() {
  40467.       return (UC = Object.assign || function (e) {
  40468.         for (var t = 1; t < arguments.length; t++) {
  40469.           var n,
  40470.           a = arguments[t];
  40471.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  40472.         }
  40473.         return e
  40474.       }).apply(this, arguments)
  40475.     }
  40476.     function MC(e) {
  40477.       return function (e) {
  40478.         if (Array.isArray(e)) return BC(e)
  40479.       }(e) || function (e) {
  40480.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  40481.       }(e) || function (e, t) {
  40482.         if (e) {
  40483.           if ('string' == typeof e) return BC(e, t);
  40484.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  40485.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? BC(e, t) : void 0
  40486.         }
  40487.       }(e) || function () {
  40488.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  40489.       }()
  40490.     }
  40491.     function BC(e, t) {
  40492.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  40493.       return a
  40494.     }
  40495.     function zC(e, t) {
  40496.       for (var n = 0; n < t.length; n++) {
  40497.         var a = t[n];
  40498.         a.enumerable = a.enumerable || !1,
  40499.         a.configurable = !0,
  40500.         'value' in a && (a.writable = !0),
  40501.         Object.defineProperty(e, a.key, a)
  40502.       }
  40503.     }
  40504.     function HC(e, t) {
  40505.       return (HC = Object.setPrototypeOf || function (e, t) {
  40506.         return e.__proto__ = t,
  40507.         e
  40508.       }) (e, t)
  40509.     }
  40510.     function GC(n) {
  40511.       var a = function () {
  40512.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  40513.         if (Reflect.construct.sham) return !1;
  40514.         if ('function' == typeof Proxy) return !0;
  40515.         try {
  40516.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  40517.           ], function () {
  40518.           })),
  40519.           !0
  40520.         } catch (e) {
  40521.           return !1
  40522.         }
  40523.       }();
  40524.       return function () {
  40525.         var e,
  40526.         t = WC(n);
  40527.         return e = a ? (e = WC(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  40528.         t = this,
  40529.         !(e = e) || 'object' !== qC(e) && 'function' != typeof e ? VC(t) : e
  40530.       }
  40531.     }
  40532.     function VC(e) {
  40533.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  40534.       return e
  40535.     }
  40536.     function WC(e) {
  40537.       return (WC = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  40538.         return e.__proto__ || Object.getPrototypeOf(e)
  40539.       }) (e)
  40540.     }
  40541.     function YC(e, t, n) {
  40542.       return t in e ? Object.defineProperty(e, t, {
  40543.         value: n,
  40544.         enumerable: !0,
  40545.         configurable: !0,
  40546.         writable: !0
  40547.       }) : e[t] = n,
  40548.       e
  40549.     }
  40550.     h = function () {
  40551.       !function (e, t) {
  40552.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  40553.         e.prototype = Object.create(t && t.prototype, {
  40554.           constructor: {
  40555.             value: e,
  40556.             writable: !0,
  40557.             configurable: !0
  40558.           }
  40559.         }),
  40560.         t && HC(e, t)
  40561.       }(o, A);
  40562.       var e,
  40563.       t,
  40564.       n,
  40565.       r = GC(o);
  40566.       function o() {
  40567.         var a;
  40568.         !function (e, t) {
  40569.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  40570.         }(this, o);
  40571.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  40572.         return YC(VC(a = r.call.apply(r, [
  40573.           this
  40574.         ].concat(t))), 'state', {
  40575.           isEditing: !1,
  40576.           isSaving: !1,
  40577.           isReplying: !1,
  40578.           isExpanded: a.props.allExpanded,
  40579.           isCollapsible: !1,
  40580.           editInputContent: a.props.raw_message
  40581.         }),
  40582.         YC(VC(a), 'messageRef', C.a.createRef()),
  40583.         YC(VC(a), 'editInput', C.a.createRef()),
  40584.         YC(VC(a), 'replyInput', C.a.createRef()),
  40585.         YC(VC(a), 'node', C.a.createRef()),
  40586.         YC(VC(a), 'scrollToNode', function () {
  40587.           var e,
  40588.           t = a.node.current.getBoundingClientRect(),
  40589.           n = window.innerHeight || window.document.documentElement.clientHeight;
  40590.           0 <= t.top && t.bottom <= n || (e = t.top - window.document.body.getBoundingClientRect().top, window.scroll(0, Math.min(e - n / 2 + (t.bottom - t.top) / 2, e)))
  40591.         }),
  40592.         YC(VC(a), 'updateChecked', function (e) {
  40593.           a.props.updateChecked(a.props.id, e.target.checked)
  40594.         }),
  40595.         YC(VC(a), 'toggleExpanded', function () {
  40596.           var e = !a.state.isExpanded;
  40597.           a.props.allExpanded && !e && a.props.updateExpanded(e),
  40598.           a.setState({
  40599.             isExpanded: e
  40600.           })
  40601.         }),
  40602.         YC(VC(a), 'vote', function (e, t, n) {
  40603.           e.preventDefault(),
  40604.           a.props.updateVote(t, n)
  40605.         }),
  40606.         YC(VC(a), 'searchByIp', function (e) {
  40607.           e.preventDefault(),
  40608.           a.props.updateFetchData({
  40609.             searchQuery: 'post_ip_lookup:'.concat(a.props.id)
  40610.           })
  40611.         }),
  40612.         YC(VC(a), 'searchByEmail', function (e) {
  40613.           e.preventDefault(),
  40614.           a.props.updateFetchData({
  40615.             searchQuery: 'post_email_lookup:'.concat(a.props.id)
  40616.           })
  40617.         }),
  40618.         YC(VC(a), 'setPostActive', function (e) {
  40619.           var t;
  40620.           o.isActionableElement(e.target, a.node.current) || (t = je.a.partial(a.props.togglePostPanelVisible, a.props.id)),
  40621.           a.props.updateActivePost(a.props.id, t)
  40622.         }),
  40623.         YC(VC(a), 'startEdit', function (e) {
  40624.           'deleted' !== a.props.status && 'spam' !== a.props.status && (e && e.preventDefault(), a.props.emitTrackingEvent({
  40625.             verb: 'click',
  40626.             adjective: 'edit',
  40627.             object_type: 'link',
  40628.             object_id: a.props.id,
  40629.             thread_id: a.props.thread.id,
  40630.             page_url: a.props.url,
  40631.             extra_data: JSON.stringify({
  40632.               tab: a.props.activePage
  40633.             })
  40634.           }), a.state.isEditing ? a.getTextarea('edit').focus() : a.setState({
  40635.             isEditing: !0
  40636.           }))
  40637.         }),
  40638.         YC(VC(a), 'startEditHotkey', function (e) {
  40639.           a.props.isActive && a.startEdit(e)
  40640.         }),
  40641.         YC(VC(a), 'saveEdit', function (e) {
  40642.           e.preventDefault();
  40643.           var t = a.cleanMessage(a.editInput.current.value),
  40644.           e = a.validateEdit(t);
  40645.           e ? a.showPostError(e) : (a.setState({
  40646.             isSaving: !0
  40647.           }), a.props.updateMessage(a.props.id, t, a.finishEdit))
  40648.         }),
  40649.         YC(VC(a), 'finishEdit', function () {
  40650.           a.editInput.current.value = '',
  40651.           a.clearPostError(),
  40652.           a.setState({
  40653.             isEditing: !1,
  40654.             isSaving: !1
  40655.           }),
  40656.           a.props.emitTrackingEvent({
  40657.             verb: 'update',
  40658.             object_type: 'post',
  40659.             object_id: a.props.id,
  40660.             thread_id: a.props.thread.id,
  40661.             page_url: a.props.url,
  40662.             extra_data: JSON.stringify({
  40663.               tab: a.props.activePage
  40664.             })
  40665.           })
  40666.         }),
  40667.         YC(VC(a), 'startReply', function (e) {
  40668.           'deleted' !== a.props.status && 'spam' !== a.props.status && (e && e.preventDefault(), a.state.isReplying ? a.getTextarea('reply').focus() : a.setState({
  40669.             isReplying: !0
  40670.           }))
  40671.         }),
  40672.         YC(VC(a), 'startReplyHotkey', function (e) {
  40673.           a.props.isActive && a.startReply(e)
  40674.         }),
  40675.         YC(VC(a), 'saveReply', function (e) {
  40676.           e.preventDefault();
  40677.           var t = a.cleanMessage(a.replyInput.current.value),
  40678.           e = a.validateMessage(t);
  40679.           e ? a.showPostError(e) : (a.setState({
  40680.             isSaving: !0
  40681.           }), a.props.saveReply(a.props.id, t, a.finishReply, je.a.partial(a.showPostError, null, je.a)))
  40682.         }),
  40683.         YC(VC(a), 'showPostError', function (t, e) {
  40684.           try {
  40685.             t = t || JSON.parse(e.responseText).response
  40686.           } catch (e) {
  40687.             t = 'There was an error posting your comment.'
  40688.           }
  40689.           je.a.isString(t) && ~t.indexOf('verify your email') && (t = C.a.createElement('a', {
  40690.             href: 'https://disqus.com/verify',
  40691.             target: '_blank',
  40692.             rel: 'noopener noreferrer'
  40693.           }, t)),
  40694.           a.setState({
  40695.             isSaving: !1,
  40696.             error: t
  40697.           })
  40698.         }),
  40699.         YC(VC(a), 'clearPostError', function () {
  40700.           a.setState({
  40701.             error: null
  40702.           })
  40703.         }),
  40704.         YC(VC(a), 'finishReply', function () {
  40705.           a.replyInput.current.value = '',
  40706.           a.clearPostError(),
  40707.           a.setState({
  40708.             isReplying: !1,
  40709.             isSaving: !1
  40710.           })
  40711.         }),
  40712.         YC(VC(a), 'validateMessage', function (e) {
  40713.           if (je.a.isString(e)) return '' === e ? 'Comments can\'t be blank.' : e.length < 2 ? 'Comments must have at least 2 characters.' : void 0
  40714.         }),
  40715.         YC(VC(a), 'validateEdit', function (e) {
  40716.           var t = (new Date).toISOString();
  40717.           return a.props.editableUntil < t ? C.a.createElement('span', null, 'You can no longer edit this comment. Comments can only be edited within 7 days after posting. ', C.a.createElement('a', {
  40718.             href: 'https://help.disqus.com/commenting/remove-and-edit-your-comments',
  40719.             target: '_blank',
  40720.             rel: 'noopener noreferrer',
  40721.             style: {
  40722.               color: 'white ! important',
  40723.               textDecoration: 'underline'
  40724.             }
  40725.           }, 'Learn more')) : a.validateMessage(e)
  40726.         }),
  40727.         YC(VC(a), 'cleanMessage', function (e) {
  40728.           return e.replace(/^\s+|\s+$/g, '')
  40729.         }),
  40730.         YC(VC(a), 'setCollapsibility', function () {
  40731.           window.setTimeout(function () {
  40732.             a._styles || (a._styles = window.getComputedStyle(a.messageRef.current));
  40733.             var e = a.messageRef.current.clientHeight > 2 * ('' + a._styles['line-height'].slice(0, - 2));
  40734.             a.setState({
  40735.               isCollapsible: e
  40736.             })
  40737.           }, 0)
  40738.         }),
  40739.         YC(VC(a), 'getTextarea', function (e) {
  40740.           return a[''.concat(e, 'Input')].current
  40741.         }),
  40742.         YC(VC(a), 'removeFocus', function () {
  40743.           a.state.isEditing && a.getTextarea('edit').blur(),
  40744.           a.state.isReplying && a.getTextarea('reply').blur()
  40745.         }),
  40746.         YC(VC(a), 'performSuggestedUserAction', function () {
  40747.           var e;
  40748.           a.props.suggestedAction && yo.a.isFeatureActive('suggested_user_actions') && ((e = (VP.users[a.props.suggestedAction.userAction] || {
  40749.           }).banType) && (a.props.showUserPanel(a.props), a.props.updateBanFormType(e), a.props.updateUserListsModal({
  40750.             isOpen: !0,
  40751.             listType: 'blacklist'
  40752.           })))
  40753.         }),
  40754.         YC(VC(a), 'hasFeature', function (e) {
  40755.           return !!(a.props.saasFeatures && a.props.selection.organization && a.props.saasFeatures[a.props.selection.organization.id] && a.props.saasFeatures[a.props.selection.organization.id][e])
  40756.         }),
  40757.         a
  40758.       }
  40759.       return e = o,
  40760.       n = [
  40761.         {
  40762.           key: 'isActionableElement',
  40763.           value: function (n, a) {
  40764.             return ['a',
  40765.             'button',
  40766.             'input',
  40767.             'textarea'].some(function (e) {
  40768.               var t = n;
  40769.               do {
  40770.                 if (t.nodeName.toLowerCase() === e) return !0
  40771.               } while ((t = t.parentNode) && t !== a);
  40772.               return !1
  40773.             })
  40774.           }
  40775.         }
  40776.       ],
  40777.       (t = [
  40778.         {
  40779.           key: 'componentWillReceiveProps',
  40780.           value: function (e) {
  40781.             e.isActive && !this.props.isActive && this.scrollToNode(),
  40782.             e.allExpanded !== this.props.allExpanded && e.allExpanded !== this.state.isExpanded && this.setState({
  40783.               isExpanded: e.allExpanded
  40784.             })
  40785.           }
  40786.         },
  40787.         {
  40788.           key: 'componentDidUpdate',
  40789.           value: function (e, t) {
  40790.             this.state.isEditing && !t.isEditing && this.getTextarea('edit').focus(),
  40791.             this.state.isReplying && !t.isReplying && this.getTextarea('reply').focus(),
  40792.             e.message !== this.props.message && this.setCollapsibility()
  40793.           }
  40794.         },
  40795.         {
  40796.           key: 'componentDidMount',
  40797.           value: function () {
  40798.             this.props.selection.organization && this.props.fetchSaasFeatures(this.props.selection.organization.id),
  40799.             this.setCollapsibility(),
  40800.             this.props.addHotkeys(je.a.map(GP, function (e, t) {
  40801.               return je.a.isString(e) && (e = {
  40802.                 callbackName: e
  40803.               }),
  40804.               je.a.extend({
  40805.                 keyName: t,
  40806.                 callback: je.a.partial.apply(je.a, [
  40807.                   this[e.callbackName]
  40808.                 ].concat(MC(e.callbackArgs || [
  40809.                 ]))),
  40810.                 options: {
  40811.                 }
  40812.               }, e)
  40813.             }, this))
  40814.           }
  40815.         },
  40816.         {
  40817.           key: 'getUrl',
  40818.           value: function (e) {
  40819.             var t = e.tab,
  40820.             n = e.search,
  40821.             e = e.filters;
  40822.             return '/admin'.concat(hN.getUrl({
  40823.               tab: t = void 0 === t ? this.props.activePage : t,
  40824.               search: n = void 0 === n ? this.props.searchQuery : n,
  40825.               filters: e = void 0 === e ? this.props.searchFilters : e
  40826.             }))
  40827.           }
  40828.         },
  40829.         {
  40830.           key: 'render',
  40831.           value: function () {
  40832.             var t = this,
  40833.             e = {
  40834.             },
  40835.             n = {
  40836.             };
  40837.             this.state.isSaving && (n.disabled = e.disabled = !0);
  40838.             var a,
  40839.             r,
  40840.             o,
  40841.             i = Ve.a.getFromCookie().staff,
  40842.             s = !i && 'deleted' === this.props.status && this.props.isDeletedByAuthor,
  40843.             l = window._v5Config.forums[this.props.forum.id],
  40844.             c = (new Date).toISOString() < this.props.editableUntil,
  40845.             u = l && (l.permissions.canEdit || i) && c && !this.props.thread.isClosed && !this.props.isHighlighted,
  40846.             p = i && !u,
  40847.             d = Os.prettyDatetime(''.concat(this.props.createdAt, ' GMT')),
  40848.             m = Os.prettyDatetime(this.props.createdAt, 'absolute'),
  40849.             f = this.props.allExpanded || this.state.isExpanded,
  40850.             h = this.props.suggestedAction && (yo.a.isFeatureActive('suggested_user_actions') || VP.posts[this.props.suggestedAction.postAction]);
  40851.             this.props.child && (a = Os.prettyDatetime(''.concat(this.props.child.createdAt, ' GMT')), r = Os.prettyDatetime(this.props.child.createdAt, 'absolute')),
  40852.             o = ct() ().format(aC.a.ISO_8601) < this.props.editableUntil ? (b = Os.prettyDatetime(''.concat(this.props.editableUntil, '  GMT')), 'You have until '.concat(b, ' to edit this comment. ')) : 'The edit period for this comment has expired. ';
  40853.             var g = [
  40854.               'comment-moderate__card',
  40855.               this.props.status
  40856.             ];
  40857.             f || g.push('-collapsed'),
  40858.             this.props.hidden && g.push('hidden'),
  40859.             this.props.isActive && g.push('has-notch'),
  40860.             this.props.isApproved && 'unapproved' === this.props.status && (g = g.filter(function (e) {
  40861.               return 'unapproved' !== e
  40862.             })).push('approved');
  40863.             var g = g.join(' '),
  40864.             l = this.state.error ? C.a.createElement(Ki, {
  40865.               message: this.state.error,
  40866.               alertType: 'error',
  40867.               topMarginClass: 'spacing-top-narrow',
  40868.               onRequestClose: this.clearPostError
  40869.             }) : null,
  40870.             y = f ? 'url' : 'thumbnailURL',
  40871.             c = C.a.createElement('div', {
  40872.               className: this.state.isEditing ? 'hidden' : ''
  40873.             }, C.a.createElement('div', {
  40874.               className: 'message-wrapper'
  40875.             }, C.a.createElement('div', {
  40876.               className: 'message',
  40877.               ref: this.messageRef,
  40878.               dangerouslySetInnerHTML: {
  40879.                 __html: this.props.modMessage || this.props.message
  40880.               }
  40881.             })), 0 < this.props.media.length ? C.a.createElement('div', {
  40882.               className: 'comment-attachments'
  40883.             }, this.props.media.map(function (e, t) {
  40884.               return C.a.createElement('button', {
  40885.                 className: f ? '' : 'more',
  40886.                 key: t,
  40887.                 onClick: this.toggleExpanded
  40888.               }, e.mediaType === IC.a.MEDIA_TYPES.MP4_VIDEO ? C.a.createElement('video', {
  40889.                 autoPlay: !0,
  40890.                 muted: !0,
  40891.                 loop: !0,
  40892.                 className: 'img-responsive border-radius-sm',
  40893.                 src: e[y]
  40894.               }) : C.a.createElement('img', {
  40895.                 className: 'img-responsive border-radius-sm',
  40896.                 src: e[y]
  40897.               }))
  40898.             }, this)) : null, this.state.isCollapsible ? C.a.createElement('button', {
  40899.               className: 'text-small',
  40900.               onClick: this.toggleExpanded
  40901.             }, f ? 'less' : 'more') : null),
  40902.             i = this.props.selection.type === ft.forum && yo.a.isFeatureActive('spam_and_ban_moderation', {
  40903.               forum: this.props.selection.forum.name
  40904.             }),
  40905.             b = this.hasFeature('unapproveNewUsers') && this.props.forum.settings.unapproveNewUsersEnabled && this.props.isNewUserNeedsApproval && !this.props.author.isNewUserBypassed && this.props.selection.type === ft.forum && yo.a.isFeatureActive('new_user_premoderation', {
  40906.               forum: this.props.selection.forum.name
  40907.             });
  40908.             return C.a.createElement('li', {
  40909.               className: g,
  40910.               id: 'comment-'.concat(this.props.id),
  40911.               onClick: this.setPostActive,
  40912.               ref: this.node
  40913.             }, C.a.createElement('div', {
  40914.               className: 'align align--between align--wrap-mobile'
  40915.             }, C.a.createElement('div', {
  40916.               className: 'comment-moderate__title truncate-line'
  40917.             }, C.a.createElement('span', {
  40918.               className: 'spacing-right'
  40919.             }, s ? null : C.a.createElement('input', {
  40920.               className: 'post-checkbox',
  40921.               type: 'checkbox',
  40922.               checked: this.props.checked,
  40923.               onChange: this.updateChecked
  40924.             })), C.a.createElement('a', {
  40925.               href: this.props.url,
  40926.               target: 'new'
  40927.             }, this.props.thread.clean_title)), C.a.createElement(TC, {
  40928.               reputationLabel: this.props.author.reputationLabel,
  40929.               numReports: this.props.numReports,
  40930.               moderationLabels: this.props.moderationLabels,
  40931.               shadowBanned: this.props.shadowBanned,
  40932.               postId: this.props.id,
  40933.               flaggers: this.props.flaggers,
  40934.               fetchAllFlaggers: this.props.fetchAllFlaggers,
  40935.               forum: this.props.forum,
  40936.               hasAllModRules: this.hasFeature('allModRules')
  40937.             })), C.a.createElement('div', {
  40938.               className: 'comment-moderate__body'
  40939.             }, C.a.createElement('div', {
  40940.               className: 'spacing-top-narrow spacing-bottom align'
  40941.             }, C.a.createElement('div', {
  40942.               className: 'spacing-right spacing-top-small'
  40943.             }, C.a.createElement(OC, {
  40944.               contents: C.a.createElement('img', {
  40945.                 src: this.props.author.avatar.permalink,
  40946.                 className: 'comment-moderate__avatar border-radius-sm'
  40947.               }),
  40948.               showUserPanel: this.props.showUserPanel,
  40949.               post: this.props
  40950.             })), C.a.createElement('div', {
  40951.               className: 'comment-moderate__content'
  40952.             }, C.a.createElement('div', {
  40953.               className: 'align-min-tablet align--between align--wrap'
  40954.             }, C.a.createElement('div', null, C.a.createElement(OC, {
  40955.               contents: C.a.createElement('strong', null, this.props.author.name),
  40956.               showUserPanel: this.props.showUserPanel,
  40957.               post: this.props
  40958.             }), C.a.createElement(fC, {
  40959.               forum: this.props.forum,
  40960.               user: this.props.author,
  40961.               context: 'moderation',
  40962.               limit: 4
  40963.             }), C.a.createElement('a', {
  40964.               href: this.props.url,
  40965.               target: 'new',
  40966.               title: m,
  40967.               className: 'link-gray bullet'
  40968.             }, C.a.createElement('time', {
  40969.               className: 'time-ago'
  40970.             }, d)), this.props.isEdited ? C.a.createElement('span', {
  40971.               className: 'has-edit bullet'
  40972.             }, 'edited') : null), C.a.createElement('div', {
  40973.               className: 'spacing-right'
  40974.             }, C.a.createElement('span', {
  40975.               className: 'comment-author-info'
  40976.             }, this.props.author.email ? C.a.createElement('a', {
  40977.               href: this.getUrl({
  40978.                 search: 'post_email_lookup:'.concat(this.props.id)
  40979.               }),
  40980.               onClick: this.searchByEmail
  40981.             }, this.props.author.email) : 'email not available'), C.a.createElement('span', {
  40982.               className: 'bullet',
  40983.               'aria-hidden': 'true'
  40984.             }), C.a.createElement('a', {
  40985.               href: this.getUrl({
  40986.                 search: 'post_ip_lookup:'.concat(this.props.id)
  40987.               }),
  40988.               onClick: this.searchByIp
  40989.             }, this.props.ipAddress))), C.a.createElement('div', {
  40990.               className: 'comment-moderate__message'
  40991.             }, C.a.createElement('span', {
  40992.               className: 'flag'
  40993.             }), c, C.a.createElement('div', {
  40994.               className: 'spacing-narrow'.concat(this.state.isEditing ? '' : ' hidden')
  40995.             }, C.a.createElement('textarea', {
  40996.               className: 'comment-moderate__textarea',
  40997.               ref: this.editInput,
  40998.               rows: '5',
  40999.               value: this.state.editInputContent,
  41000.               onChange: function (e) {
  41001.                 return t.setState({
  41002.                   editInputContent: e.target.value
  41003.                 })
  41004.               }
  41005.             }), this.props.isApproved ? null : C.a.createElement('p', {
  41006.               className: 'reply-notice'
  41007.             }, 'Editing this comment will also approve it.'), C.a.createElement('div', {
  41008.               className: 'time-ago'
  41009.             }, o, C.a.createElement('a', {
  41010.               href: 'https://help.disqus.com/commenting/remove-and-edit-your-comments',
  41011.               target: '_blank',
  41012.               rel: 'noopener noreferrer',
  41013.               style: {
  41014.                 color: 'inherit',
  41015.                 textDecoration: 'underline',
  41016.                 textAlign: 'center'
  41017.               }
  41018.             }, 'Learn more')), C.a.createElement('div', null, C.a.createElement('button', {
  41019.               className: 'button button-small button-fill--brand spacing-right-small',
  41020.               onClick: this.saveEdit
  41021.             }, this.state.isSaving ? 'Saving...' : 'Save Edit'), C.a.createElement('button', UC({
  41022.               className: 'button button-small button-fill -dark-hover',
  41023.               onClick: this.finishEdit
  41024.             }, e), 'Cancel'), l)), 'deleted' === this.props.status || 'spam' === this.props.status || this.state.isEditing || this.state.isReplying ? null : C.a.createElement('div', {
  41025.               className: 'comment-moderate__vote'
  41026.             }, C.a.createElement('a', {
  41027.               href: '#',
  41028.               className: 'vote-up spacing-right link-gray'.concat(1 === this.props.userScore ? ' active' : ''),
  41029.               onClick: je.a.partial(this.vote, je.a, this.props.id, 1)
  41030.             }, C.a.createElement('span', {
  41031.               className: 'icon-arrow-up icon-tiny'
  41032.             }), ' ', C.a.createElement('span', {
  41033.               className: 'vote__count text-gray'
  41034.             }, this.props.likes)), C.a.createElement('a', {
  41035.               href: '#',
  41036.               className: 'vote-down spacing-right link-gray'.concat( - 1 === this.props.userScore ? ' active' : ''),
  41037.               onClick: je.a.partial(this.vote, je.a, this.props.id, - 1)
  41038.             }, C.a.createElement('span', {
  41039.               className: 'icon-arrow-down icon-tiny'
  41040.             }), ' ', C.a.createElement('span', {
  41041.               className: 'vote__count text-gray',
  41042.               'data-role': 'downvotes'
  41043.             }, this.props.dislikes)), u ? C.a.createElement('a', {
  41044.               href: '#',
  41045.               className: 'spacing-right '.concat(p ? ' is-staff-only' : ''),
  41046.               onClick: this.startEdit
  41047.             }, 'Edit') : null, C.a.createElement('a', {
  41048.               href: '#',
  41049.               className: 'spacing-right',
  41050.               onClick: this.startReply
  41051.             }, 'Reply')), this.props.child ? C.a.createElement('div', {
  41052.               className: 'spacing-top spacing-bottom align'
  41053.             }, C.a.createElement('div', {
  41054.               className: 'avatar spacing-top-small'
  41055.             }, C.a.createElement(OC, {
  41056.               contents: C.a.createElement('img', {
  41057.                 src: this.props.child.author.avatar.permalink,
  41058.                 className: 'comment-moderate__avatar border-radius-sm'
  41059.               }),
  41060.               showUserPanel: this.props.showUserPanel,
  41061.               post: this.props.child
  41062.             })), C.a.createElement('div', {
  41063.               className: 'comment-moderate__content'
  41064.             }, C.a.createElement('span', {
  41065.               className: 'comment-name'
  41066.             }, C.a.createElement(OC, {
  41067.               contents: C.a.createElement('strong', null, this.props.child.author.name),
  41068.               showUserPanel: this.props.showUserPanel,
  41069.               post: this.props.child
  41070.             })), C.a.createElement('span', {
  41071.               className: 'bullet',
  41072.               'aria-hidden': 'true'
  41073.             }), C.a.createElement('a', {
  41074.               href: this.props.child.url,
  41075.               target: 'new',
  41076.               title: r,
  41077.               className: 'link-gray'
  41078.             }, C.a.createElement('time', {
  41079.               className: 'time-ago'
  41080.             }, a)), C.a.createElement('div', {
  41081.               className: 'reply-summary',
  41082.               dangerouslySetInnerHTML: {
  41083.                 __html: this.props.child.modMessage || this.props.child.message
  41084.               }
  41085.             }))) : null, C.a.createElement('div', {
  41086.               className: 'spacing-narrow spacing-top'.concat(this.state.isReplying ? '' : ' hidden')
  41087.             }, C.a.createElement('textarea', {
  41088.               className: 'comment-moderate__textarea',
  41089.               ref: this.replyInput,
  41090.               rows: '5'
  41091.             }), this.props.isApproved ? null : C.a.createElement('p', {
  41092.               className: 'reply-notice'
  41093.             }, 'This comment will be automatically approved.'), C.a.createElement('div', null, C.a.createElement('button', {
  41094.               className: 'button button-small button-fill--brand spacing-right-small',
  41095.               onClick: this.saveReply
  41096.             }, this.state.isSaving ? 'Posting...' : 'Post Reply'), C.a.createElement('button', UC({
  41097.               className: 'button button-small button-fill -dark-hover',
  41098.               onClick: this.finishReply
  41099.             }, n), 'Cancel'), l))), C.a.createElement('div', {
  41100.               className: 'comment-moderate__action'
  41101.             }, this.props.isDeletedByAuthor ? C.a.createElement('em', null, ' This comment has been deleted by the user and can\'t be changed.') : C.a.createElement('div', null, C.a.createElement('button', {
  41102.               onClick: b ? function () {
  41103.                 return t.props.updateApproveModal({
  41104.                   approveModalIsOpen: !0,
  41105.                   approveModalPostId: t.props.id,
  41106.                   approveModalAuthor: t.props.author
  41107.                 })
  41108.               }
  41109.                : this.props.performActionOnPost.bind(null, 'approve', this.props.id, !1),
  41110.               className: 'action'.concat('approved' === this.props.status || s ? ' button-disabled' : ''),
  41111.               disabled: 'approved' === this.props.status || s
  41112.             }, C.a.createElement('span', {
  41113.               className: 'icon '.concat(WP.approve)
  41114.             }), 'Approve'), C.a.createElement('button', i ? {
  41115.               onClick: function () {
  41116.                 return t.props.updateUserListsModal({
  41117.                   isOpen: !0,
  41118.                   listType: 'blacklist',
  41119.                   formValues: LC(LC({
  41120.                   }, Wn.DEFAULT_FORM_VALUES), {
  41121.                   }, {
  41122.                     retroactiveAction: Wn.RETROACTIVE_ACTION_TYPES.MARK_AS_SPAM,
  41123.                     type: 'permanent',
  41124.                     replaceCancel: !0,
  41125.                     username: t.props.author.name,
  41126.                     email: t.props.author.email,
  41127.                     reason: 'Spam'
  41128.                   }),
  41129.                   postId: t.props.id,
  41130.                   author: t.props.author
  41131.                 })
  41132.               },
  41133.               className: 'action'.concat('spam' === this.props.status ? ' button-disabled' : ''),
  41134.               disabled: 'spam' === this.props.status
  41135.             }
  41136.              : {
  41137.               onClick: this.props.performActionOnPost.bind(null, 'spam', this.props.id, !1),
  41138.               className: 'action'.concat('spam' === this.props.status ? ' button-disabled' : ''),
  41139.               disabled: 'spam' === this.props.status
  41140.             }, C.a.createElement('span', {
  41141.               className: 'icon '.concat(WP.spam)
  41142.             }), 'Spam'), C.a.createElement('button', {
  41143.               onClick: this.props.performActionOnPost.bind(null, 'delete', this.props.id, !1),
  41144.               className: 'action'.concat('deleted' === this.props.status ? ' disabled' : ''),
  41145.               disabled: 'deleted' === this.props.status
  41146.             }, C.a.createElement('span', {
  41147.               className: 'icon '.concat(WP.delete)
  41148.             }), 'Delete'), YP && 'pending' === this.props.activePage ? C.a.createElement('div', {
  41149.               className: 'comment-moderate__suggested-action'.concat(h ? '' : ' disabled')
  41150.             }, C.a.createElement('span', {
  41151.               className: 'icon icon-lightning'
  41152.             }), C.a.createElement('span', null, h ? 'Suggested Action:' : 'No Suggested Action'), h ? C.a.createElement('span', {
  41153.               className: 'action -'.concat(this.props.suggestedAction.postAction),
  41154.               onClick: this.performSuggestedUserAction
  41155.             }, C.a.createElement('span', {
  41156.               className: [
  41157.                 'icon',
  41158.                 'icon-'.concat(VP.posts[this.props.suggestedAction.postAction].icon)
  41159.               ].join(' ')
  41160.             }), [
  41161.               (VP.posts[this.props.suggestedAction.postAction] || {
  41162.               }).text,
  41163.               yo.a.isFeatureActive('suggested_user_actions') ? (VP.users[this.props.suggestedAction.userAction] || {
  41164.               }).text : null
  41165.             ].filter(function (e) {
  41166.               return e
  41167.             }).join(' & ')) : null) : null), this.props.rule && jn[this.props.rule.action] && Dn[In[this.props.rule.filterName]] ? C.a.createElement('div', {
  41168.               className: 'comment-moderate__rule'
  41169.             }, C.a.createElement('strong', {
  41170.               className: '-'.concat(this.props.rule.action)
  41171.             }, C.a.createElement('span', {
  41172.               className: 'icon '.concat(WP[this.props.rule.action])
  41173.             }), jn[this.props.rule.action].past), ' because ', C.a.createElement(v.Link, {
  41174.               to: 'settings/moderation'
  41175.             }, Dn[In[this.props.rule.filterName]][this.props.rule.filterName].title)) : null)))))
  41176.           }
  41177.         }
  41178.       ]) && zC(e.prototype, t),
  41179.       n && zC(e, n),
  41180.       o
  41181.     }();
  41182.     YC(h, 'propTypes', LC(LC({
  41183.     }, Qs), {
  41184.     }, {
  41185.       showUserPanel: b.a.func.isRequired,
  41186.       togglePostPanelVisible: b.a.func.isRequired,
  41187.       activePage: b.a.oneOf(['pending',
  41188.       'approved',
  41189.       'spam',
  41190.       'deleted',
  41191.       'all']).isRequired,
  41192.       checked: b.a.bool.isRequired,
  41193.       updateChecked: b.a.func.isRequired,
  41194.       status: b.a.oneOf(['deleted',
  41195.       'spam',
  41196.       'approved',
  41197.       'unapproved']).isRequired,
  41198.       hidden: b.a.bool.isRequired,
  41199.       updateVote: b.a.func.isRequired,
  41200.       updateMessage: b.a.func.isRequired,
  41201.       saveReply: b.a.func.isRequired,
  41202.       performActionOnPost: b.a.func.isRequired,
  41203.       isActive: b.a.bool.isRequired,
  41204.       updateActivePost: b.a.func.isRequired,
  41205.       updateExpanded: b.a.func.isRequired,
  41206.       allExpanded: b.a.bool.isRequired,
  41207.       updateFetchData: b.a.func.isRequired,
  41208.       suggestedAction: b.a.shape({
  41209.         userAction: b.a.string,
  41210.         postAction: b.a.string,
  41211.         reasons: b.a.arrayOf(b.a.string).isRequired
  41212.       }),
  41213.       searchFilters: b.a.arrayOf(b.a.string).isRequired,
  41214.       selection: ht,
  41215.       searchQuery: b.a.string,
  41216.       fetchAllFlaggers: b.a.func.isRequired,
  41217.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  41218.       fetchSaasFeatures: b.a.func.isRequired,
  41219.       updateUserListsModal: b.a.func.isRequired,
  41220.       updateBanFormType: b.a.func.isRequired,
  41221.       addHotkeys: b.a.func.isRequired,
  41222.       emitTrackingEvent: b.a.func.isRequired
  41223.     }));
  41224.     var QC = Ni.a.attachDrivers(Object(u.connect) (function (e) {
  41225.       return {
  41226.         saasFeatures: e.saasFeatures,
  41227.         selection: e.selection
  41228.       }
  41229.     }, {
  41230.       fetchSaasFeatures: so.fetch,
  41231.       updateUserListsModal: Js.updateUserListsModal,
  41232.       updateBanFormType: Js.updateBanFormType,
  41233.       emitTrackingEvent: Xo({
  41234.         zone: 'moderation_panel',
  41235.         section: 'welcome',
  41236.         product: 'publisher_admin',
  41237.         area: 'card'
  41238.       })
  41239.     }) (h), [
  41240.       yl
  41241.     ]),
  41242.     Yc = function (e) {
  41243.       var t = e.children,
  41244.       n = e.message;
  41245.       return C.a.createElement('div', {
  41246.         className: ''.concat(e.className || '', ' mod-bar__alert align--between align--middle')
  41247.       }, C.a.createElement('p', {
  41248.         className: 'mod-bar__alert-message spacing-left'
  41249.       }, C.a.createElement('strong', null, n)), C.a.createElement('div', {
  41250.         className: 'mod-bar__actions'
  41251.       }, t))
  41252.     };
  41253.     Yc.displayName = 'ActionBar',
  41254.     Yc.propTypes = {
  41255.       children: b.a.node.isRequired,
  41256.       className: b.a.string,
  41257.       message: b.a.node.isRequired
  41258.     };
  41259.     var KC = Yc;
  41260.     function JC(e) {
  41261.       return (JC = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  41262.         return typeof e
  41263.       }
  41264.        : function (e) {
  41265.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  41266.       }) (e)
  41267.     }
  41268.     function $C(e, t) {
  41269.       for (var n = 0; n < t.length; n++) {
  41270.         var a = t[n];
  41271.         a.enumerable = a.enumerable || !1,
  41272.         a.configurable = !0,
  41273.         'value' in a && (a.writable = !0),
  41274.         Object.defineProperty(e, a.key, a)
  41275.       }
  41276.     }
  41277.     function ZC(e, t) {
  41278.       return (ZC = Object.setPrototypeOf || function (e, t) {
  41279.         return e.__proto__ = t,
  41280.         e
  41281.       }) (e, t)
  41282.     }
  41283.     function XC(n) {
  41284.       var a = function () {
  41285.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  41286.         if (Reflect.construct.sham) return !1;
  41287.         if ('function' == typeof Proxy) return !0;
  41288.         try {
  41289.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  41290.           ], function () {
  41291.           })),
  41292.           !0
  41293.         } catch (e) {
  41294.           return !1
  41295.         }
  41296.       }();
  41297.       return function () {
  41298.         var e,
  41299.         t = tR(n);
  41300.         return e = a ? (e = tR(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  41301.         t = this,
  41302.         !(e = e) || 'object' !== JC(e) && 'function' != typeof e ? eR(t) : e
  41303.       }
  41304.     }
  41305.     function eR(e) {
  41306.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  41307.       return e
  41308.     }
  41309.     function tR(e) {
  41310.       return (tR = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  41311.         return e.__proto__ || Object.getPrototypeOf(e)
  41312.       }) (e)
  41313.     }
  41314.     function nR(e, t, n) {
  41315.       return t in e ? Object.defineProperty(e, t, {
  41316.         value: n,
  41317.         enumerable: !0,
  41318.         configurable: !0,
  41319.         writable: !0
  41320.       }) : e[t] = n,
  41321.       e
  41322.     }
  41323.     var aR = {
  41324.       user: {
  41325.         description: 'search by username'
  41326.       },
  41327.       ip: {
  41328.         description: 'search by IP address'
  41329.       },
  41330.       email: {
  41331.         description: 'search by email address'
  41332.       },
  41333.       thread: {
  41334.         description: 'search by thread ID#'
  41335.       },
  41336.       id: {
  41337.         description: 'search by comment ID#'
  41338.       }
  41339.     },
  41340.     i = function () {
  41341.       !function (e, t) {
  41342.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  41343.         e.prototype = Object.create(t && t.prototype, {
  41344.           constructor: {
  41345.             value: e,
  41346.             writable: !0,
  41347.             configurable: !0
  41348.           }
  41349.         }),
  41350.         t && ZC(e, t)
  41351.       }(o, A);
  41352.       var e,
  41353.       t,
  41354.       n,
  41355.       r = XC(o);
  41356.       function o() {
  41357.         var t;
  41358.         !function (e, t) {
  41359.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  41360.         }(this, o);
  41361.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  41362.         return nR(eR(t = r.call.apply(r, [
  41363.           this
  41364.         ].concat(n))), 'activate', function () {
  41365.           t.props.changeActive(!0)
  41366.         }),
  41367.         nR(eR(t), 'focus', function () {
  41368.           t.searchInput.focus()
  41369.         }),
  41370.         nR(eR(t), 'clearSearch', function () {
  41371.           t.props.updateFetchData({
  41372.             searchQuery: ''
  41373.           })
  41374.         }),
  41375.         nR(eR(t), 'fetchQuery', function () {
  41376.           var e = t.props.localSearchQuery.replace(/\//g, '%2F');
  41377.           t.props.updateFetchData({
  41378.             searchQuery: e
  41379.           }),
  41380.           t.props.changeActive(!1)
  41381.         }),
  41382.         nR(eR(t), 'updateQueryTag', function (e) {
  41383.           e = t.props.localSearchQuery.match(/^\s*\w+:/) ? t.props.localSearchQuery.replace(/^\s*\w*:/, ''.concat(e, ':')) : ''.concat(e, ':').concat(t.props.localSearchQuery);
  41384.           t.props.updateLocalQuery(e)
  41385.         }),
  41386.         nR(eR(t), 'handleChange', function (e) {
  41387.           t.props.updateLocalQuery(e.target.value)
  41388.         }),
  41389.         nR(eR(t), 'handleKeyDown', function (e) {
  41390.           13 === e.keyCode && t.fetchQuery()
  41391.         }),
  41392.         nR(eR(t), 'handleBlur', function (e) {
  41393.           t.searchDropdown && t.searchDropdown.contains(e.relatedTarget) || t.props.changeActive(!1)
  41394.         }),
  41395.         t
  41396.       }
  41397.       return e = o,
  41398.       (t = [
  41399.         {
  41400.           key: 'componentDidMount',
  41401.           value: function () {
  41402.             this.props.searchQuery && this.props.updateLocalQuery(this.props.searchQuery)
  41403.           }
  41404.         },
  41405.         {
  41406.           key: 'componentWillReceiveProps',
  41407.           value: function (e) {
  41408.             this.props.searchQuery !== e.searchQuery && this.props.updateLocalQuery(e.searchQuery)
  41409.           }
  41410.         },
  41411.         {
  41412.           key: 'componentDidUpdate',
  41413.           value: function () {
  41414.             this.props.isActive ? this.focus() : this.searchInput.blur()
  41415.           }
  41416.         },
  41417.         {
  41418.           key: 'render',
  41419.           value: function () {
  41420.             var t = this,
  41421.             e = this.props.isActive && !/[\w:]\s/.test(this.props.localSearchQuery);
  41422.             return C.a.createElement('div', {
  41423.               className: 'align align__item--grow'
  41424.             }, C.a.createElement('input', {
  41425.               ref: function (e) {
  41426.                 t.searchInput = e
  41427.               },
  41428.               'aria-label': 'Search all',
  41429.               placeholder: 'Search all...',
  41430.               value: window.decodeURIComponent(this.props.localSearchQuery),
  41431.               onChange: this.handleChange,
  41432.               onKeyDown: this.handleKeyDown,
  41433.               onFocus: this.activate,
  41434.               onBlur: this.handleBlur,
  41435.               className: 'input--textbox mod-bar__search align__item--grow'
  41436.             }), C.a.createElement('button', {
  41437.               className: 'mod-bar__search-icon icon-mod-search',
  41438.               onClick: this.fetchQuery
  41439.             }), this.props.searchQuery ? C.a.createElement('span', {
  41440.               className: 'mod-bar__clear',
  41441.               onClick: this.clearSearch
  41442.             }, '×') : null, e ? C.a.createElement('div', {
  41443.               tabIndex: '1',
  41444.               ref: function (e) {
  41445.                 t.searchDropdown = e
  41446.               },
  41447.               className: 'mod-bar__search-dropdown',
  41448.               onClick: this.focus
  41449.             }, C.a.createElement('strong', null, 'Try searching with one of these search parameters:'), C.a.createElement('ul', {
  41450.               className: 'spacing-bottom'
  41451.             }, Object.keys(aR).map(function (e) {
  41452.               return C.a.createElement('li', {
  41453.                 className: 'mod-bar__search-dropdown-item',
  41454.                 key: e
  41455.               }, C.a.createElement('button', {
  41456.                 className: 'mod-bar__search-dropdown-button',
  41457.                 onClick: t.updateQueryTag.bind(t, e),
  41458.                 tabIndex: '-1'
  41459.               }, e, ':'), C.a.createElement('span', {
  41460.                 className: 'hidden-sm'
  41461.               }, aR[e].description))
  41462.             }))) : null)
  41463.           }
  41464.         }
  41465.       ]) && $C(e.prototype, t),
  41466.       n && $C(e, n),
  41467.       o
  41468.     }();
  41469.     nR(i, 'displayName', 'ModerateSearch'),
  41470.     nR(i, 'propTypes', {
  41471.       localSearchQuery: b.a.string.isRequired,
  41472.       isActive: b.a.bool.isRequired,
  41473.       updateLocalQuery: b.a.func.isRequired,
  41474.       changeActive: b.a.func.isRequired,
  41475.       searchQuery: b.a.string.isRequired,
  41476.       updateFetchData: b.a.func.isRequired
  41477.     });
  41478.     function rR(e) {
  41479.       var a = e.selected,
  41480.       r = e.onChange;
  41481.       return C.a.createElement('ul', {
  41482.         className: 'mod-bar__dropdown-menu'
  41483.       }, e.options.map(function (e) {
  41484.         var t = e.key,
  41485.         n = e.label,
  41486.         e = !!~a.indexOf(t);
  41487.         return C.a.createElement('li', {
  41488.           key: t
  41489.         }, C.a.createElement('button', {
  41490.           onClick: function () {
  41491.             return r(t)
  41492.           },
  41493.           className: [
  41494.             'mod-bar__dropdown-menu-item mod-bar__section align align--middle',
  41495.             e ? 'active' : ''
  41496.           ].join(' ')
  41497.         }, C.a.createElement('span', {
  41498.           className: [
  41499.             'icon-mod-check text-gray-dark text-small mod-bar__dropdown-icon align__item',
  41500.             e ? '' : '-no-icon'
  41501.           ].join(' ')
  41502.         }), C.a.createElement('span', {
  41503.           className: 'align__item'
  41504.         }, n)))
  41505.       }))
  41506.     }
  41507.     var oR = Object(u.connect) (function (e) {
  41508.       return e.moderateSearch
  41509.     }, I) (i),
  41510.     h = b.a.arrayOf(b.a.shape({
  41511.       key: b.a.string,
  41512.       label: b.a.string
  41513.     })).isRequired;
  41514.     rR.propTypes = {
  41515.       options: h,
  41516.       selected: b.a.arrayOf(b.a.string).isRequired,
  41517.       onChange: b.a.func.isRequired
  41518.     };
  41519.     Yc = function (t) {
  41520.       var e,
  41521.       n = t.buttonLabel || '';
  41522.       return n || !t.selected.length || (e = je.a.find(t.options, function (e) {
  41523.         return e.key === t.selected[0]
  41524.       })) && (n = e.label),
  41525.       C.a.createElement(Qc.a, {
  41526.         className: 'mod-bar__item mod-bar__section',
  41527.         buttonChildren: C.a.createElement('div', {
  41528.           className: 'align align--middle'
  41529.         }, C.a.createElement('span', {
  41530.           className: ''.concat(t.icon, ' mod-bar__dropdown-icon align__item')
  41531.         }), C.a.createElement('span', {
  41532.           className: 'align__item align__item--grow'
  41533.         }, n), C.a.createElement('span', {
  41534.           className: 'icon-arrow mod-bar__dropdown-icon align__item'
  41535.         })),
  41536.         dropdownClassName: 'mod-bar__dropdown align__item--grow',
  41537.         autoClose: t.autoClose,
  41538.         onOpen: t.onOpen,
  41539.         onClose: t.onClose
  41540.       }, C.a.createElement(rR, {
  41541.         options: t.options,
  41542.         selected: t.selected,
  41543.         onChange: t.onChange
  41544.       }))
  41545.     };
  41546.     Yc.defaultProps = {
  41547.       autoClose: !0
  41548.     },
  41549.     Yc.propTypes = {
  41550.       buttonLabel: b.a.node,
  41551.       icon: b.a.string.isRequired,
  41552.       options: h,
  41553.       selected: b.a.arrayOf(b.a.string).isRequired,
  41554.       onChange: b.a.func.isRequired,
  41555.       autoClose: b.a.bool,
  41556.       onOpen: b.a.func,
  41557.       onClose: b.a.func
  41558.     };
  41559.     var iR,
  41560.     sR = Yc;
  41561.     function lR(e) {
  41562.       return (lR = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  41563.         return typeof e
  41564.       }
  41565.        : function (e) {
  41566.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  41567.       }) (e)
  41568.     }
  41569.     function cR() {
  41570.       return (cR = Object.assign || function (e) {
  41571.         for (var t = 1; t < arguments.length; t++) {
  41572.           var n,
  41573.           a = arguments[t];
  41574.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  41575.         }
  41576.         return e
  41577.       }).apply(this, arguments)
  41578.     }
  41579.     function uR(e) {
  41580.       return function (e) {
  41581.         if (Array.isArray(e)) return pR(e)
  41582.       }(e) || function (e) {
  41583.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  41584.       }(e) || function (e, t) {
  41585.         if (e) {
  41586.           if ('string' == typeof e) return pR(e, t);
  41587.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  41588.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? pR(e, t) : void 0
  41589.         }
  41590.       }(e) || function () {
  41591.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  41592.       }()
  41593.     }
  41594.     function pR(e, t) {
  41595.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  41596.       return a
  41597.     }
  41598.     function dR(e, t) {
  41599.       for (var n = 0; n < t.length; n++) {
  41600.         var a = t[n];
  41601.         a.enumerable = a.enumerable || !1,
  41602.         a.configurable = !0,
  41603.         'value' in a && (a.writable = !0),
  41604.         Object.defineProperty(e, a.key, a)
  41605.       }
  41606.     }
  41607.     function mR(e, t) {
  41608.       return (mR = Object.setPrototypeOf || function (e, t) {
  41609.         return e.__proto__ = t,
  41610.         e
  41611.       }) (e, t)
  41612.     }
  41613.     function fR(n) {
  41614.       var a = function () {
  41615.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  41616.         if (Reflect.construct.sham) return !1;
  41617.         if ('function' == typeof Proxy) return !0;
  41618.         try {
  41619.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  41620.           ], function () {
  41621.           })),
  41622.           !0
  41623.         } catch (e) {
  41624.           return !1
  41625.         }
  41626.       }();
  41627.       return function () {
  41628.         var e,
  41629.         t = gR(n);
  41630.         return e = a ? (e = gR(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  41631.         t = this,
  41632.         !(e = e) || 'object' !== lR(e) && 'function' != typeof e ? hR(t) : e
  41633.       }
  41634.     }
  41635.     function hR(e) {
  41636.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  41637.       return e
  41638.     }
  41639.     function gR(e) {
  41640.       return (gR = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  41641.         return e.__proto__ || Object.getPrototypeOf(e)
  41642.       }) (e)
  41643.     }
  41644.     function yR(e, t, n) {
  41645.       return t in e ? Object.defineProperty(e, t, {
  41646.         value: n,
  41647.         enumerable: !0,
  41648.         configurable: !0,
  41649.         writable: !0
  41650.       }) : e[t] = n,
  41651.       e
  41652.     }
  41653.     var bR = 750,
  41654.     i = function () {
  41655.       !function (e, t) {
  41656.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  41657.         e.prototype = Object.create(t && t.prototype, {
  41658.           constructor: {
  41659.             value: e,
  41660.             writable: !0,
  41661.             configurable: !0
  41662.           }
  41663.         }),
  41664.         t && mR(e, t)
  41665.       }(o, A);
  41666.       var e,
  41667.       t,
  41668.       n,
  41669.       r = fR(o);
  41670.       function o(e) {
  41671.         var a,
  41672.         t,
  41673.         n;
  41674.         return function (e, t) {
  41675.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  41676.         }(this, o),
  41677.         yR(hR(a = r.call(this, e)), 'toggleChecked', function (e) {
  41678.           a.props.updatePostsChecked(a.props.postIds, e.target.checked)
  41679.         }),
  41680.         yR(hR(a), 'toggleExpanded', function () {
  41681.           a.props.updateExpanded(!a.props.allExpanded)
  41682.         }),
  41683.         yR(hR(a), 'updateDate', function (e, t) {
  41684.           a.props.updateFetchData({
  41685.             startDate: e,
  41686.             endDate: t.endOf('day')
  41687.           })
  41688.         }),
  41689.         yR(hR(a), 'hideDatePicker', function () {
  41690.           a.setState({
  41691.             showDatePicker: !1
  41692.           })
  41693.         }),
  41694.         yR(hR(a), 'onDateChange', function (e) {
  41695.           var t = a.props.startDate;
  41696.           switch (e) {
  41697.             case 'day':
  41698.             case 'week':
  41699.             case 'month':
  41700.             case 'year':
  41701.               t = ct() ().startOf('day').subtract(1, e);
  41702.               break;
  41703.             case 'custom':
  41704.               return void a.setState({
  41705.                 dateRange: e,
  41706.                 showDatePicker: !0
  41707.               });
  41708.             case 'all':
  41709.             default:
  41710.               t = a.props.minDate
  41711.           }
  41712.           'custom' !== e && Is.a.set(AP, e),
  41713.           a.setState({
  41714.             dateRange: e
  41715.           }),
  41716.           a.updateDate(t, ct() ().endOf('day'))
  41717.         }),
  41718.         yR(hR(a), 'handleFilterToggle', function (e) {
  41719.           clearTimeout(iR);
  41720.           var t = uR(a.state.filters),
  41721.           n = t.indexOf(e);
  41722.           0 <= n ? t.splice(n, 1) : t.push(e),
  41723.           a.setState({
  41724.             filters: t
  41725.           }),
  41726.           iR = setTimeout(a.handleFiltersClose, bR)
  41727.         }),
  41728.         yR(hR(a), 'handleFiltersClose', function () {
  41729.           clearTimeout(iR),
  41730.           a.props.updateFetchData({
  41731.             filters: a.state.filters
  41732.           })
  41733.         }),
  41734.         yR(hR(a), 'handleScroll', function () {
  41735.           var e;
  41736.           a.actionBarContainer && (e = a.actionBarContainer.getBoundingClientRect().top <= 0, a.setState({
  41737.             isFixed: e,
  41738.             actionBarFillerHeight: e ? a.actionBarHolder.clientHeight : 0
  41739.           }))
  41740.         }),
  41741.         yR(hR(a), 'undoAction', function (e) {
  41742.           e.preventDefault(),
  41743.           a.props.undoAction()
  41744.         }),
  41745.         yR(hR(a), 'updateSortOrder', function (e) {
  41746.           a.props.updateFetchData({
  41747.             sortOrder: e
  41748.           }),
  41749.           Is.a.set(qP, e)
  41750.         }),
  41751.         yR(hR(a), 'handleGoToTop', function () {
  41752.           window.scroll(0, 0)
  41753.         }),
  41754.         n = a.props.endDate.isSame(ct() ().endOf('day')) ? a.props.startDate.isSame(a.props.minDate) ? 'all' : (t = a.props.startDate, (n = je.a.find(DP, function (e) {
  41755.           return t.isSame(ct() ().startOf('day').subtract(1, e.key))
  41756.         })) ? n.key : 'custom') : 'custom',
  41757.         a.state = {
  41758.           dateRange: n,
  41759.           showDatePicker: !1,
  41760.           filters: a.props.searchFilters,
  41761.           isFixed: !1,
  41762.           actionBarFillerHeight: 0
  41763.         },
  41764.         a
  41765.       }
  41766.       return e = o,
  41767.       (t = [
  41768.         {
  41769.           key: 'componentDidMount',
  41770.           value: function () {
  41771.             this.handleScroll = je.a.throttle(this.handleScroll, 250),
  41772.             window.addEventListener('scroll', this.handleScroll)
  41773.           }
  41774.         },
  41775.         {
  41776.           key: 'componentWillReceiveProps',
  41777.           value: function (e) {
  41778.             this.props.searchFilters !== e.searchFilters && this.setState({
  41779.               filters: e.searchFilters
  41780.             })
  41781.           }
  41782.         },
  41783.         {
  41784.           key: 'componentWillUnmount',
  41785.           value: function () {
  41786.             window.removeEventListener('scroll', this.handleScroll)
  41787.           }
  41788.         },
  41789.         {
  41790.           key: 'render',
  41791.           value: function () {
  41792.             var t = this,
  41793.             e = this.state.isFixed,
  41794.             n = {
  41795.             };
  41796.             this.props.allChecked && (n.checked = !0);
  41797.             var a = 'mod-bar__wrapper',
  41798.             r = this.props.panelOpen ? 'align-min-desktop' : 'align-min-tablet',
  41799.             o = null;
  41800.             e && (o = C.a.createElement('button', {
  41801.               className: 'button button-link visible-sm padding',
  41802.               onClick: this.handleGoToTop
  41803.             }, 'Back to Top'), a += ' fixed');
  41804.             var i = null;
  41805.             this.props.actionCompleteMessage ? i = C.a.createElement(KC, {
  41806.               className: r,
  41807.               message: this.props.actionCompleteMessage
  41808.             }, C.a.createElement('span', null, this.props.canUndo ? C.a.createElement('button', {
  41809.               key: 'undo',
  41810.               className: 'mod-bar__button -secondary',
  41811.               onClick: this.undoAction
  41812.             }, 'Undo') : null, C.a.createElement('button', {
  41813.               key: 'ok',
  41814.               className: 'mod-bar__button -gray',
  41815.               onClick: this.props.dismissMessage
  41816.             }, 'OK'))) : this.props.numChecked && (i = C.a.createElement(KC, {
  41817.               className: r,
  41818.               message: ''.concat(RP(this.props.numChecked), ' selected')
  41819.             }, YP && 'pending' === this.props.activePage ? C.a.createElement('span', null, C.a.createElement('button', {
  41820.               key: 'suggestions',
  41821.               className: 'mod-bar__button -gray spacing-right',
  41822.               onClick: this.props.performSuggestedActions
  41823.             }, 'Accept Suggested Actions')) : null, C.a.createElement('span', null, C.a.createElement('button', {
  41824.               key: 'approve',
  41825.               className: 'mod-bar__button -gray -grouped',
  41826.               onClick: je.a.partial(this.props.performAction, 'approve')
  41827.             }, 'Approve'), C.a.createElement('button', {
  41828.               key: 'spam',
  41829.               className: 'mod-bar__button -gray -grouped',
  41830.               onClick: je.a.partial(this.props.performAction, 'spam')
  41831.             }, 'Spam'), C.a.createElement('button', {
  41832.               key: 'delete',
  41833.               className: 'mod-bar__button -gray -grouped',
  41834.               onClick: je.a.partial(this.props.performAction, 'delete')
  41835.             }, 'Delete'))));
  41836.             var s,
  41837.             l = null;
  41838.             return 'custom' === this.state.dateRange && (s = this.props.startDate.format('M/D/YY'), r = this.props.endDate.format('M/D/YY'), l = ''.concat(s, ' - ').concat(r)),
  41839.             C.a.createElement('div', {
  41840.               ref: function (e) {
  41841.                 t.actionBarContainer = e
  41842.               }
  41843.             }, C.a.createElement('div', {
  41844.               style: {
  41845.                 height: this.state.actionBarFillerHeight
  41846.               }
  41847.             }), C.a.createElement('div', {
  41848.               ref: function (e) {
  41849.                 t.actionBarHolder = e
  41850.               },
  41851.               className: a
  41852.             }, C.a.createElement('div', {
  41853.               className: 'mod-bar__filters align align--between align--middle'
  41854.             }, o, C.a.createElement('div', {
  41855.               className: 'align align--wrap align__item--grow'.concat(e ? ' hidden-sm' : '')
  41856.             }, C.a.createElement('div', {
  41857.               className: 'align align__item--grow'
  41858.             }, C.a.createElement('span', {
  41859.               className: 'mod-bar__item mod-bar__check align align--middle align--center'
  41860.             }, C.a.createElement('input', cR({
  41861.               type: 'checkbox',
  41862.               checked: n.checked || !1,
  41863.               onChange: this.toggleChecked
  41864.             }, n))), C.a.createElement('div', {
  41865.               className: 'mod-bar__item mod-bar__search-wrapper relative__wrapper align align__item--grow'
  41866.             }, C.a.createElement(oR, {
  41867.               searchQuery: this.props.searchQuery,
  41868.               updateFetchData: this.props.updateFetchData
  41869.             }))), C.a.createElement('button', {
  41870.               className: 'mod-bar__section mod-bar__item -expand -no-icon',
  41871.               onClick: this.toggleExpanded
  41872.             }, this.props.allExpanded ? 'Collapse' : 'Expand'), C.a.createElement('div', {
  41873.               className: 'align align__item--grow'
  41874.             }, C.a.createElement(sR, {
  41875.               buttonLabel: 'Filter '.concat(this.props.searchFilters.length ? '('.concat(this.props.searchFilters.length, ')') : 'by'),
  41876.               options: this.props.searchFilterOptions,
  41877.               selected: this.state.filters,
  41878.               icon: 'icon-filter',
  41879.               onChange: this.handleFilterToggle,
  41880.               onClose: this.handleFiltersClose,
  41881.               autoClose: !1
  41882.             })), C.a.createElement('div', {
  41883.               className: 'align align__item--grow'
  41884.             }, C.a.createElement(sR, {
  41885.               buttonLabel: l,
  41886.               options: DP,
  41887.               selected: [
  41888.                 this.state.dateRange
  41889.               ],
  41890.               icon: 'icon-calendar',
  41891.               onChange: this.onDateChange
  41892.             }), C.a.createElement(zp.a, {
  41893.               onOutsideClick: this.hideDatePicker,
  41894.               className: 'mod-bar__date '.concat(this.state.showDatePicker && !e ? '' : 'hidden'),
  41895.               active: this.state.showDatePicker
  41896.             }, C.a.createElement(Zp, {
  41897.               maxDate: this.props.maxDate,
  41898.               minDate: this.props.minDate,
  41899.               startDate: this.props.startDate,
  41900.               endDate: this.props.endDate,
  41901.               onDateChange: this.updateDate,
  41902.               alwaysOpen: !0
  41903.             })), C.a.createElement(sR, {
  41904.               options: FP,
  41905.               selected: [
  41906.                 this.props.sortOrder
  41907.               ],
  41908.               icon: 'icon-sort',
  41909.               onChange: this.updateSortOrder
  41910.             })))), i))
  41911.           }
  41912.         }
  41913.       ]) && dR(e.prototype, t),
  41914.       n && dR(e, n),
  41915.       o
  41916.     }();
  41917.     yR(i, 'propTypes', {
  41918.       postIds: b.a.array,
  41919.       performAction: b.a.func.isRequired,
  41920.       undoAction: b.a.func.isRequired,
  41921.       canUndo: b.a.bool.isRequired,
  41922.       updatePostsChecked: b.a.func.isRequired,
  41923.       updateExpanded: b.a.func.isRequired,
  41924.       dismissMessage: b.a.func.isRequired,
  41925.       actionCompleteMessage: b.a.string,
  41926.       allChecked: b.a.bool,
  41927.       allExpanded: b.a.bool,
  41928.       activePage: b.a.string,
  41929.       sortOrder: b.a.string,
  41930.       searchQuery: b.a.string.isRequired,
  41931.       searchFilters: b.a.arrayOf(b.a.string).isRequired,
  41932.       searchFilterOptions: b.a.arrayOf(b.a.object).isRequired,
  41933.       updateFetchData: b.a.func.isRequired,
  41934.       performSuggestedActions: b.a.func.isRequired,
  41935.       numChecked: b.a.number.isRequired,
  41936.       panelOpen: b.a.bool.isRequired,
  41937.       startDate: s.moment.isRequired,
  41938.       endDate: s.moment.isRequired,
  41939.       maxDate: s.moment.isRequired,
  41940.       minDate: s.moment.isRequired
  41941.     });
  41942.     var vR = i;
  41943.     function _R(e) {
  41944.       return (_R = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  41945.         return typeof e
  41946.       }
  41947.        : function (e) {
  41948.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  41949.       }) (e)
  41950.     }
  41951.     function ER(t, e) {
  41952.       var n,
  41953.       a = Object.keys(t);
  41954.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  41955.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  41956.       })), a.push.apply(a, n)),
  41957.       a
  41958.     }
  41959.     function OR(t) {
  41960.       for (var e = 1; e < arguments.length; e++) {
  41961.         var n = null != arguments[e] ? arguments[e] : {
  41962.         };
  41963.         e % 2 ? ER(Object(n), !0).forEach(function (e) {
  41964.           CR(t, e, n[e])
  41965.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : ER(Object(n)).forEach(function (e) {
  41966.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  41967.         })
  41968.       }
  41969.       return t
  41970.     }
  41971.     function SR(e, t) {
  41972.       for (var n = 0; n < t.length; n++) {
  41973.         var a = t[n];
  41974.         a.enumerable = a.enumerable || !1,
  41975.         a.configurable = !0,
  41976.         'value' in a && (a.writable = !0),
  41977.         Object.defineProperty(e, a.key, a)
  41978.       }
  41979.     }
  41980.     function wR(e, t) {
  41981.       return (wR = Object.setPrototypeOf || function (e, t) {
  41982.         return e.__proto__ = t,
  41983.         e
  41984.       }) (e, t)
  41985.     }
  41986.     function PR(n) {
  41987.       var a = function () {
  41988.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  41989.         if (Reflect.construct.sham) return !1;
  41990.         if ('function' == typeof Proxy) return !0;
  41991.         try {
  41992.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  41993.           ], function () {
  41994.           })),
  41995.           !0
  41996.         } catch (e) {
  41997.           return !1
  41998.         }
  41999.       }();
  42000.       return function () {
  42001.         var e,
  42002.         t = NR(n);
  42003.         return e = a ? (e = NR(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42004.         t = this,
  42005.         !(e = e) || 'object' !== _R(e) && 'function' != typeof e ? kR(t) : e
  42006.       }
  42007.     }
  42008.     function kR(e) {
  42009.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  42010.       return e
  42011.     }
  42012.     function NR(e) {
  42013.       return (NR = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  42014.         return e.__proto__ || Object.getPrototypeOf(e)
  42015.       }) (e)
  42016.     }
  42017.     function CR(e, t, n) {
  42018.       return t in e ? Object.defineProperty(e, t, {
  42019.         value: n,
  42020.         enumerable: !0,
  42021.         configurable: !0,
  42022.         writable: !0
  42023.       }) : e[t] = n,
  42024.       e
  42025.     }
  42026.     h = function () {
  42027.       !function (e, t) {
  42028.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  42029.         e.prototype = Object.create(t && t.prototype, {
  42030.           constructor: {
  42031.             value: e,
  42032.             writable: !0,
  42033.             configurable: !0
  42034.           }
  42035.         }),
  42036.         t && wR(e, t)
  42037.       }(o, A);
  42038.       var e,
  42039.       t,
  42040.       n,
  42041.       r = PR(o);
  42042.       function o() {
  42043.         var n;
  42044.         !function (e, t) {
  42045.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  42046.         }(this, o);
  42047.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  42048.         return CR(kR(n = r.call.apply(r, [
  42049.           this
  42050.         ].concat(t))), 'state', {
  42051.           userItems: null,
  42052.           postItems: null,
  42053.           objects: {
  42054.           }
  42055.         }),
  42056.         CR(kR(n), 'updateUserHistory', function (e, t) {
  42057.           n.setState({
  42058.             userItems: null
  42059.           }),
  42060.           n.userAPICall = io.a.call('forums/listUserModerationHistory', {
  42061.             data: {
  42062.               forum: t,
  42063.               user: e,
  42064.               limit: 10
  42065.             }
  42066.           }).done(function (t) {
  42067.             n.setState(function (e) {
  42068.               return {
  42069.                 userItems: t.response.items,
  42070.                 objects: OR(OR({
  42071.                 }, e.objects), t.response.objects)
  42072.               }
  42073.             })
  42074.           })
  42075.         }),
  42076.         CR(kR(n), 'updatePostHistory', function (e) {
  42077.           n.setState({
  42078.             postItems: null
  42079.           }),
  42080.           n.postAPICall = io.a.call('posts/listModerationHistory', {
  42081.             data: {
  42082.               post: e,
  42083.               limit: 10
  42084.             }
  42085.           }).done(function (t) {
  42086.             n.setState(function (e) {
  42087.               return {
  42088.                 postItems: t.response.items,
  42089.                 objects: OR(OR({
  42090.                 }, e.objects), t.response.objects)
  42091.               }
  42092.             })
  42093.           })
  42094.         }),
  42095.         CR(kR(n), 'getComponentProps', function () {
  42096.           function e(e) {
  42097.             return OR(OR({
  42098.             }, e = t[e]), {
  42099.             }, {
  42100.               forum: t[e.forum],
  42101.               post: OR(OR({
  42102.               }, t[e.post]), {
  42103.               }, {
  42104.                 thread: t[t[e.post].thread]
  42105.               }),
  42106.               targetUser: t[e.targetUser],
  42107.               thread: t[e.thread],
  42108.               user: t[e.user]
  42109.             })
  42110.           }
  42111.           var t = n.state.objects;
  42112.           return {
  42113.             userModerationHistory: n.state.userItems ? n.state.userItems.filter(function (e) {
  42114.               return t[e].post && t[e].thread
  42115.             }).map(e) : null,
  42116.             postModerationHistory: n.state.postItems ? n.state.postItems.filter(function (e) {
  42117.               return t[e].post && t[e].thread
  42118.             }).map(e) : null,
  42119.             updateUserHistory: n.updateUserHistory,
  42120.             updatePostHistory: n.updatePostHistory
  42121.           }
  42122.         }),
  42123.         n
  42124.       }
  42125.       return e = o,
  42126.       (t = [
  42127.         {
  42128.           key: 'componentWillUnmount',
  42129.           value: function () {
  42130.             this.userAPICall && 'pending' === this.userAPICall.state() && this.userAPICall.abort(),
  42131.             this.postAPICall && 'pending' === this.postAPICall.state() && this.postAPICall.abort()
  42132.           }
  42133.         }
  42134.       ]) && SR(e.prototype, t),
  42135.       n && SR(e, n),
  42136.       o
  42137.     }();
  42138.     CR(h, 'displayName', 'ModerationHistoryDriver');
  42139.     Yc = Object(ki.createDriver) (h);
  42140.     function RR(e) {
  42141.       return (RR = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  42142.         return typeof e
  42143.       }
  42144.        : function (e) {
  42145.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  42146.       }) (e)
  42147.     }
  42148.     function xR(e, t) {
  42149.       for (var n = 0; n < t.length; n++) {
  42150.         var a = t[n];
  42151.         a.enumerable = a.enumerable || !1,
  42152.         a.configurable = !0,
  42153.         'value' in a && (a.writable = !0),
  42154.         Object.defineProperty(e, a.key, a)
  42155.       }
  42156.     }
  42157.     function AR(e, t) {
  42158.       return (AR = Object.setPrototypeOf || function (e, t) {
  42159.         return e.__proto__ = t,
  42160.         e
  42161.       }) (e, t)
  42162.     }
  42163.     function DR(n) {
  42164.       var a = function () {
  42165.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  42166.         if (Reflect.construct.sham) return !1;
  42167.         if ('function' == typeof Proxy) return !0;
  42168.         try {
  42169.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  42170.           ], function () {
  42171.           })),
  42172.           !0
  42173.         } catch (e) {
  42174.           return !1
  42175.         }
  42176.       }();
  42177.       return function () {
  42178.         var e,
  42179.         t = jR(n);
  42180.         return e = a ? (e = jR(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42181.         t = this,
  42182.         !(e = e) || 'object' !== RR(e) && 'function' != typeof e ? function (e) {
  42183.           if (void 0 !== e) return e;
  42184.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  42185.         }(t) : e
  42186.       }
  42187.     }
  42188.     function jR(e) {
  42189.       return (jR = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  42190.         return e.__proto__ || Object.getPrototypeOf(e)
  42191.       }) (e)
  42192.     }
  42193.     function TR(e, t) {
  42194.       return function (e) {
  42195.         if (Array.isArray(e)) return e
  42196.       }(e) || function (e, t) {
  42197.         var n = e && ('undefined' != typeof Symbol && e[Symbol.iterator] || e['@@iterator']);
  42198.         if (null != n) {
  42199.           var a,
  42200.           r,
  42201.           o = [
  42202.           ],
  42203.           i = !0,
  42204.           s = !1;
  42205.           try {
  42206.             for (n = n.call(e); !(i = (a = n.next()).done) && (o.push(a.value), !t || o.length !== t); i = !0);
  42207.           } catch (e) {
  42208.             s = !0,
  42209.             r = e
  42210.           } finally {
  42211.             try {
  42212.               i || null == n.return || n.return()
  42213.             } finally {
  42214.               if (s) throw r
  42215.             }
  42216.           }
  42217.           return o
  42218.         }
  42219.       }(e, t) || function (e, t) {
  42220.         if (e) {
  42221.           if ('string' == typeof e) return IR(e, t);
  42222.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  42223.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? IR(e, t) : void 0
  42224.         }
  42225.       }(e, t) || function () {
  42226.         throw new TypeError('Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  42227.       }()
  42228.     }
  42229.     function IR(e, t) {
  42230.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  42231.       return a
  42232.     }
  42233.     function qR(e) {
  42234.       var t = e.action,
  42235.       n = e.activePage,
  42236.       a = e.updateSearch,
  42237.       r = Os.prettyDatetime(''.concat(t.dateAdded, ' GMT')),
  42238.       o = Os.prettyDatetime(t.dateAdded, 'absolute'),
  42239.       i = (s = TR(FR[t.type], 2)) [0],
  42240.       e = s[1],
  42241.       s = t.deletedUser ? C.a.createElement('p', null, t.deletedUser.name || t.deletedUser.username) : C.a.createElement('a', {
  42242.         href: '//'.concat(pt.a.disqusHost, '/by/').concat(t.user.username),
  42243.         target: '_blank',
  42244.         rel: 'noopener noreferrer'
  42245.       }, t.user.name || t.user.username);
  42246.       return C.a.createElement('li', {
  42247.         className: 'user-mod-history__item'
  42248.       }, C.a.createElement('time', {
  42249.         className: 'time-ago pull-right',
  42250.         title: o
  42251.       }, r), s, C.a.createElement('p', null, i, C.a.createElement('a', {
  42252.         href: '/admin/moderate/'.concat(n, '/search/id:').concat(t.post.id),
  42253.         onClick: function (e) {
  42254.           e.preventDefault(),
  42255.           a({
  42256.             searchQuery: 'id:'.concat(t.post.id)
  42257.           })
  42258.         }
  42259.       }, 'Comment #', t.post.id), e))
  42260.     }
  42261.     var FR = {
  42262.       1: [
  42263.         'Moved ',
  42264.         ' to approved'
  42265.       ],
  42266.       2: [
  42267.         'Unapproved ',
  42268.         ''
  42269.       ],
  42270.       3: [
  42271.         'Marked ',
  42272.         ' as spam'
  42273.       ],
  42274.       4: [
  42275.         'Unmarked ',
  42276.         ' as spam'
  42277.       ],
  42278.       5: [
  42279.         'Undeleted ',
  42280.         ''
  42281.       ],
  42282.       6: [
  42283.         'Deleted ',
  42284.         ''
  42285.       ],
  42286.       7: [
  42287.         'Highlighted ',
  42288.         ''
  42289.       ],
  42290.       8: [
  42291.         'Unhighlighted ',
  42292.         ''
  42293.       ],
  42294.       17: [
  42295.         'Excluded ',
  42296.         ' from new user pre-moderation'
  42297.       ]
  42298.     },
  42299.     i = b.a.shape({
  42300.       name: b.a.string,
  42301.       username: b.a.string.isRequired
  42302.     }),
  42303.     h = b.a.shape({
  42304.       dateAdded: b.a.string.isRequired,
  42305.       id: b.a.number.isRequired,
  42306.       type: b.a.oneOf(Object.keys(FR).map(Number)).isRequired,
  42307.       deletedUser: i,
  42308.       user: i
  42309.     });
  42310.     qR.propTypes = {
  42311.       action: h.isRequired,
  42312.       activePage: b.a.string.isRequired,
  42313.       updateSearch: b.a.func.isRequired
  42314.     };
  42315.     var LR,
  42316.     UR,
  42317.     MR,
  42318.     i = function () {
  42319.       !function (e, t) {
  42320.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  42321.         e.prototype = Object.create(t && t.prototype, {
  42322.           constructor: {
  42323.             value: e,
  42324.             writable: !0,
  42325.             configurable: !0
  42326.           }
  42327.         }),
  42328.         t && AR(e, t)
  42329.       }(r, A);
  42330.       var e,
  42331.       t,
  42332.       n,
  42333.       a = DR(r);
  42334.       function r() {
  42335.         return function (e, t) {
  42336.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  42337.         }(this, r),
  42338.         a.apply(this, arguments)
  42339.       }
  42340.       return e = r,
  42341.       (t = [
  42342.         {
  42343.           key: 'componentDidMount',
  42344.           value: function () {
  42345.             this.props.updatePostHistory(this.props.post.id),
  42346.             this.props.post.author.id && this.props.updateUserHistory(this.props.post.author.id, this.props.post.forum.id)
  42347.           }
  42348.         },
  42349.         {
  42350.           key: 'componentWillReceiveProps',
  42351.           value: function (e) {
  42352.             e.post.id !== this.props.post.id && this.props.updatePostHistory(e.post.id),
  42353.             !e.post.author.id || e.post.author.id === this.props.post.author.id && e.post.forum.id === this.props.post.forum.id || this.props.updateUserHistory(e.post.author.id, e.post.forum.id)
  42354.           }
  42355.         },
  42356.         {
  42357.           key: 'render',
  42358.           value: function () {
  42359.             function e(e) {
  42360.               return C.a.createElement(qR, {
  42361.                 key: e.id,
  42362.                 action: e,
  42363.                 activePage: t.props.activePage,
  42364.                 updateSearch: t.props.updateSearch
  42365.               })
  42366.             }
  42367.             var t = this,
  42368.             n = C.a.createElement('div', {
  42369.               className: 'spinner -sm spacing-top spacing-bottom'
  42370.             }),
  42371.             a = this.props.postModerationHistory ? this.props.postModerationHistory.length ? C.a.createElement('ul', null, this.props.postModerationHistory.map(e)) : C.a.createElement('p', {
  42372.               className: 'user-mod-history__item'
  42373.             }, 'This comment has no moderation history.') : n,
  42374.             n = void 0 === this.props.post.author.id ? C.a.createElement('p', {
  42375.               className: 'user-mod-history__item'
  42376.             }, 'Cannot load moderation history for guest user.') : this.props.userModerationHistory ? this.props.userModerationHistory.length ? C.a.createElement('ul', null, this.props.userModerationHistory.map(e)) : C.a.createElement('p', {
  42377.               className: 'user-mod-history__item'
  42378.             }, 'This user has no comments with moderation history.') : n;
  42379.             return C.a.createElement('div', {
  42380.               className: 'user-mod-history side-panel__content overflow_panel fill_height'
  42381.             }, C.a.createElement('p', {
  42382.               className: 'user-mod-history__item'
  42383.             }, 'Moderation actions on ', C.a.createElement('strong', null, 'this comment'), ':'), a, C.a.createElement('hr', {
  42384.               className: 'user-mod-history__item'
  42385.             }), C.a.createElement('p', {
  42386.               className: 'user-mod-history__item'
  42387.             }, 'Moderation actions on ', C.a.createElement('strong', null, 'all comments by this user'), ':'), n)
  42388.           }
  42389.         }
  42390.       ]) && xR(e.prototype, t),
  42391.       n && xR(e, n),
  42392.       r
  42393.     }();
  42394.     LR = i,
  42395.     UR = 'propTypes',
  42396.     MR = {
  42397.       activePage: b.a.string.isRequired,
  42398.       post: b.a.shape({
  42399.         author: b.a.shape({
  42400.           id: b.a.string
  42401.         }).isRequired,
  42402.         id: b.a.string.isRequired,
  42403.         forum: b.a.shape({
  42404.           id: b.a.string.isRequired
  42405.         }).isRequired
  42406.       }).isRequired,
  42407.       updateSearch: b.a.func.isRequired,
  42408.       userModerationHistory: b.a.arrayOf(h),
  42409.       updateUserHistory: b.a.func.isRequired,
  42410.       postModerationHistory: b.a.arrayOf(h),
  42411.       updatePostHistory: b.a.func.isRequired
  42412.     },
  42413.     UR in LR ? Object.defineProperty(LR, UR, {
  42414.       value: MR,
  42415.       enumerable: !0,
  42416.       configurable: !0,
  42417.       writable: !0
  42418.     }) : LR[UR] = MR;
  42419.     var BR = Ni.a.attachDrivers(i, [
  42420.       Yc
  42421.     ]);
  42422.     function zR(e) {
  42423.       return (zR = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  42424.         return typeof e
  42425.       }
  42426.        : function (e) {
  42427.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  42428.       }) (e)
  42429.     }
  42430.     function HR(e, t) {
  42431.       for (var n = 0; n < t.length; n++) {
  42432.         var a = t[n];
  42433.         a.enumerable = a.enumerable || !1,
  42434.         a.configurable = !0,
  42435.         'value' in a && (a.writable = !0),
  42436.         Object.defineProperty(e, a.key, a)
  42437.       }
  42438.     }
  42439.     function GR(e, t) {
  42440.       return (GR = Object.setPrototypeOf || function (e, t) {
  42441.         return e.__proto__ = t,
  42442.         e
  42443.       }) (e, t)
  42444.     }
  42445.     function VR(n) {
  42446.       var a = function () {
  42447.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  42448.         if (Reflect.construct.sham) return !1;
  42449.         if ('function' == typeof Proxy) return !0;
  42450.         try {
  42451.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  42452.           ], function () {
  42453.           })),
  42454.           !0
  42455.         } catch (e) {
  42456.           return !1
  42457.         }
  42458.       }();
  42459.       return function () {
  42460.         var e,
  42461.         t = YR(n);
  42462.         return e = a ? (e = YR(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42463.         t = this,
  42464.         !(e = e) || 'object' !== zR(e) && 'function' != typeof e ? WR(t) : e
  42465.       }
  42466.     }
  42467.     function WR(e) {
  42468.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  42469.       return e
  42470.     }
  42471.     function YR(e) {
  42472.       return (YR = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  42473.         return e.__proto__ || Object.getPrototypeOf(e)
  42474.       }) (e)
  42475.     }
  42476.     function QR(e, t, n) {
  42477.       return t in e ? Object.defineProperty(e, t, {
  42478.         value: n,
  42479.         enumerable: !0,
  42480.         configurable: !0,
  42481.         writable: !0
  42482.       }) : e[t] = n,
  42483.       e
  42484.     }
  42485.     i = function () {
  42486.       !function (e, t) {
  42487.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  42488.         e.prototype = Object.create(t && t.prototype, {
  42489.           constructor: {
  42490.             value: e,
  42491.             writable: !0,
  42492.             configurable: !0
  42493.           }
  42494.         }),
  42495.         t && GR(e, t)
  42496.       }(o, A);
  42497.       var e,
  42498.       t,
  42499.       n,
  42500.       r = VR(o);
  42501.       function o() {
  42502.         var a;
  42503.         !function (e, t) {
  42504.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  42505.         }(this, o);
  42506.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  42507.         return QR(WR(a = r.call.apply(r, [
  42508.           this
  42509.         ].concat(t))), 'state', {
  42510.           cursor: {
  42511.           },
  42512.           posts: null,
  42513.           user: null,
  42514.           isFetching: !1
  42515.         }),
  42516.         QR(WR(a), 'updateUser', function (e) {
  42517.           je.a.isEqual(a.state.user, e) || a.setState({
  42518.             user: e,
  42519.             cursor: {
  42520.             },
  42521.             posts: null
  42522.           }, a.fetchData)
  42523.         }),
  42524.         QR(WR(a), 'fetchUserPosts', function (e, t) {
  42525.           var n,
  42526.           e = a.state.user.isPrivate ? (n = je.a.extend({
  42527.             limit: 10,
  42528.             related: [
  42529.               'forum',
  42530.               'thread'
  42531.             ],
  42532.             include: 'approved',
  42533.             order: 'desc',
  42534.             query: 'user:'.concat(a.state.user.username)
  42535.           }, e), 'posts/list') : (n = je.a.extend({
  42536.             limit: 10,
  42537.             related: [
  42538.               'forum',
  42539.               'thread'
  42540.             ],
  42541.             user: 'username:'.concat(a.state.user.username)
  42542.           }, e), 'users/listPosts');
  42543.           a.setState({
  42544.             isFetching: !0
  42545.           }),
  42546.           a.apiCall = io.a.call(e, {
  42547.             data: n
  42548.           }).done(je.a.partial(a.onFetchPosts, je.a, t))
  42549.         }),
  42550.         QR(WR(a), 'fetchAnonPosts', function (e, t) {
  42551.           var n = je.a.extend({
  42552.             query: 'email:'.concat(a.state.user.email),
  42553.             related: [
  42554.               'thread',
  42555.               'forum'
  42556.             ]
  42557.           }, e),
  42558.           e = Ve.a.getFromCookie();
  42559.           if (a.props.selection.type === ft.organization) n.forum = a.props.selection.organization.forums;
  42560.            else if (a.props.selection.type === ft.forum) n.forum = a.props.selection.forum.shortname;
  42561.            else if (e.staff) n.forum = ':all';
  42562.            else {
  42563.             if (!e.isModerator) return;
  42564.             n.forum = ':moderated'
  42565.           }
  42566.           a.setState({
  42567.             isFetching: !0
  42568.           }),
  42569.           a.apiCall = io.a.call('posts/list', {
  42570.             data: n
  42571.           }).done(je.a.partial(a.onFetchPosts, je.a, t))
  42572.         }),
  42573.         QR(WR(a), 'onFetchPosts', function (e, t) {
  42574.           t = t ? a.state.posts.concat(e.response) : e.response;
  42575.           a.setState({
  42576.             posts: t,
  42577.             isFetching: !1,
  42578.             cursor: e.cursor
  42579.           })
  42580.         }),
  42581.         QR(WR(a), 'fetchData', function (e, t) {
  42582.           a.state.user.username ? a.fetchUserPosts(e, t) : a.state.user.email && a.fetchAnonPosts(e, t)
  42583.         }),
  42584.         QR(WR(a), 'fetchMore', function () {
  42585.           a.state.cursor && !a.state.cursor.hasNext || a.fetchData({
  42586.             cursor: a.state.cursor.next
  42587.           }, !0)
  42588.         }),
  42589.         QR(WR(a), 'getComponentProps', function () {
  42590.           return {
  42591.             userPosts: a.state.posts,
  42592.             userHasMorePosts: !!a.state.cursor.hasNext,
  42593.             userPostsFetching: a.state.isFetching,
  42594.             fetchMore: a.fetchMore,
  42595.             updateUser: a.updateUser
  42596.           }
  42597.         }),
  42598.         a
  42599.       }
  42600.       return e = o,
  42601.       (t = [
  42602.         {
  42603.           key: 'componentWillUnmount',
  42604.           value: function () {
  42605.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  42606.           }
  42607.         }
  42608.       ]) && HR(e.prototype, t),
  42609.       n && HR(e, n),
  42610.       o
  42611.     }();
  42612.     QR(i, 'displayName', 'UserPostListDriver'),
  42613.     QR(i, 'propTypes', {
  42614.       selection: ht.isRequired
  42615.     });
  42616.     Yc = Object(ki.createDriver) (i);
  42617.     function KR(e) {
  42618.       return (KR = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  42619.         return typeof e
  42620.       }
  42621.        : function (e) {
  42622.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  42623.       }) (e)
  42624.     }
  42625.     function JR(e, t) {
  42626.       for (var n = 0; n < t.length; n++) {
  42627.         var a = t[n];
  42628.         a.enumerable = a.enumerable || !1,
  42629.         a.configurable = !0,
  42630.         'value' in a && (a.writable = !0),
  42631.         Object.defineProperty(e, a.key, a)
  42632.       }
  42633.     }
  42634.     function $R(e, t) {
  42635.       return ($R = Object.setPrototypeOf || function (e, t) {
  42636.         return e.__proto__ = t,
  42637.         e
  42638.       }) (e, t)
  42639.     }
  42640.     function ZR(n) {
  42641.       var a = function () {
  42642.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  42643.         if (Reflect.construct.sham) return !1;
  42644.         if ('function' == typeof Proxy) return !0;
  42645.         try {
  42646.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  42647.           ], function () {
  42648.           })),
  42649.           !0
  42650.         } catch (e) {
  42651.           return !1
  42652.         }
  42653.       }();
  42654.       return function () {
  42655.         var e,
  42656.         t = ex(n);
  42657.         return e = a ? (e = ex(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42658.         t = this,
  42659.         !(e = e) || 'object' !== KR(e) && 'function' != typeof e ? XR(t) : e
  42660.       }
  42661.     }
  42662.     function XR(e) {
  42663.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  42664.       return e
  42665.     }
  42666.     function ex(e) {
  42667.       return (ex = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  42668.         return e.__proto__ || Object.getPrototypeOf(e)
  42669.       }) (e)
  42670.     }
  42671.     function tx(e, t, n) {
  42672.       return t in e ? Object.defineProperty(e, t, {
  42673.         value: n,
  42674.         enumerable: !0,
  42675.         configurable: !0,
  42676.         writable: !0
  42677.       }) : e[t] = n,
  42678.       e
  42679.     }
  42680.     i = function () {
  42681.       !function (e, t) {
  42682.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  42683.         e.prototype = Object.create(t && t.prototype, {
  42684.           constructor: {
  42685.             value: e,
  42686.             writable: !0,
  42687.             configurable: !0
  42688.           }
  42689.         }),
  42690.         t && $R(e, t)
  42691.       }(o, A);
  42692.       var e,
  42693.       t,
  42694.       n,
  42695.       r = ZR(o);
  42696.       function o() {
  42697.         var t;
  42698.         !function (e, t) {
  42699.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  42700.         }(this, o);
  42701.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  42702.         return tx(XR(t = r.call.apply(r, [
  42703.           this
  42704.         ].concat(n))), 'state', {
  42705.           maxContentHeight: 0
  42706.         }),
  42707.         tx(XR(t), 'fetchMore', function (e) {
  42708.           e.preventDefault(),
  42709.           t.props.fetchMore()
  42710.         }),
  42711.         tx(XR(t), 'searchForUser', function (e) {
  42712.           e.preventDefault(),
  42713.           t.props.updateSearch({
  42714.             searchQuery: t.props.post.author.username ? 'user:'.concat(encodeURIComponent(t.props.post.author.username)) : t.props.post.author.email ? 'post_email_lookup:'.concat(t.props.post.id) : ''
  42715.           })
  42716.         }),
  42717.         t
  42718.       }
  42719.       return e = o,
  42720.       (t = [
  42721.         {
  42722.           key: 'componentDidMount',
  42723.           value: function () {
  42724.             this.props.updateUser(this.props.post.author)
  42725.           }
  42726.         },
  42727.         {
  42728.           key: 'componentWillReceiveProps',
  42729.           value: function (e) {
  42730.             je.a.isEqual(e.post.author, this.props.post.author) || this.props.updateUser(e.post.author)
  42731.           }
  42732.         },
  42733.         {
  42734.           key: 'render',
  42735.           value: function () {
  42736.             var e = '/admin/moderate/'.concat(this.props.activePage, '/search/');
  42737.             this.props.post.author.username ? e += 'user:'.concat(encodeURIComponent(this.props.post.author.username)) : this.props.post.author.email ? e += 'post_email_lookup:'.concat(this.props.post.id) : e = '';
  42738.             var t = this.props.post.forum.settings.validateAllPosts,
  42739.             n = null;
  42740.             return this.props.post.thread.isClosed ? n = 'This discussion is closed' : this.props.post.thread.validateAllPosts && !t && (n = 'This discussion is premoderated'),
  42741.             C.a.createElement('div', {
  42742.               className: 'side-panel__content__container overflow_panel spacing-top'
  42743.             }, n ? C.a.createElement('div', {
  42744.               className: 'alert alert--muted-dark spacing-left spacing-right spacing-bottom'
  42745.             }, C.a.createElement('strong', null, n)) : null, C.a.createElement('div', {
  42746.               className: 'side-panel__content overflow_panel fill_height'
  42747.             }, this.props.userPosts ? C.a.createElement('div', null, je.a.map(this.props.userPosts, function (e) {
  42748.               return C.a.createElement('ul', {
  42749.                 key: e.id
  42750.               }, C.a.createElement('li', {
  42751.                 className: 'user-activity__item'
  42752.               }, C.a.createElement('div', {
  42753.                 className: 'pull-right'
  42754.               }, C.a.createElement('img', {
  42755.                 src: e.forum.favicon.cache,
  42756.                 width: '16',
  42757.                 height: '16',
  42758.                 alt: ''
  42759.               })), C.a.createElement('div', null, C.a.createElement('p', {
  42760.                 className: 'text-smaller'
  42761.               }, C.a.createElement('a', {
  42762.                 href: e.url,
  42763.                 target: '_blank',
  42764.                 rel: 'noopener noreferrer',
  42765.                 className: 'comment',
  42766.                 'data-comment-id': e.id
  42767.               }, e.thread.clean_title)), C.a.createElement('p', {
  42768.                 dangerouslySetInnerHTML: {
  42769.                   __html: e.message
  42770.                 }
  42771.               }), C.a.createElement('p', {
  42772.                 className: 'text-smaller text-gray'
  42773.               }, Os.prettyDatetime(''.concat(e.createdAt, ' GMT'))))))
  42774.             }), this.props.userHasMorePosts ? C.a.createElement('a', {
  42775.               href: '#',
  42776.               className: 'spacing-bottom',
  42777.               onClick: this.fetchMore
  42778.             }, 'Load more comments') : null) : C.a.createElement('p', null, 'This person\'s activity is still being updated.'), this.props.userPostsFetching ? C.a.createElement('div', {
  42779.               className: 'spinner -sm spacing-top spacing-bottom'
  42780.             }) : null), e ? C.a.createElement('a', {
  42781.               className: 'side-panel__button text-small',
  42782.               href: e,
  42783.               onClick: this.searchForUser
  42784.             }, 'Moderate ', 'all' === this.props.activePage ? '' : ''.concat(this.props.activePage, ' '), 'comments from this user') : null, this.props.post.forum.settings.badgesEnabled && this.props.post.author.id ? C.a.createElement('button', {
  42785.               className: 'side-panel__button text-small',
  42786.               onClick: this.props.showBadgesModal
  42787.             }, 'Manage user badges') : null, t ? null : C.a.createElement('button', {
  42788.               className: 'side-panel__button text-small',
  42789.               onClick: this.props.toggleThreadPremoderation
  42790.             }, this.props.post.thread.validateAllPosts ? 'Don\'t premoderate this discussion' : 'Premoderate this discussion'), C.a.createElement('button', {
  42791.               className: 'side-panel__button text-small',
  42792.               onClick: this.props.toggleThreadClosed
  42793.             }, this.props.post.thread.isClosed ? 'Open this discussion' : 'Close this discussion'))
  42794.           }
  42795.         }
  42796.       ]) && JR(e.prototype, t),
  42797.       n && JR(e, n),
  42798.       o
  42799.     }();
  42800.     tx(i, 'propTypes', {
  42801.       post: b.a.shape(Qs).isRequired,
  42802.       activePage: b.a.string.isRequired,
  42803.       showBadgesModal: b.a.func.isRequired,
  42804.       toggleThreadClosed: b.a.func.isRequired,
  42805.       toggleThreadPremoderation: b.a.func.isRequired,
  42806.       updateSearch: b.a.func.isRequired,
  42807.       userPosts: b.a.array,
  42808.       userHasMorePosts: b.a.bool.isRequired,
  42809.       userPostsFetching: b.a.bool.isRequired,
  42810.       updateUser: b.a.func.isRequired,
  42811.       fetchMore: b.a.func.isRequired
  42812.     });
  42813.     var nx = Ni.a.attachDrivers(i, [
  42814.       Yc
  42815.     ]);
  42816.     function ax(e) {
  42817.       return (ax = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  42818.         return typeof e
  42819.       }
  42820.        : function (e) {
  42821.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  42822.       }) (e)
  42823.     }
  42824.     function rx(e, t) {
  42825.       for (var n = 0; n < t.length; n++) {
  42826.         var a = t[n];
  42827.         a.enumerable = a.enumerable || !1,
  42828.         a.configurable = !0,
  42829.         'value' in a && (a.writable = !0),
  42830.         Object.defineProperty(e, a.key, a)
  42831.       }
  42832.     }
  42833.     function ox(e, t) {
  42834.       return (ox = Object.setPrototypeOf || function (e, t) {
  42835.         return e.__proto__ = t,
  42836.         e
  42837.       }) (e, t)
  42838.     }
  42839.     function ix(n) {
  42840.       var a = function () {
  42841.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  42842.         if (Reflect.construct.sham) return !1;
  42843.         if ('function' == typeof Proxy) return !0;
  42844.         try {
  42845.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  42846.           ], function () {
  42847.           })),
  42848.           !0
  42849.         } catch (e) {
  42850.           return !1
  42851.         }
  42852.       }();
  42853.       return function () {
  42854.         var e,
  42855.         t = lx(n);
  42856.         return e = a ? (e = lx(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42857.         t = this,
  42858.         !(e = e) || 'object' !== ax(e) && 'function' != typeof e ? sx(t) : e
  42859.       }
  42860.     }
  42861.     function sx(e) {
  42862.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  42863.       return e
  42864.     }
  42865.     function lx(e) {
  42866.       return (lx = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  42867.         return e.__proto__ || Object.getPrototypeOf(e)
  42868.       }) (e)
  42869.     }
  42870.     function cx(e, t, n) {
  42871.       return t in e ? Object.defineProperty(e, t, {
  42872.         value: n,
  42873.         enumerable: !0,
  42874.         configurable: !0,
  42875.         writable: !0
  42876.       }) : e[t] = n,
  42877.       e
  42878.     }
  42879.     i = function () {
  42880.       !function (e, t) {
  42881.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  42882.         e.prototype = Object.create(t && t.prototype, {
  42883.           constructor: {
  42884.             value: e,
  42885.             writable: !0,
  42886.             configurable: !0
  42887.           }
  42888.         }),
  42889.         t && ox(e, t)
  42890.       }(o, A);
  42891.       var e,
  42892.       t,
  42893.       n,
  42894.       r = ix(o);
  42895.       function o() {
  42896.         var t;
  42897.         !function (e, t) {
  42898.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  42899.         }(this, o);
  42900.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  42901.         return cx(sx(t = r.call.apply(r, [
  42902.           this
  42903.         ].concat(n))), 'state', {
  42904.           counts: null
  42905.         }),
  42906.         cx(sx(t), 'fetchData', function (e) {
  42907.           e && e.id && (e = {
  42908.             user: e.id
  42909.           }, t.props.selection.type === ft.forum ? e.forum = t.props.selection.forum.shortname : t.props.auth.isModerator && (e.network = 'username:'.concat(t.props.auth.username)), t.apiCall = io.a.call('internal/users/moderationDetails', {
  42910.             data: e
  42911.           }).done(t.onFetch))
  42912.         }),
  42913.         cx(sx(t), 'onFetch', function (e) {
  42914.           t.setState({
  42915.             counts: e.response.counts
  42916.           })
  42917.         }),
  42918.         cx(sx(t), 'getComponentProps', function () {
  42919.           return {
  42920.             moderationDetailsCounts: t.state.counts
  42921.           }
  42922.         }),
  42923.         t
  42924.       }
  42925.       return e = o,
  42926.       (t = [
  42927.         {
  42928.           key: 'componentDidMount',
  42929.           value: function () {
  42930.             this.fetchData(this.props.author)
  42931.           }
  42932.         },
  42933.         {
  42934.           key: 'componentWillReceiveProps',
  42935.           value: function (e) {
  42936.             e.author && this.props.author.id !== e.author.id && (this.setState({
  42937.               counts: null
  42938.             }), this.fetchData(e.author))
  42939.           }
  42940.         },
  42941.         {
  42942.           key: 'componentWillUnmount',
  42943.           value: function () {
  42944.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  42945.           }
  42946.         }
  42947.       ]) && rx(e.prototype, t),
  42948.       n && rx(e, n),
  42949.       o
  42950.     }();
  42951.     cx(i, 'displayName', 'ModerationDetailsDriver'),
  42952.     cx(i, 'propTypes', {
  42953.       auth: b.a.object.isRequired,
  42954.       author: b.a.object,
  42955.       selection: ht.isRequired
  42956.     });
  42957.     Yc = Object(ki.createDriver) (i);
  42958.     function ux(e) {
  42959.       return (ux = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  42960.         return typeof e
  42961.       }
  42962.        : function (e) {
  42963.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  42964.       }) (e)
  42965.     }
  42966.     function px(e, t) {
  42967.       for (var n = 0; n < t.length; n++) {
  42968.         var a = t[n];
  42969.         a.enumerable = a.enumerable || !1,
  42970.         a.configurable = !0,
  42971.         'value' in a && (a.writable = !0),
  42972.         Object.defineProperty(e, a.key, a)
  42973.       }
  42974.     }
  42975.     function dx(e, t) {
  42976.       return (dx = Object.setPrototypeOf || function (e, t) {
  42977.         return e.__proto__ = t,
  42978.         e
  42979.       }) (e, t)
  42980.     }
  42981.     function mx(n) {
  42982.       var a = function () {
  42983.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  42984.         if (Reflect.construct.sham) return !1;
  42985.         if ('function' == typeof Proxy) return !0;
  42986.         try {
  42987.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  42988.           ], function () {
  42989.           })),
  42990.           !0
  42991.         } catch (e) {
  42992.           return !1
  42993.         }
  42994.       }();
  42995.       return function () {
  42996.         var e,
  42997.         t = hx(n);
  42998.         return e = a ? (e = hx(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  42999.         t = this,
  43000.         !(e = e) || 'object' !== ux(e) && 'function' != typeof e ? fx(t) : e
  43001.       }
  43002.     }
  43003.     function fx(e) {
  43004.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  43005.       return e
  43006.     }
  43007.     function hx(e) {
  43008.       return (hx = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  43009.         return e.__proto__ || Object.getPrototypeOf(e)
  43010.       }) (e)
  43011.     }
  43012.     function gx(e, t, n) {
  43013.       return t in e ? Object.defineProperty(e, t, {
  43014.         value: n,
  43015.         enumerable: !0,
  43016.         configurable: !0,
  43017.         writable: !0
  43018.       }) : e[t] = n,
  43019.       e
  43020.     }
  43021.     var yx = {
  43022.       twitter: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/twitter-x.png',
  43023.       facebook: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/facebook.png',
  43024.       google: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/googleplus.png',
  43025.       disqus: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/disqus.png',
  43026.       guest: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/user.png'
  43027.     },
  43028.     bx = {
  43029.       twitter: 'X (Twitter) user',
  43030.       facebook: 'Facebook user',
  43031.       google: 'Google user',
  43032.       disqus: 'Disqus user',
  43033.       guest: 'Guest user'
  43034.     },
  43035.     i = function () {
  43036.       !function (e, t) {
  43037.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  43038.         e.prototype = Object.create(t && t.prototype, {
  43039.           constructor: {
  43040.             value: e,
  43041.             writable: !0,
  43042.             configurable: !0
  43043.           }
  43044.         }),
  43045.         t && dx(e, t)
  43046.       }(o, A);
  43047.       var e,
  43048.       t,
  43049.       n,
  43050.       r = mx(o);
  43051.       function o() {
  43052.         var n;
  43053.         !function (e, t) {
  43054.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  43055.         }(this, o);
  43056.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  43057.         return gx(fx(n = r.call.apply(r, [
  43058.           this
  43059.         ].concat(t))), 'showWhitelistForm', function () {
  43060.           n.props.updateUserListsModal({
  43061.             isOpen: !0,
  43062.             listType: 'whitelist',
  43063.             postId: n.props.postId,
  43064.             author: n.props.author
  43065.           })
  43066.         }),
  43067.         gx(fx(n), 'showBlacklistForm', function () {
  43068.           n.props.updateUserListsModal({
  43069.             isOpen: !0,
  43070.             listType: 'blacklist',
  43071.             postId: n.props.postId,
  43072.             author: n.props.author
  43073.           })
  43074.         }),
  43075.         gx(fx(n), 'updateSearchQuery', function (e, t) {
  43076.           t && t.nativeEvent && 1 !== t.nativeEvent.which || (t && t.preventDefault(), n.props.updateActivePage('all', je.a.partial(n.props.updateFetchData, {
  43077.             searchQuery: e
  43078.           })))
  43079.         }),
  43080.         n
  43081.       }
  43082.       return e = o,
  43083.       (t = [
  43084.         {
  43085.           key: 'render',
  43086.           value: function () {
  43087.             var e,
  43088.             t = this.props.author.remote ? this.props.author.remote.domain : this.props.author.username ? 'disqus' : 'guest';
  43089.             return this.props.author.reputation && (e = hN.normalizeReputation(this.props.author.reputation)),
  43090.             C.a.createElement('div', {
  43091.               className: 'side-panel__footer'
  43092.             }, C.a.createElement('div', {
  43093.               className: 'align align--between spacing-top-small'
  43094.             }, C.a.createElement('div', {
  43095.               className: 'align align--column spacing-bottom user-info__wrapper'
  43096.             }, C.a.createElement('div', {
  43097.               className: 'align align--middle'
  43098.             }, C.a.createElement('div', {
  43099.               className: 'user-info__avatar spacing-right'
  43100.             }, C.a.createElement('img', {
  43101.               className: 'border-radius-sm',
  43102.               src: this.props.author.avatar ? this.props.author.avatar.cache : '//c.disquscdn.com/next/current/publisher-admin/assets/img/noavatar32.png',
  43103.               width: '32',
  43104.               height: '32'
  43105.             }), yx[t] ? C.a.createElement('img', {
  43106.               className: 'service '.concat(t),
  43107.               width: '16',
  43108.               height: '16',
  43109.               src: yx[t],
  43110.               alt: bx[t]
  43111.             }) : null), C.a.createElement('div', {
  43112.               className: 'user-info__name'
  43113.             }, C.a.createElement('strong', {
  43114.               className: 'text-medium text-gray-darker text-bold'
  43115.             }, this.props.author.name), C.a.createElement('p', {
  43116.               className: 'text-gray text-smaller truncate-line'
  43117.             }, this.props.author.email))), C.a.createElement(fC, {
  43118.               forum: this.props.forum,
  43119.               user: this.props.author,
  43120.               context: 'moderation-side-panel',
  43121.               limit: We.MAX_BADGE_COUNT
  43122.             })), C.a.createElement('div', null, C.a.createElement('div', {
  43123.               className: 'align align--row-reverse dropdown--side-panel'
  43124.             }, C.a.createElement(Qc.a, {
  43125.               ref: 'userDropdown',
  43126.               className: 'button padding-small button-fill--gray-light dropdown-toggle',
  43127.               buttonChildren: C.a.createElement('img', {
  43128.                 className: 'service',
  43129.                 src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/services/user.png',
  43130.                 alt: 'Guest user'
  43131.               })
  43132.             }, C.a.createElement('ul', {
  43133.               className: 'dropdown-menu'
  43134.             }, this.props.author.username ? C.a.createElement('li', null, C.a.createElement('a', {
  43135.               href: '/admin/moderate/all/search/user:'.concat(this.props.author.username),
  43136.               onClick: this.updateSearchQuery.bind(this, 'user:'.concat(this.props.author.username))
  43137.             }, 'View all from ', this.props.author.username)) : null, this.props.author.email ? C.a.createElement('li', null, C.a.createElement('a', {
  43138.               href: '/admin/moderate/all/search/post_email_lookup:'.concat(this.props.postId),
  43139.               onClick: this.updateSearchQuery.bind(this, 'post_email_lookup:'.concat(this.props.postId))
  43140.             }, 'View all from ', this.props.author.email)) : null, this.props.ipAddress ? C.a.createElement('li', null, C.a.createElement('a', {
  43141.               href: '/admin/moderate/all/search/post_ip_lookup:'.concat(this.props.postId),
  43142.               onClick: this.updateSearchQuery.bind(this, 'post_ip_lookup:'.concat(this.props.postId))
  43143.             }, 'View all from ', this.props.ipAddress)) : null)), C.a.createElement('button', {
  43144.               onClick: this.showBlacklistForm,
  43145.               className: 'button button-fill--gray-light panel-blacklist spacing-right-small'
  43146.             }, 'Ban User'), C.a.createElement('button', {
  43147.               onClick: this.showWhitelistForm,
  43148.               className: 'button button-fill--gray-light panel-whitelist'
  43149.             }, 'Trust User')))), C.a.createElement('div', null, C.a.createElement('div', {
  43150.               className: 'clearfix'
  43151.             }, e ? C.a.createElement('div', {
  43152.               className: 'user-stat__block'
  43153.             }, C.a.createElement('span', {
  43154.               className: 'user-info__label'
  43155.             }, C.a.createElement('span', {
  43156.               className: 'icon-trophy icon__position text-gray-light'
  43157.             })), C.a.createElement('span', {
  43158.               className: 'badge--reputation '.concat(e.type)
  43159.             }, e.verboseName)) : null, C.a.createElement('div', {
  43160.               className: 'user-stat__block'
  43161.             }, C.a.createElement('span', {
  43162.               className: 'user-info__label text-smallest text-gray'
  43163.             }, ' joined '), C.a.createElement('span', {
  43164.               className: 'text-gray-darker'
  43165.             }, ct() ().diff(ct() (this.props.author.joinedAt), 'days'), C.a.createElement('span', {
  43166.               className: 'text-smallest text-uppercase spacing-left-small'
  43167.             }, 'days ago'))), C.a.createElement('div', {
  43168.               className: 'user-stat__block'
  43169.             }, C.a.createElement('span', {
  43170.               className: 'user-info__label'
  43171.             }, C.a.createElement('span', {
  43172.               className: 'icon-globe icon__position text-gray-light'
  43173.             })), C.a.createElement('span', {
  43174.               className: 'text-gray-darker text-small'
  43175.             }, this.props.ipAddress)), this.props.moderationDetailsCounts ? C.a.createElement('div', null, C.a.createElement('div', {
  43176.               className: 'user-stat__block'
  43177.             }, C.a.createElement('span', {
  43178.               className: 'user-info__label text-smallest text-gray'
  43179.             }, 'posted'), C.a.createElement('span', {
  43180.               className: 'text-gray-darker'
  43181.             }, this.props.moderationDetailsCounts.global.all, C.a.createElement('span', {
  43182.               className: 'text-smallest text-uppercase spacing-left-small'
  43183.             }, 'comments'))), C.a.createElement('div', {
  43184.               className: 'user-stat__block'
  43185.             }, C.a.createElement('span', {
  43186.               className: 'user-info__label text-smallest text-gray'
  43187.             }, 'got'), C.a.createElement('span', {
  43188.               className: 'text-gray-darker'
  43189.             }, this.props.moderationDetailsCounts.global.flagged, C.a.createElement('span', {
  43190.               className: 'text-smallest text-uppercase spacing-left-small'
  43191.             }, 'flags'))), C.a.createElement('div', {
  43192.               className: 'user-stat__block'
  43193.             }, C.a.createElement('span', {
  43194.               className: 'user-info__label text-smallest text-gray'
  43195.             }, 'made'), C.a.createElement('span', {
  43196.               className: 'text-gray-darker'
  43197.             }, this.props.moderationDetailsCounts.global.spam, C.a.createElement('span', {
  43198.               className: 'text-smallest text-uppercase spacing-left-small'
  43199.             }, 'spam')))) : null)))
  43200.           }
  43201.         }
  43202.       ]) && px(e.prototype, t),
  43203.       n && px(e, n),
  43204.       o
  43205.     }();
  43206.     gx(i, 'propTypes', {
  43207.       author: b.a.object.isRequired,
  43208.       postId: b.a.string,
  43209.       forum: b.a.object,
  43210.       ipAddress: b.a.string,
  43211.       moderationDetailsCounts: b.a.shape({
  43212.         global: b.a.object
  43213.       }),
  43214.       selection: ht.isRequired,
  43215.       updateFetchData: b.a.func.isRequired,
  43216.       updateActivePage: b.a.func.isRequired,
  43217.       updateUserListsModal: b.a.func.isRequired
  43218.     });
  43219.     var vx = Ni.a.attachDrivers(Object(u.connect) (null, {
  43220.       updateUserListsModal: Js.updateUserListsModal
  43221.     }) (i), [
  43222.       Yc
  43223.     ]),
  43224.     Yc = function (e) {
  43225.       return C.a.createElement('div', {
  43226.         className: 'side-panel__header align align--between align--middle'
  43227.       }, C.a.createElement('div', {
  43228.         className: 'side-panel__header__title align__item--grow '.concat(e.status)
  43229.       }, C.a.createElement('p', null, e.children)), C.a.createElement('div', {
  43230.         className: 'spacing-right-small'
  43231.       }, C.a.createElement('button', {
  43232.         id: 'close-panel',
  43233.         className: 'link-gray spacing-right',
  43234.         onClick: e.onRequestClose
  43235.       }, C.a.createElement('span', {
  43236.         className: 'icon-cancel icon__position icon-small'
  43237.       }))))
  43238.     };
  43239.     Yc.propTypes = {
  43240.       children: b.a.node.isRequired,
  43241.       onRequestClose: b.a.func.isRequired,
  43242.       status: b.a.string.isRequired
  43243.     };
  43244.     var _x = Yc,
  43245.     Yc = function (n) {
  43246.       var e = Os.prettyDatetime(''.concat(n.post.createdAt, ' GMT')),
  43247.       t = [
  43248.       ];
  43249.       if (n.post.parents) for (var a, r = n.post; a = n.post.parents[r.parent]; ) t.push(a),
  43250.       r = a;
  43251.       var o = n.post.forum.settings.validateAllPosts,
  43252.       i = null;
  43253.       n.post.thread.isClosed ? i = 'This discussion is closed' : n.post.thread.validateAllPosts && !o && (i = 'This discussion is premoderated');
  43254.       return C.a.createElement('div', {
  43255.         className: 'side-panel__content__container overflow_panel spacing-top'
  43256.       }, i ? C.a.createElement('div', {
  43257.         className: 'alert alert--muted-dark spacing-left spacing-right spacing-bottom'
  43258.       }, C.a.createElement('strong', null, i)) : null, n.post.thread.reactionsEnabled || !n.post.thread.reactionsEligible ? null : C.a.createElement('div', {
  43259.         className: 'alert alert--muted-dark spacing-left spacing-right spacing-bottom'
  43260.       }, C.a.createElement('strong', null, 'Reactions for this discussion are removed')), C.a.createElement('div', {
  43261.         className: 'side-panel__content overflow_panel fill_height'
  43262.       }, C.a.createElement('div', {
  43263.         className: 'comment-thread'
  43264.       }, C.a.createElement(OC, {
  43265.         contents: C.a.createElement('strong', null, n.post.author.name),
  43266.         showUserPanel: n.showUserPanelFromThread,
  43267.         post: n.post
  43268.       }), C.a.createElement('time', {
  43269.         className: 'bullet text-smaller text-gray text-normal'
  43270.       }, e), C.a.createElement('div', {
  43271.         className: 'message'
  43272.       }, C.a.createElement('span', {
  43273.         dangerouslySetInnerHTML: {
  43274.           __html: n.post.modMessage || n.post.message
  43275.         }
  43276.       }), 0 < n.post.media.length ? C.a.createElement('div', {
  43277.         className: 'comment-attachments'
  43278.       }, n.post.media.map(function (e) {
  43279.         return C.a.createElement('a', {
  43280.           key: e.thumbnailURL,
  43281.           href: e.url,
  43282.           target: '_blank ',
  43283.           rel: 'noopener noreferrer'
  43284.         }, e.mediaType === IC.a.MEDIA_TYPES.MP4_VIDEO ? C.a.createElement('video', {
  43285.           autoPlay: !0,
  43286.           loop: !0,
  43287.           muted: !0,
  43288.           src: e.thumbnailURL,
  43289.           width: '50'
  43290.         }) : C.a.createElement('img', {
  43291.           src: e.thumbnailURL,
  43292.           width: '50'
  43293.         }))
  43294.       })) : null), je.a.map(t, function (e, t) {
  43295.         return C.a.createElement('div', {
  43296.           className: 'comment-thread parent parent-'.concat(t),
  43297.           key: e.id
  43298.         }, C.a.createElement(OC, {
  43299.           contents: C.a.createElement('strong', null, e.author.name),
  43300.           showUserPanel: n.showUserPanelFromThread,
  43301.           post: e
  43302.         }), C.a.createElement('time', {
  43303.           className: 'bullet text-smaller text-gray text-normal'
  43304.         }, Os.prettyDatetime(''.concat(e.createdAt, ' GMT'))), C.a.createElement('div', {
  43305.           className: 'message'
  43306.         }, C.a.createElement('span', {
  43307.           dangerouslySetInnerHTML: {
  43308.             __html: e.modMessage || e.message
  43309.           }
  43310.         })))
  43311.       }, void 0))), C.a.createElement('div', {
  43312.         className: 'side-panel__content spacing-top text-small spacing-bottom'
  43313.       }, n.post.isApproved ? C.a.createElement('a', {
  43314.         href: n.post.url,
  43315.         target: 'new'
  43316.       }, 'View on original page') : null), n.post.forum.settings.badgesEnabled && n.post.author.id ? C.a.createElement('button', {
  43317.         className: 'side-panel__button text-small',
  43318.         onClick: n.showBadgesModal
  43319.       }, 'Manage user badges') : null, C.a.createElement('a', {
  43320.         className: 'side-panel__button text-small',
  43321.         href: '/admin/moderate/'.concat(n.activePage, '/search/thread:').concat(n.post.thread.id),
  43322.         onClick: function (e) {
  43323.           e.preventDefault(),
  43324.           n.updateSearch({
  43325.             searchQuery: 'thread:'.concat(n.post.thread.id)
  43326.           })
  43327.         }
  43328.       }, 'Moderate ', 'all' === n.activePage ? '' : ''.concat(n.activePage, ' '), 'comments from this discussion'), n.post.thread.isClosed || !n.post.thread.reactionsEligible ? null : C.a.createElement('button', {
  43329.         className: 'side-panel__button text-small',
  43330.         onClick: n.toggleReactions
  43331.       }, n.post.thread.reactionsEnabled ? 'Remove reactions from this discussion' : 'Restore reactions to this discussion'), o ? null : C.a.createElement('button', {
  43332.         className: 'side-panel__button text-small',
  43333.         onClick: n.toggleThreadPremoderation
  43334.       }, n.post.thread.validateAllPosts ? 'Don\'t premoderate this discussion' : 'Premoderate this discussion'), C.a.createElement('button', {
  43335.         className: 'side-panel__button text-small',
  43336.         onClick: n.toggleThreadClosed
  43337.       }, n.post.thread.isClosed ? 'Open this discussion' : 'Close this discussion'))
  43338.     };
  43339.     Yc.propTypes = {
  43340.       post: b.a.shape({
  43341.         id: b.a.string.isRequired,
  43342.         thread: b.a.shape({
  43343.           id: b.a.string.isRequired,
  43344.           isClosed: b.a.bool,
  43345.           validateAllPosts: b.a.bool,
  43346.           reactionsEnabled: b.a.bool,
  43347.           reactionsEligible: b.a.bool
  43348.         }).isRequired,
  43349.         author: b.a.object.isRequired,
  43350.         createdAt: b.a.string.isRequired,
  43351.         url: b.a.string.isRequired,
  43352.         ipAddress: b.a.string,
  43353.         message: b.a.string.isRequired,
  43354.         modMessage: b.a.string.isRequired,
  43355.         media: b.a.array.isRequired,
  43356.         parents: b.a.object,
  43357.         isFlagged: b.a.bool,
  43358.         isApproved: b.a.bool,
  43359.         forum: b.a.shape({
  43360.           id: b.a.string.isRequired,
  43361.           settings: b.a.objectOf(b.a.bool).isRequired
  43362.         }).isRequired
  43363.       }).isRequired,
  43364.       activePage: b.a.string.isRequired,
  43365.       showBadgesModal: b.a.func.isRequired,
  43366.       showUserPanelFromThread: b.a.func.isRequired,
  43367.       toggleReactions: b.a.func.isRequired,
  43368.       toggleThreadClosed: b.a.func.isRequired,
  43369.       toggleThreadPremoderation: b.a.func.isRequired,
  43370.       updateSearch: b.a.func.isRequired
  43371.     };
  43372.     var Ex = Yc,
  43373.     Yc = function (e) {
  43374.       return C.a.createElement(_.a, {
  43375.         isOpen: !0,
  43376.         onRequestClose: e.closeModal,
  43377.         className: 'admin-modal',
  43378.         overlayClassName: 'modal-overlay'
  43379.       }, C.a.createElement('div', {
  43380.         className: 'admin-modal__header align align--between'
  43381.       }, C.a.createElement('h3', {
  43382.         className: 'text-large'
  43383.       }, 'Keyboard Shortcuts'), C.a.createElement('button', {
  43384.         className: 'link-gray',
  43385.         onClick: e.closeModal
  43386.       }, C.a.createElement('span', {
  43387.         className: 'icon-cancel icon__position'
  43388.       }))), C.a.createElement('div', {
  43389.         className: 'admin-modal__content'
  43390.       }, C.a.createElement('table', {
  43391.         cellPadding: 0,
  43392.         cellSpacing: 0,
  43393.         className: 'admin-modal__table'
  43394.       }, C.a.createElement('tbody', null, C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, '?')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Open/close keyboard shortcut cheat sheet modal')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, '] or }')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Tab right (pending / approved / spam / deleted)')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, '[ or {')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Tab left (pending / approved / spam / deleted)')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'j')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Move cursor down one comment')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'k')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Move cursor up one comment')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'x')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Select comment (if cursor is located on it)')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'o or Enter or .')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Open active comment')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'r')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Reply to active comment')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'e')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Edit active comment')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'd or #')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Mark selected comments as deleted')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 's or !')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Mark selected comments as spam')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'a')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Mark selected comments as approved')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'n or >')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Next page')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'p or < or b')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Previous page')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'z')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Undo last action')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'R')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Refresh comments')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, '/')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Search')))), C.a.createElement('tr', null, C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, C.a.createElement('code', null, 'Esc')))), C.a.createElement('td', null, C.a.createElement('p', null, C.a.createElement('span', null, 'Depending on context, close modal or remove focus'))))))))
  43395.     };
  43396.     Yc.propTypes = {
  43397.       closeModal: b.a.func.isRequired
  43398.     };
  43399.     var Ox = Yc;
  43400.     function Sx(e) {
  43401.       return (Sx = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  43402.         return typeof e
  43403.       }
  43404.        : function (e) {
  43405.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  43406.       }) (e)
  43407.     }
  43408.     function wx(e, t) {
  43409.       for (var n = 0; n < t.length; n++) {
  43410.         var a = t[n];
  43411.         a.enumerable = a.enumerable || !1,
  43412.         a.configurable = !0,
  43413.         'value' in a && (a.writable = !0),
  43414.         Object.defineProperty(e, a.key, a)
  43415.       }
  43416.     }
  43417.     function Px(e, t) {
  43418.       return (Px = Object.setPrototypeOf || function (e, t) {
  43419.         return e.__proto__ = t,
  43420.         e
  43421.       }) (e, t)
  43422.     }
  43423.     function kx(n) {
  43424.       var a = function () {
  43425.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  43426.         if (Reflect.construct.sham) return !1;
  43427.         if ('function' == typeof Proxy) return !0;
  43428.         try {
  43429.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  43430.           ], function () {
  43431.           })),
  43432.           !0
  43433.         } catch (e) {
  43434.           return !1
  43435.         }
  43436.       }();
  43437.       return function () {
  43438.         var e,
  43439.         t = Cx(n);
  43440.         return e = a ? (e = Cx(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  43441.         t = this,
  43442.         !(e = e) || 'object' !== Sx(e) && 'function' != typeof e ? Nx(t) : e
  43443.       }
  43444.     }
  43445.     function Nx(e) {
  43446.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  43447.       return e
  43448.     }
  43449.     function Cx(e) {
  43450.       return (Cx = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  43451.         return e.__proto__ || Object.getPrototypeOf(e)
  43452.       }) (e)
  43453.     }
  43454.     function Rx(e, t, n) {
  43455.       return t in e ? Object.defineProperty(e, t, {
  43456.         value: n,
  43457.         enumerable: !0,
  43458.         configurable: !0,
  43459.         writable: !0
  43460.       }) : e[t] = n,
  43461.       e
  43462.     }
  43463.     Yc = function () {
  43464.       !function (e, t) {
  43465.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  43466.         e.prototype = Object.create(t && t.prototype, {
  43467.           constructor: {
  43468.             value: e,
  43469.             writable: !0,
  43470.             configurable: !0
  43471.           }
  43472.         }),
  43473.         t && Px(e, t)
  43474.       }(o, A);
  43475.       var e,
  43476.       t,
  43477.       n,
  43478.       r = kx(o);
  43479.       function o() {
  43480.         var t;
  43481.         !function (e, t) {
  43482.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  43483.         }(this, o);
  43484.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  43485.         return Rx(Nx(t = r.call.apply(r, [
  43486.           this
  43487.         ].concat(n))), 'onOpen', function (e) {
  43488.           t.props.emitTrackingEvent({
  43489.             verb: 'view',
  43490.             object_type: 'modal',
  43491.             object_id: t.props.postId
  43492.           }),
  43493.           e.forum || t.handleClose({
  43494.             skipAction: !0
  43495.           })
  43496.         }),
  43497.         Rx(Nx(t), 'handleClose', function (n) {
  43498.           var a,
  43499.           r;
  43500.           n.skipAction || (a = t.props.user.id, r = t.props.forum.id, n = je.a.extend({
  43501.             callback: function () {
  43502.               var t = this;
  43503.               n.newUserPremodBypass && Object.keys(this.props.posts).filter(function (e) {
  43504.                 return t.props.posts[e].author.id === a && t.props.posts[e].forum.id === r
  43505.               }).forEach(function (e) {
  43506.                 t.props.posts[e].author.isNewUserBypassed = !!n.newUserPremodBypass
  43507.               })
  43508.             }
  43509.           }, n || {
  43510.           }), t.props.performAction('approve', t.props.postId, !1, n)),
  43511.           t.props.isOpen && t.props.close()
  43512.         }),
  43513.         Rx(Nx(t), 'handleSubmit', function (e) {
  43514.           e.preventDefault(),
  43515.           t.props.emitTrackingEvent({
  43516.             verb: 'click',
  43517.             object_type: 'button',
  43518.             object_id: t.props.postId
  43519.           }),
  43520.           t.handleClose({
  43521.             newUserPremodBypass: 1
  43522.           })
  43523.         }),
  43524.         t
  43525.       }
  43526.       return e = o,
  43527.       (t = [
  43528.         {
  43529.           key: 'componentDidMount',
  43530.           value: function () {
  43531.             this.props.isOpen && this.onOpen(this.props)
  43532.           }
  43533.         },
  43534.         {
  43535.           key: 'componentWillReceiveProps',
  43536.           value: function (e) {
  43537.             e.isOpen && !this.props.isOpen && this.onOpen(e)
  43538.           }
  43539.         },
  43540.         {
  43541.           key: 'componentWillUnmount',
  43542.           value: function () {
  43543.             this.handleClose({
  43544.               skipAction: !0
  43545.             })
  43546.           }
  43547.         },
  43548.         {
  43549.           key: 'render',
  43550.           value: function () {
  43551.             return C.a.createElement(_.a, {
  43552.               isOpen: this.props.isOpen,
  43553.               onRequestClose: this.handleClose,
  43554.               className: 'admin-modal -mobile',
  43555.               overlayClassName: 'modal-overlay'
  43556.             }, C.a.createElement('div', {
  43557.               className: 'admin-modal__header align align--between'
  43558.             }, C.a.createElement('h3', {
  43559.               className: 'text-large text-capitalized'
  43560.             }, 'Exclude from new user pre-moderation'), C.a.createElement('button', {
  43561.               className: 'link-gray',
  43562.               onClick: this.handleClose
  43563.             }, C.a.createElement('span', {
  43564.               className: 'icon-cancel icon__position'
  43565.             }))), C.a.createElement('form', {
  43566.               className: 'whitelist-form'
  43567.             }, C.a.createElement('div', {
  43568.               className: 'admin-modal__content'
  43569.             }, C.a.createElement('div', null, C.a.createElement('div', {
  43570.               className: 'modal__description ban__description'
  43571.             }, C.a.createElement('p', {
  43572.               className: 'text-small modal__option-subtext ban__option-subtext'
  43573.             }, 'Allow this user to bypass the new user pre-moderation filter', this.props.forum.name ? ' on '.concat(this.props.forum.name) : null, '. This will not affect comments caught for other reasons (ex. violating a moderation rule).'), C.a.createElement('p', {
  43574.               className: 'text-small modal__option-subtext ban__option-subtext'
  43575.             }, C.a.createElement('b', null, 'Note:'), ' All previous comments flagged by the pre-moderation filter still need to be manually approved.')))), C.a.createElement('div', {
  43576.               className: 'admin-modal__footer clearfix'
  43577.             }, C.a.createElement('div', null, C.a.createElement('button', {
  43578.               className: 'button button-fill--brand button-small text-capitalized spacing-right',
  43579.               disabled: !1,
  43580.               onClick: this.handleSubmit
  43581.             }, 'Exclude'), C.a.createElement('button', {
  43582.               className: 'button button-fill button-small text-capitalized',
  43583.               onClick: this.handleClose
  43584.             }, 'Skip')))))
  43585.           }
  43586.         }
  43587.       ]) && wx(e.prototype, t),
  43588.       n && wx(e, n),
  43589.       o
  43590.     }();
  43591.     Rx(Yc, 'displayName', 'ModerationUserListsModal'),
  43592.     Rx(Yc, 'propTypes', {
  43593.       emitTrackingEvent: b.a.func.isRequired,
  43594.       user: b.a.object,
  43595.       postId: b.a.string,
  43596.       forum: b.a.object,
  43597.       isOpen: b.a.bool.isRequired,
  43598.       close: b.a.func.isRequired,
  43599.       performAction: b.a.func.isRequired
  43600.     });
  43601.     var xx = Object(u.connect) (null, {
  43602.       emitTrackingEvent: Xo({
  43603.         zone: 'moderation_panel',
  43604.         section: 'bypass_new_user_premoderation',
  43605.         area: 'user_sidebar'
  43606.       })
  43607.     }) (Yc),
  43608.     Yc = n(495),
  43609.     Ax = n.n(Yc);
  43610.     function Dx(e) {
  43611.       return (Dx = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  43612.         return typeof e
  43613.       }
  43614.        : function (e) {
  43615.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  43616.       }) (e)
  43617.     }
  43618.     function jx() {
  43619.       return (jx = Object.assign || function (e) {
  43620.         for (var t = 1; t < arguments.length; t++) {
  43621.           var n,
  43622.           a = arguments[t];
  43623.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  43624.         }
  43625.         return e
  43626.       }).apply(this, arguments)
  43627.     }
  43628.     function Tx(t, e) {
  43629.       var n,
  43630.       a = Object.keys(t);
  43631.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  43632.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  43633.       })), a.push.apply(a, n)),
  43634.       a
  43635.     }
  43636.     function Ix(t) {
  43637.       for (var e = 1; e < arguments.length; e++) {
  43638.         var n = null != arguments[e] ? arguments[e] : {
  43639.         };
  43640.         e % 2 ? Tx(Object(n), !0).forEach(function (e) {
  43641.           Bx(t, e, n[e])
  43642.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Tx(Object(n)).forEach(function (e) {
  43643.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  43644.         })
  43645.       }
  43646.       return t
  43647.     }
  43648.     function qx(e, t) {
  43649.       for (var n = 0; n < t.length; n++) {
  43650.         var a = t[n];
  43651.         a.enumerable = a.enumerable || !1,
  43652.         a.configurable = !0,
  43653.         'value' in a && (a.writable = !0),
  43654.         Object.defineProperty(e, a.key, a)
  43655.       }
  43656.     }
  43657.     function Fx(e, t) {
  43658.       return (Fx = Object.setPrototypeOf || function (e, t) {
  43659.         return e.__proto__ = t,
  43660.         e
  43661.       }) (e, t)
  43662.     }
  43663.     function Lx(n) {
  43664.       var a = function () {
  43665.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  43666.         if (Reflect.construct.sham) return !1;
  43667.         if ('function' == typeof Proxy) return !0;
  43668.         try {
  43669.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  43670.           ], function () {
  43671.           })),
  43672.           !0
  43673.         } catch (e) {
  43674.           return !1
  43675.         }
  43676.       }();
  43677.       return function () {
  43678.         var e,
  43679.         t = Mx(n);
  43680.         return e = a ? (e = Mx(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  43681.         t = this,
  43682.         !(e = e) || 'object' !== Dx(e) && 'function' != typeof e ? Ux(t) : e
  43683.       }
  43684.     }
  43685.     function Ux(e) {
  43686.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  43687.       return e
  43688.     }
  43689.     function Mx(e) {
  43690.       return (Mx = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  43691.         return e.__proto__ || Object.getPrototypeOf(e)
  43692.       }) (e)
  43693.     }
  43694.     function Bx(e, t, n) {
  43695.       return t in e ? Object.defineProperty(e, t, {
  43696.         value: n,
  43697.         enumerable: !0,
  43698.         configurable: !0,
  43699.         writable: !0
  43700.       }) : e[t] = n,
  43701.       e
  43702.     }
  43703.     var zx = {
  43704.       actionType: We.ACTION_TYPES.AWARD,
  43705.       selectedBadgeId: null,
  43706.       errorMessage: null
  43707.     },
  43708.     Yc = function () {
  43709.       !function (e, t) {
  43710.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  43711.         e.prototype = Object.create(t && t.prototype, {
  43712.           constructor: {
  43713.             value: e,
  43714.             writable: !0,
  43715.             configurable: !0
  43716.           }
  43717.         }),
  43718.         t && Fx(e, t)
  43719.       }(o, A);
  43720.       var e,
  43721.       t,
  43722.       n,
  43723.       a = Lx(o);
  43724.       function o() {
  43725.         var r;
  43726.         !function (e, t) {
  43727.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  43728.         }(this, o);
  43729.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  43730.         return Bx(Ux(r = a.call.apply(a, [
  43731.           this
  43732.         ].concat(t))), 'state', Ix({
  43733.         }, zx)),
  43734.         Bx(Ux(r), 'onOpen', function (e) {
  43735.           r.emitActionEvent({
  43736.             action: 'view',
  43737.             forum: e.forum,
  43738.             user: e.user
  43739.           }),
  43740.           e.forum && e.forum !== r.props.forum ? (e = r.getForumBadges(e.forum), r.setState(Ix(Ix({
  43741.           }, zx), {
  43742.           }, {
  43743.             forumBadges: e
  43744.           }))) : r.handleClose()
  43745.         }),
  43746.         Bx(Ux(r), 'getForumBadges', function (e) {
  43747.           var t = {
  43748.           };
  43749.           return e.badges.forEach(function (e) {
  43750.             t[e.id] = Ix({
  43751.             }, e)
  43752.           }),
  43753.           t
  43754.         }),
  43755.         Bx(Ux(r), 'updateBadgeAction', function (e) {
  43756.           r.setState({
  43757.             actionType: e.target.value,
  43758.             selectedBadgeId: null,
  43759.             errorMessage: null
  43760.           })
  43761.         }),
  43762.         Bx(Ux(r), 'updateBadgeSelection', function (e) {
  43763.           e.target.disabled || r.setState({
  43764.             selectedBadgeId: e.target.value
  43765.           })
  43766.         }),
  43767.         Bx(Ux(r), 'getUpdatedUserBadges', function (n) {
  43768.           var a,
  43769.           e = r.props.user.badges || [
  43770.           ];
  43771.           return r.state.actionType === We.ACTION_TYPES.AWARD ? e.unshift(n) : r.state.actionType === We.ACTION_TYPES.REMOVE && (a = null, e.forEach(function (e, t) {
  43772.             e.id === n.id && (a = t)
  43773.           }), e.splice(a, 1)),
  43774.           e
  43775.         }),
  43776.         Bx(Ux(r), 'getAwardableBadges', function () {
  43777.           var t = [
  43778.           ],
  43779.           n = [
  43780.           ],
  43781.           e = r.props.forum.badges.map(function (e) {
  43782.             return Ix({
  43783.             }, e)
  43784.           }),
  43785.           a = r.props.user.badges ? r.props.user.badges.map(function (e) {
  43786.             return parseInt(e.id, 10)
  43787.           }) : [
  43788.           ];
  43789.           return e.forEach(function (e) {
  43790.             e.criteria === We.BADGES_CRITERIA.MANUAL && (~a.indexOf(e.id) ? (e.disabled = !0, n.push(e)) : (e.disabled = !1, t.push(e)))
  43791.           }),
  43792.           [
  43793.           ].concat(t, n)
  43794.         }),
  43795.         Bx(Ux(r), 'getRemovableBadges', function () {
  43796.           var t = [
  43797.           ],
  43798.           n = [
  43799.           ];
  43800.           return (r.props.user.badges || [
  43801.           ]).forEach(function (e) {
  43802.             e.criteria === We.BADGES_CRITERIA.MANUAL ? (e.disabled = !1, t.push(e)) : (e.disabled = !0, n.push(e))
  43803.           }),
  43804.           [
  43805.           ].concat(t, n)
  43806.         }),
  43807.         Bx(Ux(r), 'getBadgeOptions', function () {
  43808.           var e = r.state.actionType;
  43809.           if (r.props.forum && r.props.user) {
  43810.             if (e === We.ACTION_TYPES.AWARD) return r.getAwardableBadges();
  43811.             if (e === We.ACTION_TYPES.REMOVE) return r.getRemovableBadges()
  43812.           }
  43813.           return []
  43814.         }),
  43815.         Bx(Ux(r), 'handleSubmit', function (e) {
  43816.           e.preventDefault();
  43817.           function t(e) {
  43818.             r.setState({
  43819.               errorMessage: e
  43820.             })
  43821.           }
  43822.           var n,
  43823.           a;
  43824.           r.state.selectedBadgeId ? (n = {
  43825.             badge: r.state.selectedBadgeId,
  43826.             forum: r.props.forum.id,
  43827.             user: r.props.user.id
  43828.           }, e = function (e) {
  43829.             r.emitActionEvent({
  43830.               action: a,
  43831.               badge: e
  43832.             })
  43833.           }, (a = r.state.actionType) === We.ACTION_TYPES.AWARD ? r.props.awardBadge(n, e, t) : a === We.ACTION_TYPES.REMOVE && r.props.removeBadge(n, e, t)) : t('You must select a badge to '.concat(r.state.actionType, '.'))
  43834.         }),
  43835.         Bx(Ux(r), 'handleClose', function () {
  43836.           r.setState(Ix({
  43837.           }, zx)),
  43838.           r.props.isOpen && r.props.close()
  43839.         }),
  43840.         Bx(Ux(r), 'getFormValues', function () {
  43841.           return {
  43842.             forum: r.props.forum,
  43843.             user: r.props.user,
  43844.             badge: r.state.selectedBadgeId,
  43845.             errorMessage: r.state.errorMessage
  43846.           }
  43847.         }),
  43848.         Bx(Ux(r), 'emitActionEvent', function (e) {
  43849.           var t = e.forum || r.props.forum,
  43850.           n = e.user || r.props.user;
  43851.           e.action && t && n && ((e = {
  43852.             zone: 'moderation_panel',
  43853.             section: 'manage_badges',
  43854.             area: 'user_sidebar',
  43855.             verb: e.action,
  43856.             object_id: t.id,
  43857.             extra_data: {
  43858.               user: n.id,
  43859.               badge: e.badge || null
  43860.             }
  43861.           }).extra_data = JSON.stringify(e.extra_data), r.props.emitTrackingEvent(e))
  43862.         }),
  43863.         r
  43864.       }
  43865.       return e = o,
  43866.       (t = [
  43867.         {
  43868.           key: 'componentDidMount',
  43869.           value: function () {
  43870.             this.props.isOpen && this.onOpen(this.props)
  43871.           }
  43872.         },
  43873.         {
  43874.           key: 'componentWillReceiveProps',
  43875.           value: function (e) {
  43876.             var t;
  43877.             (this.props.isAwarding && e.isAwarded || this.props.isRemoving && e.isRemoved && e.targetBadge) && (t = this.getUpdatedUserBadges(e.targetBadge), this.props.updateUserBadges(this.props.user, t), this.handleClose()),
  43878.             e.isOpen && !this.props.isOpen && this.onOpen(e)
  43879.           }
  43880.         },
  43881.         {
  43882.           key: 'componentWillUnmount',
  43883.           value: function () {
  43884.             this.handleClose()
  43885.           }
  43886.         },
  43887.         {
  43888.           key: 'render',
  43889.           value: function () {
  43890.             return C.a.createElement(_.a, {
  43891.               isOpen: this.props.isOpen,
  43892.               onRequestClose: this.handleClose,
  43893.               className: 'admin-modal -mobile',
  43894.               overlayClassName: 'modal-overlay'
  43895.             }, C.a.createElement('div', {
  43896.               className: 'admin-modal__header align align--between'
  43897.             }, C.a.createElement('h3', {
  43898.               className: 'text-large text-capitalized'
  43899.             }, 'Manage user badges'), C.a.createElement('button', {
  43900.               className: 'link-gray',
  43901.               onClick: this.handleClose
  43902.             }, C.a.createElement('span', {
  43903.               className: 'icon-cancel icon__position'
  43904.             }))), C.a.createElement(Ax.a, jx({
  43905.               badgeAction: this.state.actionType,
  43906.               formValues: this.getFormValues(),
  43907.               badgeOptions: this.getBadgeOptions(),
  43908.               updateBadgeAction: this.updateBadgeAction,
  43909.               updateBadgeSelection: this.updateBadgeSelection,
  43910.               handleSubmit: this.handleSubmit.bind(this),
  43911.               handleClose: this.handleClose.bind(this)
  43912.             }, this.props)))
  43913.           }
  43914.         }
  43915.       ]) && qx(e.prototype, t),
  43916.       n && qx(e, n),
  43917.       o
  43918.     }();
  43919.     Bx(Yc, 'displayName', 'ModerateBadgesModal'),
  43920.     Bx(Yc, 'propTypes', {
  43921.       emitTrackingEvent: b.a.func.isRequired,
  43922.       isOpen: b.a.bool.isRequired,
  43923.       user: b.a.shape({
  43924.         id: b.a.string,
  43925.         badges: b.a.arrayOf(b.a.shape(sl))
  43926.       }),
  43927.       forum: b.a.shape({
  43928.         id: b.a.string,
  43929.         badges: b.a.arrayOf(b.a.shape(sl))
  43930.       }),
  43931.       targetBadge: b.a.shape(sl),
  43932.       updateUserBadges: b.a.func.isRequired,
  43933.       close: b.a.func.isRequired,
  43934.       selection: ht,
  43935.       isAwarding: b.a.bool,
  43936.       isAwarded: b.a.bool,
  43937.       isRemoving: b.a.bool,
  43938.       isRemoved: b.a.bool,
  43939.       error: b.a.string,
  43940.       awardBadge: b.a.func.isRequired,
  43941.       removeBadge: b.a.func.isRequired
  43942.     });
  43943.     var Hx = Object(u.connect) (function (e) {
  43944.       return Ix({
  43945.       }, e.badgesManage)
  43946.     }, Ix(Ix({
  43947.     }, D), {
  43948.     }, {
  43949.       emitTrackingEvent: Xo({
  43950.         zone: 'moderation_panel',
  43951.         section: 'manage_badges',
  43952.         area: 'user_sidebar'
  43953.       })
  43954.     })) (Yc);
  43955.     function Gx(e) {
  43956.       return (Gx = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  43957.         return typeof e
  43958.       }
  43959.        : function (e) {
  43960.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  43961.       }) (e)
  43962.     }
  43963.     function Vx() {
  43964.       return (Vx = Object.assign || function (e) {
  43965.         for (var t = 1; t < arguments.length; t++) {
  43966.           var n,
  43967.           a = arguments[t];
  43968.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  43969.         }
  43970.         return e
  43971.       }).apply(this, arguments)
  43972.     }
  43973.     function Wx(e) {
  43974.       return function (e) {
  43975.         if (Array.isArray(e)) return Yx(e)
  43976.       }(e) || function (e) {
  43977.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  43978.       }(e) || function (e, t) {
  43979.         if (e) {
  43980.           if ('string' == typeof e) return Yx(e, t);
  43981.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  43982.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Yx(e, t) : void 0
  43983.         }
  43984.       }(e) || function () {
  43985.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  43986.       }()
  43987.     }
  43988.     function Yx(e, t) {
  43989.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  43990.       return a
  43991.     }
  43992.     function Qx(t, e) {
  43993.       var n,
  43994.       a = Object.keys(t);
  43995.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  43996.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  43997.       })), a.push.apply(a, n)),
  43998.       a
  43999.     }
  44000.     function Kx(t) {
  44001.       for (var e = 1; e < arguments.length; e++) {
  44002.         var n = null != arguments[e] ? arguments[e] : {
  44003.         };
  44004.         e % 2 ? Qx(Object(n), !0).forEach(function (e) {
  44005.           tA(t, e, n[e])
  44006.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Qx(Object(n)).forEach(function (e) {
  44007.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  44008.         })
  44009.       }
  44010.       return t
  44011.     }
  44012.     function Jx(e, t) {
  44013.       for (var n = 0; n < t.length; n++) {
  44014.         var a = t[n];
  44015.         a.enumerable = a.enumerable || !1,
  44016.         a.configurable = !0,
  44017.         'value' in a && (a.writable = !0),
  44018.         Object.defineProperty(e, a.key, a)
  44019.       }
  44020.     }
  44021.     function $x(e, t) {
  44022.       return ($x = Object.setPrototypeOf || function (e, t) {
  44023.         return e.__proto__ = t,
  44024.         e
  44025.       }) (e, t)
  44026.     }
  44027.     function Zx(n) {
  44028.       var a = function () {
  44029.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  44030.         if (Reflect.construct.sham) return !1;
  44031.         if ('function' == typeof Proxy) return !0;
  44032.         try {
  44033.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  44034.           ], function () {
  44035.           })),
  44036.           !0
  44037.         } catch (e) {
  44038.           return !1
  44039.         }
  44040.       }();
  44041.       return function () {
  44042.         var e,
  44043.         t = eA(n);
  44044.         return e = a ? (e = eA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  44045.         t = this,
  44046.         !(e = e) || 'object' !== Gx(e) && 'function' != typeof e ? Xx(t) : e
  44047.       }
  44048.     }
  44049.     function Xx(e) {
  44050.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  44051.       return e
  44052.     }
  44053.     function eA(e) {
  44054.       return (eA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  44055.         return e.__proto__ || Object.getPrototypeOf(e)
  44056.       }) (e)
  44057.     }
  44058.     function tA(e, t, n) {
  44059.       return t in e ? Object.defineProperty(e, t, {
  44060.         value: n,
  44061.         enumerable: !0,
  44062.         configurable: !0,
  44063.         writable: !0
  44064.       }) : e[t] = n,
  44065.       e
  44066.     }
  44067.     var nA = {
  44068.       USER: 'user',
  44069.       POST: 'post',
  44070.       HISTORY: 'history'
  44071.     },
  44072.     aA = {
  44073.       postsChecked: {
  44074.       },
  44075.       postsHidden: {
  44076.       },
  44077.       lastPostsUpdated: [
  44078.       ],
  44079.       lastActionName: null,
  44080.       message: null,
  44081.       allChecked: !1,
  44082.       allExpanded: Is.a.get('moderationExpandAll') || !1,
  44083.       activePostIndex: 0,
  44084.       isHelpVisible: !1,
  44085.       panelOpen: !1
  44086.     },
  44087.     Yc = function () {
  44088.       !function (e, t) {
  44089.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  44090.         e.prototype = Object.create(t && t.prototype, {
  44091.           constructor: {
  44092.             value: e,
  44093.             writable: !0,
  44094.             configurable: !0
  44095.           }
  44096.         }),
  44097.         t && $x(e, t)
  44098.       }(r, A);
  44099.       var e,
  44100.       t,
  44101.       n,
  44102.       a = Zx(r);
  44103.       function r() {
  44104.         var u;
  44105.         !function (e, t) {
  44106.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  44107.         }(this, r);
  44108.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  44109.         return tA(Xx(u = a.call.apply(a, [
  44110.           this
  44111.         ].concat(t))), 'state', Kx(Kx(Kx(Kx({
  44112.         }, jP), aA), QP), {
  44113.         }, {
  44114.           activePageIndex: u.props.pages.indexOf(u.props.params.tab || MP.page),
  44115.           postStatuses: {
  44116.           },
  44117.           sortedPosts: [
  44118.           ],
  44119.           panelType: null,
  44120.           panelFixed: !1,
  44121.           panelContentMaxHeight: 0,
  44122.           paginatorIndex: 0,
  44123.           panelAuthor: {
  44124.           },
  44125.           panelIpAddress: {
  44126.           },
  44127.           panelPostId: null,
  44128.           panelForum: null
  44129.         })),
  44130.         tA(Xx(u), 'panel', C.a.createRef()),
  44131.         tA(Xx(u), 'panelContainer', C.a.createRef()),
  44132.         tA(Xx(u), 'getActivePostId', function () {
  44133.           return u.state.sortedPosts[u.state.activePostIndex]
  44134.         }),
  44135.         tA(Xx(u), 'getActivePageName', function () {
  44136.           return u.props.pages[u.state.activePageIndex] || MP.page
  44137.         }),
  44138.         tA(Xx(u), 'toggleHelpVisible', function () {
  44139.           u.setState({
  44140.             isHelpVisible: !u.state.isHelpVisible
  44141.           })
  44142.         }),
  44143.         tA(Xx(u), 'getUrl', function (e) {
  44144.           var t = e.tab,
  44145.           n = e.search,
  44146.           e = e.filters;
  44147.           return hN.getUrl({
  44148.             tab: t = void 0 === t ? u.props.pages[u.state.activePageIndex] : t,
  44149.             search: n = void 0 === n ? u.props.searchQuery : n,
  44150.             filters: e = void 0 === e ? u.props.searchFilters : e
  44151.           })
  44152.         }),
  44153.         tA(Xx(u), 'updateUrl', function (e) {
  44154.           var t = e.tab,
  44155.           n = e.search,
  44156.           e = e.filters;
  44157.           (void 0 !== t && u.props.params.tab !== t || void 0 !== n && u.props.searchQuery !== n || void 0 !== e && !je.a.isEqual(u.props.searchFilters, e)) && u.props.history.push(u.getUrl({
  44158.             tab: t,
  44159.             search: n,
  44160.             filters: e
  44161.           }))
  44162.         }),
  44163.         tA(Xx(u), 'jesterEmitTabChange', function (e, t, n) {
  44164.           if (u._readyToEmitTabEvents) {
  44165.             if (e !== t) {
  44166.               var a = je.a.pick(u.getJesterExtraData(), 'num_comments', 'tab');
  44167.               if ('pending' === a.tab && YP) {
  44168.                 if (u.suggestedActionsPromise && 'pending' === u.suggestedActionsPromise.state()) return void u.suggestedActionsPromise.then(u.jesterEmitTabChange.bind(Xx(u), e, t));
  44169.                 a.suggested_actions = u.getSuggestedActionCounts(n)
  44170.               }
  44171.               u.props.emitTrackingEvent({
  44172.                 verb: 'click',
  44173.                 area: 'toolbar',
  44174.                 object_type: 'tab',
  44175.                 object_id: a.tab,
  44176.                 extra_data: JSON.stringify(a)
  44177.               })
  44178.             }
  44179.           } else u._readyToEmitTabEvents = !0
  44180.         }),
  44181.         tA(Xx(u), 'getJesterExtraData', function () {
  44182.           return {
  44183.             num_comments: Object.keys(u.props.posts).length - Object.keys(u.state.postsHidden).filter(function (e) {
  44184.               return u.state.postsHidden[e]
  44185.             }).length,
  44186.             filter: je.a.sortBy(u.props.searchFilters || [
  44187.             ], je.a.identity),
  44188.             sort: u.props.sortOrder || '',
  44189.             tab: u.getActivePageName()
  44190.           }
  44191.         }),
  44192.         tA(Xx(u), 'updateActivePage', function (e, t) {
  44193.           return je.a.has(IP, e) ? (u.setState({
  44194.             activePageIndex: je.a.indexOf(u.props.pages, e),
  44195.             paginatorIndex: 0,
  44196.             allChecked: !1,
  44197.             postsChecked: {
  44198.             }
  44199.           }, t), !0) : (window.alert('This is not a valid URL.'), !1)
  44200.         }),
  44201.         tA(Xx(u), 'emitWelcomeEvent', function (t) {
  44202.           var n;
  44203.           u._hasEmitWelcomeEvent || (u._hasEmitWelcomeEvent = !0, vo.a.when.apply(vo.a, (n = 'pending' === t.tab && YP) ? [
  44204.             u.suggestedActionsPromise
  44205.           ] : [
  44206.           ]).then(function (e) {
  44207.             n && (t.suggested_actions = u.getSuggestedActionCounts(e)),
  44208.             u.props.emitTrackingEvent({
  44209.               verb: 'view',
  44210.               object_type: 'product',
  44211.               object_id: 'publisher_admin',
  44212.               area: '' + u.state.paginatorIndex,
  44213.               extra_data: JSON.stringify(t)
  44214.             })
  44215.           }))
  44216.         }),
  44217.         tA(Xx(u), 'getPostsSuggestedActions', function (e) {
  44218.           return e.reduce(function (e, t) {
  44219.             var n = (u.props.suggestedActions[t] || {
  44220.             }).postAction;
  44221.             return n && e.push({
  44222.               post_id: t,
  44223.               suggested_action: n
  44224.             }),
  44225.             e
  44226.           }, [
  44227.           ])
  44228.         }),
  44229.         tA(Xx(u), 'getSuggestedActionCounts', function (e) {
  44230.           var a = e && e.suggestedActions || u.props.suggestedActions || {
  44231.           };
  44232.           return Object.keys(a).reduce(function (e, t) {
  44233.             var n = a[t].postAction;
  44234.             return u.props.posts[t] && n && !u.state.postsHidden[t] && (e[n] += 1),
  44235.             e
  44236.           }, {
  44237.             delete : 0,
  44238.             spam: 0,
  44239.             approve: 0
  44240.           })
  44241.         }),
  44242.         tA(Xx(u), 'updateFetchData', function (n, a) {
  44243.           n = n || {
  44244.           };
  44245.           var r = u.props.searchFilters,
  44246.           o = u.props.searchQuery;
  44247.           u.resetViewStates(),
  44248.           u.props.updateFetchData(Kx({
  44249.             include: IP[n.pageType]
  44250.           }, n), function () {
  44251.             var e,
  44252.             t;
  44253.             a && a(),
  44254.             u.emitWelcomeEvent(je.a.pick(u.getJesterExtraData(), 'num_comments', 'tab')),
  44255.             je.a.has(n, 'filters') && !je.a.isEqual(n.filters, r) && (e = n.filters.filter(function (e) {
  44256.               return !~r.indexOf(e)
  44257.             }), u.props.emitTrackingEvent({
  44258.               verb: 'click',
  44259.               area: 'toolbar',
  44260.               object_type: 'filter',
  44261.               object_id: e.length ? e[0] : '',
  44262.               extra_data: JSON.stringify(u.getJesterExtraData())
  44263.             })),
  44264.             je.a.has(n, 'sortOrder') && (t = u.getJesterExtraData(), u.props.emitTrackingEvent({
  44265.               verb: 'click',
  44266.               object_type: 'sort',
  44267.               object_id: t.sort,
  44268.               extra_data: JSON.stringify(t)
  44269.             })),
  44270.             je.a.has(n, 'startDate') && je.a.has(n, 'endDate') && u.props.emitTrackingEvent({
  44271.               verb: 'click',
  44272.               area: 'toolbar',
  44273.               object_type: 'filter',
  44274.               object_id: 'date',
  44275.               extra_data: JSON.stringify(Kx(Kx({
  44276.               }, u.getJesterExtraData()), {
  44277.               }, {
  44278.                 filter_start_date: n.startDate.toISOString(),
  44279.                 filter_end_date: n.endDate.toISOString()
  44280.               }))
  44281.             }),
  44282.             je.a.has(n, 'searchQuery') && n.searchQuery !== o && (t = n.searchQuery && n.searchQuery.match(/\b(user|ip|email|thread|id):/), u.props.emitTrackingEvent({
  44283.               verb: 'click',
  44284.               area: 'toolbar',
  44285.               object_type: 'search',
  44286.               object_id: (t = t ? t[1] : '') ? 'keyword_enabled' : 'no_keywords',
  44287.               extra_data: JSON.stringify(Kx(Kx({
  44288.               }, u.getJesterExtraData()), {
  44289.               }, {
  44290.                 search_keyword: t
  44291.               }))
  44292.             }))
  44293.           })
  44294.         }),
  44295.         tA(Xx(u), 'resetViewStates', function () {
  44296.           u.setState(aA, u.hidePanel)
  44297.         }),
  44298.         tA(Xx(u), 'refreshCurrentPage', function () {
  44299.           u.props.refreshPosts({
  44300.           }, u.resetViewStates)
  44301.         }),
  44302.         tA(Xx(u), 'focusSearch', function () {
  44303.           u.props.searchChangeActive(!0)
  44304.         }),
  44305.         tA(Xx(u), 'removeFocus', function () {
  44306.           u.props.searchChangeActive(!1),
  44307.           u.hidePanel()
  44308.         }),
  44309.         tA(Xx(u), 'tab', function (e) {
  44310.           u.navigateToPage(u.props.pages[e])
  44311.         }),
  44312.         tA(Xx(u), 'tabOver', function (e) {
  44313.           var t = u.props.pages.length;
  44314.           u.tab((u.state.activePageIndex + e + t) % t)
  44315.         }),
  44316.         tA(Xx(u), 'checkPostSetsDifferent', function (e, t) {
  44317.           return !e || !t || je.a.keys(e).length !== je.a.keys(t).length || !je.a.isEqual(je.a.keys(e).sort(), je.a.keys(t).sort())
  44318.         }),
  44319.         tA(Xx(u), 'checkFeatureMessage', function (e) {
  44320.           var t = (e = e || u.props).saasFeatures[(e.selection.organization || {
  44321.           }).id] || {
  44322.           };
  44323.           e.selection.organization && t.isFetched && t.allModRules && u.props.showFeaturedMessage(['moderationRules'])
  44324.         }),
  44325.         tA(Xx(u), 'refreshPendingCommentsCount', function (e) {
  44326.           e = e || u.props,
  44327.           u.props.pendingCountsIsFetching || u.props.refreshPendingCommentsCount({
  44328.             start: e.startDate.toISOString(),
  44329.             end: e.endDate.toISOString()
  44330.           })
  44331.         }),
  44332.         tA(Xx(u), 'getPostStatuses', function (e) {
  44333.           return je.a.chain(e).map(function (e) {
  44334.             var t = this.state.postStatuses[e.id] || {
  44335.             };
  44336.             return t.current = e.isDeleted ? 'deleted' : e.isSpam ? 'spam' : e.isApproved && !e.isFlagged ? 'approved' : 'unapproved',
  44337.             [
  44338.               e.id,
  44339.               t
  44340.             ]
  44341.           }, Xx(u)).object().value()
  44342.         }),
  44343.         tA(Xx(u), 'anchorPanel', function () {
  44344.           var e = u.panelContainer.current.getBoundingClientRect().top <= 0;
  44345.           e !== u.state.panelFixed && u.setState({
  44346.             panelFixed: e
  44347.           })
  44348.         }),
  44349.         tA(Xx(u), 'resizePanel', function () {
  44350.           var e,
  44351.           t;
  44352.           u.state.panelOpen && (e = u.panel.current.getBoundingClientRect(), t = window.innerHeight || window.document.documentElement.clientHeight, u.setState({
  44353.             panelMaxHeight: t - Math.max(e.top, 0)
  44354.           }))
  44355.         }),
  44356.         tA(Xx(u), 'showUserPanel', function (e) {
  44357.           u.setState({
  44358.             panelOpen: !0,
  44359.             panelType: nA.USER,
  44360.             panelAuthor: e.author,
  44361.             panelIpAddress: e.ipAddress,
  44362.             panelPostId: e.id,
  44363.             panelForum: e.forum
  44364.           })
  44365.         }),
  44366.         tA(Xx(u), 'showUserPanelFromThread', function (e) {
  44367.           u.setState({
  44368.             panelType: nA.USER,
  44369.             panelAuthor: e.author,
  44370.             panelIpAddress: e.ipAddress
  44371.           })
  44372.         }),
  44373.         tA(Xx(u), 'toggleActivePostPanelVisible', function () {
  44374.           u.togglePostPanelVisible(u.getActivePostId())
  44375.         }),
  44376.         tA(Xx(u), 'handlePostClick', function (e) {
  44377.           u.togglePostPanelVisible(e),
  44378.           u.props.emitTrackingEvent({
  44379.             verb: 'click',
  44380.             area: 'card',
  44381.             object_type: 'area',
  44382.             object_id: 'card',
  44383.             extra_data: JSON.stringify(je.a.pick(u.getJesterExtraData(), 'tab'))
  44384.           })
  44385.         }),
  44386.         tA(Xx(u), 'togglePostPanelVisible', function (e) {
  44387.           u.state.panelOpen && u.state.panelType === nA.POST && u.state.panelPostId === e ? u.hidePanel() : u.showPostPanel(e)
  44388.         }),
  44389.         tA(Xx(u), 'showPostPanel', function (e) {
  44390.           var t = u.props.posts[e];
  44391.           t && u.props.fetchThreadReactionsEnabled(t.thread.id).then(function () {
  44392.             return u.setState({
  44393.               panelOpen: !0,
  44394.               panelPostId: e,
  44395.               panelType: nA.POST,
  44396.               panelAuthor: t.author,
  44397.               panelIpAddress: t.ipAddress,
  44398.               panelForum: t.forum
  44399.             }, je.a.partial(u.props.getPostParents, e))
  44400.           })
  44401.         }),
  44402.         tA(Xx(u), 'hidePanel', function () {
  44403.           u.setState({
  44404.             panelOpen: !1,
  44405.             panelAuthor: null,
  44406.             panelIpAddress: null,
  44407.             panelPostId: null,
  44408.             panelForum: null
  44409.           })
  44410.         }),
  44411.         tA(Xx(u), 'handlePostMessageUpdate', function (e) {
  44412.           for (var t, n = arguments.length, a = Array(1 < n ? n - 1 : 0), r = 1; r < n; r++) a[r - 1] = arguments[r];
  44413.           (t = u.props).updatePostMessage.apply(t, [
  44414.             e
  44415.           ].concat(a)),
  44416.           u.props.emitTrackingEvent({
  44417.             verb: 'update',
  44418.             area: 'card',
  44419.             object_type: 'post',
  44420.             object_id: e,
  44421.             extra_data: JSON.stringify(je.a.pick(u.getJesterExtraData(), 'filter', 'sort', 'tab'))
  44422.           })
  44423.         }),
  44424.         tA(Xx(u), 'handlePostAction', function (e, t, n, a) {
  44425.           u.performActionOnPosts(e, t, n, a);
  44426.           n = je.a.pick(u.getJesterExtraData(), 'filter', 'sort', 'tab');
  44427.           YP && 'pending' === n.tab && (n.suggested_actions = u.getPostsSuggestedActions([t])),
  44428.           a && a.newUserPremodBypass && (n.newUserPremodBypass = a.newUserPremodBypass),
  44429.           u.props.emitTrackingEvent({
  44430.             verb: 'mark',
  44431.             adverb: e,
  44432.             area: 'card',
  44433.             object_type: 'post',
  44434.             object_id: t,
  44435.             extra_data: JSON.stringify(n)
  44436.           })
  44437.         }),
  44438.         tA(Xx(u), 'sortPosts', function (e, r) {
  44439.           return je.a.chain(e || {
  44440.           }).values().sort(function (e, t) {
  44441.             var n = Os.parseISO8601(''.concat(e.createdAt, ' GMT')).getTime(),
  44442.             a = Os.parseISO8601(''.concat(t.createdAt, ' GMT')).getTime();
  44443.             return 'asc' === r ? n - a : 'desc' === r ? a - n : e.isFlagged && !t.isFlagged ? - 1 : !e.isFlagged && t.isFlagged ? 1 : a - n
  44444.           }).pluck('id').value()
  44445.         }),
  44446.         tA(Xx(u), 'prevPage', function () {
  44447.           u.updateActivePostIndex(Math.max(u.state.activePostIndex - MP.perPage, 0))
  44448.         }),
  44449.         tA(Xx(u), 'updateActivePost', function (e, t) {
  44450.           u.updateActivePostIndex(je.a.indexOf(u.state.sortedPosts, e), t)
  44451.         }),
  44452.         tA(Xx(u), 'activateNextPost', function () {
  44453.           u.updateActivePostIndex(u.state.activePostIndex + 1)
  44454.         }),
  44455.         tA(Xx(u), 'activatePreviousPost', function () {
  44456.           u.updateActivePostIndex(u.state.activePostIndex - 1)
  44457.         }),
  44458.         tA(Xx(u), 'updateActivePostIndex', function (e, t) {
  44459.           e < 0 || e === u.state.sortedPosts.length || u.setState({
  44460.             activePostIndex: e
  44461.           }, t)
  44462.         }),
  44463.         tA(Xx(u), 'savePostReply', function (e, t, n, a) {
  44464.           u.props.savePostReply(e, t, je.a.bind(function () {
  44465.             this.setState({
  44466.               postStatuses: je.a.defaults(tA({
  44467.               }, e, {
  44468.                 current: 'approved'
  44469.               }), this.state.postStatuses)
  44470.             }, n),
  44471.             'pending' === this.getActivePageName() && this.refreshPendingCommentsCount()
  44472.           }, Xx(u)), a)
  44473.         }),
  44474.         tA(Xx(u), 'toggleActivePostChecked', function () {
  44475.           var e = u.getActivePostId();
  44476.           u.updatePostsChecked(e, !u.state.postsChecked[e])
  44477.         }),
  44478.         tA(Xx(u), 'updatePostsChecked', function (n, a) {
  44479.           je.a.isArray(n) || (n = [
  44480.             n
  44481.           ]),
  44482.           n = je.a.reject(n, function (e) {
  44483.             return u.state.postsHidden[e]
  44484.           }),
  44485.           u.setState(function (e) {
  44486.             var t = je.a.defaults(je.a.object(n, n.map(function () {
  44487.               return a
  44488.             })), e.postsChecked);
  44489.             return {
  44490.               postsChecked: t,
  44491.               allChecked: je.a.every(this.props.posts, function (e) {
  44492.                 return t[e.id]
  44493.               })
  44494.             }
  44495.           })
  44496.         }),
  44497.         tA(Xx(u), 'updateExpanded', function (e) {
  44498.           Is.a.set('moderationExpandAll', e),
  44499.           u.setState({
  44500.             allExpanded: e
  44501.           })
  44502.         }),
  44503.         tA(Xx(u), 'markCheckedPostsApproved', function () {
  44504.           u.performActionOnCheckedPosts('approve')
  44505.         }),
  44506.         tA(Xx(u), 'markCheckedPostsSpam', function () {
  44507.           u.performActionOnCheckedPosts('spam')
  44508.         }),
  44509.         tA(Xx(u), 'markCheckedPostsTrash', function () {
  44510.           u.performActionOnCheckedPosts('delete')
  44511.         }),
  44512.         tA(Xx(u), 'getCheckedPostsIds', function () {
  44513.           return je.a.chain(u.state.postsChecked).pick(je.a.identity).keys().value()
  44514.         }),
  44515.         tA(Xx(u), 'performActionOnCheckedPosts', function (e) {
  44516.           var t = u.getCheckedPostsIds();
  44517.           u.performActionOnPosts(e, t);
  44518.           var n = Object.keys(u.state.postsChecked).reduce(function (e, t) {
  44519.             return e + (u.state.postsChecked[t] ? 1 : 0)
  44520.           }, 0),
  44521.           n = Kx(Kx({
  44522.           }, u.getJesterExtraData()), {
  44523.           }, {
  44524.             num_comments: n
  44525.           });
  44526.           YP && 'pending' === n.tab && (n.suggested_actions = u.getPostsSuggestedActions(t)),
  44527.           u.props.emitTrackingEvent({
  44528.             verb: 'mark',
  44529.             adverb: e,
  44530.             area: 'actionbar',
  44531.             object_type: 'area',
  44532.             object_id: 'actionbar',
  44533.             extra_data: JSON.stringify(n)
  44534.           })
  44535.         }),
  44536.         tA(Xx(u), 'performSuggestedActionsOnCheckedPosts', function () {
  44537.           var n = 0,
  44538.           a = {
  44539.           },
  44540.           r = [
  44541.           ];
  44542.           u.getCheckedPostsIds().forEach(function (e) {
  44543.             var t = (u.props.suggestedActions[e] || {
  44544.             }).postAction;
  44545.             t && VP.posts[t] && (n += 1, a[t] = a[t] || [
  44546.             ], a[t].push(e), r.push({
  44547.               post_id: e,
  44548.               suggested_action: t
  44549.             }))
  44550.           }),
  44551.           u.props.emitTrackingEvent({
  44552.             verb: 'click',
  44553.             object_type: 'button',
  44554.             object_id: 'accept_suggested_actions',
  44555.             extra_data: JSON.stringify({
  44556.               suggested_actions: r
  44557.             })
  44558.           }),
  44559.           u.performActions(a, !1),
  44560.           u.setState({
  44561.             message: 1 === n ? 'One suggested action accepted' : ''.concat(n || 'No', ' suggested actions accepted'),
  44562.             lastActionName: 'accept_suggested_actions'
  44563.           })
  44564.         }),
  44565.         tA(Xx(u), 'performRetroactiveAction', function (t, n, e) {
  44566.           e === Wn.RETROACTIVE_ACTION_TYPES.MARK_AS_SPAM ? u.performActions({
  44567.             spam: je.a.keys(u.props.posts).filter(function (e) {
  44568.               return u.props.posts[e].author.id === n && e !== t
  44569.             })
  44570.           }, !0) : e === Wn.RETROACTIVE_ACTION_TYPES.DELETE && u.performActions({
  44571.             delete : je.a.keys(u.props.posts).filter(function (e) {
  44572.               return u.props.posts[e].author.id === n && e !== t
  44573.             })
  44574.           }, !0)
  44575.         }),
  44576.         tA(Xx(u), 'performActionOnPosts', function (e, t, n, a) {
  44577.           je.a.isArray(t) || (t = [
  44578.             t
  44579.           ]);
  44580.           var r = BP[e],
  44581.           t = je.a.chain(u.props.posts).pick(t).filter(function (e) {
  44582.             return this.state.postStatuses[e.id].current !== r.status
  44583.           }, Xx(u)).pluck('id').value();
  44584.           u.performActions(tA({
  44585.           }, e, t), n, a),
  44586.           u.setState({
  44587.             message: r.successMessage(t.length),
  44588.             lastActionName: e
  44589.           })
  44590.         }),
  44591.         tA(Xx(u), 'performActions', function (e, t, a) {
  44592.           var r,
  44593.           o,
  44594.           i,
  44595.           s,
  44596.           l,
  44597.           c = u.getActivePageName(),
  44598.           n = je.a.chain(e).values().flatten().value();
  44599.           n.length && (je.a.isArray(r = IP[c]) || (r = [
  44600.             r
  44601.           ]), o = {
  44602.           }, i = {
  44603.           }, s = 0, je.a.each(e, function (e, t) {
  44604.             var n = !je.a.contains(r, (l = BP[t]).status);
  44605.             je.a.each(e, function (e) {
  44606.               o[e] = {
  44607.                 current: l.status,
  44608.                 previous: this.state.postStatuses[e].current
  44609.               },
  44610.               (i[e] = n) && (s += 1)
  44611.             }, this),
  44612.             this.props.performAction(e, t, je.a.bind(function () {
  44613.               'pending' === c && this.refreshPendingCommentsCount(),
  44614.               a && a.callback && a.callback.call(this)
  44615.             }, this), a)
  44616.           }, Xx(u)), u.setState({
  44617.             allChecked: !1,
  44618.             postsChecked: je.a.defaults(je.a.object(n, n.map(function () {
  44619.               return !1
  44620.             })), u.state.postsChecked),
  44621.             postStatuses: je.a.defaults(o, u.state.postStatuses),
  44622.             postsHidden: je.a.defaults(i, u.state.postsHidden),
  44623.             lastPostsUpdated: t ? [
  44624.             ] : n,
  44625.             message: t ? null : u.state.message
  44626.           }), u.state.sortedPosts.length - s <= 0 && u.fetchMorePosts(function () {
  44627.             var t = je.a.pick(u.getJesterExtraData(), 'num_comments', 'tab'),
  44628.             n = 'pending' === t.tab && YP;
  44629.             vo.a.when.apply(vo.a, n ? [
  44630.               u.suggestedActionsPromise
  44631.             ] : [
  44632.             ]).then(function (e) {
  44633.               n && (t.suggested_actions = u.getSuggestedActionCounts(e)),
  44634.               u.props.emitTrackingEvent({
  44635.                 verb: 'view',
  44636.                 object_type: 'zone',
  44637.                 object_id: 'moderation_panel',
  44638.                 adverb: 'auto',
  44639.                 area: '' + u.state.paginatorIndex,
  44640.                 extra_data: JSON.stringify(t)
  44641.               })
  44642.             })
  44643.           }))
  44644.         }),
  44645.         tA(Xx(u), 'undoAction', function () {
  44646.           var e,
  44647.           t = je.a.groupBy(u.state.lastPostsUpdated, function (e) {
  44648.             return zP[this.state.postStatuses[e].previous]
  44649.           }, Xx(u));
  44650.           'accept_suggested_actions' === u.state.lastActionName ? e = {
  44651.             verb: 'click',
  44652.             object_type: 'button',
  44653.             object_id: 'undo_accept_suggested_actions',
  44654.             extra_data: {
  44655.               suggested_actions: u.getPostsSuggestedActions(u.state.lastPostsUpdated)
  44656.             }
  44657.           }
  44658.            : (e = {
  44659.             verb: 'mark',
  44660.             adverb: 'undo_'.concat(u.state.lastActionName),
  44661.             area: 'actionbar',
  44662.             extra_data: je.a.pick(u.getJesterExtraData(), 'filter', 'sort', 'tab')
  44663.           }, YP && 'pending' === u.getActivePageName() && (e.extra_data.suggested_actions = u.getPostsSuggestedActions(u.state.lastPostsUpdated)), 1 === u.state.lastPostsUpdated.length ? (e.object_type = 'post', e.object_id = u.state.lastPostsUpdated[0]) : (e.object_type = 'area', e.object_id = 'actionbar', e.extra_data.num_comments = u.state.lastPostsUpdated.length)),
  44664.           u.props.emitTrackingEvent(Kx(Kx({
  44665.           }, e), {
  44666.           }, {
  44667.             extra_data: JSON.stringify(e.extra_data)
  44668.           })),
  44669.           u.performActions(t, !0)
  44670.         }),
  44671.         tA(Xx(u), 'dismissMessage', function () {
  44672.           u.setState({
  44673.             message: null
  44674.           })
  44675.         }),
  44676.         tA(Xx(u), 'handleFetchMoreClick', function (e) {
  44677.           e.preventDefault(),
  44678.           u.fetchMorePosts(function () {
  44679.             var t = je.a.pick(u.getJesterExtraData(), 'num_comments', 'tab'),
  44680.             n = 'pending' === t.tab && YP;
  44681.             vo.a.when.apply(vo.a, n ? [
  44682.               u.suggestedActionsPromise
  44683.             ] : [
  44684.             ]).then(function (e) {
  44685.               n && (t.suggested_actions = u.getSuggestedActionCounts(e)),
  44686.               u.props.emitTrackingEvent({
  44687.                 verb: 'click',
  44688.                 object_type: 'button',
  44689.                 object_id: 'show_more_comments',
  44690.                 area: '' + u.state.paginatorIndex,
  44691.                 extra_data: JSON.stringify(t)
  44692.               })
  44693.             })
  44694.           })
  44695.         }),
  44696.         tA(Xx(u), 'fetchMorePosts', function (e) {
  44697.           var t;
  44698.           u.props.hasMorePosts && (t = u.state.sortedPosts.length, u.props.fetchMorePosts(function () {
  44699.             u.updateActivePostIndex(t),
  44700.             u.setState(function (e) {
  44701.               return {
  44702.                 paginatorIndex: e.paginatorIndex + 1
  44703.               }
  44704.             }, e)
  44705.           }))
  44706.         }),
  44707.         tA(Xx(u), 'getSearchFilterOptions', function () {
  44708.           var e,
  44709.           t = [
  44710.             {
  44711.               key: 'noIssue',
  44712.               label: 'No Issue'
  44713.             },
  44714.             {
  44715.               key: 'isAnonymous',
  44716.               label: 'Guest'
  44717.             },
  44718.             {
  44719.               key: 'isNewUserNeedsApproval',
  44720.               label: 'New Commenter'
  44721.             },
  44722.             {
  44723.               key: 'hasLinks',
  44724.               label: 'Contains Link'
  44725.             },
  44726.             {
  44727.               key: 'hasLowRep',
  44728.               label: 'Low Rep.'
  44729.             },
  44730.             {
  44731.               key: 'hasBadWords',
  44732.               label: 'Restricted Word'
  44733.             },
  44734.             {
  44735.               key: 'isFlagged',
  44736.               label: 'Flagged'
  44737.             },
  44738.             {
  44739.               key: 'isAtFlagLimit',
  44740.               label: 'Flagged At Threshold'
  44741.             },
  44742.             {
  44743.               key: 'hasMedia',
  44744.               label: 'Contains Media'
  44745.             },
  44746.             {
  44747.               key: 'isToxic',
  44748.               label: 'Toxic'
  44749.             }
  44750.           ],
  44751.           n = u.props.saasFeatures[(u.props.selection.organization || {
  44752.           }).id] || {
  44753.           };
  44754.           return u.props.selection.type === ft.forum ? e = yo.a.isFeatureActive('thehive', {
  44755.             forum: u.props.selection.forum.shortname
  44756.           }) : u.props.selection.type === ft.organization && (e = Object.keys(u.props.selection.organizationForums).some(function (e) {
  44757.             return yo.a.isFeatureActive('thehive', {
  44758.               forum: e
  44759.             })
  44760.           })),
  44761.           u.props.selection.organization && n.isFetched && (n.allModRules || e) && t.push({
  44762.             key: 'isHate',
  44763.             label: 'Hate Speech'
  44764.           }, {
  44765.             key: 'isBullying',
  44766.             label: 'Bullying'
  44767.           }, {
  44768.             key: 'isSexual',
  44769.             label: 'Sexual'
  44770.           }, {
  44771.             key: 'isViolence',
  44772.             label: 'Violence'
  44773.           }, {
  44774.             key: 'isPromotion',
  44775.             label: 'Promotion'
  44776.           }),
  44777.           t.push({
  44778.             key: 'modifiedByRule',
  44779.             label: 'Moderation Rules'
  44780.           }),
  44781.           'pending' === u.getActivePageName() && t.forEach(function (e) {
  44782.             var t = u.props.pendingCounts[e.key];
  44783.             je.a.isNumber(t) && (e.label += ' ('.concat(u.getPendingCount(t), ')'))
  44784.           }),
  44785.           t
  44786.         }),
  44787.         tA(Xx(u), 'getPendingCount', function (e) {
  44788.           return TP <= e ? ''.concat(TP, '+') : e
  44789.         }),
  44790.         tA(Xx(u), 'toggleReactions', function (e) {
  44791.           e && e.preventDefault();
  44792.           e = u.props.posts[u.state.panelPostId].thread;
  44793.           u.props.toggleReactions(e.id, !e.reactionsEnabled)
  44794.         }),
  44795.         tA(Xx(u), 'toggleThreadClosed', function (e) {
  44796.           e && e.preventDefault(),
  44797.           u.props.isTogglingClosed || u.props.toggleThreadClosed((e = u.props.posts[u.state.panelPostId].thread).id, !e.isClosed)
  44798.         }),
  44799.         tA(Xx(u), 'toggleThreadPremoderation', function (e) {
  44800.           e && e.preventDefault(),
  44801.           u.props.emitTrackingEvent({
  44802.             verb: 'click',
  44803.             section: 'default',
  44804.             area: 'user_sidebar',
  44805.             object_type: 'button',
  44806.             object_id: 'premoderate_thread'
  44807.           });
  44808.           e = u.props.posts[u.state.panelPostId].thread;
  44809.           u.props.toggleThreadPremoderation(e.id, !e.validateAllPosts)
  44810.         }),
  44811.         tA(Xx(u), 'showBadgesModal', function (e) {
  44812.           u.props.updateBadgesModal({
  44813.             isOpen: !0,
  44814.             forum: e.forum || u.state.panelForum,
  44815.             author: u.state.panelAuthor || u.props.author
  44816.           })
  44817.         }),
  44818.         tA(Xx(u), 'handleUpdateBadges', function (e, t) {
  44819.           u.setState(function (e) {
  44820.             return {
  44821.               panelAuthor: je.a.defaults({
  44822.                 badges: t
  44823.               }, e.panelAuthor)
  44824.             }
  44825.           }, function () {
  44826.             return u.props.updateUserBadges(e, t)
  44827.           })
  44828.         }),
  44829.         tA(Xx(u), 'sidePanelSearch', function (e) {
  44830.           e = e.searchQuery;
  44831.           u.updateUrl({
  44832.             search: e
  44833.           }),
  44834.           u.updateFetchData({
  44835.             searchQuery: e
  44836.           })
  44837.         }),
  44838.         tA(Xx(u), 'updateApproveModal', function (e) {
  44839.           var t = e.approveModalIsOpen,
  44840.           n = e.approveModalPostId,
  44841.           a = e.approveModalAuthor;
  44842.           u.setState(function (e) {
  44843.             return {
  44844.               approveModalIsOpen: 'boolean' == typeof t ? t : e.approveModalIsOpen,
  44845.               approveModalPostId: n || e.approveModalPostId,
  44846.               approveModalAuthor: a || e.approveModalAuthor
  44847.             }
  44848.           })
  44849.         }),
  44850.         u
  44851.       }
  44852.       return e = r,
  44853.       (t = [
  44854.         {
  44855.           key: 'navigateToPage',
  44856.           value: function (e) {
  44857.             var t = this;
  44858.             this.updateUrl({
  44859.               tab: e = e || MP.page
  44860.             });
  44861.             var n = this.getActivePageName();
  44862.             return this.updateActivePage(e, function () {
  44863.               t.updateFetchData({
  44864.                 pageType: e
  44865.               }, function () {
  44866.                 t.jesterEmitTabChange(e, n)
  44867.               })
  44868.             })
  44869.           }
  44870.         },
  44871.         {
  44872.           key: 'componentDidMount',
  44873.           value: function () {
  44874.             this.props.params.tab || this.props.history.push(ho.getRoute('/moderate/'.concat(this.props.pages[this.state.activePageIndex]))),
  44875.             this._hasEmitWelcomeEvent = !1,
  44876.             this._readyToEmitTabEvents = !1,
  44877.             this.refreshPendingCommentsCount(),
  44878.             this.checkFeatureMessage(),
  44879.             this.navigateToPage(this.props.pages[this.state.activePageIndex]),
  44880.             this.props.addHotkeys(je.a.map(HP, function (e, t) {
  44881.               return je.a.isString(e) && (e = {
  44882.                 callbackName: e
  44883.               }),
  44884.               je.a.extend({
  44885.                 keyName: t,
  44886.                 callback: je.a.partial.apply(je.a, [
  44887.                   this[e.callbackName]
  44888.                 ].concat(Wx(e.callbackArgs || [
  44889.                 ]))),
  44890.                 options: {
  44891.                 }
  44892.               }, e)
  44893.             }, this)),
  44894.             this.anchorPanel = je.a.throttle(this.anchorPanel, 250),
  44895.             this.resizePanel = je.a.debounce(this.resizePanel, 100),
  44896.             window.addEventListener('scroll', this.anchorPanel),
  44897.             window.addEventListener('resize', this.resizePanel)
  44898.           }
  44899.         },
  44900.         {
  44901.           key: 'componentWillUnmount',
  44902.           value: function () {
  44903.             window.removeEventListener('scroll', this.anchorPanel),
  44904.             window.removeEventListener('resize', this.resizePanel)
  44905.           }
  44906.         },
  44907.         {
  44908.           key: 'componentWillReceiveProps',
  44909.           value: function (e) {
  44910.             var t,
  44911.             n;
  44912.             this.props.saasFeatures !== e.saasFeatures && this.checkFeatureMessage(e),
  44913.             this.props.postsAreFetching && !e.postsAreFetching || this.checkPostSetsDifferent(this.props.posts, e.posts) ? (t = this.getPostStatuses(e.posts), this.setState({
  44914.               postStatuses: t,
  44915.               sortedPosts: this.sortPosts(e.posts, e.sortOrder),
  44916.               activePostIndex: null
  44917.             }, je.a.partial(this.updateActivePostIndex, 0)), YP && (this.suggestedActionsPromise = this.props.fetchSuggestedActions(Object.keys(e.posts).filter(function (e) {
  44918.               return 'unapproved' === t[e].current
  44919.             })))) : this.props.postsAreUpdating && !e.postsAreUpdating ? (n = this.getPostStatuses(e.posts), this.setState({
  44920.               postStatuses: n
  44921.             })) : e.sortOrder !== this.props.sortOrder ? this.setState({
  44922.               sortedPosts: this.sortPosts(e.posts, e.sortOrder),
  44923.               activePostIndex: null
  44924.             }, je.a.partial(this.updateActivePostIndex, 0)) : e.searchQuery !== this.props.searchQuery ? this.updateUrl({
  44925.               search: e.searchQuery
  44926.             }) : e.startDate !== this.props.startDate || e.endDate !== this.props.endDate ? this.refreshPendingCommentsCount(e) : this.props.params.tab !== e.params.tab ? this.navigateToPage(e.params.tab) : je.a.isEqual(this.props.searchFilters, e.searchFilters) || this.updateUrl({
  44927.               filters: e.searchFilters
  44928.             })
  44929.           }
  44930.         },
  44931.         {
  44932.           key: 'componentDidUpdate',
  44933.           value: function (e, t) {
  44934.             this.state.panelOpen && !t.panelOpen && this.anchorPanel(),
  44935.             this.state.panelFixed === t.panelFixed && je.a.isEqual(this.state.panelAuthor, t.panelAuthor) || this.resizePanel()
  44936.           }
  44937.         },
  44938.         {
  44939.           key: 'render',
  44940.           value: function () {
  44941.             var n = this;
  44942.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  44943.               isPolls: !1,
  44944.               organization: this.props.selection.organization
  44945.             });
  44946.             var e,
  44947.             t = !!this.state.sortedPosts[this.state.activePostIndex] && this.props.posts[this.state.sortedPosts[this.state.activePostIndex]],
  44948.             a = Object.keys(this.state.postsChecked).reduce(function (e, t) {
  44949.               return e + (n.state.postsChecked[t] ? 1 : 0)
  44950.             }, 0),
  44951.             r = this.getActivePageName(),
  44952.             o = {
  44953.               all: 'All',
  44954.               approved: 'Approved',
  44955.               pending: 'Pending ('.concat(this.getPendingCount(this.props.pendingCounts.total), ')'),
  44956.               spam: 'Spam',
  44957.               deleted: 'Deleted'
  44958.             },
  44959.             i = C.a.createElement('div', {
  44960.               className: 'mod-bar'
  44961.             }, C.a.createElement(vR, {
  44962.               postIds: Object.keys(this.props.posts).filter(function (e) {
  44963.                 return !n.props.posts[e].isDeletedByAuthor
  44964.               }),
  44965.               performAction: this.performActionOnCheckedPosts,
  44966.               performSuggestedActions: this.performSuggestedActionsOnCheckedPosts,
  44967.               canUndo: !!this.state.lastPostsUpdated.length,
  44968.               undoAction: this.undoAction,
  44969.               updatePostsChecked: this.updatePostsChecked,
  44970.               allChecked: this.state.allChecked,
  44971.               updateExpanded: this.updateExpanded,
  44972.               allExpanded: this.state.allExpanded,
  44973.               dismissMessage: this.dismissMessage,
  44974.               actionCompleteMessage: this.state.message,
  44975.               activePage: r,
  44976.               sortOrder: this.props.sortOrder,
  44977.               searchQuery: this.props.searchQuery,
  44978.               updateFetchData: this.updateFetchData,
  44979.               startDate: this.props.startDate,
  44980.               endDate: this.props.endDate,
  44981.               maxDate: this.state.maxDate,
  44982.               minDate: this.state.minDate,
  44983.               numChecked: a,
  44984.               panelOpen: this.state.panelOpen,
  44985.               searchFilters: this.props.searchFilters,
  44986.               searchFilterOptions: this.getSearchFilterOptions()
  44987.             }));
  44988.             e = this.props.postsAreFetching ? C.a.createElement(Ji, null) : 0 < this.state.sortedPosts.length ? null : 'pending' === r && 0 === this.props.pendingCounts.total ? C.a.createElement('div', {
  44989.               className: 'text-medium padding-default'
  44990.             }, C.a.createElement('img', {
  44991.               className: 'moderation__empty',
  44992.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/empty.png'
  44993.             }), C.a.createElement('div', {
  44994.               className: 'text-bold text-largest text-gray-darker text-center spacing-bottom-narrow'
  44995.             }, 'Nice work! You\'ve moderated all Pending comments.'), C.a.createElement('div', {
  44996.               className: 'text-gray-darker text-center'
  44997.             }, 'Want to learn more about fostering a thriving community? Check out our ', C.a.createElement('a', {
  44998.               href: 'https://help.disqus.com/customer/en/portal/topics/637329-community-tips/articles'
  44999.             }, 'Community Tips'))) : C.a.createElement('div', {
  45000.               className: 'text-medium padding-default'
  45001.             }, C.a.createElement('img', {
  45002.               className: 'moderation__empty',
  45003.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/empty.png'
  45004.             }), C.a.createElement('div', {
  45005.               className: 'text-bold text-largest text-gray-darker text-center spacing-bottom-narrow'
  45006.             }, 'No comments match this status, filter, or search.'), C.a.createElement('div', {
  45007.               className: 'text-gray-darker text-center'
  45008.             }, 'Click another status tab, or adjust your search or filtering method.'));
  45009.             function s(e) {
  45010.               var t = e.panelType,
  45011.               e = e.label;
  45012.               return C.a.createElement('button', {
  45013.                 className: 'side-panel__tab'.concat(n.state.panelType === t ? ' -active' : ''),
  45014.                 onClick: function () {
  45015.                   return n.setState({
  45016.                     panelType: t
  45017.                   })
  45018.                 }
  45019.               }, e)
  45020.             }
  45021.             var l = null,
  45022.             c = null;
  45023.             return this.state.panelOpen && (l = C.a.createElement(_x, {
  45024.               onRequestClose: this.hidePanel,
  45025.               status: a = this.state.postStatuses[this.state.panelPostId].current
  45026.             }, 'This comment is ', 'unapproved' === a ? 'pending' : a), this.state.panelType === nA.USER && (c = C.a.createElement(nx, {
  45027.               key: 'user-panel',
  45028.               post: this.props.posts[this.state.panelPostId],
  45029.               selection: this.props.selection,
  45030.               activePage: r,
  45031.               showBadgesModal: this.showBadgesModal,
  45032.               toggleThreadClosed: this.toggleThreadClosed,
  45033.               toggleThreadPremoderation: this.toggleThreadPremoderation,
  45034.               updateSearch: this.sidePanelSearch
  45035.             })), this.state.panelType === nA.POST && (c = C.a.createElement(Ex, {
  45036.               key: 'post-panel',
  45037.               post: this.props.posts[this.state.panelPostId],
  45038.               activePage: r,
  45039.               showUserPanelFromThread: this.showUserPanelFromThread,
  45040.               showBadgesModal: this.showBadgesModal,
  45041.               toggleReactions: this.toggleReactions,
  45042.               toggleThreadClosed: this.toggleThreadClosed,
  45043.               toggleThreadPremoderation: this.toggleThreadPremoderation,
  45044.               updateSearch: this.sidePanelSearch
  45045.             })), this.state.panelType === nA.HISTORY && (c = C.a.createElement(BR, {
  45046.               key: 'history-panel',
  45047.               activePage: r,
  45048.               post: this.props.posts[this.state.panelPostId],
  45049.               updateSearch: this.sidePanelSearch
  45050.             }))),
  45051.             C.a.createElement('div', {
  45052.               className: 'moderation__wrapper'
  45053.             }, C.a.createElement('div', {
  45054.               id: 'primary',
  45055.               className: 'moderation__content'.concat(this.state.panelOpen ? ' panel-open' : '')
  45056.             }, C.a.createElement('ul', {
  45057.               className: 'nav-tab-rounded'
  45058.             }, this.props.pages.map(function (e) {
  45059.               return C.a.createElement('li', {
  45060.                 className: r === e ? 'nav-tab-rounded__item active' : 'nav-tab-rounded__item',
  45061.                 key: e
  45062.               }, C.a.createElement(v.Link, {
  45063.                 to: n.getUrl({
  45064.                   tab: e
  45065.                 }),
  45066.                 className: 'nav-tab-rounded__link'
  45067.               }, C.a.createElement('span', {
  45068.                 className: 'align align--middle'
  45069.               }, WP[e] ? C.a.createElement('span', {
  45070.                 className: 'spacing-right-small icon '.concat(WP[e])
  45071.               }) : null, o[e])))
  45072.             })), i, C.a.createElement('div', {
  45073.               id: 'new-comments',
  45074.               className: 'alert-message info',
  45075.               style: {
  45076.                 display: 'none'
  45077.               }
  45078.             }, C.a.createElement('span', {
  45079.               className: 'pull-right'
  45080.             }, C.a.createElement('a', {
  45081.               href: '#',
  45082.               className: 'btn small'
  45083.             }, 'Show comments')), C.a.createElement('p', null, '2 new comments')), C.a.createElement('ul', {
  45084.               className: 'comment-moderate__wrapper'
  45085.             }, e, this.state.sortedPosts.map(function (e, t) {
  45086.               var n = this.props.posts[e];
  45087.               return C.a.createElement(QC, Vx({
  45088.                 key: e,
  45089.                 shadowBanned: n.sb,
  45090.                 showUserPanel: this.showUserPanel,
  45091.                 activePage: r,
  45092.                 togglePostPanelVisible: this.handlePostClick,
  45093.                 checked: !!this.state.postsChecked[e],
  45094.                 updateChecked: this.updatePostsChecked,
  45095.                 updateExpanded: this.updateExpanded,
  45096.                 allExpanded: this.state.allExpanded,
  45097.                 status: this.state.postStatuses[e].current,
  45098.                 hidden: !!this.state.postsHidden[e],
  45099.                 updateVote: this.props.updateVote,
  45100.                 updateMessage: this.handlePostMessageUpdate,
  45101.                 saveReply: this.savePostReply,
  45102.                 performActionOnPost: this.handlePostAction,
  45103.                 isActive: t === this.state.activePostIndex,
  45104.                 updateActivePost: this.updateActivePost,
  45105.                 updateFetchData: this.updateFetchData,
  45106.                 suggestedAction: 'pending' === r ? this.props.suggestedActions[e] : null,
  45107.                 searchQuery: this.props.searchQuery,
  45108.                 searchFilters: this.props.searchFilters,
  45109.                 selection: this.props.selection,
  45110.                 fetchAllFlaggers: this.props.fetchFlaggers.bind(this, tA({
  45111.                 }, n.id, n), n.numReports),
  45112.                 updateApproveModal: this.updateApproveModal
  45113.               }, n))
  45114.             }, this)), C.a.createElement('div', {
  45115.               className: 'moderation__footer'
  45116.             }, this.props.posts && 0 < this.state.sortedPosts.length ? C.a.createElement('button', {
  45117.               className: 'button button-wide button-outline button-medium',
  45118.               disabled: !0 !== this.props.hasMorePosts,
  45119.               onClick: this.handleFetchMoreClick
  45120.             }, 'Show more comments') : null)), C.a.createElement('div', {
  45121.               id: 'secondary',
  45122.               ref: this.panelContainer,
  45123.               className: 'moderation__panel'.concat(this.state.panelOpen ? ' panel-open' : '')
  45124.             }, this.state.panelOpen ? C.a.createElement('div', {
  45125.               className: 'side-panel__wrapper'.concat(this.state.panelFixed ? ' fixed' : ''),
  45126.               ref: this.panel
  45127.             }, C.a.createElement('div', {
  45128.               className: 'side-panel',
  45129.               style: {
  45130.                 maxHeight: this.state.panelMaxHeight
  45131.               }
  45132.             }, l, C.a.createElement(vx, {
  45133.               key: this.state.panelPostId,
  45134.               auth: this.props.auth,
  45135.               author: this.state.panelAuthor,
  45136.               postId: this.state.panelPostId,
  45137.               forum: this.state.panelForum,
  45138.               ipAddress: this.state.panelIpAddress,
  45139.               selection: this.props.selection,
  45140.               updateFetchData: this.updateFetchData,
  45141.               updateActivePage: this.updateActivePage
  45142.             }), C.a.createElement('div', {
  45143.               className: 'align side-panel__tab-container'
  45144.             }, s({
  45145.               panelType: nA.POST,
  45146.               label: 'Thread'
  45147.             }), s({
  45148.               panelType: nA.USER,
  45149.               label: 'Comments'
  45150.             }), s({
  45151.               panelType: nA.HISTORY,
  45152.               label: 'History'
  45153.             })), c)) : null, t ? C.a.createElement(xx, {
  45154.               postId: this.state.approveModalPostId || t.id,
  45155.               user: this.state.approveModalAuthor || t.author,
  45156.               isOpen: this.state.approveModalIsOpen,
  45157.               forum: this.state.panelForum || t.forum,
  45158.               close: function () {
  45159.                 return n.updateApproveModal({
  45160.                   approveModalIsOpen: !1,
  45161.                   approveModalPostId: n.state.approveModalPostId || t.id,
  45162.                   approveModalAuthor: n.state.approveModalAuthor || t.author
  45163.                 })
  45164.               },
  45165.               performAction: this.handlePostAction
  45166.             }) : null, t ? C.a.createElement(ll, {
  45167.               postId: this.state.panelPostId || t.id,
  45168.               user: this.state.panelAuthor || t.author,
  45169.               ipAddress: this.state.panelIpAddress || t.ipAddress,
  45170.               selection: this.props.selection,
  45171.               forum: this.state.panelForum || t.forum,
  45172.               addUserToBlacklist: this.props.addUserToBlacklist,
  45173.               performRetroactiveAction: this.performRetroactiveAction,
  45174.               addUserToWhitelist: this.props.addUserToWhitelist,
  45175.               close: function () {
  45176.                 return n.props.updateUserListsModal({
  45177.                   isOpen: !1,
  45178.                   postId: n.state.panelPostId || t.id,
  45179.                   author: n.state.panelAuthor || t.author
  45180.                 })
  45181.               },
  45182.               performActionOnReplacedCancel: this.handlePostAction
  45183.             }) : null, C.a.createElement(Hx, {
  45184.               user: this.state.panelAuthor || t.author,
  45185.               forum: this.state.panelForum || t.forum,
  45186.               selection: this.props.selection,
  45187.               updateUserBadges: this.handleUpdateBadges,
  45188.               close: function () {
  45189.                 return n.props.updateBadgesModal({
  45190.                   isOpen: !1,
  45191.                   author: n.state.panelAuthor || t.author
  45192.                 })
  45193.               }
  45194.             })), this.state.isHelpVisible ? C.a.createElement(Ox, {
  45195.               closeModal: this.toggleHelpVisible
  45196.             }) : null)
  45197.           }
  45198.         }
  45199.       ]) && Jx(e.prototype, t),
  45200.       n && Jx(e, n),
  45201.       r
  45202.     }();
  45203.     tA(Yc, 'propTypes', {
  45204.       posts: b.a.objectOf(b.a.shape(Qs)),
  45205.       searchQuery: b.a.string,
  45206.       updateFetchData: b.a.func.isRequired,
  45207.       performAction: b.a.func.isRequired,
  45208.       updateVote: b.a.func.isRequired,
  45209.       updatePostMessage: b.a.func.isRequired,
  45210.       savePostReply: b.a.func.isRequired,
  45211.       sortOrder: b.a.string.isRequired,
  45212.       hasMorePosts: b.a.bool,
  45213.       fetchMorePosts: b.a.func.isRequired,
  45214.       refreshPosts: b.a.func.isRequired,
  45215.       postsAreFetching: b.a.bool,
  45216.       postsAreUpdating: b.a.bool,
  45217.       fetchThreadReactionsEnabled: b.a.func.isRequired,
  45218.       toggleReactions: b.a.func.isRequired,
  45219.       toggleThreadClosed: b.a.func.isRequired,
  45220.       toggleThreadPremoderation: b.a.func.isRequired,
  45221.       isTogglingClosed: b.a.bool,
  45222.       getPostParents: b.a.func.isRequired,
  45223.       searchFilters: b.a.arrayOf(b.a.string).isRequired,
  45224.       startDate: s.moment,
  45225.       endDate: s.moment,
  45226.       fetchFlaggers: b.a.func.isRequired,
  45227.       updateUserBadges: b.a.func.isRequired,
  45228.       pendingCounts: b.a.objectOf(b.a.number).isRequired,
  45229.       refreshPendingCommentsCount: b.a.func.isRequired,
  45230.       addHotkeys: b.a.func.isRequired,
  45231.       emitTrackingEvent: b.a.func.isRequired,
  45232.       addUserToWhitelist: b.a.func.isRequired,
  45233.       addUserToBlacklist: b.a.func.isRequired,
  45234.       showFeaturedMessage: b.a.func.isRequired,
  45235.       history: b.a.shape({
  45236.         push: b.a.func.isRequired
  45237.       }).isRequired,
  45238.       pages: b.a.array.isRequired,
  45239.       params: b.a.object.isRequired,
  45240.       auth: b.a.object.isRequired,
  45241.       selection: ht.isRequired,
  45242.       searchChangeActive: b.a.func.isRequired,
  45243.       fetchSuggestedActions: b.a.func.isRequired,
  45244.       updateUserListsModal: b.a.func.isRequired,
  45245.       updateBadgesModal: b.a.func.isRequired,
  45246.       suggestedActions: b.a.objectOf(b.a.shape({
  45247.         reasons: b.a.arrayOf(b.a.string).isRequired,
  45248.         postAction: b.a.oneOf(['approve',
  45249.         'delete',
  45250.         'spam',
  45251.         'unapprove']),
  45252.         userAction: b.a.oneOf(['permaban',
  45253.         'tempban',
  45254.         'shadowban'])
  45255.       })),
  45256.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired
  45257.     }),
  45258.     tA(Yc, 'defaultProps', {
  45259.       pages: [
  45260.         'pending',
  45261.         'approved',
  45262.         'spam',
  45263.         'deleted',
  45264.         'all'
  45265.       ]
  45266.     });
  45267.     I = Ni.a.attachDrivers(Object(u.connect) (function (e) {
  45268.       return {
  45269.         suggestedActions: e.suggestedActions,
  45270.         saasFeatures: e.saasFeatures,
  45271.         selection: e.selection
  45272.       }
  45273.     }, {
  45274.       updateBadgesModal: D.updateBadgesModal,
  45275.       updateUserListsModal: Js.updateUserListsModal,
  45276.       searchChangeActive: I.changeActive,
  45277.       fetchSuggestedActions: F.fetch,
  45278.       emitTrackingEvent: Xo({
  45279.         zone: 'moderation_panel',
  45280.         section: 'welcome',
  45281.         product: 'publisher_admin'
  45282.       })
  45283.     }) (Fo() (Yc)), [
  45284.       Ru(['moderationRules']),
  45285.       Wi,
  45286.       go,
  45287.       Ls,
  45288.       yl
  45289.     ]);
  45290.     function rA(e) {
  45291.       return (rA = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  45292.         return typeof e
  45293.       }
  45294.        : function (e) {
  45295.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  45296.       }) (e)
  45297.     }
  45298.     function oA(e, t) {
  45299.       for (var n = 0; n < t.length; n++) {
  45300.         var a = t[n];
  45301.         a.enumerable = a.enumerable || !1,
  45302.         a.configurable = !0,
  45303.         'value' in a && (a.writable = !0),
  45304.         Object.defineProperty(e, a.key, a)
  45305.       }
  45306.     }
  45307.     function iA(e, t) {
  45308.       return (iA = Object.setPrototypeOf || function (e, t) {
  45309.         return e.__proto__ = t,
  45310.         e
  45311.       }) (e, t)
  45312.     }
  45313.     function sA(n) {
  45314.       var a = function () {
  45315.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  45316.         if (Reflect.construct.sham) return !1;
  45317.         if ('function' == typeof Proxy) return !0;
  45318.         try {
  45319.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  45320.           ], function () {
  45321.           })),
  45322.           !0
  45323.         } catch (e) {
  45324.           return !1
  45325.         }
  45326.       }();
  45327.       return function () {
  45328.         var e,
  45329.         t = lA(n);
  45330.         return e = a ? (e = lA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  45331.         t = this,
  45332.         !(e = e) || 'object' !== rA(e) && 'function' != typeof e ? function (e) {
  45333.           if (void 0 !== e) return e;
  45334.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  45335.         }(t) : e
  45336.       }
  45337.     }
  45338.     function lA(e) {
  45339.       return (lA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  45340.         return e.__proto__ || Object.getPrototypeOf(e)
  45341.       }) (e)
  45342.     }
  45343.     function cA(e, t, n) {
  45344.       return t in e ? Object.defineProperty(e, t, {
  45345.         value: n,
  45346.         enumerable: !0,
  45347.         configurable: !0,
  45348.         writable: !0
  45349.       }) : e[t] = n,
  45350.       e
  45351.     }
  45352.     F = function () {
  45353.       !function (e, t) {
  45354.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  45355.         e.prototype = Object.create(t && t.prototype, {
  45356.           constructor: {
  45357.             value: e,
  45358.             writable: !0,
  45359.             configurable: !0
  45360.           }
  45361.         }),
  45362.         t && iA(e, t)
  45363.       }(r, A);
  45364.       var e,
  45365.       t,
  45366.       n,
  45367.       a = sA(r);
  45368.       function r() {
  45369.         return function (e, t) {
  45370.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  45371.         }(this, r),
  45372.         a.apply(this, arguments)
  45373.       }
  45374.       return e = r,
  45375.       (t = [
  45376.         {
  45377.           key: 'render',
  45378.           value: function () {
  45379.             return C.a.createElement('div', {
  45380.               className: 'section-contained padding-top'
  45381.             }, C.a.createElement('div', {
  45382.               className: 'layout layout__content--narrow'
  45383.             }, C.a.createElement(wE, {
  45384.               selection: this.props.selection,
  45385.               history: this.props.history
  45386.             })))
  45387.           }
  45388.         }
  45389.       ]) && oA(e.prototype, t),
  45390.       n && oA(e, n),
  45391.       r
  45392.     }();
  45393.     cA(F, 'displayName', 'SetupPolicy'),
  45394.     cA(F, 'propTypes', {
  45395.       history: b.a.object.isRequired,
  45396.       selection: ht.isRequired
  45397.     });
  45398.     Yc = Object(u.connect) (function (e) {
  45399.       return {
  45400.         selection: e.selection
  45401.       }
  45402.     }) (Ni.a.attachDrivers(Fo() (F), [
  45403.       rc
  45404.     ]));
  45405.     function uA(e) {
  45406.       return (uA = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  45407.         return typeof e
  45408.       }
  45409.        : function (e) {
  45410.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  45411.       }) (e)
  45412.     }
  45413.     function pA(e, t) {
  45414.       for (var n = 0; n < t.length; n++) {
  45415.         var a = t[n];
  45416.         a.enumerable = a.enumerable || !1,
  45417.         a.configurable = !0,
  45418.         'value' in a && (a.writable = !0),
  45419.         Object.defineProperty(e, a.key, a)
  45420.       }
  45421.     }
  45422.     function dA(e, t) {
  45423.       return (dA = Object.setPrototypeOf || function (e, t) {
  45424.         return e.__proto__ = t,
  45425.         e
  45426.       }) (e, t)
  45427.     }
  45428.     function mA(n) {
  45429.       var a = function () {
  45430.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  45431.         if (Reflect.construct.sham) return !1;
  45432.         if ('function' == typeof Proxy) return !0;
  45433.         try {
  45434.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  45435.           ], function () {
  45436.           })),
  45437.           !0
  45438.         } catch (e) {
  45439.           return !1
  45440.         }
  45441.       }();
  45442.       return function () {
  45443.         var e,
  45444.         t = fA(n);
  45445.         return e = a ? (e = fA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  45446.         t = this,
  45447.         !(e = e) || 'object' !== uA(e) && 'function' != typeof e ? function (e) {
  45448.           if (void 0 !== e) return e;
  45449.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  45450.         }(t) : e
  45451.       }
  45452.     }
  45453.     function fA(e) {
  45454.       return (fA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  45455.         return e.__proto__ || Object.getPrototypeOf(e)
  45456.       }) (e)
  45457.     }
  45458.     var hA,
  45459.     gA,
  45460.     yA,
  45461.     bA = function () {
  45462.       !function (e, t) {
  45463.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  45464.         e.prototype = Object.create(t && t.prototype, {
  45465.           constructor: {
  45466.             value: e,
  45467.             writable: !0,
  45468.             configurable: !0
  45469.           }
  45470.         }),
  45471.         t && dA(e, t)
  45472.       }(r, A);
  45473.       var e,
  45474.       t,
  45475.       n,
  45476.       a = mA(r);
  45477.       function r() {
  45478.         return function (e, t) {
  45479.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  45480.         }(this, r),
  45481.         a.apply(this, arguments)
  45482.       }
  45483.       return e = r,
  45484.       (t = [
  45485.         {
  45486.           key: 'componentDidMount',
  45487.           value: function () {
  45488.             window._v5Config.moderated_forums.length || (window.location = '/pricing/'),
  45489.             Au.openCurrentInstance(this.props.adminPath)
  45490.           }
  45491.         },
  45492.         {
  45493.           key: 'render',
  45494.           value: function () {
  45495.             var e = uo.getSupportedSelections(this.props.adminPath),
  45496.             t = [
  45497.             ];
  45498.             return e.forum && t.push('site'),
  45499.             e.organization && t.push('organization'),
  45500.             C.a.createElement('div', {
  45501.               className: 'layout'
  45502.             }, C.a.createElement('div', {
  45503.               className: 'admin_content'
  45504.             }, C.a.createElement('h2', {
  45505.               className: 'text-gray-darker text-larger spacing-bottom-small'
  45506.             }, this.props.route.title || this.props.children && this.props.children.props.route.title), C.a.createElement(bO, {
  45507.               path: this.props.adminPath
  45508.             }, 'You must select a', 'organization' === t[0] ? 'n' : '', ' ', t.join(' or '), ' for this page')))
  45509.           }
  45510.         }
  45511.       ]) && pA(e.prototype, t),
  45512.       n && pA(e, n),
  45513.       r
  45514.     }();
  45515.     function vA(e) {
  45516.       return (vA = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  45517.         return typeof e
  45518.       }
  45519.        : function (e) {
  45520.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  45521.       }) (e)
  45522.     }
  45523.     function _A(e, t) {
  45524.       for (var n = 0; n < t.length; n++) {
  45525.         var a = t[n];
  45526.         a.enumerable = a.enumerable || !1,
  45527.         a.configurable = !0,
  45528.         'value' in a && (a.writable = !0),
  45529.         Object.defineProperty(e, a.key, a)
  45530.       }
  45531.     }
  45532.     function EA(e, t) {
  45533.       return (EA = Object.setPrototypeOf || function (e, t) {
  45534.         return e.__proto__ = t,
  45535.         e
  45536.       }) (e, t)
  45537.     }
  45538.     function OA(n) {
  45539.       var a = function () {
  45540.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  45541.         if (Reflect.construct.sham) return !1;
  45542.         if ('function' == typeof Proxy) return !0;
  45543.         try {
  45544.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  45545.           ], function () {
  45546.           })),
  45547.           !0
  45548.         } catch (e) {
  45549.           return !1
  45550.         }
  45551.       }();
  45552.       return function () {
  45553.         var e,
  45554.         t = wA(n);
  45555.         return e = a ? (e = wA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  45556.         t = this,
  45557.         !(e = e) || 'object' !== vA(e) && 'function' != typeof e ? SA(t) : e
  45558.       }
  45559.     }
  45560.     function SA(e) {
  45561.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  45562.       return e
  45563.     }
  45564.     function wA(e) {
  45565.       return (wA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  45566.         return e.__proto__ || Object.getPrototypeOf(e)
  45567.       }) (e)
  45568.     }
  45569.     function PA(e, t, n) {
  45570.       return t in e ? Object.defineProperty(e, t, {
  45571.         value: n,
  45572.         enumerable: !0,
  45573.         configurable: !0,
  45574.         writable: !0
  45575.       }) : e[t] = n,
  45576.       e
  45577.     }
  45578.     hA = bA,
  45579.     gA = 'propTypes',
  45580.     yA = {
  45581.       adminPath: b.a.string.isRequired,
  45582.       route: b.a.shape({
  45583.         title: b.a.string
  45584.       }).isRequired,
  45585.       children: b.a.element
  45586.     },
  45587.     gA in hA ? Object.defineProperty(hA, gA, {
  45588.       value: yA,
  45589.       enumerable: !0,
  45590.       configurable: !0,
  45591.       writable: !0
  45592.     }) : hA[gA] = yA;
  45593.     Ru = function () {
  45594.       !function (e, t) {
  45595.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  45596.         e.prototype = Object.create(t && t.prototype, {
  45597.           constructor: {
  45598.             value: e,
  45599.             writable: !0,
  45600.             configurable: !0
  45601.           }
  45602.         }),
  45603.         t && EA(e, t)
  45604.       }(o, A);
  45605.       var e,
  45606.       t,
  45607.       n,
  45608.       r = OA(o);
  45609.       function o() {
  45610.         var e;
  45611.         !function (e, t) {
  45612.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  45613.         }(this, o);
  45614.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  45615.         return PA(SA(e = r.call.apply(r, [
  45616.           this
  45617.         ].concat(n))), 'handleDismiss', function () {
  45618.           Is.a.set('audienceAnalyticsMessage', !0),
  45619.           e.setState({
  45620.             audienceAnalyticsMessage: !0
  45621.           })
  45622.         }),
  45623.         e
  45624.       }
  45625.       return e = o,
  45626.       (t = [
  45627.         {
  45628.           key: 'render',
  45629.           value: function () {
  45630.             var e = this;
  45631.             return Is.a.get('audienceAnalyticsMessage') ? null : C.a.createElement(Ki, {
  45632.               alertType: 'brand-new',
  45633.               topMarginClass: 'spacing-top-none',
  45634.               message: C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  45635.                 className: 'text-larger text-semibold'
  45636.               }, 'Explore Audience Analytics'), C.a.createElement('div', {
  45637.                 className: 'suggested-actions__module'
  45638.               }, C.a.createElement('div', {
  45639.                 className: 'spacing-narrow spacing-bottom'
  45640.               }, C.a.createElement('ul', {
  45641.                 className: 'suggested-actions__list'
  45642.               }, C.a.createElement('li', {
  45643.                 className: 'suggested-actions__item'
  45644.               }, C.a.createElement('span', {
  45645.                 className: 'icon-lightning'
  45646.               }), C.a.createElement('span', {
  45647.                 className: 'text'
  45648.               }, 'Identify the most active and loyal members of your community')), C.a.createElement('li', {
  45649.                 className: 'suggested-actions__item'
  45650.               }, C.a.createElement('span', {
  45651.                 className: 'icon-lightning'
  45652.               }), C.a.createElement('span', {
  45653.                 className: 'text'
  45654.               }, 'Track the growth of your community over time')), C.a.createElement('li', {
  45655.                 className: 'suggested-actions__item'
  45656.               }, C.a.createElement('span', {
  45657.                 className: 'icon-lightning'
  45658.               }), C.a.createElement('span', {
  45659.                 className: 'text'
  45660.               }, 'Develop engagement insights about different audience segments')))), C.a.createElement('a', {
  45661.                 href: Pn.audienceAnalytics,
  45662.                 className: 'button button-large button-fill--white text-medium spacing-narrow spacing-right',
  45663.                 target: '_blank',
  45664.                 rel: 'noopener noreferrer',
  45665.                 onClick: function () {
  45666.                   e.props.emitTrackingEvent({
  45667.                     verb: 'click',
  45668.                     object_type: 'link',
  45669.                     object_id: Pn.audienceAnalytics,
  45670.                     adverb: 'learn_more',
  45671.                     area: 'welcome'
  45672.                   })
  45673.                 }
  45674.               }, 'Learn more'), C.a.createElement('button', {
  45675.                 className: 'button button-large button-fill--brand text-medium spacing-narrow',
  45676.                 target: '_blank',
  45677.                 rel: 'noopener noreferrer',
  45678.                 onClick: this.handleDismiss
  45679.               }, 'Dismiss')))
  45680.             })
  45681.           }
  45682.         }
  45683.       ]) && _A(e.prototype, t),
  45684.       n && _A(e, n),
  45685.       o
  45686.     }();
  45687.     PA(Ru, 'displayName', 'AudienceAnalyticsFeaturedMessage'),
  45688.     PA(Ru, 'propTypes', {
  45689.       emitTrackingEvent: b.a.func.isRequired
  45690.     });
  45691.     Wi = Ni.a.attachDrivers(Ru, [
  45692.       rc
  45693.     ]);
  45694.     function kA(e) {
  45695.       return (kA = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  45696.         return typeof e
  45697.       }
  45698.        : function (e) {
  45699.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  45700.       }) (e)
  45701.     }
  45702.     function NA(t, e) {
  45703.       var n,
  45704.       a = Object.keys(t);
  45705.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  45706.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  45707.       })), a.push.apply(a, n)),
  45708.       a
  45709.     }
  45710.     function CA(t) {
  45711.       for (var e = 1; e < arguments.length; e++) {
  45712.         var n = null != arguments[e] ? arguments[e] : {
  45713.         };
  45714.         e % 2 ? NA(Object(n), !0).forEach(function (e) {
  45715.           TA(t, e, n[e])
  45716.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : NA(Object(n)).forEach(function (e) {
  45717.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  45718.         })
  45719.       }
  45720.       return t
  45721.     }
  45722.     function RA(e, t) {
  45723.       for (var n = 0; n < t.length; n++) {
  45724.         var a = t[n];
  45725.         a.enumerable = a.enumerable || !1,
  45726.         a.configurable = !0,
  45727.         'value' in a && (a.writable = !0),
  45728.         Object.defineProperty(e, a.key, a)
  45729.       }
  45730.     }
  45731.     function xA(e, t) {
  45732.       return (xA = Object.setPrototypeOf || function (e, t) {
  45733.         return e.__proto__ = t,
  45734.         e
  45735.       }) (e, t)
  45736.     }
  45737.     function AA(n) {
  45738.       var a = function () {
  45739.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  45740.         if (Reflect.construct.sham) return !1;
  45741.         if ('function' == typeof Proxy) return !0;
  45742.         try {
  45743.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  45744.           ], function () {
  45745.           })),
  45746.           !0
  45747.         } catch (e) {
  45748.           return !1
  45749.         }
  45750.       }();
  45751.       return function () {
  45752.         var e,
  45753.         t = jA(n);
  45754.         return e = a ? (e = jA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  45755.         t = this,
  45756.         !(e = e) || 'object' !== kA(e) && 'function' != typeof e ? DA(t) : e
  45757.       }
  45758.     }
  45759.     function DA(e) {
  45760.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  45761.       return e
  45762.     }
  45763.     function jA(e) {
  45764.       return (jA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  45765.         return e.__proto__ || Object.getPrototypeOf(e)
  45766.       }) (e)
  45767.     }
  45768.     function TA(e, t, n) {
  45769.       return t in e ? Object.defineProperty(e, t, {
  45770.         value: n,
  45771.         enumerable: !0,
  45772.         configurable: !0,
  45773.         writable: !0
  45774.       }) : e[t] = n,
  45775.       e
  45776.     }
  45777.     go = function () {
  45778.       !function (e, t) {
  45779.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  45780.         e.prototype = Object.create(t && t.prototype, {
  45781.           constructor: {
  45782.             value: e,
  45783.             writable: !0,
  45784.             configurable: !0
  45785.           }
  45786.         }),
  45787.         t && xA(e, t)
  45788.       }(o, A);
  45789.       var e,
  45790.       t,
  45791.       n,
  45792.       r = AA(o);
  45793.       function o() {
  45794.         var t;
  45795.         !function (e, t) {
  45796.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  45797.         }(this, o);
  45798.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  45799.         return TA(DA(t = r.call.apply(r, [
  45800.           this
  45801.         ].concat(n))), 'emitTrackingEvent', function (e) {
  45802.           return t.props.orgCurrentPackage && t.props.forumDetails ? void t.props.emitTrackingEvent(CA({
  45803.             extra_data: JSON.stringify({
  45804.               package: t.props.orgCurrentPackage.name,
  45805.               aetBannerEnabled: t.props.forumDetails.aetBannerEnabled
  45806.             })
  45807.           }, e)) : (t.trackingQueue || (t.trackingQueue = [
  45808.           ]), void t.trackingQueue.push(t.emitTrackingEvent.bind(DA(t), e)))
  45809.         }),
  45810.         t
  45811.       }
  45812.       return e = o,
  45813.       (t = [
  45814.         {
  45815.           key: 'componentDidMount',
  45816.           value: function () {
  45817.             this.props.fetchSubscription(),
  45818.             this.props.fetchForumDetails()
  45819.           }
  45820.         },
  45821.         {
  45822.           key: 'componentDidUpdate',
  45823.           value: function () {
  45824.             if (this.trackingQueue && this.props.orgCurrentPackage && this.props.forumDetails) {
  45825.               for (var e; e = this.trackingQueue.shift(); ) e();
  45826.               delete this.trackingQueue
  45827.             }
  45828.           }
  45829.         },
  45830.         {
  45831.           key: 'render',
  45832.           value: function () {
  45833.             return C.a.cloneElement(this.props.children, CA(CA({
  45834.             }, this.props), {
  45835.             }, {
  45836.               emitTrackingEvent: this.emitTrackingEvent
  45837.             }))
  45838.           }
  45839.         }
  45840.       ]) && RA(e.prototype, t),
  45841.       n && RA(e, n),
  45842.       o
  45843.     }();
  45844.     TA(go, 'propTypes', {
  45845.       children: b.a.node,
  45846.       selection: ht,
  45847.       fetchSubscription: b.a.func.isRequired,
  45848.       fetchForumDetails: b.a.func.isRequired,
  45849.       emitTrackingEvent: b.a.func.isRequired,
  45850.       forumDetails: $c,
  45851.       orgCurrentPackage: Ur.PACKAGE_SHAPE
  45852.     });
  45853.     var IA = Object(u.connect) (function (e) {
  45854.       var t = e.subscription;
  45855.       return CA(CA({
  45856.       }, e.forumDetails), t)
  45857.     }, CA(CA(CA({
  45858.     }, r), a), {
  45859.     }, {
  45860.       emitTrackingEvent: Xo({
  45861.         zone: 'analytics',
  45862.         section: 'audience_user_table'
  45863.       })
  45864.     })) (Ni.a.attachDrivers(go, [
  45865.       bc
  45866.     ])),
  45867.     qA = Object(u.connect) (function (e) {
  45868.       var t = e.subscription;
  45869.       return CA(CA({
  45870.       }, e.forumDetails), t)
  45871.     }, CA(CA(CA({
  45872.     }, r), a), {
  45873.     }, {
  45874.       emitTrackingEvent: Xo({
  45875.         zone: 'analytics',
  45876.         section: 'reaction_analytics'
  45877.       })
  45878.     })) (Ni.a.attachDrivers(go, [
  45879.       bc
  45880.     ]));
  45881.     function FA(e) {
  45882.       return (FA = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  45883.         return typeof e
  45884.       }
  45885.        : function (e) {
  45886.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  45887.       }) (e)
  45888.     }
  45889.     function LA(e, t) {
  45890.       for (var n = 0; n < t.length; n++) {
  45891.         var a = t[n];
  45892.         a.enumerable = a.enumerable || !1,
  45893.         a.configurable = !0,
  45894.         'value' in a && (a.writable = !0),
  45895.         Object.defineProperty(e, a.key, a)
  45896.       }
  45897.     }
  45898.     function UA(e, t) {
  45899.       return (UA = Object.setPrototypeOf || function (e, t) {
  45900.         return e.__proto__ = t,
  45901.         e
  45902.       }) (e, t)
  45903.     }
  45904.     function MA(n) {
  45905.       var a = function () {
  45906.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  45907.         if (Reflect.construct.sham) return !1;
  45908.         if ('function' == typeof Proxy) return !0;
  45909.         try {
  45910.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  45911.           ], function () {
  45912.           })),
  45913.           !0
  45914.         } catch (e) {
  45915.           return !1
  45916.         }
  45917.       }();
  45918.       return function () {
  45919.         var e,
  45920.         t = zA(n);
  45921.         return e = a ? (e = zA(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  45922.         t = this,
  45923.         !(e = e) || 'object' !== FA(e) && 'function' != typeof e ? BA(t) : e
  45924.       }
  45925.     }
  45926.     function BA(e) {
  45927.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  45928.       return e
  45929.     }
  45930.     function zA(e) {
  45931.       return (zA = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  45932.         return e.__proto__ || Object.getPrototypeOf(e)
  45933.       }) (e)
  45934.     }
  45935.     function HA(e, t, n) {
  45936.       return t in e ? Object.defineProperty(e, t, {
  45937.         value: n,
  45938.         enumerable: !0,
  45939.         configurable: !0,
  45940.         writable: !0
  45941.       }) : e[t] = n,
  45942.       e
  45943.     }
  45944.     Ls = function () {
  45945.       !function (e, t) {
  45946.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  45947.         e.prototype = Object.create(t && t.prototype, {
  45948.           constructor: {
  45949.             value: e,
  45950.             writable: !0,
  45951.             configurable: !0
  45952.           }
  45953.         }),
  45954.         t && UA(e, t)
  45955.       }(o, A);
  45956.       var e,
  45957.       t,
  45958.       n,
  45959.       r = MA(o);
  45960.       function o() {
  45961.         var e;
  45962.         !function (e, t) {
  45963.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  45964.         }(this, o);
  45965.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  45966.         return HA(BA(e = r.call.apply(r, [
  45967.           this
  45968.         ].concat(n))), 'handleDismiss', function () {
  45969.           Is.a.set('reactionsAnalyticsMessage', !0),
  45970.           e.setState({
  45971.             reactionsAnalyticsMessage: !0
  45972.           })
  45973.         }),
  45974.         e
  45975.       }
  45976.       return e = o,
  45977.       (t = [
  45978.         {
  45979.           key: 'render',
  45980.           value: function () {
  45981.             var e = this;
  45982.             return Is.a.get('reactionsAnalyticsMessage') ? null : C.a.createElement(Ki, {
  45983.               alertType: 'brand-new',
  45984.               topMarginClass: 'spacing-top-none',
  45985.               message: C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  45986.                 className: 'text-larger text-semibold'
  45987.               }, 'Reactions Analytics!'), C.a.createElement('div', {
  45988.                 className: 'suggested-actions__module'
  45989.               }, C.a.createElement('div', {
  45990.                 className: 'spacing-narrow spacing-bottom'
  45991.               }, C.a.createElement('ul', {
  45992.                 className: 'suggested-actions__list'
  45993.               }, C.a.createElement('li', {
  45994.                 className: 'suggested-actions__item'
  45995.               }, C.a.createElement('span', {
  45996.                 className: 'icon-lightning'
  45997.               }), C.a.createElement('span', {
  45998.                 className: 'text'
  45999.               }, 'Develop insights about how your audience is reacting to your content')), C.a.createElement('li', {
  46000.                 className: 'suggested-actions__item'
  46001.               }, C.a.createElement('span', {
  46002.                 className: 'icon-lightning'
  46003.               }), C.a.createElement('span', {
  46004.                 className: 'text'
  46005.               }, 'From a bird\'s-eye view, compare anonymous and authenticated reactions across different time periods by date or by thread title')), C.a.createElement('li', {
  46006.                 className: 'suggested-actions__item'
  46007.               }, C.a.createElement('span', {
  46008.                 className: 'icon-lightning'
  46009.               }), C.a.createElement('span', {
  46010.                 className: 'text'
  46011.               }, 'See a time period or thread that catches your eye?  Use the bottom graph to take a closer look!')), C.a.createElement('li', {
  46012.                 className: 'suggested-actions__item'
  46013.               }, C.a.createElement('span', {
  46014.                 className: 'icon-lightning'
  46015.               }), C.a.createElement('span', {
  46016.                 className: 'text'
  46017.               }, 'Don\'t have Reactions activated yet for your forum?  Enable them by ', C.a.createElement('a', {
  46018.                 className: 'hyperlink',
  46019.                 href: 'https://help.disqus.com/en/articles/2199501-reactions',
  46020.                 target: '_blank',
  46021.                 rel: 'noopener noreferrer'
  46022.               }, 'following the directions here'), '!')))), C.a.createElement('a', {
  46023.                 href: Pn.reactionsAnalytics,
  46024.                 className: 'button button-large button-fill--white text-medium spacing-narrow spacing-right',
  46025.                 target: '_blank',
  46026.                 rel: 'noopener noreferrer',
  46027.                 onClick: function () {
  46028.                   e.props.emitTrackingEvent({
  46029.                     verb: 'click',
  46030.                     object_type: 'link',
  46031.                     object_id: Pn.reactionsAnalytics,
  46032.                     adverb: 'learn_more',
  46033.                     area: 'welcome'
  46034.                   })
  46035.                 }
  46036.               }, 'Learn more'), C.a.createElement('button', {
  46037.                 className: 'button button-large button-fill--brand text-medium spacing-narrow',
  46038.                 target: '_blank',
  46039.                 rel: 'noopener noreferrer',
  46040.                 onClick: this.handleDismiss
  46041.               }, 'Dismiss')))
  46042.             })
  46043.           }
  46044.         }
  46045.       ]) && LA(e.prototype, t),
  46046.       n && LA(e, n),
  46047.       o
  46048.     }();
  46049.     HA(Ls, 'displayName', 'ReactionsAnalyticsFeaturedMessage'),
  46050.     HA(Ls, 'propTypes', {
  46051.       emitTrackingEvent: b.a.func.isRequired
  46052.     });
  46053.     function GA() {
  46054.       return yo.a.isFeatureActive('analytics_intercom') ? C.a.createElement('div', {
  46055.         className: 'content__wrap text-center padding-default'
  46056.       }, C.a.createElement('p', {
  46057.         className: 'text-large spacing-narrow spacing-bottom'
  46058.       }, C.a.createElement('strong', null, 'Have feedback about your analytics?')), C.a.createElement(Mg, null, 'Talk to Us')) : null
  46059.     }
  46060.     var yl = Ni.a.attachDrivers(Ls, [
  46061.       rc
  46062.     ]),
  46063.     VA = [
  46064.       {
  46065.         module: C.a.createElement(IA, null, C.a.createElement(Wi, null)),
  46066.         routes: [
  46067.           '/analytics/audience/'
  46068.         ]
  46069.       },
  46070.       {
  46071.         module: null,
  46072.         routes: [
  46073.           '/analytics/top_comments/'
  46074.         ]
  46075.       },
  46076.       {
  46077.         module: C.a.createElement(qA, null, C.a.createElement(yl, null)),
  46078.         routes: [
  46079.           '/analytics/reactions/'
  46080.         ]
  46081.       }
  46082.     ],
  46083.     F = function (e) {
  46084.       var t = e.children,
  46085.       n = e.selection,
  46086.       a = e.history,
  46087.       r = fo(),
  46088.       e = je.a.find(VA, function (e) {
  46089.         return e.routes.some(function (e) {
  46090.           return e.test ? e.test(r) : e === r
  46091.         })
  46092.       });
  46093.       return C.a.createElement('div', {
  46094.         className: 'section-contained'
  46095.       }, C.a.createElement('div', {
  46096.         className: 'layout layout--stacked-tablet'
  46097.       }, C.a.createElement('div', {
  46098.         className: (e = !n.organization.pollsOnly && e && e.module) ? '' : 'layout__main'
  46099.       }, yo.a.isFeatureActive('polls_pub_admin') ? C.a.createElement(Si, {
  46100.         selection: n,
  46101.         pollsOnly: n.organization.pollsOnly
  46102.       }) : C.a.createElement(mi, {
  46103.         selection: n,
  46104.         pollsOnly: n.organization.pollsOnly
  46105.       }), C.a.createElement('div', {
  46106.         className: 'layout__content'
  46107.       }, e || null, C.a.cloneElement(t, {
  46108.         selection: n,
  46109.         history: a
  46110.       }), C.a.createElement(GA, null)))))
  46111.     };
  46112.     F.propTypes = {
  46113.       children: b.a.element.isRequired,
  46114.       selection: ht.isRequired,
  46115.       history: b.a.object.isRequired
  46116.     };
  46117.     var WA = Object(u.connect) (function (e) {
  46118.       return {
  46119.         selection: e.selection
  46120.       }
  46121.     }) (Ni.a.attachDrivers(Fo() (F), [
  46122.       bc
  46123.     ])),
  46124.     YA = {
  46125.       engagements: 'engagements',
  46126.       totalCommenters: 'commenters',
  46127.       newCommenters: 'new_commenters',
  46128.       date_published: 'date_published',
  46129.       comments: 'comments'
  46130.     },
  46131.     Ru = b.a.shape({
  46132.       isFetching: b.a.bool.isRequired,
  46133.       items: b.a.arrayOf(b.a.shape({
  46134.         thread_id: b.a.number,
  46135.         downvotes: b.a.number,
  46136.         title: b.a.string,
  46137.         newCommenters: b.a.number,
  46138.         totalCommenters: b.a.number,
  46139.         date_published: b.a.string,
  46140.         signedLink: b.a.string,
  46141.         link: b.a.string,
  46142.         comments: b.a.number,
  46143.         upvotes: b.a.number,
  46144.         engagements: b.a.number
  46145.       })),
  46146.       cursor: b.a.shape({
  46147.         prev: b.a.string,
  46148.         hasNext: b.a.bool,
  46149.         next: b.a.string,
  46150.         hasPrev: b.a.bool,
  46151.         total: b.a.string,
  46152.         id: b.a.string,
  46153.         more: b.a.bool
  46154.       }),
  46155.       hasMore: b.a.bool,
  46156.       reportData: b.a.shape({
  46157.         forum: b.a.string,
  46158.         start: b.a.string,
  46159.         end: b.a.string,
  46160.         limit: b.a.number,
  46161.         order: b.a.string,
  46162.         sort: b.a.string,
  46163.         api_key: b.a.string
  46164.       })
  46165.     });
  46166.     function QA(t, e) {
  46167.       var n,
  46168.       a = Object.keys(t);
  46169.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  46170.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  46171.       })), a.push.apply(a, n)),
  46172.       a
  46173.     }
  46174.     function KA(a) {
  46175.       for (var e = 1; e < arguments.length; e++) {
  46176.         var r = null != arguments[e] ? arguments[e] : {
  46177.         };
  46178.         e % 2 ? QA(Object(r), !0).forEach(function (e) {
  46179.           var t,
  46180.           n;
  46181.           n = r[t = e],
  46182.           t in (e = a) ? Object.defineProperty(e, t, {
  46183.             value: n,
  46184.             enumerable: !0,
  46185.             configurable: !0,
  46186.             writable: !0
  46187.           }) : e[t] = n
  46188.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : QA(Object(r)).forEach(function (e) {
  46189.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  46190.         })
  46191.       }
  46192.       return a
  46193.     }
  46194.     function JA() {
  46195.       return (JA = Object.assign || function (e) {
  46196.         for (var t = 1; t < arguments.length; t++) {
  46197.           var n,
  46198.           a = arguments[t];
  46199.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  46200.         }
  46201.         return e
  46202.       }).apply(this, arguments)
  46203.     }
  46204.     function $A(e, t) {
  46205.       if (null == e) return {
  46206.       };
  46207.       var n,
  46208.       a = function (e, t) {
  46209.         if (null == e) return {
  46210.         };
  46211.         var n,
  46212.         a,
  46213.         r = {
  46214.         },
  46215.         o = Object.keys(e);
  46216.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  46217.         return r
  46218.       }(e, t);
  46219.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  46220.       return a
  46221.     }
  46222.     function ZA(e) {
  46223.       var t = e.headers,
  46224.       n = e.rows,
  46225.       a = e.onSort,
  46226.       o = e.reportClick;
  46227.       return C.a.createElement('table', {
  46228.         className: 'analytics-table'
  46229.       }, C.a.createElement('thead', null, C.a.createElement('tr', null, t.map(function (e) {
  46230.         var t = e.key,
  46231.         n = e.colClass,
  46232.         e = $A(e, [
  46233.           'key',
  46234.           'colClass'
  46235.         ]);
  46236.         return C.a.createElement('th', {
  46237.           key: t,
  46238.           className: n
  46239.         }, C.a.createElement(nD, JA({
  46240.           onSort: a,
  46241.           sortKey: t,
  46242.           colClass: n
  46243.         }, e)))
  46244.       }))), C.a.createElement('tbody', null, n.map(function (r) {
  46245.         return C.a.createElement('tr', {
  46246.           key: r.id
  46247.         }, t.map(function (e) {
  46248.           var t = e.formatFn,
  46249.           n = e.key,
  46250.           a = e.urlFn,
  46251.           a = void 0 === a ? function () {
  46252.             return ''
  46253.           }
  46254.            : a,
  46255.           e = e.colClass,
  46256.           e = void 0 === e ? '' : e,
  46257.           t = (void 0 === t ? function (e) {
  46258.             return e
  46259.           }
  46260.            : t) (r[n]),
  46261.           a = a(r);
  46262.           return a && (t = C.a.createElement('a', {
  46263.             href: a,
  46264.             target: '_blank',
  46265.             rel: 'noopener noreferrer',
  46266.             onClick: o ? o.bind(null, {
  46267.               object_type: 'thread',
  46268.               object_id: r.id
  46269.             }) : null
  46270.           }, t)),
  46271.           C.a.createElement('td', {
  46272.             key: n,
  46273.             className: e
  46274.           }, C.a.createElement('span', null, t))
  46275.         }))
  46276.       })))
  46277.     }
  46278.     var XA = 'asc',
  46279.     eD = 'desc',
  46280.     tD = {
  46281.       SORT_NONE: '',
  46282.       SORT_ASC: XA,
  46283.       SORT_DESC: eD
  46284.     };
  46285.     ZA.propTypes = {
  46286.       headers: b.a.arrayOf(b.a.shape({
  46287.         key: b.a.any.isRequired,
  46288.         content: b.a.node.isRequired,
  46289.         formatFn: b.a.func,
  46290.         urlFn: b.a.func,
  46291.         sortable: b.a.bool,
  46292.         sortDir: b.a.oneOf(['',
  46293.         XA,
  46294.         eD])
  46295.       })).isRequired,
  46296.       rows: b.a.arrayOf(b.a.object).isRequired,
  46297.       onSort: b.a.func.isRequired,
  46298.       reportClick: b.a.func
  46299.     };
  46300.     var nD = function (e) {
  46301.       var t = e.content,
  46302.       n = e.onSort,
  46303.       a = e.sortable,
  46304.       r = void 0 === a || a,
  46305.       o = e.sortKey,
  46306.       i = e.description,
  46307.       s = e.sortDir,
  46308.       l = void 0 === s ? '' : s,
  46309.       a = e.onShowDescription,
  46310.       s = l === XA ? C.a.createElement('span', {
  46311.         className: 'icon icon__position icon-small icon-arrow-up'
  46312.       }) : l === eD ? C.a.createElement('span', {
  46313.         className: 'icon icon__position icon-small icon-arrow-down'
  46314.       }) : r ? C.a.createElement('span', {
  46315.         className: 'icon icon__position icon-small icon-arrow-up icon-hidden'
  46316.       }) : null,
  46317.       e = '' === l ? '' : '-sorted',
  46318.       a = i ? C.a.createElement(Md, {
  46319.         tooltipKey: o,
  46320.         content: i,
  46321.         onShow: a,
  46322.         direction: 'top'
  46323.       }) : null;
  46324.       return r ? C.a.createElement('div', {
  46325.         className: e
  46326.       }, C.a.createElement('button', {
  46327.         onClick: function () {
  46328.           return n(o, l === eD ? XA : eD)
  46329.         }
  46330.       }, s, ' ', t), a) : C.a.createElement('div', {
  46331.         className: e
  46332.       }, s, ' ', t, ' ', a)
  46333.     };
  46334.     function aD(e) {
  46335.       return (aD = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  46336.         return typeof e
  46337.       }
  46338.        : function (e) {
  46339.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  46340.       }) (e)
  46341.     }
  46342.     function rD(t, e) {
  46343.       var n,
  46344.       a = Object.keys(t);
  46345.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  46346.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  46347.       })), a.push.apply(a, n)),
  46348.       a
  46349.     }
  46350.     function oD(t) {
  46351.       for (var e = 1; e < arguments.length; e++) {
  46352.         var n = null != arguments[e] ? arguments[e] : {
  46353.         };
  46354.         e % 2 ? rD(Object(n), !0).forEach(function (e) {
  46355.           pD(t, e, n[e])
  46356.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : rD(Object(n)).forEach(function (e) {
  46357.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  46358.         })
  46359.       }
  46360.       return t
  46361.     }
  46362.     function iD(e, t) {
  46363.       for (var n = 0; n < t.length; n++) {
  46364.         var a = t[n];
  46365.         a.enumerable = a.enumerable || !1,
  46366.         a.configurable = !0,
  46367.         'value' in a && (a.writable = !0),
  46368.         Object.defineProperty(e, a.key, a)
  46369.       }
  46370.     }
  46371.     function sD(e, t) {
  46372.       return (sD = Object.setPrototypeOf || function (e, t) {
  46373.         return e.__proto__ = t,
  46374.         e
  46375.       }) (e, t)
  46376.     }
  46377.     function lD(n) {
  46378.       var a = function () {
  46379.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  46380.         if (Reflect.construct.sham) return !1;
  46381.         if ('function' == typeof Proxy) return !0;
  46382.         try {
  46383.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  46384.           ], function () {
  46385.           })),
  46386.           !0
  46387.         } catch (e) {
  46388.           return !1
  46389.         }
  46390.       }();
  46391.       return function () {
  46392.         var e,
  46393.         t = uD(n);
  46394.         return e = a ? (e = uD(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  46395.         t = this,
  46396.         !(e = e) || 'object' !== aD(e) && 'function' != typeof e ? cD(t) : e
  46397.       }
  46398.     }
  46399.     function cD(e) {
  46400.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  46401.       return e
  46402.     }
  46403.     function uD(e) {
  46404.       return (uD = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  46405.         return e.__proto__ || Object.getPrototypeOf(e)
  46406.       }) (e)
  46407.     }
  46408.     function pD(e, t, n) {
  46409.       return t in e ? Object.defineProperty(e, t, {
  46410.         value: n,
  46411.         enumerable: !0,
  46412.         configurable: !0,
  46413.         writable: !0
  46414.       }) : e[t] = n,
  46415.       e
  46416.     }
  46417.     nD.propTypes = {
  46418.       content: b.a.node.isRequired,
  46419.       sortable: b.a.bool,
  46420.       sortKey: b.a.string.isRequired,
  46421.       sortDir: b.a.oneOf(['',
  46422.       XA,
  46423.       eD]),
  46424.       onSort: b.a.func.isRequired,
  46425.       description: b.a.node,
  46426.       onShowDescription: b.a.func
  46427.     };
  46428.     r = function () {
  46429.       !function (e, t) {
  46430.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  46431.         e.prototype = Object.create(t && t.prototype, {
  46432.           constructor: {
  46433.             value: e,
  46434.             writable: !0,
  46435.             configurable: !0
  46436.           }
  46437.         }),
  46438.         t && sD(e, t)
  46439.       }(o, A);
  46440.       var e,
  46441.       t,
  46442.       n,
  46443.       r = lD(o);
  46444.       function o() {
  46445.         var n;
  46446.         !function (e, t) {
  46447.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  46448.         }(this, o);
  46449.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  46450.         return pD(cD(n = r.call.apply(r, [
  46451.           this
  46452.         ].concat(t))), 'state', {
  46453.           sortColumn: 'engagements',
  46454.           sortDir: tD.SORT_DESC,
  46455.           startDate: ct() ().subtract(1, 'month'),
  46456.           endDate: ct() ()
  46457.         }),
  46458.         pD(cD(n), 'isAdvancedAnalyticsSupported', function () {
  46459.           if (!n.props.selection.organization) return !1;
  46460.           var e = n.props.saasFeatures[n.props.selection.organization.id];
  46461.           return e && e.advancedAnalytics
  46462.         }),
  46463.         pD(cD(n), 'getExportUrl', function () {
  46464.           var e = io.a.getURL('forums/admin/reports/threadReport.csv');
  46465.           return Eo() (e, {
  46466.             api_key: pt.a.keys.api,
  46467.             forum: pt.a.currentForum,
  46468.             start: ct.a.utc(n.state.startDate).format(),
  46469.             end: ct.a.utc(n.state.endDate).format()
  46470.           })
  46471.         }),
  46472.         pD(cD(n), 'reportExport', function () {
  46473.           n.props.emitTrackingEvent({
  46474.             verb: 'export',
  46475.             object_type: 'file',
  46476.             object_id: 'csv'
  46477.           })
  46478.         }),
  46479.         pD(cD(n), 'handleSort', function (e, t) {
  46480.           n.setState({
  46481.             sortColumn: e,
  46482.             sortDir: t
  46483.           }, function () {
  46484.             return n.fetch()
  46485.           }),
  46486.           n.reportClick({
  46487.             object_type: 'sort',
  46488.             object_id: 'column',
  46489.             extra_data: JSON.stringify({
  46490.               column: e,
  46491.               sort: t
  46492.             })
  46493.           })
  46494.         }),
  46495.         pD(cD(n), 'handleDateChange', function (e, t) {
  46496.           n.setState({
  46497.             startDate: e,
  46498.             endDate: t
  46499.           }, function () {
  46500.             return n.fetch()
  46501.           }),
  46502.           n.reportClick({
  46503.             object_type: 'filter',
  46504.             object_id: 'date',
  46505.             extra_data: JSON.stringify({
  46506.               filter_start_date: ct.a.utc(e).format(),
  46507.               filter_end_date: ct.a.utc(t).format()
  46508.             })
  46509.           })
  46510.         }),
  46511.         pD(cD(n), 'fetch', function () {
  46512.           n.props.fetchAnalyticsContent({
  46513.             forum: pt.a.currentForum,
  46514.             start: n.state.startDate.toISOString(),
  46515.             end: n.state.endDate.toISOString(),
  46516.             sortKey: n.state.sortColumn,
  46517.             sortOrder: n.state.sortDir
  46518.           })
  46519.         }),
  46520.         pD(cD(n), 'fetchMore', function () {
  46521.           n.props.fetchAnalyticsContentMore(),
  46522.           n.reportClick({
  46523.             object_type: 'button',
  46524.             object_id: 'show_more'
  46525.           })
  46526.         }),
  46527.         pD(cD(n), 'reportClick', function (e) {
  46528.           e.verb = 'click',
  46529.           n.props.emitTrackingEvent(e)
  46530.         }),
  46531.         n
  46532.       }
  46533.       return e = o,
  46534.       (t = [
  46535.         {
  46536.           key: 'componentDidMount',
  46537.           value: function () {
  46538.             this.isAdvancedAnalyticsSupported() ? (this.fetch(), this.props.emitTrackingEvent({
  46539.               verb: 'view',
  46540.               object_type: 'page',
  46541.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  46542.             })) : this.props.history.push(ho.getRoute('/analytics/comments/'))
  46543.           }
  46544.         },
  46545.         {
  46546.           key: 'render',
  46547.           value: function () {
  46548.             var t = this;
  46549.             if (!this.isAdvancedAnalyticsSupported()) return null;
  46550.             if (this.props.organization && this.props.organization.pollsOnly) return C.a.createElement(Cm, {
  46551.               isPolls: !1,
  46552.               organization: this.props.organization
  46553.             });
  46554.             var e = C.a.createElement('div', {
  46555.               className: 'card__header-right'
  46556.             }, C.a.createElement('a', {
  46557.               href: this.getExportUrl(),
  46558.               target: '_blank',
  46559.               rel: 'noopener noreferrer',
  46560.               className: 'card__header-content-item -button -right -left text-semibold text-gray-dark',
  46561.               onClick: this.reportExport
  46562.             }, C.a.createElement('span', {
  46563.               className: 'icon-download text-large spacing-right text-gray'
  46564.             }), 'Download CSV'), C.a.createElement(Zp, {
  46565.               minDate: gt,
  46566.               maxDate: ct() (),
  46567.               startDate: this.state.startDate,
  46568.               endDate: this.state.endDate,
  46569.               onDateChange: this.handleDateChange,
  46570.               dateWrapperClass: 'card__header-datepicker',
  46571.               shortcuts: yt
  46572.             })),
  46573.             n = function (e) {
  46574.               return e.toLocaleString()
  46575.             },
  46576.             a = this.props.analyticsContent.isFetching ? C.a.createElement(Ji, null) : this.props.analyticsContent.items && 0 !== this.props.analyticsContent.items.length ? null : C.a.createElement('div', {
  46577.               className: 'empty-content-message'
  46578.             }, 'No items');
  46579.             return C.a.createElement('div', null, C.a.createElement(Bp, {
  46580.               className: 'spacing-bottom',
  46581.               leftTitle: 'Top Articles',
  46582.               rightTitle: e,
  46583.               bodyClassName: '-overflow-scroll analytics-content text-medium padding-default'
  46584.             }, C.a.createElement(ZA, {
  46585.               headers: [
  46586.                 {
  46587.                   key: 'title',
  46588.                   content: 'Title',
  46589.                   urlFn: function (e) {
  46590.                     return e.signedLink
  46591.                   },
  46592.                   sortable: !1
  46593.                 },
  46594.                 {
  46595.                   key: 'date_published',
  46596.                   content: 'Date Published',
  46597.                   formatFn: function (e) {
  46598.                     return ct() (e).format('MM/DD/YY')
  46599.                   }
  46600.                 },
  46601.                 {
  46602.                   key: 'engagements',
  46603.                   content: 'Total Engagements',
  46604.                   formatFn: n
  46605.                 },
  46606.                 {
  46607.                   key: 'comments',
  46608.                   content: 'Comments',
  46609.                   formatFn: n
  46610.                 },
  46611.                 {
  46612.                   key: 'totalCommenters',
  46613.                   content: 'Commenters',
  46614.                   formatFn: n
  46615.                 },
  46616.                 {
  46617.                   key: 'newCommenters',
  46618.                   content: 'New Commenters',
  46619.                   formatFn: n
  46620.                 }
  46621.               ].map(function (e) {
  46622.                 return oD(oD({
  46623.                 }, e), {
  46624.                 }, {
  46625.                   sortDir: t.state.sortColumn === e.key ? t.state.sortDir : tD.SORT_NONE
  46626.                 })
  46627.               }),
  46628.               rows: (this.props.analyticsContent.items || [
  46629.               ]).map(function (e) {
  46630.                 return oD({
  46631.                   id: e.thread_id
  46632.                 }, e)
  46633.               }),
  46634.               onSort: this.handleSort,
  46635.               reportClick: this.reportClick
  46636.             }), a, !this.props.analyticsContent.isFetching && this.props.analyticsContent.hasMore ? C.a.createElement('button', {
  46637.               className: 'button button-wide button-outline button-medium',
  46638.               onClick: this.fetchMore
  46639.             }, 'Show more results') : null))
  46640.           }
  46641.         }
  46642.       ]) && iD(e.prototype, t),
  46643.       n && iD(e, n),
  46644.       o
  46645.     }();
  46646.     pD(r, 'propTypes', {
  46647.       analyticsContent: Ru.isRequired,
  46648.       fetchAnalyticsContent: b.a.func.isRequired,
  46649.       fetchAnalyticsContentMore: b.a.func.isRequired,
  46650.       emitTrackingEvent: b.a.func.isRequired,
  46651.       history: b.a.shape({
  46652.         push: b.a.func.isRequired
  46653.       }).isRequired,
  46654.       selection: ht.isRequired,
  46655.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired
  46656.     });
  46657.     a = Object(u.connect) (function (e) {
  46658.       return {
  46659.         analyticsContent: e.analyticsContent,
  46660.         saasFeatures: e.saasFeatures,
  46661.         organization: e.selection.organization
  46662.       }
  46663.     }, {
  46664.       emitTrackingEvent: Xo({
  46665.         zone: 'analytics',
  46666.         section: 'content'
  46667.       }),
  46668.       fetchAnalyticsContent: function (e) {
  46669.         return function (t) {
  46670.           var n = {
  46671.             forum: e.forum,
  46672.             start: e.start,
  46673.             end: e.end,
  46674.             limit: 25,
  46675.             order: 'desc' === e.sortOrder ? 'desc' : 'asc',
  46676.             sort: YA[e.sortKey] || 'engagements'
  46677.           };
  46678.           t({
  46679.             type: U.fetching
  46680.           }),
  46681.           io.a.call('forums/admin/reports/threadReport', {
  46682.             data: n
  46683.           }).done(function (e) {
  46684.             t({
  46685.               type: U.onFetch,
  46686.               cursor: e.cursor,
  46687.               isFetching: !1,
  46688.               items: e.response,
  46689.               reportData: n
  46690.             })
  46691.           })
  46692.         }
  46693.       },
  46694.       fetchAnalyticsContentMore: function () {
  46695.         return function (t, e) {
  46696.           var n = e().analyticsContent,
  46697.           a = n.reportData,
  46698.           e = n.cursor,
  46699.           r = n.items;
  46700.           e && e.hasNext && (t({
  46701.             type: U.fetching
  46702.           }), io.a.call('forums/admin/reports/threadReport', {
  46703.             data: KA(KA({
  46704.             }, a), {
  46705.             }, {
  46706.               cursor: e.next
  46707.             })
  46708.           }).done(function (e) {
  46709.             t({
  46710.               type: U.onFetchMore,
  46711.               cursor: e.cursor,
  46712.               isFetching: !1,
  46713.               items: r.concat(e.response)
  46714.             })
  46715.           }))
  46716.         }
  46717.       }
  46718.     }) (Fo() (r));
  46719.     function dD(e) {
  46720.       return (dD = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  46721.         return typeof e
  46722.       }
  46723.        : function (e) {
  46724.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  46725.       }) (e)
  46726.     }
  46727.     function mD(e, t) {
  46728.       for (var n = 0; n < t.length; n++) {
  46729.         var a = t[n];
  46730.         a.enumerable = a.enumerable || !1,
  46731.         a.configurable = !0,
  46732.         'value' in a && (a.writable = !0),
  46733.         Object.defineProperty(e, a.key, a)
  46734.       }
  46735.     }
  46736.     function fD(e, t) {
  46737.       return (fD = Object.setPrototypeOf || function (e, t) {
  46738.         return e.__proto__ = t,
  46739.         e
  46740.       }) (e, t)
  46741.     }
  46742.     function hD(n) {
  46743.       var a = function () {
  46744.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  46745.         if (Reflect.construct.sham) return !1;
  46746.         if ('function' == typeof Proxy) return !0;
  46747.         try {
  46748.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  46749.           ], function () {
  46750.           })),
  46751.           !0
  46752.         } catch (e) {
  46753.           return !1
  46754.         }
  46755.       }();
  46756.       return function () {
  46757.         var e,
  46758.         t = yD(n);
  46759.         return e = a ? (e = yD(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  46760.         t = this,
  46761.         !(e = e) || 'object' !== dD(e) && 'function' != typeof e ? gD(t) : e
  46762.       }
  46763.     }
  46764.     function gD(e) {
  46765.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  46766.       return e
  46767.     }
  46768.     function yD(e) {
  46769.       return (yD = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  46770.         return e.__proto__ || Object.getPrototypeOf(e)
  46771.       }) (e)
  46772.     }
  46773.     function bD(e, t, n) {
  46774.       return t in e ? Object.defineProperty(e, t, {
  46775.         value: n,
  46776.         enumerable: !0,
  46777.         configurable: !0,
  46778.         writable: !0
  46779.       }) : e[t] = n,
  46780.       e
  46781.     }
  46782.     go = function () {
  46783.       !function (e, t) {
  46784.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  46785.         e.prototype = Object.create(t && t.prototype, {
  46786.           constructor: {
  46787.             value: e,
  46788.             writable: !0,
  46789.             configurable: !0
  46790.           }
  46791.         }),
  46792.         t && fD(e, t)
  46793.       }(o, A);
  46794.       var e,
  46795.       t,
  46796.       n,
  46797.       r = hD(o);
  46798.       function o() {
  46799.         var t;
  46800.         !function (e, t) {
  46801.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  46802.         }(this, o);
  46803.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  46804.         return bD(gD(t = r.call.apply(r, [
  46805.           this
  46806.         ].concat(n))), 'customerPulseSrc', 'https://disqus.com/customer_pulse'),
  46807.         bD(gD(t), 'state', {
  46808.           iframeHeight: '1000px'
  46809.         }),
  46810.         bD(gD(t), 'resizeIframe', function (e) {
  46811.           e.data.cp_iframe_height && t.setState({
  46812.             iframeHeight: ''.concat(e.data.cp_iframe_height, 'px')
  46813.           })
  46814.         }),
  46815.         t
  46816.       }
  46817.       return e = o,
  46818.       (t = [
  46819.         {
  46820.           key: 'componentDidMount',
  46821.           value: function () {
  46822.             this.props.emitTrackingEvent({
  46823.               verb: 'view',
  46824.               object_type: 'page',
  46825.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  46826.             }),
  46827.             window.addEventListener('message', this.resizeIframe)
  46828.           }
  46829.         },
  46830.         {
  46831.           key: 'componentWillUnmount',
  46832.           value: function () {
  46833.             window.removeEventListener('message', this.resizeIframe)
  46834.           }
  46835.         },
  46836.         {
  46837.           key: 'render',
  46838.           value: function () {
  46839.             return C.a.createElement('div', {
  46840.               className: 'admin_content'
  46841.             }, C.a.createElement('iframe', {
  46842.               src: this.customerPulseSrc,
  46843.               width: '100%',
  46844.               height: this.state.iframeHeight,
  46845.               scrolling: 'no'
  46846.             }))
  46847.           }
  46848.         }
  46849.       ]) && mD(e.prototype, t),
  46850.       n && mD(e, n),
  46851.       o
  46852.     }(),
  46853.     Ls = Object(u.connect) (function (e) {
  46854.       return {
  46855.         saasFeatures: e.saasFeatures
  46856.       }
  46857.     }, {
  46858.       emitTrackingEvent: Xo({
  46859.         zone: 'analytics',
  46860.         section: 'pulse'
  46861.       })
  46862.     }) (Fo() (go));
  46863.     function vD(e) {
  46864.       return (vD = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  46865.         return typeof e
  46866.       }
  46867.        : function (e) {
  46868.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  46869.       }) (e)
  46870.     }
  46871.     function _D(e, t) {
  46872.       return (_D = Object.setPrototypeOf || function (e, t) {
  46873.         return e.__proto__ = t,
  46874.         e
  46875.       }) (e, t)
  46876.     }
  46877.     function ED(n) {
  46878.       var a = function () {
  46879.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  46880.         if (Reflect.construct.sham) return !1;
  46881.         if ('function' == typeof Proxy) return !0;
  46882.         try {
  46883.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  46884.           ], function () {
  46885.           })),
  46886.           !0
  46887.         } catch (e) {
  46888.           return !1
  46889.         }
  46890.       }();
  46891.       return function () {
  46892.         var e,
  46893.         t = SD(n);
  46894.         return e = a ? (e = SD(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  46895.         t = this,
  46896.         !(e = e) || 'object' !== vD(e) && 'function' != typeof e ? OD(t) : e
  46897.       }
  46898.     }
  46899.     function OD(e) {
  46900.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  46901.       return e
  46902.     }
  46903.     function SD(e) {
  46904.       return (SD = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  46905.         return e.__proto__ || Object.getPrototypeOf(e)
  46906.       }) (e)
  46907.     }
  46908.     function wD(e, t, n) {
  46909.       return t in e ? Object.defineProperty(e, t, {
  46910.         value: n,
  46911.         enumerable: !0,
  46912.         configurable: !0,
  46913.         writable: !0
  46914.       }) : e[t] = n,
  46915.       e
  46916.     }
  46917.     rc = function () {
  46918.       !function (e, t) {
  46919.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  46920.         e.prototype = Object.create(t && t.prototype, {
  46921.           constructor: {
  46922.             value: e,
  46923.             writable: !0,
  46924.             configurable: !0
  46925.           }
  46926.         }),
  46927.         t && _D(e, t)
  46928.       }(o, A);
  46929.       var r = ED(o);
  46930.       function o() {
  46931.         var a;
  46932.         !function (e, t) {
  46933.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  46934.         }(this, o);
  46935.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  46936.         return wD(OD(a = r.call.apply(r, [
  46937.           this
  46938.         ].concat(t))), 'state', {
  46939.           articleReads: 0,
  46940.           articleReadsDelta: 0,
  46941.           commentReads: 0,
  46942.           commentReadsDelta: 0,
  46943.           engagements: 0,
  46944.           engagementsDelta: 0,
  46945.           topArticle: null,
  46946.           topArticlePrevious: null,
  46947.           loading: !0
  46948.         }),
  46949.         wD(OD(a), 'fetch', function (e) {
  46950.           e = e.forum;
  46951.           a.setState({
  46952.             loading: !0
  46953.           }),
  46954.           io.a.call('forums/admin/reports/overviewStats', {
  46955.             data: {
  46956.               forum: e
  46957.             }
  46958.           }).done(function (e) {
  46959.             var t = e.response,
  46960.             n = !!t.current,
  46961.             e = !!t.previous;
  46962.             a.setState({
  46963.               articleReads: n ? t.current.pageViews : 0,
  46964.               articleReadsDelta: n && e ? Math.round((t.current.pageViews - t.previous.pageViews) / t.previous.pageViews * 100) : 0,
  46965.               commentReads: n ? t.current.embedViews : 0,
  46966.               commentReadsDelta: n && e ? Math.round((t.current.embedViews - t.previous.embedViews) / t.previous.embedViews * 100) : 0,
  46967.               engagements: n ? t.current.engagements : 0,
  46968.               engagementsDelta: n && e ? Math.round((t.current.engagements - t.previous.engagements) / t.previous.engagements * 100) : 0
  46969.             })
  46970.           }),
  46971.           io.a.call('forums/admin/reports/threadReport', {
  46972.             data: {
  46973.               forum: e,
  46974.               sort: 'engagements',
  46975.               limit: 1,
  46976.               start: ct() ().subtract(1, 'month').format('X'),
  46977.               end: ct() ().format('X')
  46978.             }
  46979.           }).done(function (e) {
  46980.             a.setState({
  46981.               topArticle: e.response[0]
  46982.             })
  46983.           }),
  46984.           io.a.call('forums/admin/reports/threadReport', {
  46985.             data: {
  46986.               forum: e,
  46987.               sort: 'engagements',
  46988.               limit: 1,
  46989.               start: ct() ().subtract(2, 'month').format('X'),
  46990.               end: ct() ().subtract(1, 'month').format('X')
  46991.             }
  46992.           }).done(function (e) {
  46993.             a.setState({
  46994.               topArticlePrevious: e.response[0],
  46995.               loading: !1
  46996.             })
  46997.           })
  46998.         }),
  46999.         wD(OD(a), 'handleDismiss', function () {
  47000.           Is.a.set('analyticsWelcome', !0),
  47001.           a.setState({
  47002.             analyticsWelcome: !0
  47003.           })
  47004.         }),
  47005.         wD(OD(a), 'getComponentProps', function () {
  47006.           return {
  47007.             articleReads: a.state.articleReads,
  47008.             articleReadsDelta: a.state.articleReadsDelta,
  47009.             commentReads: a.state.commentReads,
  47010.             commentReadsDelta: a.state.commentReadsDelta,
  47011.             engagements: a.state.engagements,
  47012.             engagementsDelta: a.state.engagementsDelta,
  47013.             topArticle: a.state.topArticle,
  47014.             topArticlePrevious: a.state.topArticlePrevious,
  47015.             handleDismiss: a.handleDismiss,
  47016.             overviewContentFetch: a.fetch,
  47017.             overviewContentLoading: a.state.loading
  47018.           }
  47019.         }),
  47020.         a
  47021.       }
  47022.       return o
  47023.     }();
  47024.     wD(rc, 'displayName', 'OverviewDriver');
  47025.     Wi = Object(ki.createDriver) (rc),
  47026.     yl = function (e) {
  47027.       var t = Math.round(e.delta),
  47028.       n = t < 0 ? '↓ ' : 0 < t ? '↑ +' : '',
  47029.       a = t < 0 ? 'text-red' : 0 < t ? 'text-green' : 'text-gray',
  47030.       t = [
  47031.       ];
  47032.       return 'number' == typeof e.metric && t.push(C.a.createElement('p', {
  47033.         className: 'text-huge',
  47034.         key: 'metric'
  47035.       }, e.metric.toLocaleString())),
  47036.       'number' == typeof e.delta && t.push(C.a.createElement('p', {
  47037.         className: a,
  47038.         key: 'delta'
  47039.       }, n, e.delta, '%', 0 === e.delta ? ' - No change' : null)),
  47040.       C.a.createElement('div', {
  47041.         className: 'admin-metric'
  47042.       }, C.a.createElement('div', {
  47043.         className: 'text-semibold'
  47044.       }, e.title, e.tooltip ? C.a.createElement(Md, {
  47045.         tooltipKey: e.title,
  47046.         content: e.tooltip,
  47047.         direction: 'bottom'
  47048.       }) : null), e.tooltip ? null : C.a.createElement('div', {
  47049.         className: 'text-medium text-gray'
  47050.       }, e.children), t.length ? C.a.createElement('div', {
  47051.         className: 'admin-metric__bottom'
  47052.       }, t) : null)
  47053.     };
  47054.     yl.displayName = 'Metric',
  47055.     yl.propTypes = {
  47056.       title: b.a.node.isRequired,
  47057.       metric: b.a.number,
  47058.       delta: b.a.number,
  47059.       tooltip: b.a.node,
  47060.       children: b.a.node
  47061.     };
  47062.     var PD = yl;
  47063.     function kD(e) {
  47064.       return (kD = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  47065.         return typeof e
  47066.       }
  47067.        : function (e) {
  47068.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  47069.       }) (e)
  47070.     }
  47071.     function ND(e, t) {
  47072.       for (var n = 0; n < t.length; n++) {
  47073.         var a = t[n];
  47074.         a.enumerable = a.enumerable || !1,
  47075.         a.configurable = !0,
  47076.         'value' in a && (a.writable = !0),
  47077.         Object.defineProperty(e, a.key, a)
  47078.       }
  47079.     }
  47080.     function CD(e, t) {
  47081.       return (CD = Object.setPrototypeOf || function (e, t) {
  47082.         return e.__proto__ = t,
  47083.         e
  47084.       }) (e, t)
  47085.     }
  47086.     function RD(n) {
  47087.       var a = function () {
  47088.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  47089.         if (Reflect.construct.sham) return !1;
  47090.         if ('function' == typeof Proxy) return !0;
  47091.         try {
  47092.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  47093.           ], function () {
  47094.           })),
  47095.           !0
  47096.         } catch (e) {
  47097.           return !1
  47098.         }
  47099.       }();
  47100.       return function () {
  47101.         var e,
  47102.         t = AD(n);
  47103.         return e = a ? (e = AD(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  47104.         t = this,
  47105.         !(e = e) || 'object' !== kD(e) && 'function' != typeof e ? xD(t) : e
  47106.       }
  47107.     }
  47108.     function xD(e) {
  47109.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  47110.       return e
  47111.     }
  47112.     function AD(e) {
  47113.       return (AD = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  47114.         return e.__proto__ || Object.getPrototypeOf(e)
  47115.       }) (e)
  47116.     }
  47117.     function DD(e, t, n) {
  47118.       return t in e ? Object.defineProperty(e, t, {
  47119.         value: n,
  47120.         enumerable: !0,
  47121.         configurable: !0,
  47122.         writable: !0
  47123.       }) : e[t] = n,
  47124.       e
  47125.     }
  47126.     var F = {
  47127.       day: 'day',
  47128.       month: 'month'
  47129.     },
  47130.     jD = (DD(Ru = {
  47131.     }, F.day, 'YYYY-MM-DD'), DD(Ru, F.month, 'YYYY-MM'), Ru),
  47132.     TD = ct.a.utc().startOf('day').subtract(1, 'year').add(1, 'day'),
  47133.     ID = ct.a.utc().startOf('day'),
  47134.     r = function () {
  47135.       !function (e, t) {
  47136.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  47137.         e.prototype = Object.create(t && t.prototype, {
  47138.           constructor: {
  47139.             value: e,
  47140.             writable: !0,
  47141.             configurable: !0
  47142.           }
  47143.         }),
  47144.         t && CD(e, t)
  47145.       }(r, A);
  47146.       var e,
  47147.       t,
  47148.       n,
  47149.       a = RD(r);
  47150.       function r() {
  47151.         var c;
  47152.         !function (e, t) {
  47153.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  47154.         }(this, r);
  47155.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  47156.         return DD(xD(c = a.call.apply(a, [
  47157.           this
  47158.         ].concat(t))), 'state', {
  47159.           series: {
  47160.             votes: [
  47161.             ],
  47162.             comments: [
  47163.             ],
  47164.             pageViews: [
  47165.             ],
  47166.             embedViews: [
  47167.             ]
  47168.           },
  47169.           loading: !0,
  47170.           errorCode: null
  47171.         }),
  47172.         DD(xD(c), 'fetchData', function () {
  47173.           c.setState({
  47174.             loading: !0
  47175.           });
  47176.           var e = c.props.startDate.clone().startOf('month').subtract(1, 'day'),
  47177.           t = c.props.endDate.clone().endOf('month').startOf('day');
  47178.           c.apiCall = io.a.call('forums/admin/reports/interactionReport', {
  47179.             data: {
  47180.               start: ct.a.max(TD, e).toISOString(),
  47181.               end: ct.a.min(ID, t).toISOString(),
  47182.               forum: c.props.selection.forum.shortname
  47183.             },
  47184.             success: c.onFetch,
  47185.             error: c.onError
  47186.           })
  47187.         }),
  47188.         DD(xD(c), 'onFetch', function (e) {
  47189.           c.setState({
  47190.             series: {
  47191.               votes: (e = e.response ? e.response : e).votes_series,
  47192.               comments: e.comments_series,
  47193.               pageViews: e.page_view_series,
  47194.               embedViews: e.embed_view_series
  47195.             },
  47196.             loading: !1,
  47197.             errorCode: null
  47198.           })
  47199.         }),
  47200.         DD(xD(c), 'onError', function (e) {
  47201.           c.setState({
  47202.             errorCode: e,
  47203.             loading: !1
  47204.           })
  47205.         }),
  47206.         DD(xD(c), 'getRows', function () {
  47207.           for (var e = c.props.startDate.clone().startOf(c.props.interval), t = c.props.endDate.clone().endOf(c.props.interval), n = c.formatDataByInterval(c.state.series.comments.concat(c.state.series.votes)), a = c.formatDataByInterval(c.state.series.comments), r = c.formatDataByInterval(c.state.series.pageViews), o = c.formatDataByInterval(c.state.series.embedViews), i = [
  47208.           ], s = e; s.isBefore(t); s.add(1, c.props.interval)) {
  47209.             var l = s.format(jD[c.props.interval]);
  47210.             i.push({
  47211.               date_utc: s.clone(),
  47212.               engagements: n[l] || 0,
  47213.               comments: a[l] || 0,
  47214.               articleReads: r[l] || 0,
  47215.               embedReads: o[l] || 0
  47216.             })
  47217.           }
  47218.           e = i.length - 1;
  47219.           return c.isRowZero(i[e]) && i.splice(e, 1),
  47220.           i
  47221.         }),
  47222.         DD(xD(c), 'isRowZero', function (e) {
  47223.           return 0 === e.engagements && 0 === e.articleReads && 0 === e.embedReads
  47224.         }),
  47225.         DD(xD(c), 'formatDataByInterval', function (e) {
  47226.           if (!e) return [];
  47227.           var a = jD[c.props.interval];
  47228.           return je.a.chain(e).reduce(function (e, t) {
  47229.             var n = ct.a.utc(t[0]).format(a);
  47230.             return e[n] = e[n] ? e[n] + t[1] : t[1],
  47231.             e
  47232.           }, {
  47233.           }).value()
  47234.         }),
  47235.         DD(xD(c), 'getComponentProps', function () {
  47236.           return {
  47237.             overviewStartDate: c.props.startDate,
  47238.             overviewEndDate: c.props.endDate,
  47239.             overviewRows: c.getRows(),
  47240.             overviewLoading: c.state.loading,
  47241.             overviewErrorCode: c.state.errorCode,
  47242.             overviewMinDate: TD,
  47243.             overviewMaxDate: ID
  47244.           }
  47245.         }),
  47246.         c
  47247.       }
  47248.       return e = r,
  47249.       (t = [
  47250.         {
  47251.           key: 'componentWillMount',
  47252.           value: function () {
  47253.             this.fetchData()
  47254.           }
  47255.         },
  47256.         {
  47257.           key: 'componentWillUnmount',
  47258.           value: function () {
  47259.             this.apiCall && 'pending' === this.apiCall.state() && this.apiCall.abort()
  47260.           }
  47261.         },
  47262.         {
  47263.           key: 'componentDidUpdate',
  47264.           value: function (e) {
  47265.             this.props.startDate === e.startDate && this.props.endDate === e.endDate || this.fetchData()
  47266.           }
  47267.         }
  47268.       ]) && ND(e.prototype, t),
  47269.       n && ND(e, n),
  47270.       r
  47271.     }();
  47272.     DD(r, 'displayName', 'OverviewGraphDriver'),
  47273.     DD(r, 'propTypes', {
  47274.       startDate: s.moment.isRequired,
  47275.       endDate: s.moment.isRequired,
  47276.       interval: b.a.oneOf(je.a.values(F)).isRequired,
  47277.       selection: ht.isRequired
  47278.     });
  47279.     go = Object(ki.createDriver) (r, function (e) {
  47280.       return {
  47281.         selection: e.selection
  47282.       }
  47283.     });
  47284.     function qD(e) {
  47285.       return (qD = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  47286.         return typeof e
  47287.       }
  47288.        : function (e) {
  47289.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  47290.       }) (e)
  47291.     }
  47292.     function FD() {
  47293.       return (FD = Object.assign || function (e) {
  47294.         for (var t = 1; t < arguments.length; t++) {
  47295.           var n,
  47296.           a = arguments[t];
  47297.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  47298.         }
  47299.         return e
  47300.       }).apply(this, arguments)
  47301.     }
  47302.     function LD(t, e) {
  47303.       var n,
  47304.       a = Object.keys(t);
  47305.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  47306.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  47307.       })), a.push.apply(a, n)),
  47308.       a
  47309.     }
  47310.     function UD(t) {
  47311.       for (var e = 1; e < arguments.length; e++) {
  47312.         var n = null != arguments[e] ? arguments[e] : {
  47313.         };
  47314.         e % 2 ? LD(Object(n), !0).forEach(function (e) {
  47315.           VD(t, e, n[e])
  47316.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : LD(Object(n)).forEach(function (e) {
  47317.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  47318.         })
  47319.       }
  47320.       return t
  47321.     }
  47322.     function MD(e, t) {
  47323.       for (var n = 0; n < t.length; n++) {
  47324.         var a = t[n];
  47325.         a.enumerable = a.enumerable || !1,
  47326.         a.configurable = !0,
  47327.         'value' in a && (a.writable = !0),
  47328.         Object.defineProperty(e, a.key, a)
  47329.       }
  47330.     }
  47331.     function BD(e, t) {
  47332.       return (BD = Object.setPrototypeOf || function (e, t) {
  47333.         return e.__proto__ = t,
  47334.         e
  47335.       }) (e, t)
  47336.     }
  47337.     function zD(n) {
  47338.       var a = function () {
  47339.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  47340.         if (Reflect.construct.sham) return !1;
  47341.         if ('function' == typeof Proxy) return !0;
  47342.         try {
  47343.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  47344.           ], function () {
  47345.           })),
  47346.           !0
  47347.         } catch (e) {
  47348.           return !1
  47349.         }
  47350.       }();
  47351.       return function () {
  47352.         var e,
  47353.         t = GD(n);
  47354.         return e = a ? (e = GD(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  47355.         t = this,
  47356.         !(e = e) || 'object' !== qD(e) && 'function' != typeof e ? HD(t) : e
  47357.       }
  47358.     }
  47359.     function HD(e) {
  47360.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  47361.       return e
  47362.     }
  47363.     function GD(e) {
  47364.       return (GD = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  47365.         return e.__proto__ || Object.getPrototypeOf(e)
  47366.       }) (e)
  47367.     }
  47368.     function VD(e, t, n) {
  47369.       return t in e ? Object.defineProperty(e, t, {
  47370.         value: n,
  47371.         enumerable: !0,
  47372.         configurable: !0,
  47373.         writable: !0
  47374.       }) : e[t] = n,
  47375.       e
  47376.     }
  47377.     function WD(e) {
  47378.       return e.toLocaleString()
  47379.     }
  47380.     var YD = {
  47381.       key: 'date_utc',
  47382.       name: 'Date (UTC)',
  47383.       formatter: function (e) {
  47384.         return ct.a.utc(e).format('MMM D YYYY')
  47385.       }
  47386.     },
  47387.     QD = {
  47388.       x: 'date_utc',
  47389.       keys: {
  47390.         value: [
  47391.           'date_utc',
  47392.           'articleReads',
  47393.           'embedReads',
  47394.           'engagements',
  47395.           'comments'
  47396.         ]
  47397.       },
  47398.       names: {
  47399.         articleReads: 'Article Reads',
  47400.         embedReads: 'Comment Reads',
  47401.         engagements: 'Engagements',
  47402.         comments: 'Comments'
  47403.       },
  47404.       axes: {
  47405.         articleReads: 'y',
  47406.         embedReads: 'y',
  47407.         engagements: 'y2',
  47408.         comments: 'y2'
  47409.       }
  47410.     },
  47411.     KD = function () {
  47412.       !function (e, t) {
  47413.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  47414.         e.prototype = Object.create(t && t.prototype, {
  47415.           constructor: {
  47416.             value: e,
  47417.             writable: !0,
  47418.             configurable: !0
  47419.           }
  47420.         }),
  47421.         t && BD(e, t)
  47422.       }(o, A);
  47423.       var e,
  47424.       t,
  47425.       n,
  47426.       r = zD(o);
  47427.       function o() {
  47428.         var e;
  47429.         !function (e, t) {
  47430.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  47431.         }(this, o);
  47432.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  47433.         return VD(HD(e = r.call.apply(r, [
  47434.           this
  47435.         ].concat(n))), 'getGraphData', function () {
  47436.           return UD({
  47437.             json: e.props.rows.map(function (e) {
  47438.               return UD(UD({
  47439.               }, e), {
  47440.               }, {
  47441.                 date_utc: e.date_utc.toDate()
  47442.               })
  47443.             })
  47444.           }, e.props.graphData || QD)
  47445.         }),
  47446.         e
  47447.       }
  47448.       return e = o,
  47449.       (t = [
  47450.         {
  47451.           key: 'componentDidMount',
  47452.           value: function () {
  47453.             this.chart = Ed.a.generate({
  47454.               bindto: this.ref.graph,
  47455.               data: this.getGraphData(),
  47456.               color: {
  47457.                 pattern: [
  47458.                   '#752C85',
  47459.                   '#8B020E',
  47460.                   '#E56C00',
  47461.                   '#FDBE13'
  47462.                 ]
  47463.               },
  47464.               transition: {
  47465.                 duration: 0
  47466.               },
  47467.               axis: {
  47468.                 y: {
  47469.                   min: 0,
  47470.                   padding: {
  47471.                     bottom: 0
  47472.                   },
  47473.                   tick: {
  47474.                     format: WD
  47475.                   }
  47476.                 },
  47477.                 y2: {
  47478.                   show: !0,
  47479.                   tick: {
  47480.                     format: WD
  47481.                   }
  47482.                 },
  47483.                 x: {
  47484.                   type: 'timeseries',
  47485.                   tick: {
  47486.                     format: YD.formatter
  47487.                   }
  47488.                 }
  47489.               },
  47490.               point: {
  47491.                 show: !1
  47492.               }
  47493.             })
  47494.           }
  47495.         },
  47496.         {
  47497.           key: 'componentDidUpdate',
  47498.           value: function () {
  47499.             this.chart.load(this.getGraphData())
  47500.           }
  47501.         },
  47502.         {
  47503.           key: 'componentWillUnmount',
  47504.           value: function () {
  47505.             this.chart && (this.chart = this.chart.destroy())
  47506.           }
  47507.         },
  47508.         {
  47509.           key: 'render',
  47510.           value: function () {
  47511.             var t = this;
  47512.             return C.a.createElement('div', {
  47513.               ref: function (e) {
  47514.                 t.ref = t.ref || {
  47515.                 },
  47516.                 t.ref.graph = e
  47517.               }
  47518.             })
  47519.           }
  47520.         }
  47521.       ]) && MD(e.prototype, t),
  47522.       n && MD(e, n),
  47523.       o
  47524.     }();
  47525.     VD(KD, 'propTypes', {
  47526.       rows: b.a.arrayOf(b.a.shape({
  47527.         date_utc: s.moment.isRequired,
  47528.         engagements: b.a.number.isRequired,
  47529.         comments: b.a.number.isRequired,
  47530.         articleReads: b.a.number.isRequired,
  47531.         embedReads: b.a.number.isRequired
  47532.       })),
  47533.       startDate: s.moment.isRequired,
  47534.       endDate: s.moment.isRequired,
  47535.       minDate: s.moment.isRequired,
  47536.       maxDate: s.moment.isRequired,
  47537.       graphData: b.a.object
  47538.     });
  47539.     rc = function (e) {
  47540.       e = UD(UD({
  47541.       }, {
  47542.         startDate: e.overviewStartDate,
  47543.         endDate: e.overviewEndDate,
  47544.         minDate: e.overviewMinDate,
  47545.         maxDate: e.overviewMaxDate
  47546.       }), {
  47547.       }, {
  47548.         rows: e.overviewRows
  47549.       });
  47550.       return C.a.createElement(KD, FD({
  47551.         graphData: QD
  47552.       }, e))
  47553.     };
  47554.     rc.propTypes = {
  47555.       overviewStartDate: s.moment.isRequired,
  47556.       overviewEndDate: s.moment.isRequired,
  47557.       overviewMinDate: s.moment.isRequired,
  47558.       overviewMaxDate: s.moment.isRequired,
  47559.       overviewRows: b.a.arrayOf(b.a.shape({
  47560.         date_utc: s.moment.isRequired,
  47561.         engagements: b.a.number.isRequired,
  47562.         comments: b.a.number.isRequired,
  47563.         articleReads: b.a.number.isRequired,
  47564.         embedReads: b.a.number.isRequired
  47565.       }))
  47566.     };
  47567.     var JD = Ni.a.attachDrivers(rc, [
  47568.       go
  47569.     ]);
  47570.     function $D(e) {
  47571.       return ($D = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  47572.         return typeof e
  47573.       }
  47574.        : function (e) {
  47575.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  47576.       }) (e)
  47577.     }
  47578.     function ZD(t, e) {
  47579.       var n,
  47580.       a = Object.keys(t);
  47581.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  47582.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  47583.       })), a.push.apply(a, n)),
  47584.       a
  47585.     }
  47586.     function XD(t) {
  47587.       for (var e = 1; e < arguments.length; e++) {
  47588.         var n = null != arguments[e] ? arguments[e] : {
  47589.         };
  47590.         e % 2 ? ZD(Object(n), !0).forEach(function (e) {
  47591.           oj(t, e, n[e])
  47592.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : ZD(Object(n)).forEach(function (e) {
  47593.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  47594.         })
  47595.       }
  47596.       return t
  47597.     }
  47598.     function ej(e, t) {
  47599.       for (var n = 0; n < t.length; n++) {
  47600.         var a = t[n];
  47601.         a.enumerable = a.enumerable || !1,
  47602.         a.configurable = !0,
  47603.         'value' in a && (a.writable = !0),
  47604.         Object.defineProperty(e, a.key, a)
  47605.       }
  47606.     }
  47607.     function tj(e, t) {
  47608.       return (tj = Object.setPrototypeOf || function (e, t) {
  47609.         return e.__proto__ = t,
  47610.         e
  47611.       }) (e, t)
  47612.     }
  47613.     function nj(n) {
  47614.       var a = function () {
  47615.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  47616.         if (Reflect.construct.sham) return !1;
  47617.         if ('function' == typeof Proxy) return !0;
  47618.         try {
  47619.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  47620.           ], function () {
  47621.           })),
  47622.           !0
  47623.         } catch (e) {
  47624.           return !1
  47625.         }
  47626.       }();
  47627.       return function () {
  47628.         var e,
  47629.         t = rj(n);
  47630.         return e = a ? (e = rj(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  47631.         t = this,
  47632.         !(e = e) || 'object' !== $D(e) && 'function' != typeof e ? aj(t) : e
  47633.       }
  47634.     }
  47635.     function aj(e) {
  47636.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  47637.       return e
  47638.     }
  47639.     function rj(e) {
  47640.       return (rj = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  47641.         return e.__proto__ || Object.getPrototypeOf(e)
  47642.       }) (e)
  47643.     }
  47644.     function oj(e, t, n) {
  47645.       return t in e ? Object.defineProperty(e, t, {
  47646.         value: n,
  47647.         enumerable: !0,
  47648.         configurable: !0,
  47649.         writable: !0
  47650.       }) : e[t] = n,
  47651.       e
  47652.     }
  47653.     yl = function () {
  47654.       !function (e, t) {
  47655.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  47656.         e.prototype = Object.create(t && t.prototype, {
  47657.           constructor: {
  47658.             value: e,
  47659.             writable: !0,
  47660.             configurable: !0
  47661.           }
  47662.         }),
  47663.         t && tj(e, t)
  47664.       }(o, A);
  47665.       var e,
  47666.       t,
  47667.       n,
  47668.       r = nj(o);
  47669.       function o() {
  47670.         var n;
  47671.         !function (e, t) {
  47672.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  47673.         }(this, o);
  47674.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  47675.         return oj(aj(n = r.call.apply(r, [
  47676.           this
  47677.         ].concat(t))), 'state', {
  47678.           startDate: ct() ().subtract(1, 'month'),
  47679.           endDate: ct() (),
  47680.           metricStart: ct() ().subtract(1, 'month').format('MM/DD/YY'),
  47681.           metricEnd: ct() ().format('MM/DD/YY'),
  47682.           interval: 'day'
  47683.         }),
  47684.         oj(aj(n), 'getExportUrl', function () {
  47685.           var e = io.a.getURL('forums/admin/reports/interactionReport.csv');
  47686.           return Eo() (e, {
  47687.             api_key: pt.a.keys.api,
  47688.             forum: pt.a.currentForum,
  47689.             start: ct.a.utc(n.state.startDate).toISOString(),
  47690.             end: ct.a.utc(n.state.endDate).toISOString()
  47691.           })
  47692.         }),
  47693.         oj(aj(n), 'reportExport', function () {
  47694.           n.props.emitTrackingEvent({
  47695.             verb: 'export',
  47696.             object_type: 'file',
  47697.             object_id: 'csv'
  47698.           })
  47699.         }),
  47700.         oj(aj(n), 'handleDateChange', function (e, t) {
  47701.           n.setState({
  47702.             startDate: e,
  47703.             endDate: t
  47704.           }),
  47705.           n.reportClick({
  47706.             object_type: 'filter',
  47707.             object_id: 'date',
  47708.             extra_data: JSON.stringify({
  47709.               filter_start_date: ct.a.utc(e).format(),
  47710.               filter_end_date: ct.a.utc(t).format()
  47711.             })
  47712.           })
  47713.         }),
  47714.         oj(aj(n), 'onGroupChange', function (e) {
  47715.           n.setState({
  47716.             interval: e
  47717.           }),
  47718.           n.reportClick({
  47719.             object_type: 'filter',
  47720.             object_id: 'group',
  47721.             extra_data: JSON.stringify({
  47722.               filter_group: e
  47723.             })
  47724.           })
  47725.         }),
  47726.         oj(aj(n), 'handleDismiss', function () {
  47727.           n.reportClick({
  47728.             adverb: 'dismiss',
  47729.             object_type: 'note',
  47730.             object_id: 'welcome'
  47731.           }),
  47732.           n.props.handleDismiss()
  47733.         }),
  47734.         oj(aj(n), 'reportClick', function (e) {
  47735.           n.props.emitTrackingEvent(XD(XD({
  47736.           }, e), {
  47737.           }, {
  47738.             verb: 'click'
  47739.           }))
  47740.         }),
  47741.         oj(aj(n), 'fetch', function () {
  47742.           n.props.overviewContentFetch({
  47743.             forum: pt.a.currentForum
  47744.           })
  47745.         }),
  47746.         n
  47747.       }
  47748.       return e = o,
  47749.       (t = [
  47750.         {
  47751.           key: 'componentDidMount',
  47752.           value: function () {
  47753.             this.fetch(),
  47754.             this.props.emitTrackingEvent({
  47755.               verb: 'view',
  47756.               object_type: 'page',
  47757.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  47758.             })
  47759.           }
  47760.         },
  47761.         {
  47762.           key: 'render',
  47763.           value: function () {
  47764.             if (this.props.organization && this.props.organization.pollsOnly) return C.a.createElement(Cm, {
  47765.               isPolls: !1,
  47766.               organization: this.props.organization
  47767.             });
  47768.             var e = Is.a.get('analyticsWelcome') ? null : C.a.createElement(Ki, {
  47769.               alertType: 'brand-new',
  47770.               topMarginClass: 'spacing-top-none',
  47771.               message: C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  47772.                 className: 'text-larger text-semibold'
  47773.               }, 'Get started with Disqus Pro Analytics'), C.a.createElement('div', null, C.a.createElement('p', {
  47774.                 className: 'text-large spacing-narrow spacing-bottom'
  47775.               }, 'Uncover insights about your audience including top performing stories by engagement, the growth of your community over time, and more!'), C.a.createElement('a', {
  47776.                 href: 'https://blog.disqus.com/unlock-content-engagement-insights-in-the-new-disqus-analytics',
  47777.                 target: '_blank',
  47778.                 rel: 'noopener noreferrer',
  47779.                 onClick: this.reportClick.bind(this, {
  47780.                   adverb: 'learn_more',
  47781.                   object_type: 'note',
  47782.                   object_id: 'welcome'
  47783.                 })
  47784.               }, C.a.createElement('button', {
  47785.                 className: 'button button-large button-fill--white text-medium spacing-narrow spacing-right'
  47786.               }, 'Learn More')), C.a.createElement('button', {
  47787.                 className: 'button button-large button-fill--brand text-medium spacing-narrow',
  47788.                 onClick: this.handleDismiss
  47789.               }, 'Dismiss')))
  47790.             });
  47791.             return this.props.overviewContentLoading ? C.a.createElement(Ji, null) : C.a.createElement('div', {
  47792.               className: 'section-contained'
  47793.             }, e, C.a.createElement(Bp, {
  47794.               className: 'spacing-bottom',
  47795.               leftTitle: 'Topline Metrics',
  47796.               rightTitle: C.a.createElement('div', null, C.a.createElement('b', null, 'Past 30 days'), ' (', this.state.metricStart, ' - ', this.state.metricEnd, ')')
  47797.             }, C.a.createElement(PD, {
  47798.               title: 'Article Reads',
  47799.               metric: this.props.articleReads,
  47800.               delta: this.props.articleReadsDelta,
  47801.               tooltip: 'The number of times people view an article where Disqus is installed.'
  47802.             }), C.a.createElement(PD, {
  47803.               title: 'Comment Reads',
  47804.               metric: this.props.commentReads,
  47805.               delta: this.props.commentReadsDelta,
  47806.               tooltip: 'The number of times people read the comments section.'
  47807.             }), C.a.createElement(PD, {
  47808.               title: 'Total Engagements',
  47809.               metric: this.props.engagements,
  47810.               delta: this.props.engagementsDelta,
  47811.               tooltip: 'Total number of comments and votes by readers.'
  47812.             })), C.a.createElement(Bp, {
  47813.               className: 'spacing-bottom',
  47814.               leftTitle: 'Traffic Overview',
  47815.               rightTitle: C.a.createElement('div', {
  47816.                 className: 'card__header-right'
  47817.               }, C.a.createElement('a', {
  47818.                 href: this.getExportUrl(),
  47819.                 target: '_blank',
  47820.                 rel: 'noopener noreferrer',
  47821.                 className: 'card__header-content-item -button -right text-gray-dark text-semibold',
  47822.                 onClick: this.reportExport
  47823.               }, C.a.createElement('span', {
  47824.                 className: 'icon-download text-large spacing-right text-gray'
  47825.               }), 'Download CSV'), C.a.createElement(Zp, {
  47826.                 dateWrapperClass: 'card__header-datepicker',
  47827.                 minDate: gt,
  47828.                 maxDate: ct() (),
  47829.                 startDate: this.state.startDate,
  47830.                 endDate: this.state.endDate,
  47831.                 onDateChange: this.handleDateChange,
  47832.                 shortcuts: yt,
  47833.                 group: this.state.interval,
  47834.                 onGroupChange: this.onGroupChange
  47835.               }))
  47836.             }, C.a.createElement(JD, {
  47837.               startDate: this.state.startDate,
  47838.               endDate: this.state.endDate,
  47839.               interval: this.state.interval
  47840.             })), this.props.topArticle || this.props.topArticlePrevious ? C.a.createElement(Bp, {
  47841.               className: 'spacing-bottom',
  47842.               leftTitle: 'Want to learn more?'
  47843.             }, C.a.createElement('div', {
  47844.               className: 'padding-default truncate-line'
  47845.             }, this.props.topArticle ? C.a.createElement('div', null, C.a.createElement('div', {
  47846.               className: 'text-medium text-semibold'
  47847.             }, 'Top article in the past 30 days'), C.a.createElement('a', {
  47848.               href: this.props.topArticle.signedLink,
  47849.               target: '_blank',
  47850.               rel: 'noopener noreferrer',
  47851.               className: 'text-larger text-semibold truncate-line'
  47852.             }, this.props.topArticle.title), C.a.createElement('div', {
  47853.               className: 'text-medium text-gray spacing-bottom'
  47854.             }, C.a.createElement('span', {
  47855.               className: 'text-semibold'
  47856.             }, 'Total Engagements:'), ' ', this.props.topArticle.engagements)) : null, this.props.topArticlePrevious ? C.a.createElement('div', null, C.a.createElement('div', {
  47857.               className: 'text-medium text-semibold'
  47858.             }, 'Top article in the 30-day period prior to this one'), C.a.createElement('a', {
  47859.               href: this.props.topArticlePrevious.signedLink,
  47860.               target: '_blank',
  47861.               rel: 'noopener noreferrer',
  47862.               className: 'text-larger text-semibold truncate-line'
  47863.             }, this.props.topArticlePrevious.title), C.a.createElement('div', {
  47864.               className: 'text-medium text-gray spacing-bottom'
  47865.             }, C.a.createElement('span', {
  47866.               className: 'text-semibold'
  47867.             }, 'Total Engagements:'), ' ', this.props.topArticlePrevious.engagements)) : null)) : null, C.a.createElement('div', {
  47868.               className: 'card__more-info'
  47869.             }, C.a.createElement('div', null, C.a.createElement('p', {
  47870.               className: 'text-larger text-semibold spacing-bottom-large'
  47871.             }, 'How to grow total engagements:'), C.a.createElement('ol', null, C.a.createElement('li', null, 'Ask people to comment with a strong call-to-action.'), C.a.createElement('li', null, 'Be active and present in the comments by replying to readers (especially first-time commenters). Author participation makes a huge difference.'), C.a.createElement('li', null, 'Moderate the comments and establish a set of community guidelines for participation.')), C.a.createElement('a', {
  47872.               href: 'https://help.disqus.com/customer/en/portal/topics/637329-community-tips/articles',
  47873.               target: '_blank',
  47874.               rel: 'noopener noreferrer',
  47875.               onClick: this.reportClick.bind(this, {
  47876.                 adverb: 'learn_more',
  47877.                 area: 'footer',
  47878.                 object_type: 'area',
  47879.                 object_id: 'footer'
  47880.               })
  47881.             }, C.a.createElement('button', {
  47882.               className: 'button button-large button-fill--brand text-medium spacing-top-double'
  47883.             }, 'Learn More')))))
  47884.           }
  47885.         }
  47886.       ]) && ej(e.prototype, t),
  47887.       n && ej(e, n),
  47888.       o
  47889.     }();
  47890.     oj(yl, 'propTypes', {
  47891.       overviewContentFetch: b.a.func.isRequired,
  47892.       handleDismiss: b.a.func.isRequired,
  47893.       articleReads: b.a.number.isRequired,
  47894.       articleReadsDelta: b.a.number.isRequired,
  47895.       commentReads: b.a.number.isRequired,
  47896.       commentReadsDelta: b.a.number.isRequired,
  47897.       engagements: b.a.number.isRequired,
  47898.       engagementsDelta: b.a.number.isRequired,
  47899.       topArticle: b.a.object,
  47900.       topArticlePrevious: b.a.object,
  47901.       emitTrackingEvent: b.a.func.isRequired,
  47902.       overviewContentLoading: b.a.bool
  47903.     });
  47904.     var ij = Object(u.connect) (function (e) {
  47905.       return {
  47906.         organization: e.selection.organization
  47907.       }
  47908.     }, {
  47909.       emitTrackingEvent: Xo({
  47910.         zone: 'analytics',
  47911.         section: 'welcome'
  47912.       })
  47913.     }) (Ni.a.attachDrivers(yl, [
  47914.       Wi
  47915.     ]));
  47916.     function sj(t, e) {
  47917.       var n,
  47918.       a = Object.keys(t);
  47919.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  47920.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  47921.       })), a.push.apply(a, n)),
  47922.       a
  47923.     }
  47924.     function lj(a) {
  47925.       for (var e = 1; e < arguments.length; e++) {
  47926.         var r = null != arguments[e] ? arguments[e] : {
  47927.         };
  47928.         e % 2 ? sj(Object(r), !0).forEach(function (e) {
  47929.           var t,
  47930.           n;
  47931.           n = r[t = e],
  47932.           t in (e = a) ? Object.defineProperty(e, t, {
  47933.             value: n,
  47934.             enumerable: !0,
  47935.             configurable: !0,
  47936.             writable: !0
  47937.           }) : e[t] = n
  47938.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : sj(Object(r)).forEach(function (e) {
  47939.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  47940.         })
  47941.       }
  47942.       return a
  47943.     }
  47944.     function cj(e, t, n) {
  47945.       t.selection.forum && n(e = {
  47946.         data: lj({
  47947.           forum: t.selection.forum.shortname
  47948.         }, e)
  47949.       })
  47950.     }
  47951.     var uj = 5,
  47952.     pj = function (e, t) {
  47953.       return 0 === e ? 0 === t ? 0 : 100 : Math.round((t - e) / e * 100)
  47954.     },
  47955.     dj = {
  47956.       new : '#8BCF93',
  47957.       returning: '#2E9FFF',
  47958.       recovered: '#7E919F'
  47959.     },
  47960.     mj = [
  47961.       'new',
  47962.       'returning',
  47963.       'recovered'
  47964.     ],
  47965.     Ru = b.a.shape({
  47966.       periodDays: b.a.number.isRequired,
  47967.       commentReaders: b.a.number.isRequired,
  47968.       subscribedReaders: b.a.number.isRequired,
  47969.       engagedReaders: b.a.shape({
  47970.         new : b.a.number.isRequired,
  47971.         returning: b.a.number.isRequired,
  47972.         recovered: b.a.number.isRequired
  47973.       }).isRequired
  47974.     }),
  47975.     F = b.a.shape({
  47976.       current: Ru.isRequired,
  47977.       previous: Ru.isRequired,
  47978.       userExportEmail: b.a.bool.isRequired
  47979.     }),
  47980.     r = b.a.shape({
  47981.       displayName: b.a.string,
  47982.       username: b.a.string.isRequired,
  47983.       engagements: b.a.number.isRequired,
  47984.       comments: b.a.number.isRequired,
  47985.       firstEngagement: b.a.string.isRequired,
  47986.       lastEngagement: b.a.string.isRequired,
  47987.       subscribedOn: b.a.string,
  47988.       type: b.a.oneOf([].concat(mj, [
  47989.         're-engaged',
  47990.         'inactive'
  47991.       ]))
  47992.     }),
  47993.     s = function (e, t, n, a, r) {
  47994.       t = e[t];
  47995.       if (!Array.isArray(t) || 2 !== t.length || 'string' != typeof t[0] || 'number' != typeof t[1]) return Error('The '.concat(a, ' `').concat(r, '` in `').concat(n, '` is expected to be of the form [\'YYYY-MM-DD\', count].'))
  47996.     },
  47997.     rc = b.a.shape({
  47998.       new : b.a.arrayOf(s).isRequired,
  47999.       returning: b.a.arrayOf(s).isRequired,
  48000.       recovered: b.a.arrayOf(s).isRequired,
  48001.       inactive: b.a.arrayOf(s).isRequired
  48002.     }),
  48003.     fj = {
  48004.       transition: {
  48005.         duration: 0
  48006.       },
  48007.       interaction: {
  48008.         enabled: !1
  48009.       },
  48010.       axis: {
  48011.         rotated: !0,
  48012.         x: {
  48013.           show: !1
  48014.         },
  48015.         y: {
  48016.           show: !1
  48017.         }
  48018.       },
  48019.       legend: {
  48020.         show: !1
  48021.       },
  48022.       bar: {
  48023.         width: 50
  48024.       },
  48025.       size: {
  48026.         width: 350
  48027.       },
  48028.       point: {
  48029.         show: !1
  48030.       }
  48031.     };
  48032.     function hj(e) {
  48033.       return (hj = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  48034.         return typeof e
  48035.       }
  48036.        : function (e) {
  48037.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  48038.       }) (e)
  48039.     }
  48040.     function gj(t, e) {
  48041.       var n,
  48042.       a = Object.keys(t);
  48043.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  48044.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  48045.       })), a.push.apply(a, n)),
  48046.       a
  48047.     }
  48048.     function yj(t) {
  48049.       for (var e = 1; e < arguments.length; e++) {
  48050.         var n = null != arguments[e] ? arguments[e] : {
  48051.         };
  48052.         e % 2 ? gj(Object(n), !0).forEach(function (e) {
  48053.           Sj(t, e, n[e])
  48054.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : gj(Object(n)).forEach(function (e) {
  48055.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  48056.         })
  48057.       }
  48058.       return t
  48059.     }
  48060.     function bj(e, t) {
  48061.       for (var n = 0; n < t.length; n++) {
  48062.         var a = t[n];
  48063.         a.enumerable = a.enumerable || !1,
  48064.         a.configurable = !0,
  48065.         'value' in a && (a.writable = !0),
  48066.         Object.defineProperty(e, a.key, a)
  48067.       }
  48068.     }
  48069.     function vj(e, t) {
  48070.       return (vj = Object.setPrototypeOf || function (e, t) {
  48071.         return e.__proto__ = t,
  48072.         e
  48073.       }) (e, t)
  48074.     }
  48075.     function _j(n) {
  48076.       var a = function () {
  48077.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  48078.         if (Reflect.construct.sham) return !1;
  48079.         if ('function' == typeof Proxy) return !0;
  48080.         try {
  48081.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  48082.           ], function () {
  48083.           })),
  48084.           !0
  48085.         } catch (e) {
  48086.           return !1
  48087.         }
  48088.       }();
  48089.       return function () {
  48090.         var e,
  48091.         t = Oj(n);
  48092.         return e = a ? (e = Oj(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  48093.         t = this,
  48094.         !(e = e) || 'object' !== hj(e) && 'function' != typeof e ? Ej(t) : e
  48095.       }
  48096.     }
  48097.     function Ej(e) {
  48098.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  48099.       return e
  48100.     }
  48101.     function Oj(e) {
  48102.       return (Oj = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  48103.         return e.__proto__ || Object.getPrototypeOf(e)
  48104.       }) (e)
  48105.     }
  48106.     function Sj(e, t, n) {
  48107.       return t in e ? Object.defineProperty(e, t, {
  48108.         value: n,
  48109.         enumerable: !0,
  48110.         configurable: !0,
  48111.         writable: !0
  48112.       }) : e[t] = n,
  48113.       e
  48114.     }
  48115.     go = function () {
  48116.       !function (e, t) {
  48117.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  48118.         e.prototype = Object.create(t && t.prototype, {
  48119.           constructor: {
  48120.             value: e,
  48121.             writable: !0,
  48122.             configurable: !0
  48123.           }
  48124.         }),
  48125.         t && vj(e, t)
  48126.       }(o, A);
  48127.       var e,
  48128.       t,
  48129.       n,
  48130.       r = _j(o);
  48131.       function o() {
  48132.         var n;
  48133.         !function (e, t) {
  48134.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  48135.         }(this, o);
  48136.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  48137.         return Sj(Ej(n = r.call.apply(r, [
  48138.           this
  48139.         ].concat(t))), 'state', {
  48140.           sortColumn: 'engagements',
  48141.           sortDir: tD.SORT_DESC,
  48142.           modalIsOpen: !1,
  48143.           isDisabled: !1
  48144.         }),
  48145.         Sj(Ej(n), 'getExportUrl', function () {
  48146.           if (n.props.shouldEmailCsv) return '#';
  48147.           var e = io.a.getURL('forums/admin/reports/userReportExport.csv');
  48148.           return Eo() (e, {
  48149.             api_key: pt.a.keys.api,
  48150.             forum: pt.a.currentForum
  48151.           })
  48152.         }),
  48153.         Sj(Ej(n), 'exportCSV', function (e) {
  48154.           var t = {
  48155.             verb: 'export',
  48156.             object_type: 'file',
  48157.             object_id: 'csv',
  48158.             area: 'community_members',
  48159.             adjectvie: 'community_members'
  48160.           };
  48161.           n.props.shouldEmailCsv ? (e.preventDefault(), n.props.exportUserReportCsv(), n.props.emitTrackingEvent(yj(yj({
  48162.           }, t), {
  48163.           }, {
  48164.             adverb: 'email'
  48165.           })), n.setState({
  48166.             modalIsOpen: !0
  48167.           })) : n.props.emitTrackingEvent(yj(yj({
  48168.           }, t), {
  48169.           }, {
  48170.             adverb: 'direct'
  48171.           }))
  48172.         }),
  48173.         Sj(Ej(n), 'closeModal', function () {
  48174.           n.setState({
  48175.             modalIsOpen: !1
  48176.           })
  48177.         }),
  48178.         Sj(Ej(n), 'handleSort', function (e, t) {
  48179.           n.setState({
  48180.             sortColumn: e,
  48181.             sortDir: t,
  48182.             isDisabled: !0
  48183.           }, function () {
  48184.             return n.fetch()
  48185.           }),
  48186.           n.props.emitTrackingEvent({
  48187.             verb: 'click',
  48188.             object_type: 'sort',
  48189.             object_id: e,
  48190.             adjectvie: t,
  48191.             area: 'community_members'
  48192.           })
  48193.         }),
  48194.         Sj(Ej(n), 'fetch', function (e) {
  48195.           n.props.fetchUserReport(yj({
  48196.             forum: pt.a.currentForum,
  48197.             sort: n.state.sortColumn,
  48198.             order: n.state.sortDir
  48199.           }, e))
  48200.         }),
  48201.         Sj(Ej(n), 'fetchMore', function () {
  48202.           n.props.userReport.cursor.hasNext && (n.props.emitTrackingEvent({
  48203.             verb: 'click',
  48204.             object_type: 'button',
  48205.             object_id: 'show_more_results',
  48206.             area: 'community_members'
  48207.           }), n.fetch({
  48208.             cursor: n.props.userReport.cursor.next
  48209.           }))
  48210.         }),
  48211.         Sj(Ej(n), 'getModerationUserFilterUrl', function (e) {
  48212.           return '/admin/moderate/all/search/user%3A'.concat(e.username)
  48213.         }),
  48214.         n
  48215.       }
  48216.       return e = o,
  48217.       (t = [
  48218.         {
  48219.           key: 'componentDidMount',
  48220.           value: function () {
  48221.             this.fetch()
  48222.           }
  48223.         },
  48224.         {
  48225.           key: 'componentWillReceiveProps',
  48226.           value: function (e) {
  48227.             this.props.userReport.isFetching && !e.userReport.isFetching && this.setState({
  48228.               isDisabled: !1
  48229.             })
  48230.           }
  48231.         },
  48232.         {
  48233.           key: 'render',
  48234.           value: function () {
  48235.             var e,
  48236.             t = this,
  48237.             n = C.a.createElement('div', {
  48238.               className: 'card__header-right'
  48239.             }, C.a.createElement('a', {
  48240.               href: this.getExportUrl(),
  48241.               onClick: this.exportCSV,
  48242.               target: '_blank',
  48243.               rel: 'noopener noreferrer',
  48244.               className: 'card__header-content-item -button -right text-semibold text-gray-dark'
  48245.             }, C.a.createElement('span', {
  48246.               className: 'icon-download text-large spacing-right text-gray'
  48247.             }), 'Export .csv')),
  48248.             a = function (e) {
  48249.               return e ? ct() (e).format('MM/DD/YY') : ''
  48250.             },
  48251.             r = function (e) {
  48252.               return e.toLocaleString()
  48253.             },
  48254.             o = 0 === this.props.userReport.users.length ? C.a.createElement('div', {
  48255.               className: 'empty-content-message'
  48256.             }, 'No items') : null;
  48257.             this.state.isDisabled || (this.props.userReport.isFetching ? e = C.a.createElement('div', {
  48258.               className: 'spinner'
  48259.             }) : this.props.userReport.cursor.hasNext && (e = C.a.createElement('button', {
  48260.               className: 'button button-wide button-outline button-medium',
  48261.               onClick: this.fetchMore
  48262.             }, C.a.createElement('span', null, 'Show more results'))));
  48263.             var i = C.a.createElement('span', null, 'Readers logged-in to Disqus who subscribed to your email list using the ', C.a.createElement(v.Link, {
  48264.               to: 'settings/email-subscriptions/',
  48265.               onClick: function () {
  48266.                 t.props.emitTrackingEvent({
  48267.                   verb: 'click',
  48268.                   object_type: 'link',
  48269.                   object_id: 'email_subscriptions',
  48270.                   area: 'community_members'
  48271.                 })
  48272.               }
  48273.             }, 'Email Subscriptions'), ' feature.');
  48274.             return C.a.createElement('div', {
  48275.               className: 'community-table'
  48276.             }, this.state.isDisabled ? C.a.createElement('div', {
  48277.               className: 'overlay'
  48278.             }, C.a.createElement('div', {
  48279.               className: 'spinner'
  48280.             })) : null, C.a.createElement(Bp, {
  48281.               className: 'spacing-bottom',
  48282.               leftTitle: 'Community Members',
  48283.               rightTitle: n,
  48284.               bodyClassName: 'text-medium -overflow-scroll'
  48285.             }, C.a.createElement(ZA, {
  48286.               headers: [
  48287.                 {
  48288.                   key: 'displayName',
  48289.                   content: 'Display Name',
  48290.                   urlFn: this.getModerationUserFilterUrl,
  48291.                   sortable: !1,
  48292.                   colClass: 'text-semibold'
  48293.                 },
  48294.                 {
  48295.                   key: 'engagements',
  48296.                   content: 'Engagements',
  48297.                   formatFn: r
  48298.                 },
  48299.                 {
  48300.                   key: 'comments',
  48301.                   content: 'Comments',
  48302.                   formatFn: r
  48303.                 },
  48304.                 {
  48305.                   key: 'firstEngagement',
  48306.                   content: 'First Engagement',
  48307.                   formatFn: a
  48308.                 },
  48309.                 {
  48310.                   key: 'lastEngagement',
  48311.                   content: 'Last Engagement',
  48312.                   formatFn: a
  48313.                 },
  48314.                 {
  48315.                   key: 'subscribedOn',
  48316.                   content: 'Subscribed On',
  48317.                   formatFn: a,
  48318.                   description: i,
  48319.                   onShowDescription: function () {
  48320.                     t.props.emitTrackingEvent({
  48321.                       verb: 'hover',
  48322.                       object_type: 'button',
  48323.                       object_id: 'subscribed_on',
  48324.                       area: 'community_members'
  48325.                     })
  48326.                   }
  48327.                 },
  48328.                 {
  48329.                   key: 'type',
  48330.                   colClass: 'col__type',
  48331.                   content: 'Type',
  48332.                   formatFn: function (e) {
  48333.                     return C.a.createElement('span', {
  48334.                       className: 'badge--user-label -'.concat(e)
  48335.                     }, 're-engaged' === e ? 'Recovered' : e)
  48336.                   },
  48337.                   sortable: !1
  48338.                 }
  48339.               ].map(function (e) {
  48340.                 return yj(yj({
  48341.                 }, e), {
  48342.                 }, {
  48343.                   sortDir: t.state.sortColumn === e.key ? t.state.sortDir : tD.SORT_NONE
  48344.                 })
  48345.               }),
  48346.               rows: this.props.userReport.users.map(function (e) {
  48347.                 return yj(yj({
  48348.                 }, e), {
  48349.                 }, {
  48350.                   id: e.username
  48351.                 })
  48352.               }),
  48353.               onSort: this.handleSort,
  48354.               reportClick: function (e) {
  48355.                 t.props.emitTrackingEvent({
  48356.                   verb: 'click',
  48357.                   object_type: 'link',
  48358.                   object_id: t.getModerationUserFilterUrl({
  48359.                     username: e.object_id
  48360.                   }),
  48361.                   area: 'community_members'
  48362.                 })
  48363.               }
  48364.             }), o, e), C.a.createElement(_.a, {
  48365.               className: 'admin-modal -clipped -wider',
  48366.               overlayClassName: 'modal-overlay',
  48367.               isOpen: this.state.modalIsOpen,
  48368.               onRequestClose: this.closeModal
  48369.             }, C.a.createElement('div', {
  48370.               className: 'modal-content'
  48371.             }, C.a.createElement('div', {
  48372.               className: 'modal-header align align--between'
  48373.             }, C.a.createElement('h4', {
  48374.               className: 'modal-title'
  48375.             }, 'Export audience'), C.a.createElement('button', {
  48376.               className: 'link-gray',
  48377.               onClick: this.closeModal
  48378.             }, C.a.createElement('span', {
  48379.               className: 'icon-cancel icon__position'
  48380.             }))), C.a.createElement('div', {
  48381.               className: 'modal-body'
  48382.             }, 'We\'re processing your export request! You\'ll receive an email with a link to your export data when it\'s ready. The time it takes to receive this email may vary based on the size of your audience.'))))
  48383.           }
  48384.         }
  48385.       ]) && bj(e.prototype, t),
  48386.       n && bj(e, n),
  48387.       o
  48388.     }();
  48389.     Sj(go, 'propTypes', {
  48390.       userReport: b.a.shape({
  48391.         users: b.a.arrayOf(r).isRequired,
  48392.         cursor: b.a.object.isRequired,
  48393.         isFetching: b.a.bool
  48394.       }).isRequired,
  48395.       fetchUserReport: b.a.func.isRequired,
  48396.       shouldEmailCsv: b.a.bool,
  48397.       exportUserReportCsv: b.a.func.isRequired,
  48398.       emitTrackingEvent: b.a.func.isRequired
  48399.     });
  48400.     var wj = go,
  48401.     yl = function (e) {
  48402.       var t = e.startDate,
  48403.       n = e.endDate,
  48404.       a = e.overviewMetrics,
  48405.       r = e.isAudienceEmailSubscriptionSupported,
  48406.       o = e.emitTrackingEvent,
  48407.       i = function (e) {
  48408.         return e.new + e.returning + e.recovered
  48409.       },
  48410.       e = i(a.current.engagedReaders),
  48411.       i = i(a.previous.engagedReaders);
  48412.       return C.a.createElement(Bp, {
  48413.         className: 'spacing-bottom',
  48414.         leftTitle: 'Overview',
  48415.         rightTitle: C.a.createElement('div', null, C.a.createElement('b', null, 'Past 30 days'), ' (', t, ' - ', n, ')')
  48416.       }, C.a.createElement(PD, {
  48417.         title: 'Comment Readers',
  48418.         metric: a.current.commentReaders,
  48419.         delta: pj(a.previous.commentReaders, a.current.commentReaders),
  48420.         tooltip: 'The number of readers who read the comments section on an article on your site.'
  48421.       }), C.a.createElement(PD, {
  48422.         title: 'Engaged Readers',
  48423.         metric: e,
  48424.         delta: pj(i, e),
  48425.         tooltip: 'Readers who commented or voted on a comment on an article in the past 30 days.'
  48426.       }), C.a.createElement(PD, {
  48427.         title: 'Email Subscribers',
  48428.         metric: r ? a.current.subscribedReaders : null,
  48429.         delta: r ? pj(a.previous.subscribedReaders, a.current.subscribedReaders) : null,
  48430.         tooltip: C.a.createElement(C.a.Fragment, null, 'Readers who subscribed to emails via', C.a.createElement(v.Link, {
  48431.           to: 'settings/email-subscriptions/',
  48432.           onClick: function () {
  48433.             o({
  48434.               verb: 'click',
  48435.               object_type: 'link',
  48436.               object_id: 'email_subscriptions',
  48437.               area: 'topline_audience_metrics'
  48438.             })
  48439.           }
  48440.         }, ' Disqus Email Subscriptions '), 'in the past 30 days.', r ? null : C.a.createElement('div', {
  48441.           className: 'admin-metric__bottom'
  48442.         }, C.a.createElement('p', {
  48443.           className: 'text-gray-light text-huge'
  48444.         }, '0'), C.a.createElement('p', {
  48445.           className: 'admin-metric__delta text-gray-light'
  48446.         }, 'Not enabled for your site')))
  48447.       }))
  48448.     };
  48449.     yl.propTypes = {
  48450.       startDate: b.a.string.isRequired,
  48451.       endDate: b.a.string.isRequired,
  48452.       overviewMetrics: F.isRequired,
  48453.       isAudienceEmailSubscriptionSupported: b.a.bool,
  48454.       emitTrackingEvent: b.a.func.isRequired
  48455.     };
  48456.     var Pj = yl;
  48457.     function kj(e) {
  48458.       return (kj = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  48459.         return typeof e
  48460.       }
  48461.        : function (e) {
  48462.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  48463.       }) (e)
  48464.     }
  48465.     function Nj(t, e) {
  48466.       var n,
  48467.       a = Object.keys(t);
  48468.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  48469.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  48470.       })), a.push.apply(a, n)),
  48471.       a
  48472.     }
  48473.     function Cj(t) {
  48474.       for (var e = 1; e < arguments.length; e++) {
  48475.         var n = null != arguments[e] ? arguments[e] : {
  48476.         };
  48477.         e % 2 ? Nj(Object(n), !0).forEach(function (e) {
  48478.           Tj(t, e, n[e])
  48479.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Nj(Object(n)).forEach(function (e) {
  48480.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  48481.         })
  48482.       }
  48483.       return t
  48484.     }
  48485.     function Rj(e, t) {
  48486.       for (var n = 0; n < t.length; n++) {
  48487.         var a = t[n];
  48488.         a.enumerable = a.enumerable || !1,
  48489.         a.configurable = !0,
  48490.         'value' in a && (a.writable = !0),
  48491.         Object.defineProperty(e, a.key, a)
  48492.       }
  48493.     }
  48494.     function xj(e, t) {
  48495.       return (xj = Object.setPrototypeOf || function (e, t) {
  48496.         return e.__proto__ = t,
  48497.         e
  48498.       }) (e, t)
  48499.     }
  48500.     function Aj(n) {
  48501.       var a = function () {
  48502.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  48503.         if (Reflect.construct.sham) return !1;
  48504.         if ('function' == typeof Proxy) return !0;
  48505.         try {
  48506.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  48507.           ], function () {
  48508.           })),
  48509.           !0
  48510.         } catch (e) {
  48511.           return !1
  48512.         }
  48513.       }();
  48514.       return function () {
  48515.         var e,
  48516.         t = jj(n);
  48517.         return e = a ? (e = jj(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  48518.         t = this,
  48519.         !(e = e) || 'object' !== kj(e) && 'function' != typeof e ? Dj(t) : e
  48520.       }
  48521.     }
  48522.     function Dj(e) {
  48523.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  48524.       return e
  48525.     }
  48526.     function jj(e) {
  48527.       return (jj = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  48528.         return e.__proto__ || Object.getPrototypeOf(e)
  48529.       }) (e)
  48530.     }
  48531.     function Tj(e, t, n) {
  48532.       return t in e ? Object.defineProperty(e, t, {
  48533.         value: n,
  48534.         enumerable: !0,
  48535.         configurable: !0,
  48536.         writable: !0
  48537.       }) : e[t] = n,
  48538.       e
  48539.     }
  48540.     Wi = function () {
  48541.       !function (e, t) {
  48542.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  48543.         e.prototype = Object.create(t && t.prototype, {
  48544.           constructor: {
  48545.             value: e,
  48546.             writable: !0,
  48547.             configurable: !0
  48548.           }
  48549.         }),
  48550.         t && xj(e, t)
  48551.       }(o, A);
  48552.       var e,
  48553.       t,
  48554.       n,
  48555.       r = Aj(o);
  48556.       function o() {
  48557.         var a;
  48558.         !function (e, t) {
  48559.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  48560.         }(this, o);
  48561.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  48562.         return Tj(Dj(a = r.call.apply(r, [
  48563.           this
  48564.         ].concat(t))), 'graph-new', C.a.createRef()),
  48565.         Tj(Dj(a), 'graph-returning', C.a.createRef()),
  48566.         Tj(Dj(a), 'graph-recovered', C.a.createRef()),
  48567.         Tj(Dj(a), 'initCharts', function (e) {
  48568.           var n;
  48569.           !a['graph-new'].current.parentElement.clientHeight && (e || 0) < uj ? setTimeout(a.initCharts.bind(Dj(a), (e || 0) + 1), 0) : (n = Math.max.apply(null, Object.keys(a.props.overviewMetrics.current.engagedReaders).map(function (e) {
  48570.             return a.props.overviewMetrics.current.engagedReaders[e]
  48571.           })), a.charts = mj.reduce(Function.bind.call(function (e, t) {
  48572.             return e[t] = Ed.a.generate(Cj(Cj({
  48573.             }, fj), {
  48574.             }, {
  48575.               axis: Cj(Cj({
  48576.               }, fj.axis), {
  48577.               }, {
  48578.                 y: Cj(Cj({
  48579.                 }, fj.axis.y), {
  48580.                 }, {
  48581.                   max: n
  48582.                 })
  48583.               }),
  48584.               bindto: a['graph-'.concat(t)].current,
  48585.               data: a.getGraphData(t)
  48586.             })),
  48587.             e
  48588.           }, Dj(a)), {
  48589.           }))
  48590.         }),
  48591.         Tj(Dj(a), 'getGraphData', function (e) {
  48592.           return {
  48593.             columns: [
  48594.               [''.concat(e, 'EngagedReaders'),
  48595.               a.props.overviewMetrics.current.engagedReaders[e]]
  48596.             ],
  48597.             type: 'bar',
  48598.             labels: !0,
  48599.             colors: Tj({
  48600.             }, ''.concat(e, 'EngagedReaders'), dj[e])
  48601.           }
  48602.         }),
  48603.         Tj(Dj(a), 'getEngagementReadersDelta', function (e) {
  48604.           return pj(a.props.overviewMetrics.previous.engagedReaders[e], a.props.overviewMetrics.current.engagedReaders[e])
  48605.         }),
  48606.         a
  48607.       }
  48608.       return e = o,
  48609.       (t = [
  48610.         {
  48611.           key: 'componentDidMount',
  48612.           value: function () {
  48613.             this.initCharts()
  48614.           }
  48615.         },
  48616.         {
  48617.           key: 'componentDidUpdate',
  48618.           value: function () {
  48619.             var t = this;
  48620.             this.charts && Object.keys(this.charts).forEach(function (e) {
  48621.               t.charts[e].load(t.getGraphData(e))
  48622.             })
  48623.           }
  48624.         },
  48625.         {
  48626.           key: 'componentWillUnmount',
  48627.           value: function () {
  48628.             var t = this;
  48629.             this.charts && Object.keys(this.charts).forEach(function (e) {
  48630.               t.charts[e].destroy()
  48631.             })
  48632.           }
  48633.         },
  48634.         {
  48635.           key: 'render',
  48636.           value: function () {
  48637.             return C.a.createElement(Bp, {
  48638.               className: 'spacing-bottom',
  48639.               leftTitle: 'Snapshot of Engaged Readers',
  48640.               rightTitle: C.a.createElement('div', null, C.a.createElement('b', null, 'Past 30 days'), ' (', this.props.startDate, ' - ', this.props.endDate, ')')
  48641.             }, C.a.createElement('div', {
  48642.               className: 'readers-snapshot'
  48643.             }, C.a.createElement('div', null, C.a.createElement(PD, {
  48644.               title: 'New',
  48645.               delta: this.getEngagementReadersDelta('new')
  48646.             }, 'Readers who engaged for the first time in the past 30 days.'), C.a.createElement('div', {
  48647.               className: 'readers-snapshot__graph'
  48648.             }, C.a.createElement('div', {
  48649.               ref: this['graph-new']
  48650.             }))), C.a.createElement('div', null, C.a.createElement(PD, {
  48651.               title: 'Returning',
  48652.               delta: this.getEngagementReadersDelta('returning')
  48653.             }, 'Readers who engaged in the past 30 days and prior 30 days.'), C.a.createElement('div', {
  48654.               className: 'readers-snapshot__graph'
  48655.             }, C.a.createElement('div', {
  48656.               ref: this['graph-returning']
  48657.             }))), C.a.createElement('div', null, C.a.createElement(PD, {
  48658.               title: 'Recovered',
  48659.               delta: this.getEngagementReadersDelta('recovered')
  48660.             }, 'Readers who engaged in the past 30 days but not in the prior 30 days.'), C.a.createElement('div', {
  48661.               className: 'readers-snapshot__graph'
  48662.             }, C.a.createElement('div', {
  48663.               ref: this['graph-recovered']
  48664.             })))))
  48665.           }
  48666.         }
  48667.       ]) && Rj(e.prototype, t),
  48668.       n && Rj(e, n),
  48669.       o
  48670.     }();
  48671.     Tj(Wi, 'propTypes', {
  48672.       startDate: b.a.string.isRequired,
  48673.       endDate: b.a.string.isRequired,
  48674.       overviewMetrics: F.isRequired
  48675.     });
  48676.     var Ij = Wi;
  48677.     function qj(e) {
  48678.       return (qj = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  48679.         return typeof e
  48680.       }
  48681.        : function (e) {
  48682.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  48683.       }) (e)
  48684.     }
  48685.     function Fj(e) {
  48686.       return function (e) {
  48687.         if (Array.isArray(e)) return Lj(e)
  48688.       }(e) || function (e) {
  48689.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  48690.       }(e) || function (e, t) {
  48691.         if (e) {
  48692.           if ('string' == typeof e) return Lj(e, t);
  48693.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  48694.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Lj(e, t) : void 0
  48695.         }
  48696.       }(e) || function () {
  48697.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  48698.       }()
  48699.     }
  48700.     function Lj(e, t) {
  48701.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  48702.       return a
  48703.     }
  48704.     function Uj(e, t) {
  48705.       for (var n = 0; n < t.length; n++) {
  48706.         var a = t[n];
  48707.         a.enumerable = a.enumerable || !1,
  48708.         a.configurable = !0,
  48709.         'value' in a && (a.writable = !0),
  48710.         Object.defineProperty(e, a.key, a)
  48711.       }
  48712.     }
  48713.     function Mj(e, t) {
  48714.       return (Mj = Object.setPrototypeOf || function (e, t) {
  48715.         return e.__proto__ = t,
  48716.         e
  48717.       }) (e, t)
  48718.     }
  48719.     function Bj(n) {
  48720.       var a = function () {
  48721.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  48722.         if (Reflect.construct.sham) return !1;
  48723.         if ('function' == typeof Proxy) return !0;
  48724.         try {
  48725.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  48726.           ], function () {
  48727.           })),
  48728.           !0
  48729.         } catch (e) {
  48730.           return !1
  48731.         }
  48732.       }();
  48733.       return function () {
  48734.         var e,
  48735.         t = Hj(n);
  48736.         return e = a ? (e = Hj(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  48737.         t = this,
  48738.         !(e = e) || 'object' !== qj(e) && 'function' != typeof e ? zj(t) : e
  48739.       }
  48740.     }
  48741.     function zj(e) {
  48742.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  48743.       return e
  48744.     }
  48745.     function Hj(e) {
  48746.       return (Hj = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  48747.         return e.__proto__ || Object.getPrototypeOf(e)
  48748.       }) (e)
  48749.     }
  48750.     function Gj(e, t, n) {
  48751.       return t in e ? Object.defineProperty(e, t, {
  48752.         value: n,
  48753.         enumerable: !0,
  48754.         configurable: !0,
  48755.         writable: !0
  48756.       }) : e[t] = n,
  48757.       e
  48758.     }
  48759.     var Vj = function (e) {
  48760.       return e.toLocaleString()
  48761.     },
  48762.     Wj = {
  48763.       key: 'date_utc',
  48764.       name: 'Date (UTC)',
  48765.       formatter: function (e) {
  48766.         return ct.a.utc(e).format('MMM Do YYYY')
  48767.       }
  48768.     },
  48769.     Ru = function () {
  48770.       !function (e, t) {
  48771.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  48772.         e.prototype = Object.create(t && t.prototype, {
  48773.           constructor: {
  48774.             value: e,
  48775.             writable: !0,
  48776.             configurable: !0
  48777.           }
  48778.         }),
  48779.         t && Mj(e, t)
  48780.       }(o, A);
  48781.       var e,
  48782.       t,
  48783.       n,
  48784.       r = Bj(o);
  48785.       function o() {
  48786.         var n;
  48787.         !function (e, t) {
  48788.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  48789.         }(this, o);
  48790.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  48791.         return Gj(zj(n = r.call.apply(r, [
  48792.           this
  48793.         ].concat(t))), 'state', {
  48794.           group: 'day',
  48795.           startDate: ct() ().utc().subtract(1, 'month'),
  48796.           endDate: ct() ().utc()
  48797.         }),
  48798.         Gj(zj(n), 'initGraph', function (e) {
  48799.           n.ref && (!n.ref.graph.parentElement.clientWidth && (e || 0) < uj ? setTimeout(n.initGraph.bind(zj(n), (e || 0) + 1), 0) : n.chart = Ed.a.generate({
  48800.             bindto: n.ref.graph,
  48801.             data: n.getGraphData(),
  48802.             color: {
  48803.               pattern: [
  48804.                 dj.new,
  48805.                 dj.returning,
  48806.                 dj.recovered
  48807.               ]
  48808.             },
  48809.             transition: {
  48810.               duration: 0
  48811.             },
  48812.             axis: {
  48813.               y: {
  48814.                 min: 0,
  48815.                 padding: {
  48816.                   bottom: 0
  48817.                 },
  48818.                 tick: {
  48819.                   format: Vj
  48820.                 }
  48821.               },
  48822.               x: {
  48823.                 type: 'timeseries',
  48824.                 tick: {
  48825.                   format: Wj.formatter
  48826.                 }
  48827.               }
  48828.             },
  48829.             point: {
  48830.               show: !1
  48831.             }
  48832.           }))
  48833.         }),
  48834.         Gj(zj(n), 'trackHover', function () {
  48835.           n.isHoverTracked || (n.props.emitTrackingEvent({
  48836.             verb: 'hover',
  48837.             object_type: 'area',
  48838.             object_id: 'community_growth',
  48839.             adjectvie: 'engagements_over_time',
  48840.             area: 'engaged_readers'
  48841.           }), n.isHoverTracked = !0)
  48842.         }),
  48843.         Gj(zj(n), 'getGraphData', function () {
  48844.           return {
  48845.             x: 'dates',
  48846.             columns: [
  48847.               ['dates'].concat(Fj(n.props.engagementReport.new.map(function (e) {
  48848.                 return e[0]
  48849.               })))
  48850.             ].concat(Fj(mj.map(function (e) {
  48851.               return [e].concat(Fj(n.props.engagementReport[e].map(function (e) {
  48852.                 return e[1]
  48853.               })))
  48854.             }))),
  48855.             names: {
  48856.               new : 'New',
  48857.               returning: 'Returning',
  48858.               recovered: 'Recovered'
  48859.             },
  48860.             onmouseover: n.trackHover
  48861.           }
  48862.         }),
  48863.         Gj(zj(n), 'fetchUserEngagementReport', function () {
  48864.           n.props.fetchUserEngagementReport({
  48865.             interval: 'day' === n.state.group ? 'daily' : 'monthly',
  48866.             start: n.state.startDate.toISOString(),
  48867.             end: n.state.endDate.toISOString()
  48868.           })
  48869.         }),
  48870.         Gj(zj(n), 'onGroupChange', function (e) {
  48871.           n.props.emitTrackingEvent({
  48872.             verb: 'click',
  48873.             object_type: 'option',
  48874.             object_id: 'day' === e ? 'daily' : 'monthly',
  48875.             area: 'engaged_readers'
  48876.           }),
  48877.           n.setState({
  48878.             group: e,
  48879.             startDate: 'day' === e ? ct() ().utc().subtract(1, 'month') : ct() ().utc().subtract(1, 'year').startOf('month')
  48880.           }, n.fetchUserEngagementReport)
  48881.         }),
  48882.         Gj(zj(n), 'onDateChange', function (e, t) {
  48883.           n.setState({
  48884.             startDate: e,
  48885.             endDate: t
  48886.           }, n.fetchUserEngagementReport)
  48887.         }),
  48888.         n
  48889.       }
  48890.       return e = o,
  48891.       (t = [
  48892.         {
  48893.           key: 'componentDidMount',
  48894.           value: function () {
  48895.             this.fetchUserEngagementReport(),
  48896.             this.initGraph()
  48897.           }
  48898.         },
  48899.         {
  48900.           key: 'componentDidUpdate',
  48901.           value: function () {
  48902.             this.chart ? this.chart.load(this.getGraphData()) : this.initGraph()
  48903.           }
  48904.         },
  48905.         {
  48906.           key: 'componentWillUnmount',
  48907.           value: function () {
  48908.             this.chart && (this.chart = this.chart.destroy())
  48909.           }
  48910.         },
  48911.         {
  48912.           key: 'render',
  48913.           value: function () {
  48914.             var t = this;
  48915.             return Object.keys(this.props.engagementReport).some(function (e) {
  48916.               return t.props.engagementReport[e].length
  48917.             }) ? C.a.createElement(Bp, {
  48918.               className: 'engaged-readers spacing-bottom',
  48919.               leftTitle: 'Engaged Readers Over Time',
  48920.               rightTitle: C.a.createElement('div', {
  48921.                 className: 'card__header-right'
  48922.               }, C.a.createElement(Zp, {
  48923.                 dateWrapperClass: 'card__header-datepicker',
  48924.                 minDate: ct() ().utc().subtract(1, 'year'),
  48925.                 maxDate: ct() ().utc(),
  48926.                 startDate: this.state.startDate,
  48927.                 endDate: this.state.endDate,
  48928.                 group: this.state.group,
  48929.                 onGroupChange: this.onGroupChange,
  48930.                 onDateChange: this.onDateChange
  48931.               }))
  48932.             }, C.a.createElement('div', {
  48933.               ref: function (e) {
  48934.                 t.ref = t.ref || {
  48935.                 },
  48936.                 t.ref.graph = e
  48937.               }
  48938.             })) : null
  48939.           }
  48940.         }
  48941.       ]) && Uj(e.prototype, t),
  48942.       n && Uj(e, n),
  48943.       o
  48944.     }();
  48945.     Gj(Ru, 'propTypes', {
  48946.       engagementReport: rc.isRequired,
  48947.       fetchUserEngagementReport: b.a.func.isRequired,
  48948.       emitTrackingEvent: b.a.func.isRequired
  48949.     });
  48950.     var Yj = Ru;
  48951.     function Qj(e) {
  48952.       return (Qj = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  48953.         return typeof e
  48954.       }
  48955.        : function (e) {
  48956.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  48957.       }) (e)
  48958.     }
  48959.     function Kj(t, e) {
  48960.       var n,
  48961.       a = Object.keys(t);
  48962.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  48963.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  48964.       })), a.push.apply(a, n)),
  48965.       a
  48966.     }
  48967.     function Jj(t) {
  48968.       for (var e = 1; e < arguments.length; e++) {
  48969.         var n = null != arguments[e] ? arguments[e] : {
  48970.         };
  48971.         e % 2 ? Kj(Object(n), !0).forEach(function (e) {
  48972.           nT(t, e, n[e])
  48973.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Kj(Object(n)).forEach(function (e) {
  48974.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  48975.         })
  48976.       }
  48977.       return t
  48978.     }
  48979.     function $j(e, t) {
  48980.       for (var n = 0; n < t.length; n++) {
  48981.         var a = t[n];
  48982.         a.enumerable = a.enumerable || !1,
  48983.         a.configurable = !0,
  48984.         'value' in a && (a.writable = !0),
  48985.         Object.defineProperty(e, a.key, a)
  48986.       }
  48987.     }
  48988.     function Zj(e, t) {
  48989.       return (Zj = Object.setPrototypeOf || function (e, t) {
  48990.         return e.__proto__ = t,
  48991.         e
  48992.       }) (e, t)
  48993.     }
  48994.     function Xj(n) {
  48995.       var a = function () {
  48996.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  48997.         if (Reflect.construct.sham) return !1;
  48998.         if ('function' == typeof Proxy) return !0;
  48999.         try {
  49000.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  49001.           ], function () {
  49002.           })),
  49003.           !0
  49004.         } catch (e) {
  49005.           return !1
  49006.         }
  49007.       }();
  49008.       return function () {
  49009.         var e,
  49010.         t = tT(n);
  49011.         return e = a ? (e = tT(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  49012.         t = this,
  49013.         !(e = e) || 'object' !== Qj(e) && 'function' != typeof e ? eT(t) : e
  49014.       }
  49015.     }
  49016.     function eT(e) {
  49017.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  49018.       return e
  49019.     }
  49020.     function tT(e) {
  49021.       return (tT = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  49022.         return e.__proto__ || Object.getPrototypeOf(e)
  49023.       }) (e)
  49024.     }
  49025.     function nT(e, t, n) {
  49026.       return t in e ? Object.defineProperty(e, t, {
  49027.         value: n,
  49028.         enumerable: !0,
  49029.         configurable: !0,
  49030.         writable: !0
  49031.       }) : e[t] = n,
  49032.       e
  49033.     }
  49034.     var aT = 200,
  49035.     s = function () {
  49036.       !function (e, t) {
  49037.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  49038.         e.prototype = Object.create(t && t.prototype, {
  49039.           constructor: {
  49040.             value: e,
  49041.             writable: !0,
  49042.             configurable: !0
  49043.           }
  49044.         }),
  49045.         t && Zj(e, t)
  49046.       }(o, A);
  49047.       var e,
  49048.       t,
  49049.       n,
  49050.       r = Xj(o);
  49051.       function o() {
  49052.         var a;
  49053.         !function (e, t) {
  49054.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  49055.         }(this, o);
  49056.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  49057.         return nT(eT(a = r.call.apply(r, [
  49058.           this
  49059.         ].concat(t))), 'initViewEvents', function () {
  49060.           a.onScroll = je.a.debounce(a.onScroll, 100),
  49061.           window.addEventListener('scroll', a.onScroll);
  49062.           var e = {
  49063.             verb: 'view',
  49064.             object_type: 'area'
  49065.           };
  49066.           a.viewEvents = [
  49067.             {
  49068.               ref: 'readersTimeline',
  49069.               onView: a.props.emitTrackingEvent.bind(eT(a), Jj(Jj({
  49070.               }, e), {
  49071.               }, {
  49072.                 object_id: 'community_growth',
  49073.                 area: 'engaged_readers'
  49074.               }))
  49075.             },
  49076.             {
  49077.               ref: 'community',
  49078.               onView: a.props.emitTrackingEvent.bind(eT(a), Jj(Jj({
  49079.               }, e), {
  49080.               }, {
  49081.                 object_id: 'community_members',
  49082.                 area: 'community_members'
  49083.               }))
  49084.             }
  49085.           ]
  49086.         }),
  49087.         nT(eT(a), 'onScroll', function () {
  49088.           a.viewEvents = a.viewEvents.filter(function (e) {
  49089.             var t = window.innerHeight || window.document.documentElement.clientHeight,
  49090.             n = a.ref[e.ref] && l.a.findDOMNode(a.ref[e.ref]),
  49091.             n = n && n.getBoundingClientRect();
  49092.             return !n || t - n.top < aT || n.bottom < aT || (e.onView(), !1)
  49093.           }),
  49094.           a.viewEvents.length || window.removeEventListener('scroll', a.onScroll)
  49095.         }),
  49096.         nT(eT(a), 'isSaasFeatureSupported', function (e) {
  49097.           if (!a.props.selection.organization) return !1;
  49098.           var t = a.props.saasFeatures[a.props.selection.organization.id];
  49099.           return t && t[e]
  49100.         }),
  49101.         a
  49102.       }
  49103.       return e = o,
  49104.       (t = [
  49105.         {
  49106.           key: 'componentDidMount',
  49107.           value: function () {
  49108.             this.isSaasFeatureSupported('advancedAnalytics') ? (this.props.fetchOverviewMetrics(), this.props.emitTrackingEvent({
  49109.               verb: 'view',
  49110.               object_type: 'page',
  49111.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  49112.             }), this.initViewEvents()) : this.props.history.push(ho.getRoute('/analytics/comments/'))
  49113.           }
  49114.         },
  49115.         {
  49116.           key: 'componentWillUnmount',
  49117.           value: function () {
  49118.             window.removeEventListener('scroll', this.onScroll)
  49119.           }
  49120.         },
  49121.         {
  49122.           key: 'render',
  49123.           value: function () {
  49124.             var t = this;
  49125.             if (!this.props.overviewMetrics && !this.props.engagementReport && !this.props.userReport.users.length) return C.a.createElement('div', {
  49126.               className: 'section-contained'
  49127.             }, C.a.createElement('div', {
  49128.               className: 'loading-container'
  49129.             }, C.a.createElement(Ji, null)));
  49130.             if (this.props.organization && this.props.organization.pollsOnly) return C.a.createElement(Cm, {
  49131.               isPolls: !1,
  49132.               organization: this.props.organization
  49133.             });
  49134.             var e = ct() ().subtract(1, 'month').format('MM/DD/YY'),
  49135.             n = ct() ().format('MM/DD/YY');
  49136.             return C.a.createElement('div', {
  49137.               className: 'section-contained audience-analytics'
  49138.             }, this.props.overviewMetrics ? C.a.createElement(Pj, {
  49139.               startDate: e,
  49140.               endDate: n,
  49141.               overviewMetrics: this.props.overviewMetrics,
  49142.               isAudienceEmailSubscriptionSupported: this.isSaasFeatureSupported('audienceEmailTransfer'),
  49143.               emitTrackingEvent: this.props.emitTrackingEvent
  49144.             }) : null, this.props.overviewMetrics ? C.a.createElement(Ij, {
  49145.               startDate: e,
  49146.               endDate: n,
  49147.               overviewMetrics: this.props.overviewMetrics
  49148.             }) : null, C.a.createElement(Yj, {
  49149.               engagementReport: this.props.engagementReport,
  49150.               fetchUserEngagementReport: this.props.fetchUserEngagementReport,
  49151.               emitTrackingEvent: this.props.emitTrackingEvent,
  49152.               ref: function (e) {
  49153.                 t.ref = t.ref || {
  49154.                 },
  49155.                 t.ref.readersTimeline = e
  49156.               }
  49157.             }), C.a.createElement(wj, {
  49158.               userReport: this.props.userReport,
  49159.               fetchUserReport: this.props.fetchUserReport,
  49160.               shouldEmailCsv: this.props.overviewMetrics && this.props.overviewMetrics.userExportEmail,
  49161.               exportUserReportCsv: this.props.exportUserReportCsv,
  49162.               emitTrackingEvent: this.props.emitTrackingEvent,
  49163.               ref: function (e) {
  49164.                 t.ref = t.ref || {
  49165.                 },
  49166.                 t.ref.community = e
  49167.               }
  49168.             }))
  49169.           }
  49170.         }
  49171.       ]) && $j(e.prototype, t),
  49172.       n && $j(e, n),
  49173.       o
  49174.     }();
  49175.     nT(s, 'propTypes', {
  49176.       overviewMetrics: F,
  49177.       engagementReport: rc.isRequired,
  49178.       userReport: b.a.shape({
  49179.         users: b.a.arrayOf(r).isRequired,
  49180.         cursor: b.a.object.isRequired,
  49181.         isFetching: b.a.bool
  49182.       }).isRequired,
  49183.       fetchOverviewMetrics: b.a.func.isRequired,
  49184.       fetchUserReport: b.a.func.isRequired,
  49185.       fetchUserEngagementReport: b.a.func.isRequired,
  49186.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  49187.       exportUserReportCsv: b.a.func.isRequired,
  49188.       emitTrackingEvent: b.a.func.isRequired,
  49189.       history: b.a.object.isRequired,
  49190.       selection: ht.isRequired
  49191.     });
  49192.     var rT = Object(u.connect) (function (e) {
  49193.       var t = e.saasFeatures,
  49194.       n = e.selection;
  49195.       return Jj(Jj({
  49196.       }, e.audienceAnalytics), {
  49197.       }, {
  49198.         saasFeatures: t,
  49199.         organization: n.organization
  49200.       })
  49201.     }, {
  49202.       fetchOverviewMetrics: function (n) {
  49203.         return function (t, e) {
  49204.           cj(n, e(), function (e) {
  49205.             io.a.call('forums/admin/reports/userOverview', e).success(function (e) {
  49206.               t({
  49207.                 type: M.onFetchOverviewMetrics,
  49208.                 response: e.response
  49209.               })
  49210.             })
  49211.           })
  49212.         }
  49213.       },
  49214.       fetchUserReport: function (n) {
  49215.         return function (t, e) {
  49216.           t({
  49217.             type: M.fetchingUserReport
  49218.           }),
  49219.           cj(n, e(), function (e) {
  49220.             io.a.call('forums/admin/reports/userReport', e).success(function (e) {
  49221.               t({
  49222.                 type: M.onFetchUserReport,
  49223.                 response: e.response,
  49224.                 cursor: e.cursor,
  49225.                 fetchMore: !!n.cursor
  49226.               })
  49227.             })
  49228.           })
  49229.         }
  49230.       },
  49231.       fetchUserEngagementReport: function (n) {
  49232.         return function (t, e) {
  49233.           cj(n, e(), function (e) {
  49234.             io.a.call('forums/admin/reports/userEngagementReport', e).success(function (e) {
  49235.               t({
  49236.                 type: M.onFetchEngagementReport,
  49237.                 response: e.response,
  49238.                 start: n.start,
  49239.                 end: n.end
  49240.               })
  49241.             })
  49242.           })
  49243.         }
  49244.       },
  49245.       exportUserReportCsv: function () {
  49246.         return function (e, t) {
  49247.           cj({
  49248.           }, t(), function (e) {
  49249.             io.a.call('forums/admin/reports/userReportEmailExport', e)
  49250.           })
  49251.         }
  49252.       }
  49253.     }) (Fo() (s));
  49254.     function oT(t, e) {
  49255.       var n,
  49256.       a = Object.keys(t);
  49257.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  49258.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  49259.       })), a.push.apply(a, n)),
  49260.       a
  49261.     }
  49262.     function iT(a) {
  49263.       for (var e = 1; e < arguments.length; e++) {
  49264.         var r = null != arguments[e] ? arguments[e] : {
  49265.         };
  49266.         e % 2 ? oT(Object(r), !0).forEach(function (e) {
  49267.           var t,
  49268.           n;
  49269.           n = r[t = e],
  49270.           t in (e = a) ? Object.defineProperty(e, t, {
  49271.             value: n,
  49272.             enumerable: !0,
  49273.             configurable: !0,
  49274.             writable: !0
  49275.           }) : e[t] = n
  49276.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : oT(Object(r)).forEach(function (e) {
  49277.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  49278.         })
  49279.       }
  49280.       return a
  49281.     }
  49282.     function sT(e, t, n) {
  49283.       t.selection.forum && n(e = {
  49284.         data: iT({
  49285.           forum: t.selection.forum.shortname
  49286.         }, e)
  49287.       })
  49288.     }
  49289.     function lT(e) {
  49290.       var n = {
  49291.       };
  49292.       return e.standard_series.forEach(function (e) {
  49293.         var t = e[2];
  49294.         'https' != t.substring(0, 5) && (n[t] || (n[t] = {
  49295.           date: '',
  49296.           reactions: [
  49297.           ],
  49298.           authenticated: [
  49299.           ],
  49300.           anonymous: [
  49301.           ],
  49302.           threadId: null
  49303.         }), (t = n[t]).date || (t.date = e[0].split('T') [0]), t.threadId || (t.threadId = e[1]), t.reactions.push(e[3]), t.authenticated.push(e[4]), t.anonymous.push(e[5]))
  49304.       }),
  49305.       n
  49306.     }
  49307.     var cT = 5,
  49308.     uT = {
  49309.       authenticated: '#8BCF93',
  49310.       anonymous: '#2E9FFF'
  49311.     },
  49312.     pT = [
  49313.       'anon_series',
  49314.       'logged_in_series'
  49315.     ],
  49316.     go = function (e, t, n, a, r) {
  49317.       t = e[t];
  49318.       if (!Array.isArray(t) || 2 !== t.length || 'string' != typeof t[0] || 'number' != typeof t[1]) return Error('The '.concat(a, ' `').concat(r, '` in `').concat(n, '` is expected to be of the form [\'YYYY-MM-DD\', count].'))
  49319.     },
  49320.     yl = b.a.shape({
  49321.       authenticated: b.a.arrayOf(go),
  49322.       anonymous: b.a.arrayOf(go)
  49323.     }),
  49324.     Wi = b.a.object,
  49325.     Ru = b.a.object;
  49326.     function dT(e) {
  49327.       return (dT = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  49328.         return typeof e
  49329.       }
  49330.        : function (e) {
  49331.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  49332.       }) (e)
  49333.     }
  49334.     function mT(e) {
  49335.       return function (e) {
  49336.         if (Array.isArray(e)) return fT(e)
  49337.       }(e) || function (e) {
  49338.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  49339.       }(e) || function (e, t) {
  49340.         if (e) {
  49341.           if ('string' == typeof e) return fT(e, t);
  49342.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  49343.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? fT(e, t) : void 0
  49344.         }
  49345.       }(e) || function () {
  49346.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  49347.       }()
  49348.     }
  49349.     function fT(e, t) {
  49350.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  49351.       return a
  49352.     }
  49353.     function hT(e, t) {
  49354.       for (var n = 0; n < t.length; n++) {
  49355.         var a = t[n];
  49356.         a.enumerable = a.enumerable || !1,
  49357.         a.configurable = !0,
  49358.         'value' in a && (a.writable = !0),
  49359.         Object.defineProperty(e, a.key, a)
  49360.       }
  49361.     }
  49362.     function gT(e, t) {
  49363.       return (gT = Object.setPrototypeOf || function (e, t) {
  49364.         return e.__proto__ = t,
  49365.         e
  49366.       }) (e, t)
  49367.     }
  49368.     function yT(n) {
  49369.       var a = function () {
  49370.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  49371.         if (Reflect.construct.sham) return !1;
  49372.         if ('function' == typeof Proxy) return !0;
  49373.         try {
  49374.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  49375.           ], function () {
  49376.           })),
  49377.           !0
  49378.         } catch (e) {
  49379.           return !1
  49380.         }
  49381.       }();
  49382.       return function () {
  49383.         var e,
  49384.         t = vT(n);
  49385.         return e = a ? (e = vT(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  49386.         t = this,
  49387.         !(e = e) || 'object' !== dT(e) && 'function' != typeof e ? bT(t) : e
  49388.       }
  49389.     }
  49390.     function bT(e) {
  49391.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  49392.       return e
  49393.     }
  49394.     function vT(e) {
  49395.       return (vT = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  49396.         return e.__proto__ || Object.getPrototypeOf(e)
  49397.       }) (e)
  49398.     }
  49399.     function _T(e, t, n) {
  49400.       return t in e ? Object.defineProperty(e, t, {
  49401.         value: n,
  49402.         enumerable: !0,
  49403.         configurable: !0,
  49404.         writable: !0
  49405.       }) : e[t] = n,
  49406.       e
  49407.     }
  49408.     var ET = function (e) {
  49409.       return e.toLocaleString()
  49410.     },
  49411.     OT = {
  49412.       key: 'date_utc',
  49413.       name: 'Date (UTC)',
  49414.       formatter: function (e) {
  49415.         return ct.a.utc(e).format('MMM Do YYYY')
  49416.       }
  49417.     },
  49418.     F = function () {
  49419.       !function (e, t) {
  49420.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  49421.         e.prototype = Object.create(t && t.prototype, {
  49422.           constructor: {
  49423.             value: e,
  49424.             writable: !0,
  49425.             configurable: !0
  49426.           }
  49427.         }),
  49428.         t && gT(e, t)
  49429.       }(r, A);
  49430.       var e,
  49431.       t,
  49432.       n,
  49433.       a = yT(r);
  49434.       function r() {
  49435.         var i;
  49436.         !function (e, t) {
  49437.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  49438.         }(this, r);
  49439.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  49440.         return _T(bT(i = a.call.apply(a, [
  49441.           this
  49442.         ].concat(t))), 'state', {
  49443.           group: 'day',
  49444.           startDate: ct() ().utc().subtract(1, 'month'),
  49445.           endDate: ct() ().utc()
  49446.         }),
  49447.         _T(bT(i), 'initGraph', function (e) {
  49448.           i.ref && (!i.ref.graph.parentElement.clientWidth && (e || 0) < cT ? setTimeout(i.initGraph.bind(bT(i), (e || 0) + 1), 0) : (e = {
  49449.             date: {
  49450.               padding: {
  49451.                 left: - 0.5
  49452.               },
  49453.               label: {
  49454.                 text: 'Sorted by Dates',
  49455.                 position: 'inner-left'
  49456.               },
  49457.               type: 'timeseries',
  49458.               tick: {
  49459.                 format: OT.formatter
  49460.               }
  49461.             },
  49462.             thread: {
  49463.               padding: {
  49464.                 left: - 0.5,
  49465.                 bottom: 100
  49466.               },
  49467.               label: {
  49468.                 text: 'Up to Last 30 Threads (Hover for Titles)',
  49469.                 position: 'inner-left'
  49470.               },
  49471.               tick: {
  49472.                 centered: !0,
  49473.                 fit: !1,
  49474.                 rotate: - 45,
  49475.                 values: [
  49476.                 ],
  49477.                 outer: !1
  49478.               },
  49479.               type: 'category'
  49480.             }
  49481.           }, i.chart = Ed.a.generate({
  49482.             bindto: i.ref.graph,
  49483.             data: 'thread' === i.state.group ? i.getThreadGraphData() : i.getDateGraphData(),
  49484.             color: {
  49485.               pattern: [
  49486.                 uT.anonymous,
  49487.                 uT.authenticated
  49488.               ]
  49489.             },
  49490.             transition: {
  49491.               duration: 0
  49492.             },
  49493.             legend: {
  49494.               position: 'inset'
  49495.             },
  49496.             padding: {
  49497.               bottom: 'thread' === i.state.group ? 75 : 0,
  49498.               right: 'thread' === i.state.group ? 0 : 20
  49499.             },
  49500.             axis: {
  49501.               y: {
  49502.                 min: 0,
  49503.                 padding: {
  49504.                   bottom: 1.5,
  49505.                   right: 5
  49506.                 },
  49507.                 tick: {
  49508.                   format: ET
  49509.                 },
  49510.                 label: {
  49511.                   text: 'Total Reactions Count',
  49512.                   position: 'outer-bottom'
  49513.                 }
  49514.               },
  49515.               x: 'thread' === i.state.group ? e.thread : e.date
  49516.             },
  49517.             point: {
  49518.               show: !1
  49519.             }
  49520.           })))
  49521.         }),
  49522.         _T(bT(i), 'trackHover', function () {
  49523.           i.isHoverTracked || (i.props.emitTrackingEvent({
  49524.             verb: 'hover',
  49525.             object_type: 'area',
  49526.             object_id: 'reactions_analytics',
  49527.             adjective: 'total_reactions_by_date_or_thread',
  49528.             area: 'total_reactions_section'
  49529.           }), i.isHoverTracked = !0)
  49530.         }),
  49531.         _T(bT(i), 'getDateGraphData', function () {
  49532.           return {
  49533.             x: 'dates',
  49534.             columns: [
  49535.               ['dates'].concat(mT(i.props.totalReactionsReportByDate.anon_series.map(function (e) {
  49536.                 return e[0]
  49537.               })))
  49538.             ].concat(mT(pT.map(function (e) {
  49539.               return [e].concat(mT(i.props.totalReactionsReportByDate[e].map(function (e) {
  49540.                 return e[1]
  49541.               })))
  49542.             }))),
  49543.             types: {
  49544.               anon_series: 'area',
  49545.               logged_in_series: 'area'
  49546.             },
  49547.             names: {
  49548.               logged_in_series: 'Authenticated',
  49549.               anon_series: 'Anonymous'
  49550.             },
  49551.             groups: [
  49552.               ['logged_in_series',
  49553.               'anon_series']
  49554.             ],
  49555.             onmouseover: i.trackHover
  49556.           }
  49557.         }),
  49558.         _T(bT(i), 'formatThreadTitle', function (e) {
  49559.           var n = e.split('_');
  49560.           return n.map(function (e, t) {
  49561.             e && (n[t] = e[0].toUpperCase() + e.slice(1))
  49562.           }),
  49563.           n.join(' ')
  49564.         }),
  49565.         _T(bT(i), 'getThreadGraphData', function () {
  49566.           var n = i.props.totalReactionsReportByThread,
  49567.           a = Object.keys(n),
  49568.           r = [
  49569.             'anonymous'
  49570.           ],
  49571.           o = [
  49572.             'authenticated'
  49573.           ];
  49574.           return a.map(function (e, t) {
  49575.             r.push(n[e].anonymous),
  49576.             o.push(n[e].authenticated),
  49577.             a[t] = ''.concat(n[e].date, ': ').concat(i.formatThreadTitle(e))
  49578.           }),
  49579.           {
  49580.             x: 'threads',
  49581.             columns: [
  49582.               ['threads'].concat(mT(a)),
  49583.               r,
  49584.               o
  49585.             ],
  49586.             types: {
  49587.               anonymous: 'area',
  49588.               authenticated: 'area'
  49589.             },
  49590.             names: {
  49591.               authenticated: 'Authenticated',
  49592.               anonymous: 'Anonymous'
  49593.             },
  49594.             groups: [
  49595.               ['anonymous',
  49596.               'authenticated']
  49597.             ],
  49598.             onmouseover: i.trackHover
  49599.           }
  49600.         }),
  49601.         _T(bT(i), 'fetchTotalReactionsReportByDate', function () {
  49602.           i.props.fetchTotalReactionsReportByDate({
  49603.             start: i.state.startDate.toISOString(),
  49604.             end: i.state.endDate.toISOString()
  49605.           })
  49606.         }),
  49607.         _T(bT(i), 'fetchTotalReactionsReportByThread', function () {
  49608.           i.props.fetchTotalReactionsReportByThread({
  49609.             start: i.state.startDate.toISOString(),
  49610.             end: i.state.endDate.toISOString()
  49611.           })
  49612.         }),
  49613.         _T(bT(i), 'onGroupChange', function (e) {
  49614.           i.props.emitTrackingEvent({
  49615.             verb: 'click',
  49616.             object_type: 'option',
  49617.             object_id: 'day' === e ? 'daily' : 'by thread',
  49618.             area: 'total_reactions_section'
  49619.           }),
  49620.           i.setState({
  49621.             group: e,
  49622.             startDate: 'day' === e ? ct() ().utc().subtract(1, 'month') : ct() ().utc().subtract(1, 'year').startOf('month')
  49623.           }, 'thread' === e ? i.fetchTotalReactionsReportByThread : i.fetchTotalReactionsReportByDate)
  49624.         }),
  49625.         _T(bT(i), 'onDateChange', function (e, t) {
  49626.           i.setState({
  49627.             startDate: e,
  49628.             endDate: t
  49629.           }, 'thread' === i.state.group ? i.fetchTotalReactionsReportByThread : i.fetchTotalReactionsReportByDate)
  49630.         }),
  49631.         i
  49632.       }
  49633.       return e = r,
  49634.       (t = [
  49635.         {
  49636.           key: 'componentDidMount',
  49637.           value: function () {
  49638.             this.fetchTotalReactionsReportByDate(),
  49639.             this.initGraph()
  49640.           }
  49641.         },
  49642.         {
  49643.           key: 'componentDidUpdate',
  49644.           value: function () {
  49645.             this.initGraph()
  49646.           }
  49647.         },
  49648.         {
  49649.           key: 'componentWillUnmount',
  49650.           value: function () {
  49651.             this.chart && (this.chart = this.chart.destroy())
  49652.           }
  49653.         },
  49654.         {
  49655.           key: 'render',
  49656.           value: function () {
  49657.             var t = this;
  49658.             return Object.keys(this.props.totalReactionsReportByDate).some(function (e) {
  49659.               return t.props.totalReactionsReportByDate[e].length
  49660.             }) ? C.a.createElement('div', null, C.a.createElement(Bp, {
  49661.               className: 'engaged-readers spacing-bottom',
  49662.               leftTitle: C.a.createElement('div', null, 'Total Reactions', C.a.createElement(Md, {
  49663.                 content: 'Total reaction count sorted by date or by thread.  Sorting by date is customizable via date range while sorting by thread displays the last 30 threads from your site.'
  49664.               })),
  49665.               rightTitle: C.a.createElement('div', {
  49666.                 className: 'card__header-right'
  49667.               }, C.a.createElement(Zp, {
  49668.                 sortByThread: !0,
  49669.                 dateWrapperClass: 'card__header-datepicker',
  49670.                 minDate: ct() ().utc().subtract(1, 'year'),
  49671.                 maxDate: ct() ().utc(),
  49672.                 startDate: this.state.startDate,
  49673.                 endDate: this.state.endDate,
  49674.                 group: this.state.group,
  49675.                 onGroupChange: this.onGroupChange,
  49676.                 onDateChange: this.onDateChange,
  49677.                 hideInput: 'thread' === this.state.group
  49678.               }))
  49679.             }, C.a.createElement('div', {
  49680.               ref: function (e) {
  49681.                 t.ref = t.ref || {
  49682.                 },
  49683.                 t.ref.graph = e
  49684.               }
  49685.             }))) : null
  49686.           }
  49687.         }
  49688.       ]) && hT(e.prototype, t),
  49689.       n && hT(e, n),
  49690.       r
  49691.     }();
  49692.     _T(F, 'propTypes', {
  49693.       totalReactionsReportByDate: yl.isRequired,
  49694.       totalReactionsReportByThread: Wi.isRequired,
  49695.       fetchTotalReactionsReportByDate: b.a.func.isRequired,
  49696.       fetchTotalReactionsReportByThread: b.a.func.isRequired,
  49697.       emitTrackingEvent: b.a.func.isRequired
  49698.     });
  49699.     var ST = F;
  49700.     function wT(e) {
  49701.       return (wT = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  49702.         return typeof e
  49703.       }
  49704.        : function (e) {
  49705.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  49706.       }) (e)
  49707.     }
  49708.     function PT(e) {
  49709.       return function (e) {
  49710.         if (Array.isArray(e)) return kT(e)
  49711.       }(e) || function (e) {
  49712.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  49713.       }(e) || function (e, t) {
  49714.         if (e) {
  49715.           if ('string' == typeof e) return kT(e, t);
  49716.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  49717.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? kT(e, t) : void 0
  49718.         }
  49719.       }(e) || function () {
  49720.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  49721.       }()
  49722.     }
  49723.     function kT(e, t) {
  49724.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  49725.       return a
  49726.     }
  49727.     function NT(e, t) {
  49728.       for (var n = 0; n < t.length; n++) {
  49729.         var a = t[n];
  49730.         a.enumerable = a.enumerable || !1,
  49731.         a.configurable = !0,
  49732.         'value' in a && (a.writable = !0),
  49733.         Object.defineProperty(e, a.key, a)
  49734.       }
  49735.     }
  49736.     function CT(e, t) {
  49737.       return (CT = Object.setPrototypeOf || function (e, t) {
  49738.         return e.__proto__ = t,
  49739.         e
  49740.       }) (e, t)
  49741.     }
  49742.     function RT(n) {
  49743.       var a = function () {
  49744.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  49745.         if (Reflect.construct.sham) return !1;
  49746.         if ('function' == typeof Proxy) return !0;
  49747.         try {
  49748.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  49749.           ], function () {
  49750.           })),
  49751.           !0
  49752.         } catch (e) {
  49753.           return !1
  49754.         }
  49755.       }();
  49756.       return function () {
  49757.         var e,
  49758.         t = AT(n);
  49759.         return e = a ? (e = AT(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  49760.         t = this,
  49761.         !(e = e) || 'object' !== wT(e) && 'function' != typeof e ? xT(t) : e
  49762.       }
  49763.     }
  49764.     function xT(e) {
  49765.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  49766.       return e
  49767.     }
  49768.     function AT(e) {
  49769.       return (AT = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  49770.         return e.__proto__ || Object.getPrototypeOf(e)
  49771.       }) (e)
  49772.     }
  49773.     function DT(e, t, n) {
  49774.       return t in e ? Object.defineProperty(e, t, {
  49775.         value: n,
  49776.         enumerable: !0,
  49777.         configurable: !0,
  49778.         writable: !0
  49779.       }) : e[t] = n,
  49780.       e
  49781.     }
  49782.     var jT = function (e) {
  49783.       return e.toLocaleString()
  49784.     },
  49785.     rc = function () {
  49786.       !function (e, t) {
  49787.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  49788.         e.prototype = Object.create(t && t.prototype, {
  49789.           constructor: {
  49790.             value: e,
  49791.             writable: !0,
  49792.             configurable: !0
  49793.           }
  49794.         }),
  49795.         t && CT(e, t)
  49796.       }(o, A);
  49797.       var e,
  49798.       t,
  49799.       n,
  49800.       r = RT(o);
  49801.       function o() {
  49802.         var a;
  49803.         !function (e, t) {
  49804.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  49805.         }(this, o);
  49806.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  49807.         return DT(xT(a = r.call.apply(r, [
  49808.           this
  49809.         ].concat(t))), 'state', {
  49810.           thread: '',
  49811.           threadList: [
  49812.           ],
  49813.           startDate: ct() ().utc().subtract(3, 'month'),
  49814.           endDate: ct() ().utc()
  49815.         }),
  49816.         DT(xT(a), 'initGraph', function (e, t) {
  49817.           a.ref && a.props.threadSpecificReactionsReport !== {
  49818.           }
  49819.           && a.ref.graph && (!a.ref.graph.parentElement.clientWidth && (e || 0) < cT ? setTimeout(a.initGraph.bind(xT(a), (e || 0) + 1), 0) : a.chart = Ed.a.generate({
  49820.             bindto: a.ref.graph,
  49821.             data: a.getGraphData(a.state.thread),
  49822.             color: {
  49823.               pattern: [
  49824.                 uT.anonymous,
  49825.                 uT.authenticated
  49826.               ]
  49827.             },
  49828.             transition: {
  49829.               duration: 0
  49830.             },
  49831.             padding: {
  49832.               bottom: 2
  49833.             },
  49834.             axis: {
  49835.               y: {
  49836.                 min: 0,
  49837.                 padding: {
  49838.                   bottom: 1.5
  49839.                 },
  49840.                 tick: {
  49841.                   format: jT
  49842.                 },
  49843.                 label: {
  49844.                   text: '# of Reactions',
  49845.                   position: 'outer-bottom'
  49846.                 }
  49847.               },
  49848.               x: {
  49849.                 tick: {
  49850.                   centered: !0,
  49851.                   fit: !0
  49852.                 },
  49853.                 type: 'categories',
  49854.                 categories: [
  49855.                   'Like',
  49856.                   'Dislike',
  49857.                   'Surprise',
  49858.                   'Cry',
  49859.                   'Angry',
  49860.                   'Sad'
  49861.                 ]
  49862.               }
  49863.             },
  49864.             point: {
  49865.               show: !1
  49866.             }
  49867.           }))
  49868.         }),
  49869.         DT(xT(a), 'trackHover', function () {
  49870.           a.isHoverTracked || (a.props.emitTrackingEvent({
  49871.             verb: 'hover',
  49872.             object_type: 'area',
  49873.             object_id: 'reactions_analytics',
  49874.             adjective: 'thread_specific_reactions',
  49875.             area: 'thread_specific_reactions_section'
  49876.           }), a.isHoverTracked = !0)
  49877.         }),
  49878.         DT(xT(a), 'generateColumns', function (e) {
  49879.           if (!a.props.threadSpecificReactionsReport[e]) return [['reactions',
  49880.           'No threads in given time period'],
  49881.           [
  49882.             'anonymous',
  49883.             0,
  49884.             0,
  49885.             0,
  49886.             0,
  49887.             0,
  49888.             0
  49889.           ],
  49890.           [
  49891.             'authenticated',
  49892.             0,
  49893.             0,
  49894.             0,
  49895.             0,
  49896.             0,
  49897.             0
  49898.           ]];
  49899.           var n = [
  49900.             'reactions'
  49901.           ];
  49902.           return a.props.threadSpecificReactionsReport[e].reactions.forEach(function (e, t) {
  49903.             n.push('Reaction #'.concat(t + 1))
  49904.           }),
  49905.           [
  49906.             n,
  49907.             [
  49908.               'anonymous'
  49909.             ].concat(PT(a.props.threadSpecificReactionsReport[e].anonymous)),
  49910.             [
  49911.               'authenticated'
  49912.             ].concat(PT(a.props.threadSpecificReactionsReport[e].authenticated))
  49913.           ]
  49914.         }),
  49915.         DT(xT(a), 'getGraphData', function (e) {
  49916.           return {
  49917.             x: 'reactions',
  49918.             columns: a.generateColumns(e),
  49919.             type: 'bar',
  49920.             names: {
  49921.               anonymous: 'Anonymous',
  49922.               authenticated: 'Authenticated'
  49923.             },
  49924.             groups: [
  49925.               ['anonymous',
  49926.               'authenticated']
  49927.             ],
  49928.             onmouseover: a.trackHover
  49929.           }
  49930.         }),
  49931.         DT(xT(a), 'fetchThreadSpecificReactionsReport', function () {
  49932.           a.props.fetchThreadSpecificReactionsReport({
  49933.             start: a.state.startDate.toISOString(),
  49934.             end: a.state.endDate.toISOString()
  49935.           })
  49936.         }),
  49937.         DT(xT(a), 'onThreadChange', function (e) {
  49938.           a.props.emitTrackingEvent({
  49939.             verb: 'click',
  49940.             object_type: 'option',
  49941.             object_id: e,
  49942.             area: 'thread_specific_reactions_section'
  49943.           }),
  49944.           a.setState({
  49945.             thread: e
  49946.           })
  49947.         }),
  49948.         DT(xT(a), 'onDateChange', function (e, t) {
  49949.           a.setState({
  49950.             startDate: e,
  49951.             endDate: t
  49952.           }, a.fetchThreadSpecificReactionsReport)
  49953.         }),
  49954.         a
  49955.       }
  49956.       return e = o,
  49957.       n = [
  49958.         {
  49959.           key: 'getDerivedStateFromProps',
  49960.           value: function (e, t) {
  49961.             return t.threadList !== e.threadList ? {
  49962.               threadList: e.threadList,
  49963.               thread: e.threadList[0]
  49964.             }
  49965.              : null
  49966.           }
  49967.         }
  49968.       ],
  49969.       (t = [
  49970.         {
  49971.           key: 'componentDidMount',
  49972.           value: function () {
  49973.             this.fetchThreadSpecificReactionsReport(),
  49974.             this.initGraph()
  49975.           }
  49976.         },
  49977.         {
  49978.           key: 'componentDidUpdate',
  49979.           value: function () {
  49980.             this.chart ? this.chart.load(this.getGraphData(this.state.thread)) : this.initGraph(this.state.thread)
  49981.           }
  49982.         },
  49983.         {
  49984.           key: 'componentWillUnmount',
  49985.           value: function () {
  49986.             this.chart && (this.chart = this.chart.destroy())
  49987.           }
  49988.         },
  49989.         {
  49990.           key: 'render',
  49991.           value: function () {
  49992.             var t = this,
  49993.             n = [
  49994.             ];
  49995.             return 1 <= Object.keys(this.props.threadSpecificReactionsReport).length ? this.props.threadSpecificReactionsReport[this.state.thread].reactions.forEach(function (e, t) {
  49996.               n.push(C.a.createElement('div', {
  49997.                 className: 'reaction-image',
  49998.                 key: 'Reaction #'.concat(t, ' div')
  49999.               }, C.a.createElement('img', {
  50000.                 src: e,
  50001.                 key: 'Reaction #'.concat(t, ' img'),
  50002.                 alt: 'Reaction #'.concat(t),
  50003.                 width: 100,
  50004.                 height: 100
  50005.               }), C.a.createElement('h3', {
  50006.                 key: 'Reaction #'.concat(t, ' header')
  50007.               }, 'Reaction #', t + 1)))
  50008.             }) : n.push(C.a.createElement('div', {
  50009.               key: 'No Reaction Display'
  50010.             }, 'No reactions data for the below date range.')),
  50011.             C.a.createElement('div', null, C.a.createElement(Bp, {
  50012.               className: 'reactions-display spacing-bottom',
  50013.               leftTitle: C.a.createElement('div', null, 'Thread Reactions Display', C.a.createElement(Md, {
  50014.                 content: 'The reactions from the thread chosen below'
  50015.               }))
  50016.             }, C.a.createElement('div', {
  50017.               className: 'card__body'
  50018.             }, n)), C.a.createElement(Bp, {
  50019.               className: 'engaged-readers spacing-bottom',
  50020.               leftTitle: C.a.createElement('div', null, 'Thread-Specific Reactions', C.a.createElement(Md, {
  50021.                 content: 'Reactions from a specific thread.  The thread-selection menu displays up to 30 threads in the given time period.'
  50022.               })),
  50023.               rightTitle: C.a.createElement('div', {
  50024.                 className: 'card__header-right'
  50025.               }, C.a.createElement(Zp, {
  50026.                 threadSpecificReactionsList: this.props.threadList,
  50027.                 threadSpecificReactionsReport: this.props.threadSpecificReactionsReport,
  50028.                 dateWrapperClass: 'card__header-datepicker',
  50029.                 minDate: ct() ().utc().subtract(1, 'year'),
  50030.                 maxDate: ct() ().utc(),
  50031.                 startDate: this.state.startDate,
  50032.                 endDate: this.state.endDate,
  50033.                 group: this.state.thread,
  50034.                 onGroupChange: this.onThreadChange,
  50035.                 onDateChange: this.onDateChange
  50036.               }))
  50037.             }, C.a.createElement('div', {
  50038.               ref: function (e) {
  50039.                 t.ref = t.ref || {
  50040.                 },
  50041.                 t.ref.graph = e
  50042.               }
  50043.             })))
  50044.           }
  50045.         }
  50046.       ]) && NT(e.prototype, t),
  50047.       n && NT(e, n),
  50048.       o
  50049.     }();
  50050.     DT(rc, 'propTypes', {
  50051.       threadSpecificReactionsReport: Ru.isRequired,
  50052.       threadList: b.a.arrayOf(b.a.string),
  50053.       fetchThreadSpecificReactionsReport: b.a.func.isRequired,
  50054.       emitTrackingEvent: b.a.func.isRequired
  50055.     });
  50056.     var TT = rc;
  50057.     function IT(e) {
  50058.       return (IT = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  50059.         return typeof e
  50060.       }
  50061.        : function (e) {
  50062.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  50063.       }) (e)
  50064.     }
  50065.     function qT(t, e) {
  50066.       var n,
  50067.       a = Object.keys(t);
  50068.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  50069.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  50070.       })), a.push.apply(a, n)),
  50071.       a
  50072.     }
  50073.     function FT(t) {
  50074.       for (var e = 1; e < arguments.length; e++) {
  50075.         var n = null != arguments[e] ? arguments[e] : {
  50076.         };
  50077.         e % 2 ? qT(Object(n), !0).forEach(function (e) {
  50078.           HT(t, e, n[e])
  50079.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : qT(Object(n)).forEach(function (e) {
  50080.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  50081.         })
  50082.       }
  50083.       return t
  50084.     }
  50085.     function LT(e, t) {
  50086.       for (var n = 0; n < t.length; n++) {
  50087.         var a = t[n];
  50088.         a.enumerable = a.enumerable || !1,
  50089.         a.configurable = !0,
  50090.         'value' in a && (a.writable = !0),
  50091.         Object.defineProperty(e, a.key, a)
  50092.       }
  50093.     }
  50094.     function UT(e, t) {
  50095.       return (UT = Object.setPrototypeOf || function (e, t) {
  50096.         return e.__proto__ = t,
  50097.         e
  50098.       }) (e, t)
  50099.     }
  50100.     function MT(n) {
  50101.       var a = function () {
  50102.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  50103.         if (Reflect.construct.sham) return !1;
  50104.         if ('function' == typeof Proxy) return !0;
  50105.         try {
  50106.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  50107.           ], function () {
  50108.           })),
  50109.           !0
  50110.         } catch (e) {
  50111.           return !1
  50112.         }
  50113.       }();
  50114.       return function () {
  50115.         var e,
  50116.         t = zT(n);
  50117.         return e = a ? (e = zT(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  50118.         t = this,
  50119.         !(e = e) || 'object' !== IT(e) && 'function' != typeof e ? BT(t) : e
  50120.       }
  50121.     }
  50122.     function BT(e) {
  50123.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  50124.       return e
  50125.     }
  50126.     function zT(e) {
  50127.       return (zT = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  50128.         return e.__proto__ || Object.getPrototypeOf(e)
  50129.       }) (e)
  50130.     }
  50131.     function HT(e, t, n) {
  50132.       return t in e ? Object.defineProperty(e, t, {
  50133.         value: n,
  50134.         enumerable: !0,
  50135.         configurable: !0,
  50136.         writable: !0
  50137.       }) : e[t] = n,
  50138.       e
  50139.     }
  50140.     var GT = 200,
  50141.     r = function () {
  50142.       !function (e, t) {
  50143.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  50144.         e.prototype = Object.create(t && t.prototype, {
  50145.           constructor: {
  50146.             value: e,
  50147.             writable: !0,
  50148.             configurable: !0
  50149.           }
  50150.         }),
  50151.         t && UT(e, t)
  50152.       }(o, A);
  50153.       var e,
  50154.       t,
  50155.       n,
  50156.       r = MT(o);
  50157.       function o() {
  50158.         var a;
  50159.         !function (e, t) {
  50160.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  50161.         }(this, o);
  50162.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  50163.         return HT(BT(a = r.call.apply(r, [
  50164.           this
  50165.         ].concat(t))), 'initViewEvents', function () {
  50166.           a.onScroll = je.a.debounce(a.onScroll, 100),
  50167.           window.addEventListener('scroll', a.onScroll);
  50168.           a.viewEvents = [
  50169.             {
  50170.               ref: 'reactionsAnalytics',
  50171.               onView: a.props.emitTrackingEvent.bind(BT(a), FT(FT({
  50172.               }, {
  50173.                 verb: 'view',
  50174.                 object_type: 'area'
  50175.               }), {
  50176.               }, {
  50177.                 object_id: 'reactions_analytics',
  50178.                 area: 'reactions_analytics'
  50179.               }))
  50180.             }
  50181.           ]
  50182.         }),
  50183.         HT(BT(a), 'onScroll', function () {
  50184.           a.viewEvents = a.viewEvents.filter(function (e) {
  50185.             var t = window.innerHeight || window.document.documentElement.clientHeight,
  50186.             n = a.ref[e.ref] && l.a.findDOMNode(a.ref[e.ref]),
  50187.             n = n && n.getBoundingClientRect();
  50188.             return !n || t - n.top < GT || n.bottom < GT || (e.onView(), !1)
  50189.           }),
  50190.           a.viewEvents.length || window.removeEventListener('scroll', a.onScroll)
  50191.         }),
  50192.         a
  50193.       }
  50194.       return e = o,
  50195.       (t = [
  50196.         {
  50197.           key: 'componentDidMount',
  50198.           value: function () {
  50199.             this.props.emitTrackingEvent({
  50200.               verb: 'view',
  50201.               object_type: 'page',
  50202.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  50203.             }),
  50204.             this.initViewEvents()
  50205.           }
  50206.         },
  50207.         {
  50208.           key: 'componentWillUnmount',
  50209.           value: function () {
  50210.             window.removeEventListener('scroll', this.onScroll)
  50211.           }
  50212.         },
  50213.         {
  50214.           key: 'render',
  50215.           value: function () {
  50216.             var t = this;
  50217.             return this.props.totalReactionsReportByDate || this.props.threadSpecificReactionsReport ? this.props.organization && this.props.organization.pollsOnly ? C.a.createElement(Cm, {
  50218.               isPolls: !1,
  50219.               organization: this.props.organization
  50220.             }) : C.a.createElement('div', null, C.a.createElement('div', {
  50221.               className: 'section-contained audience-analytics'
  50222.             }, C.a.createElement(ST, {
  50223.               totalReactionsReportByDate: this.props.totalReactionsReportByDate,
  50224.               fetchTotalReactionsReportByDate: this.props.fetchTotalReactionsReportByDate,
  50225.               totalReactionsReportByThread: this.props.totalReactionsReportByThread,
  50226.               fetchTotalReactionsReportByThread: this.props.fetchTotalReactionsReportByThread,
  50227.               emitTrackingEvent: this.props.emitTrackingEvent,
  50228.               ref: function (e) {
  50229.                 t.ref = t.ref || {
  50230.                 },
  50231.                 t.ref.totalReactionsSection = e
  50232.               }
  50233.             })), C.a.createElement('div', {
  50234.               className: 'section-contained audience-analytics'
  50235.             }, C.a.createElement(TT, {
  50236.               threadSpecificReactionsReport: this.props.threadSpecificReactionsReport,
  50237.               fetchThreadSpecificReactionsReport: this.props.fetchThreadSpecificReactionsReport,
  50238.               threadList: Object.keys(this.props.threadSpecificReactionsReport),
  50239.               emitTrackingEvent: this.props.emitTrackingEvent,
  50240.               ref: function (e) {
  50241.                 t.ref = t.ref || {
  50242.                 },
  50243.                 t.ref.threadSpecificReactionsSection = e
  50244.               }
  50245.             }))) : C.a.createElement('div', {
  50246.               className: 'section-contained'
  50247.             }, C.a.createElement('div', {
  50248.               className: 'loading-container'
  50249.             }, C.a.createElement(Ji, null)))
  50250.           }
  50251.         }
  50252.       ]) && LT(e.prototype, t),
  50253.       n && LT(e, n),
  50254.       o
  50255.     }();
  50256.     HT(r, 'propTypes', {
  50257.       totalReactionsReportByDate: yl.isRequired,
  50258.       totalReactionsReportByThread: Wi.isRequired,
  50259.       fetchTotalReactionsReportByDate: b.a.func.isRequired,
  50260.       fetchThreadSpecificReactionsReport: b.a.func.isRequired,
  50261.       threadSpecificReactionsReport: Ru.isRequired,
  50262.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  50263.       emitTrackingEvent: b.a.func.isRequired,
  50264.       history: b.a.object.isRequired,
  50265.       selection: ht.isRequired
  50266.     });
  50267.     var VT = Object(u.connect) (function (e) {
  50268.       var t = e.saasFeatures,
  50269.       n = e.selection;
  50270.       return FT(FT({
  50271.       }, e.reactionsAnalytics), {
  50272.       }, {
  50273.         saasFeatures: t,
  50274.         organization: n.organization
  50275.       })
  50276.     }, {
  50277.       fetchTotalReactionsReportByDate: function (n) {
  50278.         return function (t, e) {
  50279.           sT(n, e(), function (e) {
  50280.             io.a.call('forums/admin/reports/totalReactionsReport', e).success(function (e) {
  50281.               t({
  50282.                 type: fe.onFetchTotalReactionsReportByDate,
  50283.                 response: (je.a.mapObject(e = e.response, function (e) {
  50284.                   e.map(function (n) {
  50285.                     n.map(function (e, t) {
  50286.                       0 === t && (n[0] = e.split('T') [0])
  50287.                     })
  50288.                   })
  50289.                 }), e)
  50290.               })
  50291.             })
  50292.           })
  50293.         }
  50294.       },
  50295.       fetchTotalReactionsReportByThread: function (n) {
  50296.         return function (t, e) {
  50297.           sT(n, e(), function (e) {
  50298.             io.a.call('forums/admin/reports/threadReactionsReport', e).success(function (e) {
  50299.               t({
  50300.                 type: fe.onFetchTotalReactionsReportByThread,
  50301.                 response: (e = iT({
  50302.                 }, lT(e.response)), je.a.mapObject(e, function (e) {
  50303.                   e.anonymous = e.anonymous.reduce(function (e, t) {
  50304.                     return e + t
  50305.                   }, 0),
  50306.                   e.authenticated = e.authenticated.reduce(function (e, t) {
  50307.                     return e + t
  50308.                   }, 0),
  50309.                   delete e.reactions
  50310.                 }), e)
  50311.               })
  50312.             })
  50313.           })
  50314.         }
  50315.       },
  50316.       fetchThreadSpecificReactionsReport: function (n) {
  50317.         return function (t, e) {
  50318.           sT(n, e(), function (e) {
  50319.             io.a.call('forums/admin/reports/threadReactionsReport', e).success(function (e) {
  50320.               t({
  50321.                 type: fe.onFetchThreadSpecificReactionsReport,
  50322.                 response: lT(e.response)
  50323.               })
  50324.             })
  50325.           })
  50326.         }
  50327.       }
  50328.     }) (Fo() (r)),
  50329.     s = n(171),
  50330.     WT = n.n(s),
  50331.     go = n(516),
  50332.     YT = n.n(go),
  50333.     F = function (e) {
  50334.       e = e.onClose;
  50335.       return C.a.createElement(_.a, {
  50336.         isOpen: !0,
  50337.         onRequestClose: e,
  50338.         className: 'admin-modal -clipped -wider padding-double',
  50339.         overlayClassName: 'modal-overlay -dark'
  50340.       }, C.a.createElement('h3', {
  50341.         className: 'text-larger text-center spacing-bottom'
  50342.       }, 'Cancel Paid Subscription'), C.a.createElement('p', {
  50343.         className: 'spacing-bottom-double'
  50344.       }, 'If you’d like to cancel your paid subscription and downgrade to our free, Ad-Supported plan, please email us at ', C.a.createElement('a', {
  50345.         href: 'mailto:cancellation@disqus.com'
  50346.       }, 'cancellation@disqus.com'), '. By downgrading to our Ad-Supported plan, you’ll lose access to all of your advanced features.'), C.a.createElement('div', {
  50347.         className: 'align align--between align--center'
  50348.       }, C.a.createElement('button', {
  50349.         className: 'button button-fill--brand text-small button-wide',
  50350.         onClick: e
  50351.       }, 'OK')))
  50352.     };
  50353.     F.propTypes = {
  50354.       onClose: b.a.func.isRequired
  50355.     };
  50356.     var QT = F,
  50357.     rc = function (e) {
  50358.       e = e.onClose;
  50359.       return C.a.createElement(_.a, {
  50360.         isOpen: !0,
  50361.         onRequestClose: e,
  50362.         className: 'admin-modal -clipped -wider padding-double',
  50363.         overlayClassName: 'modal-overlay -dark'
  50364.       }, C.a.createElement('h3', {
  50365.         className: 'text-larger text-center spacing-bottom'
  50366.       }, 'Thank You!'), C.a.createElement('p', {
  50367.         className: 'spacing-bottom-double subscription-modal__paragraph-middle text-center'
  50368.       }, 'Our sales team will get back to you soon about using Disqus for Business for your site.'), C.a.createElement('div', {
  50369.         className: 'align align--between align--center'
  50370.       }, C.a.createElement('button', {
  50371.         className: 'button button-fill--brand text-small button-padding-wide',
  50372.         onClick: e
  50373.       }, 'Return to Subscription & Billing')))
  50374.     };
  50375.     rc.propTypes = {
  50376.       onClose: b.a.func
  50377.     };
  50378.     var KT = rc;
  50379.     function JT(e) {
  50380.       return (JT = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  50381.         return typeof e
  50382.       }
  50383.        : function (e) {
  50384.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  50385.       }) (e)
  50386.     }
  50387.     function $T(e, t) {
  50388.       for (var n = 0; n < t.length; n++) {
  50389.         var a = t[n];
  50390.         a.enumerable = a.enumerable || !1,
  50391.         a.configurable = !0,
  50392.         'value' in a && (a.writable = !0),
  50393.         Object.defineProperty(e, a.key, a)
  50394.       }
  50395.     }
  50396.     function ZT(e, t) {
  50397.       return (ZT = Object.setPrototypeOf || function (e, t) {
  50398.         return e.__proto__ = t,
  50399.         e
  50400.       }) (e, t)
  50401.     }
  50402.     function XT(n) {
  50403.       var a = function () {
  50404.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  50405.         if (Reflect.construct.sham) return !1;
  50406.         if ('function' == typeof Proxy) return !0;
  50407.         try {
  50408.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  50409.           ], function () {
  50410.           })),
  50411.           !0
  50412.         } catch (e) {
  50413.           return !1
  50414.         }
  50415.       }();
  50416.       return function () {
  50417.         var e,
  50418.         t = tI(n);
  50419.         return e = a ? (e = tI(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  50420.         t = this,
  50421.         !(e = e) || 'object' !== JT(e) && 'function' != typeof e ? eI(t) : e
  50422.       }
  50423.     }
  50424.     function eI(e) {
  50425.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  50426.       return e
  50427.     }
  50428.     function tI(e) {
  50429.       return (tI = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  50430.         return e.__proto__ || Object.getPrototypeOf(e)
  50431.       }) (e)
  50432.     }
  50433.     function nI(e, t, n) {
  50434.       return t in e ? Object.defineProperty(e, t, {
  50435.         value: n,
  50436.         enumerable: !0,
  50437.         configurable: !0,
  50438.         writable: !0
  50439.       }) : e[t] = n,
  50440.       e
  50441.     }
  50442.     yl = function () {
  50443.       !function (e, t) {
  50444.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  50445.         e.prototype = Object.create(t && t.prototype, {
  50446.           constructor: {
  50447.             value: e,
  50448.             writable: !0,
  50449.             configurable: !0
  50450.           }
  50451.         }),
  50452.         t && ZT(e, t)
  50453.       }(o, A);
  50454.       var e,
  50455.       t,
  50456.       n,
  50457.       r = XT(o);
  50458.       function o() {
  50459.         var t;
  50460.         !function (e, t) {
  50461.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  50462.         }(this, o);
  50463.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  50464.         return nI(eI(t = r.call.apply(r, [
  50465.           this
  50466.         ].concat(n))), 'state', {
  50467.           value: '',
  50468.           error: ''
  50469.         }),
  50470.         nI(eI(t), 'handleChange', function (e) {
  50471.           return t.setState({
  50472.             value: e.target.value
  50473.           })
  50474.         }),
  50475.         nI(eI(t), 'handleSubmit', function (e) {
  50476.           return e.preventDefault(),
  50477.           t.state.value ? void t.props.applyCoupon(t.state.value).then(t.props.onClose).catch(t.handleError) : t.setState({
  50478.             error: 'You must enter a valid coupon.'
  50479.           })
  50480.         }),
  50481.         nI(eI(t), 'handleError', function (e) {
  50482.           e = e && e.responseText && je.a.isString(e.responseText) && JSON.parse(e.responseText),
  50483.           e = je.a.isObject(e) && e.response;
  50484.           e ? e.indexOf('Invalid argument, \'coupon\'') ? e.indexOf('Flat rate "amount off" coupons are not currently supported') ? t.setState({
  50485.             error: e
  50486.           }) : t.setState({
  50487.             error: 'This coupon code is not valid.'
  50488.           }) : t.setState({
  50489.             error: 'This coupon code does not exist.'
  50490.           }) : t.setState({
  50491.             error: 'There was an unknown error.'
  50492.           })
  50493.         }),
  50494.         t
  50495.       }
  50496.       return e = o,
  50497.       (t = [
  50498.         {
  50499.           key: 'render',
  50500.           value: function () {
  50501.             return C.a.createElement(_.a, {
  50502.               className: 'admin-modal coupon-modal',
  50503.               overlayClassName: 'modal-overlay -dark',
  50504.               isOpen: !0,
  50505.               onRequestClose: this.props.onClose
  50506.             }, C.a.createElement('header', {
  50507.               role: 'banner',
  50508.               className: 'coupon-modal__header'
  50509.             }, C.a.createElement('div', {
  50510.               className: 'coupon-modal__header-icon'
  50511.             }, C.a.createElement('div', {
  50512.               className: 'coupon-modal__header-icon-container'
  50513.             }, C.a.createElement('div', {
  50514.               className: 'coupon-modal__header-icon-bevel'
  50515.             }), C.a.createElement('div', {
  50516.               className: 'coupon-modal__header-icon-border'
  50517.             }), C.a.createElement('div', {
  50518.               className: 'coupon-modal__header-icon-image'
  50519.             }))), C.a.createElement('h1', null, ' Disqus '), C.a.createElement('h2', null, ' Apply a coupon ')), C.a.createElement('form', {
  50520.               className: 'coupon-modal__form',
  50521.               onSubmit: this.handleSubmit
  50522.             }, C.a.createElement('div', {
  50523.               className: 'coupon-modal__input-container'
  50524.             }, C.a.createElement('input', {
  50525.               className: [
  50526.                 'input--textbox',
  50527.                 this.state.error ? 'is-error' : ''
  50528.               ].join(' '),
  50529.               type: 'text',
  50530.               value: this.state.value,
  50531.               placeholder: 'Coupon code',
  50532.               onChange: this.handleChange
  50533.             })), this.state.error ? C.a.createElement('div', {
  50534.               className: 'text-error'
  50535.             }, this.state.error) : null, C.a.createElement('div', {
  50536.               className: 'coupon-modal__submit-container'
  50537.             }, C.a.createElement('button', {
  50538.               className: 'button button-fill--brand button-medium button-wide',
  50539.               type: 'submit'
  50540.             }, 'Apply coupon'))))
  50541.           }
  50542.         }
  50543.       ]) && $T(e.prototype, t),
  50544.       n && $T(e, n),
  50545.       o
  50546.     }();
  50547.     nI(yl, 'propTypes', {
  50548.       applyCoupon: b.a.func.isRequired,
  50549.       onClose: b.a.func.isRequired
  50550.     });
  50551.     var aI = yl,
  50552.     Wi = n(101),
  50553.     rI = n.n(Wi),
  50554.     Ru = n(102),
  50555.     oI = n.n(Ru);
  50556.     function iI() {
  50557.       return (iI = Object.assign || function (e) {
  50558.         for (var t = 1; t < arguments.length; t++) {
  50559.           var n,
  50560.           a = arguments[t];
  50561.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  50562.         }
  50563.         return e
  50564.       }).apply(this, arguments)
  50565.     }
  50566.     r = function (e) {
  50567.       var t,
  50568.       n,
  50569.       a = e.basicPackage,
  50570.       r = e.filterInvoices,
  50571.       o = e.isTrialActive,
  50572.       i = e.onRequestInfo,
  50573.       s = e.onStartTrial,
  50574.       l = e.onSubscribe,
  50575.       c = e.orgAvailableDiscount,
  50576.       u = e.orgBilling,
  50577.       p = e.orgCurrentPackage,
  50578.       d = e.orgCurrentPackageWillCancel,
  50579.       m = e.orgPackages,
  50580.       f = e.orgTrial,
  50581.       h = e.newSubscriptionFlow,
  50582.       g = e.pollsOrgCurrentPackage,
  50583.       y = e.pollsOrgAvailableDiscount,
  50584.       b = e.pollsOrgCurrentPackageWillCancel,
  50585.       v = e.pollsOrgTrial,
  50586.       _ = e.organization,
  50587.       E = e.pollsPlanStatus,
  50588.       O = e.orgAvailableTrials,
  50589.       S = g && je.a.find(g.plans, function (e) {
  50590.         return e.isSubscribed
  50591.       }),
  50592.       w = null;
  50593.       _.pollsOnly || (n = je.a.find(m, function (e) {
  50594.         return e.id === Ur.DISQUS_PLUS_PACKAGE_ID
  50595.       }), t = je.a.find(m, function (e) {
  50596.         return e.id === Ur.DISQUS_PRO_PACKAGE_ID
  50597.       }), e = je.a.find(p.plans, function (e) {
  50598.         return e.isSubscribed
  50599.       }), c = {
  50600.         orgAvailableDiscount: c,
  50601.         orgBilling: u,
  50602.         orgCurrentPackage: p,
  50603.         orgCurrentPackageWillCancel: d,
  50604.         orgTrial: f,
  50605.         onRequestInfo: i,
  50606.         onSubscribe: l,
  50607.         onStartTrial: s,
  50608.         basicPackage: a,
  50609.         subscribedPlan: !0,
  50610.         newSubscriptionFlow: h,
  50611.         organization: _
  50612.       }, r = u && u.invoiceHistory.some(function (e) {
  50613.         return 0 === parseFloat(e.total)
  50614.       }) && p.id === Ur.DISQUS_BASIC_PACKAGE_ID && !r(u.invoiceHistory).length && (!O || !O.some(function (e) {
  50615.         return 0 == e.indexOf('plus')
  50616.       }) || !O.some(function (e) {
  50617.         return 0 == e.indexOf('pro')
  50618.       })), P = null, O = h ? null : C.a.createElement('p', {
  50619.         className: 'text-gray text-medium spacing-bottom'
  50620.       }, 'Your site will revert back to the Ad-Supported plan at the end of the trial unless you subscribe before the trial ends.'), o(f) ? P = C.a.createElement('div', null, C.a.createElement('p', {
  50621.         className: 'spacing-top'
  50622.       }, 'You are currently on a Comments ', p.name, ' trial ending in ', ct() (f.endDate).diff(ct() (), 'days'), ' days.'), d ? C.a.createElement('p', {
  50623.         className: 'text-gray text-medium'
  50624.       }, 'Your site will revert back to the Ad-Supported plan at the end of the trial.') : u && u.paymentInfo ? C.a.createElement('p', {
  50625.         className: 'text-gray text-medium'
  50626.       }, 'Your subscription to Comments ', p.name, ' will begin at the end of the trial.') : O) : r ? P = C.a.createElement('p', {
  50627.         className: 'spacing-top'
  50628.       }, 'Your trial has ended and your site is now on the Ad-Supported plan. Please subscribe to one of the plans below if you would like to continue using those features.') : d && (P = C.a.createElement('p', {
  50629.         className: 'spacing-top'
  50630.       }, 'You have canceled your subscription to ', p.name, ' and your organization will revert back to Ad-Supported at the end of the billing period.')), w = _.pollsOnly ? null : p.id === Ur.DISQUS_PLUS_FREE_PACKAGE_ID && n ? (n = je.a.find(m, function (e) {
  50631.         return e.id === Ur.DISQUS_PLUS_FREE_PACKAGE_ID
  50632.       }), C.a.createElement('section', {
  50633.         className: 'align align--column'
  50634.       }, C.a.createElement(oI.a, iI({
  50635.         plan: je.a.find(n.plans, function (e) {
  50636.           return e.id === Ur.DISQUS_PLUS_FREE_PLAN_ID
  50637.         }),
  50638.         package: n,
  50639.         features: Object(Tl.getPackageFeatureList) (m, Ur.DISQUS_PLUS_PACKAGE_ID, {
  50640.           showCustom: !0
  50641.         }),
  50642.         learnMoreLink: C.a.createElement(rI.a, {
  50643.           package: n
  50644.         }),
  50645.         maxButtons: 0
  50646.       }, c)), P)) : C.a.createElement('section', {
  50647.         className: 'align align--column'
  50648.       }, C.a.createElement(oI.a, iI({
  50649.         plan: e,
  50650.         package: p,
  50651.         features: Object(Tl.getPackageFeatureList) (m, p.id, {
  50652.           showCustom: !0
  50653.         }),
  50654.         learnMoreLink: C.a.createElement(rI.a, p.id === Ur.DISQUS_PREFERRED_CUSTOMER_PACKAGE_ID && t ? {
  50655.           package: t
  50656.         }
  50657.          : {
  50658.           package: p
  50659.         }),
  50660.         isCurrentPlan: !0
  50661.       }, c)), P));
  50662.       var P = null;
  50663.       return _.pollsActivationDate && g && (s = {
  50664.         pollsOrgAvailableDiscount: y,
  50665.         orgBilling: u,
  50666.         pollsOrgCurrentPackage: g,
  50667.         pollsOrgCurrentPackageWillCancel: b,
  50668.         pollsOrgTrial: v,
  50669.         onRequestInfo: i,
  50670.         onSubscribe: l,
  50671.         onStartTrial: s,
  50672.         basicPackage: a,
  50673.         subscribedPlan: !0,
  50674.         newSubscriptionFlow: h,
  50675.         organization: _,
  50676.         pollsPlanStatus: E
  50677.       }, a = _.pollsActivationDate && !g, h = null, o(v) ? h = C.a.createElement('div', null, C.a.createElement('p', {
  50678.         className: 'spacing-top'
  50679.       }, 'You are currently on a Polls ', g.name, ' trial ending in ', ct() (v.endDate).diff(ct() (), 'days'), ' days.'), !b && u && u.paymentInfo ? C.a.createElement('p', {
  50680.         className: 'text-gray text-medium'
  50681.       }, 'Your subscription to Polls ', g.name, ' will continue at the end of the trial.') : C.a.createElement('p', {
  50682.         className: 'text-gray text-medium spacing-top'
  50683.       }, 'Your subscription to Polls ', g.name, ' will conclude at the end of your trial.')) : b ? h = C.a.createElement('p', {
  50684.         className: 'spacing-top'
  50685.       }, 'Your subscription will be cancelled at the end of the billing period.') : a && (h = C.a.createElement('p', {
  50686.         className: 'spacing-top'
  50687.       }, 'Your subscription has been cancelled. Please subscribe to one of the plans below if you would like to continue using Polls.')), P = C.a.createElement('section', {
  50688.         className: 'align align--column'
  50689.       }, C.a.createElement(oI.a, iI({
  50690.         plan: S,
  50691.         package: g,
  50692.         features: Object(Tl.getPollsPackageFeatureList) (g.id),
  50693.         isCurrentPlan: !0
  50694.       }, s)), h)),
  50695.       C.a.createElement('div', {
  50696.         className: 'fieldset'
  50697.       }, C.a.createElement('span', {
  50698.         className: 'fieldset__label text-gray spacing-right'
  50699.       }, 'Your'.concat(_.pollsOnly && E === Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS ? ' previous' : '', ' plan')), C.a.createElement('div', {
  50700.         className: 'fieldset__block spacing-bottom-double subscription-package__current'
  50701.       }, w, P))
  50702.     };
  50703.     r.propTypes = {
  50704.       basicPackage: Ur.PACKAGE_SHAPE.isRequired,
  50705.       filterInvoices: b.a.func.isRequired,
  50706.       isTrialActive: b.a.func.isRequired,
  50707.       onRequestInfo: b.a.func.isRequired,
  50708.       onStartTrial: b.a.func.isRequired,
  50709.       onSubscribe: b.a.func.isRequired,
  50710.       orgAvailableDiscount: b.a.number,
  50711.       orgBilling: Ur.ORG_BILLING_SHAPE,
  50712.       orgCurrentPackage: Ur.PACKAGE_SHAPE.isRequired,
  50713.       orgCurrentPackageWillCancel: b.a.bool,
  50714.       orgPackages: b.a.arrayOf(Ur.PACKAGE_SHAPE).isRequired,
  50715.       orgTrial: Ur.TRIAL_SHAPE,
  50716.       newSubscriptionFlow: b.a.bool,
  50717.       pollsOrgCurrentPackage: Ur.PACKAGE_SHAPE,
  50718.       pollsOrgAvailableDiscount: b.a.number,
  50719.       pollsOrgCurrentPackageWillCancel: b.a.bool,
  50720.       pollsOrgTrial: Ur.TRIAL_SHAPE,
  50721.       organization: b.a.object,
  50722.       pollsPlanStatus: b.a.oneOf(Ur.SAAS_PRODUCT_PLANS),
  50723.       orgAvailableTrials: b.a.arrayOf(b.a.string)
  50724.     };
  50725.     var sI = Object(u.connect) (function (e) {
  50726.       var t = e.subscription;
  50727.       return {
  50728.         organization: e.selection.organization,
  50729.         orgAvailableDiscount: t.orgAvailableDiscount,
  50730.         pollsPlanStatus: t.pollsPlanStatus,
  50731.         orgAvailableTrials: t.orgAvailableTrials
  50732.       }
  50733.     }) (r),
  50734.     s = function (e) {
  50735.       var t = e.message,
  50736.       e = e.onClose;
  50737.       return C.a.createElement(_.a, {
  50738.         isOpen: !0,
  50739.         onRequestClose: e,
  50740.         className: 'admin-modal -clipped -wider padding-double',
  50741.         overlayClassName: 'modal-overlay -dark'
  50742.       }, C.a.createElement('h3', {
  50743.         className: 'text-large text-center spacing-bottom'
  50744.       }, C.a.createElement('span', {
  50745.         className: 'icon icon-warning icon__position spacing-right subscription-modal__warning'
  50746.       }), 'Payment Error'), C.a.createElement('p', {
  50747.         className: 'spacing-bottom-double subscription-modal__paragraph-middle text-center'
  50748.       }, t), C.a.createElement('div', {
  50749.         className: 'align align--between align--center'
  50750.       }, C.a.createElement('button', {
  50751.         className: 'button button-fill--brand text-small button-padding-wide',
  50752.         onClick: e
  50753.       }, 'Return to Subscription & Billing')))
  50754.     };
  50755.     s.propTypes = {
  50756.       message: b.a.string.isRequired,
  50757.       onClose: b.a.func.isRequired
  50758.     };
  50759.     var lI = s,
  50760.     go = n(517),
  50761.     cI = n.n(go);
  50762.     function uI(e) {
  50763.       return (uI = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  50764.         return typeof e
  50765.       }
  50766.        : function (e) {
  50767.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  50768.       }) (e)
  50769.     }
  50770.     function pI(t, e) {
  50771.       var n,
  50772.       a = Object.keys(t);
  50773.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  50774.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  50775.       })), a.push.apply(a, n)),
  50776.       a
  50777.     }
  50778.     function dI(t) {
  50779.       for (var e = 1; e < arguments.length; e++) {
  50780.         var n = null != arguments[e] ? arguments[e] : {
  50781.         };
  50782.         e % 2 ? pI(Object(n), !0).forEach(function (e) {
  50783.           bI(t, e, n[e])
  50784.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : pI(Object(n)).forEach(function (e) {
  50785.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  50786.         })
  50787.       }
  50788.       return t
  50789.     }
  50790.     function mI(e, t) {
  50791.       for (var n = 0; n < t.length; n++) {
  50792.         var a = t[n];
  50793.         a.enumerable = a.enumerable || !1,
  50794.         a.configurable = !0,
  50795.         'value' in a && (a.writable = !0),
  50796.         Object.defineProperty(e, a.key, a)
  50797.       }
  50798.     }
  50799.     function fI(e, t) {
  50800.       return (fI = Object.setPrototypeOf || function (e, t) {
  50801.         return e.__proto__ = t,
  50802.         e
  50803.       }) (e, t)
  50804.     }
  50805.     function hI(n) {
  50806.       var a = function () {
  50807.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  50808.         if (Reflect.construct.sham) return !1;
  50809.         if ('function' == typeof Proxy) return !0;
  50810.         try {
  50811.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  50812.           ], function () {
  50813.           })),
  50814.           !0
  50815.         } catch (e) {
  50816.           return !1
  50817.         }
  50818.       }();
  50819.       return function () {
  50820.         var e,
  50821.         t = yI(n);
  50822.         return e = a ? (e = yI(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  50823.         t = this,
  50824.         !(e = e) || 'object' !== uI(e) && 'function' != typeof e ? gI(t) : e
  50825.       }
  50826.     }
  50827.     function gI(e) {
  50828.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  50829.       return e
  50830.     }
  50831.     function yI(e) {
  50832.       return (yI = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  50833.         return e.__proto__ || Object.getPrototypeOf(e)
  50834.       }) (e)
  50835.     }
  50836.     function bI(e, t, n) {
  50837.       return t in e ? Object.defineProperty(e, t, {
  50838.         value: n,
  50839.         enumerable: !0,
  50840.         configurable: !0,
  50841.         writable: !0
  50842.       }) : e[t] = n,
  50843.       e
  50844.     }
  50845.     F = function () {
  50846.       !function (e, t) {
  50847.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  50848.         e.prototype = Object.create(t && t.prototype, {
  50849.           constructor: {
  50850.             value: e,
  50851.             writable: !0,
  50852.             configurable: !0
  50853.           }
  50854.         }),
  50855.         t && fI(e, t)
  50856.       }(o, A);
  50857.       var e,
  50858.       t,
  50859.       n,
  50860.       r = hI(o);
  50861.       function o() {
  50862.         var a;
  50863.         !function (e, t) {
  50864.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  50865.         }(this, o);
  50866.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  50867.         return bI(gI(a = r.call.apply(r, [
  50868.           this
  50869.         ].concat(t))), 'state', dI({
  50870.           isDirty: !1,
  50871.           isSaved: !1,
  50872.           saveErr: null
  50873.         }, Ur.INVOICE_FIELDS.reduce(function (e, t) {
  50874.           return dI(dI({
  50875.           }, e), {
  50876.           }, bI({
  50877.           }, t, (a.props.syncedInvoiceFields || {
  50878.           }) [t] || ''))
  50879.         }, {
  50880.         }))),
  50881.         bI(gI(a), 'onFieldChange', function (e, t) {
  50882.           var n = bI({
  50883.             isDirty: !0,
  50884.             isSaved: !1
  50885.           }, e, t.target.value);
  50886.           'country' === e && (n.countryId = t.target.key),
  50887.           a.setState(n)
  50888.         }),
  50889.         bI(gI(a), 'getCountryOptions', function () {
  50890.           return cI.a.getAllCountries().map(function (e) {
  50891.             return {
  50892.               key: e.id,
  50893.               value: e.sortname,
  50894.               label: e.name
  50895.             }
  50896.           })
  50897.         }),
  50898.         bI(gI(a), 'getStateOptions', function () {
  50899.           var e = cI.a.getStatesOfCountry(a.state.countryId);
  50900.           return 1 < e.length ? e.map(function (e) {
  50901.             return {
  50902.               key: e.id,
  50903.               value: e.name,
  50904.               label: e.name
  50905.             }
  50906.           }) : [
  50907.           ]
  50908.         }),
  50909.         bI(gI(a), 'save', function () {
  50910.           a.props.onSave(Ur.INVOICE_FIELDS.reduce(function (e, t) {
  50911.             return dI(dI({
  50912.             }, e), {
  50913.             }, bI({
  50914.             }, t, a.state[t]))
  50915.           }, {
  50916.           }))
  50917.         }),
  50918.         a
  50919.       }
  50920.       return e = o,
  50921.       (t = [
  50922.         {
  50923.           key: 'componentWillReceiveProps',
  50924.           value: function (e) {
  50925.             var t,
  50926.             n = this;
  50927.             this.props.isInvoiceUpdating && !e.isInvoiceUpdating && (t = e.syncedInvoiceFields || {
  50928.             }, e = Ur.INVOICE_FIELDS.every(function (e) {
  50929.               return !n.state[e] && !t[e] || n.state[e] === t[e]
  50930.             }), this.setState({
  50931.               isDirty: !e,
  50932.               isSaved: e,
  50933.               saveErr: e ? null : 'We were unable to save your changes. Please try again later.'
  50934.             }))
  50935.           }
  50936.         },
  50937.         {
  50938.           key: 'render',
  50939.           value: function () {
  50940.             var e = this.getCountryOptions(),
  50941.             t = this.getStateOptions();
  50942.             return C.a.createElement(_.a, {
  50943.               className: 'admin-modal -clipped -wider invoice-modal',
  50944.               overlayClassName: 'modal-overlay -dark',
  50945.               isOpen: !0,
  50946.               onRequestClose: this.props.onClose
  50947.             }, C.a.createElement('div', {
  50948.               className: 'admin-modal__header'
  50949.             }, C.a.createElement('div', {
  50950.               className: 'align align--between'
  50951.             }, C.a.createElement('h3', {
  50952.               className: 'text-larger spacing-bottom-small'
  50953.             }, 'Customize Invoices'), C.a.createElement('button', {
  50954.               className: 'link-gray',
  50955.               onClick: this.props.onClose
  50956.             }, C.a.createElement('span', {
  50957.               className: 'icon-cancel icon__position'
  50958.             }))), C.a.createElement('div', {
  50959.               className: 'text-gray'
  50960.             }, 'Add information to the invoices you receive from Disqus. This information will be stored securely.')), C.a.createElement('div', {
  50961.               className: 'admin-modal__content spacing-bottom-narrow padding-default'
  50962.             }, C.a.createElement('div', {
  50963.               className: 'spacing-bottom'
  50964.             }, C.a.createElement('label', {
  50965.               className: 'text-semibold text-gray text-base'
  50966.             }, 'Company Name', C.a.createElement('input', {
  50967.               className: 'input--textbox',
  50968.               type: 'text',
  50969.               placeholder: 'Acme Inc.',
  50970.               onChange: this.onFieldChange.bind(this, 'companyName'),
  50971.               value: this.state.companyName
  50972.             }))), C.a.createElement('div', {
  50973.               className: 'spacing-bottom'
  50974.             }, C.a.createElement('label', {
  50975.               className: 'text-semibold text-gray text-base'
  50976.             }, 'Tax ID', C.a.createElement('input', {
  50977.               className: 'input--textbox',
  50978.               type: 'text',
  50979.               placeholder: '123-45-6789',
  50980.               onChange: this.onFieldChange.bind(this, 'taxId'),
  50981.               value: this.state.taxId
  50982.             }))), C.a.createElement('div', {
  50983.               className: 'text-base text-semibold text-gray spacing-top spacing-bottom-small'
  50984.             }, 'Address'), C.a.createElement('div', {
  50985.               className: 'align align--between spacing-top-small spacing-bottom-small'
  50986.             }, C.a.createElement('label', {
  50987.               className: 'text-semibold text-gray fieldset-item__input align align--column spacing-right'
  50988.             }, 'Country', C.a.createElement(Mf, {
  50989.               name: 'country',
  50990.               placeholder: 'Select a Country',
  50991.               options: e,
  50992.               value: this.state.country,
  50993.               onChange: this.onFieldChange.bind(this, 'country'),
  50994.               searchable: !0,
  50995.               inline: !0,
  50996.               width: 290
  50997.             })), C.a.createElement('label', {
  50998.               className: 'text-semibold text-gray fieldset-item__input align align--column spacing-right'.concat(this.state.country && !t.length ? ' hidden' : '')
  50999.             }, 'State/Province', C.a.createElement(Mf, {
  51000.               name: 'state',
  51001.               placeholder: 'Select a State',
  51002.               options: t,
  51003.               value: this.state.state,
  51004.               onChange: this.onFieldChange.bind(this, 'state'),
  51005.               searchable: !0,
  51006.               inline: !0,
  51007.               width: 240
  51008.             }))), C.a.createElement('div', {
  51009.               className: 'align align--between spacing-top spacing-bottom-small'
  51010.             }, C.a.createElement('label', {
  51011.               className: 'text-semibold text-gray align align--column fieldset-item__input spacing-right'
  51012.             }, 'Street Address', C.a.createElement('input', {
  51013.               className: 'input--textbox',
  51014.               type: 'text',
  51015.               placeholder: '1234 N. Broadway St.',
  51016.               onChange: this.onFieldChange.bind(this, 'street'),
  51017.               value: this.state.street
  51018.             })), C.a.createElement('label', {
  51019.               className: 'text-semibold text-gray align align--column'
  51020.             }, 'City', C.a.createElement('input', {
  51021.               className: 'input--textbox',
  51022.               type: 'text',
  51023.               placeholder: 'New York',
  51024.               onChange: this.onFieldChange.bind(this, 'city'),
  51025.               value: this.state.city
  51026.             }))), C.a.createElement('div', {
  51027.               className: 'align align--between spacing-top spacing-bottom-small'
  51028.             }, C.a.createElement('label', {
  51029.               className: 'text-semibold text-gray align align--column fieldset-item__input'
  51030.             }, 'Zip/Postal Code', C.a.createElement('input', {
  51031.               className: 'input--textbox',
  51032.               type: 'text',
  51033.               placeholder: '98765',
  51034.               onChange: this.onFieldChange.bind(this, 'zipCode'),
  51035.               value: this.state.zipCode,
  51036.               style: {
  51037.                 width: '120px'
  51038.               }
  51039.             })))), C.a.createElement('div', {
  51040.               className: 'admin-modal__footer'
  51041.             }, C.a.createElement(Bh, {
  51042.               disabled: !this.state.isDirty,
  51043.               onClick: this.save,
  51044.               isSaving: this.props.isInvoiceUpdating,
  51045.               isSaved: this.state.isSaved,
  51046.               saveErr: !!this.state.saveErr
  51047.             }, this.state.saveErr ? C.a.createElement('div', {
  51048.               className: 'spacing-top-narrow'
  51049.             }, this.state.saveErr) : null, this.state.isSaved ? C.a.createElement('div', {
  51050.               className: 'spacing-top-narrow save-message'
  51051.             }, 'Your information was updated') : null)))
  51052.           }
  51053.         }
  51054.       ]) && mI(e.prototype, t),
  51055.       n && mI(e, n),
  51056.       o
  51057.     }();
  51058.     bI(F, 'propTypes', {
  51059.       onClose: b.a.func.isRequired,
  51060.       onSave: b.a.func.isRequired,
  51061.       isInvoiceUpdating: b.a.bool,
  51062.       syncedInvoiceFields: b.a.shape(Ur.INVOICE_SHAPE)
  51063.     });
  51064.     var vI = F,
  51065.     rc = function (e) {
  51066.       return C.a.createElement(_.a, {
  51067.         className: 'admin-modal subscription-updating-modal -clipped padding-double padding-bottom-none',
  51068.         overlayClassName: 'modal-overlay -dark',
  51069.         isOpen: e.isOpen
  51070.       }, C.a.createElement('h3', {
  51071.         className: 'text-larger text-center spacing-bottom'
  51072.       }, 'Launching Your Subscription!'), C.a.createElement('div', {
  51073.         className: 'align'
  51074.       }, C.a.createElement('div', {
  51075.         className: 'align__item--flex-1'
  51076.       }, C.a.createElement('img', {
  51077.         src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/rocket.svg',
  51078.         className: 'img-responsive'
  51079.       }))))
  51080.     };
  51081.     rc.propTypes = {
  51082.       isOpen: b.a.bool
  51083.     };
  51084.     var _I = rc,
  51085.     yl = function (e) {
  51086.       var o = e.formatPaymentDate,
  51087.       t = e.orgBilling,
  51088.       r = e.orgCurrentPackage,
  51089.       n = e.orgCurrentPackageWillCancel,
  51090.       a = e.currentSubscription,
  51091.       i = e.onUpdatePaymentInfo,
  51092.       s = e.onSubscribe,
  51093.       l = e.showInvoiceCustomizationModal,
  51094.       c = e.orgAvailableDiscount,
  51095.       u = e.currentPollsSubscription,
  51096.       p = e.pollsOrgCurrentPackageWillCancel,
  51097.       d = e.pollsOrgCurrentPackage,
  51098.       m = e.pollsOrgAvailableDiscount,
  51099.       f = e.organization,
  51100.       h = e.pollsPlanStatus,
  51101.       g = null;
  51102.       a && (a.status === Ur.SAAS_PRODUCT_PLAN_TRIALING_STATUS ? g = a.trialEnd : a.status !== Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUS && a.status !== Ur.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS || (g = a.currentPeriodEnd));
  51103.       var y = null;
  51104.       u && (u.status === Ur.SAAS_PRODUCT_PLAN_TRIALING_STATUS ? y = u.trialEnd : u.status !== Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUS && u.status !== Ur.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS || (y = u.currentPeriodEnd));
  51105.       var b,
  51106.       v,
  51107.       _,
  51108.       E,
  51109.       O = t.invoiceHistory.filter(function (e) {
  51110.         return parseInt(e.total, 10)
  51111.       }),
  51112.       S = null !== g && !n && a.amount,
  51113.       w = null !== y && !p && u.amount,
  51114.       P = r && je.a.find(r.plans, function (e) {
  51115.         return e.isSubscribed
  51116.       }),
  51117.       k = d && je.a.find(d.plans, function (e) {
  51118.         return e.isSubscribed
  51119.       }),
  51120.       N = t.paymentInfo && '' + t.paymentInfo.expMonth,
  51121.       e = t.paymentInfo && '' + t.paymentInfo.expYear,
  51122.       p = function (e) {
  51123.         e.preventDefault();
  51124.         var t = !f.pollsOnly && P && P.interval || k && k.interval || 'month',
  51125.         n = 'year' === t ? P.id.replace('yearly', 'monthly') : P.id.replace('monthly', 'yearly'),
  51126.         e = n !== P.id && je.a.find(r.plans, function (e) {
  51127.           return e.id === n && e.amount
  51128.         }),
  51129.         a = k && ('year' === t ? k.id.replace('yearly', 'monthly') : k.id.replace('monthly', 'yearly')),
  51130.         t = d && a !== k.id && je.a.find(d.plans, function (e) {
  51131.           return e.id === a && e.amount
  51132.         });
  51133.         e && t ? s(e, r, t, d) : t ? s(t, d) : s(e, r)
  51134.       },
  51135.       e = C.a.createElement('div', {
  51136.         className: 'subscription__billing-info'
  51137.       }, t.paymentInfo ? C.a.createElement('div', {
  51138.         className: 'subscription__card'
  51139.       }, C.a.createElement('section', null, C.a.createElement('p', {
  51140.         className: 'card-info text-bold'
  51141.       }, C.a.createElement('span', null, '************', t.paymentInfo.last4)), C.a.createElement('p', {
  51142.         className: 'card-info'
  51143.       }, C.a.createElement('span', {
  51144.         className: 'card-info card-info__brand'
  51145.       }, t.paymentInfo.brand), C.a.createElement('span', null, 1 === N.length ? '0' : '', N, '/', e.substr(e.length - 2, e.length))))) : C.a.createElement('div', {
  51146.         className: 'subscription__card --no-card-info'
  51147.       }, C.a.createElement('section', null, C.a.createElement('p', {
  51148.         className: 'card-info'
  51149.       }, 'No credit card found'))), C.a.createElement('a', {
  51150.         className: 'update-card',
  51151.         href: '#',
  51152.         onClick: function (e) {
  51153.           e.preventDefault(),
  51154.           i()
  51155.         }
  51156.       }, 'Update payment info', t.paymentInfo ? '' : ' to continue your subscription'));
  51157.       O.length && !O[0].paid && (b = _ = 'We attempted to charge your credit card on '.concat(o(O[0].date), ' but it was declined.'), a && a.status === Ur.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS ? b += ' Please update your payment method to prevent being reverted to an Ad-Supported plan.' : r.id === Ur.DISQUS_BASIC_PACKAGE_ID && (b += ' You have been reverted to an Ad-Supported plan. Please re-subscribe to a plan with an updated payment method.'), u && u.status === Ur.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS ? _ += ' Please update your payment method to prevent your subscription being cancelled.' : d && d.id || (_ += ' Your subscription to Polls has been cancelled for non-payment. To continue using Polls, please re-subscribe to a plan with an updated payment method.'));
  51158.       g = S ? 'Your next charge is on '.concat(o(g)) : 'You have no upcoming payments due.',
  51159.       y = w ? 'Your next charge is on '.concat(o(y)) : 'You have no upcoming payments due.';
  51160.       f.pollsOnly || (v = r.id === Ur.DISQUS_BUSINESS_PACKAGE_ID ? C.a.createElement('span', {
  51161.         className: 'text-bold'
  51162.       }, 'Custom Pricing') : P.amount ? c ? C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  51163.         className: 'text-strikethrough text-bold spacing-right-small'
  51164.       }, '$', Object(Tl.formatPlanAmount) (P.amount)), C.a.createElement('span', {
  51165.         className: 'text-bold'
  51166.       }, '$', Object(Tl.formatPlanAmount) (c))) : C.a.createElement('span', {
  51167.         className: 'text-bold'
  51168.       }, '$', Object(Tl.formatPlanAmount) (P.amount)) : C.a.createElement('span', {
  51169.         className: 'text-bold'
  51170.       }, 'Free')),
  51171.       f.pollsActivationDate && d && (E = d.id === Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID ? C.a.createElement('span', {
  51172.         className: 'text-bold'
  51173.       }, 'Custom Pricing') : k.amount ? m ? C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  51174.         className: 'text-strikethrough text-bold spacing-right-small'
  51175.       }, '$', Object(Tl.formatPlanAmount) (k.amount)), C.a.createElement('span', {
  51176.         className: 'text-bold'
  51177.       }, '$', Object(Tl.formatPlanAmount) (m))) : C.a.createElement('span', {
  51178.         className: 'text-bold'
  51179.       }, '$', Object(Tl.formatPlanAmount) (k.amount)) : C.a.createElement('span', {
  51180.         className: 'text-bold'
  51181.       }, 'Free'));
  51182.       p = C.a.createElement('div', {
  51183.         className: 'subscription__billing-info next-payment'
  51184.       }, !f.pollsOnly && C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  51185.         className: 'align align--between'
  51186.       }, C.a.createElement('p', {
  51187.         className: 'text-bold'
  51188.       }, 'Comments'), C.a.createElement('p', null, v, S && C.a.createElement('span', {
  51189.         className: 'text-small'
  51190.       }, ' Billed ', 'year' === P.interval ? 'Yearly' : 'Monthly'))), C.a.createElement('div', {
  51191.         className: 'text-small spacing-top'
  51192.       }, b || g), C.a.createElement('div', {
  51193.         className: 'next-payment--divider'
  51194.       })), h === Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS ? null : f.pollsActivationDate && d && C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  51195.         className: 'align align--between'
  51196.       }, C.a.createElement('p', {
  51197.         className: 'text-bold'
  51198.       }, 'Polls'), C.a.createElement('p', null, E, w && C.a.createElement('span', {
  51199.         className: 'text-small'
  51200.       }, ' Billed ', 'year' === k.interval ? 'Yearly' : 'Monthly'))), C.a.createElement('div', {
  51201.         className: 'text-small spacing-top'
  51202.       }, _ || y), C.a.createElement('div', {
  51203.         className: 'next-payment--divider'
  51204.       })), C.a.createElement('a', {
  51205.         className: 'switch-interval',
  51206.         href: '#',
  51207.         onClick: p
  51208.       }, 'Switch to ', f.pollsOnly ? 'year' === k.interval ? 'Monthly' : 'Yearly' : 'year' === P.interval ? 'Monthly' : 'Yearly', ' billing')),
  51209.       n = C.a.createElement('p', {
  51210.         className: 'text-gray text-small spacing-top'
  51211.       }, t.paymentInfo ? null : C.a.createElement('span', null, 'We have no payment info on file.', n ? null : ' If you would like to continue your subscription, please enter payment info before your next charge.', ' ', 'Having no working payment method at the start of the billing cycle will result in your subscription being cancelled.'));
  51212.       return C.a.createElement('section', null, C.a.createElement('div', {
  51213.         className: 'fieldset spacing-bottom-double'
  51214.       }, C.a.createElement('span', {
  51215.         className: 'fieldset__label text-gray spacing-right padding-top-none '
  51216.       }, 'Billing'), C.a.createElement('div', {
  51217.         className: 'fieldset__block'
  51218.       }, C.a.createElement('div', {
  51219.         className: 'payment-info'
  51220.       }, e, p), n)), C.a.createElement('div', {
  51221.         className: 'fieldset subscription-payment'
  51222.       }, C.a.createElement('span', {
  51223.         className: 'fieldset__label text-gray spacing-right'
  51224.       }, 'Invoice History'), C.a.createElement('div', {
  51225.         className: 'fieldset__block spacing-top-narrow text-medium'
  51226.       }, C.a.createElement('div', {
  51227.         className: 'spacing-bottom'
  51228.       }, 'Invoices are delivered to your organization\'s admin\'s email address.', ' ', C.a.createElement('a', {
  51229.         href: '#',
  51230.         onClick: l
  51231.       }, 'Customize your invoices'), '.'), O.length ? C.a.createElement('ul', {
  51232.         className: 'subscription-payment-list'
  51233.       }, C.a.createElement('li', {
  51234.         className: 'subscription-payment-list__list-item'
  51235.       }, C.a.createElement('span', {
  51236.         className: 'subscription-payment-list__header'
  51237.       }, 'Invoice Date'), C.a.createElement('span', {
  51238.         className: 'subscription-payment-list__header'
  51239.       }, 'Total')), O.map(function (e, t) {
  51240.         var n = e.total,
  51241.         a = e.paid,
  51242.         r = e.invoicePdf;
  51243.         return C.a.createElement('li', {
  51244.           key: t,
  51245.           className: 'subscription-payment-list__list-item'
  51246.         }, C.a.createElement('span', {
  51247.           className: 'subscription-payment-list__payment-date'
  51248.         }, o(e.date)), C.a.createElement('span', {
  51249.           className: 'subscription-payment-list__payment-'.concat(a ? 'paid' : 'error')
  51250.         }, a ? '$'.concat(n) : 'Payment declined', ' ', r ? C.a.createElement('a', {
  51251.           href: r
  51252.         }, C.a.createElement('span', {
  51253.           className: 'icon-download'
  51254.         })) : null))
  51255.       })) : C.a.createElement('div', {
  51256.         className: 'spacing-bottom'
  51257.       }, 'Your organization has no payment history.'))))
  51258.     };
  51259.     yl.propTypes = {
  51260.       formatPaymentDate: b.a.func.isRequired,
  51261.       orgBilling: Ur.ORG_BILLING_SHAPE.isRequired,
  51262.       orgCurrentPackage: Ur.PACKAGE_SHAPE.isRequired,
  51263.       orgCurrentPackageWillCancel: b.a.bool,
  51264.       currentSubscription: Ur.CURRENT_SUBSCRIPTION_SHAPE,
  51265.       onUpdatePaymentInfo: b.a.func,
  51266.       onSubscribe: b.a.func.isRequired,
  51267.       showInvoiceCustomizationModal: b.a.func.isRequired,
  51268.       orgAvailableDiscount: b.a.number,
  51269.       currentPollsSubscription: Ur.CURRENT_SUBSCRIPTION_SHAPE,
  51270.       pollsOrgCurrentPackageWillCancel: b.a.bool,
  51271.       pollsOrgCurrentPackage: Ur.PACKAGE_SHAPE.isRequired,
  51272.       pollsOrgAvailableDiscount: b.a.number,
  51273.       organization: b.a.object.isRequired,
  51274.       pollsPlanStatus: b.a.oneOf([Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  51275.       Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  51276.       Ur.SAAS_PRODUCT_PLAN_TRIALING_STATUS])
  51277.     };
  51278.     var EI = Object(u.connect) (function (e) {
  51279.       var t = e.subscription;
  51280.       return {
  51281.         organization: e.selection.organization,
  51282.         orgAvailableDiscount: t.orgAvailableDiscount,
  51283.         pollsOrgAvailableDiscount: t.pollsOrgAvailableDiscount,
  51284.         pollsPlanStatus: t.pollsPlanStatus
  51285.       }
  51286.     }) (yl);
  51287.     function OI(e) {
  51288.       return (OI = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  51289.         return typeof e
  51290.       }
  51291.        : function (e) {
  51292.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  51293.       }) (e)
  51294.     }
  51295.     function SI(e, t) {
  51296.       for (var n = 0; n < t.length; n++) {
  51297.         var a = t[n];
  51298.         a.enumerable = a.enumerable || !1,
  51299.         a.configurable = !0,
  51300.         'value' in a && (a.writable = !0),
  51301.         Object.defineProperty(e, a.key, a)
  51302.       }
  51303.     }
  51304.     function wI(e, t) {
  51305.       return (wI = Object.setPrototypeOf || function (e, t) {
  51306.         return e.__proto__ = t,
  51307.         e
  51308.       }) (e, t)
  51309.     }
  51310.     function PI(n) {
  51311.       var a = function () {
  51312.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  51313.         if (Reflect.construct.sham) return !1;
  51314.         if ('function' == typeof Proxy) return !0;
  51315.         try {
  51316.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  51317.           ], function () {
  51318.           })),
  51319.           !0
  51320.         } catch (e) {
  51321.           return !1
  51322.         }
  51323.       }();
  51324.       return function () {
  51325.         var e,
  51326.         t = NI(n);
  51327.         return e = a ? (e = NI(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  51328.         t = this,
  51329.         !(e = e) || 'object' !== OI(e) && 'function' != typeof e ? kI(t) : e
  51330.       }
  51331.     }
  51332.     function kI(e) {
  51333.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  51334.       return e
  51335.     }
  51336.     function NI(e) {
  51337.       return (NI = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  51338.         return e.__proto__ || Object.getPrototypeOf(e)
  51339.       }) (e)
  51340.     }
  51341.     var CI = function () {
  51342.       !function (e, t) {
  51343.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  51344.         e.prototype = Object.create(t && t.prototype, {
  51345.           constructor: {
  51346.             value: e,
  51347.             writable: !0,
  51348.             configurable: !0
  51349.           }
  51350.         }),
  51351.         t && wI(e, t)
  51352.       }(l, A);
  51353.       var e,
  51354.       t,
  51355.       n,
  51356.       s = PI(l);
  51357.       function l() {
  51358.         var e;
  51359.         !function (e, t) {
  51360.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  51361.         }(this, l);
  51362.         for (var t, n, a, r = arguments.length, o = Array(r), i = 0; i < r; i++) o[i] = arguments[i];
  51363.         return e = s.call.apply(s, [
  51364.           this
  51365.         ].concat(o)),
  51366.         t = kI(e),
  51367.         a = 'cancellation@disqus.com',
  51368.         (n = 'email') in t ? Object.defineProperty(t, n, {
  51369.           value: a,
  51370.           enumerable: !0,
  51371.           configurable: !0,
  51372.           writable: !0
  51373.         }) : t[n] = a,
  51374.         e
  51375.       }
  51376.       return e = l,
  51377.       (t = [
  51378.         {
  51379.           key: 'render',
  51380.           value: function () {
  51381.             return C.a.createElement('header', {
  51382.               className: 'settings__header settings-inline-section align align--between align--middle'
  51383.             }, C.a.createElement('div', {
  51384.               className: 'align align--column spacing-right-large'
  51385.             }, C.a.createElement('h2', {
  51386.               className: 'text-gray-darker text-larger spacing-bottom-small'
  51387.             }, 'Cancel your subscription'), C.a.createElement('p', {
  51388.               className: 'text-gray spacing-bottom'
  51389.             }, 'You may change or cancel your Disqus subscription at any time by emailing ', C.a.createElement('a', {
  51390.               href: 'mailto:'.concat(this.email)
  51391.             }, this.email), '.')))
  51392.           }
  51393.         }
  51394.       ]) && SI(e.prototype, t),
  51395.       n && SI(e, n),
  51396.       l
  51397.     }(),
  51398.     RI = n(175),
  51399.     Wi = function (e) {
  51400.       var t = e.onSubscribe,
  51401.       n = e.onClose,
  51402.       a = e.curPackage,
  51403.       r = e.newPackage,
  51404.       o = e.newPlan,
  51405.       i = e.amountRemaining,
  51406.       s = e.secondCurPackage,
  51407.       l = e.secondNewPackage,
  51408.       c = e.secondNewPlan,
  51409.       u = e.secondAmountRemaining,
  51410.       p = e.coupon,
  51411.       d = e.orgAvailableDiscount,
  51412.       m = e.paymentInfoAvailable,
  51413.       f = e.organization,
  51414.       h = function (e) {
  51415.         return e.id === Ur.DISQUS_PLUS_FREE_PACKAGE_ID ? 'Plus Free' : e.name
  51416.       },
  51417.       g = a && h(a),
  51418.       y = h(r),
  51419.       b = g && g !== y,
  51420.       v = o.amount && p && Object(Tl.isNewPackageCouponEligible) (a, r) ? Object(Tl.getDiscountedAmount) (o.amount, p) : o.amount,
  51421.       e = c && (c.amount && p && Object(Tl.isNewPackageCouponEligible) (s, l) ? Object(Tl.getDiscountedAmount) (c.amount, p) : c.amount),
  51422.       h = a && a.productName === Ur.SAAS_PRODUCT_COMMENTS && f && f.pollsOnly,
  51423.       p = !a || h ? 'You are subscribing to '.concat(y, '.') : b ? 'You are unsubscribing from '.concat(g, ' and subscribing to ').concat(y, '.') : a && s ? 'You are updating your subscriptions.' : 'You are updating your subscription to '.concat(g, '.'),
  51424.       f = '';
  51425.       return o.amount && c && c.amount ? f = 'Your monthly subscription cost will now be $'.concat(Object(Tl.formatPlanAmount) ('year' === o.interval ? v / RI.MONTHS_PER_YEAR : v), ' for ').concat(o.productName, ' and $').concat(Object(Tl.formatPlanAmount) ('year' === c.interval ? e / RI.MONTHS_PER_YEAR : e), ' for ').concat(c.productName, '.') : o.amount && (f = 'Your monthly subscription cost will now be $'.concat(Object(Tl.formatPlanAmount) ('year' === o.interval ? v / RI.MONTHS_PER_YEAR : v), '.').concat(o.hasTrialAvailable ? ' You will not be charged until your trial ends.' : '')),
  51426.       (i || u) && (u = (Number.parseFloat(i || 0) + Number.parseFloat(u || 0)).toFixed(2), f += ' The remaining amount of $'.concat(u, ' from your current').concat(a && s ? '' : ' '.concat(a.name), ' plan will be added as credit ').concat(o.amount ? ' towards your new'.concat(r && l ? '' : ' '.concat(r.name), ' plan.') : ' to your account. You can use this credit towards future subscriptions.')),
  51427.       d && (f += ' Upon updating, any previously applied Coupons will be no longer be honored.'),
  51428.       C.a.createElement(_.a, {
  51429.         className: 'admin-modal -clipped -wider padding-double',
  51430.         overlayClassName: 'modal-overlay -dark',
  51431.         isOpen: !0,
  51432.         onRequestClose: n
  51433.       }, C.a.createElement('h3', {
  51434.         className: 'text-larger text-center spacing-bottom'
  51435.       }, m ? 'Billing Update' : 'Subscribe to '.concat(y)), C.a.createElement('div', {
  51436.         className: 'spacing-bottom text-large'
  51437.       }, C.a.createElement('p', {
  51438.         className: 'text-semibold spacing-bottom-narrow'
  51439.       }, p), C.a.createElement('div', null, f)), C.a.createElement('div', {
  51440.         className: 'align align--between'
  51441.       }, C.a.createElement('button', {
  51442.         className: 'button button-fill text-small button-wide',
  51443.         onClick: n
  51444.       }, b && !h ? 'Stay on '.concat(g) : 'Cancel'), C.a.createElement('button', {
  51445.         className: 'button button-fill--brand text-small button-wide spacing-left-large',
  51446.         onClick: function () {
  51447.           n(),
  51448.           t()
  51449.         }
  51450.       }, b ? 'Subscribe to '.concat(y) : 'Confirm')))
  51451.     };
  51452.     Wi.propTypes = {
  51453.       onSubscribe: b.a.func,
  51454.       onClose: b.a.func.isRequired,
  51455.       curPackage: Ur.PACKAGE_SHAPE.isRequired,
  51456.       newPackage: Ur.PACKAGE_SHAPE.isRequired,
  51457.       newPlan: Ur.PLAN_SHAPE.isRequired,
  51458.       amountRemaining: b.a.string,
  51459.       secondCurPackage: Ur.PACKAGE_SHAPE,
  51460.       secondNewPackage: Ur.PACKAGE_SHAPE,
  51461.       secondNewPlan: Ur.PLAN_SHAPE,
  51462.       secondAmountRemaining: b.a.string,
  51463.       coupon: Ur.COUPON_SHAPE,
  51464.       orgAvailableDiscount: b.a.number,
  51465.       paymentInfoAvailable: b.a.bool,
  51466.       organization: b.a.object
  51467.     };
  51468.     var xI = Wi;
  51469.     function AI(e) {
  51470.       return (AI = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  51471.         return typeof e
  51472.       }
  51473.        : function (e) {
  51474.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  51475.       }) (e)
  51476.     }
  51477.     function DI(e, t) {
  51478.       for (var n = 0; n < t.length; n++) {
  51479.         var a = t[n];
  51480.         a.enumerable = a.enumerable || !1,
  51481.         a.configurable = !0,
  51482.         'value' in a && (a.writable = !0),
  51483.         Object.defineProperty(e, a.key, a)
  51484.       }
  51485.     }
  51486.     function jI(e, t) {
  51487.       return (jI = Object.setPrototypeOf || function (e, t) {
  51488.         return e.__proto__ = t,
  51489.         e
  51490.       }) (e, t)
  51491.     }
  51492.     function TI(n) {
  51493.       var a = function () {
  51494.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  51495.         if (Reflect.construct.sham) return !1;
  51496.         if ('function' == typeof Proxy) return !0;
  51497.         try {
  51498.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  51499.           ], function () {
  51500.           })),
  51501.           !0
  51502.         } catch (e) {
  51503.           return !1
  51504.         }
  51505.       }();
  51506.       return function () {
  51507.         var e,
  51508.         t = qI(n);
  51509.         return e = a ? (e = qI(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  51510.         t = this,
  51511.         !(e = e) || 'object' !== AI(e) && 'function' != typeof e ? II(t) : e
  51512.       }
  51513.     }
  51514.     function II(e) {
  51515.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  51516.       return e
  51517.     }
  51518.     function qI(e) {
  51519.       return (qI = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  51520.         return e.__proto__ || Object.getPrototypeOf(e)
  51521.       }) (e)
  51522.     }
  51523.     function FI(e, t, n) {
  51524.       return t in e ? Object.defineProperty(e, t, {
  51525.         value: n,
  51526.         enumerable: !0,
  51527.         configurable: !0,
  51528.         writable: !0
  51529.       }) : e[t] = n,
  51530.       e
  51531.     }
  51532.     function LI(e) {
  51533.       return e && e.isActive
  51534.     }
  51535.     function UI(e) {
  51536.       return e.filter(function (e) {
  51537.         return 0 < parseFloat(e.total) && e.paid
  51538.       })
  51539.     }
  51540.     function MI(e) {
  51541.       return ct() (e).format('MM/DD/YY')
  51542.     }
  51543.     var BI = 0,
  51544.     zI = 1,
  51545.     HI = 2,
  51546.     GI = 4,
  51547.     VI = 5,
  51548.     WI = 6,
  51549.     YI = 7,
  51550.     QI = 8,
  51551.     Ru = {
  51552.       zone: 'install',
  51553.       section: 'plan'
  51554.     },
  51555.     KI = '/install/welcome',
  51556.     JI = '/polls/list/',
  51557.     r = function () {
  51558.       !function (e, t) {
  51559.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  51560.         e.prototype = Object.create(t && t.prototype, {
  51561.           constructor: {
  51562.             value: e,
  51563.             writable: !0,
  51564.             configurable: !0
  51565.           }
  51566.         }),
  51567.         t && jI(e, t)
  51568.       }(o, A);
  51569.       var e,
  51570.       t,
  51571.       n,
  51572.       a = TI(o);
  51573.       function o(e) {
  51574.         var r;
  51575.         return function (e, t) {
  51576.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  51577.         }(this, o),
  51578.         FI(II(r = a.call(this, e)), 'handleCloseModal', function () {
  51579.           r.setState({
  51580.             modal: {
  51581.               type: BI,
  51582.               data: null
  51583.             }
  51584.           })
  51585.         }),
  51586.         FI(II(r), 'trackButtonClick', function (e) {
  51587.           return r.props.emitTrackingEvent({
  51588.             verb: 'click',
  51589.             object_type: 'button',
  51590.             object_id: e && e.id !== Ur.DISQUS_BASIC_PLAN_ID ? e.id : 'basic'
  51591.           })
  51592.         }),
  51593.         FI(II(r), 'trackModalView', function () {
  51594.           r.props.orgCurrentPackage && r.props.emitTrackingEvent({
  51595.             verb: 'view',
  51596.             section: 'plan_selected_modal',
  51597.             extra_data: JSON.stringify({
  51598.               package: r.props.orgCurrentPackage.id
  51599.             })
  51600.           })
  51601.         }),
  51602.         FI(II(r), 'handleConfirmSubscribe', function (e, t) {
  51603.           var n = je.a.find(r.props.orgPackages, function (e) {
  51604.             return e.id === Ur.DISQUS_BASIC_PACKAGE_ID
  51605.           });
  51606.           n.isSubscribed || t !== n ? (e.productName === Ur.SAAS_PRODUCT_POLLS ? !e.isSubscribed && !r.props.pollsOrgCurrentPackageWillCancel : r.props.selection.organization.pollsOnly ? t.id !== Ur.DISQUS_BASIC_PACKAGE_ID : !e.isSubscribed && !n.isSubscribed && !r.props.orgCurrentPackageWillCancel) ? r.setState({
  51607.             modal: {
  51608.               type: GI,
  51609.               data: {
  51610.                 plan: e,
  51611.                 package: t
  51612.               }
  51613.             }
  51614.           }) : r.handleSubscribe(e) : r.setState({
  51615.             modal: {
  51616.               type: YI
  51617.             }
  51618.           })
  51619.         }),
  51620.         FI(II(r), 'handleConfirmToggleInterval', function (e, t, n, a) {
  51621.           e.isSubscribed || r.props.orgCurrentPackageWillCancel ? r.handleSubscribe(e, n) : r.setState({
  51622.             modal: {
  51623.               type: GI,
  51624.               data: {
  51625.                 plan: e,
  51626.                 package: t,
  51627.                 secondPlan: n,
  51628.                 secondPackage: a
  51629.               }
  51630.             }
  51631.           })
  51632.         }),
  51633.         FI(II(r), 'handleSubscribe', function (e, t) {
  51634.           var n = r.getReturnUrl(e);
  51635.           return r.trackButtonClick(e),
  51636.           r.props.onSubscribe(e, r.props.history, n, t)
  51637.         }),
  51638.         FI(II(r), 'handleRequestInfo', function (e) {
  51639.           var t = je.a.find(je.a.flatten(r.props.orgPackages.map(function (e) {
  51640.             return e.plans
  51641.           }), !0), function (e) {
  51642.             return e.id === Il.a.getCurrentPlusPlanId()
  51643.           });
  51644.           vo.a.when(t && r.props.orgCurrentPackage.id === Ur.DISQUS_BASIC_PACKAGE_ID && t.hasTrialAvailable && r.props.onSubscribe(t, r.state.coupon), r.trackButtonClick(e)).then(function () {
  51645.             r.setState({
  51646.               modal: {
  51647.                 type: HI,
  51648.                 data: null
  51649.               }
  51650.             })
  51651.           })
  51652.         }),
  51653.         FI(II(r), 'getReturnUrl', function (e) {
  51654.           var t = r.props.selection.organization;
  51655.           return e.productName === Ur.SAAS_PRODUCT_COMMENTS && t && t.pollsOnly ? ''.concat(window.location.origin, '/admin').concat(KI) : e.productName !== Ur.SAAS_PRODUCT_POLLS || r.props.pollsOrgCurrentPackage || !t || t.pollsActivationDate ? window.location.href : ''.concat(window.location.origin, '/admin').concat(JI, '?').concat(Ur.CHECKOUT_SUCCESS_QUERY_PARAM, '=').concat(Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS)
  51656.         }),
  51657.         FI(II(r), 'showInvoiceCustomizationModal', function (e) {
  51658.           e.preventDefault(),
  51659.           r.setState({
  51660.             modal: {
  51661.               type: VI,
  51662.               data: null
  51663.             }
  51664.           })
  51665.         }),
  51666.         FI(II(r), 'openCouponModal', function (e) {
  51667.           e.preventDefault(),
  51668.           r.setState({
  51669.             modal: {
  51670.               type: WI,
  51671.               data: null
  51672.             }
  51673.           })
  51674.         }),
  51675.         FI(II(r), 'applyCoupon', function (e) {
  51676.           return Promise.resolve(io.a.call('organizations/saas/validateCoupon', {
  51677.             data: {
  51678.               organization: r.props.selection.organization && r.props.selection.organization.id,
  51679.               coupon: e
  51680.             }
  51681.           }).then(function (e) {
  51682.             return r.setState({
  51683.               coupon: e.response
  51684.             })
  51685.           }))
  51686.         }),
  51687.         FI(II(r), 'removeCoupon', function () {
  51688.           return r.setState({
  51689.             coupon: null
  51690.           })
  51691.         }),
  51692.         r.state = {
  51693.           modal: r.props.location.query[Ur.CHECKOUT_SUCCESS_QUERY_PARAM] === Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_COMMENTS ? {
  51694.             type: zI,
  51695.             data: null
  51696.           }
  51697.            : r.props.location.query[Ur.CHECKOUT_SUCCESS_QUERY_PARAM] === Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS ? {
  51698.             type: QI,
  51699.             data: null
  51700.           }
  51701.            : {
  51702.             type: BI,
  51703.             data: null
  51704.           },
  51705.           coupon: null
  51706.         },
  51707.         r
  51708.       }
  51709.       return e = o,
  51710.       (t = [
  51711.         {
  51712.           key: 'componentDidMount',
  51713.           value: function () {
  51714.             ql(this.props.selection) || this.props.history.push(ho.getRoute('/settings/general/')),
  51715.             this.props.fetchSubscription()
  51716.           }
  51717.         },
  51718.         {
  51719.           key: 'componentWillReceiveProps',
  51720.           value: function (e) {
  51721.             var t = this;
  51722.             this.props.orgCurrentPackage && e.orgCurrentPackage && this.props.orgCurrentPackage.id !== e.orgCurrentPackage.id && e.orgCurrentPackage.id !== Ur.DISQUS_BASIC_PACKAGE_ID && 3 !== this.state.modal.type ? this.setState({
  51723.               modal: {
  51724.                 type: zI,
  51725.                 data: this.props.selection.organization && this.props.selection.organization.pollsOnly ? {
  51726.                   redirectTo: '/install/'
  51727.                 }
  51728.                  : null
  51729.               }
  51730.             }, function () {
  51731.               return t.trackModalView()
  51732.             }) : !this.props.pollsOrgCurrentPackage && e.pollsOrgCurrentPackage && this.props.selection.organization && !this.props.selection.organization.pollsActivationDate && 3 !== this.state.modal.type ? this.setState({
  51733.               modal: {
  51734.                 type: QI,
  51735.                 data: {
  51736.                   redirectTo: JI
  51737.                 }
  51738.               }
  51739.             }, function () {
  51740.               return t.trackModalView()
  51741.             }) : e.pollsOrgCurrentPackage && this.props.pollsOrgCurrentPackage && (this.props.pollsOrgCurrentPackage.id !== e.pollsOrgCurrentPackage.id || this.props.pollsPlanStatus === Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS && e.pollsPlanStatus !== Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS) && 3 !== this.state.modal.type && this.setState({
  51742.               modal: {
  51743.                 type: QI,
  51744.                 data: null
  51745.               }
  51746.             }, function () {
  51747.               return t.trackModalView()
  51748.             })
  51749.           }
  51750.         },
  51751.         {
  51752.           key: 'render',
  51753.           value: function () {
  51754.             var e = this;
  51755.             if (!ql(this.props.selection)) return null;
  51756.             if (this.props.orgSubscriptionIsFetching || !this.props.orgPackages) return C.a.createElement(Qi, null);
  51757.             var t,
  51758.             n,
  51759.             t = (t = (o = this.props).orgBilling, n = o.orgCurrentPackage, r = o.pollsOrgCurrentPackage, (!LI(o.orgTrial) || t.paymentInfo) && n && n.id !== Ur.DISQUS_BASIC_PACKAGE_ID && n.id !== Ur.DISQUS_BUSINESS_PACKAGE_ID && !o.orgCurrentPackageWillCancel || (!LI(o.pollsOrgTrial) || t.paymentInfo) && r && r.id !== Ur.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID && r.id !== Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID && !o.pollsOrgCurrentPackageWillCancel),
  51760.             a = Il.a.isNewFlow('cc_v2', {
  51761.               orgId: br.orgId,
  51762.               trial: this.props.orgTrial || {
  51763.               }
  51764.             }),
  51765.             r = je.a.find(this.props.orgCurrentPackage.plans, function (e) {
  51766.               return e.isSubscribed
  51767.             }),
  51768.             o = this.props.pollsOrgCurrentPackage && je.a.find(this.props.pollsOrgCurrentPackage.plans, function (e) {
  51769.               return e.isSubscribed
  51770.             }),
  51771.             r = r && r.amount && !this.props.orgCurrentPackageWillCancel,
  51772.             o = o && o.amount && !this.props.pollsOrgCurrentPackageWillCancel,
  51773.             r = !this.props.selection.organization.pollsOnly && this.props.orgCurrentPackage.id !== Ur.DISQUS_BUSINESS_PACKAGE_ID && (UI(this.props.orgBilling.invoiceHistory).length || r || this.props.orgBilling.paymentInfo) || this.props.selection.organization.pollsActivationDate && this.props.pollsPlanStatus !== Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS && this.props.pollsOrgCurrentPackage && this.props.pollsOrgCurrentPackage.id !== Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID && (UI(this.props.orgBilling.invoiceHistory).length || o || this.props.orgBilling.paymentInfo);
  51774.             switch (this.state.modal.type) {
  51775.               case zI:
  51776.                 u = C.a.createElement(Ty, {
  51777.                   package: this.props.orgCurrentPackage,
  51778.                   isTrial: LI(this.props.orgTrial),
  51779.                   onClose: function () {
  51780.                     e.handleCloseModal(),
  51781.                     e.state.modal.data && e.state.modal.data.redirectTo && e.props.history.push(e.state.modal.data.redirectTo)
  51782.                   },
  51783.                   newSubscriptionFlow: a
  51784.                 });
  51785.                 break;
  51786.               case QI:
  51787.                 u = C.a.createElement(Ty, {
  51788.                   package: this.props.pollsOrgCurrentPackage,
  51789.                   isTrial: LI(this.props.pollsOrgTrial),
  51790.                   onClose: function () {
  51791.                     e.handleCloseModal(),
  51792.                     e.state.modal.data && e.state.modal.data.redirectTo && e.props.history.push(e.state.modal.data.redirectTo)
  51793.                   },
  51794.                   newSubscriptionFlow: a
  51795.                 });
  51796.                 break;
  51797.               case HI:
  51798.                 u = C.a.createElement(KT, {
  51799.                   onClose: this.handleCloseModal
  51800.                 });
  51801.                 break;
  51802.               case 3:
  51803.                 u = C.a.createElement(lI, {
  51804.                   message: this.state.modal.data.errorMessage,
  51805.                   onClose: this.handleCloseModal
  51806.                 });
  51807.                 break;
  51808.               case GI:
  51809.                 var i = this.state.modal.data.package.productName === Ur.SAAS_PRODUCT_POLLS ? this.props.pollsOrgCurrentPackage : this.props.orgCurrentPackage,
  51810.                 s = this.props.orgBilling && (this.state.modal.data.package.productName === Ur.SAAS_PRODUCT_POLLS ? this.props.orgBilling.currentPollsSubscription : this.props.orgBilling.currentSubscription),
  51811.                 l = this.state.modal.data.secondPackage && (this.state.modal.data.secondPackage.productName === Ur.SAAS_PRODUCT_POLLS ? this.props.pollsOrgCurrentPackage : this.props.orgCurrentPackage),
  51812.                 c = this.state.modal.data.secondPackage && this.props.orgBilling && (this.state.modal.data.secondPackage.productName === Ur.SAAS_PRODUCT_POLLS ? this.props.orgBilling.currentPollsSubscription : this.props.orgBilling.currentSubscription),
  51813.                 u = C.a.createElement(xI, {
  51814.                   onSubscribe: this.handleSubscribe.bind(this, this.state.modal.data.plan, this.state.modal.data.secondPlan),
  51815.                   onClose: this.handleCloseModal,
  51816.                   curPackage: i,
  51817.                   newPackage: this.state.modal.data.package,
  51818.                   newPlan: this.state.modal.data.plan,
  51819.                   amountRemaining: s && s.amountRemaining,
  51820.                   secondCurPackage: l,
  51821.                   secondNewPackage: this.state.modal.data.secondPackage,
  51822.                   secondNewPlan: this.state.modal.data.secondPlan,
  51823.                   secondAmountRemaining: c && c.amountRemaining,
  51824.                   coupon: this.state.coupon,
  51825.                   orgAvailableDiscount: this.props.orgAvailableDiscount,
  51826.                   paymentInfoAvailable: !!this.props.orgBilling.paymentInfo,
  51827.                   organization: this.props.selection.organization
  51828.                 });
  51829.                 break;
  51830.               case VI:
  51831.                 u = C.a.createElement(vI, {
  51832.                   onClose: this.handleCloseModal,
  51833.                   onSave: this.props.onUpdateInvoiceInfo,
  51834.                   syncedInvoiceFields: this.props.orgBilling.invoiceInfo,
  51835.                   isInvoiceUpdating: this.props.isInvoiceUpdating
  51836.                 });
  51837.                 break;
  51838.               case WI:
  51839.                 u = C.a.createElement(aI, {
  51840.                   applyCoupon: this.applyCoupon,
  51841.                   onClose: this.handleCloseModal
  51842.                 });
  51843.                 break;
  51844.               case YI:
  51845.                 u = C.a.createElement(QT, {
  51846.                   onClose: this.handleCloseModal
  51847.                 });
  51848.                 break;
  51849.               default:
  51850.                 u = null
  51851.             }
  51852.             o = je.a.find(this.props.orgPackages, function (e) {
  51853.               return e.id === Ur.DISQUS_BASIC_PACKAGE_ID
  51854.             });
  51855.             return C.a.createElement('div', null, u, this.props.orgBilling.currentSubscription && this.props.orgBilling.currentSubscription.status === Ur.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS ? C.a.createElement('div', {
  51856.               className: 'content__wrap payment_error'
  51857.             }, C.a.createElement('div', {
  51858.               className: 'spacing-right-large'
  51859.             }, C.a.createElement('h2', {
  51860.               className: 'text-large text-red spacing-bottom-small'
  51861.             }, 'Your credit card has been declined'), C.a.createElement('p', {
  51862.               className: 'text-gray'
  51863.             }, 'Your payment is now overdue. Please update your payment method to prevent being reverted to an Ad-Supported plan.')), C.a.createElement('span', {
  51864.               className: 'icon icon-declined-card text-red spacing-left-large text-huge'
  51865.             })) : null, C.a.createElement('div', {
  51866.               className: 'content__wrap'
  51867.             }, C.a.createElement(nE, {
  51868.               headline: 'Your Plan and Billing',
  51869.               description: C.a.createElement('span', null, 'Review the Disqus plan to which your organization is currently subscribed, manage your billing, and see your past invoices.')
  51870.             }), C.a.createElement('section', {
  51871.               className: 'settings__content'
  51872.             }, C.a.createElement(sI, {
  51873.               filterInvoices: UI,
  51874.               isTrialActive: LI,
  51875.               orgCurrentPackage: this.props.orgCurrentPackage,
  51876.               basicPackage: o,
  51877.               orgPackages: this.props.orgPackages,
  51878.               orgBilling: this.props.orgBilling,
  51879.               orgCurrentPackageWillCancel: this.props.orgCurrentPackageWillCancel,
  51880.               orgTrial: this.props.orgTrial,
  51881.               onRequestInfo: this.handleRequestInfo,
  51882.               onSubscribe: this.handleConfirmSubscribe,
  51883.               onStartTrial: this.handleConfirmSubscribe,
  51884.               newSubscriptionFlow: a,
  51885.               pollsOrgCurrentPackage: this.props.pollsOrgCurrentPackage,
  51886.               pollsOrgAvailableDiscount: this.props.pollsOrgAvailableDiscount,
  51887.               pollsOrgCurrentPackageWillCancel: this.props.pollsOrgCurrentPackageWillCancel,
  51888.               pollsOrgTrial: this.props.pollsOrgTrial,
  51889.               pollsPlanStatus: this.props.pollsPlanStatus
  51890.             }), r ? C.a.createElement(EI, {
  51891.               formatPaymentDate: MI,
  51892.               orgBilling: this.props.orgBilling,
  51893.               orgCurrentPackage: this.props.orgCurrentPackage,
  51894.               orgCurrentPackageWillCancel: this.props.orgCurrentPackageWillCancel,
  51895.               currentSubscription: this.props.orgBilling.currentSubscription,
  51896.               onUpdatePaymentInfo: this.props.onUpdatePaymentInfo,
  51897.               onSubscribe: this.handleConfirmToggleInterval,
  51898.               showInvoiceCustomizationModal: this.showInvoiceCustomizationModal,
  51899.               currentPollsSubscription: this.props.orgBilling.currentPollsSubscription,
  51900.               pollsOrgCurrentPackageWillCancel: this.props.pollsOrgCurrentPackageWillCancel,
  51901.               pollsOrgCurrentPackage: this.props.pollsOrgCurrentPackage
  51902.             }) : null)), this.props.orgCurrentPackage.id === Ur.DISQUS_BUSINESS_PACKAGE_ID || this.props.pollsOrgCurrentPackage && this.props.pollsOrgCurrentPackage.id === Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID ? null : C.a.createElement('div', {
  51903.               className: 'content__wrap'
  51904.             }, C.a.createElement(nE, {
  51905.               headline: 'Other Subscription Plans',
  51906.               description: C.a.createElement('span', null, 'Manage your subscription and billing for your organization. Your organization\'s plan affects ', C.a.createElement('em', null, 'all'), ' sites in your organization. ', C.a.createElement('a', {
  51907.                 href: Pn.pricingAndPlans
  51908.               }, 'Learn more about plans'), '.')
  51909.             }), C.a.createElement('section', {
  51910.               className: 'settings__content'
  51911.             }, C.a.createElement(WT.a, {
  51912.               onRequestInfo: this.handleRequestInfo,
  51913.               onStartTrial: this.handleConfirmSubscribe,
  51914.               onSubscribe: this.handleConfirmSubscribe,
  51915.               orgBilling: this.props.orgBilling,
  51916.               orgCurrentPackage: this.props.orgCurrentPackage,
  51917.               orgCurrentPackageWillCancel: this.props.orgCurrentPackageWillCancel,
  51918.               orgTrial: this.props.orgTrial,
  51919.               orgAvailableDiscount: this.props.orgAvailableDiscount,
  51920.               pollsOrgCurrentPackage: this.props.pollsOrgCurrentPackage,
  51921.               pollsOrgCurrentPackageWillCancel: this.props.pollsOrgCurrentPackageWillCancel,
  51922.               pollsOrgTrial: this.props.pollsOrgTrial,
  51923.               pollsOrgAvailableDiscount: this.props.pollsOrgAvailableDiscount,
  51924.               packages: this.props.orgPackages.reduce(function (e, t) {
  51925.                 return e[t.id] = t,
  51926.                 e
  51927.               }, {
  51928.               }),
  51929.               openCouponModal: this.openCouponModal,
  51930.               coupon: this.state.coupon,
  51931.               removeCoupon: this.removeCoupon,
  51932.               newSubscriptionFlow: a,
  51933.               useAdSupportedCard: !0,
  51934.               organization: this.props.selection.organization
  51935.             }), C.a.createElement(_I, {
  51936.               isOpen: this.props.isSubscriptionUpdating && this.state.modal.type === BI
  51937.             }))), C.a.createElement('div', {
  51938.               className: 'content__wrap'
  51939.             }, C.a.createElement(YT.a, {
  51940.               newSubscriptionFlow: a
  51941.             })), C.a.createElement(Bg, null), t ? C.a.createElement('div', {
  51942.               className: 'content__wrap'
  51943.             }, C.a.createElement(CI, null)) : null)
  51944.           }
  51945.         }
  51946.       ]) && DI(e.prototype, t),
  51947.       n && DI(e, n),
  51948.       o
  51949.     }();
  51950.     FI(r, 'propTypes', {
  51951.       fetchSubscription: b.a.func.isRequired,
  51952.       onSubscribe: b.a.func.isRequired,
  51953.       onUpdateInvoiceInfo: b.a.func.isRequired,
  51954.       onUpdatePaymentInfo: b.a.func.isRequired,
  51955.       orgSubscriptionIsFetching: b.a.bool.isRequired,
  51956.       isSubscriptionUpdating: b.a.bool.isRequired,
  51957.       isInvoiceUpdating: b.a.bool.isRequired,
  51958.       orgBilling: Ur.ORG_BILLING_SHAPE,
  51959.       orgCurrentPackage: Ur.PACKAGE_SHAPE,
  51960.       orgCurrentPackageWillCancel: b.a.bool,
  51961.       orgCurrentPlan: Ur.PLAN_SHAPE,
  51962.       orgPackages: b.a.arrayOf(Ur.PACKAGE_SHAPE),
  51963.       orgTrial: Ur.TRIAL_SHAPE,
  51964.       orgAvailableDiscount: b.a.number,
  51965.       pollsOrgTrial: Ur.TRIAL_SHAPE,
  51966.       pollsOrgCurrentPlan: Ur.PLAN_SHAPE,
  51967.       pollsOrgAvailableDiscount: b.a.number,
  51968.       pollsOrgCurrentPackageWillCancel: b.a.bool,
  51969.       pollsOrgCurrentPackage: Ur.PACKAGE_SHAPE,
  51970.       pollsPlanStatus: b.a.oneOf([Ur.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  51971.       Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUS]),
  51972.       history: b.a.shape({
  51973.         push: b.a.func.isRequired
  51974.       }).isRequired,
  51975.       location: kh.locationShape,
  51976.       selection: ht.isRequired,
  51977.       emitTrackingEvent: b.a.func.isRequired,
  51978.       emitDefaultViewEvent: b.a.func.isRequired
  51979.     });
  51980.     s = Object(u.connect) (function (e) {
  51981.       var t = e.subscription;
  51982.       return {
  51983.         isInvoiceUpdating: t.isInvoiceUpdating,
  51984.         isSubscriptionUpdating: t.isSubscriptionUpdating,
  51985.         orgBilling: t.orgBilling,
  51986.         orgCurrentPackage: t.orgCurrentPackage,
  51987.         orgCurrentPackageWillCancel: t.orgCurrentPackageWillCancel,
  51988.         orgCurrentPlan: t.orgCurrentPlan,
  51989.         orgPackages: t.orgPackages,
  51990.         orgSubscriptionIsFetching: t.orgSubscriptionIsFetching,
  51991.         orgTrial: t.orgTrial,
  51992.         pollsOrgCurrentPackageWillCancel: t.pollsOrgCurrentPackageWillCancel,
  51993.         pollsOrgCurrentPackage: t.pollsOrgCurrentPackage,
  51994.         pollsPlanStatus: t.pollsPlanStatus,
  51995.         pollsOrgTrial: t.pollsOrgTrial,
  51996.         pollsOrgCurrentPlan: t.pollsOrgCurrentPlan,
  51997.         selection: e.selection,
  51998.         orgAvailableDiscount: t.orgAvailableDiscount,
  51999.         pollsOrgAvailableDiscount: t.pollsOrgAvailableDiscount
  52000.       }
  52001.     }, {
  52002.       fetchSubscription: Hl,
  52003.       onSubscribe: Wl,
  52004.       onUpdatePaymentInfo: Kl,
  52005.       onUpdateInvoiceInfo: Vl,
  52006.       emitTrackingEvent: Xo(Ru),
  52007.       emitDefaultViewEvent: ei(Ru)
  52008.     }) (Ni.a.attachDrivers(Fo() (r), [
  52009.       bc
  52010.     ]));
  52011.     function $I(t, e, n, a) {
  52012.       t({
  52013.         type: W.fetchingDiscussions
  52014.       }),
  52015.       a = {
  52016.         forum: e().selection.forum.shortname,
  52017.         related: [
  52018.           'author'
  52019.         ],
  52020.         after: n,
  52021.         since: a
  52022.       },
  52023.       (e = e().discussionsEdit.cursor) && (a.cursor = e.next),
  52024.       io.a.call('forums/listThreads', {
  52025.         data: a,
  52026.         success: function (e) {
  52027.           t({
  52028.             type: W.fetchedDiscussions,
  52029.             threads: e.response,
  52030.             cursor: e.cursor
  52031.           })
  52032.         },
  52033.         error: function () {
  52034.           t({
  52035.             type: W.onFetchError
  52036.           })
  52037.         }
  52038.       })
  52039.     }
  52040.     function ZI(e, t, n, a, r) {
  52041.       var o = r.response.id ? r.response : r.response[0];
  52042.       (a = (r = a().discussionsEdit.threads).findIndex(function (e) {
  52043.         return e.id === o.id
  52044.       })) < 0 ? n({
  52045.         type: W.threadUpdateError
  52046.       }) : ('isClosed' === e && ((o = r[a]).isClosed = t), o.author = 'author' === e ? {
  52047.         username: t,
  52048.         id: o.author
  52049.       }
  52050.        : r[a].author, n({
  52051.         method: 'POST',
  52052.         type: W.updatedThread,
  52053.         threads: r.slice(0, a).concat([o]).concat(r.slice(a + 1))
  52054.       }), setTimeout(function () {
  52055.         n({
  52056.           type: W.clearAlert
  52057.         })
  52058.       }, 5000))
  52059.     }
  52060.     function XI(e, t) {
  52061.       var n;
  52062.       try {
  52063.         n = JSON.parse(t.responseText).response
  52064.       } catch (e) {
  52065.         n = 'There was an error making these changes.'
  52066.       }
  52067.       e({
  52068.         type: W.updateThreadError,
  52069.         errorMessage: n
  52070.       }),
  52071.       setTimeout(function () {
  52072.         e({
  52073.           type: W.clearAlert
  52074.         })
  52075.       }, 5000)
  52076.     }
  52077.     go = {
  52078.       fetchCategories: function () {
  52079.         return function (t, e) {
  52080.           io.a.call('categories/list', {
  52081.             data: {
  52082.               forum: e().selection.forum.shortname
  52083.             },
  52084.             success: function (e) {
  52085.               t({
  52086.                 type: W.fetchedCategories,
  52087.                 categories: e.response
  52088.               })
  52089.             },
  52090.             error: function () {
  52091.               t({
  52092.                 type: W.onFetchError
  52093.               })
  52094.             }
  52095.           }),
  52096.           $I(t, e)
  52097.         }
  52098.       },
  52099.       fetchMoreDiscussions: function (n, a) {
  52100.         return function (e, t) {
  52101.           $I(e, t, n, a)
  52102.         }
  52103.       },
  52104.       resetDiscussions: function (n, a) {
  52105.         return function (e, t) {
  52106.           e({
  52107.             type: W.resetDiscussions
  52108.           }),
  52109.           $I(e, t, n, a)
  52110.         }
  52111.       },
  52112.       updateThreadField: function (o, i, s) {
  52113.         return function (e, t) {
  52114.           var n,
  52115.           a,
  52116.           r;
  52117.           e({
  52118.             type: W.clearAlert
  52119.           }),
  52120.           io.a.call('threads/update', {
  52121.             method: 'POST',
  52122.             data: (n = {
  52123.               thread: o
  52124.             }, r = 'author' === (a = i) ? 'username:'.concat(s) : s, a in n ? Object.defineProperty(n, a, {
  52125.               value: r,
  52126.               enumerable: !0,
  52127.               configurable: !0,
  52128.               writable: !0
  52129.             }) : n[a] = r, n),
  52130.             success: ZI.bind(null, i, s, e, t),
  52131.             error: XI.bind(null, e)
  52132.           })
  52133.         }
  52134.       },
  52135.       toggleThreadClosed: function (a) {
  52136.         return function (e, t) {
  52137.           var n = t().discussionsEdit.threads.find(function (e) {
  52138.             return e.id === a
  52139.           });
  52140.           n ? (e({
  52141.             type: W.clearAlert
  52142.           }), io.a.call(n.isClosed ? 'threads/open' : 'threads/close', {
  52143.             method: 'POST',
  52144.             data: {
  52145.               thread: a
  52146.             },
  52147.             success: ZI.bind(null, 'isClosed', !n.isClosed, e, t),
  52148.             error: XI.bind(null, e)
  52149.           })) : XI(e)
  52150.         }
  52151.       }
  52152.     };
  52153.     function eq(e) {
  52154.       return (eq = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  52155.         return typeof e
  52156.       }
  52157.        : function (e) {
  52158.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  52159.       }) (e)
  52160.     }
  52161.     function tq(t, e) {
  52162.       var n,
  52163.       a = Object.keys(t);
  52164.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  52165.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  52166.       })), a.push.apply(a, n)),
  52167.       a
  52168.     }
  52169.     function nq(t) {
  52170.       for (var e = 1; e < arguments.length; e++) {
  52171.         var n = null != arguments[e] ? arguments[e] : {
  52172.         };
  52173.         e % 2 ? tq(Object(n), !0).forEach(function (e) {
  52174.           lq(t, e, n[e])
  52175.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : tq(Object(n)).forEach(function (e) {
  52176.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  52177.         })
  52178.       }
  52179.       return t
  52180.     }
  52181.     function aq(e, t) {
  52182.       for (var n = 0; n < t.length; n++) {
  52183.         var a = t[n];
  52184.         a.enumerable = a.enumerable || !1,
  52185.         a.configurable = !0,
  52186.         'value' in a && (a.writable = !0),
  52187.         Object.defineProperty(e, a.key, a)
  52188.       }
  52189.     }
  52190.     function rq(e, t) {
  52191.       return (rq = Object.setPrototypeOf || function (e, t) {
  52192.         return e.__proto__ = t,
  52193.         e
  52194.       }) (e, t)
  52195.     }
  52196.     function oq(n) {
  52197.       var a = function () {
  52198.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  52199.         if (Reflect.construct.sham) return !1;
  52200.         if ('function' == typeof Proxy) return !0;
  52201.         try {
  52202.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  52203.           ], function () {
  52204.           })),
  52205.           !0
  52206.         } catch (e) {
  52207.           return !1
  52208.         }
  52209.       }();
  52210.       return function () {
  52211.         var e,
  52212.         t = sq(n);
  52213.         return e = a ? (e = sq(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  52214.         t = this,
  52215.         !(e = e) || 'object' !== eq(e) && 'function' != typeof e ? iq(t) : e
  52216.       }
  52217.     }
  52218.     function iq(e) {
  52219.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  52220.       return e
  52221.     }
  52222.     function sq(e) {
  52223.       return (sq = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  52224.         return e.__proto__ || Object.getPrototypeOf(e)
  52225.       }) (e)
  52226.     }
  52227.     function lq(e, t, n) {
  52228.       return t in e ? Object.defineProperty(e, t, {
  52229.         value: n,
  52230.         enumerable: !0,
  52231.         configurable: !0,
  52232.         writable: !0
  52233.       }) : e[t] = n,
  52234.       e
  52235.     }
  52236.     F = function () {
  52237.       !function (e, t) {
  52238.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  52239.         e.prototype = Object.create(t && t.prototype, {
  52240.           constructor: {
  52241.             value: e,
  52242.             writable: !0,
  52243.             configurable: !0
  52244.           }
  52245.         }),
  52246.         t && rq(e, t)
  52247.       }(o, A);
  52248.       var e,
  52249.       t,
  52250.       n,
  52251.       r = oq(o);
  52252.       function o() {
  52253.         var a;
  52254.         !function (e, t) {
  52255.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  52256.         }(this, o);
  52257.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  52258.         return lq(iq(a = r.call.apply(r, [
  52259.           this
  52260.         ].concat(t))), 'state', {
  52261.           editing: {
  52262.           },
  52263.           dateRange: 'all',
  52264.           startDate: ct() ().startOf('day').subtract(1, 'month'),
  52265.           endDate: ct() ().endOf('day'),
  52266.           modalData: null
  52267.         }),
  52268.         lq(iq(a), 'toggleEdit', function (e, t) {
  52269.           a.setState({
  52270.             editing: nq(nq({
  52271.             }, a.state.editing), {
  52272.             }, lq({
  52273.             }, e, nq(nq({
  52274.             }, a.state.editing[e]), {
  52275.             }, lq({
  52276.             }, t, !(a.state.editing[e] || {
  52277.             }) [t]))))
  52278.           })
  52279.         }),
  52280.         lq(iq(a), 'updateField', function (e, t, n) {
  52281.           a.props.updateThreadField(e, t, n.target.value),
  52282.           a.toggleEdit(e, t)
  52283.         }),
  52284.         lq(iq(a), 'onInputKeyPress', function (e, t, n) {
  52285.           13 === n.charCode && a.updateField(e, t, n)
  52286.         }),
  52287.         lq(iq(a), 'getEditableTextCell', function (e, t, n) {
  52288.           return C.a.createElement('td', {
  52289.             onClick: a.toggleEdit.bind(iq(a), e.id, t)
  52290.           }, a.state.editing[e.id] && a.state.editing[e.id][t] ? C.a.createElement('input', {
  52291.             type: 'text',
  52292.             defaultValue: n || e[t],
  52293.             onBlur: a.updateField.bind(iq(a), e.id, t),
  52294.             onKeyPress: a.onInputKeyPress.bind(iq(a), e.id, t),
  52295.             autoFocus: !0
  52296.           }) : C.a.createElement('span', null, n || e[t]))
  52297.         }),
  52298.         lq(iq(a), 'onDateRangeChange', function (e) {
  52299.           var t = 'custom' === e;
  52300.           e === a.state.dateRange ? a.setState({
  52301.             showDatePicker: t
  52302.           }) : a.setState({
  52303.             dateRange: e,
  52304.             showDatePicker: t
  52305.           }, a.fetchDiscussions.bind(iq(a), !0))
  52306.         }),
  52307.         lq(iq(a), 'onDateChange', function (e, t) {
  52308.           a.setState({
  52309.             startDate: e,
  52310.             endDate: t.endOf('day')
  52311.           }, a.fetchDiscussions.bind(iq(a), !0))
  52312.         }),
  52313.         lq(iq(a), 'hideDatePicker', function () {
  52314.           a.setState({
  52315.             showDatePicker: !1
  52316.           })
  52317.         }),
  52318.         lq(iq(a), 'fetchDiscussions', function (e) {
  52319.           e = e ? a.props.resetDiscussions : a.props.fetchMoreDiscussions;
  52320.           'all' === a.state.dateRange ? e() : e(a.state.startDate.toISOString(), a.state.endDate.toISOString())
  52321.         }),
  52322.         lq(iq(a), 'handleOpenModal', function (e) {
  52323.           a.setState({
  52324.             modalData: e
  52325.           })
  52326.         }),
  52327.         lq(iq(a), 'handleCloseModal', function () {
  52328.           a.setState({
  52329.             modalData: null
  52330.           })
  52331.         }),
  52332.         a
  52333.       }
  52334.       return e = o,
  52335.       (t = [
  52336.         {
  52337.           key: 'componentDidMount',
  52338.           value: function () {
  52339.             this.props.selection.forum && this.props.fetchCategories()
  52340.           }
  52341.         },
  52342.         {
  52343.           key: 'render',
  52344.           value: function () {
  52345.             var t = this;
  52346.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  52347.               isPolls: !1,
  52348.               organization: this.props.selection.organization
  52349.             });
  52350.             var e,
  52351.             n,
  52352.             a = null;
  52353.             return 'custom' === this.state.dateRange && (e = this.state.startDate.format('M/D/YY'), n = this.state.endDate.format('M/D/YY'), a = ''.concat(e, ' - ').concat(n)),
  52354.             C.a.createElement('div', {
  52355.               className: 'admin_content _discussions_'
  52356.             }, this.state.modalData ? C.a.createElement(_.a, {
  52357.               className: 'admin-modal thread-identifiers-modal',
  52358.               overlayClassName: 'modal-overlay -dark',
  52359.               isOpen: !0,
  52360.               onRequestClose: this.handleCloseModal
  52361.             }, C.a.createElement('div', {
  52362.               className: 'admin-modal__header align align--between'
  52363.             }, C.a.createElement('h3', {
  52364.               className: 'text-large text-capitalized'
  52365.             }, 'Thread Identifiers'), C.a.createElement('button', {
  52366.               className: 'link-gray',
  52367.               onClick: this.handleCloseModal
  52368.             }, C.a.createElement('span', {
  52369.               className: 'icon-cancel icon__position'
  52370.             }))), C.a.createElement('ul', {
  52371.               className: 'thread-identifiers-list text-small'
  52372.             }, this.state.modalData.map(function (e) {
  52373.               return C.a.createElement('li', {
  52374.                 key: e,
  52375.                 className: 'thread-identifiers-list--item'
  52376.               }, e)
  52377.             }))) : null, C.a.createElement('div', {
  52378.               className: 'page-header'
  52379.             }, C.a.createElement('h2', null, 'Edit Discussions', C.a.createElement('div', {
  52380.               className: 'settings-subheading'
  52381.             }, 'Set specific authors for each post, update titles, and close old discussions. ', C.a.createElement('a', {
  52382.               href: Pn.discussionsEdit,
  52383.               target: '_blank',
  52384.               rel: 'noopener noreferrer'
  52385.             }, 'Learn more »')))), this.props.alert ? C.a.createElement(Ki, {
  52386.               message: this.props.alert.message,
  52387.               alertType: this.props.alert.status
  52388.             }) : null, C.a.createElement('div', {
  52389.               className: 'align align__item--grow mod-bar'
  52390.             }, C.a.createElement(sR, {
  52391.               buttonLabel: a,
  52392.               options: o.DATE_RANGE_OPTIONS,
  52393.               selected: [
  52394.                 this.state.dateRange
  52395.               ],
  52396.               icon: 'icon-calendar',
  52397.               onChange: this.onDateRangeChange
  52398.             }), C.a.createElement(zp.a, {
  52399.               onOutsideClick: this.hideDatePicker,
  52400.               className: 'mod-bar__date '.concat(this.state.showDatePicker ? '' : 'hidden'),
  52401.               active: this.state.showDatePicker
  52402.             }, C.a.createElement(Zp, {
  52403.               maxDate: o.maxDate,
  52404.               minDate: o.minDate,
  52405.               startDate: this.state.startDate,
  52406.               endDate: this.state.endDate,
  52407.               onDateChange: this.onDateChange,
  52408.               alwaysOpen: !0
  52409.             }))), C.a.createElement('table', {
  52410.               className: 'zebra-striped'
  52411.             }, C.a.createElement('thead', null, C.a.createElement('tr', null, C.a.createElement('th', null, 'Title'), C.a.createElement('th', null, 'Link'), C.a.createElement('th', {
  52412.               width: '105'
  52413.             }, 'Thread ID'), C.a.createElement('th', null, 'Author ', C.a.createElement(Md, {
  52414.               tooltipKey: 'author',
  52415.               content: 'Change who receives moderation notifications for this discussion by default. You must specify a registered Disqus username.',
  52416.               direction: 'top'
  52417.             })), C.a.createElement('th', {
  52418.               width: '110'
  52419.             }, 'Category ', C.a.createElement(Md, {
  52420.               tooltipKey: 'category',
  52421.               content: 'Categories are used with our API for results filtering; categories are not used for moderation.',
  52422.               direction: 'top'
  52423.             })), C.a.createElement('th', {
  52424.               width: '125'
  52425.             }, 'Created'), C.a.createElement('th', {
  52426.               width: '90'
  52427.             }, 'Identifiers'), C.a.createElement('th', {
  52428.               width: '80'
  52429.             }, 'Status'))), C.a.createElement('tbody', null, this.props.threads.map(function (e) {
  52430.               return C.a.createElement('tr', {
  52431.                 key: e.id
  52432.               }, t.getEditableTextCell(e, 'title'), t.getEditableTextCell(e, 'url', e.link), C.a.createElement('td', null, e.id), t.getEditableTextCell(e, 'author', e.author.username || e.author.name || 'Unknown'), C.a.createElement('td', null, C.a.createElement('select', {
  52433.                 defaultValue: e.category,
  52434.                 onChange: t.updateField.bind(t, e.id, 'category')
  52435.               }, t.props.categories.map(function (e) {
  52436.                 return C.a.createElement('option', {
  52437.                   key: e.id,
  52438.                   value: e.id
  52439.                 }, e.title)
  52440.               }))), C.a.createElement('td', {
  52441.                 title: e.createdAt
  52442.               }, Os.prettyDatetime(e.createdAt, 'relative')), C.a.createElement('td', null, e.identifiers.length && C.a.createElement('a', {
  52443.                 className: 'thread-identifiers-count',
  52444.                 onClick: function () {
  52445.                   return t.handleOpenModal(e.identifiers)
  52446.                 }
  52447.               }, e.identifiers.length)), C.a.createElement('td', {
  52448.                 className: 'editable-switch '.concat(e.isClosed ? 'closed' : 'open'),
  52449.                 title: e.isClosed ? 'Open this discussion' : 'Close this discussion',
  52450.                 onClick: function () {
  52451.                   t.props.toggleThreadClosed(e.id)
  52452.                 }
  52453.               }))
  52454.             }))), C.a.createElement('div', null, this.props.threads ? C.a.createElement('button', {
  52455.               className: 'button button-wide button-outline button-medium',
  52456.               disabled: this.props.isFetchingThreads || !this.props.hasNextPage,
  52457.               onClick: this.fetchDiscussions.bind(this, !1)
  52458.             }, 'Show more discussions') : null), C.a.createElement('p', null, C.a.createElement('br', null), 'Links cannot be updated to a URL that already exists in your forum. Use the ', C.a.createElement(Uo, {
  52459.               path: '/discussions/migrate/',
  52460.               selection: this.props.selection
  52461.             }, 'URL Mapper tool'), ' to batch edit or merge discussions.'))
  52462.           }
  52463.         }
  52464.       ]) && aq(e.prototype, t),
  52465.       n && aq(e, n),
  52466.       o
  52467.     }();
  52468.     lq(F, 'propTypes', {
  52469.       categories: b.a.arrayOf(b.a.shape({
  52470.         id: b.a.string.isRequired,
  52471.         title: b.a.string.isRequired
  52472.       })).isRequired,
  52473.       threads: b.a.arrayOf(b.a.shape({
  52474.         title: b.a.string.isRequired,
  52475.         link: b.a.string.isRequired,
  52476.         author: b.a.shape({
  52477.           username: b.a.string.isRequired
  52478.         }).isRequired,
  52479.         category: b.a.string.isRequired,
  52480.         createdAt: b.a.string.isRequired,
  52481.         isClosed: b.a.bool.isRequired
  52482.       })).isRequired,
  52483.       hasNextPage: b.a.bool.isRequired,
  52484.       numPerPage: b.a.number.isRequired,
  52485.       isFetchingThreads: b.a.bool.isRequired,
  52486.       fetchCategories: b.a.func.isRequired,
  52487.       fetchMoreDiscussions: b.a.func.isRequired,
  52488.       resetDiscussions: b.a.func.isRequired,
  52489.       updateThreadField: b.a.func.isRequired,
  52490.       toggleThreadClosed: b.a.func.isRequired,
  52491.       selection: ht.isRequired,
  52492.       alert: b.a.shape({
  52493.         message: b.a.string.isRequired,
  52494.         status: b.a.string.isRequired
  52495.       })
  52496.     }),
  52497.     lq(F, 'DATE_RANGE_OPTIONS', [
  52498.       {
  52499.         key: 'all',
  52500.         label: 'All Time'
  52501.       },
  52502.       {
  52503.         key: 'custom',
  52504.         label: 'Custom'
  52505.       }
  52506.     ]),
  52507.     lq(F, 'minDate', ct() ('01 01 2007', 'MM DD YYYY').startOf('day')),
  52508.     lq(F, 'maxDate', ct() ().endOf('day'));
  52509.     var rc = Object(u.connect) (function (e) {
  52510.       return nq({
  52511.         selection: e.selection
  52512.       }, e.discussionsEdit)
  52513.     }, nq({
  52514.     }, go)) (F),
  52515.     yl = n(176),
  52516.     cq = n.n(yl);
  52517.     function uq(t, e) {
  52518.       var n,
  52519.       a = Object.keys(t);
  52520.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  52521.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  52522.       })), a.push.apply(a, n)),
  52523.       a
  52524.     }
  52525.     function pq(a) {
  52526.       for (var e = 1; e < arguments.length; e++) {
  52527.         var r = null != arguments[e] ? arguments[e] : {
  52528.         };
  52529.         e % 2 ? uq(Object(r), !0).forEach(function (e) {
  52530.           var t,
  52531.           n;
  52532.           n = r[t = e],
  52533.           t in (e = a) ? Object.defineProperty(e, t, {
  52534.             value: n,
  52535.             enumerable: !0,
  52536.             configurable: !0,
  52537.             writable: !0
  52538.           }) : e[t] = n
  52539.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : uq(Object(r)).forEach(function (e) {
  52540.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  52541.         })
  52542.       }
  52543.       return a
  52544.     }
  52545.     var Wi = {
  52546.       toggleBadges: function (e) {
  52547.         var n = e.forum,
  52548.         a = e.data,
  52549.         r = e.onSuccess;
  52550.         return function (t) {
  52551.           t({
  52552.             type: B.toggling
  52553.           }),
  52554.           io.a.call('forums/update', {
  52555.             type: 'POST',
  52556.             data: pq({
  52557.               forum: n
  52558.             }, a),
  52559.             success: function (e) {
  52560.               t({
  52561.                 type: B.onToggle,
  52562.                 badgesEnabled: e.response.settings.badgesEnabled
  52563.               }),
  52564.               r({
  52565.                 badgesEnabled: e.response.settings.badgesEnabled
  52566.               })
  52567.             },
  52568.             error: function () {
  52569.               t({
  52570.                 type: B.onToggleError,
  52571.                 message: 'An error occurred trying to '.concat(a.badgesEnabled ? 'disable' : 'enable', ' the badges feature')
  52572.               })
  52573.             }
  52574.           })
  52575.         }
  52576.       },
  52577.       fetchBadges: function (e) {
  52578.         return function (t) {
  52579.           t({
  52580.             type: B.fetching
  52581.           }),
  52582.           io.a.call('badges/list', {
  52583.             data: {
  52584.               forum: e
  52585.             },
  52586.             success: function (e) {
  52587.               t({
  52588.                 type: B.onFetch,
  52589.                 badgesEnabled: e.response.enabled,
  52590.                 badges: e.response.badges
  52591.               })
  52592.             },
  52593.             error: function () {
  52594.               t({
  52595.                 type: B.onFetchError,
  52596.                 message: 'We couldn\'t retrieve the badges for your website. Try again.'
  52597.               })
  52598.             }
  52599.           })
  52600.         }
  52601.       },
  52602.       uploadImages: function (e) {
  52603.         var r = e.data,
  52604.         o = e.onSuccess;
  52605.         return function (n) {
  52606.           var e = r.options || {
  52607.           },
  52608.           a = !1;
  52609.           n({
  52610.             type: B.uploading
  52611.           });
  52612.           var t = r.badges.map(function (t) {
  52613.             return t.imageFile && 'blob' === t.image.split(':') [0] ? cq.a.uploadMediaUrl([t.imageFile], e).then(function (e) {
  52614.               return pq(pq({
  52615.               }, t), {
  52616.               }, {
  52617.                 image: e.get('url'),
  52618.                 imageFile: null,
  52619.                 imageErrors: [
  52620.                 ]
  52621.               })
  52622.             }).catch(function () {
  52623.               a = !0,
  52624.               n({
  52625.                 type: B.onUploadError,
  52626.                 message: 'We weren\'t able to upload the provided badge images. Try again.'
  52627.               })
  52628.             }) : t
  52629.           });
  52630.           Promise.all(t).then(function (e) {
  52631.             a || (n({
  52632.               type: B.onUpload,
  52633.               badges: e
  52634.             }), o(e))
  52635.           })
  52636.         }
  52637.       },
  52638.       saveBadges: function (e) {
  52639.         var n = e.forum,
  52640.         a = e.data,
  52641.         r = e.onSuccess;
  52642.         return function (t) {
  52643.           t({
  52644.             type: B.saving
  52645.           }),
  52646.           io.a.call('badges/update', {
  52647.             type: 'POST',
  52648.             data: {
  52649.               forum: n,
  52650.               badges: JSON.stringify(a.badges)
  52651.             },
  52652.             success: function (e) {
  52653.               e = {
  52654.                 badgesEnabled: e.response.enabled,
  52655.                 badges: e.response.badges
  52656.               };
  52657.               t(pq({
  52658.                 type: B.onSave
  52659.               }, e)),
  52660.               r(e)
  52661.             },
  52662.             error: function () {
  52663.               t({
  52664.                 type: B.onSaveError,
  52665.                 message: 'An error occurred trying to save your badges. Try again.'
  52666.               })
  52667.             }
  52668.           })
  52669.         }
  52670.       }
  52671.     },
  52672.     dq = window.URL || window.webkitURL,
  52673.     mq = function (e) {
  52674.       return e ? dq.createObjectURL(e) : null
  52675.     },
  52676.     fq = function (e) {
  52677.       return e ? dq.revokeObjectURL(e) : null
  52678.     },
  52679.     hq = function (e, t) {
  52680.       return !!e && (!t || e.size <= t)
  52681.     };
  52682.     function gq(e) {
  52683.       return (gq = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  52684.         return typeof e
  52685.       }
  52686.        : function (e) {
  52687.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  52688.       }) (e)
  52689.     }
  52690.     function yq(t, e) {
  52691.       var n,
  52692.       a = Object.keys(t);
  52693.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  52694.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  52695.       })), a.push.apply(a, n)),
  52696.       a
  52697.     }
  52698.     function bq(t) {
  52699.       for (var e = 1; e < arguments.length; e++) {
  52700.         var n = null != arguments[e] ? arguments[e] : {
  52701.         };
  52702.         e % 2 ? yq(Object(n), !0).forEach(function (e) {
  52703.           wq(t, e, n[e])
  52704.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : yq(Object(n)).forEach(function (e) {
  52705.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  52706.         })
  52707.       }
  52708.       return t
  52709.     }
  52710.     function vq(e, t) {
  52711.       for (var n = 0; n < t.length; n++) {
  52712.         var a = t[n];
  52713.         a.enumerable = a.enumerable || !1,
  52714.         a.configurable = !0,
  52715.         'value' in a && (a.writable = !0),
  52716.         Object.defineProperty(e, a.key, a)
  52717.       }
  52718.     }
  52719.     function _q(e, t) {
  52720.       return (_q = Object.setPrototypeOf || function (e, t) {
  52721.         return e.__proto__ = t,
  52722.         e
  52723.       }) (e, t)
  52724.     }
  52725.     function Eq(n) {
  52726.       var a = function () {
  52727.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  52728.         if (Reflect.construct.sham) return !1;
  52729.         if ('function' == typeof Proxy) return !0;
  52730.         try {
  52731.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  52732.           ], function () {
  52733.           })),
  52734.           !0
  52735.         } catch (e) {
  52736.           return !1
  52737.         }
  52738.       }();
  52739.       return function () {
  52740.         var e,
  52741.         t = Sq(n);
  52742.         return e = a ? (e = Sq(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  52743.         t = this,
  52744.         !(e = e) || 'object' !== gq(e) && 'function' != typeof e ? Oq(t) : e
  52745.       }
  52746.     }
  52747.     function Oq(e) {
  52748.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  52749.       return e
  52750.     }
  52751.     function Sq(e) {
  52752.       return (Sq = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  52753.         return e.__proto__ || Object.getPrototypeOf(e)
  52754.       }) (e)
  52755.     }
  52756.     function wq(e, t, n) {
  52757.       return t in e ? Object.defineProperty(e, t, {
  52758.         value: n,
  52759.         enumerable: !0,
  52760.         configurable: !0,
  52761.         writable: !0
  52762.       }) : e[t] = n,
  52763.       e
  52764.     }
  52765.     var Pq = function () {
  52766.       !function (e, t) {
  52767.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  52768.         e.prototype = Object.create(t && t.prototype, {
  52769.           constructor: {
  52770.             value: e,
  52771.             writable: !0,
  52772.             configurable: !0
  52773.           }
  52774.         }),
  52775.         t && _q(e, t)
  52776.       }(o, A);
  52777.       var e,
  52778.       t,
  52779.       n,
  52780.       a = Eq(o);
  52781.       function o() {
  52782.         var r;
  52783.         !function (e, t) {
  52784.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  52785.         }(this, o);
  52786.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  52787.         return wq(Oq(r = a.call.apply(a, [
  52788.           this
  52789.         ].concat(t))), 'handleChange', function (e, t) {
  52790.           var n,
  52791.           a = {
  52792.           };
  52793.           'image' === e && t.target.files ? (n = t.target.files[0], r.props.image && 'blob' === r.props.image.split(':') [0] && fq(r.props.image), a.imageFile = n, a.image = mq(n), a.imageErrors = hq(n, lC) ? [
  52794.           ] : [
  52795.             'The image must be less than '.concat(lC / 1000, 'KB')
  52796.           ], a.isInvalid = 0 < a.imageErrors.length) : 'criteria' === e ? (a.criteria = t.target.value, a.criteria === We.BADGES_CRITERIA.MANUAL ? a.target = 0 : r.props.target && r.props.target || (a.target = 1)) : 'target' === e ? a.target = parseInt(t.target.value, 10) : a[e] = t.target.value,
  52797.           r.props.onChange(a)
  52798.         }),
  52799.         wq(Oq(r), 'isManuallyAssigned', function () {
  52800.           return r.props.criteria === We.BADGES_CRITERIA.MANUAL
  52801.         }),
  52802.         wq(Oq(r), 'hasValidTarget', function () {
  52803.           return r.isManuallyAssigned() ? 0 === r.props.target : 0 < r.props.target && r.props.target <= sC
  52804.         }),
  52805.         r
  52806.       }
  52807.       return e = o,
  52808.       (t = [
  52809.         {
  52810.           key: 'render',
  52811.           value: function () {
  52812.             var e = this.props.imageErrors && 0 < this.props.imageErrors.length;
  52813.             return C.a.createElement('div', {
  52814.               className: 'badge row'
  52815.             }, C.a.createElement('div', {
  52816.               className: 'row__header'.concat(this.props.hasChanges ? ' settings__highlighted' : '')
  52817.             }, C.a.createElement('div', {
  52818.               className: 'align row__header-left text-gray'
  52819.             }, C.a.createElement('div', {
  52820.               className: 'badge-inputs-wrapper align align--middle align--wrap'
  52821.             }, C.a.createElement('span', {
  52822.               className: 'image-wrapper align--wrap'
  52823.             }, C.a.createElement('input', {
  52824.               type: 'file',
  52825.               id: 'badge-image-input__'.concat(this.props.id),
  52826.               className: 'input--display-label',
  52827.               onChange: this.handleChange.bind(this, 'image'),
  52828.               accept: '.png, .jpg, .jpeg'
  52829.             }), C.a.createElement('label', {
  52830.               htmlFor: 'badge-image-input__'.concat(this.props.id),
  52831.               className: 'badge-image-label'.concat(this.props.image ? ' has-image' : '').concat(this.props.highlightInvalid && !this.props.image || e ? ' is-error' : '')
  52832.             }, C.a.createElement('div', {
  52833.               className: 'badge-image-mask'
  52834.             }, this.props.image ? C.a.createElement('img', {
  52835.               className: 'badge-image-content',
  52836.               src: this.props.image,
  52837.               alt: ''.concat(this.props.name, ' badge')
  52838.             }) : C.a.createElement('span', {
  52839.               className: 'badge-image-placeholder'
  52840.             }, C.a.createElement('img', {
  52841.               className: 'image-upload-icon',
  52842.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/image-upload.svg',
  52843.               alt: 'Upload a badge'
  52844.             }))))), C.a.createElement('span', {
  52845.               className: 'badge-input-group'
  52846.             }, C.a.createElement('span', {
  52847.               className: 'name-wrapper align--wrap spacing-left'
  52848.             }, C.a.createElement($h, {
  52849.               name: 'name',
  52850.               idNamespace: 'badge__'.concat(this.props.id),
  52851.               value: this.props.name,
  52852.               placeholder: 'Name',
  52853.               className: 'input--textbox'.concat(this.props.highlightInvalid && !this.props.name ? ' is-error' : ''),
  52854.               onChange: this.handleChange.bind(this, 'name'),
  52855.               maxLength: 20,
  52856.               inline: !0,
  52857.               showLimit: !0,
  52858.               width: 210,
  52859.               autocomplete: !1
  52860.             })), C.a.createElement('span', {
  52861.               className: 'criteria-wrapper align--wrap spacing-left'
  52862.             }, C.a.createElement(Mf, {
  52863.               name: 'criteria',
  52864.               className: 'select__criteria'.concat(this.props.highlightInvalid && !this.props.criteria ? ' is-error' : ''),
  52865.               options: dC,
  52866.               value: this.props.criteria || '',
  52867.               placeholder: 'Select a criteria',
  52868.               onChange: this.handleChange.bind(this, 'criteria'),
  52869.               width: 275,
  52870.               inline: !0
  52871.             })), C.a.createElement('span', {
  52872.               className: 'target-wrapper align--wrap spacing-left'
  52873.             }, C.a.createElement('input', {
  52874.               type: 'number',
  52875.               name: 'target',
  52876.               id: 'badge_target_'.concat(this.props.id),
  52877.               className: 'input--textbox -inline'.concat(this.props.highlightInvalid && !this.hasValidTarget() ? ' is-error' : ''),
  52878.               min: 0,
  52879.               max: sC,
  52880.               value: this.props.target || 0,
  52881.               onChange: this.handleChange.bind(this, 'target'),
  52882.               readOnly: this.isManuallyAssigned() || !this.props.criteria,
  52883.               disabled: this.isManuallyAssigned() || !this.props.criteria
  52884.             }))))), C.a.createElement('div', {
  52885.               className: 'align row__header-right'
  52886.             }, C.a.createElement('button', {
  52887.               className: 'button button-outline button-small',
  52888.               onClick: this.props.removeBadge
  52889.             }, 'Remove'))), C.a.createElement('ul', {
  52890.               className: 'badge-error-list text-small'
  52891.             }, e && this.props.imageErrors.map(function (e, t) {
  52892.               return C.a.createElement('li', {
  52893.                 key: t,
  52894.                 className: 'badge-error'
  52895.               }, e)
  52896.             })))
  52897.           }
  52898.         }
  52899.       ]) && vq(e.prototype, t),
  52900.       n && vq(e, n),
  52901.       o
  52902.     }();
  52903.     wq(Pq, 'propTypes', bq(bq({
  52904.     }, sl), {
  52905.     }, {
  52906.       hasChanges: b.a.bool,
  52907.       highlightInvalid: b.a.bool,
  52908.       imageErrors: b.a.arrayOf(b.a.string),
  52909.       onChange: b.a.func.isRequired,
  52910.       removeBadge: b.a.func.isRequired
  52911.     }));
  52912.     Ru = function (e) {
  52913.       var t,
  52914.       n = e.type,
  52915.       a = e.badge,
  52916.       r = e.onConfirm,
  52917.       e = e.onClose;
  52918.       return n === uC ? t = {
  52919.         title: 'Are you sure you want to change the criteria for this badge?',
  52920.         message: C.a.createElement('div', null, 'Changing the criteria for this badge will not remove it from commenters that have already received it.', ' ', a.criteria === We.BADGES_CRITERIA.MANUAL ? null : C.a.createElement('span', null, 'Additionally, all progress made towards this badge criteria will be reset.', C.a.createElement('p', {
  52921.           className: 'text-bold'
  52922.         }, 'This action will take effect once the changes are saved and cannot be undone.'))),
  52923.         closeButton: 'Don\'t change this badge',
  52924.         confirmButton: 'Change this badge'
  52925.       }
  52926.        : n === cC && (t = {
  52927.         title: 'Are you sure you want to remove this badge?',
  52928.         message: C.a.createElement('div', null, 'Removing this badge will permanently remove it from all commenters that have received it.', ' ', a.criteria === We.BADGES_CRITERIA.MANUAL ? null : C.a.createElement('span', null, 'Additionally, all progress made towards this badge criteria will be reset.'), C.a.createElement('p', {
  52929.           className: 'text-bold'
  52930.         }, 'This action will take effect once the changes are saved and cannot be undone.')),
  52931.         closeButton: 'Keep this badge',
  52932.         confirmButton: 'Remove this badge'
  52933.       }),
  52934.       C.a.createElement(_.a, {
  52935.         isOpen: !0,
  52936.         shouldCloseOnEsc: !1,
  52937.         className: 'admin-modal -clipped -wider -centered',
  52938.         overlayClassName: 'modal-overlay -dark'
  52939.       }, C.a.createElement('div', {
  52940.         className: 'admin-modal__header align align--between padding-gutter'
  52941.       }, C.a.createElement('h3', {
  52942.         className: 'text-large'
  52943.       }, t.title), C.a.createElement('button', {
  52944.         className: 'link-gray',
  52945.         onClick: e
  52946.       }, C.a.createElement('span', {
  52947.         className: 'icon-cancel icon__position'
  52948.       }))), C.a.createElement('div', {
  52949.         className: 'admin-modal__content padding-gutter'
  52950.       }, t.message, C.a.createElement('div', {
  52951.         className: 'spacing-top-double align align--between'
  52952.       }, C.a.createElement('button', {
  52953.         className: 'button button-medium button-fill',
  52954.         onClick: e
  52955.       }, t.closeButton), C.a.createElement('button', {
  52956.         className: 'button button-medium button-fill--red',
  52957.         onClick: r
  52958.       }, t.confirmButton))))
  52959.     };
  52960.     Ru.propTypes = {
  52961.       type: b.a.number.isRequired,
  52962.       badge: b.a.shape(sl).isRequired,
  52963.       onConfirm: b.a.func.isRequired,
  52964.       onClose: b.a.func.isRequired
  52965.     };
  52966.     var kq = Ru,
  52967.     r = function (e) {
  52968.       var t = e.onConfirm,
  52969.       e = e.onClose;
  52970.       return C.a.createElement(_.a, {
  52971.         isOpen: !0,
  52972.         onRequestClose: e,
  52973.         shouldCloseOnEsc: !1,
  52974.         className: 'admin-modal -clipped -wider -centered',
  52975.         overlayClassName: 'modal-overlay -dark'
  52976.       }, C.a.createElement('div', {
  52977.         className: 'admin-modal__header align align--between padding-gutter'
  52978.       }, C.a.createElement('h3', {
  52979.         className: 'text-large'
  52980.       }, 'Are you sure you want to disable badges?'), C.a.createElement('button', {
  52981.         className: 'link-gray',
  52982.         onClick: e
  52983.       }, C.a.createElement('span', {
  52984.         className: 'icon-cancel icon__position'
  52985.       }))), C.a.createElement('div', {
  52986.         className: 'admin-modal__content padding-gutter'
  52987.       }, C.a.createElement('div', null, 'All assigned badges will be removed from users on your site. This will also reset any progress that commenters have made towards each badge criteria.', C.a.createElement('p', {
  52988.         className: 'text-bold'
  52989.       }, 'This cannot be undone.')), C.a.createElement('div', {
  52990.         className: 'spacing-top-double align align--between'
  52991.       }, C.a.createElement('button', {
  52992.         className: 'button button-medium button-fill',
  52993.         onClick: e
  52994.       }, 'Keep Badges on'), C.a.createElement('button', {
  52995.         className: 'button button-medium button-fill--red',
  52996.         onClick: t
  52997.       }, 'Yes, turn Badges off'))))
  52998.     };
  52999.     r.propTypes = {
  53000.       onConfirm: b.a.func.isRequired,
  53001.       onClose: b.a.func.isRequired
  53002.     };
  53003.     var Nq = r;
  53004.     function Cq(e) {
  53005.       return (Cq = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  53006.         return typeof e
  53007.       }
  53008.        : function (e) {
  53009.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  53010.       }) (e)
  53011.     }
  53012.     function Rq() {
  53013.       return (Rq = Object.assign || function (e) {
  53014.         for (var t = 1; t < arguments.length; t++) {
  53015.           var n,
  53016.           a = arguments[t];
  53017.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  53018.         }
  53019.         return e
  53020.       }).apply(this, arguments)
  53021.     }
  53022.     function xq(e) {
  53023.       return function (e) {
  53024.         if (Array.isArray(e)) return Aq(e)
  53025.       }(e) || function (e) {
  53026.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  53027.       }(e) || function (e, t) {
  53028.         if (e) {
  53029.           if ('string' == typeof e) return Aq(e, t);
  53030.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  53031.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Aq(e, t) : void 0
  53032.         }
  53033.       }(e) || function () {
  53034.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  53035.       }()
  53036.     }
  53037.     function Aq(e, t) {
  53038.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  53039.       return a
  53040.     }
  53041.     function Dq(t, e) {
  53042.       var n,
  53043.       a = Object.keys(t);
  53044.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  53045.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  53046.       })), a.push.apply(a, n)),
  53047.       a
  53048.     }
  53049.     function jq(t) {
  53050.       for (var e = 1; e < arguments.length; e++) {
  53051.         var n = null != arguments[e] ? arguments[e] : {
  53052.         };
  53053.         e % 2 ? Dq(Object(n), !0).forEach(function (e) {
  53054.           Uq(t, e, n[e])
  53055.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Dq(Object(n)).forEach(function (e) {
  53056.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  53057.         })
  53058.       }
  53059.       return t
  53060.     }
  53061.     function Tq(e, t) {
  53062.       for (var n = 0; n < t.length; n++) {
  53063.         var a = t[n];
  53064.         a.enumerable = a.enumerable || !1,
  53065.         a.configurable = !0,
  53066.         'value' in a && (a.writable = !0),
  53067.         Object.defineProperty(e, a.key, a)
  53068.       }
  53069.     }
  53070.     function Iq(e, t) {
  53071.       return (Iq = Object.setPrototypeOf || function (e, t) {
  53072.         return e.__proto__ = t,
  53073.         e
  53074.       }) (e, t)
  53075.     }
  53076.     function qq(n) {
  53077.       var a = function () {
  53078.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  53079.         if (Reflect.construct.sham) return !1;
  53080.         if ('function' == typeof Proxy) return !0;
  53081.         try {
  53082.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  53083.           ], function () {
  53084.           })),
  53085.           !0
  53086.         } catch (e) {
  53087.           return !1
  53088.         }
  53089.       }();
  53090.       return function () {
  53091.         var e,
  53092.         t = Lq(n);
  53093.         return e = a ? (e = Lq(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  53094.         t = this,
  53095.         !(e = e) || 'object' !== Cq(e) && 'function' != typeof e ? Fq(t) : e
  53096.       }
  53097.     }
  53098.     function Fq(e) {
  53099.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  53100.       return e
  53101.     }
  53102.     function Lq(e) {
  53103.       return (Lq = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  53104.         return e.__proto__ || Object.getPrototypeOf(e)
  53105.       }) (e)
  53106.     }
  53107.     function Uq(e, t, n) {
  53108.       return t in e ? Object.defineProperty(e, t, {
  53109.         value: n,
  53110.         enumerable: !0,
  53111.         configurable: !0,
  53112.         writable: !0
  53113.       }) : e[t] = n,
  53114.       e
  53115.     }
  53116.     var Mq = function (e) {
  53117.       return !!(e.image && e.name && e.criteria && 0 === e.imageErrors.length) && (e.criteria === We.BADGES_CRITERIA.MANUAL && 0 === e.target || e.criteria !== We.BADGES_CRITERIA.MANUAL && 0 < e.target && e.target <= sC)
  53118.     },
  53119.     go = function () {
  53120.       !function (e, t) {
  53121.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  53122.         e.prototype = Object.create(t && t.prototype, {
  53123.           constructor: {
  53124.             value: e,
  53125.             writable: !0,
  53126.             configurable: !0
  53127.           }
  53128.         }),
  53129.         t && Iq(e, t)
  53130.       }(r, A);
  53131.       var e,
  53132.       t,
  53133.       n,
  53134.       a = qq(r);
  53135.       function r() {
  53136.         var i;
  53137.         !function (e, t) {
  53138.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  53139.         }(this, r);
  53140.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  53141.         return Uq(Fq(i = a.call.apply(a, [
  53142.           this
  53143.         ].concat(t))), 'state', {
  53144.           badgesEnabled: !1,
  53145.           badges: i.props.badges,
  53146.           highlightInvalidFields: null,
  53147.           hasInvalidBadges: !1,
  53148.           hasNewImages: !1,
  53149.           hasRemovedBadge: !1,
  53150.           savedBadges: [
  53151.           ],
  53152.           errors: [
  53153.           ],
  53154.           modal: {
  53155.           }
  53156.         }),
  53157.         Uq(Fq(i), 'confirmNavigationIfUnsaved', function () {
  53158.           if (i.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  53159.         }),
  53160.         Uq(Fq(i), 'hasUnsavedChanges', function () {
  53161.           return i.state.badges.some(function (e) {
  53162.             return e.hasChanges
  53163.           }) || i.state.hasRemovedBadge
  53164.         }),
  53165.         Uq(Fq(i), 'hasBadgesFeature', function () {
  53166.           return !!(i.props.forumDetails && i.props.forumDetails.features && i.props.forumDetails.features.badges)
  53167.         }),
  53168.         Uq(Fq(i), 'getBadgeById', function (t) {
  53169.           var e = i.state.badges.filter(function (e) {
  53170.             return e.id === t
  53171.           });
  53172.           return e.length ? e[0] : null
  53173.         }),
  53174.         Uq(Fq(i), 'getChangedFields', function (t) {
  53175.           var e = [
  53176.             'image',
  53177.             'name',
  53178.             'criteria',
  53179.             'target'
  53180.           ];
  53181.           if (t.isNew) return e;
  53182.           var n = i.state.savedBadges.filter(function (e) {
  53183.             return e.id === t.id
  53184.           }).pop() || {
  53185.           };
  53186.           return e.filter(function (e) {
  53187.             return n[e] !== t[e]
  53188.           })
  53189.         }),
  53190.         Uq(Fq(i), 'updateBadgesData', function (e) {
  53191.           return e.length ? e.map(function (e) {
  53192.             return jq(jq({
  53193.             }, e), {
  53194.             }, {
  53195.               imageFile: null,
  53196.               imageErrors: [
  53197.               ],
  53198.               isNew: !1,
  53199.               isInvalid: !1,
  53200.               hasChanges: !1
  53201.             })
  53202.           }) : i.state.badges.length ? i.state.badges : [
  53203.             jq(jq({
  53204.             }, mC), {
  53205.             }, {
  53206.               id: i.generateBadgeId()
  53207.             })
  53208.           ]
  53209.         }),
  53210.         Uq(Fq(i), 'generateBadgeId', function () {
  53211.           for (var e = null; !e || i.getBadgeById(e); ) e = Math.floor(10 * Math.random()) + We.MAX_BADGE_COUNT;
  53212.           return e
  53213.         }),
  53214.         Uq(Fq(i), 'getTrackingData', function () {
  53215.           var e = i.state.badges.map(function (e) {
  53216.             return je.a.pick(e, 'id', 'image', 'name', 'criteria', 'target', 'forum')
  53217.           });
  53218.           return {
  53219.             zone: 'badges',
  53220.             section: 'settings',
  53221.             verb: 'update',
  53222.             object_type: 'forum',
  53223.             object_id: i.props.selection.forum.id,
  53224.             area: 'modal',
  53225.             extra_data: {
  53226.               badgesEnabled: {
  53227.                 before: i.state.badgesEnabled,
  53228.                 after: null
  53229.               },
  53230.               badges: {
  53231.                 before: e,
  53232.                 after: null
  53233.               }
  53234.             }
  53235.           }
  53236.         }),
  53237.         Uq(Fq(i), 'emitEvent', function (e) {
  53238.           e.extra_data = JSON.stringify(e.extra_data),
  53239.           i.props.emitTrackingEvent(e)
  53240.         }),
  53241.         Uq(Fq(i), 'createBadge', function () {
  53242.           var t = i.generateBadgeId();
  53243.           i.setState(function (e) {
  53244.             return {
  53245.               badges: [
  53246.               ].concat(xq(e.badges), [
  53247.                 jq(jq({
  53248.                 }, mC), {
  53249.                 }, {
  53250.                   id: t,
  53251.                   hasChanges: !1
  53252.                 })
  53253.               ]),
  53254.               hasInvalidBadges: !0,
  53255.               highlightInvalidFields: !1
  53256.             }
  53257.           })
  53258.         }),
  53259.         Uq(Fq(i), 'removeBadge', function (a, e) {
  53260.           var r = i.getBadgeById(a);
  53261.           r || e ? i.setState(function (e) {
  53262.             var t = e.badges.filter(function (e) {
  53263.               return e.id !== a
  53264.             }),
  53265.             n = t.some(function (e) {
  53266.               return e.isInvalid
  53267.             });
  53268.             return {
  53269.               hasInvalidBadges: n,
  53270.               badges: t,
  53271.               modal: {
  53272.               },
  53273.               hasRemovedBadge: e.hasRemovedBadge || !r.isNew,
  53274.               errors: n ? e.errors : [
  53275.               ]
  53276.             }
  53277.           }) : i.openModal(cC, r, i.removeBadge.bind(Fq(i), a, !0))
  53278.         }),
  53279.         Uq(Fq(i), 'handleBadgeChange', function (n, e, t) {
  53280.           var a = i.getBadgeById(n),
  53281.           r = jq(jq({
  53282.           }, a), e),
  53283.           o = i.getChangedFields(r);
  53284.           !e.criteria || r.isNew || !~o.indexOf('criteria') || t ? i.setState(function (e) {
  53285.             var t = e.badges.findIndex(function (e) {
  53286.               return e.id === n
  53287.             }),
  53288.             t = [
  53289.             ].concat(xq(e.badges.slice(0, t)), [
  53290.               jq(jq({
  53291.                 imageErrors: [
  53292.                 ]
  53293.               }, r), {
  53294.               }, {
  53295.                 isInvalid: !Mq(r),
  53296.                 hasChanges: 0 < o.length
  53297.               })
  53298.             ], xq(e.badges.slice(t + 1)));
  53299.             return {
  53300.               badges: t,
  53301.               hasNewImages: e.hasNewImages || !!~o.indexOf('image'),
  53302.               hasInvalidBadges: t.some(function (e) {
  53303.                 return e.isInvalid
  53304.               }),
  53305.               modal: {
  53306.               },
  53307.               errors: [
  53308.               ]
  53309.             }
  53310.           }) : i.openModal(uC, a, i.handleBadgeChange.bind(Fq(i), a.id, e, !0))
  53311.         }),
  53312.         Uq(Fq(i), 'uploadBadgeImages', function () {
  53313.           i.props.uploadImages({
  53314.             data: {
  53315.               badges: i.state.badges
  53316.             },
  53317.             onSuccess: function (n) {
  53318.               var e = n.length ? i.state.badges.map(function (e, t) {
  53319.                 return jq(jq({
  53320.                 }, e), n[t])
  53321.               }) : i.state.badges;
  53322.               i.setState({
  53323.                 badges: e,
  53324.                 hasNewImages: !1,
  53325.                 hasInvalidBadges: !1
  53326.               }, i.saveBadges)
  53327.             }
  53328.           })
  53329.         }),
  53330.         Uq(Fq(i), 'saveBadges', function () {
  53331.           var t;
  53332.           i.state.badgesEnabled ? i.state.hasInvalidBadges ? i.setState(function () {
  53333.             return {
  53334.               highlightInvalidFields: !0,
  53335.               errors: [
  53336.                 'Unable to save these changes because you have one or more invalid badge field. Fix the highlighted fields and try again.'
  53337.               ]
  53338.             }
  53339.           }) : i.state.hasNewImages ? i.uploadBadgeImages() : (t = i.getTrackingData(), i.setState(function () {
  53340.             i.props.saveBadges({
  53341.               forum: i.props.selection.forum.shortname,
  53342.               data: {
  53343.                 badges: i.state.badges.map(function (e) {
  53344.                   return {
  53345.                     id: e.isNew ? null : e.id,
  53346.                     name: e.name,
  53347.                     image: e.image,
  53348.                     criteria: e.criteria,
  53349.                     target: e.target
  53350.                   }
  53351.                 })
  53352.               },
  53353.               onSuccess: function (e) {
  53354.                 t.extra_data.badgesEnabled.after = e.badgesEnabled,
  53355.                 t.extra_data.badges.after = e.badges,
  53356.                 i.emitEvent(t)
  53357.               }
  53358.             })
  53359.           })) : i.toggleBadgesEnabled(!1)
  53360.         }),
  53361.         Uq(Fq(i), 'toggleBadgesEnabled', function (e) {
  53362.           var t;
  53363.           i.state.badgesEnabled && !e ? i.openModal(pC, null, i.toggleBadgesEnabled.bind(Fq(i), !0)) : (t = i.getTrackingData(), i.props.toggleBadges({
  53364.             forum: i.props.selection.forum.shortname,
  53365.             data: {
  53366.               badgesEnabled: i.state.badgesEnabled ? 0 : 1
  53367.             },
  53368.             onSuccess: function (e) {
  53369.               t.verb = e.badgesEnabled ? 'enable' : 'disable',
  53370.               t.extra_data.badgesEnabled.after = e.badgesEnabled,
  53371.               i.emitEvent(t)
  53372.             }
  53373.           }))
  53374.         }),
  53375.         Uq(Fq(i), 'openModal', function (e, t, n) {
  53376.           i.setState({
  53377.             modal: {
  53378.               type: e,
  53379.               badge: t,
  53380.               onConfirm: n
  53381.             }
  53382.           })
  53383.         }),
  53384.         Uq(Fq(i), 'closeModal', function () {
  53385.           i.setState({
  53386.             modal: {
  53387.             }
  53388.           })
  53389.         }),
  53390.         Uq(Fq(i), 'getBadgesModal', function () {
  53391.           return i.state.modal.type === cC || i.state.modal.type === uC ? C.a.createElement(kq, Rq({
  53392.           }, i.state.modal, {
  53393.             onClose: i.closeModal
  53394.           })) : i.state.modal.type === pC ? C.a.createElement(Nq, Rq({
  53395.           }, i.state.modal, {
  53396.             onClose: i.closeModal
  53397.           })) : void 0
  53398.         }),
  53399.         i
  53400.       }
  53401.       return e = r,
  53402.       (t = [
  53403.         {
  53404.           key: 'componentDidMount',
  53405.           value: function () {
  53406.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  53407.             window.onbeforeunload = this.confirmNavigationIfUnsaved,
  53408.             this.props.emitTrackingEvent({
  53409.               verb: 'view',
  53410.               object_type: 'page',
  53411.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  53412.             }),
  53413.             this.props.forumDetails ? this.hasBadgesFeature() && this.props.fetchBadges(this.props.selection.forum.shortname) : this.props.fetchForumDetails()
  53414.           }
  53415.         },
  53416.         {
  53417.           key: 'componentWillReceiveProps',
  53418.           value: function (t) {
  53419.             var n = {
  53420.             };
  53421.             !this.hasBadgesFeature() || t.isFetching || this.props.isFetched || t.isFetched || this.props.fetchBadges(this.props.selection.forum.shortname),
  53422.             this.props.isFetching && !t.isFetching ? n.savedBadges = t.badgesSynced : this.props.isToggling && !t.isToggled && t.badgesEnabledSynced && this.hasUnsavedChanges() ? this.saveBadges() : this.props.isSaving && t.isSaved && (n.savedBadges = t.badgesSynced, n.hasRemovedBadge = !1),
  53423.             (t.errors || t.forumDetailsError) && (n.errors = t.errors, t.forumDetailsError && n.errors.push(t.forumDetailsError)),
  53424.             n.badges = this.updateBadgesData(t.badgesSynced),
  53425.             this.setState(function (e) {
  53426.               return jq(jq({
  53427.               }, n), {
  53428.               }, {
  53429.                 badgesEnabled: void 0 === t.badgesEnabledSynced ? e.badgesEnabled : t.badgesEnabledSynced,
  53430.                 highlightInvalidFields: !1,
  53431.                 errors: t.errors,
  53432.                 modal: {
  53433.                 }
  53434.               })
  53435.             })
  53436.           }
  53437.         },
  53438.         {
  53439.           key: 'render',
  53440.           value: function () {
  53441.             var t = this;
  53442.             if (!this.props.forumDetails && !this.props.forumDetailsError || this.props.forumDetailsIsFetching || this.props.isFetching) return C.a.createElement(Ji, null);
  53443.             var e = this.hasUnsavedChanges() && !(this.state.highlightInvalidFields && this.state.hasInvalidBadges),
  53444.             n = this.hasBadgesFeature();
  53445.             return C.a.createElement('div', null, n ? null : C.a.createElement(ch, {
  53446.               headline: 'Looking to create badges for your website?',
  53447.               promotionalPlan: 'Disqus Pro',
  53448.               planDetailsUrl: 'https://disqus.com/pricing/',
  53449.               upsellMessageLeft: 'Upgrade to',
  53450.               upsellMessageRight: ' to create and award badges for your audience.',
  53451.               selection: this.props.selection,
  53452.               emitTrackingEvent: this.props.emitTrackingEvent
  53453.             }), C.a.createElement('div', {
  53454.               className: 'settings-badges'
  53455.             }, C.a.createElement('div', {
  53456.               className: 'content__wrap spacing-bottom-double'
  53457.             }, C.a.createElement('header', {
  53458.               className: 'settings__header'
  53459.             }, C.a.createElement('h2', {
  53460.               className: 'text-larger text-gray-darker spacing-bottom-small'
  53461.             }, 'Configure Badges'), C.a.createElement('p', {
  53462.               className: 'text-gray'
  53463.             }, 'Create custom badges to reward engagement on your site. ', C.a.createElement('a', {
  53464.               href: Pn.badges,
  53465.               target: '_blank',
  53466.               rel: 'noopener noreferrer'
  53467.             }, 'Learn more »'))), C.a.createElement('section', {
  53468.               className: 'settings__content'
  53469.             }, C.a.createElement('header', null, C.a.createElement('p', {
  53470.               className: 'text-gray text-medium'
  53471.             }, 'Define up to ', We.MAX_BADGE_COUNT, ' badges that you would like to award to commenters on your website. A badge can be awarded manually or automatically based on one of the provided criteria.'), C.a.createElement('p', {
  53472.               className: 'text-gray text-medium'
  53473.             }, C.a.createElement('b', null, 'Having trouble coming up with badge images?'), ' You can download a collection of images ', C.a.createElement('a', {
  53474.               href: Pn.badgesImageCollection,
  53475.               target: '_blank',
  53476.               rel: 'noopener noreferrer'
  53477.             }, 'here'), '.')), this.state.errors && this.state.errors.length || this.props.error ? C.a.createElement(Ki, {
  53478.               message: this.state.errors && this.state.errors.length ? C.a.createElement('span', null, this.state.errors.map(function (e, t) {
  53479.                 return C.a.createElement('span', {
  53480.                   key: t
  53481.                 }, e, C.a.createElement('br', null))
  53482.               })) : this.props.error,
  53483.               alertType: 'error'
  53484.             }) : null, C.a.createElement('div', {
  53485.               className: 'badges-section spacing-top'
  53486.             }, C.a.createElement('div', {
  53487.               className: 'rows__container'
  53488.             }, C.a.createElement('div', {
  53489.               className: 'badges-input-header row text-gray-dark text-medium'
  53490.             }, C.a.createElement('span', {
  53491.               className: 'image-header align--wrap'
  53492.             }, 'Image', C.a.createElement(Md, {
  53493.               tooltipKey: 'badge_images',
  53494.               content: 'We recommend a small, distinctive image to make sure the badge is discernible when displayed next to a username.\n                                                (Max size: '.concat(lC / 1000, 'KB)')
  53495.             })), C.a.createElement('span', {
  53496.               className: 'badges-header-group'
  53497.             }, C.a.createElement('span', {
  53498.               className: 'name-header align--wrap spacing-left'
  53499.             }, 'Name'), C.a.createElement('span', {
  53500.               className: 'criteria-header align--wrap spacing-left'
  53501.             }, 'Criteria', C.a.createElement(Md, {
  53502.               tooltipKey: 'badge_criteria',
  53503.               content: 'The criteria will only apply to future engagement and will not reflect activity prior to the badge creation.'
  53504.             })), C.a.createElement('span', {
  53505.               className: 'target-header align--wrap spacing-left'
  53506.             }, 'Target', C.a.createElement(Md, {
  53507.               tooltipKey: 'badge_target',
  53508.               content: 'Changing the target will not remove the badge from users that have already received it.'
  53509.             })))), this.state.badges ? this.state.badges.map(function (e) {
  53510.               return C.a.createElement(Pq, Rq({
  53511.               }, e, {
  53512.                 key: e.id,
  53513.                 onChange: t.handleBadgeChange.bind(t, e.id),
  53514.                 removeBadge: t.removeBadge.bind(t, e.id, !1),
  53515.                 isBadgeValid: Mq.bind(t, e),
  53516.                 highlightInvalid: t.state.highlightInvalidFields
  53517.               }))
  53518.             }) : null, C.a.createElement('div', {
  53519.               className: 'add-row align spacing-top-narrow'
  53520.             }, C.a.createElement('button', {
  53521.               className: 'button button-fill--brand button-small',
  53522.               onClick: this.createBadge,
  53523.               disabled: We.MAX_BADGE_COUNT <= this.state.badges.length
  53524.             }, '+ Add badge'))))), C.a.createElement('footer', {
  53525.               className: 'settings__footer'
  53526.             }, C.a.createElement(Bh, {
  53527.               onClick: this.saveBadges,
  53528.               buttonLabel: this.state.badgesEnabled && n ? 'Save' : 'Enable Badges on your site',
  53529.               disabled: this.state.badgesEnabled ? !e : !n,
  53530.               fieldsetAdditionalClass: 'unset-width',
  53531.               isSaving: this.props.isSaving,
  53532.               isSaved: this.props.isSaved,
  53533.               saveErr: !!this.state.errors.length
  53534.             }))), this.state.badgesEnabled ? C.a.createElement('div', {
  53535.               className: 'content__wrap'
  53536.             }, C.a.createElement('header', {
  53537.               className: 'settings__header disable-section align align--between align--middle'
  53538.             }, C.a.createElement('div', {
  53539.               className: 'spacing-right-large'
  53540.             }, C.a.createElement('h2', {
  53541.               className: 'text-larger text-gray-darker spacing-bottom-small'
  53542.             }, 'Disable Badges'), C.a.createElement('p', {
  53543.               className: 'text-gray'
  53544.             }, 'The badges will be removed from all commenters on your site.')), C.a.createElement('div', {
  53545.               className: 'align__item--no-shrink'
  53546.             }, C.a.createElement('button', {
  53547.               className: 'button button-fill--red button-medium',
  53548.               onClick: this.toggleBadgesEnabled.bind(this, !1)
  53549.             }, 'Turn Badges off')))) : null, this.getBadgesModal()))
  53550.           }
  53551.         }
  53552.       ]) && Tq(e.prototype, t),
  53553.       n && Tq(e, n),
  53554.       r
  53555.     }();
  53556.     Uq(go, 'displayName', 'ForumSettingsBadges'),
  53557.     Uq(go, 'propTypes', {
  53558.       selection: ht.isRequired,
  53559.       badgesEnabledSynced: b.a.bool,
  53560.       badgesSynced: b.a.arrayOf(b.a.shape(sl)),
  53561.       isFetching: b.a.bool,
  53562.       isFetched: b.a.bool,
  53563.       isSaving: b.a.bool,
  53564.       isSaved: b.a.bool,
  53565.       error: b.a.string,
  53566.       toggleBadges: b.a.func.isRequired,
  53567.       fetchBadges: b.a.func.isRequired,
  53568.       uploadImages: b.a.func.isRequired,
  53569.       saveBadges: b.a.func.isRequired,
  53570.       emitTrackingEvent: b.a.func.isRequired,
  53571.       forumDetails: $c,
  53572.       forumDetailsError: b.a.string,
  53573.       forumDetailsIsFetching: b.a.bool,
  53574.       fetchForumDetails: b.a.func.isRequired,
  53575.       saasFeatures: b.a.objectOf(b.a.objectOf(b.a.bool)).isRequired,
  53576.       history: b.a.shape({
  53577.         push: b.a.func.isRequired,
  53578.         setRouteLeaveHook: b.a.func.isRequired
  53579.       }).isRequired,
  53580.       route: b.a.object
  53581.     });
  53582.     var F = Object(u.connect) (function (e) {
  53583.       var t = e.badges,
  53584.       n = e.saasFeatures,
  53585.       a = e.selection;
  53586.       return jq(jq({
  53587.         forumDetails: e.forumDetails.forumDetails
  53588.       }, t), {
  53589.       }, {
  53590.         badgesEnabledSynced: t.badgesEnabled,
  53591.         badgesSynced: t.badges,
  53592.         saasFeatures: n,
  53593.         selection: a
  53594.       })
  53595.     }, jq(jq({
  53596.       fetchForumDetails: ig
  53597.     }, Wi), {
  53598.     }, {
  53599.       emitTrackingEvent: Xo({
  53600.         zone: 'badges',
  53601.         section: 'settings'
  53602.       })
  53603.     })) (Fo() (go)),
  53604.     yl = n(520),
  53605.     Bq = n.n(yl),
  53606.     Ru = n(521),
  53607.     zq = n.n(Ru),
  53608.     Hq = n(54),
  53609.     Gq = 10,
  53610.     Vq = 20,
  53611.     r = b.a.shape({
  53612.       text: b.a.string.isRequired,
  53613.       votes: b.a.number,
  53614.       imageUrl: b.a.string,
  53615.       imageID: b.a.number,
  53616.       isSelected: b.a.bool,
  53617.       errs: b.a.shape({
  53618.         text: b.a.bool,
  53619.         imageUrl: b.a.bool,
  53620.         imageID: b.a.bool
  53621.       })
  53622.     }),
  53623.     sl = b.a.shape({
  53624.       imageUrl: b.a.string.isRequired,
  53625.       imageID: b.a.number.isRequired
  53626.     }),
  53627.     Wq = 'You must have least 2 reactions',
  53628.     Yq = 'You may not have more than 6 reactions',
  53629.     Qq = 'You must select an image for each reaction',
  53630.     Kq = 'You must enter a description for each reaction',
  53631.     Jq = 'You may not use the same image more than once',
  53632.     $q = 'You may not use the same description more than once';
  53633.     function Zq(t, e) {
  53634.       var n,
  53635.       a = Object.keys(t);
  53636.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  53637.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  53638.       })), a.push.apply(a, n)),
  53639.       a
  53640.     }
  53641.     function Xq(a) {
  53642.       for (var e = 1; e < arguments.length; e++) {
  53643.         var r = null != arguments[e] ? arguments[e] : {
  53644.         };
  53645.         e % 2 ? Zq(Object(r), !0).forEach(function (e) {
  53646.           var t,
  53647.           n;
  53648.           n = r[t = e],
  53649.           t in (e = a) ? Object.defineProperty(e, t, {
  53650.             value: n,
  53651.             enumerable: !0,
  53652.             configurable: !0,
  53653.             writable: !0
  53654.           }) : e[t] = n
  53655.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : Zq(Object(r)).forEach(function (e) {
  53656.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  53657.         })
  53658.       }
  53659.       return a
  53660.     }
  53661.     function eF(e) {
  53662.       return (e().selection.forum || {
  53663.       }).shortname
  53664.     }
  53665.     Wi = {
  53666.       fetchReactions: function () {
  53667.         return function (t, e) {
  53668.           e = eF(e);
  53669.           e && (t({
  53670.             type: me.fetchReactions
  53671.           }), io.a.call('threadReactions/loadTemplateAndImages', {
  53672.             data: {
  53673.               forum: e
  53674.             },
  53675.             success: function (e) {
  53676.               t(Xq({
  53677.                 type: me.onFetch
  53678.               }, e.response))
  53679.             },
  53680.             error: function () {
  53681.               t({
  53682.                 type: me.onError,
  53683.                 message: 'An unknown error occurred trying to fetch your reactions'
  53684.               })
  53685.             }
  53686.           }))
  53687.         }
  53688.       },
  53689.       fetchDefaultReactions: function () {
  53690.         return function (t) {
  53691.           io.a.call('threadReactions/getDefaultImages', {
  53692.             success: function (e) {
  53693.               var n;
  53694.               t({
  53695.                 type: me.onFetchDefaultReactions,
  53696.                 payload: Object.keys(n = e.response).map(function (e, t) {
  53697.                   return {
  53698.                     imageID: t + 1,
  53699.                     imageUrl: n[e].url,
  53700.                     text: n[e].reaction_text
  53701.                   }
  53702.                 })
  53703.               })
  53704.             },
  53705.             error: function () {
  53706.               t({
  53707.                 type: me.onError,
  53708.                 message: 'An unknown error occurred fetching default reactions'
  53709.               })
  53710.             }
  53711.           })
  53712.         }
  53713.       },
  53714.       validateReactions: function (e) {
  53715.         var l = e.reactions,
  53716.         c = e.existingErrors;
  53717.         return function () {
  53718.           var a,
  53719.           r,
  53720.           e,
  53721.           o,
  53722.           i,
  53723.           s,
  53724.           n = {
  53725.           },
  53726.           t = void 0 !== c;
  53727.           return t || l.forEach(function (e) {
  53728.             e.errors = {
  53729.             }
  53730.           }),
  53731.           l.length < 2 ? n[Wq] = !0 : 6 < l.length && (n[Yq] = !0),
  53732.           r = 'imageUrl',
  53733.           e = t,
  53734.           o = [
  53735.           ],
  53736.           i = [
  53737.           ],
  53738.           s = {
  53739.           },
  53740.           (a = l).forEach(function (e, t) {
  53741.             var n = 'imageUrl' === r ? je.a.last(e[r].split('/')).split('-') [0].split('.') [0] : e[r];
  53742.             n && n.trim() || (o.push('imageUrl' === r ? Qq : Kq), i.push(e)),
  53743.             s.hasOwnProperty(n) ? (o.push('imageUrl' === r ? Jq : $q), i.push(e), (e = a[s[n]]) && i.push(e)) : s[n] = t
  53744.           }),
  53745.           e ? a.forEach(function (e) {
  53746.             e.errors && e.errors[r] && !~i.indexOf(e) && (e.errors[r] = !1)
  53747.           }) : i.forEach(function (e) {
  53748.             e.errors = e.errors || {
  53749.             },
  53750.             e.errors[r] = !0
  53751.           }),
  53752.           o.forEach(function (e) {
  53753.             n[e] = !0
  53754.           }),
  53755.           Object.keys(n).length ? t ? c && c.reduce(function (e, t) {
  53756.             return n[t] && e.push(t),
  53757.             e
  53758.           }, [
  53759.           ]) : Object.keys(n) : null
  53760.         }
  53761.       },
  53762.       saveReactions: function (e) {
  53763.         var n = e.data,
  53764.         a = e.onSuccess,
  53765.         r = e.onError;
  53766.         return function (t, e) {
  53767.           e = eF(e);
  53768.           e && (t({
  53769.             type: me.saveReactions
  53770.           }), io.a.call('threadReactions/saveTemplate', {
  53771.             type: 'POST',
  53772.             data: Xq({
  53773.               forum: e
  53774.             }, n),
  53775.             success: function (e) {
  53776.               t({
  53777.                 type: me.onSave
  53778.               }),
  53779.               a && a(e)
  53780.             },
  53781.             error: function (e) {
  53782.               t({
  53783.                 type: me.onError,
  53784.                 message: 'An error occurred trying to save your reactions'
  53785.               }),
  53786.               r && r(e)
  53787.             }
  53788.           }))
  53789.         }
  53790.       },
  53791.       setReactionsEnabled: function (e) {
  53792.         var n = e.enabled,
  53793.         a = e.onSuccess,
  53794.         r = e.onError;
  53795.         return function (t, e) {
  53796.           e = eF(e);
  53797.           e && (t({
  53798.             type: me.saveReactions
  53799.           }), io.a.call('threadReactions/enableForForum', {
  53800.             type: 'POST',
  53801.             data: {
  53802.               forum: e,
  53803.               disable: n ? 0 : 1
  53804.             },
  53805.             success: function (e) {
  53806.               t({
  53807.                 type: me.onSave
  53808.               }),
  53809.               a && a(e)
  53810.             },
  53811.             error: function (e) {
  53812.               t({
  53813.                 type: me.onError,
  53814.                 message: 'An error occurred trying to '.concat(n ? 'enable' : 'disable', ' your reactions')
  53815.               }),
  53816.               r && r(e)
  53817.             }
  53818.           }))
  53819.         }
  53820.       }
  53821.     };
  53822.     function tF(e) {
  53823.       return (tF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  53824.         return typeof e
  53825.       }
  53826.        : function (e) {
  53827.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  53828.       }) (e)
  53829.     }
  53830.     function nF(e, t) {
  53831.       for (var n = 0; n < t.length; n++) {
  53832.         var a = t[n];
  53833.         a.enumerable = a.enumerable || !1,
  53834.         a.configurable = !0,
  53835.         'value' in a && (a.writable = !0),
  53836.         Object.defineProperty(e, a.key, a)
  53837.       }
  53838.     }
  53839.     function aF(e, t) {
  53840.       return (aF = Object.setPrototypeOf || function (e, t) {
  53841.         return e.__proto__ = t,
  53842.         e
  53843.       }) (e, t)
  53844.     }
  53845.     function rF(n) {
  53846.       var a = function () {
  53847.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  53848.         if (Reflect.construct.sham) return !1;
  53849.         if ('function' == typeof Proxy) return !0;
  53850.         try {
  53851.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  53852.           ], function () {
  53853.           })),
  53854.           !0
  53855.         } catch (e) {
  53856.           return !1
  53857.         }
  53858.       }();
  53859.       return function () {
  53860.         var e,
  53861.         t = iF(n);
  53862.         return e = a ? (e = iF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  53863.         t = this,
  53864.         !(e = e) || 'object' !== tF(e) && 'function' != typeof e ? oF(t) : e
  53865.       }
  53866.     }
  53867.     function oF(e) {
  53868.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  53869.       return e
  53870.     }
  53871.     function iF(e) {
  53872.       return (iF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  53873.         return e.__proto__ || Object.getPrototypeOf(e)
  53874.       }) (e)
  53875.     }
  53876.     function sF(e, t, n) {
  53877.       return t in e ? Object.defineProperty(e, t, {
  53878.         value: n,
  53879.         enumerable: !0,
  53880.         configurable: !0,
  53881.         writable: !0
  53882.       }) : e[t] = n,
  53883.       e
  53884.     }
  53885.     go = function () {
  53886.       !function (e, t) {
  53887.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  53888.         e.prototype = Object.create(t && t.prototype, {
  53889.           constructor: {
  53890.             value: e,
  53891.             writable: !0,
  53892.             configurable: !0
  53893.           }
  53894.         }),
  53895.         t && aF(e, t)
  53896.       }(o, A);
  53897.       var e,
  53898.       t,
  53899.       n,
  53900.       r = rF(o);
  53901.       function o() {
  53902.         var e;
  53903.         !function (e, t) {
  53904.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  53905.         }(this, o);
  53906.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  53907.         return sF(oF(e = r.call.apply(r, [
  53908.           this
  53909.         ].concat(n))), 'onDelete', function () {
  53910.           e.props.closeModal(),
  53911.           e.props.deleteImages()
  53912.         }),
  53913.         e
  53914.       }
  53915.       return e = o,
  53916.       (t = [
  53917.         {
  53918.           key: 'render',
  53919.           value: function () {
  53920.             return C.a.createElement('div', null, C.a.createElement(_.a, {
  53921.               isOpen: this.props.isOpen,
  53922.               onRequestClose: this.props.closeModal,
  53923.               contentLabel: 'Delete Confirmation',
  53924.               className: 'admin-modal__custom-images padding-double'
  53925.             }, C.a.createElement('h2', null, 'Do you want to delete '.concat(this.props.isMultiple ? 'these reactions' : 'this reaction', '?')), C.a.createElement('div', null, C.a.createElement('button', {
  53926.               onClick: this.onDelete,
  53927.               className: 'button button-fill--red button-small'
  53928.             }, 'Delete'), C.a.createElement('button', {
  53929.               onClick: this.props.closeModal,
  53930.               className: 'button button-fill--brand button-small'
  53931.             }, 'Cancel'))))
  53932.           }
  53933.         }
  53934.       ]) && nF(e.prototype, t),
  53935.       n && nF(e, n),
  53936.       o
  53937.     }();
  53938.     sF(go, 'propTypes', {
  53939.       deleteImages: b.a.func.isRequired,
  53940.       isOpen: b.a.bool.isRequired,
  53941.       closeModal: b.a.func.isRequired,
  53942.       isMultiple: b.a.bool.isRequired
  53943.     });
  53944.     var lF = go;
  53945.     function cF(e) {
  53946.       return (cF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  53947.         return typeof e
  53948.       }
  53949.        : function (e) {
  53950.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  53951.       }) (e)
  53952.     }
  53953.     function uF(e, t) {
  53954.       for (var n = 0; n < t.length; n++) {
  53955.         var a = t[n];
  53956.         a.enumerable = a.enumerable || !1,
  53957.         a.configurable = !0,
  53958.         'value' in a && (a.writable = !0),
  53959.         Object.defineProperty(e, a.key, a)
  53960.       }
  53961.     }
  53962.     function pF(e, t) {
  53963.       return (pF = Object.setPrototypeOf || function (e, t) {
  53964.         return e.__proto__ = t,
  53965.         e
  53966.       }) (e, t)
  53967.     }
  53968.     function dF(n) {
  53969.       var a = function () {
  53970.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  53971.         if (Reflect.construct.sham) return !1;
  53972.         if ('function' == typeof Proxy) return !0;
  53973.         try {
  53974.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  53975.           ], function () {
  53976.           })),
  53977.           !0
  53978.         } catch (e) {
  53979.           return !1
  53980.         }
  53981.       }();
  53982.       return function () {
  53983.         var e,
  53984.         t = fF(n);
  53985.         return e = a ? (e = fF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  53986.         t = this,
  53987.         !(e = e) || 'object' !== cF(e) && 'function' != typeof e ? mF(t) : e
  53988.       }
  53989.     }
  53990.     function mF(e) {
  53991.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  53992.       return e
  53993.     }
  53994.     function fF(e) {
  53995.       return (fF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  53996.         return e.__proto__ || Object.getPrototypeOf(e)
  53997.       }) (e)
  53998.     }
  53999.     function hF(e, t, n) {
  54000.       return t in e ? Object.defineProperty(e, t, {
  54001.         value: n,
  54002.         enumerable: !0,
  54003.         configurable: !0,
  54004.         writable: !0
  54005.       }) : e[t] = n,
  54006.       e
  54007.     }
  54008.     yl = function () {
  54009.       !function (e, t) {
  54010.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  54011.         e.prototype = Object.create(t && t.prototype, {
  54012.           constructor: {
  54013.             value: e,
  54014.             writable: !0,
  54015.             configurable: !0
  54016.           }
  54017.         }),
  54018.         t && pF(e, t)
  54019.       }(o, A);
  54020.       var e,
  54021.       t,
  54022.       n,
  54023.       r = dF(o);
  54024.       function o() {
  54025.         var e;
  54026.         !function (e, t) {
  54027.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  54028.         }(this, o);
  54029.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  54030.         return hF(mF(e = r.call.apply(r, [
  54031.           this
  54032.         ].concat(n))), 'onClickDeletableReactions', function () {
  54033.           e.props.toggleImageSelection(e.props.id),
  54034.           e.props.clearHighlight(e.props.id),
  54035.           e.props.numHighlightedImages || e.props.updateErrorMessage('')
  54036.         }),
  54037.         hF(mF(e), 'onClickNoneDeletableReaction', function () {
  54038.           return e.props.updateErrorMessage('You may not delete images currently used in the template.')
  54039.         }),
  54040.         e
  54041.       }
  54042.       return e = o,
  54043.       (t = [
  54044.         {
  54045.           key: 'componentWillReceiveProps',
  54046.           value: function (e) {
  54047.             this.props.isDeletable !== e.isDeletable && !e.isDeletable && e.selected && this.props.toggleImageSelection(this.props.id)
  54048.           }
  54049.         },
  54050.         {
  54051.           key: 'render',
  54052.           value: function () {
  54053.             return C.a.createElement('div', {
  54054.               className: 'custom-image'.concat(this.props.selected && this.props.isDeletable ? '-selected' : this.props.highlighted ? '-highlighted' : ''),
  54055.               key: this.props.id
  54056.             }, C.a.createElement('img', {
  54057.               src: this.props.url,
  54058.               onClick: this.props.isDeletable ? this.onClickDeletableReactions : this.onClickNoneDeletableReaction
  54059.             }))
  54060.           }
  54061.         }
  54062.       ]) && uF(e.prototype, t),
  54063.       n && uF(e, n),
  54064.       o
  54065.     }();
  54066.     hF(yl, 'propTypes', {
  54067.       id: b.a.number.isRequired,
  54068.       url: b.a.string.isRequired,
  54069.       toggleImageSelection: b.a.func.isRequired,
  54070.       clearHighlight: b.a.func.isRequired,
  54071.       isDeletable: b.a.bool.isRequired,
  54072.       updateErrorMessage: b.a.func.isRequired,
  54073.       selected: b.a.bool.isRequired,
  54074.       highlighted: b.a.bool.isRequired,
  54075.       numHighlightedImages: b.a.number.isRequired
  54076.     });
  54077.     var gF = yl;
  54078.     function yF(e) {
  54079.       return (yF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  54080.         return typeof e
  54081.       }
  54082.        : function (e) {
  54083.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  54084.       }) (e)
  54085.     }
  54086.     function bF(e, t) {
  54087.       for (var n = 0; n < t.length; n++) {
  54088.         var a = t[n];
  54089.         a.enumerable = a.enumerable || !1,
  54090.         a.configurable = !0,
  54091.         'value' in a && (a.writable = !0),
  54092.         Object.defineProperty(e, a.key, a)
  54093.       }
  54094.     }
  54095.     function vF(e, t) {
  54096.       return (vF = Object.setPrototypeOf || function (e, t) {
  54097.         return e.__proto__ = t,
  54098.         e
  54099.       }) (e, t)
  54100.     }
  54101.     function _F(n) {
  54102.       var a = function () {
  54103.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  54104.         if (Reflect.construct.sham) return !1;
  54105.         if ('function' == typeof Proxy) return !0;
  54106.         try {
  54107.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  54108.           ], function () {
  54109.           })),
  54110.           !0
  54111.         } catch (e) {
  54112.           return !1
  54113.         }
  54114.       }();
  54115.       return function () {
  54116.         var e,
  54117.         t = OF(n);
  54118.         return e = a ? (e = OF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  54119.         t = this,
  54120.         !(e = e) || 'object' !== yF(e) && 'function' != typeof e ? EF(t) : e
  54121.       }
  54122.     }
  54123.     function EF(e) {
  54124.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  54125.       return e
  54126.     }
  54127.     function OF(e) {
  54128.       return (OF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  54129.         return e.__proto__ || Object.getPrototypeOf(e)
  54130.       }) (e)
  54131.     }
  54132.     function SF(e, t, n) {
  54133.       return t in e ? Object.defineProperty(e, t, {
  54134.         value: n,
  54135.         enumerable: !0,
  54136.         configurable: !0,
  54137.         writable: !0
  54138.       }) : e[t] = n,
  54139.       e
  54140.     }
  54141.     Ru = function () {
  54142.       !function (e, t) {
  54143.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  54144.         e.prototype = Object.create(t && t.prototype, {
  54145.           constructor: {
  54146.             value: e,
  54147.             writable: !0,
  54148.             configurable: !0
  54149.           }
  54150.         }),
  54151.         t && vF(e, t)
  54152.       }(o, A);
  54153.       var e,
  54154.       t,
  54155.       n,
  54156.       a = _F(o);
  54157.       function o() {
  54158.         var r;
  54159.         !function (e, t) {
  54160.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  54161.         }(this, o);
  54162.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  54163.         return SF(EF(r = a.call.apply(a, [
  54164.           this
  54165.         ].concat(t))), 'state', {
  54166.           isLoading: !1,
  54167.           enabled: !0
  54168.         }),
  54169.         SF(EF(r), 'fileSelectedHandler', function (e) {
  54170.           if (e.target.files.length) {
  54171.             var t = [
  54172.             ],
  54173.             n = e.target.files.length;
  54174.             if (Gq < n + r.props.numImages) r.props.updateErrorMessage('You can have up to '.concat(Gq, ' images'));
  54175.              else {
  54176.               r.setState({
  54177.                 isLoading: !0,
  54178.                 enabled: !1
  54179.               });
  54180.               for (var a = 0; a < n; a++) cq.a.uploadMediaUrl([e.target.files[a]]).then(function (e) {
  54181.                 t.push(e.get('url')),
  54182.                 t.length === n && r.saveUrlsToDb(t)
  54183.               }).catch(function (e) {
  54184.                 var t = (t = e && e.code ? Hq.UPLOAD_IMAGE_ERROR_MESSAGES[e.code] : t) || JSON.parse(e.responseText).response;
  54185.                 r.props.updateErrorMessage(t),
  54186.                 r.setState({
  54187.                   isLoading: !1
  54188.                 })
  54189.               })
  54190.             }
  54191.           }
  54192.         }),
  54193.         SF(EF(r), 'saveUrlsToDb', function (e) {
  54194.           io.a.call('threadReactions/createImages', {
  54195.             type: 'POST',
  54196.             data: {
  54197.               urls: e,
  54198.               forum: r.props.forum
  54199.             },
  54200.             success: function (e) {
  54201.               e = e.response;
  54202.               e.images.length && (t = e.images.map(function (e) {
  54203.                 return {
  54204.                   imageID: e.id,
  54205.                   imageUrl: e.url
  54206.                 }
  54207.               }), r.props.addNewCustomImages(t));
  54208.               var t = '';
  54209.               e.duplicateImageIds.length ? (t = 'Duplicate reactions are not allowed.', r.props.highlightDuplicateImages(e.duplicateImageIds)) : e.invalidUrls.length && (t = 'Invalid image url(s)'),
  54210.               t && r.props.updateErrorMessage(t)
  54211.             },
  54212.             error: function (e) {
  54213.               r.props.updateErrorMessage(JSON.parse(e.responseText).response)
  54214.             }
  54215.           }),
  54216.           r.setState(function (e) {
  54217.             return {
  54218.               isLoading: !1,
  54219.               enabled: e.numImages < Gq
  54220.             }
  54221.           })
  54222.         }),
  54223.         SF(EF(r), 'onClick', function (e) {
  54224.           r.props.updateErrorMessage(''),
  54225.           r.props.clearHighlights(),
  54226.           r.props.clearSelectedIDs(),
  54227.           (e.target || e.srcElement).value.length || r.setState({
  54228.             enabled: !0
  54229.           })
  54230.         }),
  54231.         r
  54232.       }
  54233.       return e = o,
  54234.       (t = [
  54235.         {
  54236.           key: 'componentWillReceiveProps',
  54237.           value: function (e) {
  54238.             this.setState({
  54239.               enabled: e.numImages < Gq
  54240.             })
  54241.           }
  54242.         },
  54243.         {
  54244.           key: 'render',
  54245.           value: function () {
  54246.             return C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  54247.               className: 'loading'.concat(this.state.isLoading ? '-show' : '-hide')
  54248.             }), C.a.createElement('div', {
  54249.               className: 'upload-button'.concat(this.state.enabled ? '' : '-disabled')
  54250.             }, C.a.createElement('input', {
  54251.               type: 'file',
  54252.               id: 'custom-reaction-input',
  54253.               className: 'custom-reaction-input',
  54254.               onChange: this.fileSelectedHandler,
  54255.               onClick: this.onClick,
  54256.               disabled: !this.state.enabled,
  54257.               accept: 'image/*',
  54258.               multiple: !0,
  54259.               value: ''
  54260.             }), C.a.createElement('label', {
  54261.               htmlFor: 'custom-reaction-input'
  54262.             }, C.a.createElement('img', {
  54263.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/add-avatar-plus.svg',
  54264.               className: 'custom-reaction-upload-icon',
  54265.               alt: 'Upload a Custom Reaction'
  54266.             }))))
  54267.           }
  54268.         }
  54269.       ]) && bF(e.prototype, t),
  54270.       n && bF(e, n),
  54271.       o
  54272.     }();
  54273.     SF(Ru, 'propTypes', {
  54274.       forum: b.a.string.isRequired,
  54275.       updateErrorMessage: b.a.func.isRequired,
  54276.       addNewCustomImages: b.a.func.isRequired,
  54277.       highlightDuplicateImages: b.a.func.isRequired,
  54278.       clearHighlights: b.a.func.isRequired,
  54279.       numImages: b.a.number.isRequired,
  54280.       clearSelectedIDs: b.a.func.isRequired
  54281.     });
  54282.     var wF = Ru;
  54283.     function PF(e) {
  54284.       return (PF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  54285.         return typeof e
  54286.       }
  54287.        : function (e) {
  54288.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  54289.       }) (e)
  54290.     }
  54291.     function kF(e) {
  54292.       return function (e) {
  54293.         if (Array.isArray(e)) return NF(e)
  54294.       }(e) || function (e) {
  54295.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  54296.       }(e) || function (e, t) {
  54297.         if (e) {
  54298.           if ('string' == typeof e) return NF(e, t);
  54299.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  54300.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? NF(e, t) : void 0
  54301.         }
  54302.       }(e) || function () {
  54303.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  54304.       }()
  54305.     }
  54306.     function NF(e, t) {
  54307.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  54308.       return a
  54309.     }
  54310.     function CF(e, t) {
  54311.       for (var n = 0; n < t.length; n++) {
  54312.         var a = t[n];
  54313.         a.enumerable = a.enumerable || !1,
  54314.         a.configurable = !0,
  54315.         'value' in a && (a.writable = !0),
  54316.         Object.defineProperty(e, a.key, a)
  54317.       }
  54318.     }
  54319.     function RF(e, t) {
  54320.       return (RF = Object.setPrototypeOf || function (e, t) {
  54321.         return e.__proto__ = t,
  54322.         e
  54323.       }) (e, t)
  54324.     }
  54325.     function xF(n) {
  54326.       var a = function () {
  54327.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  54328.         if (Reflect.construct.sham) return !1;
  54329.         if ('function' == typeof Proxy) return !0;
  54330.         try {
  54331.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  54332.           ], function () {
  54333.           })),
  54334.           !0
  54335.         } catch (e) {
  54336.           return !1
  54337.         }
  54338.       }();
  54339.       return function () {
  54340.         var e,
  54341.         t = DF(n);
  54342.         return e = a ? (e = DF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  54343.         t = this,
  54344.         !(e = e) || 'object' !== PF(e) && 'function' != typeof e ? AF(t) : e
  54345.       }
  54346.     }
  54347.     function AF(e) {
  54348.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  54349.       return e
  54350.     }
  54351.     function DF(e) {
  54352.       return (DF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  54353.         return e.__proto__ || Object.getPrototypeOf(e)
  54354.       }) (e)
  54355.     }
  54356.     function jF(e, t, n) {
  54357.       return t in e ? Object.defineProperty(e, t, {
  54358.         value: n,
  54359.         enumerable: !0,
  54360.         configurable: !0,
  54361.         writable: !0
  54362.       }) : e[t] = n,
  54363.       e
  54364.     }
  54365.     go = function () {
  54366.       !function (e, t) {
  54367.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  54368.         e.prototype = Object.create(t && t.prototype, {
  54369.           constructor: {
  54370.             value: e,
  54371.             writable: !0,
  54372.             configurable: !0
  54373.           }
  54374.         }),
  54375.         t && RF(e, t)
  54376.       }(o, A);
  54377.       var e,
  54378.       t,
  54379.       n,
  54380.       r = xF(o);
  54381.       function o() {
  54382.         var n;
  54383.         !function (e, t) {
  54384.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  54385.         }(this, o);
  54386.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  54387.         return jF(AF(n = r.call.apply(r, [
  54388.           this
  54389.         ].concat(t))), 'state', {
  54390.           selectedIDs: [
  54391.           ],
  54392.           duplicateIDs: [
  54393.           ],
  54394.           errorMessage: '',
  54395.           isOpenConfirmDialog: !1
  54396.         }),
  54397.         jF(AF(n), 'toggleImageSelection', function (t) {
  54398.           n.state.selectedIDs.includes(t) ? n.setState(function (e) {
  54399.             return {
  54400.               selectedIDs: e.selectedIDs.filter(function (e) {
  54401.                 return e !== t
  54402.               })
  54403.             }
  54404.           }) : n.setState(function (e) {
  54405.             return {
  54406.               selectedIDs: [
  54407.               ].concat(kF(e.selectedIDs), [
  54408.                 t
  54409.               ])
  54410.             }
  54411.           })
  54412.         }),
  54413.         jF(AF(n), 'openConfirmDialog', function () {
  54414.           return n.setState({
  54415.             isOpenConfirmDialog: !0
  54416.           })
  54417.         }),
  54418.         jF(AF(n), 'closeConfirmDialog', function () {
  54419.           return n.setState({
  54420.             isOpenConfirmDialog: !1
  54421.           })
  54422.         }),
  54423.         jF(AF(n), 'deleteImages', function () {
  54424.           io.a.call('threadReactions/deleteImages', {
  54425.             type: 'POST',
  54426.             data: {
  54427.               imageIds: n.state.selectedIDs,
  54428.               forum: n.props.forum
  54429.             },
  54430.             success: function () {
  54431.               n.props.updateRemainingCustomImages(n.props.images.filter(function (t) {
  54432.                 return !n.state.selectedIDs.some(function (e) {
  54433.                   return e === t.imageID
  54434.                 })
  54435.               })),
  54436.               n.resetSelectedIDs()
  54437.             },
  54438.             error: function (e) {
  54439.               n.updateErrorMessage(JSON.parse(e.responseText).response)
  54440.             }
  54441.           })
  54442.         }),
  54443.         jF(AF(n), 'resetSelectedIDs', function () {
  54444.           return n.setState({
  54445.             selectedIDs: [
  54446.             ]
  54447.           })
  54448.         }),
  54449.         jF(AF(n), 'resetDuplicateIDs', function () {
  54450.           return n.setState({
  54451.             duplicateIDs: [
  54452.             ]
  54453.           })
  54454.         }),
  54455.         jF(AF(n), 'updateErrorMessage', function (e) {
  54456.           return n.setState({
  54457.             errorMessage: e
  54458.           })
  54459.         }),
  54460.         jF(AF(n), 'highlightDuplicateImages', function (e) {
  54461.           return n.setState({
  54462.             duplicateIDs: e
  54463.           })
  54464.         }),
  54465.         jF(AF(n), 'clearHighlight', function (t) {
  54466.           n.state.duplicateIDs.includes(t) && n.setState(function (e) {
  54467.             return {
  54468.               duplicateIDs: e.duplicateIDs.filter(function (e) {
  54469.                 return e !== t
  54470.               })
  54471.             }
  54472.           })
  54473.         }),
  54474.         jF(AF(n), 'closeAlertBar', function () {
  54475.           n.updateErrorMessage(''),
  54476.           n.resetDuplicateIDs()
  54477.         }),
  54478.         jF(AF(n), 'isImageDeletable', function (t) {
  54479.           return !(n.props.reactions.some(function (e) {
  54480.             return e.imageID === t.imageID || e.imageUrl === t.imageUrl
  54481.           }) || n.props.templateReactions.some(function (e) {
  54482.             return e.imageID === t.imageID || e.imageUrl === t.imageUrl
  54483.           }))
  54484.         }),
  54485.         n
  54486.       }
  54487.       return e = o,
  54488.       (t = [
  54489.         {
  54490.           key: 'render',
  54491.           value: function () {
  54492.             var t = this;
  54493.             return this.props.canEnableCustomReactions ? C.a.createElement('div', {
  54494.               className: 'content__wrap spacing-bottom-double'
  54495.             }, C.a.createElement('header', {
  54496.               className: 'settings__header'
  54497.             }, C.a.createElement('h2', {
  54498.               className: 'text-larger text-gray-darker spacing-bottom-small'
  54499.             }, 'Customize your Reactions'), C.a.createElement('p', {
  54500.               className: 'text-gray'
  54501.             }, 'Personalize reactions with your own images.')), C.a.createElement('section', {
  54502.               className: 'settings__content custom-images'
  54503.             }, this.state.errorMessage.length ? C.a.createElement(Ki, {
  54504.               message: this.state.errorMessage,
  54505.               alertType: 'error',
  54506.               onRequestClose: function () {
  54507.                 return t.closeAlertBar()
  54508.               }
  54509.             }) : null, C.a.createElement(kf, {
  54510.               label: 'Custom Images',
  54511.               blockAdditionalClass: 'text-medium',
  54512.               tooltip: 'We recommend a square, distinctive image that is larger than 42x42px.'
  54513.             }, C.a.createElement('div', {
  54514.               className: 'spacing-top-narrow'
  54515.             }, C.a.createElement('div', {
  54516.               className: 'images-and-upload-button-block'
  54517.             }, this.props.images.map(function (e) {
  54518.               return C.a.createElement(gF, {
  54519.                 key: e.imageID,
  54520.                 id: e.imageID,
  54521.                 url: e.imageUrl,
  54522.                 toggleImageSelection: t.toggleImageSelection,
  54523.                 isDeletable: t.isImageDeletable(e),
  54524.                 updateErrorMessage: t.updateErrorMessage,
  54525.                 selected: t.state.selectedIDs.includes(e.imageID),
  54526.                 highlighted: t.state.duplicateIDs.includes(e.imageID),
  54527.                 clearHighlight: t.clearHighlight,
  54528.                 numHighlightedImages: t.state.duplicateIDs.length
  54529.               })
  54530.             }), C.a.createElement(wF, {
  54531.               forum: this.props.forum,
  54532.               addNewCustomImages: this.props.addNewCustomImages,
  54533.               updateErrorMessage: this.updateErrorMessage,
  54534.               numImages: this.props.images.length,
  54535.               clearSelectedIDs: this.resetSelectedIDs,
  54536.               highlightDuplicateImages: this.highlightDuplicateImages,
  54537.               clearHighlights: this.resetDuplicateIDs
  54538.             })), C.a.createElement('div', {
  54539.               className: 'delete-custom-image-btn'
  54540.             }, C.a.createElement('button', {
  54541.               onClick: this.openConfirmDialog,
  54542.               className: this.props.images.length ? 'button button-fill--red button-medium' : 'hide-btn',
  54543.               disabled: 0 === this.state.selectedIDs.length
  54544.             }, 'Delete'), C.a.createElement('p', {
  54545.               className: 'num-images-status text-gray'
  54546.             }, ''.concat(this.props.images.length, '/').concat(Gq))), C.a.createElement(lF, {
  54547.               deleteImages: this.deleteImages,
  54548.               isOpen: this.state.isOpenConfirmDialog,
  54549.               closeModal: this.closeConfirmDialog,
  54550.               isMultiple: 1 < this.state.selectedIDs.length
  54551.             }))))) : null
  54552.           }
  54553.         }
  54554.       ]) && CF(e.prototype, t),
  54555.       n && CF(e, n),
  54556.       o
  54557.     }();
  54558.     jF(go, 'propTypes', {
  54559.       images: b.a.arrayOf(sl).isRequired,
  54560.       forum: b.a.string.isRequired,
  54561.       updateRemainingCustomImages: b.a.func.isRequired,
  54562.       addNewCustomImages: b.a.func.isRequired,
  54563.       reactions: b.a.arrayOf(r).isRequired,
  54564.       templateReactions: b.a.arrayOf(r).isRequired,
  54565.       canEnableCustomReactions: b.a.bool.isRequired
  54566.     });
  54567.     var TF = go,
  54568.     yl = function (e) {
  54569.       var t = e.onConfirm,
  54570.       e = e.onClose;
  54571.       return C.a.createElement(_.a, {
  54572.         isOpen: !0,
  54573.         onRequestClose: e,
  54574.         className: 'admin-modal -clipped -wider',
  54575.         overlayClassName: 'modal-overlay -dark'
  54576.       }, C.a.createElement('div', {
  54577.         className: 'admin-modal__header align align--between padding-gutter'
  54578.       }, C.a.createElement('h3', {
  54579.         className: 'text-large'
  54580.       }, 'Turn Reactions off'), C.a.createElement('button', {
  54581.         className: 'link-gray',
  54582.         onClick: e
  54583.       }, C.a.createElement('span', {
  54584.         className: 'icon-cancel icon__position'
  54585.       }))), C.a.createElement('div', {
  54586.         className: 'admin-modal__content padding-gutter'
  54587.       }, C.a.createElement('div', null, 'Are you sure you want to turn reactions off? The Reactions widget will be removed from all new and prior articles on your site. Readers will no longer be able to add Reactions on articles.'), C.a.createElement('div', {
  54588.         className: 'spacing-top align align--between'
  54589.       }, C.a.createElement('button', {
  54590.         className: 'button button-medium button-fill',
  54591.         onClick: e
  54592.       }, 'Keep Reactions on'), C.a.createElement('button', {
  54593.         className: 'button button-medium button-fill--red',
  54594.         onClick: function () {
  54595.           return t({
  54596.             disableConfirmed: !0
  54597.           })
  54598.         }
  54599.       }, 'Yes, turn Reactions off'))))
  54600.     };
  54601.     yl.propTypes = {
  54602.       onConfirm: b.a.func.isRequired,
  54603.       onClose: b.a.func.isRequired
  54604.     };
  54605.     var IF = yl;
  54606.     function qF(e) {
  54607.       return (qF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  54608.         return typeof e
  54609.       }
  54610.        : function (e) {
  54611.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  54612.       }) (e)
  54613.     }
  54614.     function FF(e, t) {
  54615.       for (var n = 0; n < t.length; n++) {
  54616.         var a = t[n];
  54617.         a.enumerable = a.enumerable || !1,
  54618.         a.configurable = !0,
  54619.         'value' in a && (a.writable = !0),
  54620.         Object.defineProperty(e, a.key, a)
  54621.       }
  54622.     }
  54623.     function LF(e, t) {
  54624.       return (LF = Object.setPrototypeOf || function (e, t) {
  54625.         return e.__proto__ = t,
  54626.         e
  54627.       }) (e, t)
  54628.     }
  54629.     function UF(n) {
  54630.       var a = function () {
  54631.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  54632.         if (Reflect.construct.sham) return !1;
  54633.         if ('function' == typeof Proxy) return !0;
  54634.         try {
  54635.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  54636.           ], function () {
  54637.           })),
  54638.           !0
  54639.         } catch (e) {
  54640.           return !1
  54641.         }
  54642.       }();
  54643.       return function () {
  54644.         var e,
  54645.         t = BF(n);
  54646.         return e = a ? (e = BF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  54647.         t = this,
  54648.         !(e = e) || 'object' !== qF(e) && 'function' != typeof e ? MF(t) : e
  54649.       }
  54650.     }
  54651.     function MF(e) {
  54652.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  54653.       return e
  54654.     }
  54655.     function BF(e) {
  54656.       return (BF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  54657.         return e.__proto__ || Object.getPrototypeOf(e)
  54658.       }) (e)
  54659.     }
  54660.     function zF(e, t, n) {
  54661.       return t in e ? Object.defineProperty(e, t, {
  54662.         value: n,
  54663.         enumerable: !0,
  54664.         configurable: !0,
  54665.         writable: !0
  54666.       }) : e[t] = n,
  54667.       e
  54668.     }
  54669.     Ru = function () {
  54670.       !function (e, t) {
  54671.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  54672.         e.prototype = Object.create(t && t.prototype, {
  54673.           constructor: {
  54674.             value: e,
  54675.             writable: !0,
  54676.             configurable: !0
  54677.           }
  54678.         }),
  54679.         t && LF(e, t)
  54680.       }(o, A);
  54681.       var e,
  54682.       t,
  54683.       n,
  54684.       r = UF(o);
  54685.       function o() {
  54686.         var e;
  54687.         !function (e, t) {
  54688.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  54689.         }(this, o);
  54690.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  54691.         return zF(MF(e = r.call.apply(r, [
  54692.           this
  54693.         ].concat(n))), 'state', {
  54694.           applyRetroactively: !1
  54695.         }),
  54696.         zF(MF(e), 'toggleRetroactive', function () {
  54697.           e.setState(function (e) {
  54698.             return {
  54699.               applyRetroactively: !e.applyRetroactively
  54700.             }
  54701.           })
  54702.         }),
  54703.         zF(MF(e), 'onConfirm', function () {
  54704.           e.props.onConfirm({
  54705.             saveConfirmed: !0,
  54706.             applyRetroactively: e.state.applyRetroactively
  54707.           })
  54708.         }),
  54709.         e
  54710.       }
  54711.       return e = o,
  54712.       (t = [
  54713.         {
  54714.           key: 'render',
  54715.           value: function () {
  54716.             return C.a.createElement(_.a, {
  54717.               isOpen: !0,
  54718.               onRequestClose: this.props.onClose,
  54719.               className: 'admin-modal -clipped -wider ',
  54720.               overlayClassName: 'modal-overlay -dark'
  54721.             }, C.a.createElement('div', {
  54722.               className: 'admin-modal__header align align--between padding-gutter'
  54723.             }, C.a.createElement('h3', {
  54724.               className: 'text-large'
  54725.             }, 'Save new Reactions'), C.a.createElement('button', {
  54726.               className: 'link-gray',
  54727.               onClick: this.props.onClose
  54728.             }, C.a.createElement('span', {
  54729.               className: 'icon-cancel icon__position'
  54730.             }))), C.a.createElement('div', {
  54731.               className: 'admin-modal__content padding-gutter'
  54732.             }, C.a.createElement('div', null, 'Apply new reactions to ', C.a.createElement('strong', null, 'future'), ' articles on your site. Existing articles will not updated and will keep their existing reactions.'), C.a.createElement('div', {
  54733.               className: 'spacing-top align text-gray'
  54734.             }, C.a.createElement('input', {
  54735.               type: 'checkbox',
  54736.               onChange: this.toggleRetroactive,
  54737.               value: this.state.applyRetroactively,
  54738.               id: 'apply-retroactive'
  54739.             }), C.a.createElement('label', {
  54740.               htmlFor: 'apply-retroactive',
  54741.               className: 'spacing-left'
  54742.             }, 'Also apply new reactions to ', C.a.createElement('strong', null, 'existing articles with reactions'), '. This overwrites all reactions people have made on existing articles. ', C.a.createElement('span', {
  54743.               className: 'text-red'
  54744.             }, 'All reaction counts will be set to 0, this cannot be reverted.'))), C.a.createElement('div', {
  54745.               className: 'spacing-top align align--row-reverse'
  54746.             }, C.a.createElement('button', {
  54747.               className: 'button button-fill--brand button-medium',
  54748.               onClick: this.onConfirm
  54749.             }, 'Save new Reactions'))))
  54750.           }
  54751.         }
  54752.       ]) && FF(e.prototype, t),
  54753.       n && FF(e, n),
  54754.       o
  54755.     }();
  54756.     zF(Ru, 'propTypes', {
  54757.       onConfirm: b.a.func.isRequired,
  54758.       onClose: b.a.func.isRequired
  54759.     });
  54760.     var HF = Ru;
  54761.     function GF(e) {
  54762.       return (GF = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  54763.         return typeof e
  54764.       }
  54765.        : function (e) {
  54766.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  54767.       }) (e)
  54768.     }
  54769.     function VF(e) {
  54770.       return function (e) {
  54771.         if (Array.isArray(e)) return WF(e)
  54772.       }(e) || function (e) {
  54773.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  54774.       }(e) || function (e, t) {
  54775.         if (e) {
  54776.           if ('string' == typeof e) return WF(e, t);
  54777.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  54778.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? WF(e, t) : void 0
  54779.         }
  54780.       }(e) || function () {
  54781.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  54782.       }()
  54783.     }
  54784.     function WF(e, t) {
  54785.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  54786.       return a
  54787.     }
  54788.     function YF(t, e) {
  54789.       var n,
  54790.       a = Object.keys(t);
  54791.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  54792.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  54793.       })), a.push.apply(a, n)),
  54794.       a
  54795.     }
  54796.     function QF(t) {
  54797.       for (var e = 1; e < arguments.length; e++) {
  54798.         var n = null != arguments[e] ? arguments[e] : {
  54799.         };
  54800.         e % 2 ? YF(Object(n), !0).forEach(function (e) {
  54801.           eL(t, e, n[e])
  54802.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : YF(Object(n)).forEach(function (e) {
  54803.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  54804.         })
  54805.       }
  54806.       return t
  54807.     }
  54808.     function KF(e, t) {
  54809.       for (var n = 0; n < t.length; n++) {
  54810.         var a = t[n];
  54811.         a.enumerable = a.enumerable || !1,
  54812.         a.configurable = !0,
  54813.         'value' in a && (a.writable = !0),
  54814.         Object.defineProperty(e, a.key, a)
  54815.       }
  54816.     }
  54817.     function JF(e, t) {
  54818.       return (JF = Object.setPrototypeOf || function (e, t) {
  54819.         return e.__proto__ = t,
  54820.         e
  54821.       }) (e, t)
  54822.     }
  54823.     function $F(n) {
  54824.       var a = function () {
  54825.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  54826.         if (Reflect.construct.sham) return !1;
  54827.         if ('function' == typeof Proxy) return !0;
  54828.         try {
  54829.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  54830.           ], function () {
  54831.           })),
  54832.           !0
  54833.         } catch (e) {
  54834.           return !1
  54835.         }
  54836.       }();
  54837.       return function () {
  54838.         var e,
  54839.         t = XF(n);
  54840.         return e = a ? (e = XF(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  54841.         t = this,
  54842.         !(e = e) || 'object' !== GF(e) && 'function' != typeof e ? ZF(t) : e
  54843.       }
  54844.     }
  54845.     function ZF(e) {
  54846.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  54847.       return e
  54848.     }
  54849.     function XF(e) {
  54850.       return (XF = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  54851.         return e.__proto__ || Object.getPrototypeOf(e)
  54852.       }) (e)
  54853.     }
  54854.     function eL(e, t, n) {
  54855.       return t in e ? Object.defineProperty(e, t, {
  54856.         value: n,
  54857.         enumerable: !0,
  54858.         configurable: !0,
  54859.         writable: !0
  54860.       }) : e[t] = n,
  54861.       e
  54862.     }
  54863.     var tL = 0,
  54864.     nL = 1,
  54865.     aL = 100,
  54866.     go = function () {
  54867.       !function (e, t) {
  54868.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  54869.         e.prototype = Object.create(t && t.prototype, {
  54870.           constructor: {
  54871.             value: e,
  54872.             writable: !0,
  54873.             configurable: !0
  54874.           }
  54875.         }),
  54876.         t && JF(e, t)
  54877.       }(r, A);
  54878.       var e,
  54879.       t,
  54880.       n,
  54881.       a = $F(r);
  54882.       function r() {
  54883.         var o;
  54884.         !function (e, t) {
  54885.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  54886.         }(this, r);
  54887.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  54888.         return eL(ZF(o = a.call.apply(a, [
  54889.           this
  54890.         ].concat(t))), 'state', {
  54891.           templateId: null,
  54892.           prompt: null,
  54893.           customImages: [
  54894.           ],
  54895.           reactions: [
  54896.           ],
  54897.           templateReactions: [
  54898.           ],
  54899.           reactionsEnabled: !1,
  54900.           reactionIndexImagesExpanded: - 1,
  54901.           isPreviewVisible: !0,
  54902.           previewSelection: null,
  54903.           modalType: null,
  54904.           validationError: null,
  54905.           errorMessage: null,
  54906.           savedFields: {
  54907.             reactions: [
  54908.             ],
  54909.             prompt: null
  54910.           }
  54911.         }),
  54912.         eL(ZF(o), 'confirmNavigationIfUnsaved', function () {
  54913.           if (o.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  54914.         }),
  54915.         eL(ZF(o), 'handlePromptChange', function (e) {
  54916.           o.setState({
  54917.             prompt: e.target.value
  54918.           })
  54919.         }),
  54920.         eL(ZF(o), 'resetDefaults', function (e) {
  54921.           e.preventDefault();
  54922.           e = o.props.defaultReactions.map(function (e) {
  54923.             return QF(QF({
  54924.             }, e), {
  54925.             }, {
  54926.               votes: Math.floor(Math.random() * aL)
  54927.             })
  54928.           });
  54929.           o.setState({
  54930.             prompt: Hq.DEFAULT_PROMPT,
  54931.             validationError: null,
  54932.             reactions: e
  54933.           })
  54934.         }),
  54935.         eL(ZF(o), 'backfillReactionImages', function (e) {
  54936.           var t = {
  54937.           };
  54938.           o.props.defaultReactions.forEach(function (e) {
  54939.             t[e.text] = e.imageUrl
  54940.           });
  54941.           var n,
  54942.           a,
  54943.           r = [
  54944.           ];
  54945.           return e.forEach(function (e) {
  54946.             e.imageUrl || (t[e.text] ? (e.imageUrl = t[e.text], delete t[e.text]) : r.push(e))
  54947.           }),
  54948.           r.length && (n = Object.values(t), a = 0, r.forEach(function (e) {
  54949.             e.imageUrl = n[a],
  54950.             a += 1
  54951.           })),
  54952.           e
  54953.         }),
  54954.         eL(ZF(o), 'toggleImagesExpanded', function (t, e) {
  54955.           e.preventDefault(),
  54956.           o.setState(function (e) {
  54957.             e = e.reactionIndexImagesExpanded !== t;
  54958.             return e ? window.document.body.addEventListener('click', o.blurImagesDropdown) : window.document.body.removeEventListener('click', o.blurImagesDropdown),
  54959.             {
  54960.               reactionIndexImagesExpanded: e ? t : - 1
  54961.             }
  54962.           })
  54963.         }),
  54964.         eL(ZF(o), 'blurImagesDropdown', function (t) {
  54965.           o.state.reactionIndexImagesExpanded < 0 || o.imageDropdownRefs && o.imageDropdownRefs.some(function (e) {
  54966.             return e && e.contains(t.target)
  54967.           }) || (window.document.body.removeEventListener('click', o.blurImagesDropdown), o.setState({
  54968.             reactionIndexImagesExpanded: - 1
  54969.           }))
  54970.         }),
  54971.         eL(ZF(o), 'handleImageSelection', function (n, a, r) {
  54972.           o.setState(function (e) {
  54973.             var t = {
  54974.               reactions: [
  54975.               ].concat(VF(e.reactions.slice(0, n)), [
  54976.                 QF(QF({
  54977.                 }, e.reactions[n]), {
  54978.                 }, {
  54979.                   imageID: a,
  54980.                   imageUrl: r,
  54981.                   errs: QF(QF({
  54982.                   }, e.reactions[n].errs), {
  54983.                   }, {
  54984.                     imageUrl: null,
  54985.                     imageID: null
  54986.                   })
  54987.                 })
  54988.               ], VF(e.reactions.slice(n + 1)))
  54989.             };
  54990.             return t.validationError = o.props.validateReactions({
  54991.               reactions: t.reactions,
  54992.               existingErrs: e.validationError
  54993.             }),
  54994.             t
  54995.           })
  54996.         }),
  54997.         eL(ZF(o), 'handleTextChange', function (n, a) {
  54998.           Vq < a.target.value.length || (a.persist(), o.setState(function (e) {
  54999.             var t = {
  55000.               reactions: [
  55001.               ].concat(VF(e.reactions.slice(0, n)), [
  55002.                 QF(QF({
  55003.                 }, e.reactions[n]), {
  55004.                 }, {
  55005.                   text: a.target.value,
  55006.                   errs: QF(QF({
  55007.                   }, e.reactions[n].errs), {
  55008.                   }, {
  55009.                     text: null
  55010.                   })
  55011.                 })
  55012.               ], VF(e.reactions.slice(n + 1)))
  55013.             };
  55014.             return t.validationError = o.props.validateReactions({
  55015.               reactions: t.reactions,
  55016.               existingErrs: e.validationError
  55017.             }),
  55018.             t
  55019.           }))
  55020.         }),
  55021.         eL(ZF(o), 'addReaction', function () {
  55022.           var n = o.props.defaultReactions.find(function (t) {
  55023.             return !o.state.reactions.some(function (e) {
  55024.               return e.imageID === t.imageID || e.imageUrl === t.imageUrl
  55025.             })
  55026.           });
  55027.           n && o.setState(function (e) {
  55028.             var t = {
  55029.               reactions: [
  55030.               ].concat(VF(e.reactions), [
  55031.                 {
  55032.                   text: '',
  55033.                   imageUrl: n.imageUrl,
  55034.                   imageID: n.imageID,
  55035.                   votes: 0
  55036.                 }
  55037.               ])
  55038.             };
  55039.             return t.validationError = o.props.validateReactions({
  55040.               reactions: t.reactions,
  55041.               existingErrs: e.validationError
  55042.             }),
  55043.             t
  55044.           })
  55045.         }),
  55046.         eL(ZF(o), 'removeReaction', function (n) {
  55047.           o.setState(function (e) {
  55048.             var t = {
  55049.               reactions: [
  55050.               ].concat(VF(e.reactions.slice(0, n)), VF(e.reactions.slice(n + 1)))
  55051.             };
  55052.             return t.validationError = o.props.validateReactions({
  55053.               reactions: t.reactions,
  55054.               existingErrs: e.validationError
  55055.             }),
  55056.             t
  55057.           })
  55058.         }),
  55059.         eL(ZF(o), 'hasReactionChanged', function (e) {
  55060.           return o.state.reactions[e] && !o.state.savedFields.reactions[e] || !o.state.reactions[e] && o.state.savedFields.reactions[e] || o.state.reactions[e] && o.state.savedFields.reactions[e] && (o.state.reactions[e].text !== o.state.savedFields.reactions[e].text || o.state.reactions[e].imageUrl !== o.state.savedFields.reactions[e].imageUrl || o.state.reactions[e].imageId !== o.state.savedFields.reactions[e].imageId)
  55061.         }),
  55062.         eL(ZF(o), 'hasFieldChanged', function (e) {
  55063.           return 'reactions' === e ? o.state.savedFields.reactions.some(function (e, t) {
  55064.             return o.hasReactionChanged(t)
  55065.           }) : o.state[e] !== o.state.savedFields[e] && !(null === o.state.savedFields[e] && '' === o.state[e])
  55066.         }),
  55067.         eL(ZF(o), 'togglePreview', function () {
  55068.           o.setState(function (e) {
  55069.             return {
  55070.               isPreviewVisible: !e.isPreviewVisible
  55071.             }
  55072.           })
  55073.         }),
  55074.         eL(ZF(o), 'selectPreviewReaction', function (a) {
  55075.           o.setState(function (e) {
  55076.             return {
  55077.               reactions: e.reactions.map(function (e, t) {
  55078.                 var n = t === a,
  55079.                 t = e.votes;
  55080.                 return n && (t += 1),
  55081.                 e.isSelected && --t,
  55082.                 QF(QF({
  55083.                 }, e), {
  55084.                 }, {
  55085.                   isSelected: n,
  55086.                   votes: t
  55087.                 })
  55088.               })
  55089.             }
  55090.           })
  55091.         }),
  55092.         eL(ZF(o), 'getUpdateTrackData', function () {
  55093.           return {
  55094.             verb: 'update',
  55095.             object_type: 'forum',
  55096.             object_id: o.props.selection.forum.id,
  55097.             area: 'modal',
  55098.             extra_data: {
  55099.               reactionsEnabled: {
  55100.                 before: o.state.reactionsEnabled
  55101.               },
  55102.               template_id: {
  55103.                 before: o.state.templateId,
  55104.                 after: null
  55105.               }
  55106.             }
  55107.           }
  55108.         }),
  55109.         eL(ZF(o), 'enableReactions', function () {
  55110.           var e = o.getUpdateTrackData();
  55111.           e.verb = 'enable',
  55112.           o.props.setReactionsEnabled({
  55113.             enabled: !0,
  55114.             onSuccess: function () {
  55115.               o.setState({
  55116.                 reactionsEnabled: !0
  55117.               }),
  55118.               e.extra_data.reactionsEnabled.after = !0,
  55119.               e.extra_data.template_id.after = o.state.templateId,
  55120.               e.extra_data = JSON.stringify(e.extra_data),
  55121.               o.props.emitTrackingEvent(e)
  55122.             },
  55123.             onError: function () {
  55124.               e.adverb = 'errored',
  55125.               e.extra_data.reactionsEnabled.after = null,
  55126.               e.extra_data.imagesEnabled.after = null,
  55127.               e.extra_data.template_id.after = null,
  55128.               e.extra_data = JSON.stringify(e.extra_data),
  55129.               o.props.emitTrackingEvent(e)
  55130.             }
  55131.           })
  55132.         }),
  55133.         eL(ZF(o), 'hasUnsavedChanges', function () {
  55134.           return Object.keys(o.state.savedFields).some(function (e) {
  55135.             return o.hasFieldChanged(e)
  55136.           })
  55137.         }),
  55138.         eL(ZF(o), 'saveReactions', function (e) {
  55139.           var a,
  55140.           t = e.saveConfirmed,
  55141.           r = e.applyRetroactively;
  55142.           o.setState({
  55143.             errorMessage: null
  55144.           }),
  55145.           o.state.reactionsEnabled || !o.props.hadPreviousReactions || o.hasUnsavedChanges() ? (e = o.props.validateReactions({
  55146.             reactions: o.state.reactions
  55147.           }), o.setState({
  55148.             validationError: e
  55149.           }), e && e.length || (!o.props.hadPreviousReactions || t ? ((a = o.getUpdateTrackData()).verb = 'enable', o.setState({
  55150.             modalType: null
  55151.           }, function () {
  55152.             var n = this;
  55153.             this.props.saveReactions({
  55154.               data: {
  55155.                 reactionsData: JSON.stringify(this.state.reactions.map(function (e) {
  55156.                   return {
  55157.                     text: e.text,
  55158.                     imageUrl: e.imageUrl,
  55159.                     imageID: e.imageID
  55160.                   }
  55161.                 })),
  55162.                 prompt: this.state.prompt.trim(),
  55163.                 applyRetroactively: r ? 1 : 0
  55164.               },
  55165.               onSuccess: function (e) {
  55166.                 var t = e.response.reactions[0].template;
  55167.                 n.setState(function (e) {
  55168.                   return {
  55169.                     reactionsEnabled: !0,
  55170.                     templateId: t,
  55171.                     templateReactions: e.reactions,
  55172.                     savedFields: {
  55173.                       reactions: e.reactions,
  55174.                       prompt: e.prompt
  55175.                     }
  55176.                   }
  55177.                 }),
  55178.                 a.extra_data.reactionsEnabled.after = !0,
  55179.                 a.extra_data.template_id.after = n.state.templateId,
  55180.                 a.extra_data = JSON.stringify(a.extra_data),
  55181.                 n.props.emitTrackingEvent(a)
  55182.               },
  55183.               onError: function (e) {
  55184.                 n.setState({
  55185.                   errorMessage: JSON.parse(e.responseText).response
  55186.                 }),
  55187.                 a.adverb = 'errored',
  55188.                 a.extra_data.reactionsEnabled.after = null,
  55189.                 a.extra_data.imagesEnabled.after = null,
  55190.                 a.extra_data.template_id.after = null,
  55191.                 a.extra_data = JSON.stringify(a.extra_data),
  55192.                 n.props.emitTrackingEvent(a)
  55193.               }
  55194.             })
  55195.           })) : o.openModal(tL))) : o.enableReactions()
  55196.         }),
  55197.         eL(ZF(o), 'openModal', function (e) {
  55198.           o.setState({
  55199.             modalType: e
  55200.           })
  55201.         }),
  55202.         eL(ZF(o), 'closeModal', function () {
  55203.           o.setState({
  55204.             modalType: null
  55205.           })
  55206.         }),
  55207.         eL(ZF(o), 'handleDisable', function (e) {
  55208.           var t;
  55209.           e.disableConfirmed ? ((t = o.getUpdateTrackData()).verb = 'disable', o.setState({
  55210.             modalType: null
  55211.           }, function () {
  55212.             var e = this;
  55213.             this.props.setReactionsEnabled({
  55214.               enabled: !1,
  55215.               onSuccess: function () {
  55216.                 e.setState({
  55217.                   reactionsEnabled: !1,
  55218.                   modalType: null
  55219.                 }),
  55220.                 t.extra_data.reactionsEnabled.after = !1,
  55221.                 t.extra_data.imagesEnabled.after = !1,
  55222.                 t.extra_data = JSON.stringify(t.extra_data),
  55223.                 e.props.emitTrackingEvent(t)
  55224.               },
  55225.               onError: function () {
  55226.                 t.adverb = 'errored',
  55227.                 t.extra_data.reactionsEnabled.after = null,
  55228.                 t.extra_data.imagesEnabled.after = null,
  55229.                 t.extra_data = JSON.stringify(t.extra_data),
  55230.                 e.props.emitTrackingEvent(t)
  55231.               }
  55232.             })
  55233.           })) : o.openModal(nL)
  55234.         }),
  55235.         eL(ZF(o), 'updateRemainingCustomImages', function (e) {
  55236.           o.setState({
  55237.             customImages: e
  55238.           })
  55239.         }),
  55240.         eL(ZF(o), 'addNewCustomImages', function (t) {
  55241.           o.setState(function (e) {
  55242.             return {
  55243.               customImages: [
  55244.               ].concat(VF(e.customImages), VF(t))
  55245.             }
  55246.           })
  55247.         }),
  55248.         eL(ZF(o), 'renderIconsForDropdownMenu', function (e, t, n) {
  55249.           var a = {
  55250.           };
  55251.           o.state.reactions.forEach(function (e) {
  55252.             a[e.imageID] = e.imageID !== t.imageID
  55253.           });
  55254.           e = e.filter(function (e) {
  55255.             return e.imageID !== t.imageID && e.imageUrl !== t.imageUrl
  55256.           });
  55257.           return e.unshift(t),
  55258.           e.map(function (e) {
  55259.             return C.a.createElement('span', {
  55260.               key: e.imageID,
  55261.               className: ('image--dropdown__item' + (a[e.imageID] ? ' invalid' : '') + (e.imageUrl === t.imageUrl || e.imageID === t.imageID ? ' checked' : '')).trim()
  55262.             }, C.a.createElement('img', {
  55263.               src: e.imageUrl,
  55264.               onClick: n === o.state.reactionIndexImagesExpanded ? o.handleImageSelection.bind(ZF(o), n, e.imageID, e.imageUrl) : null
  55265.             }))
  55266.           })
  55267.         }),
  55268.         o
  55269.       }
  55270.       return e = r,
  55271.       (t = [
  55272.         {
  55273.           key: 'componentDidMount',
  55274.           value: function () {
  55275.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  55276.             window.onbeforeunload = this.confirmNavigationIfUnsaved,
  55277.             this.props.fetchReactions(),
  55278.             this.props.fetchForumDetails(),
  55279.             this.props.fetchDefaultReactions(),
  55280.             Bq.a.attachReactionsListener(this)
  55281.           }
  55282.         },
  55283.         {
  55284.           key: 'componentWillUnmount',
  55285.           value: function () {
  55286.             window.document.body.removeEventListener('click', this.blurImagesDropdown),
  55287.             window.onbeforeunload = null,
  55288.             Bq.a.detachReactionsListener(this)
  55289.           }
  55290.         },
  55291.         {
  55292.           key: 'componentDidUpdate',
  55293.           value: function (e, t) {
  55294.             this.state.reactions !== t.reactions && Bq.a.formatReactionsItems()
  55295.           }
  55296.         },
  55297.         {
  55298.           key: 'componentWillReceiveProps',
  55299.           value: function (t) {
  55300.             var n,
  55301.             a;
  55302.             this.props.isFetching && !t.isFetching && (n = (t.reactionsSynced.length ? t.reactionsSynced : t.defaultReactions).map(function (e) {
  55303.               return QF(QF({
  55304.               }, e), {
  55305.               }, {
  55306.                 votes: Math.floor(Math.random() * aL)
  55307.               })
  55308.             }), a = t.includesImagesSynced ? n : this.backfillReactionImages(n.map(function (e) {
  55309.               return QF({
  55310.               }, e)
  55311.             })), this.setState(function (e) {
  55312.               return {
  55313.                 customImages: t.customImagesSynced.length ? t.customImagesSynced : e.customImages,
  55314.                 templateId: t.templateIdSynced,
  55315.                 prompt: t.promptSynced || Hq.DEFAULT_PROMPT,
  55316.                 reactionsEnabled: t.reactionsEnabledSynced,
  55317.                 templateReactions: a,
  55318.                 reactions: a,
  55319.                 savedFields: {
  55320.                   reactions: n,
  55321.                   prompt: t.promptSynced || Hq.DEFAULT_PROMPT
  55322.                 }
  55323.               }
  55324.             }), this.props.emitTrackingEvent({
  55325.               verb: 'view',
  55326.               object_type: 'zone',
  55327.               object_id: 'reactions',
  55328.               extra_data: JSON.stringify({
  55329.                 reactionsEnabled: t.reactionsEnabledSynced
  55330.               })
  55331.             }))
  55332.           }
  55333.         },
  55334.         {
  55335.           key: 'render',
  55336.           value: function () {
  55337.             var n = this;
  55338.             if (this.props.selection.organization && this.props.selection.organization.pollsOnly) return C.a.createElement(Cm, {
  55339.               isPolls: !1,
  55340.               organization: this.props.selection.organization
  55341.             });
  55342.             var e,
  55343.             t = !!(this.props.forumDetails && this.props.forumDetails.features && this.props.forumDetails.features.customReactions),
  55344.             a = t ? this.state.customImages.concat(this.props.defaultReactions) : this.props.defaultReactions,
  55345.             r = !t && yo.a.isFeatureActive('custom_reactions'),
  55346.             o = this.state.validationError && this.state.validationError.length ? C.a.createElement('span', null, this.state.validationError.map(function (e, t) {
  55347.               return C.a.createElement('span', {
  55348.                 key: t
  55349.               }, e, C.a.createElement('br', null))
  55350.             })) : this.props.error;
  55351.             if (this.props.isFetching) return C.a.createElement(Ji, null);
  55352.             switch (this.state.modalType) {
  55353.               case tL:
  55354.                 e = C.a.createElement(HF, {
  55355.                   onConfirm: this.saveReactions,
  55356.                   onClose: this.closeModal
  55357.                 });
  55358.                 break;
  55359.               case nL:
  55360.                 e = C.a.createElement(IF, {
  55361.                   onConfirm: this.handleDisable,
  55362.                   onClose: this.closeModal
  55363.                 })
  55364.             }
  55365.             return C.a.createElement('div', {
  55366.               className: 'settings-reactions'
  55367.             }, r ? C.a.createElement(ch, {
  55368.               headline: 'Looking to make your Reactions more unique?',
  55369.               promotionalPlan: 'Disqus Pro',
  55370.               planDetailsUrl: 'https://about.disqus.com/pro',
  55371.               upsellMessageLeft: 'Upgrade to',
  55372.               upsellMessageRight: ' to access Custom Reactions, allowing even more creative freedom and customization to match your site.',
  55373.               selection: this.props.selection,
  55374.               emitTrackingEvent: this.props.emitTrackingEvent
  55375.             }) : null, e, C.a.createElement(TF, {
  55376.               images: this.state.customImages,
  55377.               forum: this.props.selection.forum.shortname,
  55378.               updateRemainingCustomImages: this.updateRemainingCustomImages,
  55379.               addNewCustomImages: this.addNewCustomImages,
  55380.               reactions: this.state.reactions,
  55381.               templateReactions: this.state.templateReactions,
  55382.               canEnableCustomReactions: t
  55383.             }), C.a.createElement('div', {
  55384.               className: 'content__wrap spacing-bottom-double'
  55385.             }, C.a.createElement('header', {
  55386.               className: 'settings__header'
  55387.             }, C.a.createElement('h2', {
  55388.               className: 'text-larger text-gray-darker spacing-bottom-small'
  55389.             }, 'Configure and enable Reactions'), C.a.createElement('p', {
  55390.               className: 'text-gray'
  55391.             }, 'Increase audience engagement beyond comments with Article Reactions. ', C.a.createElement('a', {
  55392.               href: Pn.adminArticles,
  55393.               target: '_blank',
  55394.               rel: 'noopener noreferrer'
  55395.             }, 'Learn more »'))), C.a.createElement('section', {
  55396.               className: 'settings__content'
  55397.             }, this.state.validationError && this.state.validationError.length || this.props.error ? C.a.createElement(Ki, {
  55398.               message: this.state.errorMessage || o,
  55399.               alertType: 'error'
  55400.             }) : null, C.a.createElement($h, {
  55401.               name: 'prompt',
  55402.               value: this.state.prompt,
  55403.               label: 'Prompt',
  55404.               onChange: this.handlePromptChange,
  55405.               idNamespace: this.constructor.displayName,
  55406.               maxLength: 60,
  55407.               showLimit: !0,
  55408.               shouldHighlight: this.hasFieldChanged('prompt')
  55409.             }), C.a.createElement(kf, {
  55410.               label: 'Reactions',
  55411.               blockAdditionalClass: 'text-medium',
  55412.               shouldHighlight: this.state.savedFields.reactions.some(function (e, t) {
  55413.                 return n.hasReactionChanged(t)
  55414.               })
  55415.             }, C.a.createElement('div', {
  55416.               className: 'spacing-top-small'
  55417.             }, 'Define the set of reactions you would like your readers to be able to react with. You can also ', C.a.createElement('a', {
  55418.               href: '#',
  55419.               onClick: this.resetDefaults
  55420.             }, 'Reset to Default Reactions.'), ' Need ideas? We also have a post for ', C.a.createElement('a', {
  55421.               href: '//help.disqus.com/moderation/reactions',
  55422.               rel: 'noopener noreferrer',
  55423.               target: '_blank'
  55424.             }, 'How to Use Reactions.')), C.a.createElement('div', {
  55425.               className: 'spacing-top align align--middle reactions-list__header'
  55426.             }, C.a.createElement('span', {
  55427.               className: 'spacing-right'
  55428.             }, 'Image'), C.a.createElement('span', null, 'Description')), C.a.createElement('div', {
  55429.               className: 'spacing-top-small'
  55430.             }, this.state.reactions.map(function (e, t) {
  55431.               return C.a.createElement('div', {
  55432.                 key: t,
  55433.                 className: 'align align--middle spacing-top-small'.concat(n.hasReactionChanged(t) ? ' settings__highlighted' : '')
  55434.               }, C.a.createElement('div', {
  55435.                 className: 'image--dropdown spacing-right',
  55436.                 onClick: n.toggleImagesExpanded.bind(n, t),
  55437.                 ref: function (e) {
  55438.                   n.imageDropdownRefs = n.imageDropdownRefs || [
  55439.                   ],
  55440.                   n.imageDropdownRefs[t] = e
  55441.                 }
  55442.               }, C.a.createElement('img', {
  55443.                 src: e.imageUrl,
  55444.                 className: 'template-reaction'
  55445.               }), C.a.createElement('div', {
  55446.                 className: [
  55447.                   'image--dropdown__menu',
  55448.                   e.errs && (e.errs.imageID || e.errs.imageUrl) ? 'err' : '',
  55449.                   t === n.state.reactionIndexImagesExpanded ? 'expanded' : ''
  55450.                 ].join(' ').trim()
  55451.               }, t === n.state.reactionIndexImagesExpanded ? n.renderIconsForDropdownMenu(a, e, t) : null)), C.a.createElement('div', {
  55452.                 className: 'reactions__text-input-wrapper'
  55453.               }, C.a.createElement('input', {
  55454.                 className: 'input--textbox'.concat(e.errs && e.errs.text ? ' err' : ''),
  55455.                 type: 'text',
  55456.                 value: e.text,
  55457.                 onChange: n.handleTextChange.bind(n, t)
  55458.               }), C.a.createElement('span', {
  55459.                 className: 'reactions__char-count text-gray'
  55460.               }, e.text.length, '/', Vq)), C.a.createElement('div', {
  55461.                 className: 'remove-button'
  55462.               }, C.a.createElement('button', {
  55463.                 onClick: 1 < t ? n.removeReaction.bind(n, t) : function () {
  55464.                 },
  55465.                 className: [
  55466.                   'button button-outline spacing-left button-medium',
  55467.                   1 < t ? '' : 'invisible'
  55468.                 ].join(' ')
  55469.               }, 'Remove')))
  55470.             })), C.a.createElement('div', {
  55471.               className: 'spacing-top'
  55472.             }, C.a.createElement('button', {
  55473.               className: 'button button-fill--gray-light button-medium',
  55474.               onClick: this.addReaction,
  55475.               disabled: 6 <= this.state.reactions.length
  55476.             }, '+ Add reaction'), C.a.createElement('div', {
  55477.               className: 'text-gray text-small spacing-top-small'
  55478.             }, 'You can have a maximum of 6 reactions. Do not select the same image more than once.'))), C.a.createElement('div', {
  55479.               className: 'spacing-top-double'
  55480.             }, C.a.createElement(Bh, {
  55481.               buttonLabel: this.state.reactionsEnabled ? 'Save' : 'Enable Reactions on your site',
  55482.               disabled: this.state.reactionsEnabled && !this.hasUnsavedChanges(),
  55483.               isSaving: this.props.isSaving,
  55484.               saveErr: !!this.props.error,
  55485.               isSaved: this.props.isSaved,
  55486.               onClick: this.saveReactions
  55487.             }), C.a.createElement('div', {
  55488.               className: 'fieldset fieldset--save spacing-top'
  55489.             }, C.a.createElement('div', {
  55490.               className: 'fieldset__label'
  55491.             }), C.a.createElement('div', {
  55492.               className: 'fieldset__block'
  55493.             }, C.a.createElement('button', {
  55494.               className: 'button button-fill button-medium',
  55495.               onClick: this.togglePreview
  55496.             }, this.state.isPreviewVisible ? 'Hide Preview' : 'Show Preview', C.a.createElement('span', {
  55497.               className: 'spacing-left-small icon icon-arrow'
  55498.             }))))), this.state.isPreviewVisible ? C.a.createElement('div', {
  55499.               className: 'spacing-top-double reactions__preview'
  55500.             }, C.a.createElement(zq.a, {
  55501.               reactionsList: this.state.reactions,
  55502.               prompt: this.state.prompt,
  55503.               CDN_ROOT: '//c.disquscdn.com/next/current/publisher-admin',
  55504.               onSubmitReaction: this.selectPreviewReaction
  55505.             }), C.a.createElement('div', {
  55506.               className: 'embed_preview'
  55507.             }, C.a.createElement('img', {
  55508.               className: 'email_preview__wide',
  55509.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/logged_in_wide.png'
  55510.             }), C.a.createElement('img', {
  55511.               className: 'email_preview__narrow',
  55512.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/logged_in_narrow.png'
  55513.             }), C.a.createElement('img', {
  55514.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/email_preview/below.png'
  55515.             }))) : null)), this.state.reactionsEnabled ? C.a.createElement('div', {
  55516.               className: 'content__wrap'
  55517.             }, C.a.createElement('header', {
  55518.               className: 'settings__header settings-inline-section align align--between align--middle'
  55519.             }, C.a.createElement('div', {
  55520.               className: 'spacing-right-large'
  55521.             }, C.a.createElement('h2', {
  55522.               className: 'text-larger text-gray-darker spacing-bottom-small'
  55523.             }, 'Turn Reactions off'), C.a.createElement('p', {
  55524.               className: 'text-gray'
  55525.             }, 'The Reactions widget will be removed from all new and prior articles on your site.')), C.a.createElement('div', {
  55526.               className: 'align__item--no-shrink'
  55527.             }, C.a.createElement('button', {
  55528.               className: 'button button-fill--red button-medium',
  55529.               onClick: this.handleDisable
  55530.             }, 'Turn Reactions off')))) : null)
  55531.           }
  55532.         }
  55533.       ]) && KF(e.prototype, t),
  55534.       n && KF(e, n),
  55535.       r
  55536.     }();
  55537.     eL(go, 'propTypes', {
  55538.       selection: ht.isRequired,
  55539.       forumDetails: $c,
  55540.       fetchForumDetails: b.a.func.isRequired,
  55541.       templateIdSynced: b.a.number,
  55542.       reactionsSynced: b.a.arrayOf(r).isRequired,
  55543.       defaultReactions: b.a.arrayOf(r).isRequired,
  55544.       customImagesSynced: b.a.arrayOf(sl).isRequired,
  55545.       promptSynced: b.a.string,
  55546.       hadPreviousReactions: b.a.bool,
  55547.       isFetching: b.a.bool,
  55548.       isSaving: b.a.bool,
  55549.       isSaved: b.a.bool,
  55550.       error: b.a.string,
  55551.       reactionsEnabledSynced: b.a.bool,
  55552.       includesImagesSynced: b.a.bool,
  55553.       validationError: b.a.string,
  55554.       fetchReactions: b.a.func.isRequired,
  55555.       fetchDefaultReactions: b.a.func.isRequired,
  55556.       saveReactions: b.a.func.isRequired,
  55557.       setReactionsEnabled: b.a.func.isRequired,
  55558.       validateReactions: b.a.func.isRequired,
  55559.       emitTrackingEvent: b.a.func.isRequired,
  55560.       history: b.a.shape({
  55561.         push: b.a.func.isRequired,
  55562.         setRouteLeaveHook: b.a.func.isRequired
  55563.       }).isRequired,
  55564.       route: b.a.object
  55565.     });
  55566.     yl = Object(u.connect) (function (e) {
  55567.       var t = e.reactions;
  55568.       return QF(QF({
  55569.         forumDetails: e.forumDetails.forumDetails,
  55570.         selection: e.selection
  55571.       }, t), {
  55572.       }, {
  55573.         templateIdSynced: t.templateId,
  55574.         reactionsSynced: t.reactions,
  55575.         defaultReactions: t.defaultReactions,
  55576.         customImagesSynced: t.customImages,
  55577.         promptSynced: t.prompt,
  55578.         reactionsEnabledSynced: t.reactionsEnabled,
  55579.         includesImagesSynced: t.includesImages
  55580.       })
  55581.     }, QF(QF({
  55582.       fetchForumDetails: ig
  55583.     }, Wi), {
  55584.     }, {
  55585.       emitTrackingEvent: Xo({
  55586.         zone: 'reactions',
  55587.         section: 'settings'
  55588.       })
  55589.     })) (Fo() (go));
  55590.     function rL(t, e) {
  55591.       var n,
  55592.       a = Object.keys(t);
  55593.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  55594.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  55595.       })), a.push.apply(a, n)),
  55596.       a
  55597.     }
  55598.     function oL(a) {
  55599.       for (var e = 1; e < arguments.length; e++) {
  55600.         var r = null != arguments[e] ? arguments[e] : {
  55601.         };
  55602.         e % 2 ? rL(Object(r), !0).forEach(function (e) {
  55603.           var t,
  55604.           n;
  55605.           n = r[t = e],
  55606.           t in (e = a) ? Object.defineProperty(e, t, {
  55607.             value: n,
  55608.             enumerable: !0,
  55609.             configurable: !0,
  55610.             writable: !0
  55611.           }) : e[t] = n
  55612.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : rL(Object(r)).forEach(function (e) {
  55613.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  55614.         })
  55615.       }
  55616.       return a
  55617.     }
  55618.     Ru = {
  55619.       toggleRecommendations: function (e) {
  55620.         var n = e.forum,
  55621.         a = e.data,
  55622.         r = e.onSuccess,
  55623.         o = e.onError;
  55624.         return function (t) {
  55625.           t({
  55626.             type: he.enabling
  55627.           }),
  55628.           io.a.call('forums/update', {
  55629.             type: 'POST',
  55630.             data: oL({
  55631.               forum: n
  55632.             }, a),
  55633.             success: function (e) {
  55634.               t({
  55635.                 type: he.onEnable
  55636.               }),
  55637.               r(e)
  55638.             },
  55639.             error: function (e) {
  55640.               t({
  55641.                 type: he.onEnableError,
  55642.                 message: 'An error occurred trying to '.concat(a.organicDiscoveryEnabled ? 'disable' : 'enable', ' Recommendations')
  55643.               }),
  55644.               o(e)
  55645.             }
  55646.           })
  55647.         }
  55648.       },
  55649.       fetchSettings: function (e) {
  55650.         return function (t) {
  55651.           t({
  55652.             type: he.fetching
  55653.           }),
  55654.           io.a.call('discovery/details', {
  55655.             data: {
  55656.               forum: e
  55657.             },
  55658.             success: function (e) {
  55659.               t(oL({
  55660.                 type: he.onFetch
  55661.               }, e.response))
  55662.             },
  55663.             error: function () {
  55664.               t({
  55665.                 type: he.onFetchError,
  55666.                 message: 'An error occurred trying to fetch your Recommendations settings'
  55667.               })
  55668.             }
  55669.           })
  55670.         }
  55671.       },
  55672.       saveSettings: function (e) {
  55673.         var n = e.data,
  55674.         a = e.forum,
  55675.         r = e.onSuccess,
  55676.         o = e.onError;
  55677.         return function (t) {
  55678.           t({
  55679.             type: he.saving
  55680.           }),
  55681.           io.a.call('discovery/update', {
  55682.             type: 'POST',
  55683.             data: {
  55684.               forum: a,
  55685.               contentPreview: n.contentPreview ? 1 : 0,
  55686.               disableOverlay: n.disableOverlay ? 1 : 0,
  55687.               maxAgeDays: n.maxAgeDays,
  55688.               metaComments: n.metaComments ? 1 : 0,
  55689.               metaDate: n.metaDate ? 1 : 0,
  55690.               placement: n.placement,
  55691.               titleHidden: n.titleHidden ? 1 : 0
  55692.             },
  55693.             success: function (e) {
  55694.               t({
  55695.                 type: he.onSave
  55696.               }),
  55697.               r(e)
  55698.             },
  55699.             error: function (e) {
  55700.               t({
  55701.                 type: he.onSaveError,
  55702.                 message: 'An error occurred trying to save your Recommendations settings'
  55703.               }),
  55704.               o(e)
  55705.             }
  55706.           })
  55707.         }
  55708.       }
  55709.     };
  55710.     function iL(e) {
  55711.       return (iL = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  55712.         return typeof e
  55713.       }
  55714.        : function (e) {
  55715.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  55716.       }) (e)
  55717.     }
  55718.     function sL() {
  55719.       return (sL = Object.assign || function (e) {
  55720.         for (var t = 1; t < arguments.length; t++) {
  55721.           var n,
  55722.           a = arguments[t];
  55723.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  55724.         }
  55725.         return e
  55726.       }).apply(this, arguments)
  55727.     }
  55728.     function lL(e, t) {
  55729.       if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  55730.     }
  55731.     function cL(e, t) {
  55732.       for (var n = 0; n < t.length; n++) {
  55733.         var a = t[n];
  55734.         a.enumerable = a.enumerable || !1,
  55735.         a.configurable = !0,
  55736.         'value' in a && (a.writable = !0),
  55737.         Object.defineProperty(e, a.key, a)
  55738.       }
  55739.     }
  55740.     function uL(e, t, n) {
  55741.       return t && cL(e.prototype, t),
  55742.       n && cL(e, n),
  55743.       e
  55744.     }
  55745.     function pL(e, t) {
  55746.       if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  55747.       e.prototype = Object.create(t && t.prototype, {
  55748.         constructor: {
  55749.           value: e,
  55750.           writable: !0,
  55751.           configurable: !0
  55752.         }
  55753.       }),
  55754.       t && dL(e, t)
  55755.     }
  55756.     function dL(e, t) {
  55757.       return (dL = Object.setPrototypeOf || function (e, t) {
  55758.         return e.__proto__ = t,
  55759.         e
  55760.       }) (e, t)
  55761.     }
  55762.     function mL(n) {
  55763.       var a = function () {
  55764.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  55765.         if (Reflect.construct.sham) return !1;
  55766.         if ('function' == typeof Proxy) return !0;
  55767.         try {
  55768.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  55769.           ], function () {
  55770.           })),
  55771.           !0
  55772.         } catch (e) {
  55773.           return !1
  55774.         }
  55775.       }();
  55776.       return function () {
  55777.         var e,
  55778.         t = hL(n);
  55779.         return e = a ? (e = hL(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  55780.         t = this,
  55781.         !(e = e) || 'object' !== iL(e) && 'function' != typeof e ? fL(t) : e
  55782.       }
  55783.     }
  55784.     function fL(e) {
  55785.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  55786.       return e
  55787.     }
  55788.     function hL(e) {
  55789.       return (hL = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  55790.         return e.__proto__ || Object.getPrototypeOf(e)
  55791.       }) (e)
  55792.     }
  55793.     function gL(e, t, n) {
  55794.       return t in e ? Object.defineProperty(e, t, {
  55795.         value: n,
  55796.         enumerable: !0,
  55797.         configurable: !0,
  55798.         writable: !0
  55799.       }) : e[t] = n,
  55800.       e
  55801.     }
  55802.     function yL(e) {
  55803.       return C.a.createElement('div', {
  55804.         className: 'content-preview-wrapper'
  55805.       }, C.a.createElement('div', {
  55806.         className: 'recommend-content'
  55807.       }, e.settings.titleHidden || !e.settings.disableOverlay ? C.a.createElement('span', {
  55808.         'data-role': 'recommend-description-snippet',
  55809.         className: 'line-truncate',
  55810.         'data-line-truncate': '5'
  55811.       }, e.description) : C.a.createElement('h3', {
  55812.         className: 'recommend-post-title',
  55813.         title: e.title
  55814.       }, C.a.createElement('span', {
  55815.         'data-role': 'recommend-thread-title',
  55816.         className: 'title line-truncate',
  55817.         'data-line-truncate': 3,
  55818.         'data-content': e.title,
  55819.         dangerouslySetInnerHTML: {
  55820.           __html: e.title
  55821.         }
  55822.       }))))
  55823.     }
  55824.     yL.propTypes = {
  55825.       title: b.a.string.isRequired,
  55826.       description: b.a.string.isRequired,
  55827.       settings: b.a.shape({
  55828.         titleHidden: b.a.bool.isRequired,
  55829.         disableOverlay: b.a.bool.isRequired
  55830.       }).isRequired
  55831.     };
  55832.     var bL = function () {
  55833.       pL(a, A);
  55834.       var n = mL(a);
  55835.       function a(e) {
  55836.         var t;
  55837.         return lL(this, a),
  55838.         gL(fL(t = n.call(this, e)), 'adjustMetaPlacement', function () {
  55839.           var e;
  55840.           t.title.current ? t.meta.current.style.bottom = e = ''.concat('' + (t.title.current.offsetHeight + 18), 'px') : e = '10px',
  55841.           t.meta.current.style.bottom = e
  55842.         }),
  55843.         t.meta = C.a.createRef(),
  55844.         t.title = C.a.createRef(),
  55845.         t
  55846.       }
  55847.       return uL(a, [
  55848.         {
  55849.           key: 'componentDidMount',
  55850.           value: function () {
  55851.             this.adjustMetaPlacement()
  55852.           }
  55853.         },
  55854.         {
  55855.           key: 'componentDidUpdate',
  55856.           value: function () {
  55857.             this.adjustMetaPlacement()
  55858.           }
  55859.         },
  55860.         {
  55861.           key: 'render',
  55862.           value: function () {
  55863.             var e = this.props.settings;
  55864.             return C.a.createElement('div', {
  55865.               key: this.props.title,
  55866.               className: 'recommend-post',
  55867.               id: 'recommend-link',
  55868.               'data-role': 'recommended-post',
  55869.               'data-link': this.props.recommendationsLink
  55870.             }, C.a.createElement('header', {
  55871.               className: 'recommend-post-header'
  55872.             }, C.a.createElement('div', {
  55873.               className: 'recommend-image-wrapper'
  55874.             }, C.a.createElement('img', {
  55875.               src: this.props.images[0].url,
  55876.               alt: this.props.title,
  55877.               title: this.props.title
  55878.             }), C.a.createElement('span', {
  55879.               className: 'overlay'
  55880.             })), e.disableOverlay ? null : C.a.createElement('h3', {
  55881.               className: 'recommend-post-title',
  55882.               title: this.props.title,
  55883.               ref: this.title
  55884.             }, C.a.createElement('span', {
  55885.               'data-role': 'recommend-thread-title',
  55886.               className: 'title line-truncate',
  55887.               'data-line-truncate': 3,
  55888.               'data-content': this.props.title,
  55889.               dangerouslySetInnerHTML: {
  55890.                 __html: this.props.title
  55891.               }
  55892.             }))), C.a.createElement('ul', {
  55893.               className: 'meta',
  55894.               ref: this.meta
  55895.             }, e.metaDate ? C.a.createElement('li', {
  55896.               className: 'time'
  55897.             }, this.props.createdAgo) : null, ' ', e.metaComments && 0 < this.props.posts ? C.a.createElement('li', {
  55898.               className: 'comments'
  55899.             }, 1 === this.props.posts ? '1 comment' : ''.concat(this.props.posts, ' comments'), ' ') : null), e.contentPreview ? C.a.createElement(yL, this.props) : null)
  55900.           }
  55901.         }
  55902.       ]),
  55903.       a
  55904.     }();
  55905.     bL.propTypes = {
  55906.       createdAgo: b.a.string.isRequired,
  55907.       description: b.a.string.isRequired,
  55908.       recommendationsLink: b.a.string.isRequired,
  55909.       forumName: b.a.string.isRequired,
  55910.       images: b.a.arrayOf(b.a.shape({
  55911.         url: b.a.string.isRequired
  55912.       })).isRequired,
  55913.       posts: b.a.number.isRequired,
  55914.       settings: b.a.shape({
  55915.         contentPreview: b.a.bool.isRequired,
  55916.         metaDate: b.a.bool.isRequired,
  55917.         metaComments: b.a.bool.isRequired,
  55918.         disableOverlay: b.a.bool.isRequired,
  55919.         titleHidden: b.a.bool.isRequired
  55920.       }).isRequired,
  55921.       title: b.a.string.isRequired
  55922.     };
  55923.     var vL = function () {
  55924.       pL(n, A);
  55925.       var t = mL(n);
  55926.       function n(e) {
  55927.         var o;
  55928.         return lL(this, n),
  55929.         gL(fL(o = t.call(this, e)), 'clickScrollLeft', function () {
  55930.           o.scroll( - 1)
  55931.         }),
  55932.         gL(fL(o), 'clickScrollRight', function () {
  55933.           o.scroll(1)
  55934.         }),
  55935.         gL(fL(o), 'scroll', function (e) {
  55936.           var t = vo() (o.wrapper.current),
  55937.           n = vo() (o.postList.current).width() / o.postCount,
  55938.           a = 2 * n,
  55939.           r = 700;
  55940.           t.width() < a && (a = n, r /= 2);
  55941.           e = t.scrollLeft() + a * e;
  55942.           t.animate({
  55943.             scrollLeft: e
  55944.           }, r)
  55945.         }),
  55946.         o.postCount = e.collection.length,
  55947.         o.wrapper = C.a.createRef(),
  55948.         o.postList = C.a.createRef(),
  55949.         o
  55950.       }
  55951.       return uL(n, [
  55952.         {
  55953.           key: 'render',
  55954.           value: function () {
  55955.             var n = this,
  55956.             e = this.props.settings,
  55957.             t = e.contentPreview ? 'has-preview' : 'no-preview',
  55958.             a = e.metaDate || e.metaComments ? '' : 'no-meta';
  55959.             return C.a.createElement('div', {
  55960.               className: 'recommend-main '.concat(t = e.titleHidden || !e.disableOverlay ? t : 'has-preview-title', ' ').concat(a)
  55961.             }, C.a.createElement('section', {
  55962.               className: 'col-organic'
  55963.             }, C.a.createElement('header', {
  55964.               className: 'recommend-col-header'
  55965.             }, C.a.createElement('h2', null, 'Also on ', C.a.createElement('strong', null, 'The Disqus Blog'))), C.a.createElement('div', {
  55966.               className: 'recommendation-container'
  55967.             }, C.a.createElement('button', {
  55968.               className: 'scroll-btn scroll-left',
  55969.               'data-action': 'scroll-left',
  55970.               onClick: function () {
  55971.                 return n.clickScrollLeft()
  55972.               }
  55973.             }, '❮'), C.a.createElement('div', {
  55974.               className: 'recommend-wrapper',
  55975.               ref: this.wrapper
  55976.             }, C.a.createElement('div', {
  55977.               className: 'recommend-posts',
  55978.               'data-role': 'recommend-posts',
  55979.               ref: this.postList
  55980.             }, Object(De.map) (this.props.collection, function (e, t) {
  55981.               return C.a.createElement(bL, sL({
  55982.                 key: t
  55983.               }, Object(De.extend) (e, n.props)))
  55984.             }))), C.a.createElement('button', {
  55985.               className: 'scroll-btn scroll-right',
  55986.               'data-action': 'scroll-right',
  55987.               onClick: function () {
  55988.                 return n.clickScrollRight()
  55989.               }
  55990.             }, '❯'))))
  55991.           }
  55992.         }
  55993.       ]),
  55994.       n
  55995.     }();
  55996.     function _L(e) {
  55997.       return (_L = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  55998.         return typeof e
  55999.       }
  56000.        : function (e) {
  56001.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  56002.       }) (e)
  56003.     }
  56004.     function EL(t, e) {
  56005.       var n,
  56006.       a = Object.keys(t);
  56007.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  56008.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  56009.       })), a.push.apply(a, n)),
  56010.       a
  56011.     }
  56012.     function OL(t) {
  56013.       for (var e = 1; e < arguments.length; e++) {
  56014.         var n = null != arguments[e] ? arguments[e] : {
  56015.         };
  56016.         e % 2 ? EL(Object(n), !0).forEach(function (e) {
  56017.           CL(t, e, n[e])
  56018.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : EL(Object(n)).forEach(function (e) {
  56019.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  56020.         })
  56021.       }
  56022.       return t
  56023.     }
  56024.     function SL(e, t) {
  56025.       for (var n = 0; n < t.length; n++) {
  56026.         var a = t[n];
  56027.         a.enumerable = a.enumerable || !1,
  56028.         a.configurable = !0,
  56029.         'value' in a && (a.writable = !0),
  56030.         Object.defineProperty(e, a.key, a)
  56031.       }
  56032.     }
  56033.     function wL(e, t) {
  56034.       return (wL = Object.setPrototypeOf || function (e, t) {
  56035.         return e.__proto__ = t,
  56036.         e
  56037.       }) (e, t)
  56038.     }
  56039.     function PL(n) {
  56040.       var a = function () {
  56041.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  56042.         if (Reflect.construct.sham) return !1;
  56043.         if ('function' == typeof Proxy) return !0;
  56044.         try {
  56045.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  56046.           ], function () {
  56047.           })),
  56048.           !0
  56049.         } catch (e) {
  56050.           return !1
  56051.         }
  56052.       }();
  56053.       return function () {
  56054.         var e,
  56055.         t = NL(n);
  56056.         return e = a ? (e = NL(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  56057.         t = this,
  56058.         !(e = e) || 'object' !== _L(e) && 'function' != typeof e ? kL(t) : e
  56059.       }
  56060.     }
  56061.     function kL(e) {
  56062.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  56063.       return e
  56064.     }
  56065.     function NL(e) {
  56066.       return (NL = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  56067.         return e.__proto__ || Object.getPrototypeOf(e)
  56068.       }) (e)
  56069.     }
  56070.     function CL(e, t, n) {
  56071.       return t in e ? Object.defineProperty(e, t, {
  56072.         value: n,
  56073.         enumerable: !0,
  56074.         configurable: !0,
  56075.         writable: !0
  56076.       }) : e[t] = n,
  56077.       e
  56078.     }
  56079.     vL.propTypes = {
  56080.       collection: b.a.arrayOf(b.a.shape({
  56081.         title: b.a.string.isRequired,
  56082.         description: b.a.string.isRequired,
  56083.         forumName: b.a.string.isRequired,
  56084.         createdAgo: b.a.string.isRequired,
  56085.         posts: b.a.number.isRequired
  56086.       })).isRequired,
  56087.       settings: b.a.shape({
  56088.         contentPreview: b.a.bool.isRequired,
  56089.         metaDate: b.a.bool.isRequired,
  56090.         metaComments: b.a.bool.isRequired,
  56091.         disableOverlay: b.a.bool.isRequired,
  56092.         titleHidden: b.a.bool.isRequired
  56093.       }).isRequired
  56094.     };
  56095.     r = function () {
  56096.       !function (e, t) {
  56097.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  56098.         e.prototype = Object.create(t && t.prototype, {
  56099.           constructor: {
  56100.             value: e,
  56101.             writable: !0,
  56102.             configurable: !0
  56103.           }
  56104.         }),
  56105.         t && wL(e, t)
  56106.       }(o, A);
  56107.       var e,
  56108.       t,
  56109.       n,
  56110.       r = PL(o);
  56111.       function o() {
  56112.         var n;
  56113.         !function (e, t) {
  56114.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  56115.         }(this, o);
  56116.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  56117.         return CL(kL(n = r.call.apply(r, [
  56118.           this
  56119.         ].concat(t))), 'state', OL(OL({
  56120.           recommendationsEnabled: !!(n.props.forumDetails && n.props.forumDetails.features && n.props.forumDetails.features.recommendations)
  56121.         }, rr), {
  56122.         }, {
  56123.           selectedLayout: 0,
  56124.           isPreviewVisible: !0,
  56125.           validationError: [
  56126.           ],
  56127.           savedFields: rr
  56128.         })),
  56129.         CL(kL(n), 'confirmNavigationIfUnsaved', function () {
  56130.           if (n.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  56131.         }),
  56132.         CL(kL(n), 'hasUnsavedChanges', function () {
  56133.           return Object.keys(n.state.savedFields).some(function (e) {
  56134.             return n.hasFieldChanged(e)
  56135.           })
  56136.         }),
  56137.         CL(kL(n), 'saveRecommendations', function () {
  56138.           n.state.recommendationsEnabled ? n.hasUnsavedChanges() && n.setState(function () {
  56139.             n.props.saveSettings({
  56140.               forum: n.props.selection.forum.shortname,
  56141.               data: {
  56142.                 contentPreview: n.state.contentPreview,
  56143.                 disableOverlay: n.state.disableOverlay,
  56144.                 maxAgeDays: n.state.maxAgeDays,
  56145.                 metaComments: n.state.metaComments,
  56146.                 metaDate: n.state.metaDate,
  56147.                 placement: n.state.placement,
  56148.                 titleHidden: n.state.titleHidden
  56149.               },
  56150.               onSuccess: function () {
  56151.                 n.setState(function (e) {
  56152.                   return {
  56153.                     validationError: [
  56154.                     ],
  56155.                     savedFields: {
  56156.                       recommendationsEnabled: e.recommendationsEnabled,
  56157.                       contentPreview: e.contentPreview,
  56158.                       disableOverlay: e.disableOverlay,
  56159.                       maxAgeDays: e.maxAgeDays,
  56160.                       metaComments: e.metaComments,
  56161.                       metaDate: e.metaDate,
  56162.                       placement: e.placement,
  56163.                       selectedLayout: e.selectedLayout
  56164.                     }
  56165.                   }
  56166.                 })
  56167.               },
  56168.               onError: function (t) {
  56169.                 n.setState(function (e) {
  56170.                   return {
  56171.                     validationError: e.validationError.push(t)
  56172.                   }
  56173.                 })
  56174.               }
  56175.             })
  56176.           }) : n.toggleRecommendationsEnabled()
  56177.         }),
  56178.         CL(kL(n), 'toggleRecommendationsEnabled', function () {
  56179.           n.setState(function (t) {
  56180.             n.props.toggleRecommendations({
  56181.               forum: n.props.selection.forum.shortname,
  56182.               data: {
  56183.                 organicDiscoveryEnabled: t.recommendationsEnabled ? 0 : 1
  56184.               },
  56185.               onSuccess: function () {
  56186.                 n.setState({
  56187.                   recommendationsEnabled: !t.recommendationsEnabled,
  56188.                   validationError: [
  56189.                   ]
  56190.                 }),
  56191.                 t.recommendationsEnabled || n.saveRecommendations()
  56192.               },
  56193.               onError: function (e) {
  56194.                 n.setState({
  56195.                   validationError: t.validationError.push(e)
  56196.                 })
  56197.               }
  56198.             })
  56199.           })
  56200.         }),
  56201.         CL(kL(n), 'handleCheckboxChange', function (e) {
  56202.           n.setState(CL({
  56203.           }, e.target.name, e.target.checked))
  56204.         }),
  56205.         CL(kL(n), 'resolveLayout', function (t) {
  56206.           var e = or.filter(function (e) {
  56207.             return t.disableOverlay === e.value.disableOverlay && t.titleHidden === e.value.titleHidden && t.contentPreview === e.value.contentPreview
  56208.           });
  56209.           return e.length ? e[0].key : - 1
  56210.         }),
  56211.         CL(kL(n), 'handleLayoutChange', function (e) {
  56212.           e = parseInt(e.target.parentElement.getAttribute('index'), 10);
  56213.           n.setState(OL({
  56214.             selectedLayout: e
  56215.           }, or[e].value))
  56216.         }),
  56217.         CL(kL(n), 'handleDateThresholdChange', function (e) {
  56218.           n.setState({
  56219.             maxAgeDays: parseInt(e.target.value, 10)
  56220.           })
  56221.         }),
  56222.         CL(kL(n), 'handlePlacementChange', function (e) {
  56223.           n.setState({
  56224.             placement: e.target.value
  56225.           })
  56226.         }),
  56227.         CL(kL(n), 'hasFieldChanged', function (e) {
  56228.           return n.state[e] !== n.state.savedFields[e] && !(null === n.state.savedFields[e] && '' === n.state[e])
  56229.         }),
  56230.         CL(kL(n), 'togglePreview', function () {
  56231.           n.setState(function (e) {
  56232.             return {
  56233.               isPreviewVisible: !e.isPreviewVisible
  56234.             }
  56235.           })
  56236.         }),
  56237.         CL(kL(n), 'recsOutsideAllowed', function () {
  56238.           return yo.a.isFeatureActive('recs_outside_embed', {
  56239.             forum: n.props.selection.forum.shortname
  56240.           })
  56241.         }),
  56242.         CL(kL(n), 'filterPlacementOptions', function () {
  56243.           return n.recsOutsideAllowed() ? ir : ir.filter(function (e) {
  56244.             return 'standalone' !== e.key
  56245.           })
  56246.         }),
  56247.         n
  56248.       }
  56249.       return e = o,
  56250.       (t = [
  56251.         {
  56252.           key: 'componentDidMount',
  56253.           value: function () {
  56254.             window.onbeforeunload = this.confirmNavigationIfUnsaved,
  56255.             this.props.fetchSettings(this.props.selection.forum.shortname),
  56256.             this.props.fetchForumDetails()
  56257.           }
  56258.         },
  56259.         {
  56260.           key: 'componentWillReceiveProps',
  56261.           value: function (e) {
  56262.             var t;
  56263.             this.props.isFetching && !e.isFetching && (t = this.resolveLayout(e), this.setState({
  56264.               recommendationsEnabled: e.recommendationsEnabledSynced,
  56265.               contentPreview: e.contentPreviewSynced,
  56266.               disableOverlay: e.disableOverlaySynced,
  56267.               maxAgeDays: e.maxAgeDaysSynced,
  56268.               metaComments: e.metaCommentsSynced,
  56269.               metaDate: e.metaDateSynced,
  56270.               placement: e.placementSynced,
  56271.               selectedLayout: t,
  56272.               titleHidden: e.titleHiddenSynced,
  56273.               savedFields: {
  56274.                 recommendationsEnabled: e.recommendationsEnabledSynced,
  56275.                 contentPreview: e.contentPreviewSynced,
  56276.                 disableOverlay: e.disableOverlaySynced,
  56277.                 maxAgeDays: e.maxAgeDaysSynced,
  56278.                 metaComments: e.metaCommentsSynced,
  56279.                 metaDate: e.metaDateSynced,
  56280.                 placement: e.placementSynced,
  56281.                 selectedLayout: t
  56282.               }
  56283.             }))
  56284.           }
  56285.         },
  56286.         {
  56287.           key: 'render',
  56288.           value: function () {
  56289.             return this.props.selection.organization && this.props.selection.organization.pollsOnly ? C.a.createElement(Cm, {
  56290.               isPolls: !1,
  56291.               organization: this.props.selection.organization
  56292.             }) : this.props.isFetching ? C.a.createElement(Ji, null) : (lr.settings = this.state, C.a.createElement('div', {
  56293.               className: 'settings-recommendations'
  56294.             }, this.recsOutsideAllowed() ? C.a.createElement(sh, {
  56295.               type: 'info',
  56296.               icon: 'info-badge',
  56297.               headline: C.a.createElement(C.a.Fragment, null, C.a.createElement('span', {
  56298.                 className: 'dialog_box-tag',
  56299.                 style: {
  56300.                   background: '#5cb767'
  56301.                 }
  56302.               }, 'BETA'), 'Looking to bring Recommendations outside the comments?'),
  56303.               detailsUrl: Pn.standaloneRecommendations,
  56304.               message: 'You can now display Recommendations as a standalone unit, anywhere on your site. Giving you the freedom to cultivate your audience and engage readers anywhere!',
  56305.               buttonText: 'Get started now',
  56306.               selection: this.props.selection
  56307.             }) : null, C.a.createElement('div', {
  56308.               className: 'content__wrap spacing-bottom-double'
  56309.             }, C.a.createElement('header', {
  56310.               className: 'settings__header'
  56311.             }, C.a.createElement('h2', {
  56312.               className: 'text-larger text-gray-darker spacing-bottom-small'
  56313.             }, 'Configure Recommendations'), C.a.createElement('p', {
  56314.               className: 'text-gray'
  56315.             }, 'Show links to discussions taking place on your site. ', C.a.createElement('a', {
  56316.               href: Pn.recommendations,
  56317.               target: '_blank',
  56318.               rel: 'noopener noreferrer'
  56319.             }, 'Learn more »'))), C.a.createElement('section', {
  56320.               className: 'settings__content'
  56321.             }, this.state.validationError && this.state.validationError.length || this.props.error ? C.a.createElement(Ki, {
  56322.               message: this.state.validationError && this.state.validationError.length ? C.a.createElement('span', null, this.state.validationError.map(function (e, t) {
  56323.                 return C.a.createElement('span', {
  56324.                   key: t
  56325.                 }, e, C.a.createElement('br', null))
  56326.               })) : this.props.error,
  56327.               alertType: 'error'
  56328.             }) : null, C.a.createElement('div', {
  56329.               className: 'spacing-top'
  56330.             }, C.a.createElement(qv, {
  56331.               name: 'layout',
  56332.               label: 'Layout',
  56333.               idNamespace: 'recommendation-layout',
  56334.               additionalClass: 'recommendation-layout-image',
  56335.               options: or,
  56336.               value: this.state.selectedLayout,
  56337.               onChange: this.handleLayoutChange,
  56338.               shouldHighlight: this.hasFieldChanged('selectedLayout')
  56339.             })), C.a.createElement('div', {
  56340.               className: 'spacing-top'
  56341.             }, C.a.createElement(Ob, {
  56342.               name: 'metaDate',
  56343.               label: 'Meta Content',
  56344.               secondaryLabel: 'Show Publish Date',
  56345.               fieldsetAdditionalClass: 'fieldset__list',
  56346.               checked: this.state.metaDate,
  56347.               onChange: this.handleCheckboxChange,
  56348.               shouldHighlight: this.hasFieldChanged('metaDate') || this.hasFieldChanged('metaComments')
  56349.             }, C.a.createElement(Ob, {
  56350.               name: 'metaComments',
  56351.               secondaryLabel: 'Show Comment Count',
  56352.               fieldsetAdditionalClass: 'fieldset__list',
  56353.               checked: this.state.metaComments,
  56354.               onChange: this.handleCheckboxChange,
  56355.               ignoreFieldset: !0
  56356.             }))), C.a.createElement('div', {
  56357.               className: 'spacing-top'
  56358.             }, C.a.createElement(Mf, {
  56359.               name: 'dateThreshold',
  56360.               idNamespace: 'date-threshold',
  56361.               label: 'Date Threshold',
  56362.               options: sr,
  56363.               value: this.state.maxAgeDays,
  56364.               onChange: this.handleDateThresholdChange,
  56365.               readOnly: this.props.isSaving,
  56366.               disabled: this.props.isSaving,
  56367.               shouldHighlight: this.hasFieldChanged('maxAgeDays'),
  56368.               tooltip: 'Set a limit for the recommended article selection.'
  56369.             })), C.a.createElement('div', {
  56370.               className: 'spacing-top'
  56371.             }, C.a.createElement(Mf, {
  56372.               name: 'placement',
  56373.               idNamespace: 'placement',
  56374.               label: 'Placement',
  56375.               options: this.filterPlacementOptions(),
  56376.               value: this.state.placement,
  56377.               onChange: this.handlePlacementChange,
  56378.               width: 180,
  56379.               readOnly: this.props.isSaving,
  56380.               disabled: this.props.isSaving,
  56381.               shouldHighlight: this.hasFieldChanged('placement'),
  56382.               tooltip: 'Specify whether recommendations will appear above or below the comment thread.'
  56383.             })), C.a.createElement('div', {
  56384.               className: 'spacing-top-double'
  56385.             }, C.a.createElement(Bh, {
  56386.               buttonLabel: this.state.recommendationsEnabled ? 'Save' : 'Enable Recommendations on your site',
  56387.               disabled: this.state.recommendationsEnabled && !this.hasUnsavedChanges(),
  56388.               isSaving: this.props.isSaving,
  56389.               saveErr: !!this.props.error,
  56390.               isSaved: this.props.isSaved,
  56391.               onClick: this.saveRecommendations
  56392.             }), C.a.createElement('div', {
  56393.               className: 'fieldset fieldset--save spacing-top'
  56394.             }, C.a.createElement('div', {
  56395.               className: 'fieldset__label'
  56396.             }), C.a.createElement('div', {
  56397.               className: 'fieldset__block'
  56398.             }, C.a.createElement('button', {
  56399.               className: 'button button-fill button-medium',
  56400.               onClick: this.togglePreview
  56401.             }, this.state.isPreviewVisible ? 'Hide Preview' : 'Show Preview', C.a.createElement('span', {
  56402.               className: 'spacing-left-small icon icon-arrow'
  56403.             }))))), this.state.isPreviewVisible ? C.a.createElement('div', {
  56404.               className: 'spacing-top-double preview_container'
  56405.             }, C.a.createElement('div', {
  56406.               className: 'preview-heading text-gray'
  56407.             }, 'Desktop'), C.a.createElement(vL, lr)) : null, this.state.isPreviewVisible ? C.a.createElement('div', {
  56408.               className: 'spacing-top-double preview_container recommendations-mobile-preview'
  56409.             }, C.a.createElement('div', {
  56410.               className: 'preview-heading text-gray'
  56411.             }, 'Mobile'), C.a.createElement(vL, lr)) : null)), this.state.recommendationsEnabled ? C.a.createElement('div', {
  56412.               className: 'content__wrap'
  56413.             }, C.a.createElement('header', {
  56414.               className: 'settings__header settings-inline-section align align--between align--middle'
  56415.             }, C.a.createElement('div', {
  56416.               className: 'spacing-right-large'
  56417.             }, C.a.createElement('h2', {
  56418.               className: 'text-larger text-gray-darker spacing-bottom-small'
  56419.             }, 'Turn Recommendations off'), C.a.createElement('p', {
  56420.               className: 'text-gray'
  56421.             }, 'The Recommendations widget will be removed from all articles on your site.')), C.a.createElement('div', {
  56422.               className: 'align__item--no-shrink'
  56423.             }, C.a.createElement('button', {
  56424.               className: 'button button-fill--red button-medium',
  56425.               onClick: this.toggleRecommendationsEnabled
  56426.             }, 'Turn Recommendations off')))) : null))
  56427.           }
  56428.         }
  56429.       ]) && SL(e.prototype, t),
  56430.       n && SL(e, n),
  56431.       o
  56432.     }();
  56433.     CL(r, 'displayName', 'ForumSettingsRecommendations'),
  56434.     CL(r, 'propTypes', {
  56435.       selection: ht.isRequired,
  56436.       recommendationsEnabledSynced: b.a.bool,
  56437.       contentPreviewSynced: b.a.bool,
  56438.       disableOverlaySynced: b.a.bool,
  56439.       maxAgeDaysSynced: b.a.number,
  56440.       metaCommentsSynced: b.a.bool,
  56441.       metaDateSynced: b.a.bool,
  56442.       placementSynced: b.a.string,
  56443.       titleHiddenSynced: b.a.bool,
  56444.       isFetching: b.a.bool,
  56445.       isSaving: b.a.bool,
  56446.       isSaved: b.a.bool,
  56447.       error: b.a.string,
  56448.       toggleRecommendations: b.a.func.isRequired,
  56449.       fetchSettings: b.a.func.isRequired,
  56450.       saveSettings: b.a.func.isRequired,
  56451.       emitTrackingEvent: b.a.func.isRequired,
  56452.       forumDetails: $c,
  56453.       fetchForumDetails: b.a.func.isRequired
  56454.     });
  56455.     var sl = Object(u.connect) (function (e) {
  56456.       var t = e.recommendations;
  56457.       return OL(OL({
  56458.         forumDetails: e.forumDetails.forumDetails,
  56459.         selection: e.selection
  56460.       }, t), {
  56461.       }, {
  56462.         recommendationsEnabledSynced: t.recommendationsEnabled,
  56463.         contentPreviewSynced: t.contentPreview,
  56464.         disableOverlaySynced: t.disableOverlay,
  56465.         maxAgeDaysSynced: t.maxAgeDays,
  56466.         metaCommentsSynced: t.metaComments,
  56467.         metaDateSynced: t.metaDate,
  56468.         placementSynced: t.placement,
  56469.         titleHiddenSynced: t.titleHidden
  56470.       })
  56471.     }, OL(OL({
  56472.       fetchForumDetails: ig
  56473.     }, Ru), {
  56474.     }, {
  56475.       emitTrackingEvent: Xo({
  56476.         zone: 'recommendations',
  56477.         section: 'settings'
  56478.       })
  56479.     })) (Fo() (r)),
  56480.     RL = n(177),
  56481.     Wi = n(523),
  56482.     xL = n.n(Wi);
  56483.     function AL(t, e) {
  56484.       var n,
  56485.       a = Object.keys(t);
  56486.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  56487.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  56488.       })), a.push.apply(a, n)),
  56489.       a
  56490.     }
  56491.     function DL(a) {
  56492.       for (var e = 1; e < arguments.length; e++) {
  56493.         var r = null != arguments[e] ? arguments[e] : {
  56494.         };
  56495.         e % 2 ? AL(Object(r), !0).forEach(function (e) {
  56496.           var t,
  56497.           n;
  56498.           n = r[t = e],
  56499.           t in (e = a) ? Object.defineProperty(e, t, {
  56500.             value: n,
  56501.             enumerable: !0,
  56502.             configurable: !0,
  56503.             writable: !0
  56504.           }) : e[t] = n
  56505.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : AL(Object(r)).forEach(function (e) {
  56506.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  56507.         })
  56508.       }
  56509.       return a
  56510.     }
  56511.     go = {
  56512.       fetchSettings: function (e) {
  56513.         return function (t) {
  56514.           t({
  56515.             type: H.fetching
  56516.           }),
  56517.           io.a.call('forums/behindClick/details', {
  56518.             data: {
  56519.               forum: e
  56520.             },
  56521.             success: function (e) {
  56522.               t(DL({
  56523.                 type: H.onFetch
  56524.               }, e.response))
  56525.             },
  56526.             error: function () {
  56527.               t({
  56528.                 type: H.onFetchError,
  56529.                 message: 'An error occurred trying to fetch your Behind a Click settings'
  56530.               })
  56531.             }
  56532.           })
  56533.         }
  56534.       },
  56535.       saveSettings: function (e) {
  56536.         var n = e.data,
  56537.         a = e.shortname,
  56538.         r = e.onSuccess,
  56539.         o = e.onError;
  56540.         return function (t) {
  56541.           t({
  56542.             type: H.saving
  56543.           }),
  56544.           io.a.call('forums/behindClick/update', {
  56545.             type: 'POST',
  56546.             data: {
  56547.               forum: a,
  56548.               titleEnabled: n.titleEnabled ? 1 : 0,
  56549.               titleText: n.titleText,
  56550.               titleCSS: n.titleCSS,
  56551.               buttonText: n.buttonText,
  56552.               buttonCSS: n.buttonCSS
  56553.             },
  56554.             success: function (e) {
  56555.               t({
  56556.                 type: H.onSave
  56557.               }),
  56558.               r(e)
  56559.             },
  56560.             error: function (e) {
  56561.               t({
  56562.                 type: H.onSaveError,
  56563.                 message: 'An error occured trying to save your Behind a Click settings'
  56564.               }),
  56565.               o(e)
  56566.             }
  56567.           })
  56568.         }
  56569.       }
  56570.     };
  56571.     function jL(e) {
  56572.       return (jL = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  56573.         return typeof e
  56574.       }
  56575.        : function (e) {
  56576.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  56577.       }) (e)
  56578.     }
  56579.     function TL(t, e) {
  56580.       var n,
  56581.       a = Object.keys(t);
  56582.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  56583.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  56584.       })), a.push.apply(a, n)),
  56585.       a
  56586.     }
  56587.     function IL(t) {
  56588.       for (var e = 1; e < arguments.length; e++) {
  56589.         var n = null != arguments[e] ? arguments[e] : {
  56590.         };
  56591.         e % 2 ? TL(Object(n), !0).forEach(function (e) {
  56592.           BL(t, e, n[e])
  56593.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : TL(Object(n)).forEach(function (e) {
  56594.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  56595.         })
  56596.       }
  56597.       return t
  56598.     }
  56599.     function qL(e, t) {
  56600.       for (var n = 0; n < t.length; n++) {
  56601.         var a = t[n];
  56602.         a.enumerable = a.enumerable || !1,
  56603.         a.configurable = !0,
  56604.         'value' in a && (a.writable = !0),
  56605.         Object.defineProperty(e, a.key, a)
  56606.       }
  56607.     }
  56608.     function FL(e, t) {
  56609.       return (FL = Object.setPrototypeOf || function (e, t) {
  56610.         return e.__proto__ = t,
  56611.         e
  56612.       }) (e, t)
  56613.     }
  56614.     function LL(n) {
  56615.       var a = function () {
  56616.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  56617.         if (Reflect.construct.sham) return !1;
  56618.         if ('function' == typeof Proxy) return !0;
  56619.         try {
  56620.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  56621.           ], function () {
  56622.           })),
  56623.           !0
  56624.         } catch (e) {
  56625.           return !1
  56626.         }
  56627.       }();
  56628.       return function () {
  56629.         var e,
  56630.         t = ML(n);
  56631.         return e = a ? (e = ML(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  56632.         t = this,
  56633.         !(e = e) || 'object' !== jL(e) && 'function' != typeof e ? UL(t) : e
  56634.       }
  56635.     }
  56636.     function UL(e) {
  56637.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  56638.       return e
  56639.     }
  56640.     function ML(e) {
  56641.       return (ML = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  56642.         return e.__proto__ || Object.getPrototypeOf(e)
  56643.       }) (e)
  56644.     }
  56645.     function BL(e, t, n) {
  56646.       return t in e ? Object.defineProperty(e, t, {
  56647.         value: n,
  56648.         enumerable: !0,
  56649.         configurable: !0,
  56650.         writable: !0
  56651.       }) : e[t] = n,
  56652.       e
  56653.     }
  56654.     Ru = function () {
  56655.       !function (e, t) {
  56656.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  56657.         e.prototype = Object.create(t && t.prototype, {
  56658.           constructor: {
  56659.             value: e,
  56660.             writable: !0,
  56661.             configurable: !0
  56662.           }
  56663.         }),
  56664.         t && FL(e, t)
  56665.       }(o, A);
  56666.       var e,
  56667.       t,
  56668.       n,
  56669.       r = LL(o);
  56670.       function o() {
  56671.         var n;
  56672.         !function (e, t) {
  56673.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  56674.         }(this, o);
  56675.         for (var e = arguments.length, t = Array(e), a = 0; a < e; a++) t[a] = arguments[a];
  56676.         return BL(UL(n = r.call.apply(r, [
  56677.           this
  56678.         ].concat(t))), 'state', {
  56679.           titleEnabled: !1,
  56680.           titleText: null,
  56681.           titleCSS: null,
  56682.           buttonText: null,
  56683.           buttonCSS: null,
  56684.           isPreviewVisible: !0,
  56685.           isDirty: !1,
  56686.           validationError: [
  56687.           ]
  56688.         }),
  56689.         BL(UL(n), 'confirmNavigationIfUnsaved', function () {
  56690.           if (n.state.isDirty) return 'You have unsaved changes. Do you want to leave this page?'
  56691.         }),
  56692.         BL(UL(n), 'resetDefaults', function (e) {
  56693.           e.preventDefault(),
  56694.           n.setState({
  56695.             buttonText: null,
  56696.             buttonCSS: null,
  56697.             isDirty: !0
  56698.           })
  56699.         }),
  56700.         BL(UL(n), 'togglePreview', function () {
  56701.           n.setState(function (e) {
  56702.             return {
  56703.               isPreviewVisible: !e.isPreviewVisible
  56704.             }
  56705.           })
  56706.         }),
  56707.         BL(UL(n), 'saveBehindClick', function () {
  56708.           var e;
  56709.           n.state.isDirty && (e = {
  56710.             titleEnabled: n.state.titleEnabled,
  56711.             titleText: n.state.titleText,
  56712.             titleCSS: n.state.titleCSS,
  56713.             buttonText: n.state.buttonText,
  56714.             buttonCSS: n.state.buttonCSS
  56715.           }, n.setState(function () {
  56716.             n.props.saveSettings({
  56717.               data: e,
  56718.               shortname: n.props.selection.forum.shortname,
  56719.               onSuccess: function () {
  56720.                 n.setState({
  56721.                   isDirty: !1,
  56722.                   validationError: [
  56723.                   ]
  56724.                 })
  56725.               },
  56726.               onError: function (t) {
  56727.                 n.setState(function (e) {
  56728.                   return {
  56729.                     isDirty: !0,
  56730.                     validationError: e.validationError.push(t)
  56731.                   }
  56732.                 })
  56733.               }
  56734.             })
  56735.           }))
  56736.         }),
  56737.         BL(UL(n), 'handleTitleEnabledChange', function (e) {
  56738.           n.setState({
  56739.             titleEnabled: 'true' === e.target.value,
  56740.             isDirty: !0
  56741.           })
  56742.         }),
  56743.         BL(UL(n), 'handleTitleTextChange', function (e) {
  56744.           n.setState({
  56745.             titleText: e.target.value,
  56746.             isDirty: !0
  56747.           })
  56748.         }),
  56749.         BL(UL(n), 'handleTitleCSSChange', function (e) {
  56750.           n.setState({
  56751.             titleCSS: e.target.value,
  56752.             isDirty: !0
  56753.           })
  56754.         }),
  56755.         BL(UL(n), 'handleButtonTextChange', function (e) {
  56756.           n.setState({
  56757.             buttonText: e.target.value,
  56758.             isDirty: !0
  56759.           })
  56760.         }),
  56761.         BL(UL(n), 'handleButtonCSSChange', function (e) {
  56762.           n.setState({
  56763.             buttonCSS: e.target.value,
  56764.             isDirty: !0
  56765.           })
  56766.         }),
  56767.         n
  56768.       }
  56769.       return e = o,
  56770.       (t = [
  56771.         {
  56772.           key: 'componentDidMount',
  56773.           value: function () {
  56774.             window.onbeforeunload = this.confirmNavigationIfUnsaved,
  56775.             this.props.fetchSettings(this.props.selection.forum.shortname)
  56776.           }
  56777.         },
  56778.         {
  56779.           key: 'componentWillReceiveProps',
  56780.           value: function (e) {
  56781.             this.props.isFetching && !e.isFetching && this.setState({
  56782.               titleEnabled: e.titleEnabledSynced || !1,
  56783.               titleText: e.titleTextSynced,
  56784.               titleCSS: e.titleCSSSynced,
  56785.               buttonText: e.buttonTextSynced,
  56786.               buttonCSS: e.buttonCSSSynced
  56787.             })
  56788.           }
  56789.         },
  56790.         {
  56791.           key: 'render',
  56792.           value: function () {
  56793.             return this.props.isFetching ? C.a.createElement(Ji, null) : C.a.createElement('div', {
  56794.               className: 'settings-behind-click'
  56795.             }, C.a.createElement('div', {
  56796.               className: 'content__wrap spacing-bottom-double'
  56797.             }, C.a.createElement('header', {
  56798.               className: 'settings__header'
  56799.             }, C.a.createElement('h2', {
  56800.               className: 'text-larger text-gray-darker spacing-bottom-small'
  56801.             }, 'Behind a Click Configuration'), C.a.createElement('p', {
  56802.               className: 'text-gray'
  56803.             }, 'Improve page-loading by placing your comment section behind a button.')), C.a.createElement('section', {
  56804.               className: 'settings__content'
  56805.             }, this.state.validationError && this.state.validationError.length || this.props.error ? C.a.createElement(Ki, {
  56806.               message: this.state.validationError && this.state.validationError.length ? C.a.createElement('span', null, this.state.validationError.map(function (e, t) {
  56807.                 return C.a.createElement('span', {
  56808.                   key: t
  56809.                 }, e, C.a.createElement('br', null))
  56810.               })) : this.props.error,
  56811.               alertType: 'error'
  56812.             }) : null, C.a.createElement(kf, {
  56813.               label: 'Enable Title',
  56814.               blockAdditionalClass: 'text-medium'
  56815.             }, C.a.createElement('p', {
  56816.               className: 'spacing-top-small'
  56817.             }, C.a.createElement('label', null, C.a.createElement('input', {
  56818.               type: 'radio',
  56819.               name: 'enable-title',
  56820.               value: !0,
  56821.               checked: this.state.titleEnabled,
  56822.               onChange: this.handleTitleEnabledChange
  56823.             }), 'Yes')), C.a.createElement('p', {
  56824.               className: 'spacing-top-small'
  56825.             }, C.a.createElement('label', null, C.a.createElement('input', {
  56826.               type: 'radio',
  56827.               name: 'enable-title',
  56828.               value: !1,
  56829.               checked: !this.state.titleEnabled,
  56830.               onChange: this.handleTitleEnabledChange
  56831.             }), 'No'))), this.state.titleEnabled ? C.a.createElement('div', {
  56832.               className: 'spacing-top'
  56833.             }, C.a.createElement($h, {
  56834.               name: 'title-text',
  56835.               value: this.state.titleText,
  56836.               label: 'Title',
  56837.               onChange: this.handleTitleTextChange,
  56838.               idNamespace: this.constructor.displayName
  56839.             }, C.a.createElement('p', {
  56840.               className: 'text-gray text-small spacing-top-small'
  56841.             }, 'You can use {postCount} to display the current number of comments.')), C.a.createElement($h, {
  56842.               name: 'button-css',
  56843.               value: this.state.titleCSS,
  56844.               label: 'CSS',
  56845.               onChange: this.handleTitleCSSChange,
  56846.               idNamespace: this.constructor.displayName,
  56847.               useTextarea: !0,
  56848.               rows: 5
  56849.             })) : null, C.a.createElement(kf, {
  56850.               label: 'Customize Button',
  56851.               blockAdditionalClass: 'text-medium'
  56852.             }, C.a.createElement('div', {
  56853.               className: 'spacing-top-small'
  56854.             }, 'The following options can be used to customize the appearance of the button that will be displayed on your site. You can also ', C.a.createElement('a', {
  56855.               href: '#',
  56856.               onClick: this.resetDefaults
  56857.             }, 'Reset to Default.'))), C.a.createElement('div', {
  56858.               className: 'spacing-top'
  56859.             }, C.a.createElement($h, {
  56860.               name: 'button-text',
  56861.               value: this.state.buttonText,
  56862.               label: 'Text',
  56863.               placeholder: RL.DEFAULT_BUTTON_TEXT,
  56864.               onChange: this.handleButtonTextChange,
  56865.               idNamespace: this.constructor.displayName
  56866.             }, C.a.createElement('p', {
  56867.               className: 'text-gray text-small spacing-top-small'
  56868.             }, 'You can use {postCount} to display the current number of comments.')), C.a.createElement($h, {
  56869.               name: 'button-css',
  56870.               value: this.state.buttonCSS,
  56871.               label: 'CSS',
  56872.               onChange: this.handleButtonCSSChange,
  56873.               idNamespace: this.constructor.displayName,
  56874.               useTextarea: !0,
  56875.               rows: 5
  56876.             })), C.a.createElement('div', {
  56877.               className: 'spacing-top-double'
  56878.             }, C.a.createElement(Bh, {
  56879.               buttonLabel: 'Save',
  56880.               disabled: !this.state.isDirty,
  56881.               isSaving: this.props.isSaving,
  56882.               saveErr: !!this.props.error,
  56883.               isSaved: this.props.isSaved,
  56884.               onClick: this.saveBehindClick
  56885.             }), C.a.createElement('div', {
  56886.               className: 'fieldset fieldset--save spacing-top'
  56887.             }, C.a.createElement('div', {
  56888.               className: 'fieldset__label'
  56889.             }), C.a.createElement('div', {
  56890.               className: 'fieldset__block'
  56891.             }, C.a.createElement('button', {
  56892.               className: 'button button-fill button-medium',
  56893.               onClick: this.togglePreview
  56894.             }, this.state.isPreviewVisible ? 'Hide Preview' : 'Show Preview', C.a.createElement('span', {
  56895.               className: 'spacing-left-small icon icon-arrow'
  56896.             }))))), this.state.isPreviewVisible ? C.a.createElement('div', {
  56897.               className: 'spacing-top-double behindclick__preview'
  56898.             }, C.a.createElement(xL.a, {
  56899.               postCount: 1337,
  56900.               buttonText: this.state.buttonText,
  56901.               buttonCSS: this.state.buttonCSS,
  56902.               titleEnabled: this.state.titleEnabled,
  56903.               titleText: this.state.titleText,
  56904.               titleCSS: this.state.titleCSS
  56905.             })) : null)))
  56906.           }
  56907.         }
  56908.       ]) && qL(e.prototype, t),
  56909.       n && qL(e, n),
  56910.       o
  56911.     }();
  56912.     BL(Ru, 'displayName', 'ForumSettingsBehindClick'),
  56913.     BL(Ru, 'propTypes', {
  56914.       selection: ht.isRequired,
  56915.       titleEnabledSynced: b.a.bool,
  56916.       titleTextSynced: b.a.string,
  56917.       titleCSSSynced: b.a.string,
  56918.       buttonTextSynced: b.a.string,
  56919.       buttonCSSSynced: b.a.string,
  56920.       isFetching: b.a.bool,
  56921.       isSaving: b.a.bool,
  56922.       isSaved: b.a.bool,
  56923.       error: b.a.string,
  56924.       fetchSettings: b.a.func.isRequired,
  56925.       saveSettings: b.a.func.isRequired,
  56926.       route: b.a.object
  56927.     });
  56928.     r = Object(u.connect) (function (e) {
  56929.       var t = e.selection,
  56930.       e = e.behindClick;
  56931.       return IL(IL({
  56932.       }, e), {
  56933.       }, {
  56934.         titleEnabledSynced: e.titleEnabled,
  56935.         titleTextSynced: e.titleText,
  56936.         titleCSSSynced: e.titleCSS,
  56937.         buttonTextSynced: e.buttonText,
  56938.         buttonCSSSynced: e.buttonCSS,
  56939.         selection: t
  56940.       })
  56941.     }, go) (Fo() (Ru));
  56942.     function zL(e) {
  56943.       return (zL = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  56944.         return typeof e
  56945.       }
  56946.        : function (e) {
  56947.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  56948.       }) (e)
  56949.     }
  56950.     function HL(e, t) {
  56951.       for (var n = 0; n < t.length; n++) {
  56952.         var a = t[n];
  56953.         a.enumerable = a.enumerable || !1,
  56954.         a.configurable = !0,
  56955.         'value' in a && (a.writable = !0),
  56956.         Object.defineProperty(e, a.key, a)
  56957.       }
  56958.     }
  56959.     function GL(e, t) {
  56960.       return (GL = Object.setPrototypeOf || function (e, t) {
  56961.         return e.__proto__ = t,
  56962.         e
  56963.       }) (e, t)
  56964.     }
  56965.     function VL(n) {
  56966.       var a = function () {
  56967.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  56968.         if (Reflect.construct.sham) return !1;
  56969.         if ('function' == typeof Proxy) return !0;
  56970.         try {
  56971.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  56972.           ], function () {
  56973.           })),
  56974.           !0
  56975.         } catch (e) {
  56976.           return !1
  56977.         }
  56978.       }();
  56979.       return function () {
  56980.         var e,
  56981.         t = YL(n);
  56982.         return e = a ? (e = YL(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  56983.         t = this,
  56984.         !(e = e) || 'object' !== zL(e) && 'function' != typeof e ? WL(t) : e
  56985.       }
  56986.     }
  56987.     function WL(e) {
  56988.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  56989.       return e
  56990.     }
  56991.     function YL(e) {
  56992.       return (YL = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  56993.         return e.__proto__ || Object.getPrototypeOf(e)
  56994.       }) (e)
  56995.     }
  56996.     function QL(e, t, n) {
  56997.       return t in e ? Object.defineProperty(e, t, {
  56998.         value: n,
  56999.         enumerable: !0,
  57000.         configurable: !0,
  57001.         writable: !0
  57002.       }) : e[t] = n,
  57003.       e
  57004.     }
  57005.     Wi = function () {
  57006.       !function (e, t) {
  57007.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  57008.         e.prototype = Object.create(t && t.prototype, {
  57009.           constructor: {
  57010.             value: e,
  57011.             writable: !0,
  57012.             configurable: !0
  57013.           }
  57014.         }),
  57015.         t && GL(e, t)
  57016.       }(o, A);
  57017.       var e,
  57018.       t,
  57019.       n,
  57020.       r = VL(o);
  57021.       function o() {
  57022.         var t;
  57023.         !function (e, t) {
  57024.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  57025.         }(this, o);
  57026.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  57027.         return QL(WL(t = r.call.apply(r, [
  57028.           this
  57029.         ].concat(n))), 'handleChange', function (e) {
  57030.           t.props.editWords(e.target.value)
  57031.         }),
  57032.         t
  57033.       }
  57034.       return e = o,
  57035.       (t = [
  57036.         {
  57037.           key: 'componentDidMount',
  57038.           value: function () {
  57039.             this.props.fetchWords(this.props.selection.forum.shortname)
  57040.           }
  57041.         },
  57042.         {
  57043.           key: 'render',
  57044.           value: function () {
  57045.             return this.props.isFetching ? C.a.createElement(Ji, null) : C.a.createElement('div', null, C.a.createElement('div', {
  57046.               className: 'content__wrap spacing-bottom-double'
  57047.             }, C.a.createElement('header', {
  57048.               className: 'settings__header'
  57049.             }, C.a.createElement('h2', {
  57050.               className: 'text-larger text-gray-darker spacing-bottom-small'
  57051.             }, 'Set the tone for discussions in your community.'), C.a.createElement('p', {
  57052.               className: 'text-gray text-medium'
  57053.             }, 'Automatically approve/reject specific phrases and users.', C.a.createElement('a', {
  57054.               href: Pn.restrictedWordsHelp,
  57055.               target: '_blank'
  57056.             }, 'Learn more »'))), C.a.createElement('section', {
  57057.               className: 'section-contained clearfix text-gray settings__content text-medium'
  57058.             }, C.a.createElement($h, {
  57059.               useTextarea: !0,
  57060.               name: 'restricted-words',
  57061.               label: C.a.createElement('div', null, C.a.createElement('h2', null, 'Restricted Words'), C.a.createElement('p', {
  57062.                 className: 'text-normal text-small'
  57063.               }, 'Comments containing these words will require moderator approval before being published.')),
  57064.               idNamespace: 'settings',
  57065.               value: this.props.words,
  57066.               inputOverrideClassName: 'input--textbox -taller',
  57067.               onChange: this.handleChange
  57068.             }, C.a.createElement('p', {
  57069.               className: 'text-gray text-small spacing-top-small spacing-bottom-narrow'
  57070.             }, 'Separate words with commas. You may use ', C.a.createElement('code', null, '.*'), ' (dot asterisk) as a wildcard, but be careful not to be too aggressive.  For example, ', C.a.createElement('code', null, 's.*ck'), ' will match ', C.a.createElement('em', null, 'suck'), ', but also ', C.a.createElement('em', null, 'sock'), ' and ', C.a.createElement('em', null, 'stack'), '.'), C.a.createElement('p', {
  57071.               className: 'text-gray text-small spacing-top-small spacing-bottom-narrow'
  57072.             }, C.a.createElement('a', {
  57073.               href: Pn.sampleBadwords,
  57074.               target: '_blank'
  57075.             }, 'Here is a sample list of restricted words.')))), C.a.createElement('footer', {
  57076.               className: 'settings__footer'
  57077.             }, C.a.createElement(Bh, {
  57078.               onClick: this.props.updateWords.bind(this, this.props.selection.forum.shortname),
  57079.               isSaving: this.props.isSaving,
  57080.               isSaved: this.props.isSaved,
  57081.               disabled: !this.props.wordsChanged
  57082.             }), this.props.error ? C.a.createElement(Ki, {
  57083.               message: this.props.error,
  57084.               alertType: 'error',
  57085.               onRequestClose: this.props.clearError
  57086.             }) : null)))
  57087.           }
  57088.         }
  57089.       ]) && HL(e.prototype, t),
  57090.       n && HL(e, n),
  57091.       o
  57092.     }();
  57093.     QL(Wi, 'displayName', 'ForumSettingsRestrictedWords'),
  57094.     QL(Wi, 'propTypes', {
  57095.       selection: ht.isRequired,
  57096.       fetchWords: b.a.func.isRequired,
  57097.       editWords: b.a.func.isRequired,
  57098.       updateWords: b.a.func.isRequired,
  57099.       clearError: b.a.func.isRequired,
  57100.       words: b.a.string.isRequired,
  57101.       wordsChanged: b.a.bool.isRequired,
  57102.       isSaved: b.a.bool.isRequired,
  57103.       isSaving: b.a.bool.isRequired,
  57104.       isFetching: b.a.bool.isRequired,
  57105.       error: b.a.string
  57106.     });
  57107.     function KL(e) {
  57108.       var t = vo.a.Deferred();
  57109.       if (e.forum && e.entries) if (0 === e.entries.length) t.resolve();
  57110.        else {
  57111.         var n = e.checkErrors && e.checkErrors(e.entries);
  57112.         if (!n) return io.a.call(e.endpoint, {
  57113.           data: {
  57114.             forum: e.forum,
  57115.             word: e.entries
  57116.           },
  57117.           method: 'POST'
  57118.         });
  57119.         t.reject(n)
  57120.       } else t.reject();
  57121.       return t.promise()
  57122.     }
  57123.     go = {
  57124.       fetch: function (e) {
  57125.         return function (t) {
  57126.           t({
  57127.             type: ge.fetching
  57128.           }),
  57129.           io.a.call('blacklists/list', {
  57130.             data: {
  57131.               forum: e,
  57132.               type: 'word',
  57133.               limit: 0
  57134.             },
  57135.             success: function (e) {
  57136.               t({
  57137.                 type: ge.update,
  57138.                 entries: e.response.map(function (e) {
  57139.                   return e.value
  57140.                 })
  57141.               })
  57142.             },
  57143.             error: function () {
  57144.               t({
  57145.                 type: ge.fetchFailed,
  57146.                 message: 'An unknown error occurred trying to fetch your restricted words.'
  57147.               })
  57148.             }
  57149.           })
  57150.         }
  57151.       },
  57152.       save: function (s) {
  57153.         return function (t, e) {
  57154.           var n = e().restrictedWords,
  57155.           a = s,
  57156.           e = n.wordArr,
  57157.           r = e.reduce(function (e, t) {
  57158.             return e[t] = !0,
  57159.             e
  57160.           }, {
  57161.           }),
  57162.           o = je.a.uniq(je.a.escape(n.words.trim()).split(/\s*,\s*/)),
  57163.           i = o.reduce(function (e, t) {
  57164.             return e[t] = !0,
  57165.             e
  57166.           }, {
  57167.           }),
  57168.           n = o.filter(function (e) {
  57169.             return e && !r[e]
  57170.           }),
  57171.           e = e.filter(function (e) {
  57172.             return e && !i[e]
  57173.           });
  57174.           t({
  57175.             type: ge.saving
  57176.           }),
  57177.           KL({
  57178.             forum: a,
  57179.             entries: e,
  57180.             endpoint: 'blacklists/remove'
  57181.           }).then(function (e, t) {
  57182.             return KL({
  57183.               forum: e,
  57184.               entries: t,
  57185.               endpoint: 'blacklists/add',
  57186.               checkErrors: function (e) {
  57187.                 for (var t = 0; t < e.length; t++) if (200 < e[t].length) return Error('Blacklist word '.concat(e[t], ' is too long. Only words of at most 200 characters can be added to the blacklist.'))
  57188.               }
  57189.             })
  57190.           }.bind(void 0, a, n)).then(function () {
  57191.             t({
  57192.               type: ge.saved,
  57193.               entries: o
  57194.             })
  57195.           }).fail(function (e) {
  57196.             t({
  57197.               type: ge.saveFailed,
  57198.               message: (e.length ? e[0] : e).message || 'An unknown error occurred trying to save your restricted words.'
  57199.             })
  57200.           })
  57201.         }
  57202.       },
  57203.       edit: function (e) {
  57204.         return {
  57205.           type: ge.edit,
  57206.           words: e
  57207.         }
  57208.       },
  57209.       clearError: function () {
  57210.         return {
  57211.           type: ge.clearError
  57212.         }
  57213.       }
  57214.     };
  57215.     function JL(t, e) {
  57216.       var n,
  57217.       a = Object.keys(t);
  57218.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  57219.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  57220.       })), a.push.apply(a, n)),
  57221.       a
  57222.     }
  57223.     function $L(a) {
  57224.       for (var e = 1; e < arguments.length; e++) {
  57225.         var r = null != arguments[e] ? arguments[e] : {
  57226.         };
  57227.         e % 2 ? JL(Object(r), !0).forEach(function (e) {
  57228.           var t,
  57229.           n;
  57230.           n = r[t = e],
  57231.           t in (e = a) ? Object.defineProperty(e, t, {
  57232.             value: n,
  57233.             enumerable: !0,
  57234.             configurable: !0,
  57235.             writable: !0
  57236.           }) : e[t] = n
  57237.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : JL(Object(r)).forEach(function (e) {
  57238.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  57239.         })
  57240.       }
  57241.       return a
  57242.     }
  57243.     function ZL(e, t) {
  57244.       if (null == e) return {
  57245.       };
  57246.       var n,
  57247.       a = function (e, t) {
  57248.         if (null == e) return {
  57249.         };
  57250.         var n,
  57251.         a,
  57252.         r = {
  57253.         },
  57254.         o = Object.keys(e);
  57255.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  57256.         return r
  57257.       }(e, t);
  57258.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  57259.       return a
  57260.     }
  57261.     Ru = Object(u.connect) (function (e) {
  57262.       var t = e.restrictedWords,
  57263.       t = ZL(t, [
  57264.         'wordArr'
  57265.       ]),
  57266.       e = e.selection;
  57267.       return $L($L({
  57268.       }, t), {
  57269.       }, {
  57270.         selection: e
  57271.       })
  57272.     }, {
  57273.       fetchWords: go.fetch,
  57274.       editWords: go.edit,
  57275.       updateWords: go.save,
  57276.       clearError: go.clearError
  57277.     }) (Wi),
  57278.     go = function () {
  57279.       return C.a.createElement('div', {
  57280.         className: 'layout__content'
  57281.       }, C.a.createElement('div', {
  57282.         className: 'box clearfix'
  57283.       }, C.a.createElement('div', {
  57284.         className: 'admin_content'
  57285.       }, C.a.createElement('h1', null, '404'), C.a.createElement('p', null, 'Huh, this page is not available. Did you type the address correctly?'))))
  57286.     };
  57287.     function XL(e) {
  57288.       return (XL = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  57289.         return typeof e
  57290.       }
  57291.        : function (e) {
  57292.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  57293.       }) (e)
  57294.     }
  57295.     function eU(e, t) {
  57296.       for (var n = 0; n < t.length; n++) {
  57297.         var a = t[n];
  57298.         a.enumerable = a.enumerable || !1,
  57299.         a.configurable = !0,
  57300.         'value' in a && (a.writable = !0),
  57301.         Object.defineProperty(e, a.key, a)
  57302.       }
  57303.     }
  57304.     function tU(e, t) {
  57305.       return (tU = Object.setPrototypeOf || function (e, t) {
  57306.         return e.__proto__ = t,
  57307.         e
  57308.       }) (e, t)
  57309.     }
  57310.     function nU(n) {
  57311.       var a = function () {
  57312.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  57313.         if (Reflect.construct.sham) return !1;
  57314.         if ('function' == typeof Proxy) return !0;
  57315.         try {
  57316.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  57317.           ], function () {
  57318.           })),
  57319.           !0
  57320.         } catch (e) {
  57321.           return !1
  57322.         }
  57323.       }();
  57324.       return function () {
  57325.         var e,
  57326.         t = rU(n);
  57327.         return e = a ? (e = rU(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  57328.         t = this,
  57329.         !(e = e) || 'object' !== XL(e) && 'function' != typeof e ? aU(t) : e
  57330.       }
  57331.     }
  57332.     function aU(e) {
  57333.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  57334.       return e
  57335.     }
  57336.     function rU(e) {
  57337.       return (rU = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  57338.         return e.__proto__ || Object.getPrototypeOf(e)
  57339.       }) (e)
  57340.     }
  57341.     function oU(e, t, n) {
  57342.       return t in e ? Object.defineProperty(e, t, {
  57343.         value: n,
  57344.         enumerable: !0,
  57345.         configurable: !0,
  57346.         writable: !0
  57347.       }) : e[t] = n,
  57348.       e
  57349.     }
  57350.     var Wi = function () {
  57351.       !function (e, t) {
  57352.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  57353.         e.prototype = Object.create(t && t.prototype, {
  57354.           constructor: {
  57355.             value: e,
  57356.             writable: !0,
  57357.             configurable: !0
  57358.           }
  57359.         }),
  57360.         t && tU(e, t)
  57361.       }(o, A);
  57362.       var e,
  57363.       t,
  57364.       n,
  57365.       r = nU(o);
  57366.       function o() {
  57367.         var e;
  57368.         !function (e, t) {
  57369.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  57370.         }(this, o);
  57371.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  57372.         return oU(aU(e = r.call.apply(r, [
  57373.           this
  57374.         ].concat(n))), 'state', {
  57375.           isOpen: !1
  57376.         }),
  57377.         oU(aU(e), 'handleClick', function () {
  57378.           e.setState({
  57379.             isOpen: !e.state.isOpen
  57380.           })
  57381.         }),
  57382.         e
  57383.       }
  57384.       return e = o,
  57385.       (t = [
  57386.         {
  57387.           key: 'render',
  57388.           value: function () {
  57389.             var e = Gc.test(window.location.pathname),
  57390.             t = Vc.test(window.location.pathname),
  57391.             n = this.state.isOpen ? 'nav__item dropdown-open' : 'nav__item';
  57392.             return C.a.createElement('nav', {
  57393.               className: 'layout__nav spacing-bottom'
  57394.             }, C.a.createElement('div', {
  57395.               className: 'nav--tablet-dropdown'
  57396.             }, C.a.createElement(v.Link, {
  57397.               className: n,
  57398.               activeClassName: 'active',
  57399.               to: ho.getRoute(Wc.LIST),
  57400.               onClick: this.handleClick,
  57401.               disabled: !this.props.organization.pollsActivationDate
  57402.             }, C.a.createElement('div', {
  57403.               className: 'nav-lnk -color-muted'
  57404.             }, C.a.createElement('div', {
  57405.               className: 'nav-lnk__blk'
  57406.             }, C.a.createElement('span', {
  57407.               className: 'button__text'
  57408.             }, 'My Polls')), C.a.createElement('div', {
  57409.               className: 'nav-lnk__pointer'
  57410.             }, C.a.createElement('span', {
  57411.               className: 'icon icon-right-bracket'
  57412.             })))), C.a.createElement(v.Link, {
  57413.               className: ''.concat(n).concat(e ? ' active' : ''),
  57414.               to: ho.getRoute(Wc.EDITOR),
  57415.               onClick: this.handleClick,
  57416.               disabled: !this.props.organization.pollsActivationDate
  57417.             }, C.a.createElement('div', {
  57418.               className: 'nav-lnk -color-muted'
  57419.             }, C.a.createElement('div', {
  57420.               className: 'nav-lnk__blk'
  57421.             }, C.a.createElement('span', {
  57422.               className: 'button__text'
  57423.             }, 'Editor')), C.a.createElement('div', {
  57424.               className: 'nav-lnk__pointer'
  57425.             }, C.a.createElement('span', {
  57426.               className: 'icon icon-right-bracket'
  57427.             })))), C.a.createElement(v.Link, {
  57428.               className: ''.concat(n).concat(t ? ' active' : ''),
  57429.               activeClassName: 'active',
  57430.               to: ho.getRoute(Wc.INSIGHTS),
  57431.               onClick: this.handleClick,
  57432.               disabled: !this.props.organization.pollsActivationDate
  57433.             }, C.a.createElement('div', {
  57434.               className: 'nav-lnk -color-muted'
  57435.             }, C.a.createElement('div', {
  57436.               className: 'nav-lnk__blk'
  57437.             }, C.a.createElement('span', {
  57438.               className: 'button__text'
  57439.             }, 'Analytics')), C.a.createElement('div', {
  57440.               className: 'nav-lnk__pointer'
  57441.             }, C.a.createElement('span', {
  57442.               className: 'icon icon-right-bracket'
  57443.             }))))))
  57444.           }
  57445.         }
  57446.       ]) && eU(e.prototype, t),
  57447.       n && eU(e, n),
  57448.       o
  57449.     }(),
  57450.     iU = Object(u.connect) (function (e) {
  57451.       return {
  57452.         organization: e.selection.organization
  57453.       }
  57454.     }) (Wi);
  57455.     function sU(e, t) {
  57456.       if (null == e) return {
  57457.       };
  57458.       var n,
  57459.       a = function (e, t) {
  57460.         if (null == e) return {
  57461.         };
  57462.         var n,
  57463.         a,
  57464.         r = {
  57465.         },
  57466.         o = Object.keys(e);
  57467.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  57468.         return r
  57469.       }(e, t);
  57470.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  57471.       return a
  57472.     }
  57473.     Wi = function (e) {
  57474.       var t = e.children,
  57475.       e = sU(e, [
  57476.         'children'
  57477.       ]);
  57478.       return C.a.createElement('div', {
  57479.         className: 'section-contained'
  57480.       }, C.a.createElement('div', {
  57481.         className: 'layout layout--stacked-tablet'
  57482.       }, C.a.createElement('div', {
  57483.         className: 'layout__main'
  57484.       }, C.a.createElement(iU, null), C.a.createElement('div', {
  57485.         className: 'layout__content'
  57486.       }, C.a.cloneElement(t, e)))))
  57487.     };
  57488.     Wi.propTypes = {
  57489.       children: b.a.element.isRequired
  57490.     };
  57491.     var lU = Fo() (Wi);
  57492.     function cU(e) {
  57493.       return (cU = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  57494.         return typeof e
  57495.       }
  57496.        : function (e) {
  57497.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  57498.       }) (e)
  57499.     }
  57500.     function uU(t, e) {
  57501.       var n,
  57502.       a = Object.keys(t);
  57503.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  57504.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  57505.       })), a.push.apply(a, n)),
  57506.       a
  57507.     }
  57508.     function pU(t) {
  57509.       for (var e = 1; e < arguments.length; e++) {
  57510.         var n = null != arguments[e] ? arguments[e] : {
  57511.         };
  57512.         e % 2 ? uU(Object(n), !0).forEach(function (e) {
  57513.           vU(t, e, n[e])
  57514.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : uU(Object(n)).forEach(function (e) {
  57515.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  57516.         })
  57517.       }
  57518.       return t
  57519.     }
  57520.     function dU(e) {
  57521.       return function (e) {
  57522.         if (Array.isArray(e)) return mU(e)
  57523.       }(e) || function (e) {
  57524.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  57525.       }(e) || function (e, t) {
  57526.         if (e) {
  57527.           if ('string' == typeof e) return mU(e, t);
  57528.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  57529.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? mU(e, t) : void 0
  57530.         }
  57531.       }(e) || function () {
  57532.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  57533.       }()
  57534.     }
  57535.     function mU(e, t) {
  57536.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  57537.       return a
  57538.     }
  57539.     function fU(e, t) {
  57540.       for (var n = 0; n < t.length; n++) {
  57541.         var a = t[n];
  57542.         a.enumerable = a.enumerable || !1,
  57543.         a.configurable = !0,
  57544.         'value' in a && (a.writable = !0),
  57545.         Object.defineProperty(e, a.key, a)
  57546.       }
  57547.     }
  57548.     function hU(e, t) {
  57549.       return (hU = Object.setPrototypeOf || function (e, t) {
  57550.         return e.__proto__ = t,
  57551.         e
  57552.       }) (e, t)
  57553.     }
  57554.     function gU(n) {
  57555.       var a = function () {
  57556.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  57557.         if (Reflect.construct.sham) return !1;
  57558.         if ('function' == typeof Proxy) return !0;
  57559.         try {
  57560.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  57561.           ], function () {
  57562.           })),
  57563.           !0
  57564.         } catch (e) {
  57565.           return !1
  57566.         }
  57567.       }();
  57568.       return function () {
  57569.         var e,
  57570.         t = bU(n);
  57571.         return e = a ? (e = bU(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  57572.         t = this,
  57573.         !(e = e) || 'object' !== cU(e) && 'function' != typeof e ? yU(t) : e
  57574.       }
  57575.     }
  57576.     function yU(e) {
  57577.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  57578.       return e
  57579.     }
  57580.     function bU(e) {
  57581.       return (bU = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  57582.         return e.__proto__ || Object.getPrototypeOf(e)
  57583.       }) (e)
  57584.     }
  57585.     function vU(e, t, n) {
  57586.       return t in e ? Object.defineProperty(e, t, {
  57587.         value: n,
  57588.         enumerable: !0,
  57589.         configurable: !0,
  57590.         writable: !0
  57591.       }) : e[t] = n,
  57592.       e
  57593.     }
  57594.     Wi = function () {
  57595.       !function (e, t) {
  57596.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  57597.         e.prototype = Object.create(t && t.prototype, {
  57598.           constructor: {
  57599.             value: e,
  57600.             writable: !0,
  57601.             configurable: !0
  57602.           }
  57603.         }),
  57604.         t && hU(e, t)
  57605.       }(o, A);
  57606.       var e,
  57607.       t,
  57608.       n,
  57609.       a = gU(o);
  57610.       function o() {
  57611.         var r;
  57612.         !function (e, t) {
  57613.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  57614.         }(this, o);
  57615.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  57616.         return vU(yU(r = a.call.apply(a, [
  57617.           this
  57618.         ].concat(t))), 'inputRef', C.a.createRef()),
  57619.         vU(yU(r), 'handleFocus', function () {
  57620.           r.inputRef.current && r.inputRef.current.focus()
  57621.         }),
  57622.         vU(yU(r), 'handleAddAnswer', function (e) {
  57623.           var t = {
  57624.             answers: [
  57625.             ].concat(dU(r.props.questions[e].answers), [
  57626.               {
  57627.                 text: ''
  57628.               }
  57629.             ])
  57630.           };
  57631.           r.props.updateQuestion(e, t, r.handleFocus)
  57632.         }),
  57633.         vU(yU(r), 'handleUpdateAnswer', function (e, n, a) {
  57634.           var t = r.props.questions[e],
  57635.           t = t.answers && t.answers.map(function (e, t) {
  57636.             return t === n ? pU(pU({
  57637.             }, e), a) : e
  57638.           });
  57639.           r.props.updateQuestion(e, {
  57640.             answers: t
  57641.           })
  57642.         }),
  57643.         vU(yU(r), 'handleDeleteAnswer', function (e, n) {
  57644.           var t = r.props.questions[e],
  57645.           t = t && t.answers.filter(function (e, t) {
  57646.             return t !== n
  57647.           });
  57648.           r.props.updateQuestion(e, {
  57649.             answers: t
  57650.           })
  57651.         }),
  57652.         r
  57653.       }
  57654.       return e = o,
  57655.       (t = [
  57656.         {
  57657.           key: 'render',
  57658.           value: function () {
  57659.             var r = this;
  57660.             return C.a.createElement('div', {
  57661.               className: 'poll-creator__container'
  57662.             }, C.a.createElement('header', {
  57663.               className: 'polls__section-header'
  57664.             }, C.a.createElement('h2', {
  57665.               className: 'text-larger text-gray-darker spacing-bottom-small'
  57666.             }, 'Poll Questions')), C.a.createElement('table', {
  57667.               className: 'poll-creator__table'
  57668.             }, C.a.createElement('colgroup', null, C.a.createElement('col', {
  57669.               span: '1',
  57670.               className: 'poll-creator__table-label-col'
  57671.             }), C.a.createElement('col', {
  57672.               span: '1',
  57673.               className: 'poll-creator__table-input-col'
  57674.             }), C.a.createElement('col', {
  57675.               span: '1',
  57676.               className: 'poll-creator__table-type-col'
  57677.             })), C.a.createElement('tbody', null, this.props.questions.map(function (n, a) {
  57678.               return C.a.createElement(C.a.Fragment, {
  57679.                 key: a
  57680.               }, C.a.createElement('tr', {
  57681.                 className: 'poll-creator__table-row'
  57682.               }, C.a.createElement('td', {
  57683.                 className: 'question-label-cell --mobile'
  57684.               }, C.a.createElement('label', {
  57685.                 htmlFor: 'question-'.concat(a + 1),
  57686.                 className: 'fieldset__label text-gray'
  57687.               }, 'Question ', a + 1))), C.a.createElement('tr', {
  57688.                 className: 'poll-creator__table-row'
  57689.               }, C.a.createElement('td', {
  57690.                 className: 'question-type-cell --mobile'
  57691.               }, C.a.createElement(Mf, {
  57692.                 name: 'question-type',
  57693.                 options: jc,
  57694.                 value: n.type,
  57695.                 onChange: function (e) {
  57696.                   return r.props.updateQuestion(a, {
  57697.                     type: e.target.value
  57698.                   })
  57699.                 },
  57700.                 idNamespace: r.constructor.displayName,
  57701.                 disabled: r.props.isSyncing || r.props.isPublished
  57702.               }), !r.props.isPublished && C.a.createElement('button', {
  57703.                 className: 'delete-button'.concat(r.props.questions.length <= Cc.MIN_QUESTIONS ? ' --hidden' : '').concat(r.props.isSyncing ? ' -disabled' : ''),
  57704.                 onClick: function () {
  57705.                   return r.props.deleteQuestion(a)
  57706.                 },
  57707.                 disabled: r.props.isSyncing
  57708.               }, C.a.createElement('span', {
  57709.                 className: 'icon-delete'
  57710.               })))), C.a.createElement('tr', {
  57711.                 className: 'poll-creator__table-row'
  57712.               }, C.a.createElement('td', {
  57713.                 className: 'question-label-cell --desktop'
  57714.               }, C.a.createElement('label', {
  57715.                 htmlFor: 'question-'.concat(a + 1),
  57716.                 className: 'fieldset__label text-gray'
  57717.               }, 'Question ', a + 1)), C.a.createElement('td', {
  57718.                 className: 'question-input-cell'
  57719.               }, C.a.createElement($h, {
  57720.                 name: 'question-'.concat(a),
  57721.                 value: n.text,
  57722.                 placeholder: 'What\'s your question?',
  57723.                 labelAdditionalClass: 'hidden',
  57724.                 fieldsetAdditionalClass: 'spacing-top-none',
  57725.                 onChange: function (e) {
  57726.                   return r.props.updateQuestion(a, {
  57727.                     text: e.target.value
  57728.                   })
  57729.                 },
  57730.                 maxLength: Cc.MAX_QUESTION_LENGTH,
  57731.                 disabled: r.props.isSyncing || r.props.isPublished,
  57732.                 inputState: r.props.errors[a] && r.props.errors[a].text ? 'error' : 'none',
  57733.                 showLimit: Cc.MAX_QUESTION_LENGTH - 10 <= n.text.length,
  57734.                 spellCheck: !0
  57735.               })), C.a.createElement('td', {
  57736.                 className: 'question-type-cell --desktop'
  57737.               }, C.a.createElement(Mf, {
  57738.                 name: 'question-type',
  57739.                 options: jc,
  57740.                 value: n.type,
  57741.                 onChange: function (e) {
  57742.                   return r.props.updateQuestion(a, {
  57743.                     type: e.target.value
  57744.                   })
  57745.                 },
  57746.                 idNamespace: r.constructor.displayName,
  57747.                 disabled: r.props.isSyncing || r.props.isPublished
  57748.               }), !r.props.isPublished && C.a.createElement('button', {
  57749.                 className: 'delete-button'.concat(r.props.questions.length <= Cc.MIN_QUESTIONS ? ' --hidden' : '').concat(r.props.isSyncing ? ' -disabled' : ''),
  57750.                 onClick: function () {
  57751.                   return r.props.deleteQuestion(a)
  57752.                 },
  57753.                 disabled: r.props.isSyncing
  57754.               }, C.a.createElement('span', {
  57755.                 className: 'icon-delete'
  57756.               })))), n.answers.map(function (e, t) {
  57757.                 return C.a.createElement('tr', {
  57758.                   className: 'poll-creator__table-row',
  57759.                   key: t
  57760.                 }, C.a.createElement('td', null), C.a.createElement('td', null, C.a.createElement('div', {
  57761.                   className: 'poll-creator__question-answer__container'
  57762.                 }, C.a.createElement($h, {
  57763.                   name: 'answer',
  57764.                   value: e.text,
  57765.                   placeholder: 'Answer '.concat(t + 1),
  57766.                   inputOverrideClassName: 'input--textbox poll-creator__answer-input',
  57767.                   fieldsetAdditionalClass: 'spacing-top-none',
  57768.                   onChange: function (e) {
  57769.                     return r.handleUpdateAnswer(a, t, {
  57770.                       text: e.target.value
  57771.                     })
  57772.                   },
  57773.                   maxLength: Cc.MAX_ANSWER_LENGTH,
  57774.                   inputRef: r.inputRef,
  57775.                   disabled: r.props.isSyncing || r.props.isPublished,
  57776.                   inputState: r.props.errors[a] && r.props.errors[a].answers && r.props.errors[a].answers.has(t) ? 'error' : 'none',
  57777.                   showLimit: Cc.MAX_ANSWER_LENGTH - 10 <= e.text.length,
  57778.                   spellCheck: !0
  57779.                 }), C.a.createElement('input', {
  57780.                   type: n.type === xc.MULTI ? 'checkbox' : 'radio',
  57781.                   className: 'poll-creator__answer-icon',
  57782.                   disabled: !0
  57783.                 }))), C.a.createElement('td', null, !r.props.isPublished && C.a.createElement('button', {
  57784.                   className: 'delete-button'.concat(n.answers.length <= Cc.MIN_ANSWERS ? ' --hidden' : '').concat(r.props.isSyncing ? ' -disabled' : ''),
  57785.                   onClick: function () {
  57786.                     return r.handleDeleteAnswer(a, t)
  57787.                   },
  57788.                   disabled: r.props.isSyncing
  57789.                 }, C.a.createElement('span', {
  57790.                   className: 'icon-delete'
  57791.                 }))))
  57792.               }), r.props.questions[a].answers.length < Cc.MAX_ANSWERS && !r.props.isPublished ? C.a.createElement('tr', {
  57793.                 className: 'poll-creator__table-row'
  57794.               }, C.a.createElement('td', null), C.a.createElement('td', null, C.a.createElement('div', {
  57795.                 className: 'poll-creator__question-answer__container'
  57796.               }, C.a.createElement($h, {
  57797.                 name: 'answer',
  57798.                 placeholder: 'Add Answer',
  57799.                 fieldsetAdditionalClass: 'spacing-top-none',
  57800.                 onChange: function () {
  57801.                   return r.handleAddAnswer(a)
  57802.                 },
  57803.                 onClick: function () {
  57804.                   return r.handleAddAnswer(a)
  57805.                 },
  57806.                 disabled: r.props.isSyncing,
  57807.                 readOnly: !0
  57808.               }))), C.a.createElement('td', null)) : null)
  57809.             }), this.props.questions.length < Cc.MAX_QUESTIONS && !this.props.isPublished && C.a.createElement('tr', null, C.a.createElement('td', null), C.a.createElement('td', null, C.a.createElement('button', {
  57810.               id: 'add-question-button',
  57811.               className: 'poll-creator__add-question button button-fill--brand button-padding-wider button-medium',
  57812.               onClick: this.props.addQuestion,
  57813.               disabled: this.props.isSyncing
  57814.             }, '+ Add another question')), C.a.createElement('td', null)))))
  57815.           }
  57816.         }
  57817.       ]) && fU(e.prototype, t),
  57818.       n && fU(e, n),
  57819.       o
  57820.     }();
  57821.     vU(Wi, 'displayName', 'PollQuestionsEditor'),
  57822.     vU(Wi, 'propTypes', {
  57823.       questions: b.a.arrayOf(Lc).isRequired,
  57824.       updateQuestion: b.a.func.isRequired,
  57825.       addQuestion: b.a.func.isRequired,
  57826.       deleteQuestion: b.a.func.isRequired,
  57827.       isSyncing: b.a.bool.isRequired,
  57828.       isPublished: b.a.bool.isRequired,
  57829.       errors: b.a.arrayOf(Mc)
  57830.     });
  57831.     var _U = Wi,
  57832.     EU = function (e, t) {
  57833.       return '<div class="disqus_poll" data-disqus-poll-id="'.concat(t, '"></div>\n<script>\n    (function() {\n        if (document.getElementById(\'disqus_polls_script\'))\n          // polls.js script already loaded, don\'t load a second time\n          return;\n        var d = document, s = d.createElement(\'script\');\n        s.id = \'disqus_polls_script\';\n        s.src = \'https://').concat(e, '.disqus.com/polls.js\';\n        (d.head || d.body).appendChild(s);\n    })();\n</script>\n<noscript>\n    Please enable JavaScript to view the poll powered by Disqus.\n</noscript>')
  57834.     };
  57835.     function OU(e) {
  57836.       return (OU = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  57837.         return typeof e
  57838.       }
  57839.        : function (e) {
  57840.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  57841.       }) (e)
  57842.     }
  57843.     function SU(e, t) {
  57844.       for (var n = 0; n < t.length; n++) {
  57845.         var a = t[n];
  57846.         a.enumerable = a.enumerable || !1,
  57847.         a.configurable = !0,
  57848.         'value' in a && (a.writable = !0),
  57849.         Object.defineProperty(e, a.key, a)
  57850.       }
  57851.     }
  57852.     function wU(e, t) {
  57853.       return (wU = Object.setPrototypeOf || function (e, t) {
  57854.         return e.__proto__ = t,
  57855.         e
  57856.       }) (e, t)
  57857.     }
  57858.     function PU(n) {
  57859.       var a = function () {
  57860.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  57861.         if (Reflect.construct.sham) return !1;
  57862.         if ('function' == typeof Proxy) return !0;
  57863.         try {
  57864.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  57865.           ], function () {
  57866.           })),
  57867.           !0
  57868.         } catch (e) {
  57869.           return !1
  57870.         }
  57871.       }();
  57872.       return function () {
  57873.         var e,
  57874.         t = NU(n);
  57875.         return e = a ? (e = NU(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  57876.         t = this,
  57877.         !(e = e) || 'object' !== OU(e) && 'function' != typeof e ? kU(t) : e
  57878.       }
  57879.     }
  57880.     function kU(e) {
  57881.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  57882.       return e
  57883.     }
  57884.     function NU(e) {
  57885.       return (NU = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  57886.         return e.__proto__ || Object.getPrototypeOf(e)
  57887.       }) (e)
  57888.     }
  57889.     function CU(e, t, n) {
  57890.       return t in e ? Object.defineProperty(e, t, {
  57891.         value: n,
  57892.         enumerable: !0,
  57893.         configurable: !0,
  57894.         writable: !0
  57895.       }) : e[t] = n,
  57896.       e
  57897.     }
  57898.     Mc = function () {
  57899.       !function (e, t) {
  57900.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  57901.         e.prototype = Object.create(t && t.prototype, {
  57902.           constructor: {
  57903.             value: e,
  57904.             writable: !0,
  57905.             configurable: !0
  57906.           }
  57907.         }),
  57908.         t && wU(e, t)
  57909.       }(o, A);
  57910.       var e,
  57911.       t,
  57912.       n,
  57913.       r = PU(o);
  57914.       function o() {
  57915.         var e;
  57916.         !function (e, t) {
  57917.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  57918.         }(this, o);
  57919.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  57920.         return CU(kU(e = r.call.apply(r, [
  57921.           this
  57922.         ].concat(n))), 'state', {
  57923.           isOpen: !0,
  57924.           isChecked: !1
  57925.         }),
  57926.         CU(kU(e), 'open', function () {
  57927.           e.setState({
  57928.             isOpen: !0
  57929.           })
  57930.         }),
  57931.         CU(kU(e), 'close', function () {
  57932.           e.setState({
  57933.             isOpen: !1
  57934.           }),
  57935.           Is.a.set(Hc, e.state.isChecked),
  57936.           e.props.handleShowPollTagInstructions(!1)
  57937.         }),
  57938.         CU(kU(e), 'handleCheck', function () {
  57939.           e.setState(function (e) {
  57940.             return {
  57941.               isChecked: !e.isChecked
  57942.             }
  57943.           })
  57944.         }),
  57945.         e
  57946.       }
  57947.       return e = o,
  57948.       (t = [
  57949.         {
  57950.           key: 'render',
  57951.           value: function () {
  57952.             return C.a.createElement('div', null, C.a.createElement(_.a, {
  57953.               isOpen: this.state.isOpen,
  57954.               onRequestClose: this.close,
  57955.               'admin-modal': 'admin-modal',
  57956.               portalClassName: 'ReactModalPortal --poll-tag-instructions'
  57957.             }, C.a.createElement('div', {
  57958.               className: 'modal-content'
  57959.             }, C.a.createElement('div', {
  57960.               className: 'modal-header'
  57961.             }, C.a.createElement('h4', {
  57962.               className: 'modal-title'
  57963.             }, C.a.createElement('span', null, 'Disqus Poll Tag Installation'))), C.a.createElement('div', {
  57964.               className: 'modal-body'
  57965.             }, C.a.createElement('p', null, 'Your copied Disqus Poll Tags include a snippet of code that can be placed in your page source code. More specifically, placed in the page ', C.a.createElement('code', null, '<body/>'), ' ', C.a.createElement('span', {
  57966.               className: 'hljs-emphasis'
  57967.             }, '(ex. In-article, side rail)'), ' essentially wherever you want the poll to load.'), C.a.createElement('p', null, 'We recommend that you copy and paste the tags to your page source, save, and then preview the page to confirm desired poll placement prior to launching. Any modification of these tags may impact the functionality of the poll itself, including engagement metrics.'), C.a.createElement('p', null, 'For a more detailed guide on how to install Disqus Poll Tags, reference our ', C.a.createElement('a', {
  57968.               href: 'https://help.disqus.com/en/',
  57969.               target: '_blank',
  57970.               rel: 'noopener noreferrer'
  57971.             }, 'Help FAQ'), '.'), C.a.createElement(YE, {
  57972.               language: 'html'
  57973.             }, EU(this.props.forum, this.props.pollId || 'universal'))), C.a.createElement('div', {
  57974.               className: 'modal-footer'
  57975.             }, C.a.createElement(Ob, {
  57976.               name: 'pollTagInstructionsCheckbox',
  57977.               checked: this.state.isChecked,
  57978.               secondaryLabel: 'Do not show this to me again',
  57979.               onChange: this.handleCheck
  57980.             }), C.a.createElement('button', {
  57981.               type: 'button',
  57982.               className: 'button button-link button-outline -border-blue-dark',
  57983.               onClick: this.close
  57984.             }, 'Close')))))
  57985.           }
  57986.         }
  57987.       ]) && SU(e.prototype, t),
  57988.       n && SU(e, n),
  57989.       o
  57990.     }();
  57991.     CU(Mc, 'displayName', 'PollTagInstructions');
  57992.     var RU = Mc,
  57993.     Wi = n(524);
  57994.     function xU(t, e) {
  57995.       var n,
  57996.       a = Object.keys(t);
  57997.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  57998.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  57999.       })), a.push.apply(a, n)),
  58000.       a
  58001.     }
  58002.     function AU(a) {
  58003.       for (var e = 1; e < arguments.length; e++) {
  58004.         var r = null != arguments[e] ? arguments[e] : {
  58005.         };
  58006.         e % 2 ? xU(Object(r), !0).forEach(function (e) {
  58007.           var t,
  58008.           n;
  58009.           n = r[t = e],
  58010.           t in (e = a) ? Object.defineProperty(e, t, {
  58011.             value: n,
  58012.             enumerable: !0,
  58013.             configurable: !0,
  58014.             writable: !0
  58015.           }) : e[t] = n
  58016.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : xU(Object(r)).forEach(function (e) {
  58017.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  58018.         })
  58019.       }
  58020.       return a
  58021.     }
  58022.     var DU = new (n.n(Wi).a) ('previewed_polls_cache', 86400);
  58023.     DU.getAll();
  58024.     function jU(e) {
  58025.       return ct.a.utc(e).local().format()
  58026.     }
  58027.     Mc = {
  58028.       fetchPollDetails: function (t) {
  58029.         return function (a, e) {
  58030.           e = (e().selection.forum || {
  58031.           }).shortname;
  58032.           return a({
  58033.             type: ce.isFetching
  58034.           }),
  58035.           io.a.call('polls/details', {
  58036.             data: {
  58037.               forum: e,
  58038.               pollId: t
  58039.             }
  58040.           }).then(function (e) {
  58041.             var t = jU(e.response.startDate),
  58042.             n = jU(e.response.endDate),
  58043.             n = AU(AU({
  58044.             }, e.response), {
  58045.             }, {
  58046.               startDate: t,
  58047.               endDate: n
  58048.             });
  58049.             a({
  58050.               type: ce.onFetch,
  58051.               response: n
  58052.             })
  58053.           })
  58054.         }
  58055.       },
  58056.       save: function (n) {
  58057.         return function (a, e) {
  58058.           var t = n.id ? 'polls/update' : 'polls/create',
  58059.           e = (e().selection.forum || {
  58060.           }).shortname;
  58061.           return a({
  58062.             type: ce.isSyncing
  58063.           }),
  58064.           io.a.call(t, {
  58065.             data: {
  58066.               forum: e,
  58067.               poll: JSON.stringify(n)
  58068.             },
  58069.             method: 'POST'
  58070.           }).then(function (e) {
  58071.             var t = jU(e.response.startDate),
  58072.             n = jU(e.response.endDate),
  58073.             n = AU(AU({
  58074.             }, e.response), {
  58075.             }, {
  58076.               startDate: t,
  58077.               endDate: n
  58078.             });
  58079.             return a({
  58080.               type: ce.onSave,
  58081.               response: n
  58082.             }),
  58083.             n
  58084.           })
  58085.         }
  58086.       },
  58087.       delete : function (n) {
  58088.         return function (e, t) {
  58089.           t = (t().selection.forum || {
  58090.           }).shortname;
  58091.           return e({
  58092.             type: ce.isSyncing
  58093.           }),
  58094.           io.a.call('polls/delete', {
  58095.             data: {
  58096.               pollId: n,
  58097.               forum: t
  58098.             },
  58099.             method: 'POST'
  58100.           }).then(function () {
  58101.             e({
  58102.               type: ce.onDelete,
  58103.               pollId: n
  58104.             })
  58105.           })
  58106.         }
  58107.       },
  58108.       publish: function (n) {
  58109.         return function (e, t) {
  58110.           t = (t().selection.forum || {
  58111.           }).shortname;
  58112.           return e({
  58113.             type: ce.isSyncing
  58114.           }),
  58115.           io.a.call('polls/publish', {
  58116.             data: {
  58117.               pollId: n,
  58118.               forum: t
  58119.             },
  58120.             method: 'POST'
  58121.           }).then(function () {
  58122.             e({
  58123.               type: ce.onPublish,
  58124.               pollId: n
  58125.             })
  58126.           })
  58127.         }
  58128.       },
  58129.       preview: function (r) {
  58130.         return function (n, e) {
  58131.           var t,
  58132.           a = (e().selection.forum || {
  58133.           }).shortname;
  58134.           return n({
  58135.             type: ce.isSyncing
  58136.           }),
  58137.           (e = DU.getItem((t = r).id) || DU.getItem(zc)) && JSON.stringify(e.lastPreviewedPollState.questions) === JSON.stringify(t.questions) && e.lastPreviewedPollState.name === t.name && e.lastPreviewedPollState.id === t.id ? Promise.resolve({
  58138.             previewId: DU.getItem(r.id || zc).previewId
  58139.           }).then(function (e) {
  58140.             return n({
  58141.               type: ce.onPreview
  58142.             }),
  58143.             e
  58144.           }) : io.a.call('polls/preview', {
  58145.             data: {
  58146.               forum: a,
  58147.               poll: JSON.stringify(r)
  58148.             },
  58149.             method: 'POST'
  58150.           }).then(function (e) {
  58151.             var t = e.response;
  58152.             return DU.setItem((e = r).id || zc, {
  58153.               lastPreviewedPollState: e,
  58154.               previewId: t.previewId
  58155.             }),
  58156.             n({
  58157.               type: ce.onPreview
  58158.             }),
  58159.             t
  58160.           })
  58161.         }
  58162.       },
  58163.       resetSyncedPoll: function () {
  58164.         return function (e) {
  58165.           e({
  58166.             type: ce.reset
  58167.           })
  58168.         }
  58169.       }
  58170.     };
  58171.     function TU(e) {
  58172.       return (TU = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  58173.         return typeof e
  58174.       }
  58175.        : function (e) {
  58176.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  58177.       }) (e)
  58178.     }
  58179.     function IU(e) {
  58180.       return function (e) {
  58181.         if (Array.isArray(e)) return qU(e)
  58182.       }(e) || function (e) {
  58183.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  58184.       }(e) || function (e, t) {
  58185.         if (e) {
  58186.           if ('string' == typeof e) return qU(e, t);
  58187.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  58188.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? qU(e, t) : void 0
  58189.         }
  58190.       }(e) || function () {
  58191.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  58192.       }()
  58193.     }
  58194.     function qU(e, t) {
  58195.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  58196.       return a
  58197.     }
  58198.     function FU(t, e) {
  58199.       var n,
  58200.       a = Object.keys(t);
  58201.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  58202.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  58203.       })), a.push.apply(a, n)),
  58204.       a
  58205.     }
  58206.     function LU(t) {
  58207.       for (var e = 1; e < arguments.length; e++) {
  58208.         var n = null != arguments[e] ? arguments[e] : {
  58209.         };
  58210.         e % 2 ? FU(Object(n), !0).forEach(function (e) {
  58211.           GU(t, e, n[e])
  58212.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : FU(Object(n)).forEach(function (e) {
  58213.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  58214.         })
  58215.       }
  58216.       return t
  58217.     }
  58218.     function UU(e, t) {
  58219.       for (var n = 0; n < t.length; n++) {
  58220.         var a = t[n];
  58221.         a.enumerable = a.enumerable || !1,
  58222.         a.configurable = !0,
  58223.         'value' in a && (a.writable = !0),
  58224.         Object.defineProperty(e, a.key, a)
  58225.       }
  58226.     }
  58227.     function MU(e, t) {
  58228.       return (MU = Object.setPrototypeOf || function (e, t) {
  58229.         return e.__proto__ = t,
  58230.         e
  58231.       }) (e, t)
  58232.     }
  58233.     function BU(n) {
  58234.       var a = function () {
  58235.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  58236.         if (Reflect.construct.sham) return !1;
  58237.         if ('function' == typeof Proxy) return !0;
  58238.         try {
  58239.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  58240.           ], function () {
  58241.           })),
  58242.           !0
  58243.         } catch (e) {
  58244.           return !1
  58245.         }
  58246.       }();
  58247.       return function () {
  58248.         var e,
  58249.         t = HU(n);
  58250.         return e = a ? (e = HU(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  58251.         t = this,
  58252.         !(e = e) || 'object' !== TU(e) && 'function' != typeof e ? zU(t) : e
  58253.       }
  58254.     }
  58255.     function zU(e) {
  58256.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  58257.       return e
  58258.     }
  58259.     function HU(e) {
  58260.       return (HU = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  58261.         return e.__proto__ || Object.getPrototypeOf(e)
  58262.       }) (e)
  58263.     }
  58264.     function GU(e, t, n) {
  58265.       return t in e ? Object.defineProperty(e, t, {
  58266.         value: n,
  58267.         enumerable: !0,
  58268.         configurable: !0,
  58269.         writable: !0
  58270.       }) : e[t] = n,
  58271.       e
  58272.     }
  58273.     var VU = 'error_',
  58274.     WU = 'success_',
  58275.     Wi = function () {
  58276.       !function (e, t) {
  58277.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  58278.         e.prototype = Object.create(t && t.prototype, {
  58279.           constructor: {
  58280.             value: e,
  58281.             writable: !0,
  58282.             configurable: !0
  58283.           }
  58284.         }),
  58285.         t && MU(e, t)
  58286.       }(r, A);
  58287.       var e,
  58288.       t,
  58289.       n,
  58290.       a = BU(r);
  58291.       function r() {
  58292.         var o;
  58293.         !function (e, t) {
  58294.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  58295.         }(this, r);
  58296.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  58297.         return GU(zU(o = a.call.apply(a, [
  58298.           this
  58299.         ].concat(t))), 'state', {
  58300.           hasChanges: !1,
  58301.           hasCopied: !1,
  58302.           pollHasChanged: !1,
  58303.           id: null,
  58304.           name: '',
  58305.           startDate: ct() ().startOf('day'),
  58306.           endDate: ct() ().add(1, 'week').endOf('day'),
  58307.           nonUniversal: !1,
  58308.           published: !1,
  58309.           requireAuth: !1,
  58310.           voteInterval: null,
  58311.           questions: [
  58312.             {
  58313.               text: '',
  58314.               type: Ac,
  58315.               answers: [
  58316.                 {
  58317.                   text: ''
  58318.                 },
  58319.                 {
  58320.                   text: ''
  58321.                 }
  58322.               ]
  58323.             }
  58324.           ],
  58325.           errors: {
  58326.             pollName: !1,
  58327.             questions: [
  58328.             ]
  58329.           },
  58330.           showPollTagInstructions: !1
  58331.         }),
  58332.         GU(zU(o), 'syncPollState', function () {
  58333.           o.setState(LU(LU({
  58334.           }, o.props.syncedPoll), {
  58335.           }, {
  58336.             startDate: ct() (o.props.syncedPoll.startDate),
  58337.             endDate: ct() (o.props.syncedPoll.endDate),
  58338.             hasChanges: !1,
  58339.             pollHasChanged: !0
  58340.           })),
  58341.           o.props.history.push(ho.getRoute('/polls/editor/'.concat(o.props.syncedPoll.id)))
  58342.         }),
  58343.         GU(zU(o), 'resetPollState', function () {
  58344.           o.setState({
  58345.             hasChanges: !1,
  58346.             hasCopied: !1,
  58347.             pollHasChanged: !1,
  58348.             id: null,
  58349.             name: '',
  58350.             startDate: ct() ().startOf('day'),
  58351.             endDate: ct() ().add(1, 'week').endOf('day'),
  58352.             published: !1,
  58353.             requireAuth: !1,
  58354.             voteInterval: null,
  58355.             questions: [
  58356.               {
  58357.                 text: '',
  58358.                 type: Ac,
  58359.                 answers: [
  58360.                   {
  58361.                     text: ''
  58362.                   },
  58363.                   {
  58364.                     text: ''
  58365.                   }
  58366.                 ]
  58367.               }
  58368.             ]
  58369.           })
  58370.         }),
  58371.         GU(zU(o), 'handleDateChange', function (e, t) {
  58372.           o.setState({
  58373.             startDate: e.startOf('day'),
  58374.             endDate: t.endOf('day'),
  58375.             hasChanges: !0
  58376.           })
  58377.         }),
  58378.         GU(zU(o), 'handleInputChange', function (e, t) {
  58379.           var n = (GU(n = {
  58380.           }, e, 'checkbox' === t.target.type ? t.target.checked : t.target.value), GU(n, VU + e, null), GU(n, WU + e, null), GU(n, 'hasChanges', !0), n);
  58381.           o.setState(n)
  58382.         }),
  58383.         GU(zU(o), 'handleVoteIntervalToggle', function (e) {
  58384.           o.setState({
  58385.             voteInterval: e.target.checked ? Ic : null,
  58386.             hasChanges: !0
  58387.           })
  58388.         }),
  58389.         GU(zU(o), 'handleUpdateQuestion', function (n, a, e) {
  58390.           var t = o.state.questions.map(function (e, t) {
  58391.             return t === n ? LU(LU({
  58392.             }, e), a) : e
  58393.           });
  58394.           o.setState({
  58395.             questions: t,
  58396.             hasChanges: !0
  58397.           }, e)
  58398.         }),
  58399.         GU(zU(o), 'handleAddQuestion', function () {
  58400.           var e = {
  58401.             text: '',
  58402.             type: Ac,
  58403.             answers: [
  58404.               {
  58405.                 text: ''
  58406.               },
  58407.               {
  58408.                 text: ''
  58409.               }
  58410.             ]
  58411.           },
  58412.           e = [
  58413.           ].concat(IU(o.state.questions), [
  58414.             e
  58415.           ]);
  58416.           o.setState({
  58417.             questions: e,
  58418.             hasChanges: !0
  58419.           })
  58420.         }),
  58421.         GU(zU(o), 'handleDeleteQuestion', function (n) {
  58422.           var e = o.state.questions.filter(function (e, t) {
  58423.             return t !== n
  58424.           });
  58425.           o.setState({
  58426.             questions: e,
  58427.             hasChanges: !0
  58428.           })
  58429.         }),
  58430.         GU(zU(o), 'validateEntries', function () {
  58431.           var a = {
  58432.             pollName: !1,
  58433.             questions: [
  58434.             ]
  58435.           },
  58436.           r = !0;
  58437.           return o.state.name || (r = !(a.pollName = !0)),
  58438.           o.state.questions.forEach(function (e, t) {
  58439.             var n = {
  58440.               text: !1,
  58441.               answers: new Set
  58442.             };
  58443.             e.text || (r = !(n.text = !0)),
  58444.             e.answers.forEach(function (e, t) {
  58445.               e.text || (n.answers.add(t), r = !1)
  58446.             }),
  58447.             (n.text || 0 < n.answers.size) && (a.questions[t] = n)
  58448.           }),
  58449.           o.setState({
  58450.             errors: a
  58451.           }),
  58452.           r
  58453.         }),
  58454.         GU(zU(o), 'handleSave', function () {
  58455.           o.validateEntries() && o.props.save({
  58456.             id: o.state.id,
  58457.             name: o.state.name,
  58458.             startDate: o.state.startDate,
  58459.             endDate: o.state.endDate,
  58460.             published: o.state.published,
  58461.             requireAuth: o.state.requireAuth,
  58462.             voteInterval: o.state.voteInterval,
  58463.             questions: o.state.questions,
  58464.             nonUniversal: o.state.nonUniversal
  58465.           }).then(o.syncPollState.bind(zU(o)))
  58466.         }),
  58467.         GU(zU(o), 'handlePublish', function () {
  58468.           o.props.publish(o.state.id).then(function () {
  58469.             o.setState({
  58470.               published: !0
  58471.             });
  58472.             var e = o.props.selection.organization && o.props.selection.organization.id || o.props.selection.forum && o.props.selection.forum.organization;
  58473.             !bc.hasSeenPublishedPoll && e && o.state.id && (o.props.onSegmentCall('group', '' + e, {
  58474.               pollId: o.state.id
  58475.             }), bc.hasSeenPublishedPoll = !0)
  58476.           })
  58477.         }),
  58478.         GU(zU(o), 'previewPoll', function () {
  58479.           o.validateEntries() && o.props.preview({
  58480.             id: o.state.id,
  58481.             name: o.state.name,
  58482.             startDate: o.state.startDate,
  58483.             endDate: o.state.endDate,
  58484.             published: o.state.published,
  58485.             requireAuth: o.state.requireAuth,
  58486.             voteInterval: o.state.voteInterval,
  58487.             questions: o.state.questions
  58488.           }).then(function (e) {
  58489.             o.showPreview(e.previewId)
  58490.           })
  58491.         }),
  58492.         GU(zU(o), 'showPreview', function (e) {
  58493.           e && window.open(Bc + e, '_blank')
  58494.         }),
  58495.         GU(zU(o), 'handleShowPollTagInstructions', function () {
  58496.           o.setState({
  58497.             showPollTagInstructions: !o.state.showPollTagInstructions
  58498.           })
  58499.         }),
  58500.         GU(zU(o), 'handleCopyTags', function () {
  58501.           var e = EU(o.props.selection && o.props.selection.forum && o.props.selection.forum.shortname, o.state.id);
  58502.           Object(Dl.copyToClipboard) (e),
  58503.           o.setState({
  58504.             hasCopied: !0,
  58505.             showPollTagInstructions: !Is.a.get(Hc)
  58506.           }),
  58507.           setTimeout(function () {
  58508.             o.setState({
  58509.               hasCopied: !1
  58510.             })
  58511.           }, 2000)
  58512.         }),
  58513.         GU(zU(o), 'handleDeletePoll', function () {
  58514.           window.confirm('Are you sure you want to delete this poll?') && o.props.delete(o.state.id).then(o.props.history.push(ho.getRoute('/polls/list/')))
  58515.         }),
  58516.         GU(zU(o), 'confirmNavigationIfUnsaved', function () {
  58517.           if (o.state.hasChanges) return 'Are you sure you want to leave without saving changes?'
  58518.         }),
  58519.         o
  58520.       }
  58521.       return e = r,
  58522.       (t = [
  58523.         {
  58524.           key: 'componentDidMount',
  58525.           value: function () {
  58526.             this.props.pollsOrgCurrentPackage || this.props.fetchSubscription(),
  58527.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  58528.             this.props.resetSyncedPoll(),
  58529.             this.props.params && this.props.params.pollId && this.props.fetchPollDetails(this.props.params.pollId).then(this.syncPollState.bind(this))
  58530.           }
  58531.         },
  58532.         {
  58533.           key: 'componentDidUpdate',
  58534.           value: function (e) {
  58535.             e.location.pathname !== this.props.location.pathname && '/polls/editor/new/' === this.props.location.pathname && this.state.pollHasChanged && (this.props.resetSyncedPoll(), this.resetPollState())
  58536.           }
  58537.         },
  58538.         {
  58539.           key: 'render',
  58540.           value: function () {
  58541.             var t = this,
  58542.             e = this.props.selection.organization && this.props.selection.organization.pollsActivationDate,
  58543.             n = this.props.selection.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus);
  58544.             return e ? this.props.isFetching ? C.a.createElement(Ji, null) : n ? (n = this.state.id && this.state.published ? 'Published' : this.state.id ? 'Draft' : 'Pending', C.a.createElement('div', {
  58545.               className: 'polls__wrapper polls-editor__container'
  58546.             }, this.state.showPollTagInstructions && C.a.createElement(RU, {
  58547.               handleShowPollTagInstructions: this.handleShowPollTagInstructions,
  58548.               forum: this.props.selection && this.props.selection.forum && this.props.selection.forum.shortname,
  58549.               pollId: this.state.id
  58550.             }), C.a.createElement('div', {
  58551.               className: 'content__wrap spacing-bottom-double'
  58552.             }, C.a.createElement('header', {
  58553.               className: 'polls__section-header'
  58554.             }, C.a.createElement('h2', {
  58555.               className: 'text-larger text-gray-darker spacing-bottom-small'
  58556.             }, 'Create a new poll')), C.a.createElement('section', {
  58557.               className: 'polls-editor__content'
  58558.             }, C.a.createElement($h, {
  58559.               name: 'name',
  58560.               value: this.state.name,
  58561.               placeholder: 'Example: Opinions on Star Wars Characters',
  58562.               label: 'Give the poll a name',
  58563.               onChange: function (e) {
  58564.                 return t.handleInputChange('name', e)
  58565.               },
  58566.               tooltip: 'Your poll\'s name will not be visible to participants.',
  58567.               disabled: this.props.isSyncing,
  58568.               inputState: this.state.errors.pollName ? 'error' : 'none',
  58569.               maxLength: Cc.MAX_POLL_NAME_LENGTH,
  58570.               showLimit: Cc.MAX_POLL_NAME_LENGTH / 2 <= this.state.name.length,
  58571.               spellCheck: !0,
  58572.               childIsInput: !0
  58573.             }), C.a.createElement('div', {
  58574.               className: 'fieldset'
  58575.             }, C.a.createElement('label', {
  58576.               className: 'fieldset__label text-gray'
  58577.             }, 'Start and end date'), C.a.createElement(Zp, {
  58578.               key: this.state.startDate,
  58579.               dateWrapperClass: 'polls-editor__datepicker select__control',
  58580.               minDate: ct.a.min(ct() ().startOf('day'), this.state.startDate),
  58581.               maxDate: this.state.startDate.clone().add(90, 'days'),
  58582.               startDate: this.state.startDate,
  58583.               endDate: this.state.endDate,
  58584.               onDateChange: this.handleDateChange,
  58585.               persistLocalTime: !0
  58586.             })), C.a.createElement('div', {
  58587.               className: 'fieldset'
  58588.             }, C.a.createElement('label', {
  58589.               className: 'fieldset__label text-gray'
  58590.             }, 'Status'), C.a.createElement('span', {
  58591.               className: 'label status-label '.concat(this.state.published ? ' status-label__success' : '')
  58592.             }, n)), C.a.createElement(Ob, {
  58593.               name: 'requireAuth',
  58594.               checked: !!this.state.requireAuth,
  58595.               secondaryLabel: 'Require login to submit response',
  58596.               onChange: function (e) {
  58597.                 return t.handleInputChange('requireAuth', e)
  58598.               },
  58599.               idNamespace: this.constructor.displayName,
  58600.               readOnly: this.props.isSyncing
  58601.             }), C.a.createElement(Ob, {
  58602.               name: 'voteIntervalCheckbox',
  58603.               checked: !!this.state.voteInterval,
  58604.               secondaryLabel: this.state.voteInterval ? C.a.createElement('span', null, 'Allow user to take poll again after ', C.a.createElement(Mf, {
  58605.                 name: 'voteInterval',
  58606.                 options: Tc,
  58607.                 value: this.state.voteInterval,
  58608.                 onChange: function (e) {
  58609.                   return t.handleInputChange('voteInterval', e)
  58610.                 },
  58611.                 idNamespace: this.constructor.displayName,
  58612.                 disabled: this.props.isSyncing,
  58613.                 inline: !0
  58614.               })) : 'Allow user to take poll again',
  58615.               onChange: this.handleVoteIntervalToggle,
  58616.               idNamespace: this.constructor.displayName,
  58617.               readOnly: this.props.isSyncing,
  58618.               fieldsetAdditionalClass: 'polls-editor__vote-interval-checkbox'
  58619.             }), C.a.createElement(Ob, {
  58620.               name: 'excludeFromUniversalCheckbox',
  58621.               checked: !!this.state.nonUniversal,
  58622.               secondaryLabel: 'Exclude from Universal Tag',
  58623.               onChange: function (e) {
  58624.                 return t.handleInputChange('nonUniversal', e)
  58625.               },
  58626.               idNamespace: this.constructor.displayName,
  58627.               disabled: this.props.isSyncing
  58628.             })), C.a.createElement(_U, {
  58629.               questions: this.state.questions,
  58630.               addQuestion: this.handleAddQuestion,
  58631.               updateQuestion: this.handleUpdateQuestion,
  58632.               deleteQuestion: this.handleDeleteQuestion,
  58633.               isSyncing: this.props.isSyncing,
  58634.               isPublished: this.state.published,
  58635.               errors: this.state.errors.questions
  58636.             }), C.a.createElement('p', {
  58637.               className: 'text-medium text-error text-semibold polls-editor__error'.concat(this.state.errors.pollName || 0 < this.state.errors.questions.length ? '' : ' --placeholder')
  58638.             }, 'Error: All text input fields must have an entry before saving or previewing.'), C.a.createElement('footer', {
  58639.               className: 'polls-editor__footer align align--between'
  58640.             }, C.a.createElement('div', {
  58641.               className: 'polls-editor__footer-button__container-left align'
  58642.             }, C.a.createElement('button', {
  58643.               className: 'button button-fill--brand button-padding-wider button-medium',
  58644.               onClick: this.handleSave,
  58645.               disabled: this.props.isSyncing || !this.state.hasChanges
  58646.             }, 'Save'), this.state.published ? C.a.createElement('button', {
  58647.               className: 'button button-fill--brand button-padding-wider button-medium polls__copy-tags',
  58648.               onClick: this.handleCopyTags
  58649.             }, 'Tags', this.state.hasCopied && C.a.createElement('span', {
  58650.               className: 'polls__copy-tags-success'
  58651.             }, 'Copied to clipboard')) : C.a.createElement('button', {
  58652.               className: 'button button-fill--brand button-padding-wider button-medium',
  58653.               onClick: this.handlePublish,
  58654.               disabled: this.props.isSyncing || !this.state.id || this.state.hasChanges
  58655.             }, 'Publish'), C.a.createElement('button', {
  58656.               className: 'button button-fill button-padding-wider button-medium',
  58657.               onClick: this.previewPoll
  58658.             }, 'Preview')), C.a.createElement('div', {
  58659.               className: 'polls-editor__footer-button__container-right'
  58660.             }, this.state.id && !this.state.published && C.a.createElement('button', {
  58661.               className: 'button button-outline -border-gray button-medium nav-lnk',
  58662.               onClick: this.handleDeletePoll
  58663.             }, C.a.createElement('div', {
  58664.               className: 'nav-lnk__blk'
  58665.             }, C.a.createElement('span', {
  58666.               className: 'button__text'
  58667.             }, 'Delete'))), C.a.createElement(v.Link, {
  58668.               activeClassName: 'active',
  58669.               to: ho.getRoute('/polls/list/')
  58670.             }, C.a.createElement('div', {
  58671.               className: 'button button-outline -border-blue-dark button-medium nav-lnk'
  58672.             }, C.a.createElement('div', {
  58673.               className: 'nav-lnk__blk'
  58674.             }, C.a.createElement('span', {
  58675.               className: 'button__text'
  58676.             }, 'Cancel'))))))))) : C.a.createElement(Mk, {
  58677.               organization: this.props.organization
  58678.             }) : C.a.createElement(Cm, {
  58679.               isPolls: !0,
  58680.               organization: this.props.selection.organization
  58681.             })
  58682.           }
  58683.         }
  58684.       ]) && UU(e.prototype, t),
  58685.       n && UU(e, n),
  58686.       r
  58687.     }();
  58688.     GU(Wi, 'displayName', 'PollsEditor'),
  58689.     GU(Wi, 'propTypes', {
  58690.       params: b.a.shape({
  58691.         pollId: b.a.string
  58692.       }),
  58693.       history: b.a.shape({
  58694.         push: b.a.func.isRequired
  58695.       }).isRequired,
  58696.       onSegmentCall: b.a.func.isRequired,
  58697.       syncedPoll: Uc,
  58698.       isSyncing: b.a.bool.isRequired,
  58699.       isFetching: b.a.bool.isRequired,
  58700.       selection: ht,
  58701.       fetchPollDetails: b.a.func.isRequired,
  58702.       save: b.a.func.isRequired,
  58703.       delete : b.a.func.isRequired,
  58704.       publish: b.a.func.isRequired,
  58705.       preview: b.a.func.isRequired
  58706.     });
  58707.     var YU = Object(u.connect) (function (e) {
  58708.       var t = e.pollsEditor;
  58709.       return {
  58710.         syncedPoll: t.poll,
  58711.         isSyncing: t.isSyncing,
  58712.         isFetching: t.isFetching,
  58713.         selection: e.selection,
  58714.         pollsOrgCurrentPackage: e.subscription.pollsOrgCurrentPackage
  58715.       }
  58716.     }, {
  58717.       fetchPollDetails: Mc.fetchPollDetails,
  58718.       save: Mc.save,
  58719.       delete : Mc.delete,
  58720.       publish: Mc.publish,
  58721.       resetSyncedPoll: Mc.resetSyncedPoll,
  58722.       preview: Mc.preview,
  58723.       fetchSubscription: Hl
  58724.     }) (Ni.a.attachDrivers(Wi, [
  58725.       bc
  58726.     ]));
  58727.     function QU(e) {
  58728.       return (QU = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  58729.         return typeof e
  58730.       }
  58731.        : function (e) {
  58732.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  58733.       }) (e)
  58734.     }
  58735.     function KU(e, t) {
  58736.       for (var n = 0; n < t.length; n++) {
  58737.         var a = t[n];
  58738.         a.enumerable = a.enumerable || !1,
  58739.         a.configurable = !0,
  58740.         'value' in a && (a.writable = !0),
  58741.         Object.defineProperty(e, a.key, a)
  58742.       }
  58743.     }
  58744.     function JU(e, t) {
  58745.       return (JU = Object.setPrototypeOf || function (e, t) {
  58746.         return e.__proto__ = t,
  58747.         e
  58748.       }) (e, t)
  58749.     }
  58750.     function $U(n) {
  58751.       var a = function () {
  58752.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  58753.         if (Reflect.construct.sham) return !1;
  58754.         if ('function' == typeof Proxy) return !0;
  58755.         try {
  58756.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  58757.           ], function () {
  58758.           })),
  58759.           !0
  58760.         } catch (e) {
  58761.           return !1
  58762.         }
  58763.       }();
  58764.       return function () {
  58765.         var e,
  58766.         t = XU(n);
  58767.         return e = a ? (e = XU(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  58768.         t = this,
  58769.         !(e = e) || 'object' !== QU(e) && 'function' != typeof e ? ZU(t) : e
  58770.       }
  58771.     }
  58772.     function ZU(e) {
  58773.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  58774.       return e
  58775.     }
  58776.     function XU(e) {
  58777.       return (XU = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  58778.         return e.__proto__ || Object.getPrototypeOf(e)
  58779.       }) (e)
  58780.     }
  58781.     function eM(e, t, n) {
  58782.       return t in e ? Object.defineProperty(e, t, {
  58783.         value: n,
  58784.         enumerable: !0,
  58785.         configurable: !0,
  58786.         writable: !0
  58787.       }) : e[t] = n,
  58788.       e
  58789.     }
  58790.     Mc = function () {
  58791.       !function (e, t) {
  58792.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  58793.         e.prototype = Object.create(t && t.prototype, {
  58794.           constructor: {
  58795.             value: e,
  58796.             writable: !0,
  58797.             configurable: !0
  58798.           }
  58799.         }),
  58800.         t && JU(e, t)
  58801.       }(o, A);
  58802.       var e,
  58803.       t,
  58804.       n,
  58805.       r = $U(o);
  58806.       function o() {
  58807.         var e;
  58808.         !function (e, t) {
  58809.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  58810.         }(this, o);
  58811.         for (var t = arguments.length, n = Array(t), a = 0; a < t; a++) n[a] = arguments[a];
  58812.         return eM(ZU(e = r.call.apply(r, [
  58813.           this
  58814.         ].concat(n))), 'handleBackToPollsList', function () {
  58815.           e.props.fetchPolls()
  58816.         }),
  58817.         e
  58818.       }
  58819.       return e = o,
  58820.       (t = [
  58821.         {
  58822.           key: 'render',
  58823.           value: function () {
  58824.             return this.props.noPollData ? C.a.createElement('div', {
  58825.               className: 'no-polls__container align align--column align--middle align--center'
  58826.             }, C.a.createElement('span', {
  58827.               className: 'no_poll_data__img'
  58828.             }), C.a.createElement('div', {
  58829.               className: 'no-polls__prompt'
  58830.             }, 'No poll data available (...yet)')) : C.a.createElement('div', {
  58831.               className: 'no-polls__container align align--column align--middle align--center'
  58832.             }, C.a.createElement('span', {
  58833.               className: 'no-polls__img'
  58834.             }), this.props.noSearchResults ? C.a.createElement(C.a.Fragment, null, C.a.createElement('div', null, 'No poll names containing ', C.a.createElement('strong', null, this.props.query), ' found belonging to shortname ', C.a.createElement('strong', null, this.props.forum), '.'), C.a.createElement('div', null, 'Refine your search and try again!'), C.a.createElement('button', {
  58835.               className: 'button button-fill--brand button-padding-wider text-medium',
  58836.               onClick: this.handleBackToPollsList
  58837.             }, C.a.createElement('div', {
  58838.               className: 'nav-lnk'
  58839.             }, C.a.createElement('div', {
  58840.               className: 'nav-lnk__blk'
  58841.             }, C.a.createElement('span', {
  58842.               className: 'button__text'
  58843.             }, 'Back to Polls List'))))) : C.a.createElement(C.a.Fragment, null, C.a.createElement('div', {
  58844.               className: 'no-polls__prompt'
  58845.             }, 'You don\'t have any polls yet.  Click below to begin!'), C.a.createElement(v.Link, {
  58846.               className: 'button button-fill--brand button-padding-wider text-medium',
  58847.               activeClassName: 'active',
  58848.               to: ho.getRoute('/polls/editor/new/')
  58849.             }, C.a.createElement('div', {
  58850.               className: 'nav-lnk'
  58851.             }, C.a.createElement('div', {
  58852.               className: 'nav-lnk__blk'
  58853.             }, C.a.createElement('span', {
  58854.               className: 'button__text'
  58855.             }, '+ Poll'))))))
  58856.           }
  58857.         }
  58858.       ]) && KU(e.prototype, t),
  58859.       n && KU(e, n),
  58860.       o
  58861.     }();
  58862.     eM(Mc, 'displayName', 'NoPolls'),
  58863.     eM(Mc, 'propTypes', {
  58864.       noSearchResults: b.a.bool,
  58865.       fetchPolls: b.a.func,
  58866.       query: b.a.string,
  58867.       forum: b.a.string,
  58868.       noPollData: b.a.bool
  58869.     });
  58870.     var tM = Mc,
  58871.     Wi = {
  58872.       updateSearchQuery: function (e) {
  58873.         return {
  58874.           type: ue.updateSearchQuery,
  58875.           searchQuery: e
  58876.         }
  58877.       },
  58878.       fetchPolls: function () {
  58879.         var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {
  58880.           limit: 10
  58881.         },
  58882.         r = e.limit,
  58883.         o = e.query;
  58884.         return function (t, e) {
  58885.           var n = e().pollsList,
  58886.           a = (o = 'string' != typeof o ? n.searchQuery : o) === n.searchQuery,
  58887.           e = (e().selection.forum || {
  58888.           }).shortname;
  58889.           return t({
  58890.             type: ue.isFetching
  58891.           }),
  58892.           io.a.call('polls/list', {
  58893.             data: {
  58894.               forum: e,
  58895.               query: o,
  58896.               limit: r,
  58897.               cursor: a ? n.cursor.next : void 0
  58898.             }
  58899.           }).then(function (e) {
  58900.             t({
  58901.               type: ue.onFetch,
  58902.               response: e.response,
  58903.               cursor: e.cursor,
  58904.               query: o,
  58905.               shouldAppend: a
  58906.             })
  58907.           })
  58908.         }
  58909.       },
  58910.       delete : function (n) {
  58911.         return function (e, t) {
  58912.           return io.a.call('polls/delete', {
  58913.             data: {
  58914.               pollId: n,
  58915.               forum: (t().selection.forum || {
  58916.               }).shortname
  58917.             },
  58918.             method: 'POST'
  58919.           }).then(function () {
  58920.             e({
  58921.               type: ue.onDelete,
  58922.               pollId: n
  58923.             })
  58924.           })
  58925.         }
  58926.       },
  58927.       resetList: function () {
  58928.         return function (e) {
  58929.           e({
  58930.             type: ue.reset
  58931.           })
  58932.         }
  58933.       },
  58934.       previewPoll: function (n) {
  58935.         return function (e, t) {
  58936.           t = (t().selection.forum || {
  58937.           }).shortname;
  58938.           return io.a.call('polls/preview', {
  58939.             data: {
  58940.               forum: t,
  58941.               poll: JSON.stringify({
  58942.                 id: n
  58943.               })
  58944.             },
  58945.             method: 'POST'
  58946.           }).then(function (e) {
  58947.             return e.response
  58948.           })
  58949.         }
  58950.       }
  58951.     };
  58952.     function nM(e) {
  58953.       return (nM = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  58954.         return typeof e
  58955.       }
  58956.        : function (e) {
  58957.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  58958.       }) (e)
  58959.     }
  58960.     function aM(e, t) {
  58961.       for (var n = 0; n < t.length; n++) {
  58962.         var a = t[n];
  58963.         a.enumerable = a.enumerable || !1,
  58964.         a.configurable = !0,
  58965.         'value' in a && (a.writable = !0),
  58966.         Object.defineProperty(e, a.key, a)
  58967.       }
  58968.     }
  58969.     function rM(e, t) {
  58970.       return (rM = Object.setPrototypeOf || function (e, t) {
  58971.         return e.__proto__ = t,
  58972.         e
  58973.       }) (e, t)
  58974.     }
  58975.     function oM(n) {
  58976.       var a = function () {
  58977.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  58978.         if (Reflect.construct.sham) return !1;
  58979.         if ('function' == typeof Proxy) return !0;
  58980.         try {
  58981.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  58982.           ], function () {
  58983.           })),
  58984.           !0
  58985.         } catch (e) {
  58986.           return !1
  58987.         }
  58988.       }();
  58989.       return function () {
  58990.         var e,
  58991.         t = sM(n);
  58992.         return e = a ? (e = sM(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  58993.         t = this,
  58994.         !(e = e) || 'object' !== nM(e) && 'function' != typeof e ? iM(t) : e
  58995.       }
  58996.     }
  58997.     function iM(e) {
  58998.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  58999.       return e
  59000.     }
  59001.     function sM(e) {
  59002.       return (sM = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  59003.         return e.__proto__ || Object.getPrototypeOf(e)
  59004.       }) (e)
  59005.     }
  59006.     function lM(e, t, n) {
  59007.       return t in e ? Object.defineProperty(e, t, {
  59008.         value: n,
  59009.         enumerable: !0,
  59010.         configurable: !0,
  59011.         writable: !0
  59012.       }) : e[t] = n,
  59013.       e
  59014.     }
  59015.     Mc = function () {
  59016.       !function (e, t) {
  59017.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  59018.         e.prototype = Object.create(t && t.prototype, {
  59019.           constructor: {
  59020.             value: e,
  59021.             writable: !0,
  59022.             configurable: !0
  59023.           }
  59024.         }),
  59025.         t && rM(e, t)
  59026.       }(r, A);
  59027.       var e,
  59028.       t,
  59029.       n,
  59030.       a = oM(r);
  59031.       function r(e) {
  59032.         var n;
  59033.         return function (e, t) {
  59034.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  59035.         }(this, r),
  59036.         lM(iM(n = a.call(this, e)), 'handleChangeSearch', function (e) {
  59037.           n.setState({
  59038.             localSearchQuery: e.target.value
  59039.           })
  59040.         }),
  59041.         lM(iM(n), 'handleSearch', function () {
  59042.           n.state.localSearchQuery !== n.props.searchQuery && n.props.fetchPolls({
  59043.             query: n.state.localSearchQuery
  59044.           })
  59045.         }),
  59046.         lM(iM(n), 'handleLoadMore', function () {
  59047.           return n.props.fetchPolls({
  59048.             query: n.props.searchQuery
  59049.           })
  59050.         }),
  59051.         lM(iM(n), 'handleKeyDownSearch', function (e) {
  59052.           13 === e.keyCode && n.handleSearch()
  59053.         }),
  59054.         lM(iM(n), 'handlePreviewPoll', function (e) {
  59055.           n.props.previewPoll(e).then(function (e) {
  59056.             return n.showPreview(e.previewId)
  59057.           })
  59058.         }),
  59059.         lM(iM(n), 'showPreview', function (e) {
  59060.           e && window.open(Bc + e, '_blank')
  59061.         }),
  59062.         lM(iM(n), 'handleShowPollTagInstructions', function () {
  59063.           n.setState({
  59064.             showPollTagInstructions: !n.state.showPollTagInstructions
  59065.           })
  59066.         }),
  59067.         lM(iM(n), 'handleCopyTags', function (e) {
  59068.           var t = EU(n.props.selection && n.props.selection.forum && n.props.selection.forum.shortname, e = e || 'universal');
  59069.           Object(Dl.copyToClipboard) (t),
  59070.           n.setState({
  59071.             copiedPoll: e,
  59072.             showPollTagInstructions: !Is.a.get(Hc)
  59073.           }),
  59074.           setTimeout(function () {
  59075.             n.setState({
  59076.               copiedPoll: null
  59077.             })
  59078.           }, 2000)
  59079.         }),
  59080.         lM(iM(n), 'handleDeletePoll', function (e) {
  59081.           window.confirm('Are you sure you want to delete this poll?') && n.props.deletePoll(e)
  59082.         }),
  59083.         n.state = {
  59084.           localSearchQuery: '',
  59085.           copiedPoll: null,
  59086.           showPollTagInstructions: !1,
  59087.           subscribeModalOpen: n.props.location.query[Ur.CHECKOUT_SUCCESS_QUERY_PARAM] === Ur.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS
  59088.         },
  59089.         n
  59090.       }
  59091.       return e = r,
  59092.       (t = [
  59093.         {
  59094.           key: 'componentDidMount',
  59095.           value: function () {
  59096.             this.props.pollsOrgCurrentPackage || this.props.fetchSubscription(),
  59097.             this.props.resetList(),
  59098.             this.props.fetchPolls()
  59099.           }
  59100.         },
  59101.         {
  59102.           key: 'render',
  59103.           value: function () {
  59104.             var t = this,
  59105.             e = this.props.selection.organization && this.props.selection.organization.pollsActivationDate,
  59106.             n = this.props.selection.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus);
  59107.             return e ? this.props.isFetching ? C.a.createElement(Ji, null) : n ? C.a.createElement('div', {
  59108.               className: 'polls__wrapper'
  59109.             }, this.state.subscribeModalOpen && this.props.pollsOrgCurrentPackage && C.a.createElement(Ty, {
  59110.               package: this.props.pollsOrgCurrentPackage,
  59111.               onClose: function () {
  59112.                 return t.setState({
  59113.                   subscribeModalOpen: !1
  59114.                 })
  59115.               }
  59116.             }), this.state.showPollTagInstructions && C.a.createElement(RU, {
  59117.               handleShowPollTagInstructions: this.handleShowPollTagInstructions,
  59118.               forum: this.props.selection && this.props.selection.forum && this.props.selection.forum.shortname,
  59119.               pollId: this.state.copiedPoll
  59120.             }), C.a.createElement('div', {
  59121.               className: 'content__wrap spacing-bottom-double'
  59122.             }, C.a.createElement('header', {
  59123.               className: 'polls__section-header'
  59124.             }, C.a.createElement('h2', {
  59125.               className: 'text-largest text-gray-darker spacing-bottom-small'
  59126.             }, 'Polls Configuration')), C.a.createElement('div', {
  59127.               className: 'polls-list__container'
  59128.             }, C.a.createElement('div', {
  59129.               className: 'polls-list__top-container align align--between align--middle'
  59130.             }, C.a.createElement('div', {
  59131.               className: 'relative__wrapper'
  59132.             }, C.a.createElement('input', {
  59133.               'aria-label': 'Search for a poll',
  59134.               placeholder: 'Search for a poll',
  59135.               value: this.state.localSearchQuery,
  59136.               onChange: this.handleChangeSearch,
  59137.               onKeyDown: this.handleKeyDownSearch,
  59138.               className: 'input--textbox poll-search align__item--grow',
  59139.               spellCheck: !0
  59140.             }), C.a.createElement('button', {
  59141.               className: 'poll-search-icon icon-mod-search',
  59142.               onClick: this.handleSearch
  59143.             })), C.a.createElement('div', {
  59144.               className: 'polls-list__general-actions-container'
  59145.             }, C.a.createElement('div', {
  59146.               className: 'copy-universal-tag-container'
  59147.             }, C.a.createElement('button', {
  59148.               className: 'create-poll-btn button button-fill--brand text-large polls__copy-tags',
  59149.               onClick: this.handleCopyTags.bind(this, 'universal')
  59150.             }, C.a.createElement('div', {
  59151.               className: 'nav-lnk'
  59152.             }, C.a.createElement('div', {
  59153.               className: 'nav-lnk__blk'
  59154.             }, C.a.createElement('span', {
  59155.               className: 'button__text'
  59156.             }, 'Copy Universal Tags'), 'universal' === this.state.copiedPoll && C.a.createElement('span', {
  59157.               className: 'polls__copy-tags-success'
  59158.             }, 'Copied to clipboard')))), C.a.createElement(Md, {
  59159.               content: C.a.createElement(C.a.Fragment, null, 'Universal tags let you deploy new polls to your site without having to update your code each time. Learn more ', C.a.createElement('a', {
  59160.                 href: _l.a.contactSupport,
  59161.                 target: '_blank',
  59162.                 rel: 'noopener noreferrer'
  59163.               }, 'here'), '.'),
  59164.               direction: 'top-left'
  59165.             })), C.a.createElement(v.Link, {
  59166.               className: 'create-poll-btn button button-fill--brand text-large',
  59167.               activeClassName: 'active',
  59168.               to: ho.getRoute('/polls/editor/new/')
  59169.             }, C.a.createElement('div', {
  59170.               className: 'nav-lnk'
  59171.             }, C.a.createElement('div', {
  59172.               className: 'nav-lnk__blk'
  59173.             }, C.a.createElement('span', {
  59174.               className: 'button__text'
  59175.             }, '+ Poll')))))), !(!this.props.polls.length || this.state.localSearchQuery !== this.props.searchQuery && this.props.isFetching) && C.a.createElement('table', {
  59176.               className: 'polls-list__table'
  59177.             }, C.a.createElement('thead', null, C.a.createElement('tr', null, Rc.map(function (e, t) {
  59178.               return C.a.createElement('th', {
  59179.                 key: t,
  59180.                 className: 'polls-list__table__header --'.concat(e.split(' ') [0].toLowerCase())
  59181.               }, C.a.createElement('div', {
  59182.                 className: 'polls-list__table__header__item'
  59183.               }, e))
  59184.             }))), C.a.createElement('tbody', null, this.props.polls.map(function (e) {
  59185.               return C.a.createElement('tr', {
  59186.                 key: e.id
  59187.               }, C.a.createElement('td', {
  59188.                 className: 'polls-list__table__data --id'
  59189.               }, e.id), C.a.createElement('td', {
  59190.                 className: 'polls-list__table__data --name'
  59191.               }, C.a.createElement(v.Link, {
  59192.                 className: 'polls-list__action-button',
  59193.                 to: ho.getRoute('/polls/editor/'.concat(e.id)),
  59194.                 title: e.name
  59195.               }, e.name)), C.a.createElement('td', {
  59196.                 className: 'polls-list__table__data --status'
  59197.               }, C.a.createElement('span', {
  59198.                 className: 'poll-status '.concat(e.published ? '--published' : '--draft')
  59199.               }, e.published ? 'Published' : 'Draft')), C.a.createElement('td', {
  59200.                 className: 'polls-list__table__data --responses'
  59201.               }, e.responses || '--'), C.a.createElement('td', {
  59202.                 className: 'polls-list__table__data --created'
  59203.               }, ct() (e.createdAt).format('MMMM DD, YYYY')), C.a.createElement('td', {
  59204.                 className: 'polls-list__table__data --exclude'
  59205.               }, e.nonUniversal ? 'Yes' : 'No'), C.a.createElement('td', {
  59206.                 className: 'polls-list__table__data --actions'
  59207.               }, C.a.createElement('div', {
  59208.                 className: 'buttons__container align align--middle'
  59209.               }, C.a.createElement(v.Link, {
  59210.                 className: 'polls-list__action-button',
  59211.                 to: ho.getRoute('/polls/editor/'.concat(e.id)),
  59212.                 title: 'Edit'
  59213.               }, C.a.createElement('span', {
  59214.                 className: 'icon-pencil-thin'
  59215.               })), C.a.createElement('button', {
  59216.                 className: 'polls-list__action-button',
  59217.                 onClick: t.handlePreviewPoll.bind(t, e.id),
  59218.                 title: 'Preview'
  59219.               }, C.a.createElement('span', {
  59220.                 className: 'icon-eye'
  59221.               })), C.a.createElement('button', {
  59222.                 className: 'polls-list__action-button polls__copy-tags'.concat(e.published ? '' : ' -disabled'),
  59223.                 onClick: t.handleCopyTags.bind(t, e.id),
  59224.                 title: 'Copy Tags',
  59225.                 disabled: !e.published
  59226.               }, C.a.createElement('span', {
  59227.                 className: 'icon-universal-code'
  59228.               }), t.state.copiedPoll === e.id && C.a.createElement('span', {
  59229.                 className: 'polls__copy-tags-success'
  59230.               }, 'Copied to clipboard')), C.a.createElement('button', {
  59231.                 className: 'polls-list__action-button'.concat(e.published ? ' -disabled' : ''),
  59232.                 onClick: t.handleDeletePoll.bind(t, e.id),
  59233.                 title: 'Delete',
  59234.                 disabled: e.published
  59235.               }, C.a.createElement('span', {
  59236.                 className: 'icon-delete'
  59237.               })))))
  59238.             }))), !this.props.isFetching && !this.props.polls.length && C.a.createElement(tM, {
  59239.               noSearchResults: !!this.props.searchQuery,
  59240.               fetchPolls: this.props.fetchPolls,
  59241.               query: this.props.searchQuery,
  59242.               forum: this.props.selection && this.props.selection.forum && this.props.selection.forum.shortname
  59243.             }), this.props.isFetching && C.a.createElement(Ji, null), !this.props.isFetching && !!this.props.polls.length && C.a.createElement(C.a.Fragment, null, this.props.hasMorePolls && C.a.createElement(C.a.Fragment, null, C.a.createElement('p', {
  59244.               className: 'spacing-top-bottom text-small text-gray text-center'
  59245.             }, 'Showing ', this.props.polls.length, ' of ', this.props.totalPolls, ' polls'), C.a.createElement('button', {
  59246.               className: 'button button-wide button-outline button-medium',
  59247.               disabled: !this.props.hasMorePolls,
  59248.               onClick: this.handleLoadMore
  59249.             }, 'Show more polls')))))) : C.a.createElement(Mk, {
  59250.               organization: this.props.organization
  59251.             }) : C.a.createElement(Cm, {
  59252.               isPolls: !0,
  59253.               organization: this.props.selection.organization
  59254.             })
  59255.           }
  59256.         }
  59257.       ]) && aM(e.prototype, t),
  59258.       n && aM(e, n),
  59259.       r
  59260.     }();
  59261.     lM(Mc, 'displayName', 'PollsList'),
  59262.     lM(Mc, 'propTypes', {
  59263.       searchQuery: b.a.string.isRequired,
  59264.       polls: qc,
  59265.       isFetching: b.a.bool.isRequired,
  59266.       hasMorePolls: b.a.bool.isRequired,
  59267.       totalPolls: b.a.number.isRequired,
  59268.       selection: ht,
  59269.       pollsOrgCurrentPackage: Ur.PACKAGE_SHAPE,
  59270.       fetchPolls: b.a.func.isRequired,
  59271.       updateSearchQuery: b.a.func.isRequired,
  59272.       deletePoll: b.a.func.isRequired,
  59273.       previewPoll: b.a.func.isRequired,
  59274.       location: kh.locationShape.isRequired
  59275.     });
  59276.     var cM = Object(u.connect) (function (e) {
  59277.       var t = e.pollsList;
  59278.       return {
  59279.         searchQuery: t.searchQuery,
  59280.         polls: t.polls,
  59281.         isFetching: t.isFetching,
  59282.         hasMorePolls: t.hasNext,
  59283.         totalPolls: t.total,
  59284.         selection: e.selection,
  59285.         pollsOrgCurrentPackage: e.subscription.pollsOrgCurrentPackage
  59286.       }
  59287.     }, {
  59288.       search: Wi.search,
  59289.       updateSearchQuery: Wi.updateSearchQuery,
  59290.       fetchPolls: Wi.fetchPolls,
  59291.       deletePoll: Wi.delete,
  59292.       resetList: Wi.resetList,
  59293.       previewPoll: Wi.previewPoll,
  59294.       fetchSubscription: Hl
  59295.     }) (Mc),
  59296.     Mc = function (e) {
  59297.       return C.a.createElement('div', {
  59298.         className: 'section-contained'
  59299.       }, C.a.createElement('div', {
  59300.         className: 'layout layout--publishers'
  59301.       }, C.a.createElement('div', {
  59302.         className: 'layout__main'
  59303.       }, C.a.createElement(ob, {
  59304.         auth: e.auth,
  59305.         selection: e.selection
  59306.       }), C.a.createElement('div', {
  59307.         className: 'layout__content'
  59308.       }, C.a.cloneElement(e.children, e)))))
  59309.     };
  59310.     Mc.displayName = 'PollsSettings',
  59311.     Mc.propTypes = {
  59312.       auth: Nc.isRequired,
  59313.       children: b.a.node.isRequired,
  59314.       selection: ht.isRequired
  59315.     };
  59316.     Nc = Object(u.connect) (function (e) {
  59317.       return {
  59318.         selection: e.selection
  59319.       }
  59320.     }) (Ni.a.attachDrivers(Mc, [
  59321.       bc
  59322.     ]));
  59323.     function uM(e) {
  59324.       return (uM = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  59325.         return typeof e
  59326.       }
  59327.        : function (e) {
  59328.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  59329.       }) (e)
  59330.     }
  59331.     function pM(t, e) {
  59332.       var n,
  59333.       a = Object.keys(t);
  59334.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  59335.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  59336.       })), a.push.apply(a, n)),
  59337.       a
  59338.     }
  59339.     function dM(t) {
  59340.       for (var e = 1; e < arguments.length; e++) {
  59341.         var n = null != arguments[e] ? arguments[e] : {
  59342.         };
  59343.         e % 2 ? pM(Object(n), !0).forEach(function (e) {
  59344.           bM(t, e, n[e])
  59345.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : pM(Object(n)).forEach(function (e) {
  59346.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  59347.         })
  59348.       }
  59349.       return t
  59350.     }
  59351.     function mM(e, t) {
  59352.       for (var n = 0; n < t.length; n++) {
  59353.         var a = t[n];
  59354.         a.enumerable = a.enumerable || !1,
  59355.         a.configurable = !0,
  59356.         'value' in a && (a.writable = !0),
  59357.         Object.defineProperty(e, a.key, a)
  59358.       }
  59359.     }
  59360.     function fM(e, t) {
  59361.       return (fM = Object.setPrototypeOf || function (e, t) {
  59362.         return e.__proto__ = t,
  59363.         e
  59364.       }) (e, t)
  59365.     }
  59366.     function hM(n) {
  59367.       var a = function () {
  59368.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  59369.         if (Reflect.construct.sham) return !1;
  59370.         if ('function' == typeof Proxy) return !0;
  59371.         try {
  59372.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  59373.           ], function () {
  59374.           })),
  59375.           !0
  59376.         } catch (e) {
  59377.           return !1
  59378.         }
  59379.       }();
  59380.       return function () {
  59381.         var e,
  59382.         t = yM(n);
  59383.         return e = a ? (e = yM(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  59384.         t = this,
  59385.         !(e = e) || 'object' !== uM(e) && 'function' != typeof e ? gM(t) : e
  59386.       }
  59387.     }
  59388.     function gM(e) {
  59389.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  59390.       return e
  59391.     }
  59392.     function yM(e) {
  59393.       return (yM = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  59394.         return e.__proto__ || Object.getPrototypeOf(e)
  59395.       }) (e)
  59396.     }
  59397.     function bM(e, t, n) {
  59398.       return t in e ? Object.defineProperty(e, t, {
  59399.         value: n,
  59400.         enumerable: !0,
  59401.         configurable: !0,
  59402.         writable: !0
  59403.       }) : e[t] = n,
  59404.       e
  59405.     }
  59406.     Mc = function () {
  59407.       !function (e, t) {
  59408.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  59409.         e.prototype = Object.create(t && t.prototype, {
  59410.           constructor: {
  59411.             value: e,
  59412.             writable: !0,
  59413.             configurable: !0
  59414.           }
  59415.         }),
  59416.         t && fM(e, t)
  59417.       }(r, A);
  59418.       var e,
  59419.       t,
  59420.       n,
  59421.       a = hM(r);
  59422.       function r() {
  59423.         var o;
  59424.         !function (e, t) {
  59425.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  59426.         }(this, r);
  59427.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  59428.         return bM(gM(o = a.call.apply(a, [
  59429.           this
  59430.         ].concat(t))), 'state', dM(dM({
  59431.         }, r.getEditableFieldsFromForum(o.props.forumDetails)), {
  59432.         }, {
  59433.           selectedFaviconIndex: 0,
  59434.           faviconOptions: [
  59435.           ],
  59436.           hasPendingFaviconChange: !1,
  59437.           fontOptionList: r.getFontOptionsList(),
  59438.           savedFields: dM(dM({
  59439.           }, r.getEditableFieldsFromForum(o.props.forumDetails)), {
  59440.           }, {
  59441.             hasPendingFaviconChange: !1
  59442.           })
  59443.         })),
  59444.         bM(gM(o), 'faviconFileInput', C.a.createRef()),
  59445.         bM(gM(o), 'confirmNavigationIfUnsaved', function () {
  59446.           if (o.hasUnsavedChanges()) return 'You have unsaved changes. Do you want to leave this page?'
  59447.         }),
  59448.         bM(gM(o), 'getUploadedFaviconFile', function () {
  59449.           var e = o.faviconFileInput.current && o.faviconFileInput.current.files;
  59450.           return e && e[0]
  59451.         }),
  59452.         bM(gM(o), 'getFaviconOptions', function () {
  59453.           return o.state.faviconOptions.map(function (e, t) {
  59454.             return {
  59455.               key: t,
  59456.               value: t,
  59457.               image: e
  59458.             }
  59459.           })
  59460.         }),
  59461.         bM(gM(o), 'getFontCategory', function (t) {
  59462.           return o.state.fontOptionList.filter(function (e) {
  59463.             return e.name === t
  59464.           }) [0].category
  59465.         }),
  59466.         bM(gM(o), 'handleFontSelection', function (r) {
  59467.           return function (e) {
  59468.             var t,
  59469.             n = o.state.customFont,
  59470.             a = o.state.typeface;
  59471.             'typeface' === r ? (a = e.target.value, t = o.getFontCategory(n), 'auto' !== a && 'auto' !== t && a !== t && (n = cf.name)) : 'auto' !== o.getFontCategory(n = e.target.value) && (a = o.getFontCategory(n)),
  59472.             o.setState({
  59473.               typeface: a,
  59474.               customFont: n
  59475.             })
  59476.           }
  59477.         }),
  59478.         bM(gM(o), 'hasValidFavicon', function () {
  59479.           var e = o.getUploadedFaviconFile();
  59480.           return !!(e ? o.props.forumFaviconValidateImageFile(e) : o.lastValidFavicon)
  59481.         }),
  59482.         bM(gM(o), 'isNewFaviconSelected', function () {
  59483.           return o.hasValidFavicon() && 1 === o.state.selectedFaviconIndex
  59484.         }),
  59485.         bM(gM(o), 'handleFaviconTypeChange', function (e) {
  59486.           var t = parseInt(e.target.parentElement.getAttribute('index'), 10),
  59487.           e = o.getUploadedFaviconFile() || 0 !== t;
  59488.           o.setState({
  59489.             selectedFaviconIndex: t,
  59490.             hasNewFavicon: o.hasValidFavicon(),
  59491.             hasPendingFaviconChange: e
  59492.           })
  59493.         }),
  59494.         bM(gM(o), 'handleInputChange', function (a) {
  59495.           return function (e) {
  59496.             var e = e.target,
  59497.             n = 'checkbox' === e.type ? e.checked : e.value;
  59498.             'radio' === e.type ? n = 'true' === n : 'text' === e.type || 'boolean' == typeof n || '' === n || isNaN(n) || (n = parseInt(n, 10)),
  59499.             o.setState(function (e) {
  59500.               var t = {
  59501.               };
  59502.               return bM(t, a, n),
  59503.               bM(t, 'hasPendingFaviconChange', 'hasNewFavicon' === a || e.hasPendingFaviconChange),
  59504.               t
  59505.             })
  59506.           }
  59507.         }),
  59508.         bM(gM(o), 'hasFieldChanged', function (e) {
  59509.           return o.state[e] !== o.state.savedFields[e] && !(null === o.state.savedFields[e] && '' === o.state[e])
  59510.         }),
  59511.         bM(gM(o), 'handleFaviconFileInputChange', function () {
  59512.           var e,
  59513.           t;
  59514.           o.hasValidFavicon() ? (o.props.forumFaviconOnDismissError(), e = o.state.faviconOptions, t = o.getUploadedFaviconFile(), e[1] = URL.createObjectURL(t), o.setState({
  59515.             hasNewFavicon: !0,
  59516.             hasPendingFaviconChange: !0,
  59517.             faviconOptions: e,
  59518.             selectedFaviconIndex: 1
  59519.           })) : o.setState({
  59520.             hasNewFavicon: !1
  59521.           })
  59522.         }),
  59523.         bM(gM(o), 'hasUnsavedChanges', function () {
  59524.           return Object.keys(o.state.savedFields).some(function (e) {
  59525.             return o.hasFieldChanged(e)
  59526.           })
  59527.         }),
  59528.         bM(gM(o), 'handleSaveChanges', function () {
  59529.           var e;
  59530.           o.state.hasPendingFaviconChange ? o.handleSaveFavicon() : (e = {
  59531.             name: o.state.name,
  59532.             website: o.state.website,
  59533.             forumCategory: o.state.category,
  59534.             adultContent: o.state.adultContent ? 1 : 0,
  59535.             description: o.state.description,
  59536.             colorScheme: o.state.colorScheme,
  59537.             typeface: o.state.typeface,
  59538.             translationLanguage: o.state.language,
  59539.             disableDisqusBrandingOnPolls: o.state.enableDisqusBranding ? 0 : 1
  59540.           }, o.hasFeature('customFonts') && (e.customFont = o.state.customFont), o.props.forumUpdateOnSave(e).done(function () {
  59541.             o.setState(function (e) {
  59542.               return {
  59543.                 savedFields: {
  59544.                   name: e.name,
  59545.                   website: e.website,
  59546.                   category: e.category,
  59547.                   adultContent: e.adultContent,
  59548.                   colorScheme: e.colorScheme,
  59549.                   typeface: e.typeface,
  59550.                   customFont: e.customFont,
  59551.                   description: e.description,
  59552.                   language: e.language,
  59553.                   enableDisqusBranding: e.enableDisqusBranding,
  59554.                   hasPendingFaviconChange: !1
  59555.                 }
  59556.               }
  59557.             })
  59558.           }))
  59559.         }),
  59560.         bM(gM(o), 'handleSaveFavicon', function () {
  59561.           var e = o.getUploadedFaviconFile();
  59562.           e && o.isNewFaviconSelected() ? o.props.forumFaviconOnSave(e).done(function () {
  59563.             this.faviconFileInput.current.value = '',
  59564.             this.lastValidFavicon = this.props.forumFaviconNewUrl,
  59565.             this.setState({
  59566.               hasPendingFaviconChange: !1,
  59567.               faviconOptions: [
  59568.                 this.props.forumFaviconNewUrl
  59569.               ]
  59570.             }, this.handleSaveChanges)
  59571.           }.bind(gM(o))) : o.setState({
  59572.             hasPendingFaviconChange: !1
  59573.           }, o.handleSaveChanges)
  59574.         }),
  59575.         bM(gM(o), 'hasFeature', function (e) {
  59576.           return !!(o.props.forumDetails && o.props.forumDetails.features && o.props.forumDetails.features[e])
  59577.         }),
  59578.         bM(gM(o), 'getInputId', function (e) {
  59579.           return ''.concat(o.constructor.displayName, '_').concat(e)
  59580.         }),
  59581.         o
  59582.       }
  59583.       return e = r,
  59584.       (t = [
  59585.         {
  59586.           key: 'componentDidMount',
  59587.           value: function () {
  59588.             this.props.pollsOrgCurrentPackage || this.props.fetchSubscription(),
  59589.             this.props.history.setRouteLeaveHook(this.props.route, this.confirmNavigationIfUnsaved),
  59590.             this.props.emitTrackingEvent({
  59591.               verb: 'view',
  59592.               object_type: 'page',
  59593.               object_id: ''.concat(window.document.location.host).concat(window.document.location.pathname)
  59594.             }),
  59595.             this.props.fetchForumCategories(),
  59596.             this.props.fetchForumDetails(),
  59597.             this.props.fetchForumLanguages()
  59598.           }
  59599.         },
  59600.         {
  59601.           key: 'componentWillReceiveProps',
  59602.           value: function (t) {
  59603.             var n;
  59604.             !this.props.forumDetails && t.forumDetails && (n = r.getEditableFieldsFromForum(t.forumDetails), this.setState(function (e) {
  59605.               return dM(dM({
  59606.               }, n), {
  59607.               }, {
  59608.                 savedFields: dM(dM({
  59609.                 }, r.getEditableFieldsFromForum(t.forumDetails)), {
  59610.                 }, {
  59611.                   hasPendingFaviconChange: !1
  59612.                 }),
  59613.                 faviconOptions: !e.faviconOptions.length && t.forumDetails.favicon.permalink ? [
  59614.                   t.forumDetails.favicon.permalink
  59615.                 ] : e.faviconOptions
  59616.               })
  59617.             }, Function.bind.call(function () {
  59618.               var e;
  59619.               this.state.hasNewFavicon && (this.lastValidFavicon = (e = t.forumDetails.favicon) && e.permalink)
  59620.             }, this)))
  59621.           }
  59622.         },
  59623.         {
  59624.           key: 'componentWillUnmount',
  59625.           value: function () {
  59626.             this.props.abortUpdateForumFaviconApiCall()
  59627.           }
  59628.         },
  59629.         {
  59630.           key: 'render',
  59631.           value: function () {
  59632.             var t = this,
  59633.             e = this.props.selection.organization && this.props.selection.organization.pollsActivationDate,
  59634.             n = this.props.selection.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus),
  59635.             a = this.props.pollsOrgCurrentPackage && this.props.pollsOrgCurrentPackage.id === Ur.DISQUS_POLLS_BUSINESS_PACKAGE_ID;
  59636.             if (!e) return C.a.createElement(Cm, {
  59637.               isPolls: !0,
  59638.               organization: this.props.selection.organization
  59639.             });
  59640.             if (this.props.forumDetailsIsFetching) return C.a.createElement(Ji, null);
  59641.             if (!n) return C.a.createElement(Mk, {
  59642.               organization: this.props.organization
  59643.             });
  59644.             if (!this.props.forumDetailsIsFetching && this.props.forumDetailsError) return C.a.createElement('div', {
  59645.               className: 'content__wrap spacing-bottom-double'
  59646.             }, C.a.createElement(Ki, {
  59647.               message: this.props.forumDetailsError,
  59648.               alertType: 'error'
  59649.             }));
  59650.             var r = this.props.forumDetails,
  59651.             o = this.props.organizations[this.props.selection.forum.organization],
  59652.             i = this.props.forumCategories.allCategories.map(function (e) {
  59653.               return {
  59654.                 key: e.id,
  59655.                 value: e.id,
  59656.                 label: e.name
  59657.               }
  59658.             }),
  59659.             s = this.props.forumLanguages.map(function (e) {
  59660.               return {
  59661.                 key: e.code,
  59662.                 value: e.code,
  59663.                 label: e.name
  59664.               }
  59665.             }),
  59666.             l = this.getInputId('colorScheme'),
  59667.             c = this.getInputId('typeface'),
  59668.             u = this.hasFeature('pollsBrandingOptional'),
  59669.             e = yo.a.isFeatureActive('custom_fonts', {
  59670.               forum: (this.props.selection.forum || {
  59671.               }).shortname
  59672.             }),
  59673.             n = u || ql(this.props.selection);
  59674.             return C.a.createElement('div', null, C.a.createElement('div', {
  59675.               className: 'content__wrap spacing-bottom-double'
  59676.             }, C.a.createElement('header', {
  59677.               className: 'settings__header'
  59678.             }, C.a.createElement('h2', {
  59679.               className: 'text-larger text-gray-darker spacing-bottom-small'
  59680.             }, 'Configure Disqus for Your Site'), C.a.createElement('p', {
  59681.               className: 'text-gray'
  59682.             }, 'Disqus automatically adapts to your community and offers powerful customization options. ', C.a.createElement('a', {
  59683.               href: Pn.adminArticles,
  59684.               target: '_blank',
  59685.               rel: 'noopener noreferrer'
  59686.             }, 'Learn more »'))), C.a.createElement('section', {
  59687.               className: 'settings__content'
  59688.             }, this.props.forumUpdateError ? C.a.createElement(Ki, {
  59689.               message: this.props.forumUpdateError,
  59690.               onRequestClose: this.props.forumUpdateOnDismissError,
  59691.               alertType: 'error'
  59692.             }) : null, C.a.createElement(kf, {
  59693.               label: 'Organization',
  59694.               blockAdditionalClass: 'text-medium',
  59695.               tooltip: o.name ? C.a.createElement(C.a.Fragment, null, 'Organizations are used to manage multiple sites, and this is the organization this site belongs to.', C.a.createElement('span', null, ' ', C.a.createElement(Us, {
  59696.                 path: '/settings/general/',
  59697.                 orgId: o.id,
  59698.                 orgSlug: o.slug
  59699.               }, 'Edit organization settings.'))) : null
  59700.             }, C.a.createElement('div', null, o.name ? C.a.createElement('h4', {
  59701.               className: 'spacing-top-narrow'
  59702.             }, o.name) : C.a.createElement('p', {
  59703.               className: 'spacing-top-small'
  59704.             }, 'Organizations are used to manage multiple sites, and this is the organization this site belongs to.', C.a.createElement('span', null, ' ', C.a.createElement(Us, {
  59705.               path: '/settings/general/',
  59706.               orgId: o.id,
  59707.               orgSlug: o.slug
  59708.             }, 'Edit organization settings.'))))), C.a.createElement(kf, {
  59709.               label: 'Shortname',
  59710.               fieldsetAdditionalClass: 'spacing-top-narrow',
  59711.               blockAdditionalClass: 'text-medium',
  59712.               tooltip: 'This is used to uniquely identify your website on Disqus. It cannot be changed.'
  59713.             }, r ? C.a.createElement('div', {
  59714.               className: 'spacing-top-narrow'
  59715.             }, C.a.createElement('h4', null, r.id)) : null), C.a.createElement($h, {
  59716.               name: 'name',
  59717.               value: this.state.name,
  59718.               label: 'Website Name',
  59719.               onChange: this.handleInputChange('name'),
  59720.               idNamespace: this.constructor.displayName,
  59721.               readOnly: this.props.forumUpdateIsSaving,
  59722.               disabled: this.props.forumUpdateIsSaving,
  59723.               shouldHighlight: this.hasFieldChanged('name'),
  59724.               maxLength: '64'
  59725.             }), C.a.createElement($h, {
  59726.               name: 'website',
  59727.               value: this.state.website,
  59728.               label: 'Website URL',
  59729.               onChange: this.handleInputChange('website'),
  59730.               idNamespace: this.constructor.displayName,
  59731.               readOnly: this.props.forumUpdateIsSaving,
  59732.               disabled: this.props.forumUpdateIsSaving,
  59733.               shouldHighlight: this.hasFieldChanged('website'),
  59734.               tooltip: C.a.createElement(C.a.Fragment, null, 'Changing domains? ', C.a.createElement('a', {
  59735.                 href: '/admin/discussions/migrate/'
  59736.               }, 'Learn how'), '.')
  59737.             }), C.a.createElement(qv, {
  59738.               name: 'forum-favicon',
  59739.               label: 'Website Favicon',
  59740.               idNamespace: 'forum-favicon',
  59741.               className: 'spacing-bottom-large',
  59742.               options: this.getFaviconOptions(),
  59743.               value: this.state.selectedFaviconIndex,
  59744.               onChange: this.handleFaviconTypeChange,
  59745.               error: this.props.forumFaviconError,
  59746.               shouldHighlight: this.hasFieldChanged('hasPendingFaviconChange'),
  59747.               width: '48px',
  59748.               height: '48px',
  59749.               tooltip: C.a.createElement(C.a.Fragment, null, 'This will be the image for your site, which will appear at the top of your ', C.a.createElement('a', {
  59750.                 href: '//disqus.com/home/forum/'.concat(r && r.id)
  59751.               }, 'forum profile'), '.')
  59752.             }, C.a.createElement('input', {
  59753.               type: 'file',
  59754.               id: 'custom-favicon-input',
  59755.               className: 'input--display-label',
  59756.               ref: this.faviconFileInput,
  59757.               onChange: this.handleFaviconFileInputChange
  59758.             }), C.a.createElement('label', {
  59759.               htmlFor: 'custom-favicon-input'
  59760.             }, C.a.createElement('img', {
  59761.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/add-avatar-plus.svg',
  59762.               alt: 'Upload a favicon'
  59763.             }))), C.a.createElement(Mf, {
  59764.               name: 'category',
  59765.               label: 'Category',
  59766.               value: this.state.category,
  59767.               options: i,
  59768.               placeholder: 'Please select a category',
  59769.               onChange: this.handleInputChange('category'),
  59770.               idNamespace: this.constructor.displayName,
  59771.               readOnly: this.props.forumUpdateIsSaving,
  59772.               disabled: !i.length || this.props.forumUpdateIsSaving,
  59773.               shouldHighlight: this.hasFieldChanged('category')
  59774.             }), C.a.createElement($h, {
  59775.               name: 'description',
  59776.               value: this.state.description,
  59777.               label: 'Description',
  59778.               onChange: this.handleInputChange('description'),
  59779.               idNamespace: this.constructor.displayName,
  59780.               useTextarea: !0,
  59781.               readOnly: this.props.forumUpdateIsSaving,
  59782.               disabled: this.props.forumUpdateIsSaving,
  59783.               shouldHighlight: this.hasFieldChanged('description'),
  59784.               maxLength: '300'
  59785.             }), C.a.createElement(Mf, {
  59786.               name: 'language',
  59787.               label: 'Language',
  59788.               value: this.state.language,
  59789.               options: s,
  59790.               placeholder: 'Select a Language',
  59791.               onChange: this.handleInputChange('language'),
  59792.               disabled: !s.length,
  59793.               idNamespace: this.constructor.displayName,
  59794.               shouldHighlight: this.hasFieldChanged('language'),
  59795.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  59796.                 href: Pn.translate
  59797.               }, 'Make Disqus available in your language.'))
  59798.             }), n ? C.a.createElement(Ob, {
  59799.               name: 'enableDisqusBranding',
  59800.               checked: this.state.enableDisqusBranding,
  59801.               label: C.a.createElement('span', null, u ? null : C.a.createElement(Ks, {
  59802.                 emitEvent: function (e) {
  59803.                   return t.props.emitTrackingEvent(dM({
  59804.                     area: 'disqus_branding'
  59805.                   }, e))
  59806.                 },
  59807.                 organization: o,
  59808.                 iconClass: 'spacing-right-small',
  59809.                 plan: !a && Ur.DISQUS_POLLS_BUSINESS_PLAN_ID
  59810.               }), 'Disqus Branding'),
  59811.               secondaryLabel: 'Show "Powered by Disqus" banner at the bottom of polls',
  59812.               onChange: this.handleInputChange('enableDisqusBranding'),
  59813.               idNamespace: this.constructor.displayName,
  59814.               readOnly: !u || this.props.forumUpdateIsSaving,
  59815.               shouldHighlight: this.hasFieldChanged('enableDisqusBranding')
  59816.             }, u ? null : C.a.createElement('p', {
  59817.               className: 'fieldset__description text-small text-gray'
  59818.             }, 'This feature is only available to publishers on a Disqus Polls Business plan.', ' ', C.a.createElement(Us, {
  59819.               path: '/settings/subscription/?product=polls',
  59820.               orgId: o.id,
  59821.               orgSlug: o.slug
  59822.             }, 'View upgrade options'), '.')) : null, C.a.createElement(Ob, {
  59823.               name: 'adultContent',
  59824.               checked: this.state.adultContent,
  59825.               label: 'Adult Content',
  59826.               secondaryLabel: 'Flag my site as adult oriented or NSFW',
  59827.               onChange: this.handleInputChange('adultContent'),
  59828.               idNamespace: this.constructor.displayName,
  59829.               readOnly: this.props.forumUpdateIsSaving,
  59830.               shouldHighlight: this.hasFieldChanged('adultContent'),
  59831.               tooltip: C.a.createElement(C.a.Fragment, null, C.a.createElement('a', {
  59832.                 href: Pn.nsfwContent
  59833.               }, 'What does this mean?'))
  59834.             }), e ? C.a.createElement('span', null, C.a.createElement(Mf, {
  59835.               id: l,
  59836.               name: 'colorScheme',
  59837.               label: 'Color scheme',
  59838.               className: 'fieldset-item__select',
  59839.               value: this.state.colorScheme,
  59840.               options: pf,
  59841.               onChange: this.handleInputChange('colorScheme'),
  59842.               readOnly: this.props.forumUpdateIsSaving,
  59843.               loading: this.props.forumUpdateIsSaving,
  59844.               shouldHighlight: this.hasFieldChanged('colorScheme')
  59845.             }), C.a.createElement(kf, {
  59846.               label: 'Typeface',
  59847.               labelId: c,
  59848.               blockAdditionalClass: '-text text-medium align align--wrap',
  59849.               shouldHighlight: this.hasFieldChanged('typeface') || this.hasFieldChanged('customFont')
  59850.             }, C.a.createElement(Mf, {
  59851.               id: c,
  59852.               name: 'typeface',
  59853.               secondaryLabel: 'Category',
  59854.               className: 'fieldset-item__select',
  59855.               value: this.state.typeface,
  59856.               options: lf,
  59857.               onChange: this.handleFontSelection('typeface'),
  59858.               inline: !0,
  59859.               readOnly: this.props.forumUpdateIsSaving,
  59860.               loading: this.props.forumUpdateIsSaving
  59861.             }))) : C.a.createElement(kf, {
  59862.               label: 'Appearance',
  59863.               labelId: l,
  59864.               blockAdditionalClass: '-text text-medium align align--wrap',
  59865.               shouldHighlight: this.hasFieldChanged('colorScheme') || this.hasFieldChanged('typeface')
  59866.             }, C.a.createElement(Mf, {
  59867.               id: l,
  59868.               name: 'colorScheme',
  59869.               secondaryLabel: 'Color scheme',
  59870.               className: 'fieldset-item__select',
  59871.               value: this.state.colorScheme,
  59872.               options: pf,
  59873.               onChange: this.handleInputChange('colorScheme'),
  59874.               inline: !0,
  59875.               readOnly: this.props.forumUpdateIsSaving,
  59876.               loading: this.props.forumUpdateIsSaving
  59877.             }), C.a.createElement(Mf, {
  59878.               id: c,
  59879.               name: 'typeface',
  59880.               secondaryLabel: 'Typeface',
  59881.               className: 'fieldset-item__select',
  59882.               value: this.state.typeface,
  59883.               options: lf,
  59884.               onChange: this.handleInputChange('typeface'),
  59885.               inline: !0,
  59886.               readOnly: this.props.forumUpdateIsSaving,
  59887.               loading: this.props.forumUpdateIsSaving
  59888.             }))), C.a.createElement('footer', {
  59889.               className: 'settings__footer'
  59890.             }, C.a.createElement(Bh, {
  59891.               disabled: !this.hasUnsavedChanges(),
  59892.               onClick: this.handleSaveChanges,
  59893.               isSaving: this.props.forumUpdateIsSaving || this.props.forumFaviconIsSaving,
  59894.               isSaved: this.props.forumUpdateIsSaved
  59895.             }))))
  59896.           }
  59897.         }
  59898.       ]) && mM(e.prototype, t),
  59899.       n && mM(e, n),
  59900.       r
  59901.     }();
  59902.     bM(Mc, 'displayName', 'PollsSettingsGeneral'),
  59903.     bM(Mc, 'propTypes', {
  59904.       history: b.a.shape({
  59905.         setRouteLeaveHook: b.a.func.isRequired
  59906.       }).isRequired,
  59907.       route: b.a.object.isRequired,
  59908.       organizations: b.a.object.isRequired,
  59909.       selection: ht.isRequired,
  59910.       forumDetails: $c,
  59911.       forumDetailsError: b.a.string,
  59912.       forumDetailsIsFetching: b.a.bool,
  59913.       fetchForumDetails: b.a.func.isRequired,
  59914.       forumUpdateError: b.a.string,
  59915.       forumUpdateIsSaving: b.a.bool,
  59916.       forumUpdateIsSaved: b.a.bool,
  59917.       forumUpdateOnSave: b.a.func.isRequired,
  59918.       forumUpdateOnDismissError: b.a.func.isRequired,
  59919.       forumCategories: b.a.shape({
  59920.         allCategories: b.a.arrayOf(vl)
  59921.       }).isRequired,
  59922.       forumLanguages: b.a.arrayOf(xl).isRequired,
  59923.       emitTrackingEvent: b.a.func.isRequired,
  59924.       fetchForumCategories: b.a.func.isRequired,
  59925.       fetchForumLanguages: b.a.func.isRequired,
  59926.       abortUpdateForumFaviconApiCall: b.a.func.isRequired,
  59927.       forumFaviconValidateImageFile: b.a.func.isRequired,
  59928.       forumFaviconOnSave: b.a.func.isRequired,
  59929.       forumFaviconOnDismissError: b.a.func.isRequired,
  59930.       forumFaviconError: b.a.string,
  59931.       forumFaviconIsSaving: b.a.bool,
  59932.       forumFaviconNewUrl: b.a.string
  59933.     }),
  59934.     bM(Mc, 'getEditableFieldsFromForum', function (e) {
  59935.       return {
  59936.         name: (e = e || {
  59937.         }).name,
  59938.         website: e.url,
  59939.         category: e.forumCategory && e.forumCategory.id || null,
  59940.         adultContent: !!(e.settings || {
  59941.         }).adultContent,
  59942.         typeface: e.typeface,
  59943.         customFont: e.customFont || cf.name,
  59944.         colorScheme: e.colorScheme,
  59945.         description: e.raw_description,
  59946.         lastValidFavicon: e.favicon && e.favicon.permalink,
  59947.         language: e.language,
  59948.         enableDisqusBranding: !e.disableDisqusBrandingOnPolls
  59949.       }
  59950.     }),
  59951.     bM(Mc, 'getFontOptionsList', function () {
  59952.       var e = (Sb.a.lounge || {
  59953.       }).font_options;
  59954.       return e[0] !== cf && e.unshift(cf),
  59955.       e
  59956.     });
  59957.     bp = Object(u.connect) (function (e) {
  59958.       var t = e.forumDetails,
  59959.       n = e.forumUpdateFavicon;
  59960.       return {
  59961.         forumCategories: e.forumCategories,
  59962.         forumLanguages: e.forumLanguages.languages,
  59963.         forumDetails: t.forumDetails,
  59964.         forumDetailsError: t.forumDetailsError,
  59965.         forumDetailsIsFetching: t.forumDetailsIsFetching,
  59966.         forumFaviconError: n.error,
  59967.         forumFaviconIsSaving: n.isSaving,
  59968.         forumFaviconNewUrl: n.forumFaviconNewUrl,
  59969.         selection: e.selection,
  59970.         pollsOrgCurrentPackage: e.subscription.pollsOrgCurrentPackage
  59971.       }
  59972.     }, {
  59973.       emitTrackingEvent: Xo({
  59974.         zone: 'settings',
  59975.         section: 'polls/general'
  59976.       }),
  59977.       fetchForumCategories: Nh,
  59978.       fetchForumLanguages: vu,
  59979.       fetchForumDetails: ig,
  59980.       abortUpdateForumFaviconApiCall: Zu,
  59981.       forumFaviconValidateImageFile: hv,
  59982.       forumFaviconOnSave: cp,
  59983.       forumFaviconOnDismissError: bp,
  59984.       fetchSubscription: Hl
  59985.     }) (Ni.a.attachDrivers(Fo() (Mc), [
  59986.       m
  59987.     ]));
  59988.     function vM(t, e) {
  59989.       var n,
  59990.       a = Object.keys(t);
  59991.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  59992.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  59993.       })), a.push.apply(a, n)),
  59994.       a
  59995.     }
  59996.     function _M(a) {
  59997.       for (var e = 1; e < arguments.length; e++) {
  59998.         var r = null != arguments[e] ? arguments[e] : {
  59999.         };
  60000.         e % 2 ? vM(Object(r), !0).forEach(function (e) {
  60001.           var t,
  60002.           n;
  60003.           n = r[t = e],
  60004.           t in (e = a) ? Object.defineProperty(e, t, {
  60005.             value: n,
  60006.             enumerable: !0,
  60007.             configurable: !0,
  60008.             writable: !0
  60009.           }) : e[t] = n
  60010.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : vM(Object(r)).forEach(function (e) {
  60011.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  60012.         })
  60013.       }
  60014.       return a
  60015.     }
  60016.     function EM() {
  60017.       return (EM = Object.assign || function (e) {
  60018.         for (var t = 1; t < arguments.length; t++) {
  60019.           var n,
  60020.           a = arguments[t];
  60021.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  60022.         }
  60023.         return e
  60024.       }).apply(this, arguments)
  60025.     }
  60026.     Mc = {
  60027.       fetchModeratorList: function () {
  60028.         return function (t, e) {
  60029.           t({
  60030.             type: X.fetching
  60031.           });
  60032.           e = e().selection.forum.shortname;
  60033.           io.a.call('polls/listModerators', {
  60034.             type: 'GET',
  60035.             data: {
  60036.               forum: e
  60037.             },
  60038.             success: function (e) {
  60039.               t({
  60040.                 type: X.onFetch,
  60041.                 moderatorList: e.response
  60042.               })
  60043.             },
  60044.             error: function (e) {
  60045.               t({
  60046.                 type: X.onFetchError,
  60047.                 data: e
  60048.               })
  60049.             }
  60050.           })
  60051.         }
  60052.       },
  60053.       addModerator: function (n, a) {
  60054.         return function (t, e) {
  60055.           t({
  60056.             type: X.saving
  60057.           });
  60058.           e = e().selection.forum.shortname,
  60059.           e = EM({
  60060.             user: 'username:'.concat(n),
  60061.             forum: e
  60062.           }, a);
  60063.           io.a.call('polls/addModerator', {
  60064.             type: 'POST',
  60065.             data: e,
  60066.             success: function () {
  60067.               t({
  60068.                 type: X.onSave
  60069.               })
  60070.             },
  60071.             error: function (e) {
  60072.               t({
  60073.                 type: X.onSaveError,
  60074.                 data: e
  60075.               })
  60076.             }
  60077.           })
  60078.         }
  60079.       },
  60080.       removeModerator: function (e) {
  60081.         var n = e.userId,
  60082.         a = e.forumId;
  60083.         return function (t) {
  60084.           t({
  60085.             type: X.saving
  60086.           }),
  60087.           io.a.call('polls/removeModerator', {
  60088.             type: 'POST',
  60089.             data: {
  60090.               forum: a,
  60091.               user: n
  60092.             },
  60093.             success: function () {
  60094.               t({
  60095.                 type: X.onSave
  60096.               })
  60097.             },
  60098.             error: function (e) {
  60099.               t({
  60100.                 type: X.onSaveError,
  60101.                 data: e
  60102.               })
  60103.             }
  60104.           })
  60105.         }
  60106.       },
  60107.       updateModeratorPermissions: function (n, a) {
  60108.         return function (t, e) {
  60109.           t({
  60110.             type: X.updating,
  60111.             username: n,
  60112.             permissions: {
  60113.               isSaving: !0
  60114.             }
  60115.           });
  60116.           e = e().selection.forum.shortname,
  60117.           e = EM({
  60118.             user: 'username:'.concat(n),
  60119.             forum: e
  60120.           }, a);
  60121.           io.a.call('polls/addModerator', {
  60122.             type: 'POST',
  60123.             data: e,
  60124.             success: function (e) {
  60125.               t({
  60126.                 type: X.onUpdate,
  60127.                 username: n,
  60128.                 permissions: _M(_M({
  60129.                 }, e.response), {
  60130.                 }, {
  60131.                   isSaving: !1
  60132.                 })
  60133.               })
  60134.             },
  60135.             error: function (e) {
  60136.               t(_M({
  60137.                 type: X.onUpdateError,
  60138.                 username: n,
  60139.                 permissions: {
  60140.                   isSaving: !1
  60141.                 }
  60142.               }, e))
  60143.             }
  60144.           })
  60145.         }
  60146.       }
  60147.     };
  60148.     function OM(e) {
  60149.       return (OM = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  60150.         return typeof e
  60151.       }
  60152.        : function (e) {
  60153.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  60154.       }) (e)
  60155.     }
  60156.     function SM(t, e) {
  60157.       var n,
  60158.       a = Object.keys(t);
  60159.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  60160.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  60161.       })), a.push.apply(a, n)),
  60162.       a
  60163.     }
  60164.     function wM(t) {
  60165.       for (var e = 1; e < arguments.length; e++) {
  60166.         var n = null != arguments[e] ? arguments[e] : {
  60167.         };
  60168.         e % 2 ? SM(Object(n), !0).forEach(function (e) {
  60169.           xM(t, e, n[e])
  60170.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : SM(Object(n)).forEach(function (e) {
  60171.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  60172.         })
  60173.       }
  60174.       return t
  60175.     }
  60176.     function PM(e, t) {
  60177.       for (var n = 0; n < t.length; n++) {
  60178.         var a = t[n];
  60179.         a.enumerable = a.enumerable || !1,
  60180.         a.configurable = !0,
  60181.         'value' in a && (a.writable = !0),
  60182.         Object.defineProperty(e, a.key, a)
  60183.       }
  60184.     }
  60185.     function kM(e, t) {
  60186.       return (kM = Object.setPrototypeOf || function (e, t) {
  60187.         return e.__proto__ = t,
  60188.         e
  60189.       }) (e, t)
  60190.     }
  60191.     function NM(n) {
  60192.       var a = function () {
  60193.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  60194.         if (Reflect.construct.sham) return !1;
  60195.         if ('function' == typeof Proxy) return !0;
  60196.         try {
  60197.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  60198.           ], function () {
  60199.           })),
  60200.           !0
  60201.         } catch (e) {
  60202.           return !1
  60203.         }
  60204.       }();
  60205.       return function () {
  60206.         var e,
  60207.         t = RM(n);
  60208.         return e = a ? (e = RM(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  60209.         t = this,
  60210.         !(e = e) || 'object' !== OM(e) && 'function' != typeof e ? CM(t) : e
  60211.       }
  60212.     }
  60213.     function CM(e) {
  60214.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  60215.       return e
  60216.     }
  60217.     function RM(e) {
  60218.       return (RM = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  60219.         return e.__proto__ || Object.getPrototypeOf(e)
  60220.       }) (e)
  60221.     }
  60222.     function xM(e, t, n) {
  60223.       return t in e ? Object.defineProperty(e, t, {
  60224.         value: n,
  60225.         enumerable: !0,
  60226.         configurable: !0,
  60227.         writable: !0
  60228.       }) : e[t] = n,
  60229.       e
  60230.     }
  60231.     m = function () {
  60232.       !function (e, t) {
  60233.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  60234.         e.prototype = Object.create(t && t.prototype, {
  60235.           constructor: {
  60236.             value: e,
  60237.             writable: !0,
  60238.             configurable: !0
  60239.           }
  60240.         }),
  60241.         t && kM(e, t)
  60242.       }(o, A);
  60243.       var e,
  60244.       t,
  60245.       n,
  60246.       r = NM(o);
  60247.       function o() {
  60248.         var a;
  60249.         !function (e, t) {
  60250.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  60251.         }(this, o);
  60252.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  60253.         return xM(CM(a = r.call.apply(r, [
  60254.           this
  60255.         ].concat(t))), 'state', {
  60256.           newUsername: ''
  60257.         }),
  60258.         xM(CM(a), 'handleAddModerator', function () {
  60259.           var e = a.state.newUsername.trim();
  60260.           e && a.props.addModerator(e)
  60261.         }),
  60262.         xM(CM(a), 'handlePermissionChange', function (e, t, n) {
  60263.           a.props.updateModeratorPermissions(e.user.username, xM({
  60264.           }, t, n.target.checked ? 1 : 0))
  60265.         }),
  60266.         xM(CM(a), 'getOrgAdminPermissions', function (e) {
  60267.           var t = [
  60268.           ];
  60269.           e.isAdmin && t.push('can edit organization info'),
  60270.           e.isModerator && t.push('can moderate all organization polls');
  60271.           e = t.join(', ');
  60272.           return t.length ? (e[0] || '').toUpperCase() + e.slice(1) : ''
  60273.         }),
  60274.         a
  60275.       }
  60276.       return e = o,
  60277.       (t = [
  60278.         {
  60279.           key: 'componentDidMount',
  60280.           value: function () {
  60281.             this.props.pollsOrgCurrentPackage || this.props.fetchSubscription(),
  60282.             this.props.fetchModeratorList(),
  60283.             this.props.selection.organization && this.props.fetchOrgAdminList()
  60284.           }
  60285.         },
  60286.         {
  60287.           key: 'componentWillReceiveProps',
  60288.           value: function (e) {
  60289.             var t = {
  60290.             };
  60291.             !e.isSaving && this.props.isSaving && (this.props.fetchModeratorList(), t.newUsername = ''),
  60292.             this.setState(t)
  60293.           }
  60294.         },
  60295.         {
  60296.           key: 'render',
  60297.           value: function () {
  60298.             var r = this,
  60299.             e = this.props.selection.organization && this.props.selection.organization.pollsActivationDate,
  60300.             t = this.props.selection.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.selection.organization.pollsSubscriptionStatus);
  60301.             return e ? this.props.isFetching || this.props.orgAdminIsFetching ? C.a.createElement(Ji, null) : t ? C.a.createElement('div', null, this.props.fetchError || this.props.updateError && C.a.createElement(Ki, {
  60302.               message: this.props.fetchError || this.props.updateError,
  60303.               alertType: 'error'
  60304.             }), C.a.createElement('div', {
  60305.               className: 'content__wrap spacing-bottom-double'
  60306.             }, C.a.createElement('header', {
  60307.               className: 'settings__header'
  60308.             }, C.a.createElement('h2', {
  60309.               className: 'text-larger text-gray-darker spacing-bottom-small'
  60310.             }, 'Poll Moderators'), C.a.createElement('p', {
  60311.               className: 'text-gray text-medium'
  60312.             }, 'Add people to help moderate your polls.', C.a.createElement('a', {
  60313.               href: Pn.modArticles,
  60314.               target: '_blank',
  60315.               rel: 'noopener noreferrer'
  60316.             }, ' Learn more » '))), C.a.createElement('section', null, this.props.isFetching && !this.props.pollModeratorList ? C.a.createElement(Ji, null) : null, (this.props.pollModeratorList || [
  60317.             ]).map(function (e) {
  60318.               var t = e.user.username === r.props.selection.forum.founder.username,
  60319.               n = '//'.concat(pt.a.disqusHost, '/by/').concat(e.user.username, '/'),
  60320.               a = r.props.isSaving || e.isSaving;
  60321.               return C.a.createElement('div', {
  60322.                 key: e.user.id,
  60323.                 className: 'settings-list__item',
  60324.                 style: {
  60325.                   opacity: e.isSaving ? '0.7' : '1'
  60326.                 }
  60327.               }, C.a.createElement('div', {
  60328.                 className: 'align align--between'
  60329.               }, C.a.createElement('div', {
  60330.                 className: 'spacing-right align align--middle'
  60331.               }, C.a.createElement('div', {
  60332.                 className: 'spacing-right spacing-top-small'
  60333.               }, C.a.createElement('img', {
  60334.                 className: 'block__item border-radius-base',
  60335.                 src: e.user.avatar.cache,
  60336.                 width: '40',
  60337.                 height: '40'
  60338.               })), C.a.createElement('div', null, C.a.createElement('a', {
  60339.                 href: n,
  60340.                 className: 'text-medium text-semibold'
  60341.               }, e.user.name), t && C.a.createElement('p', {
  60342.                 className: 'text-small text-gray spacing-top-tiny'
  60343.               }, 'Primary moderator has full permissions. ', C.a.createElement('a', {
  60344.                 href: Pn.changePrimaryMod,
  60345.                 target: '_blank',
  60346.                 rel: 'noopener noreferrer'
  60347.               }, 'Need to change the primary moderator?')))), t ? null : C.a.createElement('div', {
  60348.                 className: 'align-min-tablet align--middle spacing-top-small spacing-bottom-small'
  60349.               }, C.a.createElement('button', {
  60350.                 className: 'button button-outline text-medium',
  60351.                 onClick: r.props.removeModerator.bind(null, {
  60352.                   forumId: e.forum,
  60353.                   userId: e.user.id
  60354.                 }),
  60355.                 disabled: a
  60356.               }, 'Remove'))))
  60357.             }), C.a.createElement('div', {
  60358.               className: 'settings-list__item'
  60359.             }, C.a.createElement('form', {
  60360.               onSubmit: function (e) {
  60361.                 return e.preventDefault()
  60362.               }
  60363.             }, C.a.createElement('div', {
  60364.               className: 'align spacing-top-small'
  60365.             }, C.a.createElement('div', {
  60366.               className: 'spacing-right align__item--grow'
  60367.             }, C.a.createElement('input', {
  60368.               type: 'text',
  60369.               className: 'input--textbox',
  60370.               placeholder: 'Add a new poll moderator by their username',
  60371.               onChange: function (e) {
  60372.                 return r.setState({
  60373.                   newUsername: e.target.value
  60374.                 })
  60375.               },
  60376.               value: this.state.newUsername,
  60377.               disabled: this.props.isSaving
  60378.             })), C.a.createElement('button', {
  60379.               className: 'button button-outline text-medium',
  60380.               onClick: this.handleAddModerator,
  60381.               disabled: this.props.isSaving || !this.state.newUsername
  60382.             }, 'Add')), C.a.createElement('p', {
  60383.               className: 'fieldset__description spacing-bottom-small text-small text-gray spacing-top-tiny'
  60384.             }, 'Moderators require a Disqus account.', C.a.createElement('a', {
  60385.               href: Pn.modArticles,
  60386.               target: '_blank',
  60387.               rel: 'noopener noreferrer'
  60388.             }, ' Learn more » ')), this.props.saveError && C.a.createElement('p', {
  60389.               className: 'text-medium text-error text-semibold spacing-narrow'
  60390.             }, this.props.saveError))))), this.props.selection.organization && C.a.createElement('div', {
  60391.               className: 'content__wrap spacing-bottom-double'
  60392.             }, C.a.createElement('header', {
  60393.               className: 'settings__header'
  60394.             }, C.a.createElement('h2', {
  60395.               className: 'text-larger text-gray-darker spacing-bottom-small'
  60396.             }, 'Organization Admins'), C.a.createElement('p', {
  60397.               className: 'text-gray text-medium'
  60398.             }, 'Organization admins have full moderation permissions on each of the polls in the organization.', ' ', C.a.createElement(Us, {
  60399.               path: '/settings/admins/',
  60400.               orgId: this.props.selection.organization.id,
  60401.               orgSlug: this.props.selection.organization.slug
  60402.             }, 'Manage Admins »'))), C.a.createElement('section', null, this.props.orgAdminListIsFetching && !this.props.orgAdminList && C.a.createElement(Ji, null), (this.props.orgAdminList || [
  60403.             ]).map(function (e) {
  60404.               var t = r.props.selection.organization && e.user.username === r.props.selection.organization.owner,
  60405.               n = '//'.concat(pt.a.disqusHost, '/by/').concat(e.user.username, '/');
  60406.               return C.a.createElement('div', {
  60407.                 className: 'settings-list__item',
  60408.                 key: e.id
  60409.               }, C.a.createElement('div', {
  60410.                 className: 'align align--between'
  60411.               }, C.a.createElement('div', {
  60412.                 className: 'spacing-right align'
  60413.               }, C.a.createElement('div', {
  60414.                 className: 'spacing-right spacing-top-small'
  60415.               }, C.a.createElement('img', {
  60416.                 className: 'border-radius-base',
  60417.                 src: e.user.avatar.cache,
  60418.                 width: '40',
  60419.                 height: '40'
  60420.               })), C.a.createElement('div', null, C.a.createElement('a', {
  60421.                 href: n,
  60422.                 className: 'text-medium text-semibold'
  60423.               }, e.user.name), C.a.createElement('p', {
  60424.                 className: 'text-small text-gray spacing-top-tiny'
  60425.               }, t ? 'Organization owner has full permissions.' : r.getOrgAdminPermissions(e))))))
  60426.             })))) : C.a.createElement(Mk, {
  60427.               organization: this.props.organization
  60428.             }) : C.a.createElement(Cm, {
  60429.               isPolls: !0,
  60430.               organization: this.props.selection.organization
  60431.             })
  60432.           }
  60433.         }
  60434.       ]) && PM(e.prototype, t),
  60435.       n && PM(e, n),
  60436.       o
  60437.     }();
  60438.     xM(m, 'displayName', 'PollsSettingsModerators'),
  60439.     xM(m, 'propTypes', {
  60440.       selection: ht.isRequired,
  60441.       pollModeratorList: b.a.arrayOf(b.a.shape({
  60442.         user: b.a.shape({
  60443.           id: b.a.string,
  60444.           username: b.a.string,
  60445.           name: b.a.string,
  60446.           avatar: b.a.shape({
  60447.             cache: b.a.string
  60448.           })
  60449.         }),
  60450.         id: b.a.string,
  60451.         forum: b.a.string
  60452.       })),
  60453.       isFetching: b.a.bool,
  60454.       isSaving: b.a.bool,
  60455.       isUpdating: b.a.bool,
  60456.       fetchError: b.a.string,
  60457.       saveError: b.a.string,
  60458.       updateError: b.a.string,
  60459.       orgAdminList: b.a.arrayOf(b.a.shape({
  60460.         id: b.a.number.isRequired,
  60461.         organizationId: b.a.number.isRequired,
  60462.         isAdmin: b.a.bool.isRequired,
  60463.         isModerator: b.a.bool.isRequired,
  60464.         user: To
  60465.       })),
  60466.       orgAdminIsFetching: b.a.bool,
  60467.       fetchOrgAdminList: b.a.func.isRequired,
  60468.       fetchModeratorList: b.a.func.isRequired,
  60469.       addModerator: b.a.func.isRequired,
  60470.       removeModerator: b.a.func.isRequired,
  60471.       updateModeratorPermissions: b.a.func.isRequired
  60472.     });
  60473.     To = Object(u.connect) (function (e) {
  60474.       var t = e.orgAdmin,
  60475.       n = e.subscription;
  60476.       return wM(wM(wM({
  60477.         selection: e.selection
  60478.       }, e.pollModerator), t), {
  60479.       }, {
  60480.         pollsOrgCurrentPackage: n.pollsOrgCurrentPackage
  60481.       })
  60482.     }, wM(wM(wM({
  60483.     }, Mc), Ss), {
  60484.     }, {
  60485.       fetchSubscription: Hl
  60486.     })) (Fo() (m));
  60487.     function AM(t, e) {
  60488.       var n,
  60489.       a = Object.keys(t);
  60490.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  60491.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  60492.       })), a.push.apply(a, n)),
  60493.       a
  60494.     }
  60495.     function DM(a) {
  60496.       for (var e = 1; e < arguments.length; e++) {
  60497.         var r = null != arguments[e] ? arguments[e] : {
  60498.         };
  60499.         e % 2 ? AM(Object(r), !0).forEach(function (e) {
  60500.           var t,
  60501.           n;
  60502.           n = r[t = e],
  60503.           t in (e = a) ? Object.defineProperty(e, t, {
  60504.             value: n,
  60505.             enumerable: !0,
  60506.             configurable: !0,
  60507.             writable: !0
  60508.           }) : e[t] = n
  60509.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : AM(Object(r)).forEach(function (e) {
  60510.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  60511.         })
  60512.       }
  60513.       return a
  60514.     }
  60515.     function jM(e, t, n) {
  60516.       t.selection.forum && n(e = {
  60517.         data: DM({
  60518.           forum: t.selection.forum.shortname
  60519.         }, e)
  60520.       })
  60521.     }
  60522.     var Mc = n(525),
  60523.     TM = n.n(Mc);
  60524.     function IM(e, t, n) {
  60525.       return t in e ? Object.defineProperty(e, t, {
  60526.         value: n,
  60527.         enumerable: !0,
  60528.         configurable: !0,
  60529.         writable: !0
  60530.       }) : e[t] = n,
  60531.       e
  60532.     }
  60533.     var qM = - 1,
  60534.     Ss = b.a.shape({
  60535.       impressions: b.a.number,
  60536.       responses: b.a.number,
  60537.       response_rate: b.a.number,
  60538.       respondents: b.a.number,
  60539.       impressions_series: b.a.arrayOf(b.a.array),
  60540.       responses_series: b.a.arrayOf(b.a.array),
  60541.       response_rate_series: b.a.arrayOf(b.a.array)
  60542.     }),
  60543.     m = b.a.shape({
  60544.       totalResponses: b.a.number,
  60545.       questions: b.a.arrayOf(b.a.shape({
  60546.         text: b.a.string,
  60547.         answers: b.a.arrayOf(b.a.shape({
  60548.           text: b.a.string,
  60549.           count: b.a.number
  60550.         }))
  60551.       }))
  60552.     }),
  60553.     Mc = b.a.objectOf(Uc),
  60554.     FM = 5,
  60555.     LM = {
  60556.       DAY: 'day',
  60557.       MONTH: 'month'
  60558.     },
  60559.     UM = (IM(Uc = {
  60560.     }, LM.DAY, 'daily'), IM(Uc, LM.MONTH, 'monthly'), Uc),
  60561.     MM = (IM(Uc = {
  60562.     }, LM.DAY, 'YYYY-MM-DD'), IM(Uc, LM.MONTH, 'YYYY-MM'), Uc),
  60563.     BM = {
  60564.       IMPRESSIONS: 'impressions',
  60565.       RESPONSES: 'responses',
  60566.       RESPONSE_RATE: 'response_rate',
  60567.       RESPONDENTS: 'respondents'
  60568.     },
  60569.     zM = (IM(Uc = {
  60570.     }, BM.IMPRESSIONS, 'impressions_series'), IM(Uc, BM.RESPONSES, 'responses_series'), IM(Uc, BM.RESPONSE_RATE, 'response_rate_series'), IM(Uc, BM.RESPONDENTS, 'respondents_series'), Uc),
  60571.     HM = [
  60572.       BM.IMPRESSIONS,
  60573.       BM.RESPONSES,
  60574.       BM.RESPONSE_RATE
  60575.     ],
  60576.     GM = [
  60577.       BM.IMPRESSIONS,
  60578.       BM.RESPONSES,
  60579.       BM.RESPONDENTS,
  60580.       BM.RESPONSE_RATE
  60581.     ],
  60582.     VM = (IM(Uc = {
  60583.     }, BM.IMPRESSIONS, '#F66B1D'), IM(Uc, BM.RESPONSES, '#2E9FFF'), IM(Uc, BM.RESPONSE_RATE, '#3DC51B'), IM(Uc, BM.RESPONDENTS, '#FF006E'), Uc),
  60584.     WM = [
  60585.       '#FF006E',
  60586.       '#FFBE0C',
  60587.       '#3A86FE',
  60588.       '#D0D0DA'
  60589.     ],
  60590.     YM = (IM(Uc = {
  60591.     }, BM.IMPRESSIONS, 'Impressions'), IM(Uc, BM.RESPONSES, 'Responses'), IM(Uc, BM.RESPONSE_RATE, 'Response Rate'), IM(Uc, BM.RESPONDENTS, 'Respondents'), Uc),
  60592.     QM = (IM(Uc = {
  60593.     }, BM.IMPRESSIONS, 'Total Impressions'), IM(Uc, BM.RESPONSES, 'Total Responses'), IM(Uc, BM.RESPONSE_RATE, 'Avg. Overall Response Rate'), IM(Uc, BM.RESPONDENTS, 'Total Respondents'), Uc),
  60594.     KM = {
  60595.       color: {
  60596.         pattern: [
  60597.           VM[BM.RESPONSES],
  60598.           VM[BM.IMPRESSIONS]
  60599.         ]
  60600.       },
  60601.       legend: {
  60602.         show: !1
  60603.       },
  60604.       padding: {
  60605.         bottom: 16,
  60606.         top: 16
  60607.       },
  60608.       axis: {
  60609.         y: {
  60610.           min: 0,
  60611.         default:
  60612.           [
  60613.             0,
  60614.             100
  60615.           ],
  60616.           padding: {
  60617.             bottom: 0,
  60618.             right: 20
  60619.           },
  60620.           tick: {
  60621.             format: function (e) {
  60622.               return e.toLocaleString(void 0, {
  60623.                 maximumFractionDigits: 0
  60624.               })
  60625.             }
  60626.           }
  60627.         },
  60628.         y2: {
  60629.           min: 0,
  60630.           max: 1,
  60631.           show: !0,
  60632.         default:
  60633.           [
  60634.             0,
  60635.             1
  60636.           ],
  60637.           tick: {
  60638.             format: TM.a
  60639.           },
  60640.           padding: {
  60641.             top: 0,
  60642.             bottom: 0
  60643.           }
  60644.         },
  60645.         x: {
  60646.           padding: {
  60647.             left: 0,
  60648.             top: 20
  60649.           },
  60650.           type: 'timeseries',
  60651.           tick: {
  60652.             culling: !0
  60653.           }
  60654.         }
  60655.       },
  60656.       grid: {
  60657.         x: {
  60658.           show: !0
  60659.         },
  60660.         y: {
  60661.           show: !0
  60662.         }
  60663.       },
  60664.       point: {
  60665.         show: !1
  60666.       },
  60667.       size: {
  60668.         height: 400
  60669.       },
  60670.       tooltip: {
  60671.         format: {
  60672.           value: function (e, t, n) {
  60673.             return n === BM.RESPONSE_RATE ? TM() (e) : e.toLocaleString()
  60674.           }
  60675.         }
  60676.       }
  60677.     },
  60678.     JM = {
  60679.       legend: {
  60680.         show: !1
  60681.       },
  60682.       size: {
  60683.         width: 100,
  60684.         height: 140
  60685.       },
  60686.       padding: {
  60687.         top: - 5,
  60688.         bottom: - 10
  60689.       },
  60690.       pie: {
  60691.         label: {
  60692.           show: !1
  60693.         }
  60694.       }
  60695.     };
  60696.     function $M(e) {
  60697.       return ($M = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  60698.         return typeof e
  60699.       }
  60700.        : function (e) {
  60701.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  60702.       }) (e)
  60703.     }
  60704.     function ZM(e) {
  60705.       return function (e) {
  60706.         if (Array.isArray(e)) return XM(e)
  60707.       }(e) || function (e) {
  60708.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  60709.       }(e) || function (e, t) {
  60710.         if (e) {
  60711.           if ('string' == typeof e) return XM(e, t);
  60712.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  60713.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? XM(e, t) : void 0
  60714.         }
  60715.       }(e) || function () {
  60716.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  60717.       }()
  60718.     }
  60719.     function XM(e, t) {
  60720.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  60721.       return a
  60722.     }
  60723.     function eB(t, e) {
  60724.       var n,
  60725.       a = Object.keys(t);
  60726.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  60727.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  60728.       })), a.push.apply(a, n)),
  60729.       a
  60730.     }
  60731.     function tB(t) {
  60732.       for (var e = 1; e < arguments.length; e++) {
  60733.         var n = null != arguments[e] ? arguments[e] : {
  60734.         };
  60735.         e % 2 ? eB(Object(n), !0).forEach(function (e) {
  60736.           sB(t, e, n[e])
  60737.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : eB(Object(n)).forEach(function (e) {
  60738.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  60739.         })
  60740.       }
  60741.       return t
  60742.     }
  60743.     function nB(e, t) {
  60744.       for (var n = 0; n < t.length; n++) {
  60745.         var a = t[n];
  60746.         a.enumerable = a.enumerable || !1,
  60747.         a.configurable = !0,
  60748.         'value' in a && (a.writable = !0),
  60749.         Object.defineProperty(e, a.key, a)
  60750.       }
  60751.     }
  60752.     function aB(e, t) {
  60753.       return (aB = Object.setPrototypeOf || function (e, t) {
  60754.         return e.__proto__ = t,
  60755.         e
  60756.       }) (e, t)
  60757.     }
  60758.     function rB(n) {
  60759.       var a = function () {
  60760.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  60761.         if (Reflect.construct.sham) return !1;
  60762.         if ('function' == typeof Proxy) return !0;
  60763.         try {
  60764.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  60765.           ], function () {
  60766.           })),
  60767.           !0
  60768.         } catch (e) {
  60769.           return !1
  60770.         }
  60771.       }();
  60772.       return function () {
  60773.         var e,
  60774.         t = iB(n);
  60775.         return e = a ? (e = iB(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  60776.         t = this,
  60777.         !(e = e) || 'object' !== $M(e) && 'function' != typeof e ? oB(t) : e
  60778.       }
  60779.     }
  60780.     function oB(e) {
  60781.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  60782.       return e
  60783.     }
  60784.     function iB(e) {
  60785.       return (iB = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  60786.         return e.__proto__ || Object.getPrototypeOf(e)
  60787.       }) (e)
  60788.     }
  60789.     function sB(e, t, n) {
  60790.       return t in e ? Object.defineProperty(e, t, {
  60791.         value: n,
  60792.         enumerable: !0,
  60793.         configurable: !0,
  60794.         writable: !0
  60795.       }) : e[t] = n,
  60796.       e
  60797.     }
  60798.     Uc = function () {
  60799.       !function (e, t) {
  60800.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  60801.         e.prototype = Object.create(t && t.prototype, {
  60802.           constructor: {
  60803.             value: e,
  60804.             writable: !0,
  60805.             configurable: !0
  60806.           }
  60807.         }),
  60808.         t && aB(e, t)
  60809.       }(o, A);
  60810.       var e,
  60811.       t,
  60812.       n,
  60813.       a = rB(o);
  60814.       function o() {
  60815.         var r;
  60816.         !function (e, t) {
  60817.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  60818.         }(this, o);
  60819.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  60820.         return sB(oB(r = a.call.apply(a, [
  60821.           this
  60822.         ].concat(t))), 'initGraph', function (e) {
  60823.           r.ref && (!r.ref.graph.parentElement.clientWidth && (e || 0) < FM ? setTimeout(r.initGraph.bind(oB(r), (e || 0) + 1), 0) : (e = r.getDateGraphData(), r.chart = Ed.a.generate(tB(tB({
  60824.           }, KM), {
  60825.           }, {
  60826.             axis: tB(tB({
  60827.             }, KM.axis), {
  60828.             }, {
  60829.               x: tB(tB({
  60830.               }, KM.axis.x), {
  60831.               }, {
  60832.                 tick: tB(tB({
  60833.                 }, KM.axis.x.tick), {
  60834.                 }, {
  60835.                   format: r.props.groupBy === LM.DAY ? '%b %d %Y' : '%b %Y'
  60836.                 })
  60837.               })
  60838.             }),
  60839.             point: tB(tB({
  60840.             }, KM.point), {
  60841.             }, {
  60842.               show: e.columns[0].length < 3
  60843.             }),
  60844.             data: e,
  60845.             bindto: r.ref.graph
  60846.           }))))
  60847.         }),
  60848.         sB(oB(r), 'getDateGraphData', function () {
  60849.           var e = r.formatDataByInterval(r.props.report[zM[BM.IMPRESSIONS]]),
  60850.           t = r.formatDataByInterval(r.props.report[zM[BM.RESPONSES]]),
  60851.           n = r.formatDataByInterval(r.props.report[zM[BM.RESPONDENTS]]),
  60852.           a = r.formatDataByInterval(r.props.report[zM[BM.RESPONSE_RATE]]);
  60853.           return {
  60854.             x: 'dates',
  60855.             xFormat: r.props.groupBy === LM.DAY ? '%Y-%m-%d' : '%Y-%m',
  60856.             columns: [
  60857.               ['dates'].concat(ZM(Object.keys(e))),
  60858.               [
  60859.                 BM.IMPRESSIONS
  60860.               ].concat(ZM(Object.values(e))),
  60861.               [
  60862.                 BM.RESPONSES
  60863.               ].concat(ZM(Object.values(t)))
  60864.             ].concat(ZM(r.props.isMultiSubmission ? [
  60865.               [BM.RESPONDENTS].concat(ZM(Object.values(n)))
  60866.             ] : [
  60867.             ]), [
  60868.               [BM.RESPONSE_RATE].concat(ZM(Object.values(a)))
  60869.             ]),
  60870.             axes: (sB(a = {
  60871.             }, BM.IMPRESSIONS, 'y'), sB(a, BM.RESPONSES, 'y'), sB(a, BM.RESPONDENTS, 'y'), sB(a, BM.RESPONSE_RATE, 'y2'), a),
  60872.             types: (sB(a = {
  60873.             }, BM.IMPRESSIONS, 'area'), sB(a, BM.RESPONSES, 'area'), sB(a, BM.RESPONDENTS, 'area'), sB(a, BM.RESPONSE_RATE, 'line'), a),
  60874.             names: YM,
  60875.             colors: VM
  60876.           }
  60877.         }),
  60878.         sB(oB(r), 'formatDataByInterval', function (e) {
  60879.           if (!e) return [];
  60880.           var a = MM[r.props.groupBy];
  60881.           return e.reduce(function (e, t) {
  60882.             var n = ct.a.utc(t[0]).format(a);
  60883.             return e[n] = e[n] ? e[n] + t[1] : t[1],
  60884.             e
  60885.           }, {
  60886.           })
  60887.         }),
  60888.         r
  60889.       }
  60890.       return e = o,
  60891.       (t = [
  60892.         {
  60893.           key: 'componentDidMount',
  60894.           value: function () {
  60895.             this.initGraph()
  60896.           }
  60897.         },
  60898.         {
  60899.           key: 'componentDidUpdate',
  60900.           value: function () {
  60901.             this.initGraph()
  60902.           }
  60903.         },
  60904.         {
  60905.           key: 'componentWillUnmount',
  60906.           value: function () {
  60907.             this.chart && (this.chart = this.chart.destroy())
  60908.           }
  60909.         },
  60910.         {
  60911.           key: 'render',
  60912.           value: function () {
  60913.             var t = this,
  60914.             n = this.props.isTotal ? QM : YM;
  60915.             return C.a.createElement('div', {
  60916.               className: 'poll-responses-chart'
  60917.             }, C.a.createElement('div', {
  60918.               className: 'poll-responses-chart__metrics'
  60919.             }, (this.props.isMultiSubmission ? GM : HM).map(function (e) {
  60920.               return C.a.createElement('div', {
  60921.                 key: e,
  60922.                 className: 'poll-responses-chart__metric'
  60923.               }, C.a.createElement('div', {
  60924.                 className: 'poll-responses-chart__metric-inner'
  60925.               }, C.a.createElement('div', {
  60926.                 className: 'poll-responses-chart__metric-name'
  60927.               }, C.a.createElement('span', {
  60928.                 className: 'poll-responses-chart__legend',
  60929.                 style: {
  60930.                   background: VM[e]
  60931.                 }
  60932.               }), n[e], 'response_rate' === e && C.a.createElement(Md, {
  60933.                 content: C.a.createElement(C.a.Fragment, null, 'The number of completions divided by the number of users who viewed or started the poll(s).'),
  60934.                 direction: 'top'
  60935.               })), C.a.createElement('div', {
  60936.                 className: 'poll-responses-chart__metric-value'
  60937.               }, function () {
  60938.                 var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0;
  60939.                 return BM.RESPONSE_RATE === (1 < arguments.length ? arguments[1] : void 0) ? TM() (e) : e.toLocaleString()
  60940.               }(t.props.report[e], e))))
  60941.             })), C.a.createElement('div', {
  60942.               className: 'poll-responses-chart__plot',
  60943.               ref: function (e) {
  60944.                 t.ref = t.ref || {
  60945.                 },
  60946.                 t.ref.graph = e
  60947.               }
  60948.             }))
  60949.           }
  60950.         }
  60951.       ]) && nB(e.prototype, t),
  60952.       n && nB(e, n),
  60953.       o
  60954.     }();
  60955.     sB(Uc, 'propTypes', {
  60956.       report: Ss.isRequired,
  60957.       groupBy: b.a.string,
  60958.       isTotal: b.a.bool,
  60959.       isMultiSubmission: b.a.bool
  60960.     }),
  60961.     sB(Uc, 'defaultProps', {
  60962.       report: {
  60963.       },
  60964.       groupBy: LM.DAY,
  60965.       isTotal: !1
  60966.     });
  60967.     var lB = Uc;
  60968.     function cB(e) {
  60969.       return (cB = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  60970.         return typeof e
  60971.       }
  60972.        : function (e) {
  60973.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  60974.       }) (e)
  60975.     }
  60976.     function uB(t, e) {
  60977.       var n,
  60978.       a = Object.keys(t);
  60979.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  60980.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  60981.       })), a.push.apply(a, n)),
  60982.       a
  60983.     }
  60984.     function pB(t) {
  60985.       for (var e = 1; e < arguments.length; e++) {
  60986.         var n = null != arguments[e] ? arguments[e] : {
  60987.         };
  60988.         e % 2 ? uB(Object(n), !0).forEach(function (e) {
  60989.           yB(t, e, n[e])
  60990.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : uB(Object(n)).forEach(function (e) {
  60991.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  60992.         })
  60993.       }
  60994.       return t
  60995.     }
  60996.     function dB(e, t) {
  60997.       for (var n = 0; n < t.length; n++) {
  60998.         var a = t[n];
  60999.         a.enumerable = a.enumerable || !1,
  61000.         a.configurable = !0,
  61001.         'value' in a && (a.writable = !0),
  61002.         Object.defineProperty(e, a.key, a)
  61003.       }
  61004.     }
  61005.     function mB(e, t) {
  61006.       return (mB = Object.setPrototypeOf || function (e, t) {
  61007.         return e.__proto__ = t,
  61008.         e
  61009.       }) (e, t)
  61010.     }
  61011.     function fB(n) {
  61012.       var a = function () {
  61013.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  61014.         if (Reflect.construct.sham) return !1;
  61015.         if ('function' == typeof Proxy) return !0;
  61016.         try {
  61017.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  61018.           ], function () {
  61019.           })),
  61020.           !0
  61021.         } catch (e) {
  61022.           return !1
  61023.         }
  61024.       }();
  61025.       return function () {
  61026.         var e,
  61027.         t = gB(n);
  61028.         return e = a ? (e = gB(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  61029.         t = this,
  61030.         !(e = e) || 'object' !== cB(e) && 'function' != typeof e ? hB(t) : e
  61031.       }
  61032.     }
  61033.     function hB(e) {
  61034.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  61035.       return e
  61036.     }
  61037.     function gB(e) {
  61038.       return (gB = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  61039.         return e.__proto__ || Object.getPrototypeOf(e)
  61040.       }) (e)
  61041.     }
  61042.     function yB(e, t, n) {
  61043.       return t in e ? Object.defineProperty(e, t, {
  61044.         value: n,
  61045.         enumerable: !0,
  61046.         configurable: !0,
  61047.         writable: !0
  61048.       }) : e[t] = n,
  61049.       e
  61050.     }
  61051.     Uc = function () {
  61052.       !function (e, t) {
  61053.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  61054.         e.prototype = Object.create(t && t.prototype, {
  61055.           constructor: {
  61056.             value: e,
  61057.             writable: !0,
  61058.             configurable: !0
  61059.           }
  61060.         }),
  61061.         t && mB(e, t)
  61062.       }(o, A);
  61063.       var e,
  61064.       t,
  61065.       n,
  61066.       r = fB(o);
  61067.       function o() {
  61068.         var t;
  61069.         !function (e, t) {
  61070.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  61071.         }(this, o);
  61072.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  61073.         return yB(hB(t = r.call.apply(r, [
  61074.           this
  61075.         ].concat(n))), 'initGraph', function (e) {
  61076.           t.ref && (!t.ref.graph.parentElement.clientWidth && (e || 0) < FM ? setTimeout(t.initGraph.bind(hB(t), (e || 0) + 1), 0) : t.chart = Ed.a.generate(pB(pB({
  61077.           }, JM), {
  61078.           }, {
  61079.             bindto: t.ref.graph,
  61080.             data: t.getDateGraphData()
  61081.           })))
  61082.         }),
  61083.         yB(hB(t), 'getDateGraphData', function () {
  61084.           return {
  61085.             type: 'pie',
  61086.             columns: t.props.question.answers.map(function (e, t) {
  61087.               return ['' + (t + 1),
  61088.               e.count]
  61089.             }),
  61090.             names: t.props.question.answers.reduce(function (e, t, n) {
  61091.               return pB(pB({
  61092.               }, e), {
  61093.               }, yB({
  61094.               }, '' + (n + 1), t.text))
  61095.             }, {
  61096.             }),
  61097.             colors: WM.reduce(function (e, t, n) {
  61098.               return pB(pB({
  61099.               }, e), {
  61100.               }, yB({
  61101.               }, '' + (n + 1), t))
  61102.             }, {
  61103.             })
  61104.           }
  61105.         }),
  61106.         t
  61107.       }
  61108.       return e = o,
  61109.       (t = [
  61110.         {
  61111.           key: 'componentDidMount',
  61112.           value: function () {
  61113.             this.initGraph()
  61114.           }
  61115.         },
  61116.         {
  61117.           key: 'componentDidUpdate',
  61118.           value: function () {
  61119.             this.initGraph()
  61120.           }
  61121.         },
  61122.         {
  61123.           key: 'componentWillUnmount',
  61124.           value: function () {
  61125.             this.chart && (this.chart = this.chart.destroy())
  61126.           }
  61127.         },
  61128.         {
  61129.           key: 'render',
  61130.           value: function () {
  61131.             var t = this;
  61132.             return C.a.createElement('div', {
  61133.               className: 'poll-breakdown-chart'
  61134.             }, C.a.createElement('div', {
  61135.               className: 'poll-breakdown-chart__header'
  61136.             }, C.a.createElement('div', {
  61137.               className: 'poll-breakdown-chart__title'
  61138.             }, 'Question ', this.props.index), C.a.createElement('div', {
  61139.               className: 'poll-breakdown-chart__question'
  61140.             }, this.props.question.text), C.a.createElement('span', {
  61141.               className: 'poll-breakdown-chart__answers-count'
  61142.             }, this.props.totalResponses.toLocaleString()), ' ', C.a.createElement('span', {
  61143.               className: 'poll-breakdown-chart__answers-label'
  61144.             }, 'answers')), C.a.createElement('div', {
  61145.               className: 'poll-breakdown-chart__plot',
  61146.               ref: function (e) {
  61147.                 t.ref = t.ref || {
  61148.                 },
  61149.                 t.ref.graph = e
  61150.               }
  61151.             }), C.a.createElement('div', {
  61152.               className: 'poll-breakdown-chart__legend'
  61153.             }, this.props.question.answers.map(function (e, t) {
  61154.               return C.a.createElement('div', {
  61155.                 key: t,
  61156.                 className: 'poll-breakdown-chart__legend-item'
  61157.               }, C.a.createElement('span', {
  61158.                 className: 'poll-breakdown-chart__legend-point',
  61159.                 style: {
  61160.                   background: WM[t]
  61161.                 }
  61162.               }), C.a.createElement('span', {
  61163.                 className: 'poll-breakdown-chart__legend-text'
  61164.               }, e.text), C.a.createElement('span', {
  61165.                 className: 'poll-breakdown-chart__legend-count'
  61166.               }, e.count.toLocaleString()))
  61167.             })))
  61168.           }
  61169.         }
  61170.       ]) && dB(e.prototype, t),
  61171.       n && dB(e, n),
  61172.       o
  61173.     }();
  61174.     yB(Uc, 'propTypes', {
  61175.       index: b.a.number,
  61176.       question: b.a.shape({
  61177.         text: b.a.string,
  61178.         answers: b.a.arrayOf(b.a.shape({
  61179.           text: b.a.string,
  61180.           count: b.a.number
  61181.         }))
  61182.       }),
  61183.       totalResponses: b.a.number
  61184.     });
  61185.     var bB = Uc;
  61186.     function vB(e) {
  61187.       return (vB = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  61188.         return typeof e
  61189.       }
  61190.        : function (e) {
  61191.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  61192.       }) (e)
  61193.     }
  61194.     function _B(t, e) {
  61195.       var n,
  61196.       a = Object.keys(t);
  61197.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  61198.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  61199.       })), a.push.apply(a, n)),
  61200.       a
  61201.     }
  61202.     function EB(t) {
  61203.       for (var e = 1; e < arguments.length; e++) {
  61204.         var n = null != arguments[e] ? arguments[e] : {
  61205.         };
  61206.         e % 2 ? _B(Object(n), !0).forEach(function (e) {
  61207.           RB(t, e, n[e])
  61208.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : _B(Object(n)).forEach(function (e) {
  61209.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  61210.         })
  61211.       }
  61212.       return t
  61213.     }
  61214.     function OB(e) {
  61215.       return function (e) {
  61216.         if (Array.isArray(e)) return SB(e)
  61217.       }(e) || function (e) {
  61218.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  61219.       }(e) || function (e, t) {
  61220.         if (e) {
  61221.           if ('string' == typeof e) return SB(e, t);
  61222.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  61223.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? SB(e, t) : void 0
  61224.         }
  61225.       }(e) || function () {
  61226.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  61227.       }()
  61228.     }
  61229.     function SB(e, t) {
  61230.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  61231.       return a
  61232.     }
  61233.     function wB(e, t) {
  61234.       for (var n = 0; n < t.length; n++) {
  61235.         var a = t[n];
  61236.         a.enumerable = a.enumerable || !1,
  61237.         a.configurable = !0,
  61238.         'value' in a && (a.writable = !0),
  61239.         Object.defineProperty(e, a.key, a)
  61240.       }
  61241.     }
  61242.     function PB(e, t) {
  61243.       return (PB = Object.setPrototypeOf || function (e, t) {
  61244.         return e.__proto__ = t,
  61245.         e
  61246.       }) (e, t)
  61247.     }
  61248.     function kB(n) {
  61249.       var a = function () {
  61250.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  61251.         if (Reflect.construct.sham) return !1;
  61252.         if ('function' == typeof Proxy) return !0;
  61253.         try {
  61254.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  61255.           ], function () {
  61256.           })),
  61257.           !0
  61258.         } catch (e) {
  61259.           return !1
  61260.         }
  61261.       }();
  61262.       return function () {
  61263.         var e,
  61264.         t = CB(n);
  61265.         return e = a ? (e = CB(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  61266.         t = this,
  61267.         !(e = e) || 'object' !== vB(e) && 'function' != typeof e ? NB(t) : e
  61268.       }
  61269.     }
  61270.     function NB(e) {
  61271.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  61272.       return e
  61273.     }
  61274.     function CB(e) {
  61275.       return (CB = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  61276.         return e.__proto__ || Object.getPrototypeOf(e)
  61277.       }) (e)
  61278.     }
  61279.     function RB(e, t, n) {
  61280.       return t in e ? Object.defineProperty(e, t, {
  61281.         value: n,
  61282.         enumerable: !0,
  61283.         configurable: !0,
  61284.         writable: !0
  61285.       }) : e[t] = n,
  61286.       e
  61287.     }
  61288.     Uc = function () {
  61289.       !function (e, t) {
  61290.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  61291.         e.prototype = Object.create(t && t.prototype, {
  61292.           constructor: {
  61293.             value: e,
  61294.             writable: !0,
  61295.             configurable: !0
  61296.           }
  61297.         }),
  61298.         t && PB(e, t)
  61299.       }(o, A);
  61300.       var e,
  61301.       t,
  61302.       n,
  61303.       a = kB(o);
  61304.       function o() {
  61305.         var r;
  61306.         !function (e, t) {
  61307.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  61308.         }(this, o);
  61309.         for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
  61310.         return RB(NB(r = a.call.apply(a, [
  61311.           this
  61312.         ].concat(t))), 'state', {
  61313.           pollId: + ('' + (r.props.params.pollId || qM)),
  61314.           groupBy: LM.DAY,
  61315.           startDate: ct() ().utc().subtract(1, 'month'),
  61316.           endDate: ct() ().utc()
  61317.         }),
  61318.         RB(NB(r), 'handlePollChange', function (e) {
  61319.           e = e.target.value;
  61320.           r.setState({
  61321.             pollId: e
  61322.           }, r.fetchReport),
  61323.           r.props.history.push({
  61324.             pathname: ''.concat(Wc.INSIGHTS).concat(e === qM ? '' : ''.concat(e))
  61325.           })
  61326.         }),
  61327.         RB(NB(r), 'onGroupChange', function (e) {
  61328.           r.setState({
  61329.             groupBy: e
  61330.           }, r.fetchReport)
  61331.         }),
  61332.         RB(NB(r), 'onDateChange', function (e, t) {
  61333.           r.setState({
  61334.             startDate: e,
  61335.             endDate: t
  61336.           }, r.fetchReport)
  61337.         }),
  61338.         RB(NB(r), 'getResponsesReportData', function () {
  61339.           return 1 === r.state.pollId ? r.props.totalResponsesReport : r.props.pollResponsesReport
  61340.         }),
  61341.         RB(NB(r), 'fetchReport', function () {
  61342.           return r.state.pollId === qM ? r.fetchTotalReport() : r.fetchPollReport()
  61343.         }),
  61344.         RB(NB(r), 'fetchTotalReport', function () {
  61345.           return r.props.fetchTotalResponsesReport({
  61346.             start: r.state.startDate.toISOString(),
  61347.             end: r.state.endDate.endOf('day').toISOString(),
  61348.             agg_period: UM[r.state.groupBy]
  61349.           })
  61350.         }),
  61351.         RB(NB(r), 'fetchPollReport', function () {
  61352.           var e = r.state,
  61353.           t = e.groupBy,
  61354.           n = e.endDate,
  61355.           a = e.pollId,
  61356.           e = e.startDate.toISOString(),
  61357.           n = n.endOf('day').toISOString();
  61358.           r.props.pollDetails[a] || r.props.fetchPollDetails(a),
  61359.           r.props.fetchPollResponsesReport({
  61360.             agg_period: UM[t],
  61361.             start: e,
  61362.             end: n,
  61363.             pollId: a
  61364.           }),
  61365.           r.props.fetchPollBreakdownReport({
  61366.             start: e,
  61367.             end: n,
  61368.             pollId: a
  61369.           })
  61370.         }),
  61371.         RB(NB(r), 'isFetching', function () {
  61372.           return r.props.isFetching || r.props.isFetchingDetails
  61373.         }),
  61374.         RB(NB(r), 'getExportUrl', function () {
  61375.           var e = io.a.getURL('polls/export.xlsx');
  61376.           return Eo() (e, {
  61377.             api_key: pt.a.keys.api,
  61378.             forum: pt.a.currentForum,
  61379.             start: r.state.startDate.toISOString(),
  61380.             end: r.state.endDate.endOf('day').toISOString(),
  61381.             pollId: r.state.pollId
  61382.           })
  61383.         }),
  61384.         r
  61385.       }
  61386.       return e = o,
  61387.       (t = [
  61388.         {
  61389.           key: 'componentDidMount',
  61390.           value: function () {
  61391.             this.props.pollsOrgCurrentPackage || this.props.fetchSubscription(),
  61392.             this.fetchReport(),
  61393.             this.props.resetList(),
  61394.             this.props.fetchPolls({
  61395.               limit: 25
  61396.             })
  61397.           }
  61398.         },
  61399.         {
  61400.           key: 'componentWillUnmount',
  61401.           value: function () {
  61402.             window.removeEventListener('scroll', this.onScroll)
  61403.           }
  61404.         },
  61405.         {
  61406.           key: 'render',
  61407.           value: function () {
  61408.             var n = this,
  61409.             e = this.props.organization && this.props.organization.pollsActivationDate,
  61410.             t = this.props.organization && Ur.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET.has(this.props.organization.pollsSubscriptionStatus);
  61411.             if (!e) return C.a.createElement(Cm, {
  61412.               isPolls: !0,
  61413.               organization: this.props.selection.organization
  61414.             });
  61415.             if (this.isFetching()) return C.a.createElement(Ji, null);
  61416.             if (!t) return C.a.createElement(Mk, {
  61417.               organization: this.props.organization
  61418.             });
  61419.             var a = this.state.pollId === qM,
  61420.             r = !!(this.state.pollId && this.props.pollDetails[this.state.pollId] && 0 < this.props.pollDetails[this.state.pollId].voteInterval),
  61421.             e = [
  61422.               {
  61423.                 key: qM,
  61424.                 value: qM,
  61425.                 label: 'All polls'
  61426.               }
  61427.             ].concat(OB(this.props.polls.map(function (e) {
  61428.               return {
  61429.                 key: e.id,
  61430.                 value: e.id,
  61431.                 label: e.name
  61432.               }
  61433.             }))),
  61434.             t = a && 0 < this.props.totalResponsesReport.impressions || !a && 0 < this.props.pollResponsesReport.impressions ? C.a.createElement('div', {
  61435.               className: 'polls-analytics__section-content'
  61436.             }, C.a.createElement(lB, {
  61437.               groupBy: this.state.groupBy,
  61438.               report: a ? this.props.totalResponsesReport : this.props.pollResponsesReport,
  61439.               isTotal: a,
  61440.               isMultiSubmission: r
  61441.             })) : C.a.createElement(tM, {
  61442.               noPollData: !0
  61443.             }),
  61444.             r = !this.isFetching() && !a && 0 < this.props.pollBreakdownReport.questions.length;
  61445.             return C.a.createElement('div', {
  61446.               className: 'content__wrap spacing-bottom-double polls-analytics'
  61447.             }, C.a.createElement('header', {
  61448.               className: 'polls__section-header'
  61449.             }, C.a.createElement('h2', {
  61450.               className: 'text-largest text-gray-darker'
  61451.             }, 'Poll Insights')), C.a.createElement('div', {
  61452.               className: 'polls-analytics__poll-selector'
  61453.             }, C.a.createElement(Mf, {
  61454.               name: 'poll-id',
  61455.               label: 'Select poll',
  61456.               value: this.state.pollId,
  61457.               options: e,
  61458.               placeholder: 'All polls',
  61459.               onChange: this.handlePollChange,
  61460.               idNamespace: this.constructor.displayName,
  61461.               readOnly: this.props.isFetchingPolls,
  61462.               disabled: !e.length || this.props.isFetchingPolls
  61463.             })), C.a.createElement(C.a.Fragment, null, C.a.createElement('section', {
  61464.               className: 'polls-analytics__section'
  61465.             }, C.a.createElement('div', {
  61466.               className: 'polls-analytics__section-header'
  61467.             }, C.a.createElement('div', {
  61468.               className: 'polls-analytics__section-title'
  61469.             }, 'Engagement Data Overview'), C.a.createElement('div', {
  61470.               className: 'polls-analytics__filters'
  61471.             }, !a && C.a.createElement('div', {
  61472.               className: 'polls-analytics__filters-item'
  61473.             }, C.a.createElement('a', {
  61474.               href: this.getExportUrl(),
  61475.               className: 'polls-analytics__button -button -right text-gray-dark text-semibold'
  61476.             }, C.a.createElement('span', {
  61477.               className: 'icon-download text-large spacing-right text-gray'
  61478.             }), 'Export Data')), C.a.createElement('div', {
  61479.               className: 'polls-analytics__filters-item'
  61480.             }, C.a.createElement(Zp, {
  61481.               dateWrapperClass: 'card__header-datepicker',
  61482.               minDate: ct() ().utc().subtract(1, 'year'),
  61483.               maxDate: ct() ().utc(),
  61484.               startDate: this.state.startDate,
  61485.               endDate: this.state.endDate,
  61486.               onDateChange: this.onDateChange,
  61487.               group: this.state.groupBy,
  61488.               onGroupChange: this.onGroupChange
  61489.             })))), this.isFetching() ? C.a.createElement(Ji, null) : t), r && C.a.createElement('section', {
  61490.               className: 'polls-analytics__section'
  61491.             }, C.a.createElement('div', {
  61492.               className: 'polls-analytics__section-header'
  61493.             }, C.a.createElement('div', {
  61494.               className: 'polls-analytics__section-title'
  61495.             }, 'Responses: Answers Breakdown')), C.a.createElement('div', {
  61496.               className: 'polls-analytics__section-content poll-breakdown'
  61497.             }, this.props.pollBreakdownReport.questions.map(function (e, t) {
  61498.               return C.a.createElement(bB, {
  61499.                 key: t,
  61500.                 index: t + 1,
  61501.                 question: e,
  61502.                 totalResponses: n.props.pollBreakdownReport.total_responses
  61503.               })
  61504.             })))))
  61505.           }
  61506.         }
  61507.       ]) && wB(e.prototype, t),
  61508.       n && wB(e, n),
  61509.       o
  61510.     }();
  61511.     RB(Uc, 'propTypes', {
  61512.       isFetching: b.a.bool,
  61513.       isFetchingDetails: b.a.bool,
  61514.       totalResponsesReport: Ss.isRequired,
  61515.       pollResponsesReport: Ss.isRequired,
  61516.       pollBreakdownReport: m.isRequired,
  61517.       pollDetails: Mc.isRequired,
  61518.       fetchTotalResponsesReport: b.a.func.isRequired,
  61519.       fetchPollResponsesReport: b.a.func.isRequired,
  61520.       fetchPollBreakdownReport: b.a.func.isRequired,
  61521.       fetchPollDetails: b.a.func.isRequired,
  61522.       isFetchingPolls: b.a.bool.isRequired,
  61523.       polls: qc.isRequired,
  61524.       fetchPolls: b.a.func.isRequired,
  61525.       resetList: b.a.func.isRequired,
  61526.       organization: b.a.shape({
  61527.         id: b.a.number.isRequired,
  61528.         slug: b.a.string.isRequired,
  61529.         pollsActivationDate: b.a.string
  61530.       })
  61531.     });
  61532.     var xB = Object(u.connect) (function (e) {
  61533.       var t = e.pollsList,
  61534.       n = e.selection,
  61535.       a = e.subscription;
  61536.       return EB(EB({
  61537.       }, e.pollAnalytics), {
  61538.       }, {
  61539.         polls: t.polls,
  61540.         isFetchingPolls: t.isFetching,
  61541.         organization: n.organization,
  61542.         pollsOrgCurrentPackage: a.pollsOrgCurrentPackage
  61543.       })
  61544.     }, {
  61545.       fetchTotalResponsesReport: function (n) {
  61546.         return function (t, e) {
  61547.           jM(n, e(), function (e) {
  61548.             return t({
  61549.               type: de.isFetching
  61550.             }),
  61551.             io.a.call('polls/statsTimelines', e).success(function (e) {
  61552.               t({
  61553.                 type: de.onFetchTotalResponsesReport,
  61554.                 response: e.response
  61555.               })
  61556.             })
  61557.           })
  61558.         }
  61559.       },
  61560.       fetchPollResponsesReport: function (n) {
  61561.         return function (t, e) {
  61562.           jM(n, e(), function (e) {
  61563.             return t({
  61564.               type: de.isFetching
  61565.             }),
  61566.             io.a.call('polls/statsTimelines', e).success(function (e) {
  61567.               t({
  61568.                 type: de.onFetchPollResponsesReport,
  61569.                 response: e.response
  61570.               })
  61571.             })
  61572.           })
  61573.         }
  61574.       },
  61575.       fetchPollBreakdownReport: function (n) {
  61576.         return function (t, e) {
  61577.           jM(n, e(), function (e) {
  61578.             return t({
  61579.               type: de.isFetching
  61580.             }),
  61581.             io.a.call('polls/statsBreakdown', e).success(function (e) {
  61582.               t({
  61583.                 type: de.onFetchPollBreakdownReport,
  61584.                 response: e.response
  61585.               })
  61586.             })
  61587.           })
  61588.         }
  61589.       },
  61590.       fetchPollDetails: function (n) {
  61591.         return function (t, e) {
  61592.           jM({
  61593.             pollId: n
  61594.           }, e(), function (e) {
  61595.             return t({
  61596.               type: de.isFetchingDetails
  61597.             }),
  61598.             io.a.call('polls/details', e).success(function (e) {
  61599.               t({
  61600.                 type: de.onFetchPollDetails,
  61601.                 response: e.response
  61602.               })
  61603.             })
  61604.           })
  61605.         }
  61606.       },
  61607.       fetchPolls: Wi.fetchPolls,
  61608.       resetList: Wi.resetList,
  61609.       fetchSubscription: Hl
  61610.     }) (Fo() (Uc));
  61611.     function AB(e) {
  61612.       return (AB = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  61613.         return typeof e
  61614.       }
  61615.        : function (e) {
  61616.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  61617.       }) (e)
  61618.     }
  61619.     function DB(e, t) {
  61620.       for (var n = 0; n < t.length; n++) {
  61621.         var a = t[n];
  61622.         a.enumerable = a.enumerable || !1,
  61623.         a.configurable = !0,
  61624.         'value' in a && (a.writable = !0),
  61625.         Object.defineProperty(e, a.key, a)
  61626.       }
  61627.     }
  61628.     function jB(e, t) {
  61629.       return (jB = Object.setPrototypeOf || function (e, t) {
  61630.         return e.__proto__ = t,
  61631.         e
  61632.       }) (e, t)
  61633.     }
  61634.     function TB(n) {
  61635.       var a = function () {
  61636.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  61637.         if (Reflect.construct.sham) return !1;
  61638.         if ('function' == typeof Proxy) return !0;
  61639.         try {
  61640.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  61641.           ], function () {
  61642.           })),
  61643.           !0
  61644.         } catch (e) {
  61645.           return !1
  61646.         }
  61647.       }();
  61648.       return function () {
  61649.         var e,
  61650.         t = qB(n);
  61651.         return e = a ? (e = qB(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  61652.         t = this,
  61653.         !(e = e) || 'object' !== AB(e) && 'function' != typeof e ? IB(t) : e
  61654.       }
  61655.     }
  61656.     function IB(e) {
  61657.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  61658.       return e
  61659.     }
  61660.     function qB(e) {
  61661.       return (qB = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  61662.         return e.__proto__ || Object.getPrototypeOf(e)
  61663.       }) (e)
  61664.     }
  61665.     function FB(e, t, n) {
  61666.       return t in e ? Object.defineProperty(e, t, {
  61667.         value: n,
  61668.         enumerable: !0,
  61669.         configurable: !0,
  61670.         writable: !0
  61671.       }) : e[t] = n,
  61672.       e
  61673.     }
  61674.     function LB(e) {
  61675.       return e.orgCurrentPackage && e.orgCurrentPackage.id !== Ur.DISQUS_BASIC_PACKAGE_ID
  61676.     }
  61677.     Wi = {
  61678.       zone: 'install',
  61679.       section: 'plan'
  61680.     },
  61681.     Uc = function () {
  61682.       !function (e, t) {
  61683.         if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  61684.         e.prototype = Object.create(t && t.prototype, {
  61685.           constructor: {
  61686.             value: e,
  61687.             writable: !0,
  61688.             configurable: !0
  61689.           }
  61690.         }),
  61691.         t && jB(e, t)
  61692.       }(o, A);
  61693.       var e,
  61694.       t,
  61695.       n,
  61696.       r = TB(o);
  61697.       function o() {
  61698.         var t;
  61699.         !function (e, t) {
  61700.           if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  61701.         }(this, o);
  61702.         for (var e = arguments.length, n = Array(e), a = 0; a < e; a++) n[a] = arguments[a];
  61703.         return FB(IB(t = r.call.apply(r, [
  61704.           this
  61705.         ].concat(n))), 'advanceStep', function () {
  61706.           t.props.history.push(ho.getRoute('/install/welcome/'))
  61707.         }),
  61708.         FB(IB(t), 'trackButtonClick', function (e) {
  61709.           return t.props.emitTrackingEvent({
  61710.             verb: 'click',
  61711.             object_type: 'button',
  61712.             object_id: e && e.id !== Ur.DISQUS_BASIC_PLAN_ID ? e.id : 'basic'
  61713.           })
  61714.         }),
  61715.         FB(IB(t), 'handleSubscribe', function (e) {
  61716.           t.trackButtonClick(e),
  61717.           t.props.onSubscribe(e, t.props.history, ''.concat(window.location.origin, '/admin/install/welcome'))
  61718.         }),
  61719.         t
  61720.       }
  61721.       return e = o,
  61722.       (t = [
  61723.         {
  61724.           key: 'componentDidMount',
  61725.           value: function () {
  61726.             this.props.fetchSubscription(),
  61727.             LB(this.props) && this.advanceStep()
  61728.           }
  61729.         },
  61730.         {
  61731.           key: 'componentWillReceiveProps',
  61732.           value: function (e) {
  61733.             LB(e) && this.advanceStep()
  61734.           }
  61735.         },
  61736.         {
  61737.           key: 'render',
  61738.           value: function () {
  61739.             return C.a.createElement('section', null, C.a.createElement('div', {
  61740.               className: 'content__wrap'
  61741.             }, C.a.createElement('header', {
  61742.               className: 'basic-acknowledge'
  61743.             }, C.a.createElement('img', {
  61744.               src: '//c.disquscdn.com/next/current/publisher-admin/assets/img/disqus-logo-blue-transparent.png',
  61745.               width: '174',
  61746.               height: '32',
  61747.               alt: 'Disqus',
  61748.               title: 'Disqus'
  61749.             }), C.a.createElement('h2', {
  61750.               className: 'basic-acknowledge__header'
  61751.             }, 'Confirm your Plan'), C.a.createElement('div', {
  61752.               className: 'basic-acknowledge__body'
  61753.             }, C.a.createElement('p', null, 'You\'ve selected a plan that is free and ad-supported. We place every ad-supported site under review.'), C.a.createElement('p', null, 'To use our free-plan, sites must have ads properly enabled  and viewable on page load and meet the quality standards of the Disqus advertising network.'), C.a.createElement('p', null, 'For more info on eligiblity requirements, ', C.a.createElement('a', {
  61754.               href: 'https://help.disqus.com/en/articles/4555311-disqus-advertising-qualification'
  61755.             }, 'see here'), '.')), C.a.createElement('button', {
  61756.               className: 'basic-acknowledge__button',
  61757.               onClick: this.advanceStep
  61758.             }, 'Acknowledge'), C.a.createElement('div', {
  61759.               className: 'basic-acknowledge__separator'
  61760.             }, 'or'), C.a.createElement('div', {
  61761.               className: 'basic-acknowledge__plan-text'
  61762.             }, 'If your site won\'t be eligible for our free, ad-supported plan, you\'ll need to select a paid plan below:')), C.a.createElement('section', {
  61763.               className: 'settings__content'
  61764.             }, this.props.orgPackages ? C.a.createElement(WT.a, {
  61765.               packages: this.props.orgPackages.reduce(function (e, t) {
  61766.                 return e[t.id] = t,
  61767.                 e
  61768.               }, {
  61769.               }),
  61770.               onSubscribe: this.handleSubscribe,
  61771.               onStartTrial: this.handleSubscribe,
  61772.               newSubscriptionFlow: Object(Tl.isNewFlow) ('cc_v2', {
  61773.                 orgId: (this.props.selection.organization || {
  61774.                 }).id
  61775.               }),
  61776.               hideAdSupported: !0
  61777.             }) : C.a.createElement(Qi, null))))
  61778.           }
  61779.         }
  61780.       ]) && DB(e.prototype, t),
  61781.       n && DB(e, n),
  61782.       o
  61783.     }();
  61784.     FB(Uc, 'propTypes', {
  61785.       history: b.a.shape({
  61786.         push: b.a.func.isRequired
  61787.       }).isRequired,
  61788.       orgBilling: Ur.ORG_BILLING_SHAPE,
  61789.       orgCurrentPackage: Ur.PACKAGE_SHAPE,
  61790.       orgPackages: b.a.arrayOf(Ur.PACKAGE_SHAPE),
  61791.       onSubscribe: b.a.func.isRequired,
  61792.       selection: ht.isRequired,
  61793.       emitTrackingEvent: b.a.func.isRequired,
  61794.       emitDefaultViewEvent: b.a.func.isRequired
  61795.     });
  61796.     Ni = Object(u.connect) (function (e) {
  61797.       var t = e.subscription;
  61798.       return {
  61799.         orgBilling: t.orgBilling,
  61800.         orgCurrentPackage: t.orgCurrentPackage,
  61801.         orgPackages: t.orgPackages,
  61802.         selection: e.selection
  61803.       }
  61804.     }, {
  61805.       onSubscribe: Wl,
  61806.       fetchSubscription: Hl,
  61807.       emitTrackingEvent: Xo(Wi),
  61808.       emitDefaultViewEvent: ei(Wi)
  61809.     }) (Ni.a.attachDrivers(Fo() (Uc), [
  61810.       bc
  61811.     ]));
  61812.     function UB(e) {
  61813.       return (UB = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  61814.         return typeof e
  61815.       }
  61816.        : function (e) {
  61817.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  61818.       }) (e)
  61819.     }
  61820.     function MB(e, t, n) {
  61821.       return t in e ? Object.defineProperty(e, t, {
  61822.         value: n,
  61823.         enumerable: !0,
  61824.         configurable: !0,
  61825.         writable: !0
  61826.       }) : e[t] = n,
  61827.       e
  61828.     }
  61829.     function BB() {
  61830.       return (BB = Object.assign || function (e) {
  61831.         for (var t = 1; t < arguments.length; t++) {
  61832.           var n,
  61833.           a = arguments[t];
  61834.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  61835.         }
  61836.         return e
  61837.       }).apply(this, arguments)
  61838.     }
  61839.     function zB(e, t) {
  61840.       for (var n = 0; n < t.length; n++) {
  61841.         var a = t[n];
  61842.         a.enumerable = a.enumerable || !1,
  61843.         a.configurable = !0,
  61844.         'value' in a && (a.writable = !0),
  61845.         Object.defineProperty(e, a.key, a)
  61846.       }
  61847.     }
  61848.     function HB(e, t) {
  61849.       return (HB = Object.setPrototypeOf || function (e, t) {
  61850.         return e.__proto__ = t,
  61851.         e
  61852.       }) (e, t)
  61853.     }
  61854.     function GB(n) {
  61855.       var a = function () {
  61856.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  61857.         if (Reflect.construct.sham) return !1;
  61858.         if ('function' == typeof Proxy) return !0;
  61859.         try {
  61860.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  61861.           ], function () {
  61862.           })),
  61863.           !0
  61864.         } catch (e) {
  61865.           return !1
  61866.         }
  61867.       }();
  61868.       return function () {
  61869.         var e,
  61870.         t = VB(n);
  61871.         return e = a ? (e = VB(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  61872.         t = this,
  61873.         !(e = e) || 'object' !== UB(e) && 'function' != typeof e ? function (e) {
  61874.           if (void 0 !== e) return e;
  61875.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  61876.         }(t) : e
  61877.       }
  61878.     }
  61879.     function VB(e) {
  61880.       return (VB = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  61881.         return e.__proto__ || Object.getPrototypeOf(e)
  61882.       }) (e)
  61883.     }
  61884.     pt.a.debug && yo.a.forceFeature('polls_pub_admin');
  61885.     Fo = window.document.getElementById('app-root');
  61886.     _.a.setAppElement('#app-root');
  61887.     var Uc = Object(v.useRouterHistory) (o.createHistory) ({
  61888.       basename: '/admin'
  61889.     }),
  61890.     o = ro(),
  61891.     ro = o.getState(),
  61892.     WB = ro.selection,
  61893.     YB = ro.saasFeatures;
  61894.     o.dispatch(so.fetch());
  61895.     var so = window.document.getElementsByClassName('admin_content') [0] || window.document.querySelector('article#error'),
  61896.     QB = {
  61897.       __html: so && so.innerHTML
  61898.     },
  61899.     KB = ho.getAdminPath(window.location.pathname),
  61900.     so = window.document.title;
  61901.     function JB(i, a) {
  61902.       return function (e, t) {
  61903.         var o,
  61904.         n;
  61905.         ho.getAdminPath(e.location.basename + e.location.pathname) === KB ? (o = 'admin_content '.concat(KB.replace(/\//g, '_')), n = function () {
  61906.           !function (e, t) {
  61907.             if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  61908.             e.prototype = Object.create(t && t.prototype, {
  61909.               constructor: {
  61910.                 value: e,
  61911.                 writable: !0,
  61912.                 configurable: !0
  61913.               }
  61914.             }),
  61915.             t && HB(e, t)
  61916.           }(r, A);
  61917.           var e,
  61918.           t,
  61919.           n,
  61920.           a = GB(r);
  61921.           function r() {
  61922.             return function (e, t) {
  61923.               if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  61924.             }(this, r),
  61925.             a.apply(this, arguments)
  61926.           }
  61927.           return e = r,
  61928.           (t = [
  61929.             {
  61930.               key: 'componentDidMount',
  61931.               value: function () {
  61932.                 i && i()
  61933.               }
  61934.             },
  61935.             {
  61936.               key: 'render',
  61937.               value: function () {
  61938.                 return C.a.createElement('div', {
  61939.                   className: o,
  61940.                   dangerouslySetInnerHTML: QB
  61941.                 })
  61942.               }
  61943.             }
  61944.           ]) && zB(e.prototype, t),
  61945.           n && zB(e, n),
  61946.           r
  61947.         }(), t(null, function (e) {
  61948.           return a ? C.a.createElement(a, e, C.a.createElement(n, null)) : C.a.createElement(n, null)
  61949.         })) : t(null, zw.a)
  61950.       }
  61951.     }
  61952.     function $B(r) {
  61953.       return function (e, t) {
  61954.         var n = ho.getAdminPath(e.location.basename + e.location.pathname),
  61955.         a = fN.supportedRoutes.some(function (e) {
  61956.           return e.test ? e.test(n) : e === n
  61957.         });
  61958.         JB(r, a ? fN : null) (e, t)
  61959.       }
  61960.     }
  61961.     function ZB(a) {
  61962.       return function (e, t) {
  61963.         var n = ho.getAdminPath(e.location.basename + e.location.pathname);
  61964.         uo.addSupportedSelections(ho.getAdminPath(n), a);
  61965.         e = a[WB.type];
  61966.         e && window._v5Config.httpStatusCode !== g.a.FORBIDDEN ? t(null, e) : t(null, function (e) {
  61967.           return C.a.createElement(bA, BB({
  61968.           }, e, {
  61969.             adminPath: n
  61970.           }))
  61971.         })
  61972.       }
  61973.     }
  61974.     function XB(e) {
  61975.       return ZB(MB({
  61976.       }, ft.forum, e))
  61977.     }
  61978.     function ez(e) {
  61979.       return ZB(MB({
  61980.       }, ft.organization, e))
  61981.     }
  61982.     function tz(e) {
  61983.       var t;
  61984.       return ZB((MB(t = {
  61985.       }, ft.global, e), MB(t, ft.forum, e), t))
  61986.     }
  61987.     function nz(e, t) {
  61988.       var n;
  61989.       return ZB((MB(n = {
  61990.       }, ft.forum, e), MB(n, ft.organization, t || e), n))
  61991.     }
  61992.     function az(e) {
  61993.       var t;
  61994.       return ZB((MB(t = {
  61995.       }, ft.forum, e), MB(t, ft.organization, e), MB(t, ft.global, e), t))
  61996.     }
  61997.     function rz(e) {
  61998.       return C.a.createElement(WA, e, C.a.createElement(wh, null))
  61999.     }
  62000.     function oz(e) {
  62001.       return C.a.createElement(WA, e, C.a.createElement(ij, null))
  62002.     }
  62003.     ac = C.a.createElement(v.Route, {
  62004.       path: 'tools'
  62005.     }, C.a.createElement(v.Route, {
  62006.       getComponent: XB(fN)
  62007.     }, C.a.createElement(v.IndexRoute, {
  62008.       component: zw.a
  62009.     }), C.a.createElement(v.Route, {
  62010.       path: 'import/details/:groupId',
  62011.       component: ac,
  62012.       title: 'Import Details'
  62013.     })), C.a.createElement(v.Route, {
  62014.       path: 'migrate-map',
  62015.       getComponent: $B(function () {
  62016.         n.e(4).then(n.bind(null, 526))
  62017.       }),
  62018.       title: 'Migrate Discussions'
  62019.     })),
  62020.     s = C.a.createElement(v.Route, {
  62021.       path: 'settings',
  62022.       getComponent: ez(AO)
  62023.     }, C.a.createElement(v.Route, {
  62024.       path: 'sites',
  62025.       component: ut,
  62026.       title: 'Organization Sites'
  62027.     }), C.a.createElement(v.Route, {
  62028.       path: 'admins',
  62029.       component: wi,
  62030.       title: 'Organization Admins'
  62031.     }), C.a.createElement(v.Route, {
  62032.       path: 'subscription',
  62033.       component: s,
  62034.       title: 'Site Subscription Settings'
  62035.     })),
  62036.     qn = [
  62037.       {
  62038.         path: 'universalcode',
  62039.         component: Fc,
  62040.         title: 'Install instructions for Universal Code'
  62041.       },
  62042.       {
  62043.         path: 'wordpress',
  62044.         component: cu,
  62045.         title: 'Install instructions for Wordpress',
  62046.         requiresForum: !0
  62047.       },
  62048.       {
  62049.         path: 'blogger',
  62050.         component: xu,
  62051.         title: 'Install instructions for Blogger'
  62052.       },
  62053.       {
  62054.         path: 'tumblr',
  62055.         component: y,
  62056.         title: 'Install instructions for Tumblr'
  62057.       },
  62058.       {
  62059.         path: 'squarespace',
  62060.         component: p,
  62061.         title: 'Install instructions for Squarespace'
  62062.       },
  62063.       {
  62064.         path: 'typepad',
  62065.         component: Sn,
  62066.         title: 'Install instructions for TypePad'
  62067.       },
  62068.       {
  62069.         path: 'movabletype',
  62070.         component: Ln,
  62071.         title: 'Install instructions for Movable Type'
  62072.       },
  62073.       {
  62074.         path: 'drupal',
  62075.         component: c,
  62076.         title: 'Install instructions for Drupal'
  62077.       },
  62078.       {
  62079.         path: 'joomla',
  62080.         component: bo,
  62081.         title: 'Install instructions for Joomla'
  62082.       },
  62083.       {
  62084.         path: 'weebly',
  62085.         component: Ts,
  62086.         title: 'Install instructions for Weebly'
  62087.       },
  62088.       {
  62089.         path: 'strikingly',
  62090.         component: cs,
  62091.         title: 'Install instructions for Strikingly'
  62092.       },
  62093.       {
  62094.         path: 'jekyll',
  62095.         component: Lo,
  62096.         title: 'Install instructions for Jekyll'
  62097.       },
  62098.       {
  62099.         path: 'ghost',
  62100.         component: di,
  62101.         title: 'Install instructions for Ghost'
  62102.       },
  62103.       {
  62104.         path: 'hubspot',
  62105.         component: Fi,
  62106.         title: 'Install instructions for HubSpot'
  62107.       },
  62108.       {
  62109.         path: 'shopify',
  62110.         component: yc,
  62111.         title: 'Install instructions for Shopify'
  62112.       },
  62113.       {
  62114.         path: 'amp',
  62115.         component: Cl,
  62116.         title: 'Install instructions for AMP'
  62117.       },
  62118.       {
  62119.         path: 'adobemuse',
  62120.         component: lh,
  62121.         title: 'Install instructions for Adobe Muse'
  62122.       },
  62123.       {
  62124.         path: 'jimdo',
  62125.         component: Vb,
  62126.         title: 'Install instructions for Jimdo'
  62127.       },
  62128.       {
  62129.         path: 'postachio',
  62130.         component: Jc,
  62131.         title: 'Install instructions for Postach.io'
  62132.       },
  62133.       {
  62134.         path: 'gatsby',
  62135.         component: Bu,
  62136.         title: 'Install instructions for Gatsby'
  62137.       },
  62138.       {
  62139.         path: 'pattern',
  62140.         component: lt,
  62141.         title: 'Install instructions for Pattern'
  62142.       },
  62143.       {
  62144.         path: 'react',
  62145.         component: qn,
  62146.         title: 'Install instructions for React'
  62147.       }
  62148.     ].map(function (e) {
  62149.       return C.a.createElement(v.Route, {
  62150.         key: e.path,
  62151.         path: e.path,
  62152.         getComponent: (e.requiresForum ? XB : tz) (e.component),
  62153.         title: e.title
  62154.       })
  62155.     }),
  62156.     Ds = C.a.createElement(v.Route, {
  62157.       path: 'install',
  62158.       getComponent: az(wn)
  62159.     }, C.a.createElement(v.IndexRoute, {
  62160.       getComponent: tz(Oi),
  62161.       title: 'Choose a platform'
  62162.     }), C.a.createElement(v.Route, {
  62163.       path: 'welcome',
  62164.       getComponent: XB(Oi),
  62165.       title: 'Choose a platform'
  62166.     }), C.a.createElement(v.Route, {
  62167.       path: 'settings',
  62168.       getComponent: XB(_o),
  62169.       title: 'Configure Disqus'
  62170.     }), C.a.createElement(v.Route, {
  62171.       path: 'moderation',
  62172.       getComponent: XB(ti),
  62173.       title: 'Configure Moderation'
  62174.     }), C.a.createElement(v.Route, {
  62175.       path: 'complete',
  62176.       getComponent: XB(Ds),
  62177.       title: 'Setup Complete!'
  62178.     }), C.a.createElement(v.Route, {
  62179.       path: 'platforms'
  62180.     }, C.a.createElement(v.IndexRedirect, {
  62181.       to: '/install/'
  62182.     }), qn)),
  62183.     bl = C.a.createElement(v.Route, {
  62184.       path: 'access',
  62185.       getComponent: XB(Pi)
  62186.     }, C.a.createElement(v.Route, {
  62187.       path: 'banned',
  62188.       component: bl,
  62189.       accessListType: 'blacklist',
  62190.       title: 'Banned/Trusted Users'
  62191.     }), C.a.createElement(v.Route, {
  62192.       path: 'trusted',
  62193.       component: bl,
  62194.       accessListType: 'whitelist',
  62195.       title: 'Banned/Trusted Users'
  62196.     })),
  62197.     qn = C.a.createElement(v.Route, {
  62198.       path: 'settings',
  62199.       getComponent: XB(ib)
  62200.     }, C.a.createElement(v.Route, {
  62201.       path: 'community',
  62202.       component: Sh,
  62203.       title: 'Site Community Settings'
  62204.     }), C.a.createElement(v.Route, {
  62205.       path: 'moderation',
  62206.       component: oo,
  62207.       title: 'Site Moderation Settings'
  62208.     }), yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement(v.Route, {
  62209.       path: 'moderators',
  62210.       component: qs,
  62211.       title: 'Moderator Settings'
  62212.     }), C.a.createElement(v.Route, {
  62213.       path: 'ads',
  62214.       component: ai,
  62215.       title: 'Site Ad Settings'
  62216.     }), C.a.createElement(v.Route, {
  62217.       path: 'email-subscriptions',
  62218.       component: Ju,
  62219.       title: 'Email Subscriptions'
  62220.     }), C.a.createElement(v.Route, {
  62221.       path: 'advanced',
  62222.       component: vh,
  62223.       title: 'Site Advanced Settings'
  62224.     }), C.a.createElement(v.Route, {
  62225.       path: 'webhooks',
  62226.       component: Li,
  62227.       title: 'Site Webhooks'
  62228.     }), C.a.createElement(v.Route, {
  62229.       path: 'reactions',
  62230.       component: yl,
  62231.       title: 'Site Reactions'
  62232.     }), C.a.createElement(v.Route, {
  62233.       path: 'recommendations',
  62234.       component: sl,
  62235.       title: 'Site Recommendations'
  62236.     }), C.a.createElement(v.Route, {
  62237.       path: 'badges',
  62238.       component: F,
  62239.       title: 'Site Badges'
  62240.     }), C.a.createElement(v.Route, {
  62241.       path: 'behind-click',
  62242.       component: r,
  62243.       title: 'Site Behind a Click'
  62244.     }), C.a.createElement(v.Route, {
  62245.       path: 'install',
  62246.       component: Yi,
  62247.       title: 'Choose a platform'
  62248.     }), ',', qn, C.a.createElement(v.Redirect, {
  62249.       from: 'revenue',
  62250.       to: 'ads'
  62251.     }), C.a.createElement(v.Redirect, {
  62252.       path: 'revenue/hub/:campaign/:hubspotCompanyId',
  62253.       to: 'revenue'
  62254.     })),
  62255.     Ru = C.a.createElement(v.Route, {
  62256.       path: 'settings',
  62257.       getComponent: XB(fN)
  62258.     }, !yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement(v.Route, {
  62259.       path: 'moderators',
  62260.       component: qs,
  62261.       title: 'Moderator Settings'
  62262.     }), C.a.createElement(v.Route, {
  62263.       path: 'access',
  62264.       component: Ru,
  62265.       title: 'Restricted Words Settings'
  62266.     })),
  62267.     bp = C.a.createElement(v.Route, {
  62268.       path: 'settings/polls',
  62269.       getComponent: XB(Nc)
  62270.     }, C.a.createElement(v.Route, {
  62271.       path: 'general',
  62272.       component: bp,
  62273.       title: 'General Settings'
  62274.     }), C.a.createElement(v.Route, {
  62275.       path: 'pollsters',
  62276.       component: To,
  62277.       title: 'Poll Moderator Settings'
  62278.     })),
  62279.     To = C.a.createElement(v.Route, {
  62280.       path: 'settings',
  62281.       getComponent: az($w)
  62282.     }, C.a.createElement(v.Route, {
  62283.       path: 'revenue/hub/:campaign/:hubspotCompanyId',
  62284.       title: 'Deactivate Reveal ads',
  62285.       getComponent: ez(Pc)
  62286.     })),
  62287.     Dc = C.a.createElement(v.Route, {
  62288.       path: 'internal/tools',
  62289.       getComponent: az(qo)
  62290.     }, C.a.createElement(v.Route, {
  62291.       path: 'bulk',
  62292.       component: Dc,
  62293.       title: 'Bulk Actions Tool'
  62294.     }), C.a.createElement(v.Route, {
  62295.       path: 'onboarding/:tab',
  62296.       component: Vi,
  62297.       title: 'Onboarding Tool'
  62298.     })),
  62299.     Vi = C.a.createElement(v.Route, {
  62300.       path: 'tools'
  62301.     }, C.a.createElement(v.Route, {
  62302.       path: 'onboarding/:tab',
  62303.       getComponent: az(Vi),
  62304.       title: 'Onboarding Tool'
  62305.     }), C.a.createElement(v.Route, {
  62306.       path: 'exception',
  62307.       getComponent: az(Vi),
  62308.       title: 'Exception Tool'
  62309.     })),
  62310.     I = C.a.createElement(v.Route, {
  62311.       path: 'moderate(/:tab)(/filter/:filter)(/search/:search)',
  62312.       getComponent: az(fN)
  62313.     }, C.a.createElement(v.IndexRoute, {
  62314.       component: I,
  62315.       title: 'Moderate'
  62316.     })),
  62317.     Ph = C.a.createElement(v.Route, {
  62318.       path: 'create',
  62319.       getComponent: az(Ph)
  62320.     }, C.a.createElement(v.IndexRoute, {
  62321.       component: Ap,
  62322.       title: 'Register Site'
  62323.     })),
  62324.     Ap = C.a.createElement(v.Route, {
  62325.       path: 'settings',
  62326.       getComponent: XB($w)
  62327.     }, C.a.createElement(v.Route, {
  62328.       path: 'revenue/hub/',
  62329.       component: Pc,
  62330.       title: 'Deactivate Reveal ads'
  62331.     })),
  62332.     Pc = C.a.createElement(v.Route, {
  62333.       path: 'discussions',
  62334.       getComponent: XB(fN)
  62335.     }, C.a.createElement(v.IndexRoute, {
  62336.       component: rc,
  62337.       title: 'Edit Discussions'
  62338.     }), C.a.createElement(v.Route, {
  62339.       path: 'migrate',
  62340.       getComponent: JB(function () {
  62341.         n.e(0).then(n.bind(null, 527)).then(function (e) {
  62342.           e.default.migrate.init()
  62343.         })
  62344.       }),
  62345.       title: 'Migrate Discussions'
  62346.     }), C.a.createElement(v.Route, {
  62347.       path: 'history',
  62348.       getComponent: JB(function () {
  62349.         window.document.querySelectorAll('.paging a').forEach(function (e) {
  62350.           e.className += ' btn'
  62351.         }),
  62352.         window.document.querySelectorAll('.paging span').forEach(function (e) {
  62353.           e.className += ' btn',
  62354.           e.setAttribute('disabled', 'disabled')
  62355.         })
  62356.       }),
  62357.       title: 'Discussions History'
  62358.     }), C.a.createElement(v.Route, {
  62359.       path: 'import/platform/blogger',
  62360.       getComponent: JB(function () {
  62361.         n.e(0).then(n.bind(null, 527)).then(function (e) {
  62362.           e.default.importexport.bloggerSync(pt.a.bloggerSyncOauthUrl)
  62363.         })
  62364.       }),
  62365.       title: 'Import Discussions'
  62366.     }), C.a.createElement(v.Route, {
  62367.       path: 'export',
  62368.       getComponent: JB(function () {
  62369.         n.e(0).then(n.bind(null, 527)).then(function (e) {
  62370.           e.default.importexport.init()
  62371.         })
  62372.       }),
  62373.       title: 'Import Discussions'
  62374.     })),
  62375.     rc = function (e) {
  62376.       return C.a.createElement(lU, e, C.a.createElement(YU, null))
  62377.     },
  62378.     so = C.a.createElement(u.Provider, {
  62379.       store: o
  62380.     }, C.a.createElement(v.Router, {
  62381.       history: Uc,
  62382.       onUpdate: function () {
  62383.         j.a.updateTitle(this.state, 'title', 'Disqus Admin'),
  62384.         this.router.isActive('/install/platforms/') && window.scrollTo(0, 0)
  62385.       }
  62386.     }, C.a.createElement(v.Route, {
  62387.       path: '/',
  62388.       component: t
  62389.     }, C.a.createElement(v.IndexRoute, {
  62390.       component: Mo,
  62391.       title: 'Start'
  62392.     }), C.a.createElement(v.Route, {
  62393.       path: '(orgs/:id/:name)'
  62394.     }, C.a.createElement(v.IndexRoute, {
  62395.       getComponent: az(Mo),
  62396.       title: 'Start'
  62397.     }), I, C.a.createElement(v.Route, {
  62398.       path: 'analytics/top_comments',
  62399.       title: 'Top Comments',
  62400.       getComponent: az(function (e) {
  62401.         return C.a.createElement(WA, e, C.a.createElement(qm, null))
  62402.       })
  62403.     }), C.a.createElement(v.Route, {
  62404.       path: 'analytics/revenue',
  62405.       title: 'Revenue',
  62406.       getComponent: nz(function (e) {
  62407.         return C.a.createElement($w, e, C.a.createElement(mm, null))
  62408.       })
  62409.     }), C.a.createElement(v.Route, {
  62410.       path: 'analytics/comments',
  62411.       title: 'Analytics Overview',
  62412.       getComponent: function (e, t) {
  62413.         return (WB.organization && (YB[WB.organization.id] || {
  62414.         }).advancedAnalytics ? XB(oz) : nz(rz)) (e, t)
  62415.       }
  62416.     }), C.a.createElement(v.Route, {
  62417.       path: 'settings/general',
  62418.       title: 'General Settings',
  62419.       getComponent: nz(function (e) {
  62420.         return C.a.createElement(ib, e, C.a.createElement(Wv, null))
  62421.       }, function (e) {
  62422.         return C.a.createElement(AO, e, C.a.createElement(yS, null))
  62423.       })
  62424.     }), C.a.createElement(v.Route, {
  62425.       path: 'setup',
  62426.       title: 'Setup',
  62427.       getComponent: nz(Yc)
  62428.     }), s, To, ac, qn, bl, Ru, Ap, Pc, C.a.createElement(v.Route, {
  62429.       path: 'analytics/payments',
  62430.       title: 'Payments',
  62431.       getComponent: XB(function (e) {
  62432.         return C.a.createElement($w, e, C.a.createElement(Bw, null))
  62433.       })
  62434.     }), C.a.createElement(v.Route, {
  62435.       path: 'analytics',
  62436.       component: WA
  62437.     }, C.a.createElement(v.Route, {
  62438.       path: 'content',
  62439.       title: 'Content Analysis',
  62440.       getComponent: XB(a)
  62441.     }), C.a.createElement(v.Route, {
  62442.       path: 'audience',
  62443.       title: 'Audience Analysis',
  62444.       getComponent: XB(function (e) {
  62445.         return C.a.createElement(IA, e, C.a.createElement(rT, null))
  62446.       })
  62447.     }), C.a.createElement(v.Route, {
  62448.       path: 'reactions',
  62449.       title: 'Reactions Analysis',
  62450.       getComponent: XB(function (e) {
  62451.         return C.a.createElement(qA, e, C.a.createElement(VT, null))
  62452.       })
  62453.     }), C.a.createElement(v.Route, {
  62454.       path: 'pulse',
  62455.       title: 'Attention Analytics',
  62456.       getComponent: XB(Ls)
  62457.     })), Ds, Ph, Dc, Vi, yo.a.isFeatureActive('polls_pub_admin') && C.a.createElement(C.a.Fragment, null, C.a.createElement(v.Redirect, {
  62458.       path: 'polls',
  62459.       to: 'polls/list/'
  62460.     }), C.a.createElement(v.Redirect, {
  62461.       path: 'settings/polls',
  62462.       to: 'settings/polls/general/'
  62463.     }), C.a.createElement(v.Route, {
  62464.       path: 'polls/list',
  62465.       title: 'My Polls',
  62466.       getComponent: XB(function (e) {
  62467.         return C.a.createElement(lU, e, C.a.createElement(cM, null))
  62468.       })
  62469.     }), C.a.createElement(v.Route, {
  62470.       path: 'polls/editor/new/',
  62471.       title: 'Polls Editor - New Poll',
  62472.       getComponent: XB(rc)
  62473.     }), C.a.createElement(v.Route, {
  62474.       path: 'polls/editor/(:pollId)',
  62475.       title: 'Polls Editor',
  62476.       getComponent: XB(rc)
  62477.     }), bp, C.a.createElement(v.Route, {
  62478.       path: 'polls/insights/(:pollId)',
  62479.       title: 'Polls Insights',
  62480.       getComponent: XB(function (e) {
  62481.         return C.a.createElement(lU, e, C.a.createElement(xB, null))
  62482.       })
  62483.     })), C.a.createElement(v.Route, {
  62484.       path: 'checkout',
  62485.       getComponent: az(Io),
  62486.       title: 'Checkout'
  62487.     })), C.a.createElement(v.Route, {
  62488.       path: 'acknowledge',
  62489.       getComponent: XB(Ni),
  62490.       title: 'Confirm your Plan'
  62491.     }), C.a.createElement(v.Redirect, {
  62492.       path: 'analytics/overview',
  62493.       to: '/analytics/comments/'
  62494.     }), C.a.createElement(v.Redirect, {
  62495.       path: 'orgs/:id/:name/analytics/overview',
  62496.       to: '/orgs/:id/:name/analytics/comments/'
  62497.     }), C.a.createElement(v.Redirect, {
  62498.       from: 'create/*',
  62499.       to: '/'
  62500.     }), C.a.createElement(v.Redirect, {
  62501.       from: 'install/*',
  62502.       to: '/install/'
  62503.     }), C.a.createElement(v.Route, {
  62504.       path: '(internal/)tools/*',
  62505.       component: go,
  62506.       title: 'Page Not Found'
  62507.     }), C.a.createElement(v.Route, {
  62508.       path: '*',
  62509.       getComponent: $B(),
  62510.       title: so
  62511.     }))));
  62512.     f() (d.a.loadCSS('//c.disquscdn.com/next/current/publisher-admin/css/main.css'), l.a.render.bind(l.a, so, Fo))
  62513.   },
  62514.   265: function (e, t, n) {
  62515.     'use strict';
  62516.     var a = {
  62517.       updateTitle: function (e, t, n) {
  62518.         t = (e = e.routes) [e.length - 1][t],
  62519.         n = n ? ' - '.concat(n) : '';
  62520.         window.document.title = ''.concat(t).concat(n)
  62521.       }
  62522.     };
  62523.     e.exports = a
  62524.   },
  62525.   268: function (e, t, n) {
  62526.     t = function () {
  62527.       'use strict';
  62528.       return {
  62529.         isIE: function () {
  62530.           return !!window.document.documentMode
  62531.         },
  62532.         isSafari: function () {
  62533.           var e = window.navigator.userAgent.toLowerCase();
  62534.           return !!~e.indexOf('safari') && !~e.indexOf('chrome')
  62535.         },
  62536.         isFirefox: function () {
  62537.           var e = window.navigator.userAgent.toLowerCase();
  62538.           return !!~e.indexOf('firefox') && !~e.indexOf('chrome')
  62539.         },
  62540.         isChrome: function () {
  62541.           var e = window.navigator.userAgent.toLowerCase();
  62542.           return !!~e.indexOf('crios') || !!window.chrome && 'Google Inc.' === window.navigator.vendor && void 0 === window.opr && !~e.indexOf('edge')
  62543.         },
  62544.         isEdge: function () {
  62545.           return !!~window.navigator.userAgent.toLowerCase().indexOf('edge')
  62546.         },
  62547.         isOpera: function () {
  62548.           var e = window.navigator.userAgent.toLowerCase();
  62549.           return !!~e.indexOf('opera') || !!~e.indexOf('opr')
  62550.         },
  62551.         isCrawler: function (e) {
  62552.           return void 0 === e && (e = window),
  62553.           /bot|crawl|slurp|spider|facebookexternalhit|embedly|feedly|pinterest/i.test(e.navigator.userAgent)
  62554.         }
  62555.       }
  62556.     }.apply(t, [
  62557.     ]);
  62558.     void 0 === t || (e.exports = t)
  62559.   },
  62560.   269: function (e, t, n) {
  62561.     var a = function () {
  62562.       'use strict';
  62563.       return function (e) {
  62564.         return e = e || window,
  62565.         /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(e.navigator.userAgent || e.navigator.vendor || e.opera)
  62566.       }
  62567.     }();
  62568.     e.exports = a
  62569.   },
  62570.   270: function (e, t, n) {
  62571.     !function (e) {
  62572.       'use strict';
  62573.       var t = n(145);
  62574.       e.exports = function (e) {
  62575.         var n = [
  62576.         ];
  62577.         return t(e, function (e, t) {
  62578.           void 0 !== e && n.push(encodeURIComponent(t) + (null === e ? '' : '=' + encodeURIComponent(e)))
  62579.         }),
  62580.         n.join('&')
  62581.       }
  62582.     }(e)
  62583.   },
  62584.   271: function (e, t, n) {
  62585.     var a = function () {
  62586.       'use strict';
  62587.       return function (e, t) {
  62588.         return Object.prototype.hasOwnProperty.call(e, t)
  62589.       }
  62590.     }();
  62591.     e.exports = a
  62592.   },
  62593.   272: function (e, t, n) {
  62594.     'use strict';
  62595.     t = function () {
  62596.       return {
  62597.         jester: 'https://referrer.disqus.com/juggler'
  62598.       }
  62599.     }.apply(t, [
  62600.     ]);
  62601.     void 0 === t || (e.exports = t)
  62602.   },
  62603.   273: function (e, t, n) {
  62604.     'use strict';
  62605.     var n = [
  62606.       n(25),
  62607.       n(7),
  62608.       n(61),
  62609.       n(51)
  62610.     ],
  62611.     n = function (S, w, e, t) {
  62612.       var P = this,
  62613.       k = e.gettext,
  62614.       N = t.LIST_TYPES,
  62615.       C = t.BAN_TYPES,
  62616.       R = t.RETROACTIVE_ACTION_TYPES,
  62617.       x = [
  62618.         {
  62619.           label: k('1 day'),
  62620.           durationHours: '24'
  62621.         },
  62622.         {
  62623.           label: k('1 week'),
  62624.           durationHours: '168'
  62625.         },
  62626.         {
  62627.           label: k('2 weeks'),
  62628.           durationHours: '336'
  62629.         }
  62630.       ];
  62631.       return function (e) {
  62632.         var t = e.user,
  62633.         n = e.listName,
  62634.         a = e.ipAddress,
  62635.         r = e.formValues,
  62636.         o = e.supportsShadowBanning,
  62637.         i = e.supportsTempBanning,
  62638.         s = e.selectRetroactiveAction,
  62639.         l = e.toggleBanTypeCallback,
  62640.         c = e.toggleUserValueChecked,
  62641.         u = e.toggleIpAddressChecked,
  62642.         p = e.updateDuration,
  62643.         d = e.updateCustomDurationAmount,
  62644.         m = e.updateCustomDurationScale,
  62645.         f = e.updateReason,
  62646.         h = e.handleSubmit,
  62647.         g = e.handleClose,
  62648.         y = e.handleChangeValue,
  62649.         b = e.closeText,
  62650.         v = e.getPlaceholderForValue,
  62651.         _ = e.itemTypes,
  62652.         E = e.itemType,
  62653.         O = e.UpgradeIcon,
  62654.         e = e.itemValue;
  62655.         return n ? S.createElement('form', {
  62656.           className: ''.concat(n, '-form')
  62657.         }, S.createElement('div', {
  62658.           className: 'admin-modal__content padding-bottom'
  62659.         }, S.createElement('div', null, n === N.WHITELIST ? S.createElement('p', {
  62660.           className: 'spacing-default'
  62661.         }, k('Adding this person to the whitelist will automatically approve his or her new comments from now on.')) : S.createElement('div', {
  62662.           className: 'align align--stretch align--wrap'
  62663.         }, S.createElement('label', {
  62664.           className: [
  62665.             'padding-default align align__item--grow align__item--equal align--center align--column modal__option ban__option',
  62666.             i ? null : '-disabled',
  62667.             r.type === C.TEMP ? '-selected' : null
  62668.           ].join(' ')
  62669.         }, S.createElement('input', {
  62670.           type: 'radio',
  62671.           name: 'ban_type',
  62672.           value: C.TEMP,
  62673.           checked: r.type === C.TEMP,
  62674.           onChange: l,
  62675.           disabled: !i
  62676.         }), S.createElement('p', {
  62677.           className: 'text-semibold text-center modal__option-text ban__option-text'
  62678.         }, k('Timeout'), i ? null : S.createElement(O, {
  62679.           tooltipClass: 'tooltip-timeout'
  62680.         }))), n === N.BLACKLIST && r.type === C.TEMP ? S.createElement('div', {
  62681.           className: 'padding-default modal__description ban__description border-bottom-dark'
  62682.         }, S.createElement('div', {
  62683.           className: 'text-small modal__option-subtext ban__option-subtext'
  62684.         }, k('Restrict a user\'s ability to comment for a period of time. This notifies the user of their timeout. If discussions get heated, enforce timeouts so that users cool off and improve their behavior.'), x.map(function (e) {
  62685.           return S.createElement('label', {
  62686.             className: 'fieldset__block--checkbox text-medium spacing-bottom-small text-semibold text-gray-dark',
  62687.             key: e.durationHours
  62688.           }, S.createElement('input', {
  62689.             type: 'radio',
  62690.             name: 'duration',
  62691.             checked: r.durationHours === e.durationHours,
  62692.             onChange: p,
  62693.             value: e.durationHours,
  62694.             className: 'spacing-right-small'
  62695.           }), e.label)
  62696.         }), S.createElement('div', null, S.createElement('label', {
  62697.           className: 'text-medium spacing-bottom-small inline__item spacing-right text-semibold text-gray-dark'
  62698.         }, S.createElement('input', {
  62699.           type: 'radio',
  62700.           name: 'duration',
  62701.           checked: 'custom' === r.durationHours,
  62702.           onChange: p,
  62703.           value: 'custom',
  62704.           className: 'spacing-right-small'
  62705.         }), k('Custom')), S.createElement('input', {
  62706.           name: 'customDurationAmount',
  62707.           type: 'number',
  62708.           value: r.customDurationAmount,
  62709.           onChange: d,
  62710.           onFocus: d,
  62711.           onKeyPress: d,
  62712.           className: 'spacing-right-small -text-small',
  62713.           maxLength: '2',
  62714.           style: {
  62715.             width: '50px'
  62716.           },
  62717.           min: '0'
  62718.         }), S.createElement('select', {
  62719.           value: r.customDurationScale,
  62720.           onChange: m
  62721.         }, S.createElement('option', {
  62722.           value: '1'
  62723.         }, 'Hour(s)'), S.createElement('option', {
  62724.           value: '24'
  62725.         }, 'Day(s)'), S.createElement('option', {
  62726.           value: '168'
  62727.         }, 'Week(s)'))))) : null, S.createElement('label', {
  62728.           className: [
  62729.             'padding-default align align__item--grow align__item--equal align--center align--column modal__option ban__option',
  62730.             o ? null : '-disabled',
  62731.             r.type === C.SHADOW ? '-selected' : null
  62732.           ].join(' ')
  62733.         }, S.createElement('input', {
  62734.           type: 'radio',
  62735.           name: 'ban_type',
  62736.           value: C.SHADOW,
  62737.           checked: r.type === C.SHADOW,
  62738.           onChange: l,
  62739.           disabled: !o
  62740.         }), S.createElement('p', {
  62741.           className: 'text-semibold text-center modal__option-text ban__option-text'
  62742.         }, k('Shadow Ban'), o ? null : S.createElement(O, null))), n === N.BLACKLIST && r.type === C.SHADOW ? S.createElement('div', {
  62743.           className: 'modal__description ban__description border-bottom-dark'
  62744.         }, S.createElement('p', {
  62745.           className: 'text-small modal__option-subtext ban__option-subtext'
  62746.         }, k('Ban a user without them knowing. The user can still comment, however, their posts will only be visible to themselves. Use it against trolls and spammers who attempt to circumvent a ban with new accounts.'))) : null, S.createElement('label', {
  62747.           className: [
  62748.             'padding-default align align__item--grow align__item--equal align--center align--column modal__option ban__option',
  62749.             r.type === C.PERMANENT ? '-selected' : null
  62750.           ].join(' ')
  62751.         }, S.createElement('input', {
  62752.           type: 'radio',
  62753.           name: 'ban_type',
  62754.           value: C.PERMANENT,
  62755.           checked: r.type === C.PERMANENT,
  62756.           onChange: l
  62757.         }), S.createElement('p', {
  62758.           className: 'text-semibold text-center modal__option-text ban__option-text'
  62759.         }, 'Permanent Ban')), n === N.BLACKLIST && r.type === C.PERMANENT ? S.createElement('div', {
  62760.           className: 'modal__description ban__description border-bottom-dark'
  62761.         }, S.createElement('p', {
  62762.           className: 'text-small modal__option-subtext ban__option-subtext'
  62763.         }, k('Permanently ban the user so they can no longer post, vote, or flag comments on your site. If the user repeatedly violates your comment policy, revoke their ability to participate.'), S.createElement('label', {
  62764.           className: 'fieldset__block--checkbox text-medium spacing-bottom-small'
  62765.         }, S.createElement('span', {
  62766.           className: 'text-semibold text-gray-dark'
  62767.         }, k('Last 30 days of comments:'), ' '), S.createElement('select', {
  62768.           value: r.retroactiveAction,
  62769.           onChange: s,
  62770.           className: 'custom-select'
  62771.         }, S.createElement('option', {
  62772.           value: R.DO_NOTHING
  62773.         }, k('Do nothing')), S.createElement('option', {
  62774.           value: R.DELETE
  62775.         }, k('Delete')), S.createElement('option', {
  62776.           value: R.MARK_AS_SPAM
  62777.         }, k('Mark as spam')))))) : null)), S.createElement('div', {
  62778.           className: 'padding-default modal__config ban__config'
  62779.         }, !t || t.isAnonymous ? null : S.createElement('div', {
  62780.           className: 'align align--stretch access__block spacing-bottom embed-hidden'
  62781.         }, S.createElement('a', {
  62782.           href: t.profileUrl,
  62783.           className: 'spacing-right'
  62784.         }, S.createElement('img', {
  62785.           src: t.avatar.cache,
  62786.           alt: t.name,
  62787.           className: 'comment-__avatar border-radius-sm'
  62788.         })), S.createElement('div', {
  62789.           className: 'access__value'
  62790.         }, S.createElement('h4', null, t.name), S.createElement('p', {
  62791.           className: 'text-gray text-small'
  62792.         }, ' ', t.username, ' '))), t ? S.createElement('label', {
  62793.           className: 'fieldset__block--checkbox text-medium spacing-bottom-small'
  62794.         }, S.createElement('input', {
  62795.           type: 'checkbox',
  62796.           checked: !!r.username,
  62797.           onChange: w.partial(c, w, 'username'),
  62798.           className: 'spacing-right-small'
  62799.         }), k('User:'), ' ', ' ', S.createElement('strong', null, ' ', t.username, ' ')) : S.createElement(S.Fragment, null, S.createElement('div', {
  62800.           className: 'spacing-top spacing-bottom form-attribute-input'
  62801.         }, S.createElement('div', null, S.createElement('h3', {
  62802.           className: 'text-gray-darker'
  62803.         }, 'Type')), S.createElement('select', {
  62804.           name: 'itemType',
  62805.           className: 'input--select',
  62806.           value: P.itemType,
  62807.           onChange: y,
  62808.           disabled: _.length <= 1
  62809.         }, _.map(function (e) {
  62810.           return S.createElement('option', {
  62811.             key: e.value,
  62812.             value: e.value
  62813.           }, ' ', e.displayName, ' ')
  62814.         }))), S.createElement('div', {
  62815.           className: 'spacing-top spacing-bottom form-attribute-input'
  62816.         }, S.createElement('h3', {
  62817.           className: 'text-gray-darker'
  62818.         }, 'Value'), S.createElement('div', null, S.createElement('input', {
  62819.           className: 'input--textbox',
  62820.           name: 'itemValue',
  62821.           type: 'text',
  62822.           placeholder: v(E),
  62823.           value: e,
  62824.           onChange: y
  62825.         })))), t && n === N.BLACKLIST ? S.createElement('label', {
  62826.           className: 'fieldset__block--checkbox text-medium spacing-bottom-small'
  62827.         }, S.createElement('input', {
  62828.           type: 'checkbox',
  62829.           checked: !!r.email,
  62830.           onChange: w.partial(c, w, 'email'),
  62831.           className: 'spacing-right-small'
  62832.         }), k('Email:'), ' ', S.createElement('strong', null, ' ', t.email, ' ')) : null, n === N.BLACKLIST && a ? S.createElement('label', {
  62833.           className: 'fieldset__block--checkbox text-medium spacing-bottom-small'
  62834.         }, S.createElement('input', {
  62835.           type: 'checkbox',
  62836.           checked: !!r.ipAddress,
  62837.           onChange: u,
  62838.           className: 'spacing-right-small'
  62839.         }), k('IP Address:'), ' ', S.createElement('strong', null, ' ', a, ' '), S.createElement('div', {
  62840.           className: 'spacing-default-narrow text-small text-gray spacing-left-large embed-hidden'
  62841.         }, S.createElement('strong', null, k('Note:'), ' '), k('Adding an IP address to the banned list may also unintentionally block others who may share this IP address.'))) : null, n === N.BLACKLIST ? S.createElement('div', null, S.createElement('div', {
  62842.           className: 'spacing-bottom-small spacing-top-narrow'
  62843.         }, S.createElement('label', {
  62844.           className: 'modal__reason ban__reason'
  62845.         }, k('Reason for banning:'), S.createElement('input', {
  62846.           name: 'reason',
  62847.           type: 'text',
  62848.           value: r.reason || '',
  62849.           onChange: f,
  62850.           className: 'input--textbox -text-small border-gray-light',
  62851.           maxLength: '50'
  62852.         }))), S.createElement('p', {
  62853.           className: 'text-small modal__option-subtext ban__option-subtext'
  62854.         }, k('You can remove the user from the banned list at any time.'))) : null)), S.createElement('div', {
  62855.           className: 'admin-modal__footer clearfix'
  62856.         }, S.createElement('div', null, S.createElement('button', {
  62857.           className: 'button button-fill--brand button-small text-capitalized',
  62858.           disabled: !(r.email || r.username || r.ipAddress || e),
  62859.           onClick: h
  62860.         }, k(n === N.WHITELIST ? 'Add to Trusted List' : 'Add to Banned List')), n === N.BLACKLIST ? S.createElement('button', {
  62861.           className: 'button button-fill button-small text-capitalized',
  62862.           onClick: g
  62863.         }, k(b)) : null))) : null
  62864.       }
  62865.     }.apply(t, n);
  62866.     void 0 === n || (e.exports = n)
  62867.   },
  62868.   275: function (e, t, n) {
  62869.     'use strict';
  62870.     var a = {
  62871.     };
  62872.     e.exports = a
  62873.   },
  62874.   276: function (e, t, n) {
  62875.     'use strict';
  62876.     function r(e) {
  62877.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  62878.         return typeof e
  62879.       }
  62880.        : function (e) {
  62881.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  62882.       }) (e)
  62883.     }
  62884.     function s(e, t) {
  62885.       for (var n = 0; n < t.length; n++) {
  62886.         var a = t[n];
  62887.         a.enumerable = a.enumerable || !1,
  62888.         a.configurable = !0,
  62889.         'value' in a && (a.writable = !0),
  62890.         Object.defineProperty(e, a.key, a)
  62891.       }
  62892.     }
  62893.     function l(e, t) {
  62894.       return (l = Object.setPrototypeOf || function (e, t) {
  62895.         return e.__proto__ = t,
  62896.         e
  62897.       }) (e, t)
  62898.     }
  62899.     function c(n) {
  62900.       var a = function () {
  62901.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  62902.         if (Reflect.construct.sham) return !1;
  62903.         if ('function' == typeof Proxy) return !0;
  62904.         try {
  62905.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  62906.           ], function () {
  62907.           })),
  62908.           !0
  62909.         } catch (e) {
  62910.           return !1
  62911.         }
  62912.       }();
  62913.       return function () {
  62914.         var e,
  62915.         t = o(n);
  62916.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  62917.         t = this,
  62918.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? function (e) {
  62919.           if (void 0 !== e) return e;
  62920.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  62921.         }(t) : e
  62922.       }
  62923.     }
  62924.     function o(e) {
  62925.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  62926.         return e.__proto__ || Object.getPrototypeOf(e)
  62927.       }) (e)
  62928.     }
  62929.     n = [
  62930.       n(25),
  62931.       n(26),
  62932.       n(29),
  62933.       n(277)
  62934.     ],
  62935.     void 0 === (n = function (o, e, t, n) {
  62936.       var i = Object.freeze({
  62937.         admin: 'admin',
  62938.         home: 'home',
  62939.         marketing: 'marketing'
  62940.       }),
  62941.       a = function () {
  62942.         !function (e, t) {
  62943.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  62944.           e.prototype = Object.create(t && t.prototype, {
  62945.             constructor: {
  62946.               value: e,
  62947.               writable: !0,
  62948.               configurable: !0
  62949.             }
  62950.           }),
  62951.           t && l(e, t)
  62952.         }(r, o.Component);
  62953.         var e,
  62954.         t,
  62955.         n,
  62956.         a = c(r);
  62957.         function r() {
  62958.           return function (e, t) {
  62959.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  62960.           }(this, r),
  62961.           a.apply(this, arguments)
  62962.         }
  62963.         return e = r,
  62964.         (t = [
  62965.           {
  62966.             key: 'render',
  62967.             value: function () {
  62968.               if (this.props.motdDismissed || !this.props.motdTitle || !this.props.motdUrl || !this.props.motdCTA) return null;
  62969.               var e = 'motd-alert alert--';
  62970.               return e += this.props.zone === i.marketing ? 'success-light' : 'brand',
  62971.               this.props.isNewMotdBar && (e += ' motd-alert--updated'),
  62972.               o.createElement('div', {
  62973.                 id: 'motd-bar',
  62974.                 className: e
  62975.               }, o.createElement('div', {
  62976.                 className: this.props.isNewMotdBar ? '' : 'padding-default'
  62977.               }, o.createElement('div', {
  62978.                 className: 'text-center'.concat(this.props.isNewMotdBar ? '' : ' spacing-narrow')
  62979.               }, this.props.isNewMotdBar ? null : o.createElement('span', {
  62980.                 className: 'icon-megaphone icon__position spacing-right'
  62981.               }), o.createElement(this.props.isNewMotdBar ? 'span' : 'strong', {
  62982.                 className: 'spacing-right'
  62983.               }, this.props.motdTitle), o.createElement('a', {
  62984.                 href: this.props.motdUrl,
  62985.                 className: 'text-underline '.concat(this.props.isNewMotdBar ? 'motd-cta' : 'link-inverted-opaque text-semibold'),
  62986.                 target: '_blank',
  62987.                 rel: 'noopener noreferrer'
  62988.               }, this.props.motdCTA), this.props.canDismiss ? o.createElement('button', {
  62989.                 className: 'link-inverted-opaque spacing-left-large',
  62990.                 onClick: this.props.motdOnDismiss
  62991.               }, o.createElement('span', {
  62992.                 className: 'icon-cancel'
  62993.               })) : null)))
  62994.             }
  62995.           }
  62996.         ]) && s(e.prototype, t),
  62997.         n && s(e, n),
  62998.         r
  62999.       }();
  63000.       return a.displayName = 'MotdBar',
  63001.       a.propTypes = {
  63002.         zone: e.oneOf(Object.keys(i)).isRequired,
  63003.         motdUrl: e.string.isRequired,
  63004.         motdTitle: e.string.isRequired,
  63005.         motdCTA: e.string.isRequired,
  63006.         motdOnDismiss: e.func.isRequired,
  63007.         motdDismissed: e.bool,
  63008.         canDismiss: e.bool,
  63009.         isNewMotdBar: e.bool
  63010.       },
  63011.       a.defaultProps = {
  63012.         zone: i.admin
  63013.       },
  63014.       t.attachDrivers(a, [
  63015.         n
  63016.       ])
  63017.     }.apply(t, n)) || (e.exports = n)
  63018.   },
  63019.   277: function (e, t, n) {
  63020.     'use strict';
  63021.     function r(e) {
  63022.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  63023.         return typeof e
  63024.       }
  63025.        : function (e) {
  63026.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  63027.       }) (e)
  63028.     }
  63029.     function c(e, t) {
  63030.       for (var n = 0; n < t.length; n++) {
  63031.         var a = t[n];
  63032.         a.enumerable = a.enumerable || !1,
  63033.         a.configurable = !0,
  63034.         'value' in a && (a.writable = !0),
  63035.         Object.defineProperty(e, a.key, a)
  63036.       }
  63037.     }
  63038.     function u(e, t) {
  63039.       return (u = Object.setPrototypeOf || function (e, t) {
  63040.         return e.__proto__ = t,
  63041.         e
  63042.       }) (e, t)
  63043.     }
  63044.     function p(n) {
  63045.       var a = function () {
  63046.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  63047.         if (Reflect.construct.sham) return !1;
  63048.         if ('function' == typeof Proxy) return !0;
  63049.         try {
  63050.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  63051.           ], function () {
  63052.           })),
  63053.           !0
  63054.         } catch (e) {
  63055.           return !1
  63056.         }
  63057.       }();
  63058.       return function () {
  63059.         var e,
  63060.         t = o(n);
  63061.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  63062.         t = this,
  63063.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? d(t) : e
  63064.       }
  63065.     }
  63066.     function d(e) {
  63067.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  63068.       return e
  63069.     }
  63070.     function o(e) {
  63071.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  63072.         return e.__proto__ || Object.getPrototypeOf(e)
  63073.       }) (e)
  63074.     }
  63075.     n = [
  63076.       n(25),
  63077.       n(26),
  63078.       n(29),
  63079.       n(39),
  63080.       n(8)
  63081.     ],
  63082.     void 0 === (n = function (o, e, t, i, n) {
  63083.       var s = n.lounge || {
  63084.       },
  63085.       l = 'motd',
  63086.       n = function () {
  63087.         !function (e, t) {
  63088.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  63089.           e.prototype = Object.create(t && t.prototype, {
  63090.             constructor: {
  63091.               value: e,
  63092.               writable: !0,
  63093.               configurable: !0
  63094.             }
  63095.           }),
  63096.           t && u(e, t)
  63097.         }(r, o.Component);
  63098.         var e,
  63099.         t,
  63100.         n,
  63101.         a = p(r);
  63102.         function r(e) {
  63103.           var t;
  63104.           !function (e, t) {
  63105.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  63106.           }(this, r),
  63107.           (t = a.call(this, e)).getDataForZone = t.getDataForZone.bind(d(t)),
  63108.           t.handleDismiss = t.handleDismiss.bind(d(t)),
  63109.           t.getComponentProps = t.getComponentProps.bind(d(t));
  63110.           e = t.getDataForZone(t.props.zone);
  63111.           return t.state = {
  63112.             dismissed: !(!t.props.canDismiss || !i.get(l)) && i.get(l) [e.url],
  63113.             url: e.url,
  63114.             title: e.title,
  63115.             cta: e.cta
  63116.           },
  63117.           t
  63118.         }
  63119.         return e = r,
  63120.         (t = [
  63121.           {
  63122.             key: 'getDataForZone',
  63123.             value: function (e) {
  63124.               var t = s['motd_'.concat(e, '_url')];
  63125.               return {
  63126.                 title: (s['motd_'.concat(e, '_title')] || '').replace('&amp;', '&'),
  63127.                 url: t,
  63128.                 cta: (s['motd_'.concat(e, '_cta')] || '').replace('&amp;', '&')
  63129.               }
  63130.             }
  63131.           },
  63132.           {
  63133.             key: 'handleDismiss',
  63134.             value: function () {
  63135.               var e = this.getDataForZone(this.props.zone),
  63136.               t = i.get(l) ? i.get(l) : {
  63137.               };
  63138.               t[e.url] = !0,
  63139.               i.set(l, t),
  63140.               this.setState({
  63141.                 dismissed: !0
  63142.               })
  63143.             }
  63144.           },
  63145.           {
  63146.             key: 'getComponentProps',
  63147.             value: function () {
  63148.               return {
  63149.                 motdUrl: this.state.url,
  63150.                 motdTitle: this.state.title,
  63151.                 motdCTA: this.state.cta || 'Learn more »',
  63152.                 motdDismissed: this.state.dismissed,
  63153.                 motdOnDismiss: this.handleDismiss
  63154.               }
  63155.             }
  63156.           }
  63157.         ]) && c(e.prototype, t),
  63158.         n && c(e, n),
  63159.         r
  63160.       }();
  63161.       return n.displayName = 'MotdDriver',
  63162.       n.propTypes = {
  63163.         zone: e.oneOf(['admin',
  63164.         'home',
  63165.         'marketing']).isRequired,
  63166.         canDismiss: e.bool.isRequired
  63167.       },
  63168.       n.defaultProps = {
  63169.         canDismiss: !0
  63170.       },
  63171.       t.createDriver(n)
  63172.     }.apply(t, n)) || (e.exports = n)
  63173.   },
  63174.   278: function (e, t, n) {
  63175.     'use strict';
  63176.     function a(e, t, n) {
  63177.       return t in e ? Object.defineProperty(e, t, {
  63178.         value: n,
  63179.         enumerable: !0,
  63180.         configurable: !0,
  63181.         writable: !0
  63182.       }) : e[t] = n,
  63183.       e
  63184.     }
  63185.     n = [
  63186.       t,
  63187.       n(33)
  63188.     ],
  63189.     void 0 === (n = function (e, t) {
  63190.       var n;
  63191.       e.DISPLAY_SUBSCRIPTIONS_PACKAGES_FEATURES = (a(n = {
  63192.       }, t.DISQUS_PLUS_PACKAGE_ID, [
  63193.         '1',
  63194.         '-14'
  63195.       ]), a(n, t.DISQUS_PRO_PACKAGE_ID, [
  63196.         '1',
  63197.         '-18',
  63198.         '2',
  63199.         '10',
  63200.         '3',
  63201.         '14',
  63202.         '15',
  63203.         '19',
  63204.         '4'
  63205.       ]), a(n, t.DISQUS_BUSINESS_PACKAGE_ID, [
  63206.         '6',
  63207.         '5',
  63208.         '-13',
  63209.         '-11',
  63210.         '-3',
  63211.         '-20'
  63212.       ]), a(n, t.DISQUS_BASIC_PACKAGE_ID, [
  63213.         '-34',
  63214.         '-14'
  63215.       ]), n),
  63216.       e.DISPLAY_SUBSCRIPTIONS_PACKAGES_FEATURES_ALT = (a(n = {
  63217.       }, t.DISQUS_PLUS_PACKAGE_ID, [
  63218.         '-22',
  63219.         '-23',
  63220.         '-29',
  63221.         '-30'
  63222.       ]), a(n, t.DISQUS_PRO_PACKAGE_ID, [
  63223.         '-31',
  63224.         '-32',
  63225.         '4',
  63226.         '-33',
  63227.         '3'
  63228.       ]), a(n, t.DISQUS_BUSINESS_PACKAGE_ID, [
  63229.         '6',
  63230.         '-3',
  63231.         '5',
  63232.         '-13',
  63233.         '-27'
  63234.       ]), a(n, t.DISQUS_BASIC_PACKAGE_ID, [
  63235.         '-34',
  63236.         '-14'
  63237.       ]), n),
  63238.       e.DISPLAY_POLLS_SUBSCRIPTIONS_PACKAGES_FEATURES = (a(e = {
  63239.       }, t.DISQUS_POLLS_PRO_PACKAGE_ID, [
  63240.         '-35',
  63241.         '-36',
  63242.         '-37',
  63243.         '4'
  63244.       ]), a(e, t.DISQUS_POLLS_BUSINESS_PACKAGE_ID, [
  63245.         '6',
  63246.         '-39',
  63247.         '-38',
  63248.         '-40'
  63249.       ]), a(e, t.DISQUS_POLLS_ADS_SUPPORTED_PACKAGE_ID, [
  63250.         '-34',
  63251.         '-14'
  63252.       ]), e)
  63253.     }.apply(t, n)) || (e.exports = n)
  63254.   },
  63255.   279: function (e, t, n) {
  63256.     'use strict';
  63257.     function r(e) {
  63258.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  63259.         return typeof e
  63260.       }
  63261.        : function (e) {
  63262.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  63263.       }) (e)
  63264.     }
  63265.     function s(e, t) {
  63266.       for (var n = 0; n < t.length; n++) {
  63267.         var a = t[n];
  63268.         a.enumerable = a.enumerable || !1,
  63269.         a.configurable = !0,
  63270.         'value' in a && (a.writable = !0),
  63271.         Object.defineProperty(e, a.key, a)
  63272.       }
  63273.     }
  63274.     function l(e, t) {
  63275.       return (l = Object.setPrototypeOf || function (e, t) {
  63276.         return e.__proto__ = t,
  63277.         e
  63278.       }) (e, t)
  63279.     }
  63280.     function c(n) {
  63281.       var a = function () {
  63282.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  63283.         if (Reflect.construct.sham) return !1;
  63284.         if ('function' == typeof Proxy) return !0;
  63285.         try {
  63286.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  63287.           ], function () {
  63288.           })),
  63289.           !0
  63290.         } catch (e) {
  63291.           return !1
  63292.         }
  63293.       }();
  63294.       return function () {
  63295.         var e,
  63296.         t = o(n);
  63297.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  63298.         t = this,
  63299.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? u(t) : e
  63300.       }
  63301.     }
  63302.     function u(e) {
  63303.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  63304.       return e
  63305.     }
  63306.     function o(e) {
  63307.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  63308.         return e.__proto__ || Object.getPrototypeOf(e)
  63309.       }) (e)
  63310.     }
  63311.     n = [
  63312.       n(25),
  63313.       n(26),
  63314.       n(73)
  63315.     ],
  63316.     void 0 === (n = function (o, e, i) {
  63317.       var t = function () {
  63318.         !function (e, t) {
  63319.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  63320.           e.prototype = Object.create(t && t.prototype, {
  63321.             constructor: {
  63322.               value: e,
  63323.               writable: !0,
  63324.               configurable: !0
  63325.             }
  63326.           }),
  63327.           t && l(e, t)
  63328.         }(r, o.Component);
  63329.         var e,
  63330.         t,
  63331.         n,
  63332.         a = c(r);
  63333.         function r(e) {
  63334.           return function (e, t) {
  63335.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  63336.           }(this, r),
  63337.           (e = a.call(this, e)).handleToggleDropdown = e.handleToggleDropdown.bind(u(e)),
  63338.           e.handleKeyDown = e.handleKeyDown.bind(u(e)),
  63339.           e.listenToKeyDown = e.listenToKeyDown.bind(u(e)),
  63340.           e
  63341.         }
  63342.         return e = r,
  63343.         (t = [
  63344.           {
  63345.             key: 'componentDidMount',
  63346.             value: function () {
  63347.               this.props.isOpen && this.listenToKeyDown(!0)
  63348.             }
  63349.           },
  63350.           {
  63351.             key: 'componentWillUnmount',
  63352.             value: function () {
  63353.               this.listenToKeyDown(!1)
  63354.             }
  63355.           },
  63356.           {
  63357.             key: 'componentWillReceiveProps',
  63358.             value: function (e) {
  63359.               this.props.isOpen !== e.isOpen && this.listenToKeyDown(e.isOpen)
  63360.             }
  63361.           },
  63362.           {
  63363.             key: 'listenToKeyDown',
  63364.             value: function (e) {
  63365.               e ? window.document.addEventListener('keydown', this.handleKeyDown) : window.document.removeEventListener('keydown', this.handleKeyDown)
  63366.             }
  63367.           },
  63368.           {
  63369.             key: 'handleToggleDropdown',
  63370.             value: function () {
  63371.               this.props.isOpen ? this.props.onClose() : this.props.onOpen()
  63372.             }
  63373.           },
  63374.           {
  63375.             key: 'handleKeyDown',
  63376.             value: function (e) {
  63377.               27 === e.keyCode && this.props.onClose()
  63378.             }
  63379.           },
  63380.           {
  63381.             key: 'render',
  63382.             value: function () {
  63383.               return o.createElement(i, {
  63384.                 active: this.props.isOpen,
  63385.                 onOutsideClick: this.props.onClose,
  63386.                 className: (this.props.dropdownClassName || 'dropdown') + (this.props.isOpen ? ' open' : '')
  63387.               }, o.createElement('button', {
  63388.                 onClick: this.handleToggleDropdown,
  63389.                 className: this.props.className || 'dropdown-toggle'
  63390.               }, this.props.buttonChildren), this.props.children)
  63391.             }
  63392.           }
  63393.         ]) && s(e.prototype, t),
  63394.         n && s(e, n),
  63395.         r
  63396.       }();
  63397.       return t.displayName = 'DropdownStateless',
  63398.       t.propTypes = {
  63399.         className: e.string,
  63400.         dropdownClassName: e.string,
  63401.         children: e.node.isRequired,
  63402.         buttonChildren: e.node.isRequired,
  63403.         onOpen: e.func.isRequired,
  63404.         onClose: e.func.isRequired,
  63405.         isOpen: e.bool.isRequired
  63406.       },
  63407.       t
  63408.     }.apply(t, n)) || (e.exports = n)
  63409.   },
  63410.   28: function (e, t, n) {
  63411.     var n = [
  63412.       n(37),
  63413.       n(7),
  63414.       n(65),
  63415.       n(35),
  63416.       n(60)
  63417.     ],
  63418.     n = function (n, r, e, a, o) {
  63419.       'use strict';
  63420.       var t = window.document.createElement('a');
  63421.       function i(e) {
  63422.         return t.href = e,
  63423.         t.origin || t.protocol + '//' + t.hostname + (t.port ? ':' + t.port : '')
  63424.       }
  63425.       var s = {
  63426.       };
  63427.       function l(e) {
  63428.         return e.replace(/^(http:)?\/\//, 'https://')
  63429.       }
  63430.       function c(e) {
  63431.         (e = r.defaults(e, s)).traditional = !0,
  63432.         i(window.location.href) !== i(e.url) && (e.xhrFields = {
  63433.           withCredentials: !0
  63434.         }),
  63435.         e.omitDisqusApiKey || (e.data = e.data || {
  63436.         }, window.FormData && e.data instanceof window.FormData ? e.url = o.serialize(e.url, {
  63437.           api_key: a.keys.api
  63438.         }) : e.data.api_key = a.keys.api);
  63439.         var t = e.error;
  63440.         return e.error = function (e) {
  63441.           p.trigger('error', e),
  63442.           r.isFunction(t) && t(e)
  63443.         },
  63444.         n.ajax(e)
  63445.       }
  63446.       function u(e) {
  63447.         return /(https?:)?\/\//.test(e) ? l(e) : a.urls.api + e
  63448.       }
  63449.       var p = {
  63450.         ERROR_CODES: {
  63451.           OBJ_NOT_FOUND: 8,
  63452.           MAX_ITEMS_REACHED: 24
  63453.         },
  63454.         ajax: c,
  63455.         call: function (e, t) {
  63456.           return (t = t || {
  63457.           }).url = u(e),
  63458.           t.omitDisqusApiKey || (t.data = r.extend(t.data || {
  63459.           }, {
  63460.             api_key: a.keys.api
  63461.           })),
  63462.           p.trigger('call', t),
  63463.           c(t).always(r.bind(this.trigger, this, 'complete', t))
  63464.         },
  63465.         getURL: u,
  63466.         defaults: function (a) {
  63467.           Object.keys(a).forEach(function (e) {
  63468.             var t = a[e],
  63469.             n = s[e];
  63470.             r.isObject(t) && r.isObject(n) ? r.extend(n, t) : s[e] = t
  63471.           })
  63472.         },
  63473.         headers: function (e) {
  63474.           e = r.extend({
  63475.           }, s.headers, e);
  63476.           return s.headers = r.pick(e, Boolean),
  63477.           s.headers
  63478.         },
  63479.         makeHttps: l
  63480.       };
  63481.       return r.extend(p, e.Events),
  63482.       p
  63483.     }.apply(t, n);
  63484.     void 0 === n || (e.exports = n)
  63485.   },
  63486.   29: function (e, t, n) {
  63487.     'use strict';
  63488.     function r(e) {
  63489.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  63490.         return typeof e
  63491.       }
  63492.        : function (e) {
  63493.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  63494.       }) (e)
  63495.     }
  63496.     function c(e, t) {
  63497.       for (var n = 0; n < t.length; n++) {
  63498.         var a = t[n];
  63499.         a.enumerable = a.enumerable || !1,
  63500.         a.configurable = !0,
  63501.         'value' in a && (a.writable = !0),
  63502.         Object.defineProperty(e, a.key, a)
  63503.       }
  63504.     }
  63505.     function u(e, t) {
  63506.       return (u = Object.setPrototypeOf || function (e, t) {
  63507.         return e.__proto__ = t,
  63508.         e
  63509.       }) (e, t)
  63510.     }
  63511.     function p(n) {
  63512.       var a = function () {
  63513.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  63514.         if (Reflect.construct.sham) return !1;
  63515.         if ('function' == typeof Proxy) return !0;
  63516.         try {
  63517.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  63518.           ], function () {
  63519.           })),
  63520.           !0
  63521.         } catch (e) {
  63522.           return !1
  63523.         }
  63524.       }();
  63525.       return function () {
  63526.         var e,
  63527.         t = o(n);
  63528.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  63529.         t = this,
  63530.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? function (e) {
  63531.           if (void 0 !== e) return e;
  63532.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  63533.         }(t) : e
  63534.       }
  63535.     }
  63536.     function o(e) {
  63537.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  63538.         return e.__proto__ || Object.getPrototypeOf(e)
  63539.       }) (e)
  63540.     }
  63541.     n = [
  63542.       n(7),
  63543.       n(25),
  63544.       n(27)
  63545.     ],
  63546.     void 0 === (n = function (s, l, a) {
  63547.       function n(e, t, n) {
  63548.         return s.isArray(e) && (e = s.chain(e[1]).map(function (t) {
  63549.           return s.findIndex(n, function (e) {
  63550.             return s.isArray(e) ? e[0].driverName === t.driverName : e.driverName === t.driverName
  63551.           })
  63552.         }).map(function (e) {
  63553.           return - 1 < e ? e : t
  63554.         }).min().value()) < t ? e - 1 : t
  63555.       }
  63556.       function r(t, e, n) {
  63557.         return s.findLastIndex(n, function (e) {
  63558.           return t.driverName === e.driverName
  63559.         }) !== e
  63560.       }
  63561.       function o(e, t) {
  63562.         return t(e)
  63563.       }
  63564.       function i(t, e) {
  63565.         e.forEach(function (e) {
  63566.           t.propTypes = s.extend({
  63567.           }, e.propTypes, t.propTypes)
  63568.         })
  63569.       }
  63570.       return {
  63571.         createDriver: function (i, t, n) {
  63572.           function e(o) {
  63573.             var e = s.isFunction(i) ? ((e = function () {
  63574.               !function (e, t) {
  63575.                 if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  63576.                 e.prototype = Object.create(t && t.prototype, {
  63577.                   constructor: {
  63578.                     value: e,
  63579.                     writable: !0,
  63580.                     configurable: !0
  63581.                   }
  63582.                 }),
  63583.                 t && u(e, t)
  63584.               }(r, i);
  63585.               var e,
  63586.               t,
  63587.               n,
  63588.               a = p(r);
  63589.               function r() {
  63590.                 return function (e, t) {
  63591.                   if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  63592.                 }(this, r),
  63593.                 a.apply(this, arguments)
  63594.               }
  63595.               return e = r,
  63596.               (t = [
  63597.                 {
  63598.                   key: 'render',
  63599.                   value: function () {
  63600.                     var e = s.extend({
  63601.                     }, this.props, this.getComponentProps());
  63602.                     return l.createElement(o, e)
  63603.                   }
  63604.                 }
  63605.               ]) && c(e.prototype, t),
  63606.               n && c(e, n),
  63607.               r
  63608.             }()).displayName = ''.concat(o.displayName, ':').concat(i.displayName), e) : l.createClass(s.extend({
  63609.             }, i, {
  63610.               displayName: ''.concat(o.displayName, ':').concat(i.displayName),
  63611.               render: function () {
  63612.                 var e = s.extend({
  63613.                 }, this.props, this.getComponentProps());
  63614.                 return l.createElement(o, e)
  63615.               }
  63616.             }));
  63617.             return t || n ? a.connect(t, n) (e) : e
  63618.           }
  63619.           return e.driverName = i.displayName,
  63620.           e.isDriver = !0,
  63621.           e
  63622.         },
  63623.         attachDrivers: function (e, t) {
  63624.           return e.isDriver ? [
  63625.             e,
  63626.             t
  63627.           ] : s.chain(t).sortBy(n).flatten().reject(r).tap(s.partial(i, e)).reduce(o, e).value()
  63628.         }
  63629.       }
  63630.     }.apply(t, n)) || (e.exports = n)
  63631.   },
  63632.   317: function (e, t, n) {
  63633.     'use strict';
  63634.     var n = [
  63635.       n(25),
  63636.       n(34)
  63637.     ],
  63638.     n = function (r, o) {
  63639.       return function (e) {
  63640.         var t = e.forum,
  63641.         n = e.isVerified,
  63642.         a = e.onDismiss;
  63643.         return r.createElement('div', {
  63644.           className: 'newsletter-box spacing-bottom-large text-center'
  63645.         }, r.createElement('div', {
  63646.           className: o.isFeatureActive('embed_refresh', {
  63647.             forum: t.name
  63648.           }) ? 'text-large spacing-bottom-small' : 'text-medium spacing-bottom-small'
  63649.         }, r.createElement('strong', null, 'Thanks for subscribing!')), n ? r.createElement('div', {
  63650.           className: 'spacing-bottom-small'
  63651.         }, (t.aetBannerConfirmation || '').split('\n').map(function (e, t) {
  63652.           return r.createElement('div', {
  63653.             key: t
  63654.           }, e)
  63655.         })) : r.createElement('div', {
  63656.           className: 'spacing-bottom-small'
  63657.         }, 'To begin receiving email updates from ', t.name, ', please click the link in the confirmation email we\'ve sent to your inbox.'), r.createElement('a', {
  63658.           className: 'newsletter-box__hide',
  63659.           href: '#',
  63660.           onClick: function (e) {
  63661.             e.preventDefault(),
  63662.             a()
  63663.           }
  63664.         }, 'Dismiss this message'))
  63665.       }
  63666.     }.apply(t, n);
  63667.     void 0 === n || (e.exports = n)
  63668.   },
  63669.   318: function (e, t, n) {
  63670.     'use strict';
  63671.     var n = [
  63672.       n(25),
  63673.       n(61),
  63674.       n(34)
  63675.     ],
  63676.     n = function (s, e, l) {
  63677.       var c = e.gettext;
  63678.       return function (e) {
  63679.         var t = e.forum,
  63680.         n = e.isLoading,
  63681.         a = e.isLoggedIn,
  63682.         r = e.onDismiss,
  63683.         o = e.onSubscribe,
  63684.         i = e.allowEmpty;
  63685.         return s.createElement('div', {
  63686.           className: 'newsletter-box spacing-bottom-large'
  63687.         }, s.createElement('div', {
  63688.           className: l.isFeatureActive('embed_refresh', {
  63689.             forum: t.name
  63690.           }) ? 'text-large spacing-bottom-small' : 'text-medium spacing-bottom-small'
  63691.         }, s.createElement('strong', null, t.aetBannerTitle)), a ? s.createElement('button', {
  63692.           className: 'button button-fill--brand button-padding-wider pull-right',
  63693.           disabled: n,
  63694.           onClick: function () {
  63695.             o && o()
  63696.           }
  63697.         }, 'Subscribe') : null, s.createElement('div', {
  63698.           className: 'spacing-bottom'
  63699.         }, (t.aetBannerDescription || '').split('\n').map(function (e, t) {
  63700.           return s.createElement('div', {
  63701.             key: t
  63702.           }, e)
  63703.         })), s.createElement('div', {
  63704.           className: 'align align--wrap'
  63705.         }, a ? null : s.createElement('form', {
  63706.           className: 'align__item--grow',
  63707.           onSubmit: function (e) {
  63708.             e.preventDefault();
  63709.             e = e.target.elements.email.value.trim();
  63710.             (e || i) && o && o(e)
  63711.           }
  63712.         }, s.createElement('div', {
  63713.           className: 'newsletter-box__input-group'
  63714.         }, s.createElement('span', {
  63715.           className: 'icon icon-mail text-large newsletter-box__input-group__icon'
  63716.         }), s.createElement('input', {
  63717.           type: 'email',
  63718.           name: 'email',
  63719.           placeholder: c('Enter email address'),
  63720.           'aria-label': 'Enter your email address here to opt into receiving a weekly digest of the latest articles from this publisher'
  63721.         })), s.createElement('input', {
  63722.           type: 'submit',
  63723.           className: 'button button-fill--brand button-padding-wider newsletter-box__submit',
  63724.           disabled: n,
  63725.           value: c('Subscribe'),
  63726.           'aria-label': 'Submit your email address'
  63727.         })), s.createElement('a', {
  63728.           href: '#',
  63729.           className: 'newsletter-box__hide publisher-anchor-color',
  63730.           onClick: function (e) {
  63731.             e.preventDefault(),
  63732.             r && r()
  63733.           }
  63734.         }, c('Hide this message'))))
  63735.       }
  63736.     }.apply(t, n);
  63737.     void 0 === n || (e.exports = n)
  63738.   },
  63739.   32: function (e, t, n) {
  63740.     'use strict';
  63741.     function o() {
  63742.       return (o = Object.assign || function (e) {
  63743.         for (var t = 1; t < arguments.length; t++) {
  63744.           var n,
  63745.           a = arguments[t];
  63746.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  63747.         }
  63748.         return e
  63749.       }).apply(this, arguments)
  63750.     }
  63751.     function i(e, t) {
  63752.       if (null == e) return {
  63753.       };
  63754.       var n,
  63755.       a = function (e, t) {
  63756.         if (null == e) return {
  63757.         };
  63758.         var n,
  63759.         a,
  63760.         r = {
  63761.         },
  63762.         o = Object.keys(e);
  63763.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  63764.         return r
  63765.       }(e, t);
  63766.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  63767.       return a
  63768.     }
  63769.     n = [
  63770.       n(25),
  63771.       n(26),
  63772.       n(49)
  63773.     ],
  63774.     void 0 === (n = function (r, t, n) {
  63775.       return function (a) {
  63776.         function e(e, t) {
  63777.           var n = t.router,
  63778.           t = e.wrappedComponentRef,
  63779.           e = i(e, [
  63780.             'wrappedComponentRef'
  63781.           ]);
  63782.           return r.createElement(a, o({
  63783.           }, e, {
  63784.             history: n,
  63785.             ref: t
  63786.           }))
  63787.         }
  63788.         return e.displayName = 'withRouter('.concat(a.displayName || a.name, ')'),
  63789.         e.WrappedComponent = a,
  63790.         e.contextTypes = {
  63791.           router: n.routerShape.isRequired
  63792.         },
  63793.         e.propTypes = {
  63794.           wrappedComponentRef: t.func
  63795.         },
  63796.         e
  63797.       }
  63798.     }.apply(t, n)) || (e.exports = n)
  63799.   },
  63800.   33: function (e, t, n) {
  63801.     'use strict';
  63802.     function a(t, e) {
  63803.       var n,
  63804.       a = Object.keys(t);
  63805.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  63806.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  63807.       })), a.push.apply(a, n)),
  63808.       a
  63809.     }
  63810.     function r(t) {
  63811.       for (var e = 1; e < arguments.length; e++) {
  63812.         var n = null != arguments[e] ? arguments[e] : {
  63813.         };
  63814.         e % 2 ? a(Object(n), !0).forEach(function (e) {
  63815.           o(t, e, n[e])
  63816.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : a(Object(n)).forEach(function (e) {
  63817.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  63818.         })
  63819.       }
  63820.       return t
  63821.     }
  63822.     function o(e, t, n) {
  63823.       return t in e ? Object.defineProperty(e, t, {
  63824.         value: n,
  63825.         enumerable: !0,
  63826.         configurable: !0,
  63827.         writable: !0
  63828.       }) : e[t] = n,
  63829.       e
  63830.     }
  63831.     n = [
  63832.       t,
  63833.       n(26)
  63834.     ],
  63835.     void 0 === (n = function (e, n) {
  63836.       e.SAAS_PRODUCT_COMMENTS = 'comments',
  63837.       e.SAAS_PRODUCT_POLLS = 'polls',
  63838.       e.SAAS_PRODUCT_PLAN_CANCELLED_STATUS = 'canceled',
  63839.       e.SAAS_PRODUCT_PLAN_ACTIVE_STATUS = 'active',
  63840.       e.SAAS_PRODUCT_PLAN_TRIALING_STATUS = 'trialing',
  63841.       e.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS = 'past_due',
  63842.       e.SAAS_PRODUCT_PLAN_UNPAID_STATUS = 'unpaid',
  63843.       e.SAAS_PRODUCT_PLANS = [
  63844.         e.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  63845.         e.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  63846.         e.SAAS_PRODUCT_PLAN_TRIALING_STATUS,
  63847.         e.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS
  63848.       ],
  63849.       e.SAAS_PRODUCT_PLAN_ACTIVE_STATUSES_SET = new Set([e.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  63850.       e.SAAS_PRODUCT_PLAN_TRIALING_STATUS,
  63851.       e.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS]),
  63852.       e.DISQUS_BASIC_PACKAGE_ID = - 10,
  63853.       e.DISQUS_PLUS_PACKAGE_ID = 1,
  63854.       e.DISQUS_PLUS_FREE_PACKAGE_ID = 4,
  63855.       e.DISQUS_BUSINESS_PACKAGE_ID = 2,
  63856.       e.DISQUS_PRO_PACKAGE_ID = 3,
  63857.       e.DISQUS_PREFERRED_CUSTOMER_PACKAGE_ID = 5,
  63858.       e.DISQUS_BASIC_PLAN_ID = 'basic__plan',
  63859.       e.DISQUS_PLUS_PLAN_ID = 'plus',
  63860.       e.DISQUS_PLUS_ANNUAL_PLAN_ID = 'plus-yearly',
  63861.       e.DISQUS_PLUS_2021_PLAN_ID = 'plus-2021',
  63862.       e.DISQUS_PLUS_ANNUAL_2021_PLAN_ID = 'plus-yearly-2021',
  63863.       e.DISQUS_PLUS_100K_PLAN_ID = 'plus-100k-monthly',
  63864.       e.DISQUS_PLUS_100K_YEARLY_PLAN_ID = 'plus-100k-yearly',
  63865.       e.DISQUS_PLUS_350K_PLAN_ID = 'plus-350k-monthly',
  63866.       e.DISQUS_PLUS_350K_YEARLY_PLAN_ID = 'plus-350k-yearly',
  63867.       e.DISQUS_PLUS_900K_PLAN_ID = 'plus-900k-monthly',
  63868.       e.DISQUS_PLUS_900K_YEARLY_PLAN_ID = 'plus-900k-yearly',
  63869.       e.DISQUS_PLUS_FREE_PLAN_ID = 'non-commercial-free',
  63870.       e.DISQUS_PRO_PLAN_ID = 'pro',
  63871.       e.DISQUS_PRO_ANNUAL_PLAN_ID = 'pro-yearly',
  63872.       e.DISQUS_PRO_2021_PLAN_ID = 'pro-2021',
  63873.       e.DISQUS_PRO_ANNUAL_2021_PLAN_ID = 'pro-yearly-2021',
  63874.       e.DISQUS_PRO_1M_PLAN_ID = 'pro-1m-monthly',
  63875.       e.DISQUS_PRO_1M_YEARLY_PLAN_ID = 'pro-1m-yearly',
  63876.       e.DISQUS_PRO_2_5M_PLAN_ID = 'pro-2_5m-monthly',
  63877.       e.DISQUS_PRO_2_5M_YEARLY_PLAN_ID = 'pro-2_5m-yearly',
  63878.       e.DISQUS_PRO_5M_PLAN_ID = 'pro-5m-monthly',
  63879.       e.DISQUS_PRO_5M_YEARLY_PLAN_ID = 'pro-5m-yearly',
  63880.       e.DISQUS_BUSINESS_PLAN_ID = 'business',
  63881.       e.DISQUS_POLLS_PRO_PACKAGE_ID = 6,
  63882.       e.DISQUS_POLLS_BUSINESS_PACKAGE_ID = 7,
  63883.       e.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID = 8,
  63884.       e.DISQUS_POLLS_AD_SUPPORTED_PLAN_ID = 'polls-ad-supported',
  63885.       e.DISQUS_POLLS_PRO_250K_PLAN_ID = 'polls-pro-250k-monthly',
  63886.       e.DISQUS_POLLS_PRO_ANNUAL_250K_PLAN_ID = 'polls-pro-250k-yearly',
  63887.       e.DISQUS_POLLS_PRO_1_5M_PLAN_ID = 'polls-pro-1_5m-monthly',
  63888.       e.DISQUS_POLLS_PRO_1_5M_YEARLY_PLAN_ID = 'polls-pro-1_5m-yearly',
  63889.       e.DISQUS_POLLS_PRO_3M_PLAN_ID = 'polls-pro-3m-monthly',
  63890.       e.DISQUS_POLLS_PRO_3M_YEARLY_PLAN_ID = 'polls-pro-3m-yearly',
  63891.       e.DISQUS_POLLS_PRO_10M_PLAN_ID = 'polls-pro-10m-monthly',
  63892.       e.DISQUS_POLLS_PRO_10M_YEARLY_PLAN_ID = 'polls-pro-10m-yearly',
  63893.       e.DISQUS_POLLS_BUSINESS_PLAN_ID = 'polls-business',
  63894.       e.PAYMENT_INTERVAL = {
  63895.         month: 'monthly',
  63896.         year: 'annual'
  63897.       },
  63898.       e.OLD_PLAN_IDS = [
  63899.         e.DISQUS_PLUS_PLAN_ID,
  63900.         e.DISQUS_PLUS_ANNUAL_PLAN_ID,
  63901.         e.DISQUS_PRO_PLAN_ID,
  63902.         e.DISQUS_PRO_ANNUAL_PLAN_ID
  63903.       ],
  63904.       e.PLUS_MONTHLY_SLIDER_PLAN_IDS = [
  63905.         e.DISQUS_PLUS_100K_PLAN_ID,
  63906.         e.DISQUS_PLUS_350K_PLAN_ID,
  63907.         e.DISQUS_PLUS_900K_PLAN_ID
  63908.       ],
  63909.       e.PLUS_YEARLY_SLIDER_PLAN_IDS = [
  63910.         e.DISQUS_PLUS_100K_YEARLY_PLAN_ID,
  63911.         e.DISQUS_PLUS_350K_YEARLY_PLAN_ID,
  63912.         e.DISQUS_PLUS_900K_YEARLY_PLAN_ID
  63913.       ],
  63914.       e.PRO_MONTHLY_SLIDER_PLAN_IDS = [
  63915.         e.DISQUS_PRO_1M_PLAN_ID,
  63916.         e.DISQUS_PRO_2_5M_PLAN_ID,
  63917.         e.DISQUS_PRO_5M_PLAN_ID
  63918.       ],
  63919.       e.PRO_YEARLY_SLIDER_PLAN_IDS = [
  63920.         e.DISQUS_PRO_1M_YEARLY_PLAN_ID,
  63921.         e.DISQUS_PRO_2_5M_YEARLY_PLAN_ID,
  63922.         e.DISQUS_PRO_5M_YEARLY_PLAN_ID
  63923.       ],
  63924.       e.POLLS_PRO_MONTHLY_SLIDER_PLAN_IDS = [
  63925.         e.DISQUS_POLLS_PRO_250K_PLAN_ID,
  63926.         e.DISQUS_POLLS_PRO_1_5M_PLAN_ID,
  63927.         e.DISQUS_POLLS_PRO_3M_PLAN_ID,
  63928.         e.DISQUS_POLLS_PRO_10M_PLAN_ID
  63929.       ],
  63930.       e.POLLS_PRO_YEARLY_SLIDER_PLAN_IDS = [
  63931.         e.DISQUS_POLLS_PRO_ANNUAL_250K_PLAN_ID,
  63932.         e.DISQUS_POLLS_PRO_1_5M_YEARLY_PLAN_ID,
  63933.         e.DISQUS_POLLS_PRO_3M_YEARLY_PLAN_ID,
  63934.         e.DISQUS_POLLS_PRO_10M_YEARLY_PLAN_ID
  63935.       ],
  63936.       e.ADS_OPTIONAL_FEATURE_ID = 1,
  63937.       e.AD_SUPPORTED_FEATURE_ID = - 19,
  63938.       e.SERVER_FEATURES = {
  63939.         ADS_OPTIONAL: {
  63940.           id: 1,
  63941.           name: 'Ads Optional'
  63942.         },
  63943.         SHADOW_BANNING: {
  63944.           id: 2,
  63945.           name: 'Shadow Banning'
  63946.         },
  63947.         ADVANCED_ANALYTICS: {
  63948.           id: 3,
  63949.           name: 'Advanced Analytics'
  63950.         },
  63951.         PRIORITY_SUPPORT: {
  63952.           id: 4,
  63953.           name: 'Priority Support'
  63954.         },
  63955.         BRANDING_OPTIONAL: {
  63956.           id: 5,
  63957.           name: 'Branding Optional'
  63958.         },
  63959.         SSO: {
  63960.           id: 6,
  63961.           name: 'Single Sign-On'
  63962.         },
  63963.         PARTNER_KEY: {
  63964.           id: 8,
  63965.           name: 'Unlimited API Access'
  63966.         },
  63967.         TEMPORARY_BANNING: {
  63968.           id: 10,
  63969.           name: 'Timeouts'
  63970.         },
  63971.         DIRECT_SUPPORT: {
  63972.           id: 11,
  63973.           name: 'Direct Support'
  63974.         },
  63975.         AUDIENCE_EMAIL_TRANSFER: {
  63976.           id: 12,
  63977.           name: 'Email Subscriptions'
  63978.         },
  63979.         ALL_MOD_RULES: {
  63980.           id: 13,
  63981.           name: 'All Moderation Rules'
  63982.         },
  63983.         THREAD_RATINGS: {
  63984.           id: 14,
  63985.           name: 'Star Ratings'
  63986.         },
  63987.         CUSTOM_REACTIONS: {
  63988.           id: 15,
  63989.           name: 'Custom Reactions'
  63990.         },
  63991.         EMBED_CUSTOMIZATIONS: {
  63992.           id: 16,
  63993.           name: 'Embed Customizations'
  63994.         },
  63995.         BADGES: {
  63996.           id: 19,
  63997.           name: 'Commenter Badges'
  63998.         }
  63999.       },
  64000.       e.DISPLAY_FEATURES = {
  64001.         EVERYTHING_BASIC: {
  64002.           id: - 1,
  64003.           name: 'Everything in Basic',
  64004.           isBold: !0
  64005.         },
  64006.         EVERYTHING_PLUS: {
  64007.           id: - 2,
  64008.           name: 'Everything in Plus',
  64009.           isBold: !0
  64010.         },
  64011.         DIRECT_ACCOUNT_MANAGER: {
  64012.           id: - 3,
  64013.           name: 'Direct Account Manager'
  64014.         },
  64015.         COMMENTS_PLUG_IN: {
  64016.           id: - 4,
  64017.           name: 'Comments Plug-in'
  64018.         },
  64019.         ADVANCED_SPAM_FILTERS: {
  64020.           id: - 5,
  64021.           name: 'Advanced Spam Filters'
  64022.         },
  64023.         MODERATION_TOOLS: {
  64024.           id: - 6,
  64025.           name: 'Moderation Tools'
  64026.         },
  64027.         BASIC_ANALYTICS: {
  64028.           id: - 7,
  64029.           name: 'Basic Analytics'
  64030.         },
  64031.         CONFIGURABLE_ADS: {
  64032.           id: - 8,
  64033.           name: 'Configurable Ads'
  64034.         },
  64035.         REACTIONS: {
  64036.           id: - 9,
  64037.           name: 'Reactions'
  64038.         },
  64039.         EVERYTHING_PRO: {
  64040.           id: - 10,
  64041.           name: 'Everything in Pro',
  64042.           isBold: !0
  64043.         },
  64044.         LIGHTBOXES_PROMPTS: {
  64045.           id: - 11,
  64046.           name: 'Targeted Lightboxes and Sign-up Prompts'
  64047.         },
  64048.         AI_RECOMMENDATIONS: {
  64049.           id: - 12,
  64050.           name: 'AI-powered Content Recommendations'
  64051.         },
  64052.         EMAIL_PERSONALIZATION: {
  64053.           id: - 13,
  64054.           name: 'Branded Email Notifications'
  64055.         },
  64056.         DISQUS_CORE_FEATURES: {
  64057.           id: - 14,
  64058.           name: 'Disqus Core Features'
  64059.         },
  64060.         FORUM_LIMIT_PLUS: {
  64061.           id: - 15,
  64062.           name: 'Supports up to 3 Websites'
  64063.         },
  64064.         FORUM_LIMIT_PRO: {
  64065.           id: - 16,
  64066.           name: 'Supports up to 20 Websites'
  64067.         },
  64068.         FORUM_LIMIT_BUSINESS: {
  64069.           id: - 17,
  64070.           name: 'Supports Unlimited Websites'
  64071.         },
  64072.         ADVANCED_MODERATION: {
  64073.           id: - 18,
  64074.           name: 'Advanced Moderation Tools'
  64075.         },
  64076.         AD_SUPPORTED: {
  64077.           id: - 19,
  64078.           name: 'Ad Supported'
  64079.         },
  64080.         CUSTOM_FONTS: {
  64081.           id: - 20,
  64082.           name: 'Custom Fonts'
  64083.         },
  64084.         CUSTOM_BRANDING: {
  64085.           id: - 27,
  64086.           name: 'Custom Branding & Optimizations'
  64087.         },
  64088.         DIRECT_EMAIL_SUPPORT: {
  64089.           id: - 28,
  64090.           name: 'Direct Email Support'
  64091.         }
  64092.       },
  64093.       e.RENDER_FEATURE_TEXT = {
  64094.         1: 'Ad-Free',
  64095.         2: 'Shadow Banning',
  64096.         3: 'Advanced Analytics',
  64097.         4: 'Priority Support',
  64098.         5: 'Whitelabeling',
  64099.         6: 'SSO Integration',
  64100.         8: 'Unlimited API Access',
  64101.         10: 'Timeouts',
  64102.         11: 'Direct Support',
  64103.         12: 'Email Subscriptions',
  64104.         13: 'All Moderation Rules',
  64105.         14: 'Star Ratings',
  64106.         15: 'Custom Reactions',
  64107.         19: 'Commenter Badges',
  64108.         '-1': 'Everything in Basic',
  64109.         '-2': 'Everything in Plus',
  64110.         '-3': 'Direct Account Manager',
  64111.         '-4': 'Comments Plug-in',
  64112.         '-5': 'Advanced Spam Filters',
  64113.         '-6': 'Moderation Tools',
  64114.         '-7': 'Basic Analytics',
  64115.         '-8': 'Configurable Ads',
  64116.         '-9': 'Reactions',
  64117.         '-10': 'Everything in Pro',
  64118.         '-11': 'Targeted Lightboxes',
  64119.         '-12': 'AI-powered Content Recommendations',
  64120.         '-13': 'Branded Email Notifications',
  64121.         '-14': 'Disqus Core Features',
  64122.         '-15': 'Supports up to 3 Websites',
  64123.         '-16': 'Supports up to 20 Websites',
  64124.         '-17': 'Supports Unlimited Websites',
  64125.         '-18': 'Advanced Moderation Tools',
  64126.         '-19': 'Ad-Supported',
  64127.         '-20': 'Custom Fonts',
  64128.         '-21': 'Disqus Comment Platform',
  64129.         '-22': 'Core Engagement Features',
  64130.         '-23': 'Easy Installation',
  64131.         '-24': 'Basic Reporting and Analytics',
  64132.         '-25': 'Simple Moderation Tools',
  64133.         '-26': 'Cross-site and Email Notifications',
  64134.         '-27': 'Custom Branding & Optimizations',
  64135.         '-28': 'Direct Email Support',
  64136.         '-29': 'Essential Moderation Tools',
  64137.         '-30': '3 Moderator Seats',
  64138.         '-31': 'AI Moderation Features',
  64139.         '-32': 'Customizable Engagement Tools',
  64140.         '-33': 'Unlimited Moderator Seats',
  64141.         '-34': 'Free',
  64142.         '-35': 'Customizable question formats',
  64143.         '-36': 'Flexible poll placements',
  64144.         '-37': 'Real-time Results & Analytics',
  64145.         '-38': 'Custom Integrations',
  64146.         '-39': 'Dedicated Account Management',
  64147.         '-40': 'Remove Disqus Branding'
  64148.       },
  64149.       e.BASIC_PLAN = {
  64150.         id: e.DISQUS_BASIC_PLAN_ID,
  64151.         description: null,
  64152.         interval: null,
  64153.         amount: 0,
  64154.         trialLengthDays: null,
  64155.         isEligible: !0,
  64156.         productName: e.SAAS_PRODUCT_COMMENTS
  64157.       },
  64158.       e.BASIC_PACKAGE = {
  64159.         id: e.DISQUS_BASIC_PACKAGE_ID,
  64160.         name: 'Ad-Supported',
  64161.         color: '#494E58',
  64162.         pageViewRange: {
  64163.           min: 0,
  64164.           max: null
  64165.         },
  64166.         features: [
  64167.           e.DISPLAY_FEATURES.COMMENTS_PLUG_IN,
  64168.           e.DISPLAY_FEATURES.ADVANCED_SPAM_FILTERS,
  64169.           e.DISPLAY_FEATURES.MODERATION_TOOLS,
  64170.           e.DISPLAY_FEATURES.BASIC_ANALYTICS,
  64171.           e.DISPLAY_FEATURES.CONFIGURABLE_ADS,
  64172.           e.DISPLAY_FEATURES.REACTIONS
  64173.         ],
  64174.         plans: [
  64175.           e.BASIC_PLAN
  64176.         ],
  64177.         productName: e.SAAS_PRODUCT_COMMENTS
  64178.       },
  64179.       e.BASIC_SUBSCRIPTION = {
  64180.         amount: '0.00',
  64181.         amountRemaining: '0.00',
  64182.         currentPeriodEnd: null,
  64183.         currentPeriodStart: null,
  64184.         status: e.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  64185.         trialEnd: null,
  64186.         trialStart: null
  64187.       },
  64188.       e.POLLS_BUSINESS_PLAN = {
  64189.         id: e.DISQUS_POLLS_BUSINESS_PLAN_ID,
  64190.         description: null,
  64191.         interval: null,
  64192.         amount: 0,
  64193.         trialLengthDays: null,
  64194.         isEligible: !0,
  64195.         productName: e.SAAS_PRODUCT_POLLS
  64196.       },
  64197.       e.POLLS_AD_SUPPORTED_PLAN = {
  64198.         id: e.DISQUS_POLLS_AD_SUPPORTED_PLAN_ID,
  64199.         description: null,
  64200.         interval: null,
  64201.         amount: 0,
  64202.         trialLengthDays: null,
  64203.         isEligible: !0,
  64204.         productName: e.SAAS_PRODUCT_POLLS
  64205.       },
  64206.       e.COUPON_SHAPE = n.shape({
  64207.         amountOff: n.number,
  64208.         percentOff: n.number,
  64209.         duration: n.string.isRequired,
  64210.         durationInMonths: n.number,
  64211.         stripeId: n.string.isRequired
  64212.       }),
  64213.       e.PLAN_SHAPE = n.shape({
  64214.         id: n.string.isRequired,
  64215.         description: n.node,
  64216.         amount: n.number,
  64217.         hasTrialAvailable: n.bool,
  64218.         isSubscribed: n.bool,
  64219.         interval: n.oneOf(['month',
  64220.         'year']),
  64221.         trialLengthDays: n.number,
  64222.         isEligible: n.bool,
  64223.         productName: n.oneOf([e.SAAS_PRODUCT_COMMENTS,
  64224.         e.SAAS_PRODUCT_POLLS])
  64225.       }),
  64226.       e.FEATURE_SHAPE = n.shape({
  64227.         id: n.number.isRequired,
  64228.         name: n.string.isRequired,
  64229.         isCustom: n.bool,
  64230.         isBold: n.bool
  64231.       }),
  64232.       e.PACKAGE_SHAPE = n.shape({
  64233.         id: n.number.isRequired,
  64234.         name: n.string.isRequired,
  64235.         color: n.string.isRequired,
  64236.         isSubscribed: n.bool.isRequired,
  64237.         plans: n.arrayOf(e.PLAN_SHAPE).isRequired,
  64238.         pageViewRange: n.shape({
  64239.           min: n.number,
  64240.           max: n.number
  64241.         }).isRequired,
  64242.         features: n.arrayOf(e.FEATURE_SHAPE).isRequired
  64243.       }),
  64244.       e.TRIAL_SHAPE = n.shape({
  64245.         startDate: n.string,
  64246.         endDate: n.string,
  64247.         isActive: n.bool.isRequired
  64248.       }),
  64249.       e.CURRENT_SUBSCRIPTION_SHAPE = n.shape({
  64250.         amount: n.string,
  64251.         amountRemaining: n.string,
  64252.         currentPeriodEnd: n.string,
  64253.         currentPeriodStart: n.string,
  64254.         status: n.oneOf([e.SAAS_PRODUCT_PLAN_TRIALING_STATUS,
  64255.         e.SAAS_PRODUCT_PLAN_ACTIVE_STATUS,
  64256.         e.SAAS_PRODUCT_PLAN_PAST_DUE_STATUS,
  64257.         e.SAAS_PRODUCT_PLAN_CANCELLED_STATUS,
  64258.         e.SAAS_PRODUCT_PLAN_UNPAID_STATUS]).isRequired,
  64259.         trialEnd: n.string,
  64260.         trialStart: n.string
  64261.       }),
  64262.       e.INVOICE_FIELDS = [
  64263.         'companyName',
  64264.         'taxId',
  64265.         'street',
  64266.         'city',
  64267.         'state',
  64268.         'country',
  64269.         'zipCode'
  64270.       ],
  64271.       e.INVOICE_SHAPE = e.INVOICE_FIELDS.reduce(function (e, t) {
  64272.         return r(r({
  64273.         }, e), {
  64274.         }, o({
  64275.         }, t, n.string))
  64276.       }, {
  64277.       }),
  64278.       e.ORG_BILLING_SHAPE = n.shape({
  64279.         currentSubscription: e.CURRENT_SUBSCRIPTION_SHAPE,
  64280.         invoiceHistory: n.arrayOf(n.shape({
  64281.           date: n.string.isRequired,
  64282.           total: n.string.isRequired,
  64283.           paid: n.bool.isRequired
  64284.         })).isRequired,
  64285.         paymentInfo: n.shape({
  64286.           last4: n.string.isRequired,
  64287.           expMonth: n.number.isRequired,
  64288.           expYear: n.number.isRequired,
  64289.           brand: n.string
  64290.         }),
  64291.         invoiceInfo: n.shape(e.INVOICE_SHAPE)
  64292.       }),
  64293.       e.CHECKOUT_SUCCESS_QUERY_PARAM = 'checkout',
  64294.       e.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_COMMENTS = '1',
  64295.       e.CHECKOUT_SUCCESS_QUERY_PARAM_VALUE_POLLS = '2'
  64296.     }.apply(t, n)) || (e.exports = n)
  64297.   },
  64298.   34: function (e, t, n) {
  64299.     var n = [
  64300.       n(7),
  64301.       n(8),
  64302.       n(2),
  64303.       n(39),
  64304.       n(42)
  64305.     ],
  64306.     n = function (r, n, o, a, i) {
  64307.       'use strict';
  64308.       var s = {
  64309.       },
  64310.       l = {
  64311.         _getKey: function (e) {
  64312.           return 'switch:' + e
  64313.         },
  64314.         disableFeature: function (e) {
  64315.           s[e] = !1
  64316.         },
  64317.         resetFeature: function (e) {
  64318.           s[e] = null
  64319.         },
  64320.         forceFeature: function (e) {
  64321.           s[e] = !0
  64322.         },
  64323.         getSwitchContext: function (e) {
  64324.           var t = a.get(this._getKey(e));
  64325.           if (null !== t) return t;
  64326.           t = s[e];
  64327.           return null != t ? t : (n.lounge && n.lounge.switches || {
  64328.           }) [e]
  64329.         },
  64330.         isFeatureActive: function (e, t) {
  64331.           var n = l.getSwitchContext(e);
  64332.           if (r.isBoolean(n)) return n;
  64333.           if (!n) return !1;
  64334.           var e = i.getFromCookie(),
  64335.           e = {
  64336.             percent: o.clientPercent(),
  64337.             user_id: e.id,
  64338.             username: e.username,
  64339.             is_staff: e.staff,
  64340.             is_moderator: e.isModerator
  64341.           },
  64342.           a = r.defaults(t || {
  64343.           }, e);
  64344.           return r.any(n, function (e, t) {
  64345.             var n = a[t];
  64346.             if (/percent$/.test(t) && r.isNumber(e)) {
  64347.               if (r.isNumber(n)) return n < e;
  64348.               if (r.isString(n)) {
  64349.                 t = 0;
  64350.                 return e !== Math.round(e) && (t = ('' + e).split('.').pop().length),
  64351.                 e > o.getPercentBucketForString(n, t)
  64352.               }
  64353.               return !1
  64354.             }
  64355.             return r.isArray(e) ? r.contains(e, n) : e === n
  64356.           })
  64357.         }
  64358.       };
  64359.       return l
  64360.     }.apply(t, n);
  64361.     void 0 === n || (e.exports = n)
  64362.   },
  64363.   35: function (e, t, n) {
  64364.     'use strict';
  64365.     var a,
  64366.     r,
  64367.     o,
  64368.     i,
  64369.     s;
  64370.     a = /(^|\.)disqus\.com$/.test(window.location.host) ? 'disqus.com' : 'dev.disqus.org:8000',
  64371.     o = (r = 'disqus.com' == a ? 'https://' : 'http://') + a,
  64372.     i = window.location.host.split(a) [0].replace('.', ''),
  64373.     s = r + window.location.host,
  64374.     o = {
  64375.       urls: {
  64376.         api: ''.concat(r).concat(a, '/api/3.0/'),
  64377.         createSite: ''.concat(o, '/admin/create/'),
  64378.         cdnCurrent: 'https://c.disquscdn.com/next/current/embed/'
  64379.       },
  64380.       disqusHost: a,
  64381.       currentForum: i,
  64382.       keys: {
  64383.         api: 'Y1S1wGIzdc63qnZ5rhHfjqEABGA4ZTDncauWFFWWTUBqkmLjdxloTb7ilhGnZ7z1',
  64384.         stripe: 'pk_live_XiH6fxBBLXCOH7KF6K7fDlGf',
  64385.         segmentIO: 'WskYYFRdZvvOmLhuFN9r7ZygELBNKkvH'
  64386.       },
  64387.       debug: !1,
  64388.       disqusUrl: o,
  64389.       resync_forum_url: ''.concat(s, '/admin/discussions/import/platform/blogger/resync/'),
  64390.       bloggerSyncOauthUrl: ''.concat(o, '/_ax/blogger/begin'),
  64391.       intercomAppId: 'x2byp8hg',
  64392.       feedApiVersion: '12'
  64393.     },
  64394.     e.exports = o
  64395.   },
  64396.   37: function (Ht, e) {
  64397.     !function (f, O) {
  64398.       function t(e, t) {
  64399.         return t.toUpperCase()
  64400.       }
  64401.       function a(e) {
  64402.         !g.addEventListener && 'load' !== e.type && 'complete' !== g.readyState || (x(), de.ready())
  64403.       }
  64404.       var r,
  64405.       h = typeof O,
  64406.       g = f.document,
  64407.       e = f.location,
  64408.       n = f.jQuery,
  64409.       o = f.$,
  64410.       i = {
  64411.       },
  64412.       p = [
  64413.       ],
  64414.       y = p.concat,
  64415.       s = p.push,
  64416.       u = p.slice,
  64417.       l = p.indexOf,
  64418.       c = i.toString,
  64419.       b = i.hasOwnProperty,
  64420.       d = '1.9.1'.trim,
  64421.       de = function (e, t) {
  64422.         return new de.fn.init(e, t, D)
  64423.       },
  64424.       m = '[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)',
  64425.       S = /\S+/g,
  64426.       v = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
  64427.       _ = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,
  64428.       E = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
  64429.       w = /^[\],:{}\s]*$/,
  64430.       P = /(?:^|:|,)(?:\s*\[)+/g,
  64431.       k = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
  64432.       N = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
  64433.       C = /^-ms-/,
  64434.       R = /-([\da-z])/gi,
  64435.       x = function () {
  64436.         g.addEventListener ? (g.removeEventListener('DOMContentLoaded', a, !1), f.removeEventListener('load', a, !1)) : (g.detachEvent('onreadystatechange', a), f.detachEvent('onload', a))
  64437.       };
  64438.       function A(e) {
  64439.         var t = e.length,
  64440.         n = de.type(e);
  64441.         return !de.isWindow(e) && (!(1 !== e.nodeType || !t) || ('array' === n || 'function' !== n && (0 === t || 'number' == typeof t && 0 < t && t - 1 in e)))
  64442.       }
  64443.       de.fn = de.prototype = {
  64444.         jquery: '1.9.1',
  64445.         constructor: de,
  64446.         init: function (e, t, n) {
  64447.           var a,
  64448.           r;
  64449.           if (!e) return this;
  64450.           if ('string' != typeof e) return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : de.isFunction(e) ? n.ready(e) : (e.selector !== O && (this.selector = e.selector, this.context = e.context), de.makeArray(e, this));
  64451.           if (!(a = '<' == (e[0] || '') && '>' == (e[0 | e.length - 1] || '') && 3 <= e.length ? [
  64452.             null,
  64453.             e,
  64454.             null
  64455.           ] : _.exec(e)) || !a[1] && t) return (!t || t.jquery ? t || n : this.constructor(t)).find(e);
  64456.           if (a[1]) {
  64457.             if (de.merge(this, de.parseHTML(a[1], (t = t instanceof de ? t[0] : t) && t.nodeType ? t.ownerDocument || t : g, !0)), E.test(a[1]) && de.isPlainObject(t)) for (a in t) de.isFunction(this[a]) ? this[a](t[a]) : this.attr(a, t[a]);
  64458.             return this
  64459.           }
  64460.           if ((r = g.getElementById(a[2])) && r.parentNode) {
  64461.             if (r.id !== a[2]) return n.find(e);
  64462.             this.length = 1,
  64463.             this[0] = r
  64464.           }
  64465.           return this.context = g,
  64466.           this.selector = e,
  64467.           this
  64468.         },
  64469.         selector: '',
  64470.         length: 0,
  64471.         size: function () {
  64472.           return this.length
  64473.         },
  64474.         toArray: function () {
  64475.           return u.call(this)
  64476.         },
  64477.         get: function (e) {
  64478.           return null == e ? this.toArray() : e < 0 ? this[this.length + e] : this[e]
  64479.         },
  64480.         pushStack: function (e) {
  64481.           e = de.merge(this.constructor(), e);
  64482.           return e.prevObject = this,
  64483.           e.context = this.context,
  64484.           e
  64485.         },
  64486.         each: function (e, t) {
  64487.           return de.each(this, e, t)
  64488.         },
  64489.         ready: function (e) {
  64490.           return de.ready.promise().done(e),
  64491.           this
  64492.         },
  64493.         slice: function () {
  64494.           return this.pushStack(u.apply(this, arguments))
  64495.         },
  64496.         first: function () {
  64497.           return this.eq(0)
  64498.         },
  64499.         last: function () {
  64500.           return this.eq( - 1)
  64501.         },
  64502.         eq: function (e) {
  64503.           var t = this.length,
  64504.           e = + e + (e < 0 ? t : 0);
  64505.           return this.pushStack(0 <= e && e < t ? [
  64506.             this[e]
  64507.           ] : [
  64508.           ])
  64509.         },
  64510.         map: function (n) {
  64511.           return this.pushStack(de.map(this, function (e, t) {
  64512.             return n.call(e, t, e)
  64513.           }))
  64514.         },
  64515.         end: function () {
  64516.           return this.prevObject || this.constructor(null)
  64517.         },
  64518.         push: s,
  64519.         sort: [
  64520.         ].sort,
  64521.         splice: [
  64522.         ].splice
  64523.       },
  64524.       de.fn.init.prototype = de.fn,
  64525.       de.extend = de.fn.extend = function () {
  64526.         var e,
  64527.         t,
  64528.         n,
  64529.         a,
  64530.         r,
  64531.         o = arguments[0] || {
  64532.         },
  64533.         i = 1,
  64534.         s = arguments.length,
  64535.         l = !1;
  64536.         for ('boolean' == typeof o && (l = o, o = arguments[1] || {
  64537.         }, i = 2), 'object' == typeof o || de.isFunction(o) || (o = {
  64538.         }), s === i && (o = this, --i); i < s; i++) if (null != (a = arguments[i])) for (n in a) r = o[n],
  64539.         o !== (t = a[n]) && (l && t && (de.isPlainObject(t) || (e = de.isArray(t))) ? (r = e ? (e = !1, r && de.isArray(r) ? r : [
  64540.         ]) : r && de.isPlainObject(r) ? r : {
  64541.         }, o[n] = de.extend(l, r, t)) : t !== O && (o[n] = t));
  64542.         return o
  64543.       },
  64544.       de.extend({
  64545.         noConflict: function (e) {
  64546.           return f.$ === de && (f.$ = o),
  64547.           e && f.jQuery === de && (f.jQuery = n),
  64548.           de
  64549.         },
  64550.         isReady: !1,
  64551.         readyWait: 1,
  64552.         holdReady: function (e) {
  64553.           e ? de.readyWait++ : de.ready(!0)
  64554.         },
  64555.         ready: function (e) {
  64556.           if (!0 === e ? !--de.readyWait : !de.isReady) {
  64557.             if (!g.body) return setTimeout(de.ready);
  64558.             (de.isReady = !0) !== e && 0 < --de.readyWait || (r.resolveWith(g, [
  64559.               de
  64560.             ]), de.fn.trigger && de(g).trigger('ready').off('ready'))
  64561.           }
  64562.         },
  64563.         isFunction: function (e) {
  64564.           return 'function' === de.type(e)
  64565.         },
  64566.         isArray: Array.isArray || function (e) {
  64567.           return 'array' === de.type(e)
  64568.         },
  64569.         isWindow: function (e) {
  64570.           return null != e && e == e.window
  64571.         },
  64572.         isNumeric: function (e) {
  64573.           return !isNaN(parseFloat(e)) && isFinite(e)
  64574.         },
  64575.         type: function (e) {
  64576.           return null == e ? '' + e : 'object' == typeof e || 'function' == typeof e ? i[c.call(e)] || 'object' : typeof e
  64577.         },
  64578.         isPlainObject: function (e) {
  64579.           if (!e || 'object' !== de.type(e) || e.nodeType || de.isWindow(e)) return !1;
  64580.           try {
  64581.             if (e.constructor && !b.call(e, 'constructor') && !b.call(e.constructor.prototype, 'isPrototypeOf')) return !1
  64582.           } catch (e) {
  64583.             return !1
  64584.           }
  64585.           for (var t in e);
  64586.           return t === O || b.call(e, t)
  64587.         },
  64588.         isEmptyObject: function (e) {
  64589.           for (var t in e) return !1;
  64590.           return !0
  64591.         },
  64592.         error: function (e) {
  64593.           throw Error(e)
  64594.         },
  64595.         parseHTML: function (e, t, n) {
  64596.           if (!e || 'string' != typeof e) return null;
  64597.           'boolean' == typeof t && (n = t, t = !1),
  64598.           t = t || g;
  64599.           var a = E.exec(e),
  64600.           n = !n && [
  64601.           ];
  64602.           return a ? [
  64603.             t.createElement(a[1])
  64604.           ] : (a = de.buildFragment([e], t, n), n && de(n).remove(), de.merge([], a.childNodes))
  64605.         },
  64606.         parseJSON: function (e) {
  64607.           return f.JSON && f.JSON.parse ? f.JSON.parse(e) : null === e ? e : 'string' == typeof e && (e = de.trim(e)) && w.test(e.replace(k, '@').replace(N, ']').replace(P, '')) ? Function('return ' + e) () : void de.error('Invalid JSON: ' + e)
  64608.         },
  64609.         parseXML: function (e) {
  64610.           var t;
  64611.           if (!e || 'string' != typeof e) return null;
  64612.           try {
  64613.             f.DOMParser ? t = (new DOMParser).parseFromString(e, 'text/xml') : ((t = new ActiveXObject('Microsoft.XMLDOM')).async = 'false', t.loadXML(e))
  64614.           } catch (e) {
  64615.             t = O
  64616.           }
  64617.           return t && t.documentElement && !t.getElementsByTagName('parsererror').length || de.error('Invalid XML: ' + e),
  64618.           t
  64619.         },
  64620.         noop: function () {
  64621.         },
  64622.         globalEval: function (e) {
  64623.           e && de.trim(e) && (f.execScript || function (e) {
  64624.             f.eval.call(f, e)
  64625.           }) (e)
  64626.         },
  64627.         camelCase: function (e) {
  64628.           return e.replace(C, 'ms-').replace(R, t)
  64629.         },
  64630.         nodeName: function (e, t) {
  64631.           return e.nodeName && e.nodeName.toLowerCase() == t.toLowerCase()
  64632.         },
  64633.         each: function (e, t, n) {
  64634.           var a = 0,
  64635.           r = e.length,
  64636.           o = A(e);
  64637.           if (n) {
  64638.             if (o) for (; a < r && !1 !== t.apply(e[a], n); a++);
  64639.              else for (a in e) if (!1 === t.apply(e[a], n)) break
  64640.           } else if (o) for (; a < r && !1 !== t.call(e[a], a, e[a]); a++);
  64641.            else for (a in e) if (!1 === t.call(e[a], a, e[a])) break;
  64642.           return e
  64643.         },
  64644.         trim: d && !d.call(' ') ? function (e) {
  64645.           return null == e ? '' : d.call(e)
  64646.         }
  64647.          : function (e) {
  64648.           return null == e ? '' : (e + '').replace(v, '')
  64649.         },
  64650.         makeArray: function (e, t) {
  64651.           t = t || [
  64652.           ];
  64653.           return null != e && (A(Object(e)) ? de.merge(t, 'string' == typeof e ? [
  64654.             e
  64655.           ] : e) : s.call(t, e)),
  64656.           t
  64657.         },
  64658.         inArray: function (e, t, n) {
  64659.           var a;
  64660.           if (t) {
  64661.             if (l) return l.call(t, e, n);
  64662.             for (a = t.length, n = n ? n < 0 ? Math.max(0, a + n) : n : 0; n < a; n++) if (n in t && t[n] === e) return n
  64663.           }
  64664.           return - 1
  64665.         },
  64666.         merge: function (e, t) {
  64667.           var n = t.length,
  64668.           a = e.length,
  64669.           r = 0;
  64670.           if ('number' == typeof n) for (; r < n; r++) e[a++] = t[r];
  64671.            else for (; t[r] !== O; ) e[a++] = t[r++];
  64672.           return e.length = a,
  64673.           e
  64674.         },
  64675.         grep: function (e, t, n) {
  64676.           var a = [
  64677.           ],
  64678.           r = 0,
  64679.           o = e.length;
  64680.           for (n = !!n; r < o; r++) n !== !!t(e[r], r) && a.push(e[r]);
  64681.           return a
  64682.         },
  64683.         map: function (e, t, n) {
  64684.           var a,
  64685.           r = 0,
  64686.           o = e.length,
  64687.           i = [
  64688.           ];
  64689.           if (A(e)) for (; r < o; r++) null != (a = t(e[r], r, n)) && (i[i.length] = a);
  64690.            else for (r in e) null != (a = t(e[r], r, n)) && (i[i.length] = a);
  64691.           return y.apply([], i)
  64692.         },
  64693.         guid: 1,
  64694.         proxy: function (e, t) {
  64695.           var n,
  64696.           a;
  64697.           return 'string' == typeof t && (a = e[t], t = e, e = a),
  64698.           de.isFunction(e) ? (n = u.call(arguments, 2), (a = function () {
  64699.             return e.apply(t || this, n.concat(u.call(arguments)))
  64700.           }).guid = e.guid = e.guid || de.guid++, a) : O
  64701.         },
  64702.         access: function (e, t, n, a, r, o, i) {
  64703.           var s = 0,
  64704.           l = e.length,
  64705.           c = null == n;
  64706.           if ('object' === de.type(n)) for (s in r = !0, n) de.access(e, t, s, n[s], !0, o, i);
  64707.            else if (a !== O && (r = !0, de.isFunction(a) || (i = !0), t = c ? i ? (t.call(e, a), null) : (c = t, function (e, t, n) {
  64708.             return c.call(de(e), n)
  64709.           }) : t)) for (; s < l; s++) t(e[s], n, i ? a : a.call(e[s], s, t(e[s], n)));
  64710.           return r ? e : c ? t.call(e) : l ? t(e[0], n) : o
  64711.         },
  64712.         now: function () {
  64713.           return (new Date).getTime()
  64714.         }
  64715.       }),
  64716.       de.ready.promise = function (e) {
  64717.         if (!r) if (r = de.Deferred(), 'complete' === g.readyState) setTimeout(de.ready);
  64718.          else if (g.addEventListener) g.addEventListener('DOMContentLoaded', a, !1),
  64719.         f.addEventListener('load', a, !1);
  64720.          else {
  64721.           g.attachEvent('onreadystatechange', a),
  64722.           f.attachEvent('onload', a);
  64723.           var n = !1;
  64724.           try {
  64725.             n = null == f.frameElement && g.documentElement
  64726.           } catch (e) {
  64727.           }
  64728.           n && n.doScroll && !function t() {
  64729.             if (!de.isReady) {
  64730.               try {
  64731.                 n.doScroll('left')
  64732.               } catch (e) {
  64733.                 return setTimeout(t, 50)
  64734.               }
  64735.               x(),
  64736.               de.ready()
  64737.             }
  64738.           }()
  64739.         }
  64740.         return r.promise(e)
  64741.       },
  64742.       de.each('Boolean Number String Function Array Date RegExp Object Error'.split(' '), function (e, t) {
  64743.         i['[object ' + t + ']'] = t.toLowerCase()
  64744.       });
  64745.       var D = de(g),
  64746.       j = {
  64747.       };
  64748.       de.Callbacks = function (r) {
  64749.         var e,
  64750.         n;
  64751.         r = 'string' == typeof r ? j[r] || (n = j[e = r] = {
  64752.         }, de.each(e.match(S) || [
  64753.         ], function (e, t) {
  64754.           n[t] = !0
  64755.         }), n) : de.extend({
  64756.         }, r);
  64757.         var a,
  64758.         t,
  64759.         o,
  64760.         i,
  64761.         s,
  64762.         l,
  64763.         c = [
  64764.         ],
  64765.         u = !r.once && [
  64766.         ],
  64767.         p = function (e) {
  64768.           for (t = r.memory && e, o = !0, s = l || 0, i = c.length, a = !(l = 0); c && s < i; s++) if (!1 === c[s].apply(e[0], e[1]) && r.stopOnFalse) {
  64769.             t = !1;
  64770.             break
  64771.           }
  64772.           a = !1,
  64773.           c && (u ? u.length && p(u.shift()) : t ? c = [
  64774.           ] : d.disable())
  64775.         },
  64776.         d = {
  64777.           add: function () {
  64778.             var e;
  64779.             return c && (e = c.length, function a(e) {
  64780.               de.each(e, function (e, t) {
  64781.                 var n = de.type(t);
  64782.                 'function' === n ? r.unique && d.has(t) || c.push(t) : t && t.length && 'string' !== n && a(t)
  64783.               })
  64784.             }(arguments), a ? i = c.length : t && (l = e, p(t))),
  64785.             this
  64786.           },
  64787.           remove: function () {
  64788.             return c && de.each(arguments, function (e, t) {
  64789.               for (var n; - 1 < (n = de.inArray(t, c, n)); ) c.splice(n, 1),
  64790.               a && (n <= i && i--, n <= s && s--)
  64791.             }),
  64792.             this
  64793.           },
  64794.           has: function (e) {
  64795.             return e ? - 1 < de.inArray(e, c) : !(!c || !c.length)
  64796.           },
  64797.           empty: function () {
  64798.             return c = [
  64799.             ],
  64800.             this
  64801.           },
  64802.           disable: function () {
  64803.             return c = u = t = O,
  64804.             this
  64805.           },
  64806.           disabled: function () {
  64807.             return !c
  64808.           },
  64809.           lock: function () {
  64810.             return u = O,
  64811.             t || d.disable(),
  64812.             this
  64813.           },
  64814.           locked: function () {
  64815.             return !u
  64816.           },
  64817.           fireWith: function (e, t) {
  64818.             return t = [
  64819.               e,
  64820.               (t = t || [
  64821.               ]).slice ? t.slice() : t
  64822.             ],
  64823.             !c || o && !u || (a ? u.push(t) : p(t)),
  64824.             this
  64825.           },
  64826.           fire: function () {
  64827.             return d.fireWith(this, arguments),
  64828.             this
  64829.           },
  64830.           fired: function () {
  64831.             return !!o
  64832.           }
  64833.         };
  64834.         return d
  64835.       },
  64836.       de.extend({
  64837.         Deferred: function (e) {
  64838.           var i = [
  64839.             ['resolve',
  64840.             'done',
  64841.             de.Callbacks('once memory'),
  64842.             'resolved'],
  64843.             [
  64844.               'reject',
  64845.               'fail',
  64846.               de.Callbacks('once memory'),
  64847.               'rejected'
  64848.             ],
  64849.             [
  64850.               'notify',
  64851.               'progress',
  64852.               de.Callbacks('memory')
  64853.             ]
  64854.           ],
  64855.           r = 'pending',
  64856.           s = {
  64857.             state: function () {
  64858.               return r
  64859.             },
  64860.             always: function () {
  64861.               return l.done(arguments).fail(arguments),
  64862.               this
  64863.             },
  64864.             then: function () {
  64865.               var o = arguments;
  64866.               return de.Deferred(function (r) {
  64867.                 de.each(i, function (e, t) {
  64868.                   var n = t[0],
  64869.                   a = de.isFunction(o[e]) && o[e];
  64870.                   l[t[1]](function () {
  64871.                     var e = a && a.apply(this, arguments);
  64872.                     e && de.isFunction(e.promise) ? e.promise().done(r.resolve).fail(r.reject).progress(r.notify) : r[n + 'With'](this === s ? r.promise() : this, a ? [
  64873.                       e
  64874.                     ] : arguments)
  64875.                   })
  64876.                 }),
  64877.                 o = null
  64878.               }).promise()
  64879.             },
  64880.             promise: function (e) {
  64881.               return null != e ? de.extend(e, s) : s
  64882.             }
  64883.           },
  64884.           l = {
  64885.           };
  64886.           return s.pipe = s.then,
  64887.           de.each(i, function (e, t) {
  64888.             var n = t[2],
  64889.             a = t[3];
  64890.             s[t[1]] = n.add,
  64891.             a && n.add(function () {
  64892.               r = a
  64893.             }, i[1 ^ e][2].disable, i[2][2].lock),
  64894.             l[t[0]] = function () {
  64895.               return l[t[0] + 'With'](this === l ? s : this, arguments),
  64896.               this
  64897.             },
  64898.             l[t[0] + 'With'] = n.fireWith
  64899.           }),
  64900.           s.promise(l),
  64901.           e && e.call(l, l),
  64902.           l
  64903.         },
  64904.         when: function (e) {
  64905.           function t(t, n, a) {
  64906.             return function (e) {
  64907.               n[t] = this,
  64908.               a[t] = 1 < arguments.length ? u.call(arguments) : e,
  64909.               a === r ? c.notifyWith(n, a) : --l || c.resolveWith(n, a)
  64910.             }
  64911.           }
  64912.           var r,
  64913.           n,
  64914.           a,
  64915.           o = 0,
  64916.           i = u.call(arguments),
  64917.           s = i.length,
  64918.           l = 1 !== s || e && de.isFunction(e.promise) ? s : 0,
  64919.           c = 1 === l ? e : de.Deferred();
  64920.           if (1 < s) for (r = Array(s), n = Array(s), a = Array(s); o < s; o++) i[o] && de.isFunction(i[o].promise) ? i[o].promise().done(t(o, a, i)).fail(c.reject).progress(t(o, n, r)) : --l;
  64921.           return l || c.resolveWith(a, i),
  64922.           c.promise()
  64923.         }
  64924.       }),
  64925.       de.support = function () {
  64926.         var o,
  64927.         e,
  64928.         t,
  64929.         n,
  64930.         a,
  64931.         r,
  64932.         i,
  64933.         s,
  64934.         l,
  64935.         c,
  64936.         u = g.createElement('div');
  64937.         if (u.setAttribute('className', 't'), u.innerHTML = '  <link/><table></table><a href=\'/a\'>a</a><input type=\'checkbox\'/>', e = u.getElementsByTagName('*'), t = u.getElementsByTagName('a') [0], !e || !t || !e.length) return {
  64938.         };
  64939.         i = (a = g.createElement('select')).appendChild(g.createElement('option')),
  64940.         n = u.getElementsByTagName('input') [0],
  64941.         t.style.cssText = 'top:1px;float:left;opacity:.5',
  64942.         o = {
  64943.           getSetAttribute: 't' !== u.className,
  64944.           leadingWhitespace: 3 === u.firstChild.nodeType,
  64945.           tbody: !u.getElementsByTagName('tbody').length,
  64946.           htmlSerialize: !!u.getElementsByTagName('link').length,
  64947.           style: /top/.test(t.getAttribute('style')),
  64948.           hrefNormalized: '/a' === t.getAttribute('href'),
  64949.           opacity: /^0.5/.test(t.style.opacity),
  64950.           cssFloat: !!t.style.cssFloat,
  64951.           checkOn: !!n.value,
  64952.           optSelected: i.selected,
  64953.           enctype: !!g.createElement('form').enctype,
  64954.           html5Clone: '<:nav></:nav>' !== g.createElement('nav').cloneNode(!0).outerHTML,
  64955.           boxModel: 'CSS1Compat' === g.compatMode,
  64956.           deleteExpando: !0,
  64957.           noCloneEvent: !0,
  64958.           inlineBlockNeedsLayout: !1,
  64959.           shrinkWrapBlocks: !1,
  64960.           reliableMarginRight: !0,
  64961.           boxSizingReliable: !0,
  64962.           pixelPosition: !1
  64963.         },
  64964.         n.checked = !0,
  64965.         o.noCloneChecked = n.cloneNode(!0).checked,
  64966.         a.disabled = !0,
  64967.         o.optDisabled = !i.disabled;
  64968.         try {
  64969.           delete u.test
  64970.         } catch (e) {
  64971.           o.deleteExpando = !1
  64972.         }
  64973.         for (c in (n = g.createElement('input')).setAttribute('value', ''), o.input = '' === n.getAttribute('value'), n.value = 't', n.setAttribute('type', 'radio'), o.radioValue = 't' === n.value, n.setAttribute('checked', 't'), n.setAttribute('name', 't'), (r = g.createDocumentFragment()).appendChild(n), o.appendChecked = n.checked, o.checkClone = r.cloneNode(!0).cloneNode(!0).lastChild.checked, u.attachEvent && (u.attachEvent('onclick', function () {
  64974.           o.noCloneEvent = !1
  64975.         }), u.cloneNode(!0).click()), {
  64976.           submit: !0,
  64977.           change: !0,
  64978.           focusin: !0
  64979.         }) u.setAttribute(s = 'on' + c, 't'),
  64980.         o[c + 'Bubbles'] = s in f || !1 === u.attributes[s].expando;
  64981.         return u.style.backgroundClip = 'content-box',
  64982.         u.cloneNode(!0).style.backgroundClip = '',
  64983.         o.clearCloneStyle = 'content-box' === u.style.backgroundClip,
  64984.         de(function () {
  64985.           var e,
  64986.           t,
  64987.           n,
  64988.           a = 'padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;',
  64989.           r = g.getElementsByTagName('body') [0];
  64990.           r && ((e = g.createElement('div')).style.cssText = 'border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px', r.appendChild(e).appendChild(u), u.innerHTML = '<table><tr><td></td><td>t</td></tr></table>', (n = u.getElementsByTagName('td')) [0].style.cssText = 'padding:0;margin:0;border:0;display:none', l = 0 === n[0].offsetHeight, n[0].style.display = '', n[1].style.display = 'none', o.reliableHiddenOffsets = l && 0 === n[0].offsetHeight, u.innerHTML = '', u.style.cssText = 'box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;', o.boxSizing = 4 === u.offsetWidth, o.doesNotIncludeMarginInBodyOffset = 1 !== r.offsetTop, f.getComputedStyle && (o.pixelPosition = '1%' !== (f.getComputedStyle(u, null) || {
  64991.           }).top, o.boxSizingReliable = '4px' === (f.getComputedStyle(u, null) || {
  64992.             width: '4px'
  64993.           }).width, (t = u.appendChild(g.createElement('div'))).style.cssText = u.style.cssText = a, t.style.marginRight = t.style.width = '0', u.style.width = '1px', o.reliableMarginRight = !parseFloat((f.getComputedStyle(t, null) || {
  64994.           }).marginRight)), typeof u.style.zoom !== h && (u.innerHTML = '', u.style.cssText = a + 'width:1px;padding:1px;display:inline;zoom:1', o.inlineBlockNeedsLayout = 3 === u.offsetWidth, u.style.display = 'block', u.innerHTML = '<div></div>', u.firstChild.style.width = '5px', o.shrinkWrapBlocks = 3 !== u.offsetWidth, o.inlineBlockNeedsLayout && (r.style.zoom = 1)), r.removeChild(e), e = u = n = t = null)
  64995.         }),
  64996.         e = a = r = t = n = null,
  64997.         o
  64998.       }();
  64999.       var T = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
  65000.       I = /([A-Z])/g;
  65001.       function q(e, t, n, a) {
  65002.         if (de.acceptData(e)) {
  65003.           var r,
  65004.           o = de.expando,
  65005.           i = 'string' == typeof t,
  65006.           s = e.nodeType,
  65007.           l = s ? de.cache : e,
  65008.           c = s ? e[o] : e[o] && o;
  65009.           if (c && l[c] && (a || l[c].data) || !i || n !== O) return c || (s ? e[o] = c = p.pop() || de.guid++ : c = o),
  65010.           l[c] || (l[c] = {
  65011.           }, s || (l[c].toJSON = de.noop)),
  65012.           'object' != typeof t && 'function' != typeof t || (a ? l[c] = de.extend(l[c], t) : l[c].data = de.extend(l[c].data, t)),
  65013.           c = l[c],
  65014.           a || (c.data || (c.data = {
  65015.           }), c = c.data),
  65016.           n !== O && (c[de.camelCase(t)] = n),
  65017.           i ? null == (r = c[t]) && (r = c[de.camelCase(t)]) : r = c,
  65018.           r
  65019.         }
  65020.       }
  65021.       function F(e, t, n) {
  65022.         if (de.acceptData(e)) {
  65023.           var a,
  65024.           r,
  65025.           o,
  65026.           i = e.nodeType,
  65027.           s = i ? de.cache : e,
  65028.           l = i ? e[de.expando] : de.expando;
  65029.           if (s[l]) {
  65030.             if (t && (o = n ? s[l] : s[l].data)) {
  65031.               for ((a = 0, r = (t = de.isArray(t) ? t.concat(de.map(t, de.camelCase)) : t in o || (t = de.camelCase(t)) in o ? [
  65032.                 t
  65033.               ] : t.split(' ')).length); a < r; a++) delete o[t[a]];
  65034.               if (!(n ? U : de.isEmptyObject) (o)) return
  65035.             }(n || (delete s[l].data, U(s[l]))) && (i ? de.cleanData([e], !0) : de.support.deleteExpando || s != s.window ? delete s[l] : s[l] = null)
  65036.           }
  65037.         }
  65038.       }
  65039.       function L(e, t, n) {
  65040.         if (n === O && 1 === e.nodeType) {
  65041.           var a = 'data-' + t.replace(I, '-$1').toLowerCase();
  65042.           if ('string' == typeof (n = e.getAttribute(a))) {
  65043.             try {
  65044.               n = 'true' === n || 'false' !== n && ('null' === n ? null : + n + '' === n ? + n : T.test(n) ? de.parseJSON(n) : n)
  65045.             } catch (e) {
  65046.             }
  65047.             de.data(e, t, n)
  65048.           } else n = O
  65049.         }
  65050.         return n
  65051.       }
  65052.       function U(e) {
  65053.         for (var t in e) if (('data' !== t || !de.isEmptyObject(e[t])) && 'toJSON' !== t) return !1;
  65054.         return !0
  65055.       }
  65056.       de.extend({
  65057.         cache: {
  65058.         },
  65059.         expando: 'jQuery' + ('1.9.1' + Math.random()).replace(/\D/g, ''),
  65060.         noData: {
  65061.           embed: !0,
  65062.           object: 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',
  65063.           applet: !0
  65064.         },
  65065.         hasData: function (e) {
  65066.           return !!(e = e.nodeType ? de.cache[e[de.expando]] : e[de.expando]) && !U(e)
  65067.         },
  65068.         data: function (e, t, n) {
  65069.           return q(e, t, n)
  65070.         },
  65071.         removeData: function (e, t) {
  65072.           return F(e, t)
  65073.         },
  65074.         _data: function (e, t, n) {
  65075.           return q(e, t, n, !0)
  65076.         },
  65077.         _removeData: function (e, t) {
  65078.           return F(e, t, !0)
  65079.         },
  65080.         acceptData: function (e) {
  65081.           if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType) return !1;
  65082.           var t = e.nodeName && de.noData[e.nodeName.toLowerCase()];
  65083.           return !t || !0 !== t && e.getAttribute('classid') === t
  65084.         }
  65085.       }),
  65086.       de.fn.extend({
  65087.         data: function (t, e) {
  65088.           var n,
  65089.           a,
  65090.           r = this[0],
  65091.           o = 0,
  65092.           i = null;
  65093.           if (t !== O) return 'object' == typeof t ? this.each(function () {
  65094.             de.data(this, t)
  65095.           }) : de.access(this, function (e) {
  65096.             return e === O ? r ? L(r, t, de.data(r, t)) : null : void this.each(function () {
  65097.               de.data(this, t, e)
  65098.             })
  65099.           }, null, e, 1 < arguments.length, null, !0);
  65100.           if (this.length && (i = de.data(r), 1 === r.nodeType && !de._data(r, 'parsedAttrs'))) {
  65101.             for (n = r.attributes; o < n.length; o++) (a = n[o].name).indexOf('data-') || (a = de.camelCase(a.slice(5)), L(r, a, i[a]));
  65102.             de._data(r, 'parsedAttrs', !0)
  65103.           }
  65104.           return i
  65105.         },
  65106.         removeData: function (e) {
  65107.           return this.each(function () {
  65108.             de.removeData(this, e)
  65109.           })
  65110.         }
  65111.       }),
  65112.       de.extend({
  65113.         queue: function (e, t, n) {
  65114.           var a;
  65115.           if (e) return a = de._data(e, t = (t || 'fx') + 'queue'),
  65116.           n && (!a || de.isArray(n) ? a = de._data(e, t, de.makeArray(n)) : a.push(n)),
  65117.           a || [
  65118.           ]
  65119.         },
  65120.         dequeue: function (e, t) {
  65121.           var n = de.queue(e, t = t || 'fx'),
  65122.           a = n.length,
  65123.           r = n.shift(),
  65124.           o = de._queueHooks(e, t);
  65125.           'inprogress' === r && (r = n.shift(), a--),
  65126.           (o.cur = r) && ('fx' === t && n.unshift('inprogress'), delete o.stop, r.call(e, function () {
  65127.             de.dequeue(e, t)
  65128.           }, o)),
  65129.           !a && o && o.empty.fire()
  65130.         },
  65131.         _queueHooks: function (e, t) {
  65132.           var n = t + 'queueHooks';
  65133.           return de._data(e, n) || de._data(e, n, {
  65134.             empty: de.Callbacks('once memory').add(function () {
  65135.               de._removeData(e, t + 'queue'),
  65136.               de._removeData(e, n)
  65137.             })
  65138.           })
  65139.         }
  65140.       }),
  65141.       de.fn.extend({
  65142.         queue: function (t, n) {
  65143.           var e = 2;
  65144.           return 'string' != typeof t && (n = t, t = 'fx', e--),
  65145.           arguments.length < e ? de.queue(this[0], t) : n === O ? this : this.each(function () {
  65146.             var e = de.queue(this, t, n);
  65147.             de._queueHooks(this, t),
  65148.             'fx' === t && 'inprogress' !== e[0] && de.dequeue(this, t)
  65149.           })
  65150.         },
  65151.         dequeue: function (e) {
  65152.           return this.each(function () {
  65153.             de.dequeue(this, e)
  65154.           })
  65155.         },
  65156.         delay: function (a, e) {
  65157.           return a = de.fx && de.fx.speeds[a] || a,
  65158.           this.queue(e = e || 'fx', function (e, t) {
  65159.             var n = setTimeout(e, a);
  65160.             t.stop = function () {
  65161.               clearTimeout(n)
  65162.             }
  65163.           })
  65164.         },
  65165.         clearQueue: function (e) {
  65166.           return this.queue(e || 'fx', [
  65167.           ])
  65168.         },
  65169.         promise: function (e, t) {
  65170.           function n() {
  65171.             --r || o.resolveWith(i, [
  65172.               i
  65173.             ])
  65174.           }
  65175.           var a,
  65176.           r = 1,
  65177.           o = de.Deferred(),
  65178.           i = this,
  65179.           s = this.length;
  65180.           for ('string' != typeof e && (t = e, e = O), e = e || 'fx'; s--; ) (a = de._data(i[s], e + 'queueHooks')) && a.empty && (r++, a.empty.add(n));
  65181.           return n(),
  65182.           o.promise(t)
  65183.         }
  65184.       });
  65185.       var M,
  65186.       B,
  65187.       z = /[\t\r\n]/g,
  65188.       H = /\r/g,
  65189.       G = /^(?:input|select|textarea|button|object)$/i,
  65190.       V = /^(?:a|area)$/i,
  65191.       W = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,
  65192.       Y = /^(?:checked|selected)$/i,
  65193.       Q = de.support.getSetAttribute,
  65194.       K = de.support.input;
  65195.       de.fn.extend({
  65196.         attr: function (e, t) {
  65197.           return de.access(this, de.attr, e, t, 1 < arguments.length)
  65198.         },
  65199.         removeAttr: function (e) {
  65200.           return this.each(function () {
  65201.             de.removeAttr(this, e)
  65202.           })
  65203.         },
  65204.         prop: function (e, t) {
  65205.           return de.access(this, de.prop, e, t, 1 < arguments.length)
  65206.         },
  65207.         removeProp: function (e) {
  65208.           return e = de.propFix[e] || e,
  65209.           this.each(function () {
  65210.             try {
  65211.               this[e] = O,
  65212.               delete this[e]
  65213.             } catch (e) {
  65214.             }
  65215.           })
  65216.         },
  65217.         addClass: function (t) {
  65218.           var e,
  65219.           n,
  65220.           a,
  65221.           r,
  65222.           o,
  65223.           i = 0,
  65224.           s = this.length,
  65225.           l = 'string' == typeof t && t;
  65226.           if (de.isFunction(t)) return this.each(function (e) {
  65227.             de(this).addClass(t.call(this, e, this.className))
  65228.           });
  65229.           if (l) for (e = (t || '').match(S) || [
  65230.           ]; i < s; i++) if (a = 1 === (n = this[i]).nodeType && (n.className ? (' ' + n.className + ' ').replace(z, ' ') : ' ')) {
  65231.             for (o = 0; r = e[o++]; ) ~a.indexOf(' ' + r + ' ') || (a += r + ' ');
  65232.             n.className = de.trim(a)
  65233.           }
  65234.           return this
  65235.         },
  65236.         removeClass: function (t) {
  65237.           var e,
  65238.           n,
  65239.           a,
  65240.           r,
  65241.           o,
  65242.           i = 0,
  65243.           s = this.length,
  65244.           l = 0 === arguments.length || 'string' == typeof t && t;
  65245.           if (de.isFunction(t)) return this.each(function (e) {
  65246.             de(this).removeClass(t.call(this, e, this.className))
  65247.           });
  65248.           if (l) for (e = (t || '').match(S) || [
  65249.           ]; i < s; i++) if (a = 1 === (n = this[i]).nodeType && (n.className ? (' ' + n.className + ' ').replace(z, ' ') : '')) {
  65250.             for (o = 0; r = e[o++]; ) for (; ~a.indexOf(' ' + r + ' '); ) a = a.replace(' ' + r + ' ', ' ');
  65251.             n.className = t ? de.trim(a) : ''
  65252.           }
  65253.           return this
  65254.         },
  65255.         toggleClass: function (o, i) {
  65256.           var s = typeof o,
  65257.           l = 'boolean' == typeof i;
  65258.           return de.isFunction(o) ? this.each(function (e) {
  65259.             de(this).toggleClass(o.call(this, e, this.className, i), i)
  65260.           }) : this.each(function () {
  65261.             if ('string' == s) for (var e, t = 0, n = de(this), a = i, r = o.match(S) || [
  65262.             ]; e = r[t++]; ) a = l ? a : !n.hasClass(e),
  65263.             n[a ? 'addClass' : 'removeClass'](e);
  65264.              else s !== h && 'boolean' != s || (this.className && de._data(this, '__className__', this.className), this.className = !this.className && !1 !== o && de._data(this, '__className__') || '')
  65265.           })
  65266.         },
  65267.         hasClass: function (e) {
  65268.           for (var t = ' ' + e + ' ', n = 0, a = this.length; n < a; n++) if (1 === this[n].nodeType && ~(' ' + this[n].className + ' ').replace(z, ' ').indexOf(t)) return !0;
  65269.           return !1
  65270.         },
  65271.         val: function (n) {
  65272.           var e,
  65273.           a,
  65274.           r,
  65275.           t = this[0];
  65276.           return arguments.length ? (r = de.isFunction(n), this.each(function (e) {
  65277.             var t = de(this);
  65278.             1 === this.nodeType && (null == (t = r ? n.call(this, e, t.val()) : n) ? t = '' : 'number' == typeof t ? t += '' : de.isArray(t) && (t = de.map(t, function (e) {
  65279.               return null == e ? '' : e + ''
  65280.             })), (a = de.valHooks[this.type] || de.valHooks[this.nodeName.toLowerCase()]) && 'set' in a && a.set(this, t, 'value') !== O || (this.value = t))
  65281.           })) : t ? (a = de.valHooks[t.type] || de.valHooks[t.nodeName.toLowerCase()]) && 'get' in a && (e = a.get(t, 'value')) !== O ? e : 'string' == typeof (e = t.value) ? e.replace(H, '') : null == e ? '' : e : void 0
  65282.         }
  65283.       }),
  65284.       de.extend({
  65285.         valHooks: {
  65286.           option: {
  65287.             get: function (e) {
  65288.               var t = e.attributes.value;
  65289.               return !t || t.specified ? e.value : e.text
  65290.             }
  65291.           },
  65292.           select: {
  65293.             get: function (e) {
  65294.               for (var t, n = e.options, a = e.selectedIndex, r = 'select-one' === e.type || a < 0, o = r ? null : [
  65295.               ], i = r ? a + 1 : n.length, s = a < 0 ? i : r ? a : 0; s < i; s++) if (((t = n[s]).selected || s === a) && (de.support.optDisabled ? !t.disabled : null === t.getAttribute('disabled')) && (!t.parentNode.disabled || !de.nodeName(t.parentNode, 'optgroup'))) {
  65296.                 if (t = de(t).val(), r) return t;
  65297.                 o.push(t)
  65298.               }
  65299.               return o
  65300.             },
  65301.             set: function (e, t) {
  65302.               var n = de.makeArray(t);
  65303.               return de(e).find('option').each(function () {
  65304.                 this.selected = 0 <= de.inArray(de(this).val(), n)
  65305.               }),
  65306.               n.length || (e.selectedIndex = - 1),
  65307.               n
  65308.             }
  65309.           }
  65310.         },
  65311.         attr: function (e, t, n) {
  65312.           var a,
  65313.           r,
  65314.           o = e.nodeType;
  65315.           if (e && 3 !== o && 8 !== o && 2 !== o) return typeof e.getAttribute === h ? de.prop(e, t, n) : ((o = 1 !== o || !de.isXMLDoc(e)) && (t = t.toLowerCase(), a = de.attrHooks[t] || (W.test(t) ? B : M)), n === O ? !(a && o && 'get' in a && null !== (r = a.get(e, t))) && null == (r = typeof e.getAttribute !== h ? e.getAttribute(t) : r) ? O : r : null !== n ? a && o && 'set' in a && (r = a.set(e, n, t)) !== O ? r : (e.setAttribute(t, n + ''), n) : void de.removeAttr(e, t))
  65316.         },
  65317.         removeAttr: function (e, t) {
  65318.           var n,
  65319.           a,
  65320.           r = 0,
  65321.           o = t && t.match(S);
  65322.           if (o && 1 === e.nodeType) for (; n = o[r++]; ) a = de.propFix[n] || n,
  65323.           W.test(n) ? !Q && Y.test(n) ? e[de.camelCase('default-' + n)] = e[a] = !1 : e[a] = !1 : de.attr(e, n, ''),
  65324.           e.removeAttribute(Q ? n : a)
  65325.         },
  65326.         attrHooks: {
  65327.           type: {
  65328.             set: function (e, t) {
  65329.               if (!de.support.radioValue && 'radio' === t && de.nodeName(e, 'input')) {
  65330.                 var n = e.value;
  65331.                 return e.setAttribute('type', t),
  65332.                 n && (e.value = n),
  65333.                 t
  65334.               }
  65335.             }
  65336.           }
  65337.         },
  65338.         propFix: {
  65339.           tabindex: 'tabIndex',
  65340.           readonly: 'readOnly',
  65341.           for : 'htmlFor',
  65342.           class : 'className',
  65343.           maxlength: 'maxLength',
  65344.           cellspacing: 'cellSpacing',
  65345.           cellpadding: 'cellPadding',
  65346.           rowspan: 'rowSpan',
  65347.           colspan: 'colSpan',
  65348.           usemap: 'useMap',
  65349.           frameborder: 'frameBorder',
  65350.           contenteditable: 'contentEditable'
  65351.         },
  65352.         prop: function (e, t, n) {
  65353.           var a,
  65354.           r,
  65355.           o = e.nodeType;
  65356.           if (e && 3 !== o && 8 !== o && 2 !== o) return (1 !== o || !de.isXMLDoc(e)) && (r = de.propHooks[t = de.propFix[t] || t]),
  65357.           n !== O ? r && 'set' in r && (a = r.set(e, n, t)) !== O ? a : e[t] = n : r && 'get' in r && null !== (a = r.get(e, t)) ? a : e[t]
  65358.         },
  65359.         propHooks: {
  65360.           tabIndex: {
  65361.             get: function (e) {
  65362.               var t = e.getAttributeNode('tabindex');
  65363.               return t && t.specified ? parseInt(t.value, 10) : G.test(e.nodeName) || V.test(e.nodeName) && e.href ? 0 : O
  65364.             }
  65365.           }
  65366.         }
  65367.       }),
  65368.       B = {
  65369.         get: function (e, t) {
  65370.           var n = de.prop(e, t),
  65371.           a = 'boolean' == typeof n && e.getAttribute(t),
  65372.           e = 'boolean' == typeof n ? K && Q ? null != a : Y.test(t) ? e[de.camelCase('default-' + t)] : !!a : e.getAttributeNode(t);
  65373.           return e && !1 !== e.value ? t.toLowerCase() : O
  65374.         },
  65375.         set: function (e, t, n) {
  65376.           return !1 === t ? de.removeAttr(e, n) : K && Q || !Y.test(n) ? e.setAttribute(!Q && de.propFix[n] || n, n) : e[de.camelCase('default-' + n)] = e[n] = !0,
  65377.           n
  65378.         }
  65379.       },
  65380.       K && Q || (de.attrHooks.value = {
  65381.         get: function (e, t) {
  65382.           t = e.getAttributeNode(t);
  65383.           return de.nodeName(e, 'input') ? e.defaultValue : t && t.specified ? t.value : O
  65384.         },
  65385.         set: function (e, t, n) {
  65386.           if (!de.nodeName(e, 'input')) return M && M.set(e, t, n);
  65387.           e.defaultValue = t
  65388.         }
  65389.       }),
  65390.       Q || (M = de.valHooks.button = {
  65391.         get: function (e, t) {
  65392.           e = e.getAttributeNode(t);
  65393.           return e && ('id' === t || 'name' === t || 'coords' === t ? '' !== e.value : e.specified) ? e.value : O
  65394.         },
  65395.         set: function (e, t, n) {
  65396.           var a = e.getAttributeNode(n);
  65397.           return a || e.setAttributeNode(a = e.ownerDocument.createAttribute(n)),
  65398.           a.value = t += '',
  65399.           'value' === n || t === e.getAttribute(n) ? t : O
  65400.         }
  65401.       }, de.attrHooks.contenteditable = {
  65402.         get: M.get,
  65403.         set: function (e, t, n) {
  65404.           M.set(e, '' !== t && t, n)
  65405.         }
  65406.       }, de.each(['width',
  65407.       'height'], function (e, n) {
  65408.         de.attrHooks[n] = de.extend(de.attrHooks[n], {
  65409.           set: function (e, t) {
  65410.             if ('' === t) return e.setAttribute(n, 'auto'),
  65411.             t
  65412.           }
  65413.         })
  65414.       })),
  65415.       de.support.hrefNormalized || (de.each(['href',
  65416.       'src',
  65417.       'width',
  65418.       'height'], function (e, t) {
  65419.         de.attrHooks[t] = de.extend(de.attrHooks[t], {
  65420.           get: function (e) {
  65421.             e = e.getAttribute(t, 2);
  65422.             return null == e ? O : e
  65423.           }
  65424.         })
  65425.       }), de.each(['href',
  65426.       'src'], function (e, t) {
  65427.         de.propHooks[t] = {
  65428.           get: function (e) {
  65429.             return e.getAttribute(t, 4)
  65430.           }
  65431.         }
  65432.       })),
  65433.       de.support.style || (de.attrHooks.style = {
  65434.         get: function (e) {
  65435.           return e.style.cssText || O
  65436.         },
  65437.         set: function (e, t) {
  65438.           return e.style.cssText = t + ''
  65439.         }
  65440.       }),
  65441.       de.support.optSelected || (de.propHooks.selected = de.extend(de.propHooks.selected, {
  65442.         get: function (e) {
  65443.           return null
  65444.         }
  65445.       })),
  65446.       de.support.enctype || (de.propFix.enctype = 'encoding'),
  65447.       de.support.checkOn || de.each(['radio',
  65448.       'checkbox'], function () {
  65449.         de.valHooks[this] = {
  65450.           get: function (e) {
  65451.             return null === e.getAttribute('value') ? 'on' : e.value
  65452.           }
  65453.         }
  65454.       }),
  65455.       de.each(['radio',
  65456.       'checkbox'], function () {
  65457.         de.valHooks[this] = de.extend(de.valHooks[this], {
  65458.           set: function (e, t) {
  65459.             if (de.isArray(t)) return e.checked = 0 <= de.inArray(de(e).val(), t)
  65460.           }
  65461.         })
  65462.       });
  65463.       var J = /^(?:input|select|textarea)$/i,
  65464.       $ = /^key/,
  65465.       Z = /^(?:mouse|contextmenu)|click/,
  65466.       X = /^(?:focusinfocus|focusoutblur)$/,
  65467.       ee = /^([^.]*)(?:\.(.+)|)$/;
  65468.       function te() {
  65469.         return !0
  65470.       }
  65471.       function ne() {
  65472.         return !1
  65473.       }
  65474.       de.event = {
  65475.         global: {
  65476.         },
  65477.         add: function (e, t, n, a, r) {
  65478.           var o,
  65479.           i,
  65480.           s,
  65481.           l,
  65482.           c,
  65483.           u,
  65484.           p,
  65485.           d,
  65486.           m,
  65487.           f = de._data(e);
  65488.           if (f) {
  65489.             for (n.handler && (n = (s = n).handler, r = s.selector), n.guid || (n.guid = de.guid++), (o = f.events) || (o = f.events = {
  65490.             }), (c = f.handle) || ((c = f.handle = function (e) {
  65491.               return typeof de === h || e && de.event.triggered === e.type ? O : de.event.dispatch.apply(c.elem, arguments)
  65492.             }).elem = e), i = (t = (t || '').match(S) || [
  65493.               ''
  65494.             ]).length; i--; ) p = m = (u = ee.exec(t[i]) || [
  65495.             ]) [1],
  65496.             d = (u[2] || '').split('.').sort(),
  65497.             l = de.event.special[p] || {
  65498.             },
  65499.             l = de.event.special[p = (r ? l.delegateType : l.bindType) || p] || {
  65500.             },
  65501.             u = de.extend({
  65502.               type: p,
  65503.               origType: m,
  65504.               data: a,
  65505.               handler: n,
  65506.               guid: n.guid,
  65507.               selector: r,
  65508.               needsContext: r && de.expr.match.needsContext.test(r),
  65509.               namespace: d.join('.')
  65510.             }, s),
  65511.             (m = o[p]) || ((m = o[p] = [
  65512.             ]).delegateCount = 0, l.setup && !1 !== l.setup.call(e, a, d, c) || (e.addEventListener ? e.addEventListener(p, c, !1) : e.attachEvent && e.attachEvent('on' + p, c))),
  65513.             l.add && (l.add.call(e, u), u.handler.guid || (u.handler.guid = n.guid)),
  65514.             r ? m.splice(m.delegateCount++, 0, u) : m.push(u),
  65515.             de.event.global[p] = !0;
  65516.             e = null
  65517.           }
  65518.         },
  65519.         remove: function (e, t, n, a, r) {
  65520.           var o,
  65521.           i,
  65522.           s,
  65523.           l,
  65524.           c,
  65525.           u,
  65526.           p,
  65527.           d,
  65528.           m,
  65529.           f,
  65530.           h,
  65531.           g = de.hasData(e) && de._data(e);
  65532.           if (g && (u = g.events)) {
  65533.             for (c = (t = (t || '').match(S) || [
  65534.               ''
  65535.             ]).length; c--; ) if (m = h = (s = ee.exec(t[c]) || [
  65536.             ]) [1], f = (s[2] || '').split('.').sort(), m) {
  65537.               for (p = de.event.special[m] || {
  65538.               }, d = u[m = (a ? p.delegateType : p.bindType) || m] || [
  65539.               ], s = s[2] && RegExp('(^|\\.)' + f.join('\\.(?:.*\\.|)') + '(\\.|$)'), l = o = d.length; o--; ) i = d[o],
  65540.               !r && h !== i.origType || n && n.guid !== i.guid || s && !s.test(i.namespace) || a && a !== i.selector && ('**' !== a || !i.selector) || (d.splice(o, 1), i.selector && d.delegateCount--, p.remove && p.remove.call(e, i));
  65541.               l && !d.length && (p.teardown && !1 !== p.teardown.call(e, f, g.handle) || de.removeEvent(e, m, g.handle), delete u[m])
  65542.             } else for (m in u) de.event.remove(e, m + t[c], n, a, !0);
  65543.             de.isEmptyObject(u) && (delete g.handle, de._removeData(e, 'events'))
  65544.           }
  65545.         },
  65546.         trigger: function (e, t, n, a) {
  65547.           var r,
  65548.           o,
  65549.           i,
  65550.           s,
  65551.           l,
  65552.           c,
  65553.           u = [
  65554.             n || g
  65555.           ],
  65556.           p = b.call(e, 'type') ? e.type : e,
  65557.           d = b.call(e, 'namespace') ? e.namespace.split('.') : [
  65558.           ],
  65559.           m = l = n = n || g;
  65560.           if (3 !== n.nodeType && 8 !== n.nodeType && !X.test(p + de.event.triggered) && (~p.indexOf('.') && (p = (d = p.split('.')).shift(), d.sort()), o = !~p.indexOf(':') && 'on' + p, (e = e[de.expando] ? e : new de.Event(p, 'object' == typeof e && e)).isTrigger = !0, e.namespace = d.join('.'), e.namespace_re = e.namespace ? RegExp('(^|\\.)' + d.join('\\.(?:.*\\.|)') + '(\\.|$)') : null, e.result = O, e.target || (e.target = n), t = null == t ? [
  65561.             e
  65562.           ] : de.makeArray(t, [
  65563.             e
  65564.           ]), s = de.event.special[p] || {
  65565.           }, a || !s.trigger || !1 !== s.trigger.apply(n, t))) {
  65566.             if (!a && !s.noBubble && !de.isWindow(n)) {
  65567.               for (X.test((i = s.delegateType || p) + p) || (m = m.parentNode); m; m = m.parentNode) u.push(m),
  65568.               l = m;
  65569.               l === (n.ownerDocument || g) && u.push(l.defaultView || l.parentWindow || f)
  65570.             }
  65571.             for (c = 0; (m = u[c++]) && !e.isPropagationStopped(); ) e.type = 1 < c ? i : s.bindType || p,
  65572.             (r = (de._data(m, 'events') || {
  65573.             }) [e.type] && de._data(m, 'handle')) && r.apply(m, t),
  65574.             (r = o && m[o]) && de.acceptData(m) && r.apply && !1 === r.apply(m, t) && e.preventDefault();
  65575.             if (e.type = p, !a && !e.isDefaultPrevented() && (!s._default || !1 === s._default.apply(n.ownerDocument, t)) && ('click' !== p || !de.nodeName(n, 'a')) && de.acceptData(n) && o && n[p] && !de.isWindow(n)) {
  65576.               (l = n[o]) && (n[o] = null),
  65577.               de.event.triggered = p;
  65578.               try {
  65579.                 n[p]()
  65580.               } catch (e) {
  65581.               }
  65582.               de.event.triggered = O,
  65583.               l && (n[o] = l)
  65584.             }
  65585.             return e.result
  65586.           }
  65587.         },
  65588.         dispatch: function (e) {
  65589.           e = de.event.fix(e);
  65590.           var t,
  65591.           n,
  65592.           a,
  65593.           r,
  65594.           o,
  65595.           i = u.call(arguments),
  65596.           s = (de._data(this, 'events') || {
  65597.           }) [e.type] || [
  65598.           ],
  65599.           l = de.event.special[e.type] || {
  65600.           };
  65601.           if ((i[0] = e).delegateTarget = this, !l.preDispatch || !1 !== l.preDispatch.call(this, e)) {
  65602.             for (o = de.event.handlers.call(this, e, s), t = 0; (a = o[t++]) && !e.isPropagationStopped(); ) for (e.currentTarget = a.elem, r = 0; (n = a.handlers[r++]) && !e.isImmediatePropagationStopped(); ) e.namespace_re && !e.namespace_re.test(n.namespace) || (e.handleObj = n, e.data = n.data, (n = ((de.event.special[n.origType] || {
  65603.             }).handle || n.handler).apply(a.elem, i)) !== O && !1 === (e.result = n) && (e.preventDefault(), e.stopPropagation()));
  65604.             return l.postDispatch && l.postDispatch.call(this, e),
  65605.             e.result
  65606.           }
  65607.         },
  65608.         handlers: function (e, t) {
  65609.           var n,
  65610.           a,
  65611.           r,
  65612.           o,
  65613.           i = [
  65614.           ],
  65615.           s = t.delegateCount,
  65616.           l = e.target;
  65617.           if (s && l.nodeType && (!e.button || 'click' !== e.type)) for (; l != this; l = l.parentNode || this) if (1 === l.nodeType && (!0 !== l.disabled || 'click' !== e.type)) {
  65618.             for (r = [
  65619.             ], o = 0; o < s; o++) r[n = (a = t[o]).selector + ' '] === O && (r[n] = a.needsContext ? 0 <= de(n, this).index(l) : de.find(n, this, null, [
  65620.               l
  65621.             ]).length),
  65622.             r[n] && r.push(a);
  65623.             r.length && i.push({
  65624.               elem: l,
  65625.               handlers: r
  65626.             })
  65627.           }
  65628.           return s < t.length && i.push({
  65629.             elem: this,
  65630.             handlers: t.slice(s)
  65631.           }),
  65632.           i
  65633.         },
  65634.         fix: function (e) {
  65635.           if (e[de.expando]) return e;
  65636.           var t,
  65637.           n,
  65638.           a,
  65639.           r = e.type,
  65640.           o = e,
  65641.           i = this.fixHooks[r];
  65642.           for (i || (this.fixHooks[r] = i = Z.test(r) ? this.mouseHooks : $.test(r) ? this.keyHooks : {
  65643.           }), a = i.props ? this.props.concat(i.props) : this.props, e = new de.Event(o), t = a.length; t--; ) e[n = a[t]] = o[n];
  65644.           return e.target || (e.target = o.srcElement || g),
  65645.           3 === e.target.nodeType && (e.target = e.target.parentNode),
  65646.           e.metaKey = !!e.metaKey,
  65647.           i.filter ? i.filter(e, o) : e
  65648.         },
  65649.         props: 'altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which'.split(' '),
  65650.         fixHooks: {
  65651.         },
  65652.         keyHooks: {
  65653.           props: 'char charCode key keyCode'.split(' '),
  65654.           filter: function (e, t) {
  65655.             return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode),
  65656.             e
  65657.           }
  65658.         },
  65659.         mouseHooks: {
  65660.           props: 'button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement'.split(' '),
  65661.           filter: function (e, t) {
  65662.             var n,
  65663.             a,
  65664.             r = t.button,
  65665.             o = t.fromElement;
  65666.             return null == e.pageX && null != t.clientX && (n = (a = e.target.ownerDocument || g).body, e.pageX = t.clientX + ((a = a.documentElement) && a.scrollLeft || n && n.scrollLeft || 0) - (a && a.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (a && a.scrollTop || n && n.scrollTop || 0) - (a && a.clientTop || n && n.clientTop || 0)),
  65667.             !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o),
  65668.             e.which || r === O || (e.which = 1 & r ? 1 : 2 & r ? 3 : 4 & r ? 2 : 0),
  65669.             e
  65670.           }
  65671.         },
  65672.         special: {
  65673.           load: {
  65674.             noBubble: !0
  65675.           },
  65676.           click: {
  65677.             trigger: function () {
  65678.               if (de.nodeName(this, 'input') && 'checkbox' === this.type && this.click) return this.click(),
  65679.               !1
  65680.             }
  65681.           },
  65682.           focus: {
  65683.             trigger: function () {
  65684.               if (this !== g.activeElement && this.focus) try {
  65685.                 return this.focus(),
  65686.                 !1
  65687.               } catch (e) {
  65688.               }
  65689.             },
  65690.             delegateType: 'focusin'
  65691.           },
  65692.           blur: {
  65693.             trigger: function () {
  65694.               if (this === g.activeElement && this.blur) return this.blur(),
  65695.               !1
  65696.             },
  65697.             delegateType: 'focusout'
  65698.           },
  65699.           beforeunload: {
  65700.             postDispatch: function (e) {
  65701.               e.result !== O && (e.originalEvent.returnValue = e.result)
  65702.             }
  65703.           }
  65704.         },
  65705.         simulate: function (e, t, n, a) {
  65706.           e = de.extend(new de.Event, n, {
  65707.             type: e,
  65708.             isSimulated: !0,
  65709.             originalEvent: {
  65710.             }
  65711.           });
  65712.           a ? de.event.trigger(e, null, t) : de.event.dispatch.call(t, e),
  65713.           e.isDefaultPrevented() && n.preventDefault()
  65714.         }
  65715.       },
  65716.       de.removeEvent = g.removeEventListener ? function (e, t, n) {
  65717.         e.removeEventListener && e.removeEventListener(t, n, !1)
  65718.       }
  65719.        : function (e, t, n) {
  65720.         t = 'on' + t;
  65721.         e.detachEvent && (typeof e[t] === h && (e[t] = null), e.detachEvent(t, n))
  65722.       },
  65723.       de.Event = function (e, t) {
  65724.         if (!(this instanceof de.Event)) return new de.Event(e, t);
  65725.         e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || !1 === e.returnValue || e.getPreventDefault && e.getPreventDefault() ? te : ne) : this.type = e,
  65726.         t && de.extend(this, t),
  65727.         this.timeStamp = e && e.timeStamp || de.now(),
  65728.         this[de.expando] = !0
  65729.       },
  65730.       de.Event.prototype = {
  65731.         isDefaultPrevented: ne,
  65732.         isPropagationStopped: ne,
  65733.         isImmediatePropagationStopped: ne,
  65734.         preventDefault: function () {
  65735.           var e = this.originalEvent;
  65736.           this.isDefaultPrevented = te,
  65737.           e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
  65738.         },
  65739.         stopPropagation: function () {
  65740.           var e = this.originalEvent;
  65741.           this.isPropagationStopped = te,
  65742.           e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
  65743.         },
  65744.         stopImmediatePropagation: function () {
  65745.           this.isImmediatePropagationStopped = te,
  65746.           this.stopPropagation()
  65747.         }
  65748.       },
  65749.       de.each({
  65750.         mouseenter: 'mouseover',
  65751.         mouseleave: 'mouseout'
  65752.       }, function (e, r) {
  65753.         de.event.special[e] = {
  65754.           delegateType: r,
  65755.           bindType: r,
  65756.           handle: function (e) {
  65757.             var t,
  65758.             n = e.relatedTarget,
  65759.             a = e.handleObj;
  65760.             return n && (n === this || de.contains(this, n)) || (e.type = a.origType, t = a.handler.apply(this, arguments), e.type = r),
  65761.             t
  65762.           }
  65763.         }
  65764.       }),
  65765.       de.support.submitBubbles || (de.event.special.submit = {
  65766.         setup: function () {
  65767.           if (de.nodeName(this, 'form')) return !1;
  65768.           de.event.add(this, 'click._submit keypress._submit', function (e) {
  65769.             e = e.target,
  65770.             e = de.nodeName(e, 'input') || de.nodeName(e, 'button') ? e.form : O;
  65771.             e && !de._data(e, 'submitBubbles') && (de.event.add(e, 'submit._submit', function (e) {
  65772.               e._submit_bubble = !0
  65773.             }), de._data(e, 'submitBubbles', !0))
  65774.           })
  65775.         },
  65776.         postDispatch: function (e) {
  65777.           e._submit_bubble && (delete e._submit_bubble, this.parentNode && !e.isTrigger && de.event.simulate('submit', this.parentNode, e, !0))
  65778.         },
  65779.         teardown: function () {
  65780.           if (de.nodeName(this, 'form')) return !1;
  65781.           de.event.remove(this, '._submit')
  65782.         }
  65783.       }),
  65784.       de.support.changeBubbles || (de.event.special.change = {
  65785.         setup: function () {
  65786.           if (J.test(this.nodeName)) return 'checkbox' !== this.type && 'radio' !== this.type || (de.event.add(this, 'propertychange._change', function (e) {
  65787.             'checked' === e.originalEvent.propertyName && (this._just_changed = !0)
  65788.           }), de.event.add(this, 'click._change', function (e) {
  65789.             this._just_changed && !e.isTrigger && (this._just_changed = !1),
  65790.             de.event.simulate('change', this, e, !0)
  65791.           })),
  65792.           !1;
  65793.           de.event.add(this, 'beforeactivate._change', function (e) {
  65794.             e = e.target;
  65795.             J.test(e.nodeName) && !de._data(e, 'changeBubbles') && (de.event.add(e, 'change._change', function (e) {
  65796.               !this.parentNode || e.isSimulated || e.isTrigger || de.event.simulate('change', this.parentNode, e, !0)
  65797.             }), de._data(e, 'changeBubbles', !0))
  65798.           })
  65799.         },
  65800.         handle: function (e) {
  65801.           var t = e.target;
  65802.           if (this !== t || e.isSimulated || e.isTrigger || 'radio' !== t.type && 'checkbox' !== t.type) return e.handleObj.handler.apply(this, arguments)
  65803.         },
  65804.         teardown: function () {
  65805.           return de.event.remove(this, '._change'),
  65806.           !J.test(this.nodeName)
  65807.         }
  65808.       }),
  65809.       de.support.focusinBubbles || de.each({
  65810.         focus: 'focusin',
  65811.         blur: 'focusout'
  65812.       }, function (e, t) {
  65813.         function n(e) {
  65814.           de.event.simulate(t, e.target, de.event.fix(e), !0)
  65815.         }
  65816.         var a = 0;
  65817.         de.event.special[t] = {
  65818.           setup: function () {
  65819.             0 == a++ && g.addEventListener(e, n, !0)
  65820.           },
  65821.           teardown: function () {
  65822.             0 == --a && g.removeEventListener(e, n, !0)
  65823.           }
  65824.         }
  65825.       }),
  65826.       de.fn.extend({
  65827.         on: function (e, t, n, a, r) {
  65828.           var o,
  65829.           i;
  65830.           if ('object' == typeof e) {
  65831.             for (o in 'string' != typeof t && (n = n || t, t = O), e) this.on(o, t, n, e[o], r);
  65832.             return this
  65833.           }
  65834.           if (null == n && null == a ? (a = t, n = t = O) : null == a && ('string' == typeof t ? (a = n, n = O) : (a = n, n = t, t = O)), !1 === a) a = ne;
  65835.            else if (!a) return this;
  65836.           return 1 === r && (i = a, (a = function (e) {
  65837.             return de().off(e),
  65838.             i.apply(this, arguments)
  65839.           }).guid = i.guid || (i.guid = de.guid++)),
  65840.           this.each(function () {
  65841.             de.event.add(this, e, a, n, t)
  65842.           })
  65843.         },
  65844.         one: function (e, t, n, a) {
  65845.           return this.on(e, t, n, a, 1)
  65846.         },
  65847.         off: function (e, t, n) {
  65848.           var a,
  65849.           r;
  65850.           if (e && e.preventDefault && e.handleObj) return a = e.handleObj,
  65851.           de(e.delegateTarget).off(a.namespace ? a.origType + '.' + a.namespace : a.origType, a.selector, a.handler),
  65852.           this;
  65853.           if ('object' != typeof e) return !1 !== t && 'function' != typeof t || (n = t, t = O),
  65854.           !1 === n && (n = ne),
  65855.           this.each(function () {
  65856.             de.event.remove(this, e, n, t)
  65857.           });
  65858.           for (r in e) this.off(r, t, e[r]);
  65859.           return this
  65860.         },
  65861.         bind: function (e, t, n) {
  65862.           return this.on(e, null, t, n)
  65863.         },
  65864.         unbind: function (e, t) {
  65865.           return this.off(e, null, t)
  65866.         },
  65867.         delegate: function (e, t, n, a) {
  65868.           return this.on(t, e, n, a)
  65869.         },
  65870.         undelegate: function (e, t, n) {
  65871.           return 1 === arguments.length ? this.off(e, '**') : this.off(t, e || '**', n)
  65872.         },
  65873.         trigger: function (e, t) {
  65874.           return this.each(function () {
  65875.             de.event.trigger(e, t, this)
  65876.           })
  65877.         },
  65878.         triggerHandler: function (e, t) {
  65879.           var n = this[0];
  65880.           if (n) return de.event.trigger(e, t, n, !0)
  65881.         }
  65882.       }),
  65883.       function (n) {
  65884.         var e,
  65885.         E,
  65886.         O,
  65887.         o,
  65888.         t,
  65889.         p,
  65890.         c,
  65891.         S,
  65892.         d,
  65893.         w,
  65894.         a,
  65895.         m,
  65896.         f,
  65897.         r,
  65898.         i,
  65899.         h,
  65900.         s,
  65901.         v = 'sizzle' + - new Date,
  65902.         g = n.document,
  65903.         y = {
  65904.         },
  65905.         P = 0,
  65906.         b = 0,
  65907.         l = Z(),
  65908.         u = Z(),
  65909.         _ = Z(),
  65910.         k = 'undefined',
  65911.         N = [
  65912.         ],
  65913.         C = N.pop,
  65914.         R = N.push,
  65915.         x = N.slice,
  65916.         A = N.indexOf || function (e) {
  65917.           for (var t = 0, n = this.length; t < n; t++) if (this[t] === e) return t;
  65918.           return - 1
  65919.         },
  65920.         D = '[\\x20\\t\\r\\n\\f]',
  65921.         j = '(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+',
  65922.         T = j.replace('w', 'w#'),
  65923.         N = '\\[' + D + '*(' + j + ')' + D + '*(?:([*^$|!~]?=)' + D + '*(?:([\'"])((?:\\\\.|[^\\\\])*?)\\3|(' + T + ')|)|)' + D + '*\\]',
  65924.         I = ':(' + j + ')(?:\\((([\'"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|' + N.replace(3, 8) + ')*)|.*)\\)|)',
  65925.         q = /^[\x20\t\r\n\f]+|((?:^|[^\\])(?:\\.)*)[\x20\t\r\n\f]+$/g,
  65926.         F = RegExp('^' + D + '*,' + D + '*'),
  65927.         L = RegExp('^' + D + '*([\\x20\\t\\r\\n\\f>+~])' + D + '*'),
  65928.         U = RegExp(I),
  65929.         M = RegExp('^' + T + '$'),
  65930.         B = {
  65931.           ID: RegExp('^#(' + j + ')'),
  65932.           CLASS: RegExp('^\\.(' + j + ')'),
  65933.           NAME: RegExp('^\\[name=[\'"]?(' + j + ')[\'"]?\\]'),
  65934.           TAG: /^((?:\\.|[\w*-]|[^\x00-\xa0])+)/,
  65935.           ATTR: RegExp('^' + N),
  65936.           PSEUDO: RegExp('^' + I),
  65937.           CHILD: RegExp('^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + D + '*(even|odd|(([+-]|)(\\d*)n|)' + D + '*(?:([+-]|)' + D + '*(\\d+)|))' + D + '*\\)|)', 'i'),
  65938.           needsContext: RegExp('^' + D + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + D + '*((?:-\\d)?\\d*)' + D + '*\\)|)(?=[^-]|$)', 'i')
  65939.         },
  65940.         z = /[\x20\t\r\n\f]*[+~]/,
  65941.         H = /^[^{]+\{\s*\[native code/,
  65942.         G = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
  65943.         V = /^(?:input|select|textarea|button)$/i,
  65944.         W = /^h\d$/i,
  65945.         Y = /'|\\/g,
  65946.         Q = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
  65947.         K = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
  65948.         J = function (e, t) {
  65949.           var n = '0x' + t - 65536;
  65950.           return n != n ? t : n < 0 ? String.fromCharCode(65536 + n) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320)
  65951.         };
  65952.         try {
  65953.           x.call(g.documentElement.childNodes, 0)
  65954.         } catch (e) {
  65955.           x = function (e) {
  65956.             for (var t, n = [
  65957.             ]; t = this[e++]; ) n.push(t);
  65958.             return n
  65959.           }
  65960.         }
  65961.         function $(e) {
  65962.           return H.test(e + '')
  65963.         }
  65964.         function Z() {
  65965.           var n,
  65966.           a = [
  65967.           ];
  65968.           return n = function (e, t) {
  65969.             return a.push(e += ' ') > O.cacheLength && delete n[a.shift()],
  65970.             n[e] = t
  65971.           }
  65972.         }
  65973.         function X(e) {
  65974.           return e[v] = !0,
  65975.           e
  65976.         }
  65977.         function ee(e) {
  65978.           var t = w.createElement('div');
  65979.           try {
  65980.             return e(t)
  65981.           } catch (e) {
  65982.             return !1
  65983.           } finally {
  65984.             t = null
  65985.           }
  65986.         }
  65987.         function te(e, t, n, a) {
  65988.           var r,
  65989.           o,
  65990.           i,
  65991.           s,
  65992.           l,
  65993.           c,
  65994.           u;
  65995.           if ((t ? t.ownerDocument || t : g) !== w && d(t), n = n || [
  65996.           ], !e || 'string' != typeof e) return n;
  65997.           if (1 !== (r = (t = t || w).nodeType) && 9 !== r) return [];
  65998.           if (!m && !a) {
  65999.             if (c = G.exec(e)) if (u = c[1]) {
  66000.               if (9 === r) {
  66001.                 if (!(s = t.getElementById(u)) || !s.parentNode) return n;
  66002.                 if (s.id === u) return n.push(s),
  66003.                 n
  66004.               } else if (t.ownerDocument && (s = t.ownerDocument.getElementById(u)) && h(t, s) && s.id === u) return n.push(s),
  66005.               n
  66006.             } else {
  66007.               if (c[2]) return R.apply(n, x.call(t.getElementsByTagName(e), 0)),
  66008.               n;
  66009.               if ((u = c[3]) && y.getByClassName && t.getElementsByClassName) return R.apply(n, x.call(t.getElementsByClassName(u), 0)),
  66010.               n
  66011.             }
  66012.             if (y.qsa && !f.test(e)) {
  66013.               if (s = !0, l = v, c = t, u = 9 === r && e, 1 === r && 'object' != t.nodeName.toLowerCase()) {
  66014.                 for (i = re(e), (s = t.getAttribute('id')) ? l = s.replace(Y, '\\$&') : t.setAttribute('id', l), l = '[id=\'' + l + '\'] ', o = i.length; o--; ) i[o] = l + oe(i[o]);
  66015.                 c = z.test(e) && t.parentNode || t,
  66016.                 u = i.join(',')
  66017.               }
  66018.               if (u) try {
  66019.                 return R.apply(n, x.call(c.querySelectorAll(u), 0)),
  66020.                 n
  66021.               } catch (e) {
  66022.               } finally {
  66023.                 s || t.removeAttribute('id')
  66024.               }
  66025.             }
  66026.           }
  66027.           return function (e, t, n, a) {
  66028.             var r,
  66029.             o,
  66030.             i,
  66031.             s,
  66032.             l,
  66033.             c = re(e);
  66034.             if (!a && 1 === c.length) {
  66035.               if (2 < (o = c[0] = c[0].slice(0)).length && 'ID' === (i = o[0]).type && 9 === t.nodeType && !m && O.relative[o[1].type]) {
  66036.                 if (!(t = O.find.ID(i.matches[0].replace(K, J), t) [0])) return n;
  66037.                 e = e.slice(o.shift().value.length)
  66038.               }
  66039.               for (r = B.needsContext.test(e) ? 0 : o.length; r-- && !O.relative[s = (i = o[r]).type]; ) if ((l = O.find[s]) && (a = l(i.matches[0].replace(K, J), z.test(o[0].type) && t.parentNode || t))) {
  66040.                 if (o.splice(r, 1), !(e = a.length && oe(o))) return R.apply(n, x.call(a, 0)),
  66041.                 n;
  66042.                 break
  66043.               }
  66044.             }
  66045.             return p(e, c) (a, t, m, n, z.test(e)),
  66046.             n
  66047.           }(e.replace(q, '$1'), t, n, a)
  66048.         }
  66049.         function ne(e, t) {
  66050.           var n = t && e,
  66051.           a = n && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31);
  66052.           if (a) return a;
  66053.           if (n) for (; n = n.nextSibling; ) if (n === t) return - 1;
  66054.           return e ? 1 : - 1
  66055.         }
  66056.         function ae(i) {
  66057.           return X(function (o) {
  66058.             return o = + o,
  66059.             X(function (e, t) {
  66060.               for (var n, a = i([], e.length, o), r = a.length; r--; ) e[n = a[r]] && (e[n] = !(t[n] = e[n]))
  66061.             })
  66062.           })
  66063.         }
  66064.         for (e in t = te.isXML = function (e) {
  66065.           e = e && (e.ownerDocument || e).documentElement;
  66066.           return !!e && 'HTML' !== e.nodeName
  66067.         }, d = te.setDocument = function (e) {
  66068.           var l = e ? e.ownerDocument || e : g;
  66069.           return l !== w && 9 === l.nodeType && l.documentElement && (a = (w = l).documentElement, m = t(l), y.tagNameNoComments = ee(function (e) {
  66070.             return e.appendChild(l.createComment('')),
  66071.             !e.getElementsByTagName('*').length
  66072.           }), y.attributes = ee(function (e) {
  66073.             e.innerHTML = '<select></select>';
  66074.             e = typeof e.lastChild.getAttribute('multiple');
  66075.             return 'boolean' != e && 'string' != e
  66076.           }), y.getByClassName = ee(function (e) {
  66077.             return e.innerHTML = '<div class=\'hidden e\'></div><div class=\'hidden\'></div>',
  66078.             !(!e.getElementsByClassName || !e.getElementsByClassName('e').length) && (e.lastChild.className = 'e', 2 === e.getElementsByClassName('e').length)
  66079.           }), y.getByName = ee(function (e) {
  66080.             e.id = v + 0,
  66081.             e.innerHTML = '<a name=\'' + v + '\'></a><div name=\'' + v + '\'></div>',
  66082.             a.insertBefore(e, a.firstChild);
  66083.             var t = l.getElementsByName && l.getElementsByName(v).length === 2 + l.getElementsByName(v + 0).length;
  66084.             return y.getIdNotName = !l.getElementById(v),
  66085.             a.removeChild(e),
  66086.             t
  66087.           }), O.attrHandle = ee(function (e) {
  66088.             return e.innerHTML = '<a href=\'#\'></a>',
  66089.             e.firstChild && typeof e.firstChild.getAttribute != k && '#' === e.firstChild.getAttribute('href')
  66090.           }) ? {
  66091.           }
  66092.            : {
  66093.             href: function (e) {
  66094.               return e.getAttribute('href', 2)
  66095.             },
  66096.             type: function (e) {
  66097.               return e.getAttribute('type')
  66098.             }
  66099.           }, y.getIdNotName ? (O.find.ID = function (e, t) {
  66100.             if (typeof t.getElementById != k && !m) {
  66101.               e = t.getElementById(e);
  66102.               return e && e.parentNode ? [
  66103.                 e
  66104.               ] : [
  66105.               ]
  66106.             }
  66107.           }, O.filter.ID = function (e) {
  66108.             var t = e.replace(K, J);
  66109.             return function (e) {
  66110.               return e.getAttribute('id') === t
  66111.             }
  66112.           }) : (O.find.ID = function (e, t) {
  66113.             if (typeof t.getElementById != k && !m) {
  66114.               t = t.getElementById(e);
  66115.               return t ? t.id === e || typeof t.getAttributeNode != k && t.getAttributeNode('id').value === e ? [
  66116.                 t
  66117.               ] : void 0 : [
  66118.               ]
  66119.             }
  66120.           }, O.filter.ID = function (e) {
  66121.             var t = e.replace(K, J);
  66122.             return function (e) {
  66123.               e = typeof e.getAttributeNode != k && e.getAttributeNode('id');
  66124.               return e && e.value === t
  66125.             }
  66126.           }), O.find.TAG = y.tagNameNoComments ? function (e, t) {
  66127.             if (typeof t.getElementsByTagName != k) return t.getElementsByTagName(e)
  66128.           }
  66129.            : function (e, t) {
  66130.             var n,
  66131.             a = [
  66132.             ],
  66133.             r = 0,
  66134.             o = t.getElementsByTagName(e);
  66135.             if ('*' !== e) return o;
  66136.             for (; n = o[r++]; ) 1 === n.nodeType && a.push(n);
  66137.             return a
  66138.           }, O.find.NAME = y.getByName && function (e, t) {
  66139.             if (typeof t.getElementsByName != k) return t.getElementsByName(name)
  66140.           }, O.find.CLASS = y.getByClassName && function (e, t) {
  66141.             if (typeof t.getElementsByClassName != k && !m) return t.getElementsByClassName(e)
  66142.           }, r = [
  66143.           ], f = [
  66144.             ':focus'
  66145.           ], (y.qsa = $(l.querySelectorAll)) && (ee(function (e) {
  66146.             e.innerHTML = '<select><option selected=\'\'></option></select>',
  66147.             e.querySelectorAll('[selected]').length || f.push('\\[' + D + '*(?:checked|disabled|ismap|multiple|readonly|selected|value)'),
  66148.             e.querySelectorAll(':checked').length || f.push(':checked')
  66149.           }), ee(function (e) {
  66150.             e.innerHTML = '<input type=\'hidden\' i=\'\'/>',
  66151.             e.querySelectorAll('[i^=\'\']').length && f.push('[*^$]=' + D + '*(?:""|\'\')'),
  66152.             e.querySelectorAll(':enabled').length || f.push(':enabled', ':disabled'),
  66153.             e.querySelectorAll('*,:x'),
  66154.             f.push(',.*:')
  66155.           })), (y.matchesSelector = $(i = a.matchesSelector || a.mozMatchesSelector || a.webkitMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ee(function (e) {
  66156.             y.disconnectedMatch = i.call(e, 'div'),
  66157.             i.call(e, '[s!=\'\']:x'),
  66158.             r.push('!=', I)
  66159.           }), f = RegExp(f.join('|')), r = RegExp(r.join('|')), h = $(a.contains) || a.compareDocumentPosition ? function (e, t) {
  66160.             var n = 9 === e.nodeType ? e.documentElement : e,
  66161.             t = t && t.parentNode;
  66162.             return e === t || !(!t || 1 !== t.nodeType || !(n.contains ? n.contains(t) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(t)))
  66163.           }
  66164.            : function (e, t) {
  66165.             if (t) for (; t = t.parentNode; ) if (t === e) return !0;
  66166.             return !1
  66167.           }, s = a.compareDocumentPosition ? function (e, t) {
  66168.             var n;
  66169.             return e === t ? (c = !0, 0) : (n = t.compareDocumentPosition && e.compareDocumentPosition && e.compareDocumentPosition(t)) ? 1 & n || e.parentNode && 11 === e.parentNode.nodeType ? e === l || h(g, e) ? - 1 : t === l || h(g, t) ? 1 : 0 : 4 & n ? - 1 : 1 : e.compareDocumentPosition ? - 1 : 1
  66170.           }
  66171.            : function (e, t) {
  66172.             var n,
  66173.             a = 0,
  66174.             r = e.parentNode,
  66175.             o = t.parentNode,
  66176.             i = [
  66177.               e
  66178.             ],
  66179.             s = [
  66180.               t
  66181.             ];
  66182.             if (e === t) return c = !0,
  66183.             0;
  66184.             if (!r || !o) return e === l ? - 1 : t === l ? 1 : r ? - 1 : o ? 1 : 0;
  66185.             if (r === o) return ne(e, t);
  66186.             for (n = e; n = n.parentNode; ) i.unshift(n);
  66187.             for (n = t; n = n.parentNode; ) s.unshift(n);
  66188.             for (; i[a] === s[a]; ) a++;
  66189.             return a ? ne(i[a], s[a]) : i[a] === g ? - 1 : s[a] === g ? 1 : 0
  66190.           }, c = !1, [
  66191.             0,
  66192.             0
  66193.           ].sort(s), y.detectDuplicates = c),
  66194.           w
  66195.         }, te.matches = function (e, t) {
  66196.           return te(e, null, null, t)
  66197.         }, te.matchesSelector = function (e, t) {
  66198.           if ((e.ownerDocument || e) !== w && d(e), t = t.replace(Q, '=\'$1\']'), y.matchesSelector && !m && (!r || !r.test(t)) && !f.test(t)) try {
  66199.             var n = i.call(e, t);
  66200.             if (n || y.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
  66201.           } catch (e) {
  66202.           }
  66203.           return 0 < te(t, w, null, [
  66204.             e
  66205.           ]).length
  66206.         }, te.contains = function (e, t) {
  66207.           return (e.ownerDocument || e) !== w && d(e),
  66208.           h(e, t)
  66209.         }, te.attr = function (e, t) {
  66210.           var n;
  66211.           return (e.ownerDocument || e) !== w && d(e),
  66212.           m || (t = t.toLowerCase()),
  66213.           (n = O.attrHandle[t]) ? n(e) : m || y.attributes ? e.getAttribute(t) : ((n = e.getAttributeNode(t)) || e.getAttribute(t)) && !0 === e[t] ? t : n && n.specified ? n.value : null
  66214.         }, te.error = function (e) {
  66215.           throw Error('Syntax error, unrecognized expression: ' + e)
  66216.         }, te.uniqueSort = function (e) {
  66217.           var t,
  66218.           n = [
  66219.           ],
  66220.           a = 1,
  66221.           r = 0;
  66222.           if (c = !y.detectDuplicates, e.sort(s), c) {
  66223.             for (; t = e[a]; a++) t === e[a - 1] && (r = n.push(a));
  66224.             for (; r--; ) e.splice(n[r], 1)
  66225.           }
  66226.           return e
  66227.         }, o = te.getText = function (e) {
  66228.           var t,
  66229.           n = '',
  66230.           a = 0,
  66231.           r = e.nodeType;
  66232.           if (r) {
  66233.             if (1 === r || 9 === r || 11 === r) {
  66234.               if ('string' == typeof e.textContent) return e.textContent;
  66235.               for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
  66236.             } else if (3 === r || 4 === r) return e.nodeValue
  66237.           } else for (; t = e[a]; a++) n += o(t);
  66238.           return n
  66239.         }, O = te.selectors = {
  66240.           cacheLength: 50,
  66241.           createPseudo: X,
  66242.           match: B,
  66243.           find: {
  66244.           },
  66245.           relative: {
  66246.             '>': {
  66247.               dir: 'parentNode',
  66248.               first: !0
  66249.             },
  66250.             ' ': {
  66251.               dir: 'parentNode'
  66252.             },
  66253.             '+': {
  66254.               dir: 'previousSibling',
  66255.               first: !0
  66256.             },
  66257.             '~': {
  66258.               dir: 'previousSibling'
  66259.             }
  66260.           },
  66261.           preFilter: {
  66262.             ATTR: function (e) {
  66263.               return e[1] = e[1].replace(K, J),
  66264.               e[3] = (e[4] || e[5] || '').replace(K, J),
  66265.               '~=' === e[2] && (e[3] = ' ' + e[3] + ' '),
  66266.               e.slice(0, 4)
  66267.             },
  66268.             CHILD: function (e) {
  66269.               return e[1] = e[1].toLowerCase(),
  66270.               'nth' === e[1].slice(0, 3) ? (e[3] || te.error(e[0]), e[4] = + (e[4] ? e[5] + (e[6] || 1) : 2 * ('even' === e[3] || 'odd' === e[3])), e[5] = + (e[7] + e[8] || 'odd' === e[3])) : e[3] && te.error(e[0]),
  66271.               e
  66272.             },
  66273.             PSEUDO: function (e) {
  66274.               var t,
  66275.               n = !e[5] && e[2];
  66276.               return B.CHILD.test(e[0]) ? null : (e[4] ? e[2] = e[4] : n && U.test(n) && (t = re(n, !0)) && (t = n.indexOf(')', n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
  66277.             }
  66278.           },
  66279.           filter: {
  66280.             TAG: function (t) {
  66281.               return '*' === t ? function () {
  66282.                 return !0
  66283.               }
  66284.                : (t = t.replace(K, J).toLowerCase(), function (e) {
  66285.                 return e.nodeName && e.nodeName.toLowerCase() === t
  66286.               })
  66287.             },
  66288.             CLASS: function (e) {
  66289.               var t = l[e + ' '];
  66290.               return t || (t = RegExp('(^|' + D + ')' + e + '(' + D + '|$)')) && l(e, function (e) {
  66291.                 return t.test(e.className || typeof e.getAttribute != k && e.getAttribute('class') || '')
  66292.               })
  66293.             },
  66294.             ATTR: function (t, n, a) {
  66295.               return function (e) {
  66296.                 e = te.attr(e, t);
  66297.                 return null == e ? '!=' === n : !n || (e += '', '=' === n ? e === a : '!=' === n ? e !== a : '^=' === n ? a && 0 == e.indexOf(a) : '*=' === n ? a && !!~e.indexOf(a) : '$=' === n ? a && e.slice( - a.length) === a : '~=' === n ? !!~(' ' + e + ' ').indexOf(a) : '|=' === n && (e === a || e.slice(0, a.length + 1) === a + '-'))
  66298.               }
  66299.             },
  66300.             CHILD: function (m, e, t, f, h) {
  66301.               var g = 'nth' !== m.slice(0, 3),
  66302.               y = 'last' !== m.slice( - 4),
  66303.               b = 'of-type' === e;
  66304.               return 1 === f && 0 === h ? function (e) {
  66305.                 return !!e.parentNode
  66306.               }
  66307.                : function (e, t, n) {
  66308.                 var a,
  66309.                 r,
  66310.                 o,
  66311.                 i,
  66312.                 s,
  66313.                 l,
  66314.                 c = g != y ? 'nextSibling' : 'previousSibling',
  66315.                 u = e.parentNode,
  66316.                 p = b && e.nodeName.toLowerCase(),
  66317.                 d = !n && !b;
  66318.                 if (u) {
  66319.                   if (g) {
  66320.                     for (; c; ) {
  66321.                       for (o = e; o = o[c]; ) if (b ? o.nodeName.toLowerCase() === p : 1 === o.nodeType) return !1;
  66322.                       l = c = 'only' === m && !l && 'nextSibling'
  66323.                     }
  66324.                     return !0
  66325.                   }
  66326.                   if (l = [
  66327.                     y ? u.firstChild : u.lastChild
  66328.                   ], y && d) {
  66329.                     for (i = (a = (r = u[v] || (u[v] = {
  66330.                     })) [m] || [
  66331.                     ]) [0] === P && a[2], o = (s = a[0] === P && a[1]) && u.childNodes[s]; o = ++s && o && o[c] || (i = s = 0) || l.pop(); ) if (1 === o.nodeType && ++i && o === e) {
  66332.                       r[m] = [
  66333.                         P,
  66334.                         s,
  66335.                         i
  66336.                       ];
  66337.                       break
  66338.                     }
  66339.                   } else if (d && (a = (e[v] || (e[v] = {
  66340.                   })) [m]) && a[0] === P) i = a[1];
  66341.                    else for (; (o = ++s && o && o[c] || (i = s = 0) || l.pop()) && ((b ? o.nodeName.toLowerCase() !== p : 1 !== o.nodeType) || !++i || (d && ((o[v] || (o[v] = {
  66342.                   })) [m] = [
  66343.                     P,
  66344.                     i
  66345.                   ]), o !== e)); );
  66346.                   return (i -= h) === f || i % f == 0 && 0 <= i / f
  66347.                 }
  66348.               }
  66349.             },
  66350.             PSEUDO: function (e, o) {
  66351.               var t,
  66352.               i = O.pseudos[e] || O.setFilters[e.toLowerCase()] || te.error('unsupported pseudo: ' + e);
  66353.               return i[v] ? i(o) : 1 < i.length ? (t = [
  66354.                 e,
  66355.                 e,
  66356.                 '',
  66357.                 o
  66358.               ], O.setFilters.hasOwnProperty(e.toLowerCase()) ? X(function (e, t) {
  66359.                 for (var n, a = i(e, o), r = a.length; r--; ) e[n = A.call(e, a[r])] = !(t[n] = a[r])
  66360.               }) : function (e) {
  66361.                 return i(e, 0, t)
  66362.               }) : i
  66363.             }
  66364.           },
  66365.           pseudos: {
  66366.             not: X(function (e) {
  66367.               var a = [
  66368.               ],
  66369.               r = [
  66370.               ],
  66371.               s = p(e.replace(q, '$1'));
  66372.               return s[v] ? X(function (e, t, n, a) {
  66373.                 for (var r, o = s(e, null, a, [
  66374.                 ]), i = e.length; i--; ) (r = o[i]) && (e[i] = !(t[i] = r))
  66375.               }) : function (e, t, n) {
  66376.                 return a[0] = e,
  66377.                 s(a, null, n, r),
  66378.                 !r.pop()
  66379.               }
  66380.             }),
  66381.             has: X(function (t) {
  66382.               return function (e) {
  66383.                 return 0 < te(t, e).length
  66384.               }
  66385.             }),
  66386.             contains: X(function (t) {
  66387.               return function (e) {
  66388.                 return !!~(e.textContent || e.innerText || o(e)).indexOf(t)
  66389.               }
  66390.             }),
  66391.             lang: X(function (n) {
  66392.               return M.test(n || '') || te.error('unsupported lang: ' + n),
  66393.               n = n.replace(K, J).toLowerCase(),
  66394.               function (e) {
  66395.                 var t;
  66396.                 do {
  66397.                   if (t = m ? e.getAttribute('xml:lang') || e.getAttribute('lang') : e.lang) return (t = t.toLowerCase()) === n || 0 == t.indexOf(n + '-')
  66398.                 } while ((e = e.parentNode) && 1 === e.nodeType);
  66399.                 return !1
  66400.               }
  66401.             }),
  66402.             target: function (e) {
  66403.               var t = n.location && n.location.hash;
  66404.               return t && t.slice(1) === e.id
  66405.             },
  66406.             root: function (e) {
  66407.               return e === a
  66408.             },
  66409.             focus: function (e) {
  66410.               return e === w.activeElement && (!w.hasFocus || w.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
  66411.             },
  66412.             enabled: function (e) {
  66413.               return !1 === e.disabled
  66414.             },
  66415.             disabled: function (e) {
  66416.               return !0 === e.disabled
  66417.             },
  66418.             checked: function (e) {
  66419.               var t = e.nodeName.toLowerCase();
  66420.               return 'input' == t && !!e.checked || 'option' == t && !!e.selected
  66421.             },
  66422.             selected: function (e) {
  66423.               return !0 === e.selected
  66424.             },
  66425.             empty: function (e) {
  66426.               for (e = e.firstChild; e; e = e.nextSibling) if ('@' < e.nodeName || 3 === e.nodeType || 4 === e.nodeType) return !1;
  66427.               return !0
  66428.             },
  66429.             parent: function (e) {
  66430.               return !O.pseudos.empty(e)
  66431.             },
  66432.             header: function (e) {
  66433.               return W.test(e.nodeName)
  66434.             },
  66435.             input: function (e) {
  66436.               return V.test(e.nodeName)
  66437.             },
  66438.             button: function (e) {
  66439.               var t = e.nodeName.toLowerCase();
  66440.               return 'input' == t && 'button' === e.type || 'button' == t
  66441.             },
  66442.             text: function (e) {
  66443.               var t;
  66444.               return 'input' == e.nodeName.toLowerCase() && 'text' === e.type && (null == (t = e.getAttribute('type')) || t.toLowerCase() === e.type)
  66445.             },
  66446.             first: ae(function () {
  66447.               return [0]
  66448.             }),
  66449.             last: ae(function (e, t) {
  66450.               return [t - 1]
  66451.             }),
  66452.             eq: ae(function (e, t, n) {
  66453.               return [n < 0 ? n + t : n]
  66454.             }),
  66455.             even: ae(function (e, t) {
  66456.               for (var n = 0; n < t; n += 2) e.push(n);
  66457.               return e
  66458.             }),
  66459.             odd: ae(function (e, t) {
  66460.               for (var n = 1; n < t; n += 2) e.push(n);
  66461.               return e
  66462.             }),
  66463.             lt: ae(function (e, t, n) {
  66464.               for (var a = n < 0 ? n + t : n; 0 <= --a; ) e.push(a);
  66465.               return e
  66466.             }),
  66467.             gt: ae(function (e, t, n) {
  66468.               for (var a = n < 0 ? n + t : n; ++a < t; ) e.push(a);
  66469.               return e
  66470.             })
  66471.           }
  66472.         }, {
  66473.           radio: !0,
  66474.           checkbox: !0,
  66475.           file: !0,
  66476.           password: !0,
  66477.           image: !0
  66478.         }) O.pseudos[e] = function (t) {
  66479.           return function (e) {
  66480.             return 'input' == e.nodeName.toLowerCase() && e.type === t
  66481.           }
  66482.         }(e);
  66483.         for (e in {
  66484.           submit: !0,
  66485.           reset: !0
  66486.         }) O.pseudos[e] = function (n) {
  66487.           return function (e) {
  66488.             var t = e.nodeName.toLowerCase();
  66489.             return ('input' == t || 'button' == t) && e.type === n
  66490.           }
  66491.         }(e);
  66492.         function re(e, t) {
  66493.           var n,
  66494.           a,
  66495.           r,
  66496.           o,
  66497.           i,
  66498.           s,
  66499.           l,
  66500.           c = u[e + ' '];
  66501.           if (c) return t ? 0 : c.slice(0);
  66502.           for (i = e, s = [
  66503.           ], l = O.preFilter; i; ) {
  66504.             for (o in n && !(a = F.exec(i)) || (a && (i = i.slice(a[0].length) || i), s.push(r = [
  66505.             ])), n = !1, (a = L.exec(i)) && (n = a.shift(), r.push({
  66506.               value: n,
  66507.               type: a[0].replace(q, ' ')
  66508.             }), i = i.slice(n.length)), O.filter) !(a = B[o].exec(i)) || l[o] && !(a = l[o](a)) || (n = a.shift(), r.push({
  66509.               value: n,
  66510.               type: o,
  66511.               matches: a
  66512.             }), i = i.slice(n.length));
  66513.             if (!n) break
  66514.           }
  66515.           return t ? i.length : i ? te.error(e) : u(e, s).slice(0)
  66516.         }
  66517.         function oe(e) {
  66518.           for (var t = 0, n = e.length, a = ''; t < n; t++) a += e[t].value;
  66519.           return a
  66520.         }
  66521.         function ie(s, e, t) {
  66522.           var l = e.dir,
  66523.           c = t && 'parentNode' === l,
  66524.           u = b++;
  66525.           return e.first ? function (e, t, n) {
  66526.             for (; e = e[l]; ) if (1 === e.nodeType || c) return s(e, t, n)
  66527.           }
  66528.            : function (e, t, n) {
  66529.             var a,
  66530.             r,
  66531.             o,
  66532.             i = P + ' ' + u;
  66533.             if (n) {
  66534.               for (; e = e[l]; ) if ((1 === e.nodeType || c) && s(e, t, n)) return !0
  66535.             } else for (; e = e[l]; ) if (1 === e.nodeType || c) if ((r = (o = e[v] || (e[v] = {
  66536.             })) [l]) && r[0] === i) {
  66537.               if (!0 === (a = r[1]) || a === E) return !0 === a
  66538.             } else if ((r = o[l] = [
  66539.               i
  66540.             ]) [1] = s(e, t, n) || E, !0 === r[1]) return !0
  66541.           }
  66542.         }
  66543.         function se(r) {
  66544.           return 1 < r.length ? function (e, t, n) {
  66545.             for (var a = r.length; a--; ) if (!r[a](e, t, n)) return !1;
  66546.             return !0
  66547.           }
  66548.            : r[0]
  66549.         }
  66550.         function le(e, t, n, a, r) {
  66551.           for (var o, i = [
  66552.           ], s = 0, l = e.length, c = null != t; s < l; s++) (o = e[s]) && (n && !n(o, a, r) || (i.push(o), c && t.push(s)));
  66553.           return i
  66554.         }
  66555.         function ce(m, f, h, g, y, e) {
  66556.           return g && !g[v] && (g = ce(g)),
  66557.           y && !y[v] && (y = ce(y, e)),
  66558.           X(function (e, t, n, a) {
  66559.             var r,
  66560.             o,
  66561.             i,
  66562.             s = [
  66563.             ],
  66564.             l = [
  66565.             ],
  66566.             c = t.length,
  66567.             u = e || function (e, t, n) {
  66568.               for (var a = 0, r = t.length; a < r; a++) te(e, t[a], n);
  66569.               return n
  66570.             }(f || '*', n.nodeType ? [
  66571.               n
  66572.             ] : n, [
  66573.             ]),
  66574.             p = !m || !e && f ? u : le(u, s, m, n, a),
  66575.             d = h ? y || (e ? m : c || g) ? [
  66576.             ] : t : p;
  66577.             if (h && h(p, d, n, a), g) for (r = le(d, l), g(r, [
  66578.             ], n, a), o = r.length; o--; ) (i = r[o]) && (d[l[o]] = !(p[l[o]] = i));
  66579.             if (e) {
  66580.               if (y || m) {
  66581.                 if (y) {
  66582.                   for (r = [
  66583.                   ], o = d.length; o--; ) (i = d[o]) && r.push(p[o] = i);
  66584.                   y(null, d = [
  66585.                   ], r, a)
  66586.                 }
  66587.                 for (o = d.length; o--; ) (i = d[o]) && - 1 < (r = y ? A.call(e, i) : s[o]) && (e[r] = !(t[r] = i))
  66588.               }
  66589.             } else d = le(d === t ? d.splice(c, d.length) : d),
  66590.             y ? y(null, t, d, a) : R.apply(t, d)
  66591.           })
  66592.         }
  66593.         function ue(g, y) {
  66594.           function e(e, t, n, a, r) {
  66595.             var o,
  66596.             i,
  66597.             s,
  66598.             l = [
  66599.             ],
  66600.             c = 0,
  66601.             u = '0',
  66602.             p = e && [
  66603.             ],
  66604.             d = null != r,
  66605.             m = S,
  66606.             f = e || _ && O.find.TAG('*', r && t.parentNode || t),
  66607.             h = P += null == m ? 1 : Math.random() || 0.1;
  66608.             for (d && (S = t !== w && t, E = b); null != (o = f[u]); u++) {
  66609.               if (_ && o) {
  66610.                 for (i = 0; s = g[i++]; ) if (s(o, t, n)) {
  66611.                   a.push(o);
  66612.                   break
  66613.                 }
  66614.                 d && (P = h, E = ++b)
  66615.               }
  66616.               v && ((o = !s && o) && c--, e && p.push(o))
  66617.             }
  66618.             if (c += u, v && u !== c) {
  66619.               for (i = 0; s = y[i++]; ) s(p, l, t, n);
  66620.               if (e) {
  66621.                 if (0 < c) for (; u--; ) p[u] || l[u] || (l[u] = C.call(a));
  66622.                 l = le(l)
  66623.               }
  66624.               R.apply(a, l),
  66625.               d && !e && 0 < l.length && 1 < c + y.length && te.uniqueSort(a)
  66626.             }
  66627.             return d && (P = h, S = m),
  66628.             p
  66629.           }
  66630.           var b = 0,
  66631.           v = 0 < y.length,
  66632.           _ = 0 < g.length;
  66633.           return v ? X(e) : e
  66634.         }
  66635.         function pe() {
  66636.         }
  66637.         p = te.compile = function (e, t) {
  66638.           var n,
  66639.           a = [
  66640.           ],
  66641.           r = [
  66642.           ],
  66643.           o = _[e + ' '];
  66644.           if (!o) {
  66645.             for (n = (t = t || re(e)).length; n--; ) ((o = function e(t) {
  66646.               for (var a, n, r, o = t.length, i = O.relative[t[0].type], s = i || O.relative[' '], l = i ? 1 : 0, c = ie(function (e) {
  66647.                 return e === a
  66648.               }, s, !0), u = ie(function (e) {
  66649.                 return - 1 < A.call(a, e)
  66650.               }, s, !0), p = [
  66651.                 function (e, t, n) {
  66652.                   return !i && (n || t !== S) || ((a = t).nodeType ? c : u) (e, t, n)
  66653.                 }
  66654.               ]; l < o; l++) if (n = O.relative[t[l].type]) p = [
  66655.                 ie(se(p), n)
  66656.               ];
  66657.                else {
  66658.                 if ((n = O.filter[t[l].type].apply(null, t[l].matches)) [v]) {
  66659.                   for (r = ++l; r < o && !O.relative[t[r].type]; r++);
  66660.                   return ce(1 < l && se(p), 1 < l && oe(t.slice(0, l - 1)).replace(q, '$1'), n, l < r && e(t.slice(l, r)), r < o && e(t = t.slice(r)), r < o && oe(t))
  66661.                 }
  66662.                 p.push(n)
  66663.               }
  66664.               return se(p)
  66665.             }(t[n])) [v] ? a : r).push(o);
  66666.             o = _(e, ue(r, a))
  66667.           }
  66668.           return o
  66669.         },
  66670.         O.pseudos.nth = O.pseudos.eq,
  66671.         O.filters = pe.prototype = O.pseudos,
  66672.         O.setFilters = new pe,
  66673.         d(),
  66674.         te.attr = de.attr,
  66675.         de.find = te,
  66676.         de.expr = te.selectors,
  66677.         de.expr[':'] = de.expr.pseudos,
  66678.         de.unique = te.uniqueSort,
  66679.         de.text = te.getText,
  66680.         de.isXMLDoc = te.isXML,
  66681.         de.contains = te.contains
  66682.       }(f);
  66683.       var ae = /Until$/,
  66684.       re = /^(?:parents|prev(?:Until|All))/,
  66685.       oe = /^.[^:#\[\.,]*$/,
  66686.       ie = de.expr.match.needsContext,
  66687.       se = {
  66688.         children: !0,
  66689.         contents: !0,
  66690.         next: !0,
  66691.         prev: !0
  66692.       };
  66693.       function le(e, t) {
  66694.         for (; (e = e[t]) && 1 !== e.nodeType; );
  66695.         return e
  66696.       }
  66697.       function ce(e, n, a) {
  66698.         if (de.isFunction(n = n || 0)) return de.grep(e, function (e, t) {
  66699.           return !!n.call(e, t, e) === a
  66700.         });
  66701.         if (n.nodeType) return de.grep(e, function (e) {
  66702.           return e === n === a
  66703.         });
  66704.         if ('string' == typeof n) {
  66705.           var t = de.grep(e, function (e) {
  66706.             return 1 === e.nodeType
  66707.           });
  66708.           if (oe.test(n)) return de.filter(n, t, !a);
  66709.           n = de.filter(n, t)
  66710.         }
  66711.         return de.grep(e, function (e) {
  66712.           return 0 <= de.inArray(e, n) === a
  66713.         })
  66714.       }
  66715.       function ue(e) {
  66716.         var t = pe.split('|'),
  66717.         n = e.createDocumentFragment();
  66718.         if (n.createElement) for (; t.length; ) n.createElement(t.pop());
  66719.         return n
  66720.       }
  66721.       de.fn.extend({
  66722.         find: function (e) {
  66723.           var t,
  66724.           n,
  66725.           a,
  66726.           r = this.length;
  66727.           if ('string' != typeof e) return (a = this).pushStack(de(e).filter(function () {
  66728.             for (t = 0; t < r; t++) if (de.contains(a[t], this)) return !0
  66729.           }));
  66730.           for (n = [
  66731.           ], t = 0; t < r; t++) de.find(e, this[t], n);
  66732.           return (n = this.pushStack(1 < r ? de.unique(n) : n)).selector = (this.selector ? this.selector + ' ' : '') + e,
  66733.           n
  66734.         },
  66735.         has: function (e) {
  66736.           var t,
  66737.           n = de(e, this),
  66738.           a = n.length;
  66739.           return this.filter(function () {
  66740.             for (t = 0; t < a; t++) if (de.contains(this, n[t])) return !0
  66741.           })
  66742.         },
  66743.         not: function (e) {
  66744.           return this.pushStack(ce(this, e, !1))
  66745.         },
  66746.         filter: function (e) {
  66747.           return this.pushStack(ce(this, e, !0))
  66748.         },
  66749.         is: function (e) {
  66750.           return !!e && ('string' == typeof e ? ie.test(e) ? 0 <= de(e, this.context).index(this[0]) : 0 < de.filter(e, this).length : 0 < this.filter(e).length)
  66751.         },
  66752.         closest: function (e, t) {
  66753.           for (var n, a = 0, r = this.length, o = [
  66754.           ], i = ie.test(e) || 'string' != typeof e ? de(e, t || this.context) : 0; a < r; a++) for (n = this[a]; n && n.ownerDocument && n !== t && 11 !== n.nodeType; ) {
  66755.             if (i ? - 1 < i.index(n) : de.find.matchesSelector(n, e)) {
  66756.               o.push(n);
  66757.               break
  66758.             }
  66759.             n = n.parentNode
  66760.           }
  66761.           return this.pushStack(1 < o.length ? de.unique(o) : o)
  66762.         },
  66763.         index: function (e) {
  66764.           return e ? 'string' == typeof e ? de.inArray(this[0], de(e)) : de.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : - 1
  66765.         },
  66766.         add: function (e, t) {
  66767.           e = 'string' == typeof e ? de(e, t) : de.makeArray(e && e.nodeType ? [
  66768.             e
  66769.           ] : e),
  66770.           e = de.merge(this.get(), e);
  66771.           return this.pushStack(de.unique(e))
  66772.         },
  66773.         addBack: function (e) {
  66774.           return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
  66775.         }
  66776.       }),
  66777.       de.fn.andSelf = de.fn.addBack,
  66778.       de.each({
  66779.         parent: function (e) {
  66780.           e = e.parentNode;
  66781.           return e && 11 !== e.nodeType ? e : null
  66782.         },
  66783.         parents: function (e) {
  66784.           return de.dir(e, 'parentNode')
  66785.         },
  66786.         parentsUntil: function (e, t, n) {
  66787.           return de.dir(e, 'parentNode', n)
  66788.         },
  66789.         next: function (e) {
  66790.           return le(e, 'nextSibling')
  66791.         },
  66792.         prev: function (e) {
  66793.           return le(e, 'previousSibling')
  66794.         },
  66795.         nextAll: function (e) {
  66796.           return de.dir(e, 'nextSibling')
  66797.         },
  66798.         prevAll: function (e) {
  66799.           return de.dir(e, 'previousSibling')
  66800.         },
  66801.         nextUntil: function (e, t, n) {
  66802.           return de.dir(e, 'nextSibling', n)
  66803.         },
  66804.         prevUntil: function (e, t, n) {
  66805.           return de.dir(e, 'previousSibling', n)
  66806.         },
  66807.         siblings: function (e) {
  66808.           return de.sibling((e.parentNode || {
  66809.           }).firstChild, e)
  66810.         },
  66811.         children: function (e) {
  66812.           return de.sibling(e.firstChild)
  66813.         },
  66814.         contents: function (e) {
  66815.           return de.nodeName(e, 'iframe') ? e.contentDocument || e.contentWindow.document : de.merge([], e.childNodes)
  66816.         }
  66817.       }, function (a, r) {
  66818.         de.fn[a] = function (e, t) {
  66819.           var n = de.map(this, r, e);
  66820.           return (t = !ae.test(a) ? e : t) && 'string' == typeof t && (n = de.filter(t, n)),
  66821.           n = 1 < this.length && !se[a] ? de.unique(n) : n,
  66822.           1 < this.length && re.test(a) && (n = n.reverse()),
  66823.           this.pushStack(n)
  66824.         }
  66825.       }),
  66826.       de.extend({
  66827.         filter: function (e, t, n) {
  66828.           return n && (e = ':not(' + e + ')'),
  66829.           1 === t.length ? de.find.matchesSelector(t[0], e) ? [
  66830.             t[0]
  66831.           ] : [
  66832.           ] : de.find.matches(e, t)
  66833.         },
  66834.         dir: function (e, t, n) {
  66835.           for (var a = [
  66836.           ], r = e[t]; r && 9 !== r.nodeType && (n === O || 1 !== r.nodeType || !de(r).is(n)); ) 1 === r.nodeType && a.push(r),
  66837.           r = r[t];
  66838.           return a
  66839.         },
  66840.         sibling: function (e, t) {
  66841.           for (var n = [
  66842.           ]; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
  66843.           return n
  66844.         }
  66845.       });
  66846.       var pe = 'abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video',
  66847.       me = / jQuery\d+="(?:null|\d+)"/g,
  66848.       fe = RegExp('<(?:' + pe + ')[\\s/>]', 'i'),
  66849.       he = /^\s+/,
  66850.       ge = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
  66851.       ye = /<([\w:]+)/,
  66852.       be = /<tbody/i,
  66853.       ve = /<|&#?\w+;/,
  66854.       _e = /<(?:script|style|link)/i,
  66855.       Ee = /^(?:checkbox|radio)$/i,
  66856.       Oe = /checked\s*(?:[^=]|=\s*.checked.)/i,
  66857.       Se = /^$|\/(?:java|ecma)script/i,
  66858.       we = /^true\/(.*)/,
  66859.       Pe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
  66860.       ke = {
  66861.         option: [
  66862.           1,
  66863.           '<select multiple=\'multiple\'>',
  66864.           '</select>'
  66865.         ],
  66866.         legend: [
  66867.           1,
  66868.           '<fieldset>',
  66869.           '</fieldset>'
  66870.         ],
  66871.         area: [
  66872.           1,
  66873.           '<map>',
  66874.           '</map>'
  66875.         ],
  66876.         param: [
  66877.           1,
  66878.           '<object>',
  66879.           '</object>'
  66880.         ],
  66881.         thead: [
  66882.           1,
  66883.           '<table>',
  66884.           '</table>'
  66885.         ],
  66886.         tr: [
  66887.           2,
  66888.           '<table><tbody>',
  66889.           '</tbody></table>'
  66890.         ],
  66891.         col: [
  66892.           2,
  66893.           '<table><tbody></tbody><colgroup>',
  66894.           '</colgroup></table>'
  66895.         ],
  66896.         td: [
  66897.           3,
  66898.           '<table><tbody><tr>',
  66899.           '</tr></tbody></table>'
  66900.         ],
  66901.         _default: de.support.htmlSerialize ? [
  66902.           0,
  66903.           '',
  66904.           ''
  66905.         ] : [
  66906.           1,
  66907.           'X<div>',
  66908.           '</div>'
  66909.         ]
  66910.       },
  66911.       Ne = ue(g).appendChild(g.createElement('div'));
  66912.       function Ce(e) {
  66913.         var t = e.getAttributeNode('type');
  66914.         return e.type = (t && t.specified) + '/' + e.type,
  66915.         e
  66916.       }
  66917.       function Re(e) {
  66918.         var t = we.exec(e.type);
  66919.         return t ? e.type = t[1] : e.removeAttribute('type'),
  66920.         e
  66921.       }
  66922.       function xe(e, t) {
  66923.         for (var n, a = 0; null != (n = e[a]); a++) de._data(n, 'globalEval', !t || de._data(t[a], 'globalEval'))
  66924.       }
  66925.       function Ae(e, t) {
  66926.         if (1 === t.nodeType && de.hasData(e)) {
  66927.           var n,
  66928.           a,
  66929.           r,
  66930.           o = de._data(e),
  66931.           e = de._data(t, o),
  66932.           i = o.events;
  66933.           if (i) for (n in delete e.handle, e.events = {
  66934.           }, i) for (a = 0, r = i[n].length; a < r; a++) de.event.add(t, n, i[n][a]);
  66935.           e.data && (e.data = de.extend({
  66936.           }, e.data))
  66937.         }
  66938.       }
  66939.       function De(e, t) {
  66940.         var n,
  66941.         a,
  66942.         r = 0,
  66943.         o = typeof e.getElementsByTagName !== h ? e.getElementsByTagName(t || '*') : typeof e.querySelectorAll !== h ? e.querySelectorAll(t || '*') : O;
  66944.         if (!o) for (o = [
  66945.         ], n = e.childNodes || e; null != (a = n[r]); r++) !t || de.nodeName(a, t) ? o.push(a) : de.merge(o, De(a, t));
  66946.         return t === O || t && de.nodeName(e, t) ? de.merge([e], o) : o
  66947.       }
  66948.       function je(e) {
  66949.         Ee.test(e.type) && (e.defaultChecked = e.checked)
  66950.       }
  66951.       ke.optgroup = ke.option,
  66952.       ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead,
  66953.       ke.th = ke.td,
  66954.       de.fn.extend({
  66955.         text: function (e) {
  66956.           return de.access(this, function (e) {
  66957.             return e === O ? de.text(this) : this.empty().append((this[0] && this[0].ownerDocument || g).createTextNode(e))
  66958.           }, null, e, arguments.length)
  66959.         },
  66960.         wrapAll: function (t) {
  66961.           return de.isFunction(t) ? this.each(function (e) {
  66962.             de(this).wrapAll(t.call(this, e))
  66963.           }) : (this[0] && (e = de(t, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]), e.map(function () {
  66964.             for (var e = this; e.firstChild && 1 === e.firstChild.nodeType; ) e = e.firstChild;
  66965.             return e
  66966.           }).append(this)), this);
  66967.           var e
  66968.         },
  66969.         wrapInner: function (n) {
  66970.           return de.isFunction(n) ? this.each(function (e) {
  66971.             de(this).wrapInner(n.call(this, e))
  66972.           }) : this.each(function () {
  66973.             var e = de(this),
  66974.             t = e.contents();
  66975.             t.length ? t.wrapAll(n) : e.append(n)
  66976.           })
  66977.         },
  66978.         wrap: function (t) {
  66979.           var n = de.isFunction(t);
  66980.           return this.each(function (e) {
  66981.             de(this).wrapAll(n ? t.call(this, e) : t)
  66982.           })
  66983.         },
  66984.         unwrap: function () {
  66985.           return this.parent().each(function () {
  66986.             de.nodeName(this, 'body') || de(this).replaceWith(this.childNodes)
  66987.           }).end()
  66988.         },
  66989.         append: function () {
  66990.           return this.domManip(arguments, !0, function (e) {
  66991.             1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || this.appendChild(e)
  66992.           })
  66993.         },
  66994.         prepend: function () {
  66995.           return this.domManip(arguments, !0, function (e) {
  66996.             1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || this.insertBefore(e, this.firstChild)
  66997.           })
  66998.         },
  66999.         before: function () {
  67000.           return this.domManip(arguments, !1, function (e) {
  67001.             this.parentNode && this.parentNode.insertBefore(e, this)
  67002.           })
  67003.         },
  67004.         after: function () {
  67005.           return this.domManip(arguments, !1, function (e) {
  67006.             this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
  67007.           })
  67008.         },
  67009.         remove: function (e, t) {
  67010.           for (var n, a = 0; null != (n = this[a]); a++) (!e || 0 < de.filter(e, [
  67011.             n
  67012.           ]).length) && (t || 1 !== n.nodeType || de.cleanData(De(n)), n.parentNode && (t && de.contains(n.ownerDocument, n) && xe(De(n, 'script')), n.parentNode.removeChild(n)));
  67013.           return this
  67014.         },
  67015.         empty: function () {
  67016.           for (var e, t = 0; null != (e = this[t]); t++) {
  67017.             for (1 === e.nodeType && de.cleanData(De(e, !1)); e.firstChild; ) e.removeChild(e.firstChild);
  67018.             e.options && de.nodeName(e, 'select') && (e.options.length = 0)
  67019.           }
  67020.           return this
  67021.         },
  67022.         clone: function (e, t) {
  67023.           return e = null != e && e,
  67024.           t = null == t ? e : t,
  67025.           this.map(function () {
  67026.             return de.clone(this, e, t)
  67027.           })
  67028.         },
  67029.         html: function (e) {
  67030.           return de.access(this, function (e) {
  67031.             var t = this[0] || {
  67032.             },
  67033.             n = 0,
  67034.             a = this.length;
  67035.             if (e === O) return 1 === t.nodeType ? t.innerHTML.replace(me, '') : O;
  67036.             if ('string' == typeof e && !_e.test(e) && (de.support.htmlSerialize || !fe.test(e)) && (de.support.leadingWhitespace || !he.test(e)) && !ke[(ye.exec(e) || [
  67037.               '',
  67038.               ''
  67039.             ]) [1].toLowerCase()]) {
  67040.               e = e.replace(ge, '<$1></$2>');
  67041.               try {
  67042.                 for (; n < a; n++) 1 === (t = this[n] || {
  67043.                 }).nodeType && (de.cleanData(De(t, !1)), t.innerHTML = e);
  67044.                 t = 0
  67045.               } catch (e) {
  67046.               }
  67047.             }
  67048.             t && this.empty().append(e)
  67049.           }, null, e, arguments.length)
  67050.         },
  67051.         replaceWith: function (e) {
  67052.           return de.isFunction(e) || 'string' == typeof e || (e = de(e).not(this).detach()),
  67053.           this.domManip([e], !0, function (e) {
  67054.             var t = this.nextSibling,
  67055.             n = this.parentNode;
  67056.             n && (de(this).remove(), n.insertBefore(e, t))
  67057.           })
  67058.         },
  67059.         detach: function (e) {
  67060.           return this.remove(e, !0)
  67061.         },
  67062.         domManip: function (n, a, r) {
  67063.           n = y.apply([], n);
  67064.           var e,
  67065.           t,
  67066.           o,
  67067.           i,
  67068.           s,
  67069.           l,
  67070.           c,
  67071.           u,
  67072.           p = 0,
  67073.           d = this.length,
  67074.           m = this,
  67075.           f = d - 1,
  67076.           h = n[0],
  67077.           g = de.isFunction(h);
  67078.           if (g || !(d <= 1 || 'string' != typeof h || de.support.checkClone) && Oe.test(h)) return this.each(function (e) {
  67079.             var t = m.eq(e);
  67080.             g && (n[0] = h.call(this, e, a ? t.html() : O)),
  67081.             t.domManip(n, a, r)
  67082.           });
  67083.           if (d && (e = (l = de.buildFragment(n, this[0].ownerDocument, !1, this)).firstChild, 1 === l.childNodes.length && (l = e), e)) {
  67084.             for (a = a && de.nodeName(e, 'tr'), o = (i = de.map(De(l, 'script'), Ce)).length; p < d; p++) t = l,
  67085.             p !== f && (t = de.clone(t, !0, !0), o && de.merge(i, De(t, 'script'))),
  67086.             r.call(a && de.nodeName(this[p], 'table') ? (c = this[p]).getElementsByTagName(u = 'tbody') [0] || c.appendChild(c.ownerDocument.createElement(u)) : this[p], t, p);
  67087.             if (o) for (s = i[i.length - 1].ownerDocument, de.map(i, Re), p = 0; p < o; p++) Se.test((t = i[p]).type || '') && !de._data(t, 'globalEval') && de.contains(s, t) && (t.src ? de.ajax({
  67088.               url: t.src,
  67089.               type: 'GET',
  67090.               dataType: 'script',
  67091.               async: !1,
  67092.               global: !1,
  67093.               throws: !0
  67094.             }) : de.globalEval((t.text || t.textContent || t.innerHTML || '').replace(Pe, '')));
  67095.             l = e = null
  67096.           }
  67097.           return this
  67098.         }
  67099.       }),
  67100.       de.each({
  67101.         appendTo: 'append',
  67102.         prependTo: 'prepend',
  67103.         insertBefore: 'before',
  67104.         insertAfter: 'after',
  67105.         replaceAll: 'replaceWith'
  67106.       }, function (e, i) {
  67107.         de.fn[e] = function (e) {
  67108.           for (var t, n = 0, a = [
  67109.           ], r = de(e), o = r.length - 1; n <= o; n++) t = n === o ? this : this.clone(!0),
  67110.           de(r[n]) [i](t),
  67111.           s.apply(a, t.get());
  67112.           return this.pushStack(a)
  67113.         }
  67114.       }),
  67115.       de.extend({
  67116.         clone: function (e, t, n) {
  67117.           var a,
  67118.           r,
  67119.           o,
  67120.           i,
  67121.           s,
  67122.           l = de.contains(e.ownerDocument, e);
  67123.           if (de.support.html5Clone || de.isXMLDoc(e) || !fe.test('<' + e.nodeName + '>') ? o = e.cloneNode(!0) : (Ne.innerHTML = e.outerHTML, Ne.removeChild(o = Ne.firstChild)), !(de.support.noCloneEvent && de.support.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || de.isXMLDoc(e))) for (a = De(o), s = De(e), i = 0; null != (r = s[i]); ++i) a[i] && function (e, t) {
  67124.             var n,
  67125.             a,
  67126.             r;
  67127.             if (1 === t.nodeType) {
  67128.               if (n = t.nodeName.toLowerCase(), !de.support.noCloneEvent && t[de.expando]) {
  67129.                 for (a in (r = de._data(t)).events) de.removeEvent(t, a, r.handle);
  67130.                 t.removeAttribute(de.expando)
  67131.               }
  67132.               'script' == n && t.text !== e.text ? (Ce(t).text = e.text, Re(t)) : 'object' == n ? (t.parentNode && (t.outerHTML = e.outerHTML), de.support.html5Clone && e.innerHTML && !de.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : 'input' == n && Ee.test(e.type) ? (t.defaultChecked = t.checked = e.checked, t.value !== e.value && (t.value = e.value)) : 'option' == n ? t.defaultSelected = t.selected = e.defaultSelected : 'input' != n && 'textarea' != n || (t.defaultValue = e.defaultValue)
  67133.             }
  67134.           }(r, a[i]);
  67135.           if (t) if (n) for (s = s || De(e), a = a || De(o), i = 0; null != (r = s[i]); i++) Ae(r, a[i]);
  67136.            else Ae(e, o);
  67137.           return 0 < (a = De(o, 'script')).length && xe(a, !l && De(e, 'script')),
  67138.           a = s = r = null,
  67139.           o
  67140.         },
  67141.         buildFragment: function (e, t, n, a) {
  67142.           for (var r, o, i, s, l, c, u, p = e.length, d = ue(t), m = [
  67143.           ], f = 0; f < p; f++) if ((o = e[f]) || 0 === o) if ('object' === de.type(o)) de.merge(m, o.nodeType ? [
  67144.             o
  67145.           ] : o);
  67146.            else if (ve.test(o)) {
  67147.             for (s = s || d.appendChild(t.createElement('div')), l = (ye.exec(o) || [
  67148.               '',
  67149.               ''
  67150.             ]) [1].toLowerCase(), s.innerHTML = (u = ke[l] || ke._default) [1] + o.replace(ge, '<$1></$2>') + u[2], r = u[0]; r--; ) s = s.lastChild;
  67151.             if (!de.support.leadingWhitespace && he.test(o) && m.push(t.createTextNode(he.exec(o) [0])), !de.support.tbody) for (r = (o = 'table' != l || be.test(o) ? '<table>' !== u[1] || be.test(o) ? 0 : s : s.firstChild) && o.childNodes.length; r--; ) de.nodeName(c = o.childNodes[r], 'tbody') && !c.childNodes.length && o.removeChild(c);
  67152.             for (de.merge(m, s.childNodes), s.textContent = ''; s.firstChild; ) s.removeChild(s.firstChild);
  67153.             s = d.lastChild
  67154.           } else m.push(t.createTextNode(o));
  67155.           for (s && d.removeChild(s), de.support.appendChecked || de.grep(De(m, 'input'), je), f = 0; o = m[f++]; ) if ((!a || - 1 === de.inArray(o, a)) && (i = de.contains(o.ownerDocument, o), s = De(d.appendChild(o), 'script'), i && xe(s), n)) for (r = 0; o = s[r++]; ) Se.test(o.type || '') && n.push(o);
  67156.           return s = null,
  67157.           d
  67158.         },
  67159.         cleanData: function (e, t) {
  67160.           for (var n, a, r, o, i = 0, s = de.expando, l = de.cache, c = de.support.deleteExpando, u = de.event.special; null != (n = e[i]); i++) if ((t || de.acceptData(n)) && (o = (r = n[s]) && l[r])) {
  67161.             if (o.events) for (a in o.events) u[a] ? de.event.remove(n, a) : de.removeEvent(n, a, o.handle);
  67162.             l[r] && (delete l[r], c ? delete n[s] : typeof n.removeAttribute !== h ? n.removeAttribute(s) : n[s] = null, p.push(r))
  67163.           }
  67164.         }
  67165.       });
  67166.       var Te,
  67167.       Ie,
  67168.       qe,
  67169.       Fe = /alpha\([^)]*\)/i,
  67170.       Le = /opacity\s*=\s*([^)]*)/,
  67171.       Ue = /^(top|right|bottom|left)$/,
  67172.       Me = /^(none|table(?!-c[ea]).+)/,
  67173.       Be = /^margin/,
  67174.       ze = RegExp('^(' + m + ')(.*)$', 'i'),
  67175.       He = RegExp('^(' + m + ')(?!px)[a-z%]+$', 'i'),
  67176.       Ge = RegExp('^([+-])=(' + m + ')', 'i'),
  67177.       Ve = {
  67178.         BODY: 'block'
  67179.       },
  67180.       We = {
  67181.         position: 'absolute',
  67182.         visibility: 'hidden',
  67183.         display: 'block'
  67184.       },
  67185.       Ye = {
  67186.         letterSpacing: 0,
  67187.         fontWeight: 400
  67188.       },
  67189.       Qe = [
  67190.         'Top',
  67191.         'Right',
  67192.         'Bottom',
  67193.         'Left'
  67194.       ],
  67195.       Ke = [
  67196.         'Webkit',
  67197.         'O',
  67198.         'Moz',
  67199.         'ms'
  67200.       ];
  67201.       function Je(e, t) {
  67202.         if (t in e) return t;
  67203.         for (var n = (t[0] || '').toUpperCase() + t.slice(1), a = t, r = 4; r--; ) if ((t = Ke[r] + n) in e) return t;
  67204.         return a
  67205.       }
  67206.       function $e(e, t) {
  67207.         return 'none' === de.css(e = t || e, 'display') || !de.contains(e.ownerDocument, e)
  67208.       }
  67209.       function Ze(e, t) {
  67210.         for (var n, a, r, o = [
  67211.         ], i = 0, s = e.length; i < s; i++) (a = e[i]).style && (o[i] = de._data(a, 'olddisplay'), n = a.style.display, t ? (o[i] || 'none' !== n || (a.style.display = ''), '' === a.style.display && $e(a) && (o[i] = de._data(a, 'olddisplay', nt(a.nodeName)))) : o[i] || (r = $e(a), (n && 'none' !== n || !r) && de._data(a, 'olddisplay', r ? n : de.css(a, 'display'))));
  67212.         for (i = 0; i < s; i++) (a = e[i]).style && (t && 'none' !== a.style.display && '' !== a.style.display || (a.style.display = t ? o[i] || '' : 'none'));
  67213.         return e
  67214.       }
  67215.       function Xe(e, t, n) {
  67216.         var a = ze.exec(t);
  67217.         return a ? Math.max(0, a[1] - (n || 0)) + (a[2] || 'px') : t
  67218.       }
  67219.       function et(e, t, n, a, r) {
  67220.         for (var o = n === (a ? 'border' : 'content') ? 4 : 'width' === t ? 1 : 0, i = 0; o < 4; o += 2) 'margin' === n && (i += de.css(e, n + Qe[o], !0, r)),
  67221.         a ? ('content' === n && (i -= de.css(e, 'padding' + Qe[o], !0, r)), 'margin' !== n && (i -= de.css(e, 'border' + Qe[o] + 'Width', !0, r))) : (i += de.css(e, 'padding' + Qe[o], !0, r), 'padding' !== n && (i += de.css(e, 'border' + Qe[o] + 'Width', !0, r)));
  67222.         return i
  67223.       }
  67224.       function tt(e, t, n) {
  67225.         var a = !0,
  67226.         r = 'width' === t ? e.offsetWidth : e.offsetHeight,
  67227.         o = Ie(e),
  67228.         i = de.support.boxSizing && 'border-box' === de.css(e, 'boxSizing', !1, o);
  67229.         if (r <= 0 || null == r) {
  67230.           if (r = qe(e, t, o), He.test(r = r < 0 || null == r ? e.style[t] : r)) return r;
  67231.           a = i && (de.support.boxSizingReliable || r === e.style[t]),
  67232.           r = parseFloat(r) || 0
  67233.         }
  67234.         return r + et(e, t, n || (i ? 'border' : 'content'), a, o) + 'px'
  67235.       }
  67236.       function nt(e) {
  67237.         var t = g,
  67238.         n = Ve[e];
  67239.         return n || ('none' !== (n = at(e, t)) && n || ((t = ((Te = (Te || de('<iframe frameborder=\'0\' width=\'0\' height=\'0\'/>').css('cssText', 'display:block !important')).appendTo(t.documentElement)) [0].contentWindow || Te[0].contentDocument).document).write('<!doctype html><html><body>'), t.close(), n = at(e, t), Te.detach()), Ve[e] = n),
  67240.         n
  67241.       }
  67242.       function at(e, t) {
  67243.         e = de(t.createElement(e)).appendTo(t.body),
  67244.         t = de.css(e[0], 'display');
  67245.         return e.remove(),
  67246.         t
  67247.       }
  67248.       de.fn.extend({
  67249.         css: function (e, t) {
  67250.           return de.access(this, function (e, t, n) {
  67251.             var a,
  67252.             r,
  67253.             o = {
  67254.             },
  67255.             i = 0;
  67256.             if (de.isArray(t)) {
  67257.               for (r = Ie(e), a = t.length; i < a; i++) o[t[i]] = de.css(e, t[i], !1, r);
  67258.               return o
  67259.             }
  67260.             return n !== O ? de.style(e, t, n) : de.css(e, t)
  67261.           }, e, t, 1 < arguments.length)
  67262.         },
  67263.         show: function () {
  67264.           return Ze(this, !0)
  67265.         },
  67266.         hide: function () {
  67267.           return Ze(this)
  67268.         },
  67269.         toggle: function (e) {
  67270.           var t = 'boolean' == typeof e;
  67271.           return this.each(function () {
  67272.             (t ? e : $e(this)) ? de(this).show() : de(this).hide()
  67273.           })
  67274.         }
  67275.       }),
  67276.       de.extend({
  67277.         cssHooks: {
  67278.           opacity: {
  67279.             get: function (e, t) {
  67280.               if (t) {
  67281.                 e = qe(e, 'opacity');
  67282.                 return '' === e ? '1' : e
  67283.               }
  67284.             }
  67285.           }
  67286.         },
  67287.         cssNumber: {
  67288.           columnCount: !0,
  67289.           fillOpacity: !0,
  67290.           fontWeight: !0,
  67291.           lineHeight: !0,
  67292.           opacity: !0,
  67293.           orphans: !0,
  67294.           widows: !0,
  67295.           zIndex: !0,
  67296.           zoom: !0
  67297.         },
  67298.         cssProps: {
  67299.           float: de.support.cssFloat ? 'cssFloat' : 'styleFloat'
  67300.         },
  67301.         style: function (e, t, n, a) {
  67302.           if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
  67303.             var r,
  67304.             o,
  67305.             i,
  67306.             s = de.camelCase(t),
  67307.             l = e.style;
  67308.             if (t = de.cssProps[s] || (de.cssProps[s] = Je(l, s)), i = de.cssHooks[t] || de.cssHooks[s], n === O) return i && 'get' in i && (r = i.get(e, !1, a)) !== O ? r : l[t];
  67309.             if ('string' === (o = typeof n) && (r = Ge.exec(n)) && (n = (r[1] + 1) * r[2] + parseFloat(de.css(e, t)), o = 'number'), !(null == n || 'number' === o && isNaN(n) || ('number' !== o || de.cssNumber[s] || (n += 'px'), de.support.clearCloneStyle || '' !== n || t.indexOf('background') || (l[t] = 'inherit'), i && 'set' in i && (n = i.set(e, n, a)) === O))) try {
  67310.               l[t] = n
  67311.             } catch (e) {
  67312.             }
  67313.           }
  67314.         },
  67315.         css: function (e, t, n, a) {
  67316.           var r,
  67317.           o = de.camelCase(t);
  67318.           return t = de.cssProps[o] || (de.cssProps[o] = Je(e.style, o)),
  67319.           'normal' === (r = (r = (o = de.cssHooks[t] || de.cssHooks[o]) && 'get' in o ? o.get(e, !0, n) : r) === O ? qe(e, t, a) : r) && t in Ye && (r = Ye[t]),
  67320.           '' === n || n ? (t = parseFloat(r), !0 === n || de.isNumeric(t) ? t || 0 : r) : r
  67321.         },
  67322.         swap: function (e, t, n, a) {
  67323.           var r,
  67324.           o = {
  67325.           };
  67326.           for (r in t) o[r] = e.style[r],
  67327.           e.style[r] = t[r];
  67328.           for (r in a = n.apply(e, a || [
  67329.           ]), t) e.style[r] = o[r];
  67330.           return a
  67331.         }
  67332.       }),
  67333.       f.getComputedStyle ? (Ie = function (e) {
  67334.         return f.getComputedStyle(e, null)
  67335.       }, qe = function (e, t, n) {
  67336.         var a = n || Ie(e),
  67337.         r = a ? a.getPropertyValue(t) || a[t] : O,
  67338.         o = e.style;
  67339.         return a && ('' !== r || de.contains(e.ownerDocument, e) || (r = de.style(e, t)), He.test(r) && Be.test(t) && (n = o.width, e = o.minWidth, t = o.maxWidth, o.minWidth = o.maxWidth = o.width = r, r = a.width, o.width = n, o.minWidth = e, o.maxWidth = t)),
  67340.         r
  67341.       }) : g.documentElement.currentStyle && (Ie = function (e) {
  67342.         return e.currentStyle
  67343.       }, qe = function (e, t, n) {
  67344.         var a,
  67345.         r = n || Ie(e),
  67346.         o = r ? r[t] : O,
  67347.         i = e.style;
  67348.         return He.test(o = null == o && i && i[t] ? i[t] : o) && !Ue.test(t) && (a = i.left, (r = (n = e.runtimeStyle) && n.left) && (n.left = e.currentStyle.left), i.left = 'fontSize' === t ? '1em' : o, o = i.pixelLeft + 'px', i.left = a, r && (n.left = r)),
  67349.         '' === o ? 'auto' : o
  67350.       }),
  67351.       de.each(['height',
  67352.       'width'], function (e, r) {
  67353.         de.cssHooks[r] = {
  67354.           get: function (e, t, n) {
  67355.             if (t) return 0 === e.offsetWidth && Me.test(de.css(e, 'display')) ? de.swap(e, We, function () {
  67356.               return tt(e, r, n)
  67357.             }) : tt(e, r, n)
  67358.           },
  67359.           set: function (e, t, n) {
  67360.             var a = n && Ie(e);
  67361.             return Xe(0, t, n ? et(e, r, n, de.support.boxSizing && 'border-box' === de.css(e, 'boxSizing', !1, a), a) : 0)
  67362.           }
  67363.         }
  67364.       }),
  67365.       de.support.opacity || (de.cssHooks.opacity = {
  67366.         get: function (e, t) {
  67367.           return Le.test((t && e.currentStyle ? e.currentStyle : e.style).filter || '') ? 0.01 * parseFloat(RegExp.$1) + '' : t ? '1' : ''
  67368.         },
  67369.         set: function (e, t) {
  67370.           var n = e.style,
  67371.           a = e.currentStyle,
  67372.           r = de.isNumeric(t) ? 'alpha(opacity=' + 100 * t + ')' : '',
  67373.           e = a && a.filter || n.filter || '';
  67374.           ((n.zoom = 1) <= t || '' === t) && !de.trim(e.replace(Fe, '')) && n.removeAttribute && (n.removeAttribute('filter'), '' === t || a && !a.filter) || (n.filter = Fe.test(e) ? e.replace(Fe, r) : e + ' ' + r)
  67375.         }
  67376.       }),
  67377.       de(function () {
  67378.         de.support.reliableMarginRight || (de.cssHooks.marginRight = {
  67379.           get: function (e, t) {
  67380.             if (t) return de.swap(e, {
  67381.               display: 'inline-block'
  67382.             }, qe, [
  67383.               e,
  67384.               'marginRight'
  67385.             ])
  67386.           }
  67387.         }),
  67388.         !de.support.pixelPosition && de.fn.position && de.each(['top',
  67389.         'left'], function (e, n) {
  67390.           de.cssHooks[n] = {
  67391.             get: function (e, t) {
  67392.               if (t) return t = qe(e, n),
  67393.               He.test(t) ? de(e).position() [n] + 'px' : t
  67394.             }
  67395.           }
  67396.         })
  67397.       }),
  67398.       de.expr && de.expr.filters && (de.expr.filters.hidden = function (e) {
  67399.         return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !de.support.reliableHiddenOffsets && 'none' === (e.style && e.style.display || de.css(e, 'display'))
  67400.       }, de.expr.filters.visible = function (e) {
  67401.         return !de.expr.filters.hidden(e)
  67402.       }),
  67403.       de.each({
  67404.         margin: '',
  67405.         padding: '',
  67406.         border: 'Width'
  67407.       }, function (r, o) {
  67408.         de.cssHooks[r + o] = {
  67409.           expand: function (e) {
  67410.             for (var t = 0, n = {
  67411.             }, a = 'string' == typeof e ? e.split(' ') : [
  67412.               e
  67413.             ]; t < 4; t++) n[r + Qe[t] + o] = a[t] || a[t - 2] || a[0];
  67414.             return n
  67415.           }
  67416.         },
  67417.         Be.test(r) || (de.cssHooks[r + o].set = Xe)
  67418.       });
  67419.       var rt = /%20/g,
  67420.       ot = /\[\]$/,
  67421.       it = /\r?\n/g,
  67422.       st = /^(?:submit|button|image|reset|file)$/i,
  67423.       lt = /^(?:input|select|textarea|keygen)/i;
  67424.       de.fn.extend({
  67425.         serialize: function () {
  67426.           return de.param(this.serializeArray())
  67427.         },
  67428.         serializeArray: function () {
  67429.           return this.map(function () {
  67430.             var e = de.prop(this, 'elements');
  67431.             return e ? de.makeArray(e) : this
  67432.           }).filter(function () {
  67433.             var e = this.type;
  67434.             return this.name && !de(this).is(':disabled') && lt.test(this.nodeName) && !st.test(e) && (this.checked || !Ee.test(e))
  67435.           }).map(function (e, t) {
  67436.             var n = de(this).val();
  67437.             return null == n ? null : de.isArray(n) ? de.map(n, function (e) {
  67438.               return {
  67439.                 name: t.name,
  67440.                 value: e.replace(it, '\r\n')
  67441.               }
  67442.             }) : {
  67443.               name: t.name,
  67444.               value: n.replace(it, '\r\n')
  67445.             }
  67446.           }).get()
  67447.         }
  67448.       }),
  67449.       de.param = function (e, t) {
  67450.         function n(e, t) {
  67451.           t = de.isFunction(t) ? t() : null == t ? '' : t,
  67452.           r[r.length] = encodeURIComponent(e) + '=' + encodeURIComponent(t)
  67453.         }
  67454.         var a,
  67455.         r = [
  67456.         ];
  67457.         if (t === O && (t = de.ajaxSettings && de.ajaxSettings.traditional), de.isArray(e) || e.jquery && !de.isPlainObject(e)) de.each(e, function () {
  67458.           n(this.name, this.value)
  67459.         });
  67460.          else for (a in e) !function n(a, e, r, o) {
  67461.           if (de.isArray(e)) de.each(e, function (e, t) {
  67462.             r || ot.test(a) ? o(a, t) : n(a + '[' + ('object' == typeof t ? e : '') + ']', t, r, o)
  67463.           });
  67464.            else if (r || 'object' !== de.type(e)) o(a, e);
  67465.            else for (var t in e) n(a + '[' + t + ']', e[t], r, o)
  67466.         }(a, e[a], t, n);
  67467.         return r.join('&').replace(rt, '+')
  67468.       },
  67469.       de.each('blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu'.split(' '), function (e, n) {
  67470.         de.fn[n] = function (e, t) {
  67471.           return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
  67472.         }
  67473.       }),
  67474.       de.fn.hover = function (e, t) {
  67475.         return this.mouseenter(e).mouseleave(t || e)
  67476.       };
  67477.       var ct,
  67478.       ut,
  67479.       pt = de.now(),
  67480.       dt = /\?/,
  67481.       mt = /#.*$/,
  67482.       ft = /([?&])_=[^&]*/,
  67483.       ht = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
  67484.       gt = /^(?:GET|HEAD)$/,
  67485.       yt = /^\/\//,
  67486.       bt = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
  67487.       vt = de.fn.load,
  67488.       _t = {
  67489.       },
  67490.       Et = {
  67491.       };
  67492.       try {
  67493.         ut = e.href
  67494.       } catch (e) {
  67495.         (ut = g.createElement('a')).href = '',
  67496.         ut = ut.href
  67497.       }
  67498.       function Ot(o) {
  67499.         return function (e, t) {
  67500.           'string' != typeof e && (t = e, e = '*');
  67501.           var n,
  67502.           a = 0,
  67503.           r = e.toLowerCase().match(S) || [
  67504.           ];
  67505.           if (de.isFunction(t)) for (; n = r[a++]; ) '+' === n[0] ? (n = n.slice(1) || '*', (o[n] = o[n] || [
  67506.           ]).unshift(t)) : (o[n] = o[n] || [
  67507.           ]).push(t)
  67508.         }
  67509.       }
  67510.       function St(t, a, r, o) {
  67511.         var i = {
  67512.         },
  67513.         s = t === Et;
  67514.         function l(e) {
  67515.           var n;
  67516.           return i[e] = !0,
  67517.           de.each(t[e] || [
  67518.           ], function (e, t) {
  67519.             t = t(a, r, o);
  67520.             return 'string' != typeof t || s || i[t] ? s ? !(n = t) : void 0 : (a.dataTypes.unshift(t), l(t), !1)
  67521.           }),
  67522.           n
  67523.         }
  67524.         return l(a.dataTypes[0]) || !i['*'] && l('*')
  67525.       }
  67526.       function wt(e, t) {
  67527.         var n,
  67528.         a,
  67529.         r = de.ajaxSettings.flatOptions || {
  67530.         };
  67531.         for (a in t) t[a] !== O && ((r[a] ? e : n = n || {
  67532.         }) [a] = t[a]);
  67533.         return n && de.extend(!0, e, n),
  67534.         e
  67535.       }
  67536.       ct = bt.exec(ut.toLowerCase()) || [
  67537.       ],
  67538.       de.fn.load = function (e, t, n) {
  67539.         if ('string' != typeof e && vt) return vt.apply(this, arguments);
  67540.         var a,
  67541.         r,
  67542.         o,
  67543.         i = this,
  67544.         s = e.indexOf(' ');
  67545.         return 0 <= s && (a = e.slice(s, e.length), e = e.slice(0, s)),
  67546.         de.isFunction(t) ? (n = t, t = O) : t && 'object' == typeof t && (o = 'POST'),
  67547.         0 < i.length && de.ajax({
  67548.           url: e,
  67549.           type: o,
  67550.           dataType: 'html',
  67551.           data: t
  67552.         }).done(function (e) {
  67553.           r = arguments,
  67554.           i.html(a ? de('<div>').append(de.parseHTML(e)).find(a) : e)
  67555.         }).complete(n && function (e, t) {
  67556.           i.each(n, r || [
  67557.             e.responseText,
  67558.             t,
  67559.             e
  67560.           ])
  67561.         }),
  67562.         this
  67563.       },
  67564.       de.each(['ajaxStart',
  67565.       'ajaxStop',
  67566.       'ajaxComplete',
  67567.       'ajaxError',
  67568.       'ajaxSuccess',
  67569.       'ajaxSend'], function (e, t) {
  67570.         de.fn[t] = function (e) {
  67571.           return this.on(t, e)
  67572.         }
  67573.       }),
  67574.       de.each(['get',
  67575.       'post'], function (e, r) {
  67576.         de[r] = function (e, t, n, a) {
  67577.           return de.isFunction(t) && (a = a || n, n = t, t = O),
  67578.           de.ajax({
  67579.             url: e,
  67580.             type: r,
  67581.             dataType: a,
  67582.             data: t,
  67583.             success: n
  67584.           })
  67585.         }
  67586.       }),
  67587.       de.extend({
  67588.         active: 0,
  67589.         lastModified: {
  67590.         },
  67591.         etag: {
  67592.         },
  67593.         ajaxSettings: {
  67594.           url: ut,
  67595.           type: 'GET',
  67596.           isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ct[1]),
  67597.           global: !0,
  67598.           processData: !0,
  67599.           async: !0,
  67600.           contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
  67601.           accepts: {
  67602.             '*': '*/*',
  67603.             text: 'text/plain',
  67604.             html: 'text/html',
  67605.             xml: 'application/xml, text/xml',
  67606.             json: 'application/json, text/javascript'
  67607.           },
  67608.           contents: {
  67609.             xml: /xml/,
  67610.             html: /html/,
  67611.             json: /json/
  67612.           },
  67613.           responseFields: {
  67614.             xml: 'responseXML',
  67615.             text: 'responseText'
  67616.           },
  67617.           converters: {
  67618.             '* text': f.String,
  67619.             'text html': !0,
  67620.             'text json': de.parseJSON,
  67621.             'text xml': de.parseXML
  67622.           },
  67623.           flatOptions: {
  67624.             url: !0,
  67625.             context: !0
  67626.           }
  67627.         },
  67628.         ajaxSetup: function (e, t) {
  67629.           return t ? wt(wt(e, de.ajaxSettings), t) : wt(de.ajaxSettings, e)
  67630.         },
  67631.         ajaxPrefilter: Ot(_t),
  67632.         ajaxTransport: Ot(Et),
  67633.         ajax: function (e, t) {
  67634.           'object' == typeof e && (t = e, e = O);
  67635.           var n,
  67636.           c,
  67637.           u,
  67638.           p,
  67639.           d,
  67640.           m,
  67641.           a,
  67642.           f = de.ajaxSetup({
  67643.           }, t = t || {
  67644.           }),
  67645.           h = f.context || f,
  67646.           g = f.context && (h.nodeType || h.jquery) ? de(h) : de.event,
  67647.           y = de.Deferred(),
  67648.           b = de.Callbacks('once memory'),
  67649.           v = f.statusCode || {
  67650.           },
  67651.           r = {
  67652.           },
  67653.           o = {
  67654.           },
  67655.           _ = 0,
  67656.           i = 'canceled',
  67657.           E = {
  67658.             readyState: 0,
  67659.             getResponseHeader: function (e) {
  67660.               var t;
  67661.               if (2 === _) {
  67662.                 if (!a) for (a = {
  67663.                 }; t = ht.exec(u); ) a[t[1].toLowerCase()] = t[2];
  67664.                 t = a[e.toLowerCase()]
  67665.               }
  67666.               return null == t ? null : t
  67667.             },
  67668.             getAllResponseHeaders: function () {
  67669.               return 2 === _ ? u : null
  67670.             },
  67671.             setRequestHeader: function (e, t) {
  67672.               var n = e.toLowerCase();
  67673.               return _ || (e = o[n] = o[n] || e, r[e] = t),
  67674.               this
  67675.             },
  67676.             overrideMimeType: function (e) {
  67677.               return _ || (f.mimeType = e),
  67678.               this
  67679.             },
  67680.             statusCode: function (e) {
  67681.               if (e) if (_ < 2) for (var t in e) v[t] = [
  67682.                 v[t],
  67683.                 e[t]
  67684.               ];
  67685.                else E.always(e[E.status]);
  67686.               return this
  67687.             },
  67688.             abort: function (e) {
  67689.               e = e || i;
  67690.               return m && m.abort(e),
  67691.               s(0, e),
  67692.               this
  67693.             }
  67694.           };
  67695.           if (y.promise(E).complete = b.add, E.success = E.done, E.error = E.fail, f.url = ((e || f.url || ut) + '').replace(mt, '').replace(yt, ct[1] + '//'), f.type = t.method || t.type || f.method || f.type, f.dataTypes = de.trim(f.dataType || '*').toLowerCase().match(S) || [
  67696.             ''
  67697.           ], null == f.crossDomain && (e = bt.exec(f.url.toLowerCase()), f.crossDomain = !(!e || e[1] === ct[1] && e[2] === ct[2] && (e[3] || ('http:' === e[1] ? 80 : 443)) == (ct[3] || ('http:' === ct[1] ? 80 : 443)))), f.data && f.processData && 'string' != typeof f.data && (f.data = de.param(f.data, f.traditional)), St(_t, f, t, E), 2 === _) return E;
  67698.           for (n in (d = f.global) && 0 == de.active++ && de.event.trigger('ajaxStart'), f.type = f.type.toUpperCase(), f.hasContent = !gt.test(f.type), c = f.url, f.hasContent || (f.data && (c = f.url += (dt.test(c) ? '&' : '?') + f.data, delete f.data), !1 === f.cache && (f.url = ft.test(c) ? c.replace(ft, '$1_=' + pt++) : c + (dt.test(c) ? '&' : '?') + '_=' + pt++)), f.ifModified && (de.lastModified[c] && E.setRequestHeader('If-Modified-Since', de.lastModified[c]), de.etag[c] && E.setRequestHeader('If-None-Match', de.etag[c])), (f.data && f.hasContent && !1 !== f.contentType || t.contentType) && E.setRequestHeader('Content-Type', f.contentType), E.setRequestHeader('Accept', f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ('*' !== f.dataTypes[0] ? ', */*; q=0.01' : '') : f.accepts['*']), f.headers) E.setRequestHeader(n, f.headers[n]);
  67699.           if (f.beforeSend && (!1 === f.beforeSend.call(h, E, f) || 2 === _)) return E.abort();
  67700.           for (n in i = 'abort', {
  67701.             success: 1,
  67702.             error: 1,
  67703.             complete: 1
  67704.           }) E[n](f[n]);
  67705.           if (m = St(Et, f, t, E)) {
  67706.             E.readyState = 1,
  67707.             d && g.trigger('ajaxSend', [
  67708.               E,
  67709.               f
  67710.             ]),
  67711.             f.async && 0 < f.timeout && (p = setTimeout(function () {
  67712.               E.abort('timeout')
  67713.             }, f.timeout));
  67714.             try {
  67715.               _ = 1,
  67716.               m.send(r, s)
  67717.             } catch (e) {
  67718.               if (!(_ < 2)) throw e;
  67719.               s( - 1, e)
  67720.             }
  67721.           } else s( - 1, 'No Transport');
  67722.           function s(e, t, n, a) {
  67723.             var r,
  67724.             o,
  67725.             i,
  67726.             s,
  67727.             l = t;
  67728.             2 !== _ && (_ = 2, p && clearTimeout(p), m = O, u = a || '', E.readyState = 0 < e ? 4 : 0, n && (s = function (e, t, n) {
  67729.               var a,
  67730.               r,
  67731.               o,
  67732.               i,
  67733.               s = e.contents,
  67734.               l = e.dataTypes,
  67735.               c = e.responseFields;
  67736.               for (i in c) i in n && (t[c[i]] = n[i]);
  67737.               for (; '*' === l[0]; ) l.shift(),
  67738.               r === O && (r = e.mimeType || t.getResponseHeader('Content-Type'));
  67739.               if (r) for (i in s) if (s[i] && s[i].test(r)) {
  67740.                 l.unshift(i);
  67741.                 break
  67742.               }
  67743.               if (l[0] in n) o = l[0];
  67744.                else {
  67745.                 for (i in n) {
  67746.                   if (!l[0] || e.converters[i + ' ' + l[0]]) {
  67747.                     o = i;
  67748.                     break
  67749.                   }
  67750.                   a = a || i
  67751.                 }
  67752.                 o = o || a
  67753.               }
  67754.               if (o) return o !== l[0] && l.unshift(o),
  67755.               n[o]
  67756.             }(f, E, n)), 200 <= e && e < 300 || 304 === e ? (f.ifModified && ((n = E.getResponseHeader('Last-Modified')) && (de.lastModified[c] = n), (n = E.getResponseHeader('etag')) && (de.etag[c] = n)), 204 === e ? (r = !0, l = 'nocontent') : 304 === e ? (r = !0, l = 'notmodified') : (l = (r = function (e, t) {
  67757.               var n,
  67758.               a,
  67759.               r,
  67760.               o,
  67761.               i = {
  67762.               },
  67763.               s = 0,
  67764.               l = e.dataTypes.slice(),
  67765.               c = l[0];
  67766.               e.dataFilter && (t = e.dataFilter(t, e.dataType));
  67767.               if (l[1]) for (r in e.converters) i[r.toLowerCase()] = e.converters[r];
  67768.               for (; a = l[++s]; ) if ('*' !== a) {
  67769.                 if ('*' !== c && c !== a) {
  67770.                   if (!(r = i[c + ' ' + a] || i['* ' + a])) for (n in i) if ((o = n.split(' ')) [1] === a && (r = i[c + ' ' + o[0]] || i['* ' + o[0]])) {
  67771.                     !0 === r ? r = i[n] : !0 !== i[n] && l.splice(s--, 0, a = o[0]);
  67772.                     break
  67773.                   }
  67774.                   if (!0 !== r) if (r && e.throws) t = r(t);
  67775.                    else try {
  67776.                     t = r(t)
  67777.                   } catch (e) {
  67778.                     return {
  67779.                       state: 'parsererror',
  67780.                       error: r ? e : 'No conversion from ' + c + ' to ' + a
  67781.                     }
  67782.                   }
  67783.                 }
  67784.                 c = a
  67785.               }
  67786.               return {
  67787.                 state: 'success',
  67788.                 data: t
  67789.               }
  67790.             }(f, s)).state, o = r.data, r = !(i = r.error))) : (i = l, !e && l || (l = 'error', e < 0 && (e = 0))), E.status = e, E.statusText = (t || l) + '', r ? y.resolveWith(h, [
  67791.               o,
  67792.               l,
  67793.               E
  67794.             ]) : y.rejectWith(h, [
  67795.               E,
  67796.               l,
  67797.               i
  67798.             ]), E.statusCode(v), v = O, d && g.trigger(r ? 'ajaxSuccess' : 'ajaxError', [
  67799.               E,
  67800.               f,
  67801.               r ? o : i
  67802.             ]), b.fireWith(h, [
  67803.               E,
  67804.               l
  67805.             ]), d && (g.trigger('ajaxComplete', [
  67806.               E,
  67807.               f
  67808.             ]), --de.active || de.event.trigger('ajaxStop')))
  67809.           }
  67810.           return E
  67811.         },
  67812.         getScript: function (e, t) {
  67813.           return de.get(e, O, t, 'script')
  67814.         },
  67815.         getJSON: function (e, t, n) {
  67816.           return de.get(e, t, n, 'json')
  67817.         }
  67818.       }),
  67819.       de.ajaxSetup({
  67820.         accepts: {
  67821.           script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'
  67822.         },
  67823.         contents: {
  67824.           script: /(?:java|ecma)script/
  67825.         },
  67826.         converters: {
  67827.           'text script': function (e) {
  67828.             return de.globalEval(e),
  67829.             e
  67830.           }
  67831.         }
  67832.       }),
  67833.       de.ajaxPrefilter('script', function (e) {
  67834.         e.cache === O && (e.cache = !1),
  67835.         e.crossDomain && (e.type = 'GET', e.global = !1)
  67836.       }),
  67837.       de.ajaxTransport('script', function (t) {
  67838.         if (t.crossDomain) {
  67839.           var a,
  67840.           r = g.head || de('head') [0] || g.documentElement;
  67841.           return {
  67842.             send: function (e, n) {
  67843.               (a = g.createElement('script')).async = !0,
  67844.               t.scriptCharset && (a.charset = t.scriptCharset),
  67845.               a.src = t.url,
  67846.               a.onload = a.onreadystatechange = function (e, t) {
  67847.                 !t && a.readyState && !/loaded|complete/.test(a.readyState) || (a.onload = a.onreadystatechange = null, a.parentNode && a.parentNode.removeChild(a), a = null, t || n(200, 'success'))
  67848.               },
  67849.               r.insertBefore(a, r.firstChild)
  67850.             },
  67851.             abort: function () {
  67852.               a && a.onload(O, !0)
  67853.             }
  67854.           }
  67855.         }
  67856.       });
  67857.       var Pt = [
  67858.       ],
  67859.       kt = /(=)\?(?=&|$)|\?\?/;
  67860.       de.ajaxSetup({
  67861.         jsonp: 'callback',
  67862.         jsonpCallback: function () {
  67863.           var e = Pt.pop() || de.expando + '_' + pt++;
  67864.           return this[e] = !0,
  67865.           e
  67866.         }
  67867.       }),
  67868.       de.ajaxPrefilter('json jsonp', function (e, t, n) {
  67869.         var a,
  67870.         r,
  67871.         o,
  67872.         i = !1 !== e.jsonp && (kt.test(e.url) ? 'url' : 'string' == typeof e.data && !(e.contentType || '').indexOf('application/x-www-form-urlencoded') && kt.test(e.data) && 'data');
  67873.         if (i || 'jsonp' === e.dataTypes[0]) return a = e.jsonpCallback = de.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback,
  67874.         i ? e[i] = e[i].replace(kt, '$1' + a) : !1 !== e.jsonp && (e.url += (dt.test(e.url) ? '&' : '?') + e.jsonp + '=' + a),
  67875.         e.converters['script json'] = function () {
  67876.           return o || de.error(a + ' was not called'),
  67877.           o[0]
  67878.         },
  67879.         e.dataTypes[0] = 'json',
  67880.         r = f[a],
  67881.         f[a] = function () {
  67882.           o = arguments
  67883.         },
  67884.         n.always(function () {
  67885.           f[a] = r,
  67886.           e[a] && (e.jsonpCallback = t.jsonpCallback, Pt.push(a)),
  67887.           o && de.isFunction(r) && r(o[0]),
  67888.           o = r = O
  67889.         }),
  67890.         'script'
  67891.       });
  67892.       var Nt,
  67893.       Ct = 0,
  67894.       Rt = f.ActiveXObject && function () {
  67895.         for (var e in Nt) Nt[e](O, !0)
  67896.       };
  67897.       function xt() {
  67898.         try {
  67899.           return new f.XMLHttpRequest
  67900.         } catch (e) {
  67901.         }
  67902.       }
  67903.       de.ajaxSettings.xhr = f.ActiveXObject ? function () {
  67904.         return !this.isLocal && xt() || function () {
  67905.           try {
  67906.             return new f.ActiveXObject('Microsoft.XMLHTTP')
  67907.           } catch (e) {
  67908.           }
  67909.         }()
  67910.       }
  67911.        : xt,
  67912.       e = de.ajaxSettings.xhr(),
  67913.       de.support.cors = !!e && 'withCredentials' in e,
  67914.       (e = de.support.ajax = !!e) && de.ajaxTransport(function (c) {
  67915.         var u;
  67916.         if (!c.crossDomain || de.support.cors) return {
  67917.           send: function (e, i) {
  67918.             var s,
  67919.             t,
  67920.             l = c.xhr();
  67921.             if (c.username ? l.open(c.type, c.url, c.async, c.username, c.password) : l.open(c.type, c.url, c.async), c.xhrFields) for (t in c.xhrFields) l[t] = c.xhrFields[t];
  67922.             c.mimeType && l.overrideMimeType && l.overrideMimeType(c.mimeType),
  67923.             c.crossDomain || e['X-Requested-With'] || (e['X-Requested-With'] = 'XMLHttpRequest');
  67924.             try {
  67925.               for (t in e) l.setRequestHeader(t, e[t])
  67926.             } catch (e) {
  67927.             }
  67928.             l.send(c.hasContent && c.data || null),
  67929.             u = function (e, t) {
  67930.               var n,
  67931.               a,
  67932.               r,
  67933.               o;
  67934.               try {
  67935.                 if (u && (t || 4 === l.readyState)) if (u = O, s && (l.onreadystatechange = de.noop, Rt && delete Nt[s]), t) 4 !== l.readyState && l.abort();
  67936.                  else {
  67937.                   o = {
  67938.                   },
  67939.                   n = l.status,
  67940.                   a = l.getAllResponseHeaders(),
  67941.                   'string' == typeof l.responseText && (o.text = l.responseText);
  67942.                   try {
  67943.                     r = l.statusText
  67944.                   } catch (e) {
  67945.                     r = ''
  67946.                   }
  67947.                   n || !c.isLocal || c.crossDomain ? 1223 === n && (n = 204) : n = o.text ? 200 : 404
  67948.                 }
  67949.               } catch (e) {
  67950.                 t || i( - 1, e)
  67951.               }
  67952.               o && i(n, r, o, a)
  67953.             },
  67954.             c.async ? 4 === l.readyState ? setTimeout(u) : (s = ++Ct, Rt && (Nt || (Nt = {
  67955.             }, de(f).unload(Rt)), Nt[s] = u), l.onreadystatechange = u) : u()
  67956.           },
  67957.           abort: function () {
  67958.             u && u(O, !0)
  67959.           }
  67960.         }
  67961.       });
  67962.       var At,
  67963.       Dt,
  67964.       jt = /^(?:toggle|show|hide)$/,
  67965.       Tt = RegExp('^(?:([+-])=|)(' + m + ')([a-z%]*)$', 'i'),
  67966.       It = /queueHooks$/,
  67967.       qt = [
  67968.         function (t, e, n) {
  67969.           var a,
  67970.           r,
  67971.           o,
  67972.           i,
  67973.           s,
  67974.           l,
  67975.           c,
  67976.           u,
  67977.           p,
  67978.           d = this,
  67979.           m = t.style,
  67980.           f = {
  67981.           },
  67982.           h = [
  67983.           ],
  67984.           g = t.nodeType && $e(t);
  67985.           n.queue || (null == (u = de._queueHooks(t, 'fx')).unqueued && (u.unqueued = 0, p = u.empty.fire, u.empty.fire = function () {
  67986.             u.unqueued || p()
  67987.           }), u.unqueued++, d.always(function () {
  67988.             d.always(function () {
  67989.               u.unqueued--,
  67990.               de.queue(t, 'fx').length || u.empty.fire()
  67991.             })
  67992.           }));
  67993.           1 === t.nodeType && ('height' in e || 'width' in e) && (n.overflow = [
  67994.             m.overflow,
  67995.             m.overflowX,
  67996.             m.overflowY
  67997.           ], 'inline' === de.css(t, 'display') && 'none' === de.css(t, 'float') && (de.support.inlineBlockNeedsLayout && 'inline' !== nt(t.nodeName) ? m.zoom = 1 : m.display = 'inline-block'));
  67998.           n.overflow && (m.overflow = 'hidden', de.support.shrinkWrapBlocks || d.always(function () {
  67999.             m.overflow = n.overflow[0],
  68000.             m.overflowX = n.overflow[1],
  68001.             m.overflowY = n.overflow[2]
  68002.           }));
  68003.           for (r in e) jt.exec(i = e[r]) && (delete e[r], l = l || 'toggle' === i, i !== (g ? 'hide' : 'show') && h.push(r));
  68004.           if (o = h.length) {
  68005.             'hidden' in (s = de._data(t, 'fxshow') || de._data(t, 'fxshow', {
  68006.             })) && (g = s.hidden),
  68007.             l && (s.hidden = !g),
  68008.             g ? de(t).show() : d.done(function () {
  68009.               de(t).hide()
  68010.             }),
  68011.             d.done(function () {
  68012.               for (var e in de._removeData(t, 'fxshow'), f) de.style(t, e, f[e])
  68013.             });
  68014.             for (r = 0; r < o; r++) c = d.createTween(a = h[r], g ? s[a] : 0),
  68015.             f[a] = s[a] || de.style(t, a),
  68016.             a in s || (s[a] = c.start, g && (c.end = c.start, c.start = 'width' === a || 'height' === a ? 1 : 0))
  68017.           }
  68018.         }
  68019.       ],
  68020.       Ft = {
  68021.         '*': [
  68022.           function (e, t) {
  68023.             var n,
  68024.             a = this.createTween(e, t),
  68025.             r = Tt.exec(t),
  68026.             o = a.cur(),
  68027.             i = + o || 0,
  68028.             s = 1,
  68029.             l = 20;
  68030.             if (r) {
  68031.               if (t = + r[2], 'px' !== (n = r[3] || (de.cssNumber[e] ? '' : 'px')) && i) for (i = de.css(a.elem, e, !0) || t || 1; de.style(a.elem, e, (i /= s = s || '.5') + n), s !== (s = a.cur() / o) && 1 !== s && --l; );
  68032.               a.unit = n,
  68033.               a.start = i,
  68034.               a.end = r[1] ? i + (r[1] + 1) * t : t
  68035.             }
  68036.             return a
  68037.           }
  68038.         ]
  68039.       };
  68040.       function Lt() {
  68041.         return setTimeout(function () {
  68042.           At = O
  68043.         }),
  68044.         At = de.now()
  68045.       }
  68046.       function Ut(r, e, t) {
  68047.         var n,
  68048.         o,
  68049.         i,
  68050.         a = 0,
  68051.         s = qt.length,
  68052.         l = de.Deferred().always(function () {
  68053.           delete c.elem
  68054.         }),
  68055.         c = function () {
  68056.           if (o) return !1;
  68057.           for (var e = At || Lt(), e = Math.max(0, u.startTime + u.duration - e), t = 1 - (e / u.duration || 0), n = 0, a = u.tweens.length; n < a; n++) u.tweens[n].run(t);
  68058.           return l.notifyWith(r, [
  68059.             u,
  68060.             t,
  68061.             e
  68062.           ]),
  68063.           t < 1 && a ? e : (l.resolveWith(r, [
  68064.             u
  68065.           ]), !1)
  68066.         },
  68067.         u = l.promise({
  68068.           elem: r,
  68069.           props: de.extend({
  68070.           }, e),
  68071.           opts: de.extend(!0, {
  68072.             specialEasing: {
  68073.             }
  68074.           }, t),
  68075.           originalProperties: e,
  68076.           originalOptions: t,
  68077.           startTime: At || Lt(),
  68078.           duration: t.duration,
  68079.           tweens: [
  68080.           ],
  68081.           createTween: function (e, t) {
  68082.             e = de.Tween(r, u.opts, e, t, u.opts.specialEasing[e] || u.opts.easing);
  68083.             return u.tweens.push(e),
  68084.             e
  68085.           },
  68086.           stop: function (e) {
  68087.             var t = 0,
  68088.             n = e ? u.tweens.length : 0;
  68089.             if (o) return this;
  68090.             for (o = !0; t < n; t++) u.tweens[t].run(1);
  68091.             return e ? l.resolveWith(r, [
  68092.               u,
  68093.               e
  68094.             ]) : l.rejectWith(r, [
  68095.               u,
  68096.               e
  68097.             ]),
  68098.             this
  68099.           }
  68100.         }),
  68101.         p = u.props;
  68102.         for (!function (e, t) {
  68103.           var n,
  68104.           a,
  68105.           r,
  68106.           o,
  68107.           i;
  68108.           for (r in e) if (a = de.camelCase(r), o = t[a], de.isArray(n = e[r]) && (o = n[1], n = e[r] = n[0]), r !== a && (e[a] = n, delete e[r]), (i = de.cssHooks[a]) && 'expand' in i) for (r in n = i.expand(n), delete e[a], n) r in e || (e[r] = n[r], t[r] = o);
  68109.            else t[a] = o
  68110.         }(p, u.opts.specialEasing); a < s; a++) if (n = qt[a].call(u, r, p, u.opts)) return n;
  68111.         return i = u,
  68112.         de.each(p, function (e, t) {
  68113.           for (var n = (Ft[e] || [
  68114.           ]).concat(Ft['*']), a = 0, r = n.length; a < r; a++) if (n[a].call(i, e, t)) return
  68115.         }),
  68116.         de.isFunction(u.opts.start) && u.opts.start.call(r, u),
  68117.         de.fx.timer(de.extend(c, {
  68118.           elem: r,
  68119.           anim: u,
  68120.           queue: u.opts.queue
  68121.         })),
  68122.         u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
  68123.       }
  68124.       function Mt(e, t, n, a, r) {
  68125.         return new Mt.prototype.init(e, t, n, a, r)
  68126.       }
  68127.       function Bt(e, t) {
  68128.         var n,
  68129.         a = {
  68130.           height: e
  68131.         },
  68132.         r = 0;
  68133.         for (t = t ? 1 : 0; r < 4; r += 2 - t) a['margin' + (n = Qe[r])] = a['padding' + n] = e;
  68134.         return t && (a.opacity = a.width = e),
  68135.         a
  68136.       }
  68137.       function zt(e) {
  68138.         return de.isWindow(e) ? e : 9 === e.nodeType && (e.defaultView || e.parentWindow)
  68139.       }
  68140.       de.Animation = de.extend(Ut, {
  68141.         tweener: function (e, t) {
  68142.           for (var n, a = 0, r = (e = de.isFunction(e) ? (t = e, [
  68143.             '*'
  68144.           ]) : e.split(' ')).length; a < r; a++) Ft[n = e[a]] = Ft[n] || [
  68145.           ],
  68146.           Ft[n].unshift(t)
  68147.         },
  68148.         prefilter: function (e, t) {
  68149.           t ? qt.unshift(e) : qt.push(e)
  68150.         }
  68151.       }),
  68152.       (de.Tween = Mt).prototype = {
  68153.         constructor: Mt,
  68154.         init: function (e, t, n, a, r, o) {
  68155.           this.elem = e,
  68156.           this.prop = n,
  68157.           this.easing = r || 'swing',
  68158.           this.options = t,
  68159.           this.start = this.now = this.cur(),
  68160.           this.end = a,
  68161.           this.unit = o || (de.cssNumber[n] ? '' : 'px')
  68162.         },
  68163.         cur: function () {
  68164.           var e = Mt.propHooks[this.prop];
  68165.           return (e && e.get ? e : Mt.propHooks._default).get(this)
  68166.         },
  68167.         run: function (e) {
  68168.           var t = Mt.propHooks[this.prop];
  68169.           return this.pos = e = this.options.duration ? de.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : e,
  68170.           this.now = (this.end - this.start) * e + this.start,
  68171.           this.options.step && this.options.step.call(this.elem, this.now, this),
  68172.           (t && t.set ? t : Mt.propHooks._default).set(this),
  68173.           this
  68174.         }
  68175.       },
  68176.       Mt.prototype.init.prototype = Mt.prototype,
  68177.       Mt.propHooks = {
  68178.         _default: {
  68179.           get: function (e) {
  68180.             var t;
  68181.             return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = de.css(e.elem, e.prop, '')) && 'auto' !== t ? t : 0 : e.elem[e.prop]
  68182.           },
  68183.           set: function (e) {
  68184.             de.fx.step[e.prop] ? de.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[de.cssProps[e.prop]] || de.cssHooks[e.prop]) ? de.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
  68185.           }
  68186.         }
  68187.       },
  68188.       Mt.propHooks.scrollTop = Mt.propHooks.scrollLeft = {
  68189.         set: function (e) {
  68190.           e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
  68191.         }
  68192.       },
  68193.       de.each(['toggle',
  68194.       'show',
  68195.       'hide'], function (e, a) {
  68196.         var r = de.fn[a];
  68197.         de.fn[a] = function (e, t, n) {
  68198.           return null == e || 'boolean' == typeof e ? r.apply(this, arguments) : this.animate(Bt(a, !0), e, t, n)
  68199.         }
  68200.       }),
  68201.       de.fn.extend({
  68202.         fadeTo: function (e, t, n, a) {
  68203.           return this.filter($e).css('opacity', 0).show().end().animate({
  68204.             opacity: t
  68205.           }, e, n, a)
  68206.         },
  68207.         animate: function (t, e, n, a) {
  68208.           var r = de.isEmptyObject(t),
  68209.           o = de.speed(e, n, a),
  68210.           i = function () {
  68211.             var e = Ut(this, de.extend({
  68212.             }, t), o);
  68213.             i.finish = function () {
  68214.               e.stop(!0)
  68215.             },
  68216.             (r || de._data(this, 'finish')) && e.stop(!0)
  68217.           };
  68218.           return i.finish = i,
  68219.           r || !1 === o.queue ? this.each(i) : this.queue(o.queue, i)
  68220.         },
  68221.         stop: function (r, e, o) {
  68222.           function i(e) {
  68223.             var t = e.stop;
  68224.             delete e.stop,
  68225.             t(o)
  68226.           }
  68227.           return 'string' != typeof r && (o = e, e = r, r = O),
  68228.           e && !1 !== r && this.queue(r || 'fx', [
  68229.           ]),
  68230.           this.each(function () {
  68231.             var e = !0,
  68232.             t = null != r && r + 'queueHooks',
  68233.             n = de.timers,
  68234.             a = de._data(this);
  68235.             if (t) a[t] && a[t].stop && i(a[t]);
  68236.              else for (t in a) a[t] && a[t].stop && It.test(t) && i(a[t]);
  68237.             for (t = n.length; t--; ) n[t].elem !== this || null != r && n[t].queue !== r || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
  68238.             !e && o || de.dequeue(this, r)
  68239.           })
  68240.         },
  68241.         finish: function (i) {
  68242.           return !1 !== i && (i = i || 'fx'),
  68243.           this.each(function () {
  68244.             var e,
  68245.             t = de._data(this),
  68246.             n = t[i + 'queue'],
  68247.             a = t[i + 'queueHooks'],
  68248.             r = de.timers,
  68249.             o = n ? n.length : 0;
  68250.             for (t.finish = !0, de.queue(this, i, [
  68251.             ]), a && a.cur && a.cur.finish && a.cur.finish.call(this), e = r.length; e--; ) r[e].elem === this && r[e].queue === i && (r[e].anim.stop(!0), r.splice(e, 1));
  68252.             for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
  68253.             delete t.finish
  68254.           })
  68255.         }
  68256.       }),
  68257.       de.each({
  68258.         slideDown: Bt('show'),
  68259.         slideUp: Bt('hide'),
  68260.         slideToggle: Bt('toggle'),
  68261.         fadeIn: {
  68262.           opacity: 'show'
  68263.         },
  68264.         fadeOut: {
  68265.           opacity: 'hide'
  68266.         },
  68267.         fadeToggle: {
  68268.           opacity: 'toggle'
  68269.         }
  68270.       }, function (e, a) {
  68271.         de.fn[e] = function (e, t, n) {
  68272.           return this.animate(a, e, t, n)
  68273.         }
  68274.       }),
  68275.       de.speed = function (e, t, n) {
  68276.         var a = e && 'object' == typeof e ? de.extend({
  68277.         }, e) : {
  68278.           complete: n || !n && t || de.isFunction(e) && e,
  68279.           duration: e,
  68280.           easing: n && t || t && !de.isFunction(t) && t
  68281.         };
  68282.         return a.duration = de.fx.off ? 0 : 'number' == typeof a.duration ? a.duration : a.duration in de.fx.speeds ? de.fx.speeds[a.duration] : de.fx.speeds._default,
  68283.         null != a.queue && !0 !== a.queue || (a.queue = 'fx'),
  68284.         a.old = a.complete,
  68285.         a.complete = function () {
  68286.           de.isFunction(a.old) && a.old.call(this),
  68287.           a.queue && de.dequeue(this, a.queue)
  68288.         },
  68289.         a
  68290.       },
  68291.       de.easing = {
  68292.         linear: function (e) {
  68293.           return e
  68294.         },
  68295.         swing: function (e) {
  68296.           return 0.5 - Math.cos(e * Math.PI) / 2
  68297.         }
  68298.       },
  68299.       de.timers = [
  68300.       ],
  68301.       de.fx = Mt.prototype.init,
  68302.       de.fx.tick = function () {
  68303.         var e,
  68304.         t = de.timers,
  68305.         n = 0;
  68306.         for (At = de.now(); n < t.length; n++) (e = t[n]) () || t[n] !== e || t.splice(n--, 1);
  68307.         t.length || de.fx.stop(),
  68308.         At = O
  68309.       },
  68310.       de.fx.timer = function (e) {
  68311.         e() && de.timers.push(e) && de.fx.start()
  68312.       },
  68313.       de.fx.interval = 13,
  68314.       de.fx.start = function () {
  68315.         Dt = Dt || setInterval(de.fx.tick, de.fx.interval)
  68316.       },
  68317.       de.fx.stop = function () {
  68318.         clearInterval(Dt),
  68319.         Dt = null
  68320.       },
  68321.       de.fx.speeds = {
  68322.         slow: 600,
  68323.         fast: 200,
  68324.         _default: 400
  68325.       },
  68326.       de.fx.step = {
  68327.       },
  68328.       de.expr && de.expr.filters && (de.expr.filters.animated = function (t) {
  68329.         return de.grep(de.timers, function (e) {
  68330.           return t === e.elem
  68331.         }).length
  68332.       }),
  68333.       de.fn.offset = function (t) {
  68334.         if (arguments.length) return t === O ? this : this.each(function (e) {
  68335.           de.offset.setOffset(this, t, e)
  68336.         });
  68337.         var e,
  68338.         n = {
  68339.           top: 0,
  68340.           left: 0
  68341.         },
  68342.         a = this[0],
  68343.         r = a && a.ownerDocument;
  68344.         return r ? de.contains(e = r.documentElement, a) ? (typeof a.getBoundingClientRect !== h && (n = a.getBoundingClientRect()), r = zt(r), {
  68345.           top: n.top + (r.pageYOffset || e.scrollTop) - (e.clientTop || 0),
  68346.           left: n.left + (r.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
  68347.         }) : n : void 0
  68348.       },
  68349.       de.offset = {
  68350.         setOffset: function (e, t, n) {
  68351.           var a = de.css(e, 'position');
  68352.           'static' === a && (e.style.position = 'relative');
  68353.           var r,
  68354.           o,
  68355.           i = de(e),
  68356.           s = i.offset(),
  68357.           l = de.css(e, 'top'),
  68358.           c = de.css(e, 'left'),
  68359.           u = {
  68360.           },
  68361.           c = ('absolute' === a || 'fixed' === a) && - 1 < de.inArray('auto', [
  68362.             l,
  68363.             c
  68364.           ]) ? (o = (r = i.position()).top, r.left) : (o = parseFloat(l) || 0, parseFloat(c) || 0);
  68365.           null != (t = de.isFunction(t) ? t.call(e, n, s) : t).top && (u.top = t.top - s.top + o),
  68366.           null != t.left && (u.left = t.left - s.left + c),
  68367.           'using' in t ? t.using.call(e, u) : i.css(u)
  68368.         }
  68369.       },
  68370.       de.fn.extend({
  68371.         position: function () {
  68372.           if (this[0]) {
  68373.             var e,
  68374.             t,
  68375.             n = {
  68376.               top: 0,
  68377.               left: 0
  68378.             },
  68379.             a = this[0];
  68380.             return 'fixed' === de.css(a, 'position') ? t = a.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), (n = !de.nodeName(e[0], 'html') ? e.offset() : n).top += de.css(e[0], 'borderTopWidth', !0), n.left += de.css(e[0], 'borderLeftWidth', !0)),
  68381.             {
  68382.               top: t.top - n.top - de.css(a, 'marginTop', !0),
  68383.               left: t.left - n.left - de.css(a, 'marginLeft', !0)
  68384.             }
  68385.           }
  68386.         },
  68387.         offsetParent: function () {
  68388.           return this.map(function () {
  68389.             for (var e = this.offsetParent || g.documentElement; e && !de.nodeName(e, 'html') && 'static' === de.css(e, 'position'); ) e = e.offsetParent;
  68390.             return e || g.documentElement
  68391.           })
  68392.         }
  68393.       }),
  68394.       de.each({
  68395.         scrollLeft: 'pageXOffset',
  68396.         scrollTop: 'pageYOffset'
  68397.       }, function (t, r) {
  68398.         var o = /Y/.test(r);
  68399.         de.fn[t] = function (e) {
  68400.           return de.access(this, function (e, t, n) {
  68401.             var a = zt(e);
  68402.             if (n === O) return a ? r in a ? a[r] : a.document.documentElement[t] : e[t];
  68403.             a ? a.scrollTo(o ? de(a).scrollLeft() : n, o ? n : de(a).scrollTop()) : e[t] = n
  68404.           }, t, e, arguments.length, null)
  68405.         }
  68406.       }),
  68407.       de.each({
  68408.         Height: 'height',
  68409.         Width: 'width'
  68410.       }, function (o, i) {
  68411.         de.each({
  68412.           padding: 'inner' + o,
  68413.           content: i,
  68414.           '': 'outer' + o
  68415.         }, function (a, e) {
  68416.           de.fn[e] = function (e, t) {
  68417.             var n = arguments.length && (a || 'boolean' != typeof e),
  68418.             r = a || (!0 === e || !0 === t ? 'margin' : 'border');
  68419.             return de.access(this, function (e, t, n) {
  68420.               var a;
  68421.               return de.isWindow(e) ? e.document.documentElement['client' + o] : 9 === e.nodeType ? Math.max(e.body['scroll' + o], (a = e.documentElement) ['scroll' + o], e.body['offset' + o], a['offset' + o], a['client' + o]) : n === O ? de.css(e, t, r) : de.style(e, t, n, r)
  68422.             }, i, n ? e : O, n, null)
  68423.           }
  68424.         })
  68425.       }),
  68426.       Ht.exports = de
  68427.     }(window)
  68428.   },
  68429.   39: function (e, t, n) {
  68430.     t = function () {
  68431.       'use strict';
  68432.       var n,
  68433.       e = function (e) {
  68434.         var t = '_dsqstorage_';
  68435.         try {
  68436.           return e.localStorage.setItem(t, t),
  68437.           e.localStorage.getItem(t),
  68438.           e.localStorage.removeItem(t),
  68439.           !0
  68440.         } catch (e) {
  68441.           return !1
  68442.         }
  68443.       }(window),
  68444.       t = (n = {
  68445.       }, {
  68446.         getItem: function (e) {
  68447.           return n.hasOwnProperty(e) ? n[e] : null
  68448.         },
  68449.         setItem: function (e, t) {
  68450.           n[e] = '' + t
  68451.         },
  68452.         removeItem: function (e) {
  68453.           delete n[e]
  68454.         },
  68455.         clear: function () {
  68456.           n = {
  68457.           }
  68458.         }
  68459.       });
  68460.       return {
  68461.         get: function (e) {
  68462.           var t = null;
  68463.           try {
  68464.             return t = this.backend.getItem(e),
  68465.             JSON.parse(t)
  68466.           } catch (e) {
  68467.             return t
  68468.           }
  68469.         },
  68470.         set: function (e, t) {
  68471.           try {
  68472.             this.backend.setItem(e, JSON.stringify(t))
  68473.           } catch (e) {
  68474.           }
  68475.         },
  68476.         remove: function (e) {
  68477.           try {
  68478.             this.backend.removeItem(e)
  68479.           } catch (e) {
  68480.           }
  68481.         },
  68482.         clear: function () {
  68483.           try {
  68484.             this.backend.clear()
  68485.           } catch (e) {
  68486.           }
  68487.         },
  68488.         backend: e ? window.localStorage : t,
  68489.         isPersistent: e
  68490.       }
  68491.     }.apply(t, [
  68492.     ]);
  68493.     void 0 === t || (e.exports = t)
  68494.   },
  68495.   42: function (e, t, n) {
  68496.     var n = [
  68497.       n(9)
  68498.     ],
  68499.     n = function (n) {
  68500.       'use strict';
  68501.       var e = {
  68502.       },
  68503.       a = 'disqusauth';
  68504.       return e.getFromCookie = function () {
  68505.         var e = (n.read(a) || '').replace(/"/g, '').split('|');
  68506.         !e || e[1] && e[6] || (e = [
  68507.         ], n.erase(a, {
  68508.         }));
  68509.         var t = parseInt(e[6] || '0', 10);
  68510.         return {
  68511.           avatarUrl: e[7] ? decodeURIComponent(e[7]) : void 0,
  68512.           datetimeFormatting: parseInt(e[4], 10) ? 'absolute' : 'relative',
  68513.           id: t,
  68514.           isModerator: 0 < parseInt(e[8], 10),
  68515.           staff: !!parseInt(e[2], 10),
  68516.           tzOffset: e[5],
  68517.           username: e[1],
  68518.           isAuthenticated: !(!t || '0' === t)
  68519.         }
  68520.       },
  68521.       e
  68522.     }.apply(t, n);
  68523.     void 0 === n || (e.exports = n)
  68524.   },
  68525.   43: function (e, t, n) {
  68526.     'use strict';
  68527.     var n = [
  68528.       n(7),
  68529.       n(30),
  68530.       n(34),
  68531.       n(8),
  68532.       n(33),
  68533.       n(278)
  68534.     ],
  68535.     n = function (r, a, o, i, s, l) {
  68536.       function n(e) {
  68537.         return e.id === t
  68538.       }
  68539.       function c(e) {
  68540.         return e.id === f
  68541.       }
  68542.       function u(e) {
  68543.         return e.id === h
  68544.       }
  68545.       function p(t) {
  68546.         return O.some(function (e) {
  68547.           return t.id === e
  68548.         })
  68549.       }
  68550.       function d(t) {
  68551.         return S.some(function (e) {
  68552.           return t.id === e
  68553.         })
  68554.       }
  68555.       var m = s.BASIC_PLAN,
  68556.       t = s.DISQUS_BASIC_PACKAGE_ID,
  68557.       f = s.DISQUS_PLUS_PACKAGE_ID,
  68558.       h = s.DISQUS_PRO_PACKAGE_ID,
  68559.       g = s.DISQUS_PREFERRED_CUSTOMER_PACKAGE_ID,
  68560.       y = s.DISQUS_BASIC_PLAN_ID,
  68561.       e = s.DISQUS_PLUS_2021_PLAN_ID,
  68562.       b = s.DISQUS_PLUS_ANNUAL_2021_PLAN_ID,
  68563.       v = s.DISQUS_PRO_2021_PLAN_ID,
  68564.       _ = s.DISQUS_PRO_ANNUAL_2021_PLAN_ID,
  68565.       E = s.PAYMENT_INTERVAL,
  68566.       O = [
  68567.         s.DISQUS_PLUS_PLAN_ID,
  68568.         s.DISQUS_PLUS_ANNUAL_PLAN_ID,
  68569.         e,
  68570.         b
  68571.       ],
  68572.       S = [
  68573.         s.DISQUS_PRO_PLAN_ID,
  68574.         s.DISQUS_PRO_ANNUAL_PLAN_ID,
  68575.         v,
  68576.         _
  68577.       ];
  68578.       return {
  68579.         getPackageFeatureList: function (e, t, n) {
  68580.           var a = r.find(e, function (e) {
  68581.             return e.id === h
  68582.           }) || {
  68583.           },
  68584.           e = [
  68585.           ];
  68586.           t === g && (e = a.features.filter(function (e) {
  68587.             return !('Ads Optional' === e.name && !e.isCustom)
  68588.           }));
  68589.           n = n ? l.DISPLAY_SUBSCRIPTIONS_PACKAGES_FEATURES_ALT : l.DISPLAY_SUBSCRIPTIONS_PACKAGES_FEATURES;
  68590.           return e = n[t] ? n[t].map(function (e) {
  68591.             return {
  68592.               id: parseInt(e, 10),
  68593.               name: s.RENDER_FEATURE_TEXT[e]
  68594.             }
  68595.           }) : e
  68596.         },
  68597.         getPollsPackageFeatureList: function (e) {
  68598.           var t = [
  68599.           ],
  68600.           n = l.DISPLAY_POLLS_SUBSCRIPTIONS_PACKAGES_FEATURES;
  68601.           return t = n[e] ? n[e].map(function (e) {
  68602.             return {
  68603.               id: parseInt(e, 10),
  68604.               name: s.RENDER_FEATURE_TEXT[e]
  68605.             }
  68606.           }) : t
  68607.         },
  68608.         getDiscountedAmount: function (e, t) {
  68609.           return t ? t.amountOff ? Math.max(0, e - t.amountOff) : e * (1 - t.percentOff / 100) : e
  68610.         },
  68611.         formatPlanAmount: function (e) {
  68612.           return (e / 100).toFixed()
  68613.         },
  68614.         formatPageViews: function (e) {
  68615.           return Intl.NumberFormat('en', {
  68616.             notation: 'compact'
  68617.           }).format(e)
  68618.         },
  68619.         isNewPlanCouponEligible: function (e, t) {
  68620.           return !!t && ((e = e || m).id === y && (p(t) || d(t)) || p(e) && d(t))
  68621.         },
  68622.         isCurrentPackageCouponEligible: function (e) {
  68623.           return n(e) || c(e)
  68624.         },
  68625.         isNewPackageCouponEligible: function (e, t) {
  68626.           return !!t && (n(e) && (c(t) || u(t)) || c(e) && u(t))
  68627.         },
  68628.         getCurrentPlusPlanId: function () {
  68629.           return e
  68630.         },
  68631.         getCurrentPlusAnnualPlanId: function () {
  68632.           return b
  68633.         },
  68634.         getCurrentProPlanId: function () {
  68635.           return v
  68636.         },
  68637.         getCurrentProAnnualPlanId: function () {
  68638.           return _
  68639.         },
  68640.         getGtmEvent: function (e) {
  68641.           var t,
  68642.           t = p(t = e) ? 'plus' : d(t) ? 'pro' : '',
  68643.           e = E[e.interval] || '';
  68644.           return ''.concat(t).concat(e, 'subscribe')
  68645.         },
  68646.         isNewFlow: function () {
  68647.           var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 'cc_v2',
  68648.           t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {
  68649.             orgId: '',
  68650.             trial: {
  68651.               isActive: !1,
  68652.               startDate: ''
  68653.             }
  68654.           },
  68655.           n = {
  68656.           };
  68657.           return t.orgId && (n.organization = t.orgId),
  68658.           !!o.isFeatureActive(e, n) && (!(t.trial && t.trial.isActive && t.trial.startDate && i.lounge.cc_v2_start) || a(t.trial.startDate).isAfter(a(i.lounge.cc_v2_start)))
  68659.         }
  68660.       }
  68661.     }.apply(t, n);
  68662.     void 0 === n || (e.exports = n)
  68663.   },
  68664.   493: function (e, t, n) {
  68665.     'use strict';
  68666.     function r(e) {
  68667.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  68668.         return typeof e
  68669.       }
  68670.        : function (e) {
  68671.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  68672.       }) (e)
  68673.     }
  68674.     function s(e, t) {
  68675.       for (var n = 0; n < t.length; n++) {
  68676.         var a = t[n];
  68677.         a.enumerable = a.enumerable || !1,
  68678.         a.configurable = !0,
  68679.         'value' in a && (a.writable = !0),
  68680.         Object.defineProperty(e, a.key, a)
  68681.       }
  68682.     }
  68683.     function l(e, t) {
  68684.       return (l = Object.setPrototypeOf || function (e, t) {
  68685.         return e.__proto__ = t,
  68686.         e
  68687.       }) (e, t)
  68688.     }
  68689.     function c(n) {
  68690.       var a = function () {
  68691.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  68692.         if (Reflect.construct.sham) return !1;
  68693.         if ('function' == typeof Proxy) return !0;
  68694.         try {
  68695.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  68696.           ], function () {
  68697.           })),
  68698.           !0
  68699.         } catch (e) {
  68700.           return !1
  68701.         }
  68702.       }();
  68703.       return function () {
  68704.         var e,
  68705.         t = o(n);
  68706.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  68707.         t = this,
  68708.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? function (e) {
  68709.           if (void 0 !== e) return e;
  68710.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  68711.         }(t) : e
  68712.       }
  68713.     }
  68714.     function o(e) {
  68715.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  68716.         return e.__proto__ || Object.getPrototypeOf(e)
  68717.       }) (e)
  68718.     }
  68719.     n = [
  68720.       n(37),
  68721.       n(25)
  68722.     ],
  68723.     void 0 === (n = function (o, i) {
  68724.       return function () {
  68725.         !function (e, t) {
  68726.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  68727.           e.prototype = Object.create(t && t.prototype, {
  68728.             constructor: {
  68729.               value: e,
  68730.               writable: !0,
  68731.               configurable: !0
  68732.             }
  68733.           }),
  68734.           t && l(e, t)
  68735.         }(r, i.Component);
  68736.         var e,
  68737.         t,
  68738.         n,
  68739.         a = c(r);
  68740.         function r() {
  68741.           return function (e, t) {
  68742.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  68743.           }(this, r),
  68744.           a.apply(this, arguments)
  68745.         }
  68746.         return e = r,
  68747.         (t = [
  68748.           {
  68749.             key: 'componentWillMount',
  68750.             value: function () {
  68751.               o(window.document.body).hide(),
  68752.               window.document.location.reload()
  68753.             }
  68754.           },
  68755.           {
  68756.             key: 'render',
  68757.             value: function () {
  68758.               return null
  68759.             }
  68760.           }
  68761.         ]) && s(e.prototype, t),
  68762.         n && s(e, n),
  68763.         r
  68764.       }()
  68765.     }.apply(t, n)) || (e.exports = n)
  68766.   },
  68767.   494: function (e, t, n) {
  68768.     var a = {
  68769.       ISO_8601: 'YYYY-MM-DDTHH:mm:ssZ',
  68770.       assureTzOffset: function (e) {
  68771.         return ~e.indexOf('+') ? e : e + '+00:00'
  68772.       }
  68773.     };
  68774.     e.exports = a
  68775.   },
  68776.   495: function (e, t, n) {
  68777.     'use strict';
  68778.     var n = [
  68779.       n(25),
  68780.       n(7),
  68781.       n(61),
  68782.       n(59)
  68783.     ],
  68784.     n = function (l, e, t, n) {
  68785.       function c(e) {
  68786.         var t = e.text,
  68787.         n = e.value,
  68788.         a = e.selected,
  68789.         r = e.handleChange;
  68790.         return l.createElement('label', {
  68791.           className: 'padding-default align align__item--grow align__item--equal align--center align--column modal__option'.concat(a ? ' -selected' : ''),
  68792.           tabIndex: '0',
  68793.           onKeyPress: function (e) {
  68794.             13 === e.keyCode && r(e)
  68795.           },
  68796.           onChange: r
  68797.         }, l.createElement('input', {
  68798.           type: 'radio',
  68799.           name: 'badge_action',
  68800.           value: n,
  68801.           checked: a
  68802.         }), l.createElement('p', {
  68803.           className: 'text-semibold text-center modal__option-text'
  68804.         }, t))
  68805.       }
  68806.       function u(e) {
  68807.         var t = e.badge,
  68808.         n = e.selectedBadge,
  68809.         e = e.handleChange;
  68810.         return l.createElement('span', {
  68811.           key: t.id,
  68812.           className: 'badge-option spacing-right '.concat(n && n === t.id ? ' selected' : '').concat(t.disabled ? ' disabled' : '')
  68813.         }, l.createElement('input', {
  68814.           id: 'badge-'.concat(t.id, '-input'),
  68815.           name: 'badge',
  68816.           type: 'radio',
  68817.           className: 'badge-option_input',
  68818.           value: t.id,
  68819.           onChange: e,
  68820.           disabled: t.disabled,
  68821.           tabIndex: '0'
  68822.         }), l.createElement('label', {
  68823.           htmlFor: 'badge-'.concat(t.id, '-input'),
  68824.           className: 'badge-option_label'
  68825.         }, l.createElement('span', {
  68826.           className: 'badge-option_image-wrapper'
  68827.         }, l.createElement('img', {
  68828.           className: 'badge-option_image',
  68829.           src: t.image,
  68830.           alt: t.name
  68831.         })), l.createElement('span', {
  68832.           className: 'badge-option_title'
  68833.         }, t.name)))
  68834.       }
  68835.       var p = t.gettext,
  68836.       d = n.ACTION_TYPES;
  68837.       return function (e) {
  68838.         var t = e.badgeAction,
  68839.         n = e.formValues,
  68840.         a = e.badgeOptions,
  68841.         r = e.updateBadgeAction,
  68842.         o = e.updateBadgeSelection,
  68843.         i = e.handleSubmit,
  68844.         s = e.handleClose,
  68845.         e = 'https://'.concat(n.forum, '.disqus.com/admin/settings/badges');
  68846.         return l.createElement('form', {
  68847.           className: 'badges-manage-form'
  68848.         }, l.createElement('div', {
  68849.           className: 'admin-modal__content padding-bottom'
  68850.         }, l.createElement('div', null, l.createElement('div', {
  68851.           className: 'align align--stretch align--wrap'
  68852.         }, l.createElement(c, {
  68853.           text: p('Award a Badge'),
  68854.           value: d.AWARD,
  68855.           selected: t === d.AWARD,
  68856.           handleChange: r
  68857.         }), l.createElement(c, {
  68858.           text: p('Remove a Badge'),
  68859.           value: d.REMOVE,
  68860.           selected: t === d.REMOVE,
  68861.           handleChange: r
  68862.         })), l.createElement('div', {
  68863.           className: 'modal__description border-bottom-dark'
  68864.         }, l.createElement('p', {
  68865.           className: 'modal__option-subtext'
  68866.         }, p(t === d.AWARD ? 'Select a badge below to award it to this commenter.' : 'Select one of the manually awarded badges below to remove it from this commenter. Automatically awarded badges can only be removed by removing the badge from your site entirely.'), l.createElement('br', null), p('You can manage your site\'s badges using the '), l.createElement('a', {
  68867.           href: e,
  68868.           target: '_blank',
  68869.           rel: 'noopener noreferrer'
  68870.         }, p('Badges settings')), p(' in the Disqus Admin.'))), l.createElement('div', {
  68871.           className: 'modal__config'
  68872.         }, l.createElement('div', {
  68873.           className: 'badge-options_list'
  68874.         }, a.map(function (e) {
  68875.           return l.createElement(u, {
  68876.             key: e.id,
  68877.             badge: e,
  68878.             selectedBadge: n.badge,
  68879.             handleChange: o
  68880.           })
  68881.         }), t === d.AWARD ? l.createElement('span', {
  68882.           className: 'badge-option spacing-right create-badge'
  68883.         }, l.createElement('a', {
  68884.           className: 'badge-option_link',
  68885.           href: e,
  68886.           target: '_blank',
  68887.           rel: 'noopener noreferrer'
  68888.         }, l.createElement('span', {
  68889.           className: 'badge-option_image-wrapper'
  68890.         }, l.createElement('span', {
  68891.           className: 'icon icon-plus badge-option_add-icon'
  68892.         })), l.createElement('span', {
  68893.           className: 'badge-option_title'
  68894.         }, p('Create a new badge')))) : null), t !== d.REMOVE || a.length ? null : l.createElement('div', {
  68895.           className: 'badge-options_empty'
  68896.         }, p('This user doesn\'t have any badges.')), n.errorMessage ? l.createElement('div', {
  68897.           className: 'spacing-top-narrow'
  68898.         }, l.createElement('p', {
  68899.           className: 'text-small modal__option-subtext modal__error'
  68900.         }, n.errorMessage)) : null))), l.createElement('div', {
  68901.           className: 'admin-modal__footer clearfix'
  68902.         }, l.createElement('button', {
  68903.           className: 'button button-fill--brand button-small text-capitalized',
  68904.           onClick: i
  68905.         }, p(t === d.AWARD ? 'Award badge' : 'Remove badge')), l.createElement('button', {
  68906.           className: 'button button-fill button-small text-capitalized',
  68907.           onClick: s
  68908.         }, p('Cancel'))))
  68909.       }
  68910.     }.apply(t, n);
  68911.     void 0 === n || (e.exports = n)
  68912.   },
  68913.   496: function (e, t, n) {
  68914.     'use strict';
  68915.     function r(e) {
  68916.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  68917.         return typeof e
  68918.       }
  68919.        : function (e) {
  68920.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  68921.       }) (e)
  68922.     }
  68923.     function I() {
  68924.       return (I = Object.assign || function (e) {
  68925.         for (var t = 1; t < arguments.length; t++) {
  68926.           var n,
  68927.           a = arguments[t];
  68928.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  68929.         }
  68930.         return e
  68931.       }).apply(this, arguments)
  68932.     }
  68933.     function q(e) {
  68934.       return function (e) {
  68935.         if (Array.isArray(e)) return a(e)
  68936.       }(e) || function (e) {
  68937.         if ('undefined' != typeof Symbol && null != e[Symbol.iterator] || null != e['@@iterator']) return Array.from(e)
  68938.       }(e) || function (e, t) {
  68939.         if (e) {
  68940.           if ('string' == typeof e) return a(e, t);
  68941.           var n = Object.prototype.toString.call(e).slice(8, - 1);
  68942.           return 'Map' === (n = 'Object' === n && e.constructor ? e.constructor.name : n) || 'Set' === n ? Array.from(e) : 'Arguments' === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? a(e, t) : void 0
  68943.         }
  68944.       }(e) || function () {
  68945.         throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.')
  68946.       }()
  68947.     }
  68948.     function a(e, t) {
  68949.       for (var n = 0, a = Array(t = null == t || e.length < t ? e.length : t); n < t; n++) a[n] = e[n];
  68950.       return a
  68951.     }
  68952.     function o(t, e) {
  68953.       var n,
  68954.       a = Object.keys(t);
  68955.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  68956.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  68957.       })), a.push.apply(a, n)),
  68958.       a
  68959.     }
  68960.     function F(t) {
  68961.       for (var e = 1; e < arguments.length; e++) {
  68962.         var n = null != arguments[e] ? arguments[e] : {
  68963.         };
  68964.         e % 2 ? o(Object(n), !0).forEach(function (e) {
  68965.           z(t, e, n[e])
  68966.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach(function (e) {
  68967.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  68968.         })
  68969.       }
  68970.       return t
  68971.     }
  68972.     function L(e, t) {
  68973.       for (var n = 0; n < t.length; n++) {
  68974.         var a = t[n];
  68975.         a.enumerable = a.enumerable || !1,
  68976.         a.configurable = !0,
  68977.         'value' in a && (a.writable = !0),
  68978.         Object.defineProperty(e, a.key, a)
  68979.       }
  68980.     }
  68981.     function U(e, t) {
  68982.       return (U = Object.setPrototypeOf || function (e, t) {
  68983.         return e.__proto__ = t,
  68984.         e
  68985.       }) (e, t)
  68986.     }
  68987.     function M(n) {
  68988.       var a = function () {
  68989.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  68990.         if (Reflect.construct.sham) return !1;
  68991.         if ('function' == typeof Proxy) return !0;
  68992.         try {
  68993.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  68994.           ], function () {
  68995.           })),
  68996.           !0
  68997.         } catch (e) {
  68998.           return !1
  68999.         }
  69000.       }();
  69001.       return function () {
  69002.         var e,
  69003.         t = i(n);
  69004.         return e = a ? (e = i(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  69005.         t = this,
  69006.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? B(t) : e
  69007.       }
  69008.     }
  69009.     function B(e) {
  69010.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  69011.       return e
  69012.     }
  69013.     function i(e) {
  69014.       return (i = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  69015.         return e.__proto__ || Object.getPrototypeOf(e)
  69016.       }) (e)
  69017.     }
  69018.     function z(e, t, n) {
  69019.       return t in e ? Object.defineProperty(e, t, {
  69020.         value: n,
  69021.         enumerable: !0,
  69022.         configurable: !0,
  69023.         writable: !0
  69024.       }) : e[t] = n,
  69025.       e
  69026.     }
  69027.     n = [
  69028.       n(25),
  69029.       n(26),
  69030.       n(7),
  69031.       n(33),
  69032.       n(172),
  69033.       n(101),
  69034.       n(102),
  69035.       n(43)
  69036.     ],
  69037.     void 0 === (n = function (s, e, c, t, l, u, p, n) {
  69038.       var a = t.ORG_BILLING_SHAPE,
  69039.       r = t.TRIAL_SHAPE,
  69040.       d = t.PACKAGE_SHAPE,
  69041.       m = t.DISQUS_BASIC_PACKAGE_ID,
  69042.       f = t.DISQUS_PLUS_PACKAGE_ID,
  69043.       o = t.DISQUS_PLUS_FREE_PACKAGE_ID,
  69044.       h = t.DISQUS_PRO_PACKAGE_ID,
  69045.       g = t.DISQUS_BUSINESS_PACKAGE_ID,
  69046.       y = t.DISQUS_BASIC_PLAN_ID,
  69047.       i = t.DISQUS_PLUS_100K_PLAN_ID,
  69048.       b = t.DISQUS_PLUS_100K_YEARLY_PLAN_ID,
  69049.       v = t.DISQUS_PLUS_350K_PLAN_ID,
  69050.       _ = t.DISQUS_PLUS_350K_YEARLY_PLAN_ID,
  69051.       E = t.DISQUS_PLUS_900K_PLAN_ID,
  69052.       O = t.DISQUS_PLUS_900K_YEARLY_PLAN_ID,
  69053.       S = t.DISQUS_PLUS_FREE_PLAN_ID,
  69054.       w = t.DISQUS_PRO_1M_PLAN_ID,
  69055.       P = t.DISQUS_PRO_1M_YEARLY_PLAN_ID,
  69056.       k = t.DISQUS_PRO_2_5M_PLAN_ID,
  69057.       N = t.DISQUS_PRO_2_5M_YEARLY_PLAN_ID,
  69058.       C = t.DISQUS_PRO_5M_PLAN_ID,
  69059.       R = t.DISQUS_PRO_5M_YEARLY_PLAN_ID,
  69060.       x = t.DISQUS_BUSINESS_PLAN_ID,
  69061.       A = n.getPackageFeatureList,
  69062.       D = n.getCurrentPlusAnnualPlanId,
  69063.       j = n.getCurrentProAnnualPlanId,
  69064.       T = (z(n = {
  69065.       }, m, [
  69066.         y
  69067.       ]), z(n, f, [
  69068.         b,
  69069.         _,
  69070.         O,
  69071.         i,
  69072.         v,
  69073.         E
  69074.       ]), z(n, o, [
  69075.         S
  69076.       ]), z(n, h, [
  69077.         P,
  69078.         N,
  69079.         R,
  69080.         w,
  69081.         k,
  69082.         C
  69083.       ]), z(n, g, [
  69084.         x
  69085.       ]), n),
  69086.       n = function () {
  69087.         !function (e, t) {
  69088.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  69089.           e.prototype = Object.create(t && t.prototype, {
  69090.             constructor: {
  69091.               value: e,
  69092.               writable: !0,
  69093.               configurable: !0
  69094.             }
  69095.           }),
  69096.           t && U(e, t)
  69097.         }(i, s.Component);
  69098.         var e,
  69099.         t,
  69100.         n,
  69101.         o = M(i);
  69102.         function i(e) {
  69103.           !function (e, t) {
  69104.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  69105.           }(this, i);
  69106.           var t = o.call(this, e),
  69107.           n = e.orgCurrentPackage,
  69108.           a = n && n.plans.find(function (e) {
  69109.             return e.isSubscribed
  69110.           }),
  69111.           r = !1;
  69112.           return a ? r = 'year' === a.interval : e.pollsOrgCurrentPackage && (r = (e = e.pollsOrgCurrentPackage.plans.find(function (e) {
  69113.             return e.isSubscribed
  69114.           })) && 'year' === e.interval),
  69115.           t.state = {
  69116.             expandedPackageId: f,
  69117.             selectedProPlanId: n && n.id === h && a ? a.id : r ? N : k,
  69118.             selectedPlusPlanId: n && n.id === f && a ? a.id : r ? _ : v
  69119.           },
  69120.           t.expandPackageId = t.expandPackageId.bind(B(t)),
  69121.           t.selectProPlan = t.selectProPlan.bind(B(t)),
  69122.           t.selectPlusPlan = t.selectPlusPlan.bind(B(t)),
  69123.           t
  69124.         }
  69125.         return e = i,
  69126.         (t = [
  69127.           {
  69128.             key: 'expandPackageId',
  69129.             value: function (e) {
  69130.               this.setState({
  69131.                 expandedPackageId: e
  69132.               })
  69133.             }
  69134.           },
  69135.           {
  69136.             key: 'selectProPlan',
  69137.             value: function (e) {
  69138.               this.setState({
  69139.                 selectedProPlanId: e
  69140.               })
  69141.             }
  69142.           },
  69143.           {
  69144.             key: 'selectPlusPlan',
  69145.             value: function (e) {
  69146.               this.setState({
  69147.                 selectedPlusPlanId: e
  69148.               })
  69149.             }
  69150.           },
  69151.           {
  69152.             key: 'render',
  69153.             value: function () {
  69154.               var t = this,
  69155.               e = this.props.packages[m],
  69156.               n = this.props.packages[f],
  69157.               a = this.props.packages[h],
  69158.               r = this.props.packages[g],
  69159.               o = F(F({
  69160.               }, this.props), {
  69161.               }, {
  69162.                 basicPackage: e,
  69163.                 maxButtons: 1
  69164.               }),
  69165.               i = this.props.orgCurrentPackage;
  69166.               return s.createElement(s.Fragment, null, s.createElement('section', {
  69167.                 className: 'subscription-packages__all'
  69168.               }, s.createElement(p, I({
  69169.                 package: F(F({
  69170.                 }, n), {
  69171.                 }, {
  69172.                   features: [
  69173.                   ].concat(q(e.features), q(n.features))
  69174.                 }),
  69175.                 plan: c.find(n.plans, function (e) {
  69176.                   return e.id === (t.state.selectedPlusPlanId || D())
  69177.                 }),
  69178.                 features: A(this.props.packages, f, !0),
  69179.                 isCollapsed: this.state.expandedPackageId !== f,
  69180.                 onCollapse: this.expandPackageId.bind(this, null),
  69181.                 onExpand: this.expandPackageId.bind(this, f),
  69182.                 selectPlan: this.selectPlusPlan,
  69183.                 showSlider: !0
  69184.               }, o)), s.createElement(p, I({
  69185.                 package: a,
  69186.                 plan: c.find(a.plans, function (e) {
  69187.                   return e.id === (t.state.selectedProPlanId || j())
  69188.                 }),
  69189.                 features: A(this.props.packages, h, !0),
  69190.                 includesFeaturesFrom: 'Plus',
  69191.                 learnMoreLink: s.createElement(u, {
  69192.                   package: a,
  69193.                   useNewText: !0
  69194.                 }),
  69195.                 isCollapsed: this.state.expandedPackageId !== h,
  69196.                 onCollapse: this.expandPackageId.bind(this, null),
  69197.                 onExpand: this.expandPackageId.bind(this, h),
  69198.                 selectPlan: this.selectProPlan,
  69199.                 showSlider: !0
  69200.               }, o)), s.createElement(p, I({
  69201.                 package: r,
  69202.                 plan: c.find(r.plans, function (e) {
  69203.                   return e.id === x
  69204.                 }),
  69205.                 features: A(this.props.packages, g, !0),
  69206.                 includesFeaturesFrom: 'Pro',
  69207.                 learnMoreLink: s.createElement(u, {
  69208.                   package: r,
  69209.                   useNewText: !0
  69210.                 }),
  69211.                 isCollapsed: this.state.expandedPackageId !== g,
  69212.                 onCollapse: this.expandPackageId.bind(this, null),
  69213.                 onExpand: this.expandPackageId.bind(this, g)
  69214.               }, o))), !this.props.hideAdSupported && this.props.useAdSupportedCard && s.createElement('div', {
  69215.                 className: 'subscription-packages__all spacing-top-double'
  69216.               }, s.createElement(p, I({
  69217.                 package: e,
  69218.                 plan: c.find(e.plans, function (e) {
  69219.                   return e.id === y
  69220.                 }),
  69221.                 features: A(this.props.packages, m),
  69222.                 learnMoreLink: s.createElement('div', {
  69223.                   className: 'subscription-package__info'
  69224.                 }, 'We offer a free, ad-supported version of Disqus Comments to eligible publishers.'),
  69225.                 subscribeText: i && i.id !== m ? 'Downgrade Now' : void 0,
  69226.                 isCollapsed: this.state.expandedPackageId !== m,
  69227.                 onCollapse: this.expandPackageId.bind(this, null),
  69228.                 onExpand: this.expandPackageId.bind(this, m)
  69229.               }, o))), !this.props.hideAdSupported && !this.props.useAdSupportedCard && s.createElement(l, I({
  69230.                 package: e,
  69231.                 plan: c.find(e.plans, function (e) {
  69232.                   return e.id === y
  69233.                 })
  69234.               }, o)))
  69235.             }
  69236.           }
  69237.         ]) && L(e.prototype, t),
  69238.         n && L(e, n),
  69239.         i
  69240.       }();
  69241.       return n.propTypes = {
  69242.         packages: function (e, t, a, r, o) {
  69243.           for (var i, n = arguments.length, s = Array(5 < n ? n - 5 : 0), l = 5; l < n; l++) s[l - 5] = arguments[l];
  69244.           return o = o || t,
  69245.           (i = e[t]) ? c.chain(T).map(function (e, n) {
  69246.             return d.isRequired.apply(d, [
  69247.               i,
  69248.               n,
  69249.               ''.concat(a),
  69250.               r,
  69251.               ''.concat(o, '[').concat(n, ']')
  69252.             ].concat(s)) || c.chain(e).map(function (t) {
  69253.               return c.find(i[n].plans, function (e) {
  69254.                 return e.id === t
  69255.               }) ? null : Error('A plan with id '.concat(t, ' is required in `').concat(a, '`, prop `').concat(o, '[').concat(n, ']`, but its value is `null`.'))
  69256.             }).compact().value() [0]
  69257.           }).compact().value() [0] : Error('The '.concat(r, ' `').concat(o, '` is required in `').concat(a, '`, but its value is `null`.'))
  69258.         },
  69259.         orgBilling: a,
  69260.         orgCurrentPackage: d,
  69261.         pollsOrgCurrentPackage: d,
  69262.         orgCurrentPackageWillCancel: e.bool,
  69263.         orgTrial: r,
  69264.         subscribeText: e.string,
  69265.         onRequestInfo: e.func,
  69266.         onSubscribe: e.func,
  69267.         onStartTrial: e.func,
  69268.         newSubscriptionFlow: e.bool,
  69269.         useAdSupportedCard: e.bool,
  69270.         hideAdSupported: e.bool,
  69271.         organization: e.object.isRequired
  69272.       },
  69273.       n
  69274.     }.apply(t, n)) || (e.exports = n)
  69275.   },
  69276.   51: function (e, t, n) {
  69277.     var n = [
  69278.       t,
  69279.       n(30)
  69280.     ],
  69281.     n = function (n, t) {
  69282.       'use strict';
  69283.       n.LIST_TYPES = {
  69284.         WHITELIST: 'whitelist',
  69285.         BLACKLIST: 'blacklist'
  69286.       },
  69287.       n.BAN_TYPES = {
  69288.         SHADOW: 'shadowban',
  69289.         PERMANENT: 'permanent',
  69290.         TEMP: 'temp'
  69291.       },
  69292.       n.RETROACTIVE_ACTION_TYPES = {
  69293.         DO_NOTHING: '',
  69294.         DELETE: '1',
  69295.         MARK_AS_SPAM: '2'
  69296.       },
  69297.       n.DEFAULT_FORM_VALUES = {
  69298.         durationHours: '24',
  69299.         customDurationAmount: '1',
  69300.         customDurationScale: '1'
  69301.       },
  69302.       n.STORAGE_KEY_BAN_TYPE = 'defaultBan',
  69303.       n.getDateExpires = function (e) {
  69304.         return 'custom' === e.durationHours && (e.durationHours = parseInt(e.customDurationAmount, 10) * parseInt(e.customDurationScale, 10)),
  69305.         t().add(e.durationHours, 'hours').toISOString()
  69306.       },
  69307.       n.isBanTypeSupported = function (e, t) {
  69308.         return !!t && (e === n.BAN_TYPES.SHADOW ? t.shadowBanning : e === n.BAN_TYPES.TEMP ? t.temporaryBanning : !!e)
  69309.       }
  69310.     }.apply(t, n);
  69311.     void 0 === n || (e.exports = n)
  69312.   },
  69313.   513: function (e, t, n) {
  69314.     'use strict';
  69315.     function r(e) {
  69316.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  69317.         return typeof e
  69318.       }
  69319.        : function (e) {
  69320.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  69321.       }) (e)
  69322.     }
  69323.     function s(e, t) {
  69324.       for (var n = 0; n < t.length; n++) {
  69325.         var a = t[n];
  69326.         a.enumerable = a.enumerable || !1,
  69327.         a.configurable = !0,
  69328.         'value' in a && (a.writable = !0),
  69329.         Object.defineProperty(e, a.key, a)
  69330.       }
  69331.     }
  69332.     function l(e, t) {
  69333.       return (l = Object.setPrototypeOf || function (e, t) {
  69334.         return e.__proto__ = t,
  69335.         e
  69336.       }) (e, t)
  69337.     }
  69338.     function c(n) {
  69339.       var a = function () {
  69340.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  69341.         if (Reflect.construct.sham) return !1;
  69342.         if ('function' == typeof Proxy) return !0;
  69343.         try {
  69344.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  69345.           ], function () {
  69346.           })),
  69347.           !0
  69348.         } catch (e) {
  69349.           return !1
  69350.         }
  69351.       }();
  69352.       return function () {
  69353.         var e,
  69354.         t = o(n);
  69355.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  69356.         t = this,
  69357.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? function (e) {
  69358.           if (void 0 !== e) return e;
  69359.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  69360.         }(t) : e
  69361.       }
  69362.     }
  69363.     function o(e) {
  69364.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  69365.         return e.__proto__ || Object.getPrototypeOf(e)
  69366.       }) (e)
  69367.     }
  69368.     n = [
  69369.       n(25),
  69370.       n(26),
  69371.       n(514)
  69372.     ],
  69373.     void 0 === (n = function (o, e, i) {
  69374.       var t = function () {
  69375.         !function (e, t) {
  69376.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  69377.           e.prototype = Object.create(t && t.prototype, {
  69378.             constructor: {
  69379.               value: e,
  69380.               writable: !0,
  69381.               configurable: !0
  69382.             }
  69383.           }),
  69384.           t && l(e, t)
  69385.         }(r, o.Component);
  69386.         var e,
  69387.         t,
  69388.         n,
  69389.         a = c(r);
  69390.         function r(e) {
  69391.           return function (e, t) {
  69392.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  69393.           }(this, r),
  69394.           (e = a.call(this, e)).state = {
  69395.             isOpen: !1
  69396.           },
  69397.           e
  69398.         }
  69399.         return e = r,
  69400.         (t = [
  69401.           {
  69402.             key: 'open',
  69403.             value: function (e) {
  69404.               e.preventDefault(),
  69405.               this.setState({
  69406.                 isOpen: !0
  69407.               })
  69408.             }
  69409.           },
  69410.           {
  69411.             key: 'close',
  69412.             value: function () {
  69413.               this.setState({
  69414.                 isOpen: !1
  69415.               })
  69416.             }
  69417.           },
  69418.           {
  69419.             key: 'render',
  69420.             value: function () {
  69421.               return o.createElement('div', {
  69422.                 className: 'trial-terms '.concat(this.props.className)
  69423.               }, o.createElement('div', {
  69424.                 className: 'trial-terms__single-line'
  69425.               }, o.createElement('a', {
  69426.                 href: '#',
  69427.                 onClick: this.open.bind(this),
  69428.                 className: 'spacing-bottom-narrow inline__item'
  69429.               }, 'See Free Trial Terms'), o.createElement('div', {
  69430.                 className: 'spacing-bottom inline__item'
  69431.               }, ' | Cancel anytime')), o.createElement('div', {
  69432.                 className: 'trial-terms__multi-line'
  69433.               }, o.createElement('a', {
  69434.                 href: '#',
  69435.                 onClick: this.open.bind(this),
  69436.                 className: 'spacing-bottom-narrow'
  69437.               }, 'See Free Trial Terms'), o.createElement('div', {
  69438.                 className: 'spacing-bottom'
  69439.               }, 'Cancel anytime')), o.createElement(i, {
  69440.                 isOpen: this.state.isOpen,
  69441.                 onClose: this.close.bind(this)
  69442.               }))
  69443.             }
  69444.           }
  69445.         ]) && s(e.prototype, t),
  69446.         n && s(e, n),
  69447.         r
  69448.       }();
  69449.       return t.propTypes = {
  69450.         className: e.string
  69451.       },
  69452.       t
  69453.     }.apply(t, n)) || (e.exports = n)
  69454.   },
  69455.   514: function (e, t, n) {
  69456.     'use strict';
  69457.     var n = [
  69458.       n(25),
  69459.       n(36),
  69460.       n(26)
  69461.     ],
  69462.     n = function (t, n, e) {
  69463.       function a(e) {
  69464.         return t.createElement(n, {
  69465.           isOpen: e.isOpen,
  69466.           onRequestClose: e.onClose,
  69467.           className: 'terms-modal modal-frame',
  69468.           ariaHideApp: !1,
  69469.           overlayClassName: 'modal-overlay -dark'
  69470.         }, t.createElement('div', {
  69471.           className: 'terms-modal-body'
  69472.         }, t.createElement('h3', {
  69473.           className: 'text-center spacing-bottom'
  69474.         }, 'Disqus Free Trial Terms'), t.createElement('p', {
  69475.           className: 'spacing-bottom'
  69476.         }, '30-day free trial: *First month of subscription to Disqus Plus or Disqus Pro (as applicable) (each, a "Monthly Plan" or “Annual Plan”), starting from the date of enrollment, is free. Valid payment information must be provided at the time of enrollment. You will be notified via e-mail of the approaching expiration of your trial period prior to the expiration date. You can cancel your free trial at any time. To continue using the selected Monthly Plan after your 30-day trial, you\'ll be charged on a monthly basis at the then-current fee for the service(s) you\'ve selected until you cancel or change to a free plan. To continue using the selected Annual Plan after your 30-day trial, you\'ll be charged yearly amount according to the then-current fee for the service(s) you\'ve selected until you cancel or change to a free plan. You can cancel your subscription and request a refund within 7 days after your trial expires.')))
  69477.       }
  69478.       return a.propTypes = {
  69479.         isOpen: e.bool,
  69480.         onClose: e.func
  69481.       },
  69482.       a
  69483.     }.apply(t, n);
  69484.     void 0 === n || (e.exports = n)
  69485.   },
  69486.   515: function (e, t, n) {
  69487.     'use strict';
  69488.     function r(e) {
  69489.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  69490.         return typeof e
  69491.       }
  69492.        : function (e) {
  69493.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  69494.       }) (e)
  69495.     }
  69496.     function N() {
  69497.       return (N = Object.assign || function (e) {
  69498.         for (var t = 1; t < arguments.length; t++) {
  69499.           var n,
  69500.           a = arguments[t];
  69501.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  69502.         }
  69503.         return e
  69504.       }).apply(this, arguments)
  69505.     }
  69506.     function a(t, e) {
  69507.       var n,
  69508.       a = Object.keys(t);
  69509.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  69510.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  69511.       })), a.push.apply(a, n)),
  69512.       a
  69513.     }
  69514.     function C(t) {
  69515.       for (var e = 1; e < arguments.length; e++) {
  69516.         var n = null != arguments[e] ? arguments[e] : {
  69517.         };
  69518.         e % 2 ? a(Object(n), !0).forEach(function (e) {
  69519.           j(t, e, n[e])
  69520.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : a(Object(n)).forEach(function (e) {
  69521.           Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
  69522.         })
  69523.       }
  69524.       return t
  69525.     }
  69526.     function R(e, t) {
  69527.       for (var n = 0; n < t.length; n++) {
  69528.         var a = t[n];
  69529.         a.enumerable = a.enumerable || !1,
  69530.         a.configurable = !0,
  69531.         'value' in a && (a.writable = !0),
  69532.         Object.defineProperty(e, a.key, a)
  69533.       }
  69534.     }
  69535.     function x(e, t) {
  69536.       return (x = Object.setPrototypeOf || function (e, t) {
  69537.         return e.__proto__ = t,
  69538.         e
  69539.       }) (e, t)
  69540.     }
  69541.     function A(n) {
  69542.       var a = function () {
  69543.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  69544.         if (Reflect.construct.sham) return !1;
  69545.         if ('function' == typeof Proxy) return !0;
  69546.         try {
  69547.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  69548.           ], function () {
  69549.           })),
  69550.           !0
  69551.         } catch (e) {
  69552.           return !1
  69553.         }
  69554.       }();
  69555.       return function () {
  69556.         var e,
  69557.         t = o(n);
  69558.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  69559.         t = this,
  69560.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? D(t) : e
  69561.       }
  69562.     }
  69563.     function D(e) {
  69564.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  69565.       return e
  69566.     }
  69567.     function o(e) {
  69568.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  69569.         return e.__proto__ || Object.getPrototypeOf(e)
  69570.       }) (e)
  69571.     }
  69572.     function j(e, t, n) {
  69573.       return t in e ? Object.defineProperty(e, t, {
  69574.         value: n,
  69575.         enumerable: !0,
  69576.         configurable: !0,
  69577.         writable: !0
  69578.       }) : e[t] = n,
  69579.       e
  69580.     }
  69581.     n = [
  69582.       n(25),
  69583.       n(26),
  69584.       n(7),
  69585.       n(33),
  69586.       n(172),
  69587.       n(101),
  69588.       n(102),
  69589.       n(43)
  69590.     ],
  69591.     void 0 === (n = function (s, e, c, t, l, u, p, n) {
  69592.       var a = t.ORG_BILLING_SHAPE,
  69593.       r = t.TRIAL_SHAPE,
  69594.       d = t.PACKAGE_SHAPE,
  69595.       m = t.DISQUS_POLLS_AD_SUPPORTED_PACKAGE_ID,
  69596.       f = t.DISQUS_POLLS_BUSINESS_PACKAGE_ID,
  69597.       h = t.DISQUS_POLLS_PRO_PACKAGE_ID,
  69598.       g = t.DISQUS_POLLS_AD_SUPPORTED_PLAN_ID,
  69599.       o = t.DISQUS_POLLS_PRO_250K_PLAN_ID,
  69600.       i = t.DISQUS_POLLS_PRO_ANNUAL_250K_PLAN_ID,
  69601.       y = t.DISQUS_POLLS_PRO_1_5M_PLAN_ID,
  69602.       b = t.DISQUS_POLLS_PRO_1_5M_YEARLY_PLAN_ID,
  69603.       v = t.DISQUS_POLLS_PRO_3M_PLAN_ID,
  69604.       _ = t.DISQUS_POLLS_PRO_3M_YEARLY_PLAN_ID,
  69605.       E = t.DISQUS_POLLS_PRO_10M_PLAN_ID,
  69606.       O = t.DISQUS_POLLS_PRO_10M_YEARLY_PLAN_ID,
  69607.       S = t.DISQUS_POLLS_BUSINESS_PLAN_ID,
  69608.       w = n.getPollsPackageFeatureList,
  69609.       P = n.getCurrentProAnnualPlanId,
  69610.       k = (j(n = {
  69611.       }, m, [
  69612.         g
  69613.       ]), j(n, h, [
  69614.         o,
  69615.         i,
  69616.         y,
  69617.         b,
  69618.         v,
  69619.         _,
  69620.         E,
  69621.         O
  69622.       ]), j(n, f, [
  69623.         S
  69624.       ]), n),
  69625.       n = function () {
  69626.         !function (e, t) {
  69627.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  69628.           e.prototype = Object.create(t && t.prototype, {
  69629.             constructor: {
  69630.               value: e,
  69631.               writable: !0,
  69632.               configurable: !0
  69633.             }
  69634.           }),
  69635.           t && x(e, t)
  69636.         }(i, s.Component);
  69637.         var e,
  69638.         t,
  69639.         n,
  69640.         o = A(i);
  69641.         function i(e) {
  69642.           !function (e, t) {
  69643.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  69644.           }(this, i);
  69645.           var t = o.call(this, e),
  69646.           n = e.pollsOrgCurrentPackage,
  69647.           a = n && n.plans.find(function (e) {
  69648.             return e.isSubscribed
  69649.           }),
  69650.           r = !1;
  69651.           return a ? r = 'year' === a.interval : e.orgCurrentPackage && (r = (e = e.orgCurrentPackage.plans.find(function (e) {
  69652.             return e.isSubscribed
  69653.           })) && 'year' === e.interval),
  69654.           t.state = {
  69655.             expandedPackageId: h,
  69656.             selectedProPlanId: n && n.id === h && a ? a.id : r ? _ : v
  69657.           },
  69658.           t.expandPackageId = t.expandPackageId.bind(D(t)),
  69659.           t.selectProPlan = t.selectProPlan.bind(D(t)),
  69660.           t
  69661.         }
  69662.         return e = i,
  69663.         (t = [
  69664.           {
  69665.             key: 'expandPackageId',
  69666.             value: function (e) {
  69667.               this.setState({
  69668.                 expandedPackageId: e
  69669.               })
  69670.             }
  69671.           },
  69672.           {
  69673.             key: 'selectProPlan',
  69674.             value: function (e) {
  69675.               this.setState({
  69676.                 selectedProPlanId: e
  69677.               })
  69678.             }
  69679.           },
  69680.           {
  69681.             key: 'render',
  69682.             value: function () {
  69683.               var t = this,
  69684.               e = this.props.packages[m],
  69685.               n = this.props.packages[h],
  69686.               a = this.props.packages[f],
  69687.               r = C(C({
  69688.               }, this.props), {
  69689.               }, {
  69690.                 basicPackage: e,
  69691.                 maxButtons: 1
  69692.               });
  69693.               return s.createElement(s.Fragment, null, s.createElement('section', {
  69694.                 className: 'subscription-packages__all'
  69695.               }, s.createElement(p, N({
  69696.                 package: n,
  69697.                 plan: c.find(n.plans, function (e) {
  69698.                   return e.id === (t.state.selectedProPlanId || P())
  69699.                 }),
  69700.                 features: w(h),
  69701.                 learnMoreLink: s.createElement(u, {
  69702.                   package: n,
  69703.                   useNewText: !0
  69704.                 }),
  69705.                 isCollapsed: this.state.expandedPackageId !== h,
  69706.                 onCollapse: this.expandPackageId.bind(this, null),
  69707.                 onExpand: this.expandPackageId.bind(this, h),
  69708.                 selectPlan: this.selectProPlan,
  69709.                 showSlider: !0
  69710.               }, r)), s.createElement(p, N({
  69711.                 package: a,
  69712.                 plan: c.find(a.plans, function (e) {
  69713.                   return e.id === S
  69714.                 }),
  69715.                 features: w(f),
  69716.                 includesFeaturesFrom: 'Pro',
  69717.                 learnMoreLink: s.createElement(u, {
  69718.                   package: a,
  69719.                   useNewText: !0
  69720.                 }),
  69721.                 isCollapsed: this.state.expandedPackageId !== f,
  69722.                 onCollapse: this.expandPackageId.bind(this, null),
  69723.                 onExpand: this.expandPackageId.bind(this, f)
  69724.               }, r))), !this.props.hideAdSupported && this.props.useAdSupportedCard && s.createElement('div', {
  69725.                 className: 'subscription-packages__all spacing-top-double'
  69726.               }, s.createElement(p, N({
  69727.                 package: e,
  69728.                 plan: c.find(e.plans, function (e) {
  69729.                   return e.id === g
  69730.                 }),
  69731.                 features: w(e),
  69732.                 learnMoreLink: s.createElement('div', {
  69733.                   className: 'subscription-package__info'
  69734.                 }, 'We offer a free, ad-supported version of Disqus Polls to eligible publishers.'),
  69735.                 subscribeText: 'Subscribe',
  69736.                 isCollapsed: this.state.expandedPackageId !== e,
  69737.                 onCollapse: this.expandPackageId.bind(this, null),
  69738.                 onExpand: this.expandPackageId.bind(this, e)
  69739.               }, r))), !this.props.hideAdSupported && !this.props.useAdSupportedCard && s.createElement(l, N({
  69740.                 package: e,
  69741.                 plan: c.find(e.plans, function (e) {
  69742.                   return e.id === g
  69743.                 })
  69744.               }, r)))
  69745.             }
  69746.           }
  69747.         ]) && R(e.prototype, t),
  69748.         n && R(e, n),
  69749.         i
  69750.       }();
  69751.       return n.propTypes = {
  69752.         packages: function (e, t, a, r, o) {
  69753.           for (var i, n = arguments.length, s = Array(5 < n ? n - 5 : 0), l = 5; l < n; l++) s[l - 5] = arguments[l];
  69754.           return o = o || t,
  69755.           (i = e[t]) ? c.chain(k).map(function (e, n) {
  69756.             return d.isRequired.apply(d, [
  69757.               i,
  69758.               n,
  69759.               ''.concat(a),
  69760.               r,
  69761.               ''.concat(o, '[').concat(n, ']')
  69762.             ].concat(s)) || c.chain(e).map(function (t) {
  69763.               return c.find(i[n].plans, function (e) {
  69764.                 return e.id === t
  69765.               }) ? null : Error('A plan with id '.concat(t, ' is required in `').concat(a, '`, prop `').concat(o, '[').concat(n, ']`, but its value is `null`.'))
  69766.             }).compact().value() [0]
  69767.           }).compact().value() [0] : Error('The '.concat(r, ' `').concat(o, '` is required in `').concat(a, '`, but its value is `null`.'))
  69768.         },
  69769.         orgBilling: a,
  69770.         orgCurrentPackage: d,
  69771.         pollsOrgCurrentPackage: d,
  69772.         pollsOrgCurrentPackageWillCancel: e.bool,
  69773.         pollsOrgTrial: r,
  69774.         subscribeText: e.string,
  69775.         onRequestInfo: e.func,
  69776.         onSubscribe: e.func,
  69777.         onStartTrial: e.func,
  69778.         newSubscriptionFlow: e.bool,
  69779.         useAdSupportedCard: e.bool,
  69780.         hideAdSupported: e.bool,
  69781.         organization: e.object.isRequired
  69782.       },
  69783.       n
  69784.     }.apply(t, n)) || (e.exports = n)
  69785.   },
  69786.   516: function (e, t, n) {
  69787.     'use strict';
  69788.     function r(e) {
  69789.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  69790.         return typeof e
  69791.       }
  69792.        : function (e) {
  69793.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  69794.       }) (e)
  69795.     }
  69796.     function s(e, t) {
  69797.       for (var n = 0; n < t.length; n++) {
  69798.         var a = t[n];
  69799.         a.enumerable = a.enumerable || !1,
  69800.         a.configurable = !0,
  69801.         'value' in a && (a.writable = !0),
  69802.         Object.defineProperty(e, a.key, a)
  69803.       }
  69804.     }
  69805.     function l(e, t) {
  69806.       return (l = Object.setPrototypeOf || function (e, t) {
  69807.         return e.__proto__ = t,
  69808.         e
  69809.       }) (e, t)
  69810.     }
  69811.     function c(n) {
  69812.       var a = function () {
  69813.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  69814.         if (Reflect.construct.sham) return !1;
  69815.         if ('function' == typeof Proxy) return !0;
  69816.         try {
  69817.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  69818.           ], function () {
  69819.           })),
  69820.           !0
  69821.         } catch (e) {
  69822.           return !1
  69823.         }
  69824.       }();
  69825.       return function () {
  69826.         var e,
  69827.         t = o(n);
  69828.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  69829.         t = this,
  69830.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? function (e) {
  69831.           if (void 0 !== e) return e;
  69832.           throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')
  69833.         }(t) : e
  69834.       }
  69835.     }
  69836.     function o(e) {
  69837.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  69838.         return e.__proto__ || Object.getPrototypeOf(e)
  69839.       }) (e)
  69840.     }
  69841.     n = [
  69842.       n(25),
  69843.       n(26)
  69844.     ],
  69845.     void 0 === (n = function (o, e) {
  69846.       function i(e) {
  69847.         var t = e.question,
  69848.         n = e.answer,
  69849.         a = e.expanded,
  69850.         e = e.onToggleExpanded;
  69851.         return o.createElement('li', {
  69852.           className: 'subscriptions-faq__item'.concat(a ? ' expanded' : '')
  69853.         }, o.createElement('div', {
  69854.           className: 'fieldset align--between'
  69855.         }, o.createElement('div', null, o.createElement('h4', {
  69856.           className: 'question text-large spacing-bottom-small',
  69857.           onClick: e
  69858.         }, t), o.createElement('p', {
  69859.           className: 'answer text-medium'
  69860.         }, n)), o.createElement('span', {
  69861.           className: 'icon '.concat(a ? 'icon-arrow' : 'icon-right-bracket'),
  69862.           onClick: e
  69863.         })))
  69864.       }
  69865.       i.propTypes = {
  69866.         question: e.string.isRequired,
  69867.         answer: e.node.isRequired,
  69868.         expanded: e.bool,
  69869.         onToggleExpanded: e.func.isRequired
  69870.       };
  69871.       var t = function () {
  69872.         !function (e, t) {
  69873.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  69874.           e.prototype = Object.create(t && t.prototype, {
  69875.             constructor: {
  69876.               value: e,
  69877.               writable: !0,
  69878.               configurable: !0
  69879.             }
  69880.           }),
  69881.           t && l(e, t)
  69882.         }(r, o.Component);
  69883.         var e,
  69884.         t,
  69885.         n,
  69886.         a = c(r);
  69887.         function r(e) {
  69888.           return function (e, t) {
  69889.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  69890.           }(this, r),
  69891.           (e = a.call(this, e)).state = {
  69892.             expandedIndex: 0
  69893.           },
  69894.           e
  69895.         }
  69896.         return e = r,
  69897.         (t = [
  69898.           {
  69899.             key: 'render',
  69900.             value: function () {
  69901.               var n = this,
  69902.               e = [
  69903.                 {
  69904.                   question: 'How does Disqus pricing work?',
  69905.                   answer: o.createElement(o.Fragment, null, 'Pricing for Disqus Comments and Polls is based on the number of monthly pageviews for your website (for multi-website organizations, we use the ', o.createElement('i', null, 'cumulative'), ' number of monthly pageviews for all of the sites you add Disqus to). Please choose the price point that most accurately reflects your site or sites’ monthly pageviews number. Sites that regularly exceed their monthly pageview limit will be contacted to upgrade to an appropriate plan tier. Business plans feature custom pricing. Please reach out to us at ', o.createElement('a', {
  69906.                     href: 'mailto:publisher-success@disqus.com'
  69907.                   }, 'publisher-success@disqus.com'), ' with any questions.')
  69908.                 },
  69909.                 {
  69910.                   question: 'How does Disqus measure traffic for our site?',
  69911.                   answer: o.createElement(o.Fragment, null, o.createElement('div', null, 'Disqus measures traffic by the number of times the Disqus comment embed or poll module loads on your site, which happens on every page load where Disqus Comments or Polls are enabled. Page loads that do not have Disqus do not count towards the traffic measured by Disqus.'), o.createElement('div', {
  69912.                     className: 'spacing-top-small'
  69913.                   }, 'For publishers who use both Disqus Comments and Polls, traffic is measured separately for each product. '))
  69914.                 },
  69915.                 {
  69916.                   question: 'I don’t see the Basic plan anywhere. Can I still use Disqus for free?',
  69917.                   answer: o.createElement(o.Fragment, null, o.createElement('div', null, 'Yes, we still offer free, ad-supported versions of Disqus for publishers who meet certain eligibility requirements. In order to be eligible for our free, ad-supported plans, your site must A) have ads properly enabled and viewable upon page load, and B) meet the quality standards of the Disqus advertising network. For more info on eligibility requirements, ', o.createElement('a', {
  69918.                     href: 'https://help.disqus.com/en/articles/4555311-disqus-advertising-qualification'
  69919.                   }, 'see here'), '.'), o.createElement('div', {
  69920.                     className: 'spacing-top-small'
  69921.                   }, 'We also offer a revenue-sharing program for eligible sites who want to earn a portion of the revenue generated by ad placements in the Disqus comment embed. To learn more, please get in touch with us directly by emailing ', o.createElement('a', {
  69922.                     href: 'mailto:publisher-success@disqus.com'
  69923.                   }, 'publisher-success@disqus.com'), '.'), o.createElement('div', {
  69924.                     className: 'spacing-top-small'
  69925.                   }, 'Publishers looking to choose the free, ad-supported Polls plan will have to undergo a review process to determine eligibility. Publishers not deemed eligible will need to choose a paid plan to use Disqus Polls.'))
  69926.                 },
  69927.                 {
  69928.                   question: 'How does the free trial work?',
  69929.                   answer: 'We offer 30-day free trial periods for Disqus Comments Plus, Disqus Comments Pro, and Polls Pro. Submitting a valid payment method is required to begin a free trial. You can cancel anytime during your free trial period. At the conclusion of the free trial period, you will be charged the monthly or annual fee for the plan you selected.'
  69930.                 },
  69931.                 {
  69932.                   question: 'Will I get access to Polls as part of my current Disqus Comments plan?',
  69933.                   answer: 'No, Polls is a completely standalone product and must be purchased separately.'
  69934.                 },
  69935.                 {
  69936.                   question: 'Do I need to use Disqus Comments to use Disqus Polls?',
  69937.                   answer: 'No, any publisher can use Disqus Polls, regardless of whether they use Disqus Comments, another provider’s comment tool, or no comments at all. Disqus Polls is a separate, standalone product available to all publishers.'
  69938.                 },
  69939.                 {
  69940.                   question: 'What forms of payment do you accept?',
  69941.                   answer: 'We accept all major credit cards.'
  69942.                 },
  69943.                 {
  69944.                   question: 'Does Disqus offer a discount for nonprofits?',
  69945.                   answer: o.createElement(o.Fragment, null, 'If you are a small, nonprofit site, you may be eligible for a free subscription to our Comments Plus plan. You can learn more by emailing ', o.createElement('a', {
  69946.                     href: 'mailto:publisher-success@disqus.com'
  69947.                   }, 'publisher-success@disqus.com'), '.')
  69948.                 },
  69949.                 {
  69950.                   question: 'How do I switch to a different plan?',
  69951.                   answer: 'You can switch to a new plan at any time by going to the Subscription & Billing page in your account. Select the plan you’d like to switch to and immediately start using new features.'
  69952.                 },
  69953.                 {
  69954.                   question: 'How do I cancel my Disqus subscription?',
  69955.                   answer: o.createElement(o.Fragment, null, 'You can cancel your Disqus subscription at any time by emailing ', o.createElement('a', {
  69956.                     href: 'mailto:cancellation@disqus.com'
  69957.                   }, 'cancellation@disqus.com'), '.')
  69958.                 }
  69959.               ];
  69960.               return o.createElement('div', null, o.createElement('header', {
  69961.                 className: 'settings__header'
  69962.               }, o.createElement('h2', {
  69963.                 className: 'text-gray-darker text-larger spacing-bottom-small'
  69964.               }, 'Frequently Asked Questions'), o.createElement('p', {
  69965.                 className: 'text-gray'
  69966.               }, 'Your question not answered here?', ' ', o.createElement('a', {
  69967.                 href: 'mailto:publisher-success@disqus.com'
  69968.               }, 'Contact our support team'), ' for help.')), o.createElement('div', {
  69969.                 className: 'settings__content'
  69970.               }, o.createElement('ul', {
  69971.                 className: 'subscriptions-faq'
  69972.               }, e.map(function (e, t) {
  69973.                 return o.createElement(i, {
  69974.                   key: t,
  69975.                   question: e.question,
  69976.                   answer: e.answer,
  69977.                   expanded: t === n.state.expandedIndex,
  69978.                   onToggleExpanded: function () {
  69979.                     n.setState({
  69980.                       expandedIndex: n.state.expandedIndex === t ? - 1 : t
  69981.                     })
  69982.                   }
  69983.                 })
  69984.               })), o.createElement('a', {
  69985.                 className: 'button button-medium button-fill--brand marketing-button button-padding-wider spacing-top',
  69986.                 href: 'https://help.disqus.com/customer/en/portal/articles/2744736-subscription-payments-faq'
  69987.               }, 'Read All FAQs')))
  69988.             }
  69989.           }
  69990.         ]) && s(e.prototype, t),
  69991.         n && s(e, n),
  69992.         r
  69993.       }();
  69994.       return t.displayName = 'FAQs',
  69995.       t.propTypes = {
  69996.         newSubscriptionFlow: e.bool
  69997.       },
  69998.       t
  69999.     }.apply(t, n)) || (e.exports = n)
  70000.   },
  70001.   520: function (e, t, n) {
  70002.     var n = [
  70003.       n(37),
  70004.       n(7),
  70005.       n(34)
  70006.     ],
  70007.     n = function (d, t, m) {
  70008.       'use strict';
  70009.       function n(e) {
  70010.         for (var n = m.isFeatureActive('embed_refresh', {
  70011.           forum: e
  70012.         }), t = n && m.isFeatureActive('embed_refresh_v2', {
  70013.           forum: e
  70014.         }), a = d('#reactions').width(), r = d('.reaction-item').map(function (e, t) {
  70015.           return n ? Math.ceil(d(t) [0].getBoundingClientRect().width) : d(t).width()
  70016.         }).get(), o = 0, i = [
  70017.         ]; !s && o < d('.reaction-item').length; ) for (var s = !0, l = Math.ceil(r.length / (o += 1)), i = [
  70018.         ], c = 0; c < o; c++) {
  70019.           var u = r.slice(l * c, l * (c + 1)),
  70020.           p = 24 * (u.length - 1),
  70021.           p = u.reduce(function (e, t) {
  70022.             return e + t
  70023.           }, 0) + (n && !t ? p : 0);
  70024.           if (a <= p) {
  70025.             s = !1;
  70026.             break
  70027.           }
  70028.           i.push(p)
  70029.         }
  70030.         n && d('.reaction-tooltip').each(function (e, t) {
  70031.           16 < d(t).height() && (t.style.top = '-68px')
  70032.         }),
  70033.         d('.reaction-items__container').width(Math.max.apply(null, i) + 1)
  70034.       }
  70035.       function a(e) {
  70036.         var t = d('.reaction-items').width();
  70037.         t !== e._lastReactionsWidth && (e._lastReactionsWidth = t, n(e.forum))
  70038.       }
  70039.       return {
  70040.         attachReactionsListener: function (e) {
  70041.           e._lastReactionsWidth = d('.reaction-items').width();
  70042.           e._reactionsResizeListener = t.debounce(t.partial(a, e), 200),
  70043.           d(window).resize(e._reactionsResizeListener)
  70044.         },
  70045.         formatReactionsItems: n,
  70046.         detachReactionsListener: function (e) {
  70047.           e._reactionsResizeListener && d(window).off('resize', e._reactionsResizeListener)
  70048.         }
  70049.       }
  70050.     }.apply(t, n);
  70051.     void 0 === n || (e.exports = n)
  70052.   },
  70053.   521: function (e, t, n) {
  70054.     'use strict';
  70055.     var n = [
  70056.       n(25),
  70057.       n(61),
  70058.       n(522),
  70059.       n(54),
  70060.       n(34)
  70061.     ],
  70062.     n = function (p, d, m, f, h) {
  70063.       return function (e) {
  70064.         var t = e.reactionsList,
  70065.         n = e.prompt,
  70066.         a = e.onSubmitReaction,
  70067.         r = e.error,
  70068.         o = e.readonly,
  70069.         i = e.userCanModerate,
  70070.         s = e.forum,
  70071.         l = h.isFeatureActive('embed_refresh', {
  70072.           forum: s
  70073.         }),
  70074.         c = l && h.isFeatureActive('embed_refresh_v2', {
  70075.           forum: s
  70076.         }),
  70077.         u = l ? 'reactions-refresh' : '',
  70078.         e = t.reduce(function (e, t) {
  70079.           return e + ('number' == typeof t.votes ? t.votes : 0)
  70080.         }, 0),
  70081.         s = t.some(function (e) {
  70082.           return e.isSelected
  70083.         });
  70084.         return p.createElement('div', {
  70085.           id: 'reactions',
  70086.           className: u
  70087.         }, p.createElement('div', {
  70088.           className: 'text-bold align align--center spacing-bottom-small prompt'
  70089.         }, n && n.trim() || f.DEFAULT_PROMPT), p.createElement('div', {
  70090.           className: 'align align--center spacing-bottom'
  70091.         }, 1 === e ? d.gettext('1 Response') : d.gettext('%(voteCount)s Responses', {
  70092.           voteCount: e
  70093.         })), p.createElement('div', {
  70094.           className: [
  70095.             'reaction-items',
  70096.             o ? 'readonly' : '',
  70097.             s ? 'has-selection' : '',
  70098.             i || s || o ? 'counts-visible' : ''
  70099.           ].join(' ').trim()
  70100.         }, p.createElement(m, {
  70101.           reactionsList: t,
  70102.           onSubmitReaction: a,
  70103.           showVoteCount: i || s || o,
  70104.           readonly: o,
  70105.           isRefreshEnabled: l,
  70106.           isRefreshV2Enabled: c
  70107.         })), p.createElement('div', {
  70108.           className: 'err text-semibold'
  70109.         }, r || ''))
  70110.       }
  70111.     }.apply(t, n);
  70112.     void 0 === n || (e.exports = n)
  70113.   },
  70114.   522: function (e, t, n) {
  70115.     'use strict';
  70116.     function o(t, e) {
  70117.       var n,
  70118.       a = Object.keys(t);
  70119.       return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function (e) {
  70120.         return Object.getOwnPropertyDescriptor(t, e).enumerable
  70121.       })), a.push.apply(a, n)),
  70122.       a
  70123.     }
  70124.     function g(a) {
  70125.       for (var e = 1; e < arguments.length; e++) {
  70126.         var r = null != arguments[e] ? arguments[e] : {
  70127.         };
  70128.         e % 2 ? o(Object(r), !0).forEach(function (e) {
  70129.           var t,
  70130.           n;
  70131.           n = r[t = e],
  70132.           t in (e = a) ? Object.defineProperty(e, t, {
  70133.             value: n,
  70134.             enumerable: !0,
  70135.             configurable: !0,
  70136.             writable: !0
  70137.           }) : e[t] = n
  70138.         }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(a, Object.getOwnPropertyDescriptors(r)) : o(Object(r)).forEach(function (e) {
  70139.           Object.defineProperty(a, e, Object.getOwnPropertyDescriptor(r, e))
  70140.         })
  70141.       }
  70142.       return a
  70143.     }
  70144.     n = [
  70145.       n(25),
  70146.       n(54)
  70147.     ],
  70148.     void 0 === (n = function (h, r) {
  70149.       return function (e) {
  70150.         function o(e, t) {
  70151.           n && !i && n(e, t)
  70152.         }
  70153.         var n = e.onSubmitReaction,
  70154.         t = e.showVoteCount,
  70155.         i = e.readonly,
  70156.         s = e.isRefreshEnabled,
  70157.         l = e.isRefreshV2Enabled,
  70158.         a = s ? 'reaction-items__container--refresh' : '',
  70159.         c = s ? 'reaction-item reaction-item--refresh' : 'reaction-item align align--column align--middle spacing-bottom-narrow',
  70160.         u = s ? 'reaction-item__button reaction-item__button--refresh' : 'align align--middle align--column reaction-item__button',
  70161.         p = s ? 'reaction-item__votes reaction-item__votes--refresh' : 'reaction-item__votes',
  70162.         d = s ? 'reaction-item__votes-wrapper reaction-item__votes-wrapper--refresh' : 'reaction-item__votes-wrapper',
  70163.         m = s ? 'reaction-item__image-wrapper reaction-item__image-wrapper--refresh' : 'reaction-item__image-wrapper',
  70164.         f = s ? 'reaction-item__image reaction-item__image--refresh' : 'reaction-item__image',
  70165.         e = e.reactionsList.map(function (e) {
  70166.           if (!e.imageUrl) return e;
  70167.           var t = e.imageUrl.split('/'),
  70168.           n = r.DEFAULT_REACTIONS.filter(function (e) {
  70169.             e = e.imageUrl.split('/');
  70170.             return e[e.length - 1].split('-') [0].split('.') [0] === t[t.length - 1].split('-') [0].split('.') [0]
  70171.           }),
  70172.           n = (n.length ? n[0] : e).imageUrl;
  70173.           return g(g({
  70174.           }, e), {
  70175.           }, {
  70176.             imageUrl: n
  70177.           })
  70178.         });
  70179.         return h.createElement('div', {
  70180.           className: 'align align--center align--wrap reaction-items__container '.concat(a)
  70181.         }, e.map(function (a, r) {
  70182.           return h.createElement('div', {
  70183.             key: r,
  70184.             className: [
  70185.               c,
  70186.               n ? 'reaction-item__enabled' : 'reaction-item__disabled',
  70187.               a.isSelected ? 'reaction-item__selected' : ''
  70188.             ].join(' ').trim()
  70189.           }, h.createElement('div', {
  70190.             className: u,
  70191.             tabIndex: i ? '-1' : '0',
  70192.             onKeyPress: function (e) {
  70193.               var t,
  70194.               n;
  70195.               t = r,
  70196.               n = a,
  70197.               13 === e.keyCode && o(t, n)
  70198.             },
  70199.             onClick: function () {
  70200.               return o(r, a)
  70201.             }
  70202.           }, h.createElement('div', {
  70203.             className: m
  70204.           }, a.imageUrl ? h.createElement('img', {
  70205.             className: f,
  70206.             src: a.imageUrl,
  70207.             title: a.text || 'reaction '.concat(r),
  70208.             alt: a.text || 'reaction '.concat(r)
  70209.           }) : null, !l && t ? h.createElement('div', {
  70210.             className: d
  70211.           }, h.createElement('div', {
  70212.             className: p
  70213.           }, void 0 !== a.votes && t ? a.votes || 0 : ' ')) : null), l ? h.createElement('div', {
  70214.             className: 'reaction-vote'
  70215.           }, t ? h.createElement('div', {
  70216.             className: d
  70217.           }, h.createElement('div', {
  70218.             className: p
  70219.           }, void 0 !== a.votes && t ? function (e) {
  70220.             if (999 < e) {
  70221.               var t = '' + e;
  70222.               return e < 9999 ? ''.concat(t[0], '.').concat(t[1], 'k') : e < 99999 ? ''.concat(t.slice(0, 2), '.').concat(t[2], 'k') : e < 999999 ? ''.concat(t.slice(0, 3), '.').concat(t[3], 'k') : ''.concat(t[0], '.').concat(t[1], 'm')
  70223.             }
  70224.             return e
  70225.           }(a.votes) || 0 : ' ')) : null) : null, (e = a, (!s || l) && e.text && e.text.trim() ? h.createElement('div', {
  70226.             className: 'reaction-item__text'
  70227.           }, a.text) : null)), s && !l ? h.createElement('div', {
  70228.             className: 'reaction-tooltip'
  70229.           }, h.createElement('span', {
  70230.             className: 'reaction-tooltip__text'
  70231.           }, a.text), h.createElement('div', {
  70232.             className: 'reaction-tooltip__triangle'
  70233.           }, h.createElement('div', {
  70234.             className: 'reaction-tooltip__inner-triangle'
  70235.           }))) : null);
  70236.           var e
  70237.         }))
  70238.       }
  70239.     }.apply(t, n)) || (e.exports = n)
  70240.   },
  70241.   523: function (e, t, n) {
  70242.     'use strict';
  70243.     var n = [
  70244.       n(25),
  70245.       n(177)
  70246.     ],
  70247.     n = function (o, i) {
  70248.       function s(e) {
  70249.         if (!e || !~e.indexOf(':')) return {
  70250.         };
  70251.         var n = {
  70252.         };
  70253.         return e.split(';').forEach(function (e) {
  70254.           var t = e.split(':').map(function (e) {
  70255.             return e.trim()
  70256.           });
  70257.           0 < t[0].indexOf('-') && (e = t[0].split('-'), t[0] = e[0] + (e[1][0] || '').toUpperCase() + e[1].slice(1)),
  70258.           n[t.splice(0, 1) [0]] = t.join(':')
  70259.         }),
  70260.         n
  70261.       }
  70262.       function l(e, t) {
  70263.         return e && e.replace('{postCount}', t.toLocaleString())
  70264.       }
  70265.       return function (e) {
  70266.         var t = e.postCount,
  70267.         n = e.buttonText,
  70268.         a = e.buttonCSS,
  70269.         r = e.titleText;
  70270.         return o.createElement('div', {
  70271.           id: 'behind-click__container'
  70272.         }, e.titleEnabled ? o.createElement('h3', {
  70273.           id: 'behind-click__title',
  70274.           style: s(e.titleCSS)
  70275.         }, l(r, t)) : null, o.createElement('button', {
  70276.           id: 'thread-visibility__button',
  70277.           className: 'btn alert',
  70278.           'data-action': 'toggle-thread-visibility',
  70279.           style: s(a)
  70280.         }, l(n || i.DEFAULT_BUTTON_TEXT, t)))
  70281.       }
  70282.     }.apply(t, n);
  70283.     void 0 === n || (e.exports = n)
  70284.   },
  70285.   524: function (e, t, n) {
  70286.     var n = [
  70287.       n(7),
  70288.       n(39)
  70289.     ],
  70290.     n = function (t, n) {
  70291.       'use strict';
  70292.       function e(e, t) {
  70293.         this.namespace = e,
  70294.         this.ttl = t || 300,
  70295.         this.cache = this.getFromStorage()
  70296.       }
  70297.       return t.extend(e.prototype, {
  70298.         getItem: function (e) {
  70299.           var t = this.cache[e];
  70300.           if (t) {
  70301.             if (!this.isExpired(t)) return t.value;
  70302.             delete this.cache[e]
  70303.           }
  70304.         },
  70305.         getCurrentTime: function () {
  70306.           return Math.floor((new Date).getTime() / 1000)
  70307.         },
  70308.         persist: function () {
  70309.           n.set(this.namespace, this.cache)
  70310.         },
  70311.         getFromStorage: function () {
  70312.           var e = n.get(this.namespace);
  70313.           return t.isObject(e) ? e : {
  70314.           }
  70315.         },
  70316.         isExpired: function (e) {
  70317.           return this.getCurrentTime() > e.expiry
  70318.         },
  70319.         setItem: function (e, t) {
  70320.           this.cache[e] = {
  70321.             value: t,
  70322.             expiry: this.getCurrentTime() + this.ttl
  70323.           },
  70324.           this.persist()
  70325.         },
  70326.         removeItem: function (e) {
  70327.           delete this.cache[e],
  70328.           this.persist()
  70329.         },
  70330.         getAll: function () {
  70331.           var e = t.chain(this.cache).map(function (e, t) {
  70332.             return this.getItem(t)
  70333.           }, this).compact().value();
  70334.           return this.persist(),
  70335.           e
  70336.         }
  70337.       }),
  70338.       e
  70339.     }.apply(t, n);
  70340.     void 0 === n || (e.exports = n)
  70341.   },
  70342.   525: function (e, t, n) {
  70343.     var a = function (e) {
  70344.       return (e || 0).toLocaleString(void 0, {
  70345.         style: 'percent',
  70346.         maximumFractionDigits: 2
  70347.       })
  70348.     };
  70349.     e.exports = a
  70350.   },
  70351.   54: function (e, t, n) {
  70352.     var n = [
  70353.       t,
  70354.       n(61)
  70355.     ],
  70356.     n = function (e, t) {
  70357.       'use strict';
  70358.       var n = t.get,
  70359.       t = '//c.disquscdn.com/next/current/publisher-admin/assets/img/emoji/';
  70360.       e.DEFAULT_REACTIONS = [
  70361.         {
  70362.           text: 'Upvote',
  70363.           imageUrl: t + 'upvote-512x512.png'
  70364.         },
  70365.         {
  70366.           text: 'Funny',
  70367.           imageUrl: t + 'funny-512x512.png'
  70368.         },
  70369.         {
  70370.           text: 'Love',
  70371.           imageUrl: t + 'love-512x512.png'
  70372.         },
  70373.         {
  70374.           text: 'Surprised',
  70375.           imageUrl: t + 'surprised-512x512.png'
  70376.         },
  70377.         {
  70378.           text: 'Angry',
  70379.           imageUrl: t + 'angry-512x512.png'
  70380.         },
  70381.         {
  70382.           text: 'Sad',
  70383.           imageUrl: t + 'sad-512x512.png'
  70384.         }
  70385.       ],
  70386.       e.DEFAULT_PROMPT = n('What do you think?'),
  70387.       e.DEFAULT_DESCRIPTIONS = [
  70388.         'Upvote',
  70389.         'Funny',
  70390.         'Love',
  70391.         'Surprised',
  70392.         'Angry',
  70393.         'Sad'
  70394.       ],
  70395.       e.UPLOAD_IMAGE_ERROR_MESSAGES = {
  70396.         'invalid-image-file': 'Unfortunately your image upload failed. Please verify that the file is valid and in a supported format (JPEG, PNG, or GIF).',
  70397.         'invalid-content-type': 'Unfortunately your image upload failed. Please verify that the file is in a supported format (JPEG, PNG, or GIF).',
  70398.         'file-too-large': 'Unfortunately your image upload failed. Please verify that your image is under 5MB.',
  70399.         'not-authenticated': 'You must be logged in to upload an image.',
  70400.       default:
  70401.         'Unfortunately your image upload failed. Please verify that your image is in a supported format (JPEG, PNG, or GIF) and under 5MB. If you continue seeing this error, please try again later.'
  70402.       }
  70403.     }.apply(t, n);
  70404.     void 0 === n || (e.exports = n)
  70405.   },
  70406.   59: function (e, t, n) {
  70407.     t = function (e) {
  70408.       'use strict';
  70409.       e.ACTION_TYPES = {
  70410.         AWARD: 'award',
  70411.         REMOVE: 'remove'
  70412.       },
  70413.       e.BADGES_CRITERIA = {
  70414.         MANUAL: 'MANUAL',
  70415.         COMMENTS: 'COMMENTS',
  70416.         FEATURED_COMMENTS: 'FEATURED_COMMENTS',
  70417.         COMMENT_UPVOTES: 'COMMENT_UPVOTES'
  70418.       },
  70419.       e.MAX_BADGE_COUNT = 8
  70420.     }.apply(t, [
  70421.       t
  70422.     ]);
  70423.     void 0 === t || (e.exports = t)
  70424.   },
  70425.   60: function (e, t, n) {
  70426.     var n = [
  70427.       n(37),
  70428.       n(7),
  70429.       n(35),
  70430.       n(268),
  70431.       n(269)
  70432.     ],
  70433.     n = function (n, a, e, t, r) {
  70434.       'use strict';
  70435.       var o,
  70436.       i = window.document,
  70437.       s = /^[a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
  70438.       l = RegExp('([^@.]|^)\\b(?:\\w[\\w-]*:/{0,3}(?:(?:\\w+:)?\\w+@)?)?([\\w-]+\\.)+(?:' + (e.TLDS || 'zw|zuerich|zone|zm|zip|za|yt|youtube|yokohama|yoga|yodobashi|ye|yandex|yachts|xyz|xxx|xin|xerox|wtf|wtc|ws|world|works|work|wme|win|williamhill|wiki|wien|whoswho|wf|weir|wedding|wed|website|webcam|watch|wang|wales|vu|voyage|voto|voting|vote|vodka|vn|vlaanderen|vision|villas|video|viajes|vi|vg|vet|versicherung|ventures|vegas|ve|vc|vacations|va|uz|uy|us|uol|uno|university|uk|ug|ua|tz|tw|tv|tui|tt|trust|travel|training|trading|trade|tr|toys|town|tours|toshiba|toray|top|tools|tokyo|today|to|tn|tm|tl|tk|tj|tirol|tires|tips|tienda|tickets|theater|th|tg|tf|tennis|temasek|tel|technology|tech|team|td|tc|taxi|tax|tattoo|tatar|taipei|sz|systems|sydney|sy|sx|swiss|sv|suzuki|surgery|surf|support|supply|supplies|sucks|su|style|study|st|sr|spreadbetting|spiegel|space|soy|sony|solutions|solar|sohu|software|social|so|sn|sm|sl|sky|sk|sj|site|singles|si|shriram|show|shoes|shiksha|sh|sg|sexy|sex|sew|services|sener|seat|se|sd|scot|science|schwarz|schule|school|scholarships|schmidt|scb|sca|sc|sb|saxo|sarl|sap|samsung|sale|saarland|sa|ryukyu|rw|run|ruhr|ru|rsvp|rs|rodeo|rocks|ro|rip|rio|rich|reviews|review|restaurant|rest|republican|report|repair|rentals|rent|ren|reit|reisen|reise|rehab|redstone|red|recipes|realtor|re|racing|quebec|qpon|qa|py|pw|pub|pt|ps|property|properties|prof|productions|prod|pro|press|praxi|pr|post|porn|poker|pohl|pn|pm|plus|plumbing|place|pl|pk|pizza|pink|pictures|pictet|pics|piaget|physio|photos|photography|photo|philips|pharmacy|ph|pg|pf|pe|party|parts|partners|paris|panerai|page|pa|ovh|otsuka|osaka|organic|org|oracle|ooo|online|onl|ong|one|om|okinawa|nz|nyc|nu|ntt|nrw|nra|nr|np|no|nl|nissan|ninja|nico|ni|nhk|ngo|ng|nf|nexus|news|new|neustar|network|net|nec|ne|nc|navy|name|nagoya|nadex|na|mz|my|mx|mw|mv|museum|mu|mtpc|mtn|mt|ms|mr|mq|mp|movie|mov|motorcycles|moscow|mortgage|mormon|money|monash|moe|moda|mobi|mo|mn|mma|mm|ml|mk|mini|mil|miami|mh|mg|menu|memorial|meme|melbourne|meet|media|me|md|mc|marriott|markets|marketing|market|mango|management|maison|maif|madrid|ma|ly|lv|luxury|luxe|lu|ltda|lt|ls|lr|love|lotto|lotte|london|lol|loans|loan|lk|link|limo|limited|lighting|life|lidl|liaison|li|lgbt|legal|leclerc|lease|lds|lc|lb|lawyer|latrobe|lat|land|lacaixa|la|kz|kyoto|ky|kw|kred|krd|kr|kp|komatsu|koeln|kn|km|kiwi|kitchen|kim|ki|kh|kg|ke|kddi|kaufen|juegos|jp|joburg|jobs|jo|jm|jewelry|jetzt|je|jcb|java|iwc|it|is|irish|ir|iq|io|investments|international|int|insure|institute|ink|ing|info|infiniti|industries|in|immobilien|immo|im|il|ifm|ie|id|icu|ibm|hu|ht|hr|how|house|hosting|host|horse|honda|homes|holiday|holdings|hockey|hn|hm|hk|hiv|hitachi|hiphop|hermes|here|help|healthcare|haus|hangout|hamburg|gy|gw|guru|guitars|guide|guge|gu|gt|gs|gripe|green|gratis|graphics|gr|gq|gp|gov|gop|google|goog|goo|golf|goldpoint|gold|gn|gmx|gmo|gmail|gm|globo|global|gle|glass|gl|gives|gifts|gift|gi|gh|ggee|gg|gf|gent|ge|gdn|gd|gbiz|gb|garden|gallery|gal|ga|futbol|furniture|fund|frogans|frl|fr|foundation|forsale|forex|football|foo|fo|fm|fly|flsmidth|flowers|florist|flights|fk|fj|fitness|fit|fishing|fish|firmdale|financial|finance|film|fi|feedback|fashion|farm|fans|fan|faith|fail|express|exposed|expert|exchange|everbank|events|eus|eurovision|eu|et|estate|esq|es|erni|er|equipment|epson|enterprises|engineering|engineer|energy|emerck|email|eg|ee|education|edu|ec|eat|dz|dvag|durban|download|doosan|domains|doha|dog|docs|do|dnp|dm|dk|dj|discount|directory|direct|digital|diet|diamonds|dev|design|desi|dentist|dental|democrat|delivery|degree|deals|de|dclk|day|datsun|dating|date|dance|dad|dabur|cz|cyou|cymru|cy|cx|cw|cv|cuisinella|cu|cruises|crs|cricket|creditcard|credit|cr|courses|country|coop|cool|cooking|contractors|consulting|construction|condos|computer|company|community|com|cologne|college|coffee|codes|coach|co|cn|cm|club|clothing|clinic|click|cleaning|claims|cl|ck|city|citic|ci|church|chrome|christmas|chloe|cheap|chat|channel|ch|cg|cfd|cfa|cf|cern|ceo|center|cd|cc|cbn|catering|cat|casino|cash|casa|cartier|cars|careers|career|care|cards|caravan|capital|capetown|canon|cancerresearch|camp|camera|cal|cafe|cab|ca|bzh|bz|by|bw|bv|buzz|business|builders|build|budapest|bt|bs|brussels|brother|broker|bridgestone|br|boutique|boo|bond|boats|bo|bnpparibas|bn|bmw|bm|blue|bloomberg|blackfriday|black|bj|biz|bio|bingo|bike|bid|bi|bh|bg|bf|best|berlin|beer|be|bd|bbc|bb|bayern|bauhaus|bargains|barclays|barclaycard|bar|bank|band|ba|az|axa|ax|aw|autos|auto|audio|auction|au|attorney|at|associates|asia|as|arpa|army|archi|ar|aquarelle|aq|apartments|ao|android|an|amsterdam|am|alsace|allfinanz|al|airforce|aig|ai|agency|ag|afl|af|aero|ae|adult|ads|ad|actor|active|accountants|accountant|accenture|academy|ac|abogado|abbott|abb') + ')(?!\\.\\w)\\b(?::\\d+)?(?:[/?][^\\s\\{\\}\\|\\\\\\^\\[\\]`<>"\\x80-\\xFF\\x00-\\x1F\\x7F]*)?', 'g'),
  70439.       c = /^[\w-]+:\/{0,3}/,
  70440.       u = /([.,]+)$/g,
  70441.       p = /[\u0021-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u007E\u00A1-\u00BF\u2010-\u2027\u2030-\u205E\u2300-\u23FF\u2E00-\u2E7F\u3001-\u303F\uFE10-\uFE19\uFE30-\uFE4F\uFE50-\uFE6B\uFF01-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFF60\uFF5F-\uFF64]+$/,
  70442.       d = (o = i.createElement('fakeelement'), function (e, t) {
  70443.         return void 0 !== o.style[t]
  70444.       }),
  70445.       e = a.find({
  70446.         transition: 'transitionend',
  70447.         OTransition: 'otransitionend',
  70448.         MozTransition: 'transitionend',
  70449.         WebkitTransition: 'webkitTransitionEnd'
  70450.       }, d) || null,
  70451.       d = a.find({
  70452.         animation: 'animationend',
  70453.         OAnimation: 'oAnimationEnd',
  70454.         MozAnimation: 'animationend',
  70455.         WebkitAnimation: 'webkitAnimationEnd'
  70456.       }, d) || null;
  70457.       function m(t) {
  70458.         return function (e) {
  70459.           return e && e.preventDefault && e.preventDefault(),
  70460.           t.apply(this, arguments)
  70461.         }
  70462.       }
  70463.       function f(t) {
  70464.         return function (e) {
  70465.           return e && e.stopPropagation && e.stopPropagation(),
  70466.           t.apply(this, arguments)
  70467.         }
  70468.       }
  70469.       var h,
  70470.       g;
  70471.       return {
  70472.         validateEmail: function (e) {
  70473.           return s.test(e)
  70474.         },
  70475.         isUrl: function (e) {
  70476.           return !!e.match(l)
  70477.         },
  70478.         bleachFindUrls: function (e) {
  70479.           var t,
  70480.           n,
  70481.           a = [
  70482.           ];
  70483.           if (!e) return a;
  70484.           for (; t = l.exec(e); ) {
  70485.             n = (n = t[0]).slice((o = t[1]).length),
  70486.             u.lastIndex = 0,
  70487.             (r = u.exec(n)) && (n = n.slice(0, n.length - r[0].length));
  70488.             var r = c.test(n) ? n : 'http://' + n,
  70489.             o = t.index + o.length;
  70490.             a.push({
  70491.               text: n,
  70492.               url: r,
  70493.               index: o,
  70494.               endIndex: o + n.length
  70495.             })
  70496.           }
  70497.           return a
  70498.         },
  70499.         niceTruncate: function (e, t) {
  70500.           if (e.length <= t) return e;
  70501.           var n = e = e.slice(0, t - 1),
  70502.           t = /(^.*\S)\s/.exec(e),
  70503.           t = p.exec(e = t ? t[1] : e);
  70504.           return (e = (e = t ? e.slice(0, e.length - t[0].length) : e).length < 0.5 * n.length ? n : e) + '…'
  70505.         },
  70506.         transitionEndEvent: e,
  70507.         animationEndEvent: d,
  70508.         isMobileUserAgent: r,
  70509.         preventDefaultHandler: m,
  70510.         stopPropagationHandler: f,
  70511.         stopEventHandler: function (e) {
  70512.           return m(f(e))
  70513.         },
  70514.         getDomain: function (e) {
  70515.           if (!e) return '';
  70516.           e = 'http://' + e.replace(/^([a-z+.-]+:)?\/+/i, '');
  70517.           var t = i.createElement('a');
  70518.           return t.href = e,
  70519.           t.hostname.replace(/^www\d*\./i, '').toLowerCase()
  70520.         },
  70521.         serializeArgs: function (e) {
  70522.           var n = [
  70523.           ];
  70524.           return a.each(e, function (e, t) {
  70525.             void 0 !== e && n.push(t + (null === e ? '' : '=' + encodeURIComponent(e)))
  70526.           }),
  70527.           n.join('&')
  70528.         },
  70529.         serialize: function (e, t, n) {
  70530.           if (t && (~e.indexOf('?') ? '&' != (e[0 | e.length - 1] || '') && (e += '&') : e += '?', e += this.serializeArgs(t)), n) {
  70531.             var a = {
  70532.             };
  70533.             return a[(new Date).getTime()] = null,
  70534.             this.serialize(e, a)
  70535.           }
  70536.           return '&' == (e[0 | (a = e.length) - 1] || '') ? e.slice(0, a - 1) : e
  70537.         },
  70538.         openWindow: function (e, t, n) {
  70539.           return n ? a.extend(n, {
  70540.             location: 1,
  70541.             status: 1,
  70542.             resizable: 1,
  70543.             scrollbars: 1
  70544.           }) : n = {
  70545.           },
  70546.           n.width && n.height && a.defaults(n, {
  70547.             left: window.screen.width / 2 - n.width / 2,
  70548.             top: window.screen.height / 2 - n.height / 2
  70549.           }),
  70550.           n = a.map(n, function (e, t) {
  70551.             return t + '=' + e
  70552.           }).join(','),
  70553.           window.open(e, t, n)
  70554.         },
  70555.         insertWithWhitespace: function (e, t, n) {
  70556.           var a = e.substring(0, t = t < 0 ? 0 : t),
  70557.           t = e.substring(t);
  70558.           return a.length && !/\s$/.test(a) && (a += ' '),
  70559.           a + n + (t = !/^\s/.test(t) ? ' ' + t : t)
  70560.         },
  70561.         willOpenNewWindow: function (e, t) {
  70562.           return '_blank' === (t = t || n(e.currentTarget)).attr('target') || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey
  70563.         },
  70564.         clickShouldBeLogged: (h = {
  70565.         }, g = /#.*$/, function (e, t) {
  70566.           if (e.isDefaultPrevented()) return !1;
  70567.           if (!t.is('a')) return !1;
  70568.           if (!(t.attr('href') || '').replace(g, '')) return !1;
  70569.           (t = (e = t).attr('data-tid')) || (t = a.uniqueId(), e.attr('data-tid', t)),
  70570.           e = t,
  70571.           t = (new Date).getTime();
  70572.           return !(h[e] && t - h[e] < 500) && (h[e] = t, !0)
  70573.         }),
  70574.         deepClone: function (e) {
  70575.           return void 0 === e ? null : JSON.parse(JSON.stringify(e))
  70576.         },
  70577.         browser: t,
  70578.         getInitials: function (e) {
  70579.           return e.split(' ').slice(0, 2).map(function (e) {
  70580.             return (e[0] || '').toUpperCase()
  70581.           }).join('')
  70582.         },
  70583.         isDefaultAvatar: function (e) {
  70584.           var t = 'noavatar92.png';
  70585.           return (e = e || '').slice(e.length - 14) === t
  70586.         },
  70587.         copyToClipboard: function (e) {
  70588.           const t = window.document.createElement('textarea');
  70589.           t.value = e,
  70590.           t.setAttribute('readonly', ''),
  70591.           t.style.position = 'absolute',
  70592.           t.style.left = '-9999px',
  70593.           window.document.body.appendChild(t),
  70594.           t.select(),
  70595.           window.document.execCommand('copy'),
  70596.           t.remove()
  70597.         }
  70598.       }
  70599.     }.apply(t, n);
  70600.     void 0 === n || (e.exports = n)
  70601.   },
  70602.   61: function (e, t, n) {
  70603.     var n = [
  70604.       n(274),
  70605.       n(275)
  70606.     ],
  70607.     n = function (r, e) {
  70608.       'use strict';
  70609.       var o = {
  70610.         translations: e,
  70611.         get: function (e) {
  70612.           var t = o.translations[e];
  70613.           return void 0 === t ? e : t
  70614.         }
  70615.       };
  70616.       return o.interpolate = function (n, a) {
  70617.         return n.replace(/%\(\w+\)s/g, function (e) {
  70618.           return t = e.slice(2, - 2),
  70619.           e = '',
  70620.           t in a ? e = null != a[t] ? '' + a[t] : '' : r.error('Key `' + t + '` not found in context for: ', n),
  70621.           e;
  70622.           var t
  70623.         })
  70624.       },
  70625.       o.gettext = function (n, a) {
  70626.         return n = o.get(n),
  70627.         a = a || {
  70628.         },
  70629.         n.split(/(%\(\w+\)s)/g).map(function (e) {
  70630.           var t = e.match(/%\((\w+)\)s/);
  70631.           return t && (t[1] in a ? e = a[t[1]] : r.error('Key `' + t[1] + '` not found in context for: ' + n)),
  70632.           '' === e ? null : e
  70633.         })
  70634.       },
  70635.       o
  70636.     }.apply(t, n);
  70637.     void 0 === n || (e.exports = n)
  70638.   },
  70639.   66: function (e, t, n) {
  70640.     !function (e) {
  70641.       'use strict';
  70642.       var o = n(270);
  70643.       e.exports = function e(t, n, a) {
  70644.         if (n && (~t.indexOf('?') ? '&' != (t[0 | t.length - 1] || '') && (t += '&') : t += '?', t += o(n)), a) {
  70645.           var r = {
  70646.           };
  70647.           return r[(new Date).getTime()] = null,
  70648.           e(t, r)
  70649.         }
  70650.         r = t.length;
  70651.         return '&' == (t[0 | r - 1] || '') ? t.slice(0, r - 1) : t
  70652.       }
  70653.     }(e)
  70654.   },
  70655.   72: function (e, t, n) {
  70656.     'use strict';
  70657.     function r(e) {
  70658.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  70659.         return typeof e
  70660.       }
  70661.        : function (e) {
  70662.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  70663.       }) (e)
  70664.     }
  70665.     function s(e, t) {
  70666.       for (var n = 0; n < t.length; n++) {
  70667.         var a = t[n];
  70668.         a.enumerable = a.enumerable || !1,
  70669.         a.configurable = !0,
  70670.         'value' in a && (a.writable = !0),
  70671.         Object.defineProperty(e, a.key, a)
  70672.       }
  70673.     }
  70674.     function l(e, t) {
  70675.       return (l = Object.setPrototypeOf || function (e, t) {
  70676.         return e.__proto__ = t,
  70677.         e
  70678.       }) (e, t)
  70679.     }
  70680.     function c(n) {
  70681.       var a = function () {
  70682.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  70683.         if (Reflect.construct.sham) return !1;
  70684.         if ('function' == typeof Proxy) return !0;
  70685.         try {
  70686.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  70687.           ], function () {
  70688.           })),
  70689.           !0
  70690.         } catch (e) {
  70691.           return !1
  70692.         }
  70693.       }();
  70694.       return function () {
  70695.         var e,
  70696.         t = o(n);
  70697.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  70698.         t = this,
  70699.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? u(t) : e
  70700.       }
  70701.     }
  70702.     function u(e) {
  70703.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  70704.       return e
  70705.     }
  70706.     function o(e) {
  70707.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  70708.         return e.__proto__ || Object.getPrototypeOf(e)
  70709.       }) (e)
  70710.     }
  70711.     n = [
  70712.       n(25),
  70713.       n(26),
  70714.       n(279)
  70715.     ],
  70716.     void 0 === (n = function (o, e, i) {
  70717.       var t = function () {
  70718.         !function (e, t) {
  70719.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  70720.           e.prototype = Object.create(t && t.prototype, {
  70721.             constructor: {
  70722.               value: e,
  70723.               writable: !0,
  70724.               configurable: !0
  70725.             }
  70726.           }),
  70727.           t && l(e, t)
  70728.         }(r, o.Component);
  70729.         var e,
  70730.         t,
  70731.         n,
  70732.         a = c(r);
  70733.         function r(e) {
  70734.           return function (e, t) {
  70735.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  70736.           }(this, r),
  70737.           (e = a.call(this, e)).state = {
  70738.             isDropdownOpen: !1
  70739.           },
  70740.           e.openDropdown = e.openDropdown.bind(u(e)),
  70741.           e.closeDropdown = e.closeDropdown.bind(u(e)),
  70742.           e.handleListClick = e.handleListClick.bind(u(e)),
  70743.           e
  70744.         }
  70745.         return e = r,
  70746.         (t = [
  70747.           {
  70748.             key: 'openDropdown',
  70749.             value: function () {
  70750.               this.props.onOpen && this.props.onOpen(),
  70751.               this.setState({
  70752.                 isDropdownOpen: !0
  70753.               })
  70754.             }
  70755.           },
  70756.           {
  70757.             key: 'closeDropdown',
  70758.             value: function () {
  70759.               this.props.onClose && this.props.onClose(),
  70760.               this.setState({
  70761.                 isDropdownOpen: !1
  70762.               })
  70763.             }
  70764.           },
  70765.           {
  70766.             key: 'handleListClick',
  70767.             value: function () {
  70768.               this.props.autoClose && this.closeDropdown()
  70769.             }
  70770.           },
  70771.           {
  70772.             key: 'render',
  70773.             value: function () {
  70774.               return o.createElement(i, {
  70775.                 className: this.props.className,
  70776.                 dropdownClassName: this.props.dropdownClassName,
  70777.                 buttonChildren: this.props.buttonChildren,
  70778.                 onOpen: this.openDropdown,
  70779.                 onClose: this.closeDropdown,
  70780.                 isOpen: this.state.isDropdownOpen
  70781.               }, o.createElement('div', {
  70782.                 onClick: this.handleListClick
  70783.               }, this.props.children))
  70784.             }
  70785.           }
  70786.         ]) && s(e.prototype, t),
  70787.         n && s(e, n),
  70788.         r
  70789.       }();
  70790.       return t.displayName = 'Dropdown',
  70791.       t.propTypes = {
  70792.         className: e.string,
  70793.         dropdownClassName: e.string,
  70794.         children: e.node,
  70795.         buttonChildren: e.node,
  70796.         onOpen: e.func,
  70797.         onClose: e.func,
  70798.         autoClose: e.bool
  70799.       },
  70800.       t
  70801.     }.apply(t, n)) || (e.exports = n)
  70802.   },
  70803.   73: function (e, t, n) {
  70804.     'use strict';
  70805.     function r(e) {
  70806.       return (r = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (e) {
  70807.         return typeof e
  70808.       }
  70809.        : function (e) {
  70810.         return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e
  70811.       }) (e)
  70812.     }
  70813.     function i() {
  70814.       return (i = Object.assign || function (e) {
  70815.         for (var t = 1; t < arguments.length; t++) {
  70816.           var n,
  70817.           a = arguments[t];
  70818.           for (n in a) Object.prototype.hasOwnProperty.call(a, n) && (e[n] = a[n])
  70819.         }
  70820.         return e
  70821.       }).apply(this, arguments)
  70822.     }
  70823.     function s(e, t) {
  70824.       if (null == e) return {
  70825.       };
  70826.       var n,
  70827.       a = function (e, t) {
  70828.         if (null == e) return {
  70829.         };
  70830.         var n,
  70831.         a,
  70832.         r = {
  70833.         },
  70834.         o = Object.keys(e);
  70835.         for (a = 0; a < o.length; a++) ~t.indexOf(n = o[a]) || (r[n] = e[n]);
  70836.         return r
  70837.       }(e, t);
  70838.       if (Object.getOwnPropertySymbols) for (var r = Object.getOwnPropertySymbols(e), o = 0; o < r.length; o++) ~t.indexOf(n = r[o]) || Object.prototype.propertyIsEnumerable.call(e, n) && (a[n] = e[n]);
  70839.       return a
  70840.     }
  70841.     function l(e, t) {
  70842.       for (var n = 0; n < t.length; n++) {
  70843.         var a = t[n];
  70844.         a.enumerable = a.enumerable || !1,
  70845.         a.configurable = !0,
  70846.         'value' in a && (a.writable = !0),
  70847.         Object.defineProperty(e, a.key, a)
  70848.       }
  70849.     }
  70850.     function c(e, t) {
  70851.       return (c = Object.setPrototypeOf || function (e, t) {
  70852.         return e.__proto__ = t,
  70853.         e
  70854.       }) (e, t)
  70855.     }
  70856.     function u(n) {
  70857.       var a = function () {
  70858.         if ('undefined' == typeof Reflect || !Reflect.construct) return !1;
  70859.         if (Reflect.construct.sham) return !1;
  70860.         if ('function' == typeof Proxy) return !0;
  70861.         try {
  70862.           return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [
  70863.           ], function () {
  70864.           })),
  70865.           !0
  70866.         } catch (e) {
  70867.           return !1
  70868.         }
  70869.       }();
  70870.       return function () {
  70871.         var e,
  70872.         t = o(n);
  70873.         return e = a ? (e = o(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments),
  70874.         t = this,
  70875.         !(e = e) || 'object' !== r(e) && 'function' != typeof e ? p(t) : e
  70876.       }
  70877.     }
  70878.     function p(e) {
  70879.       if (void 0 === e) throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');
  70880.       return e
  70881.     }
  70882.     function o(e) {
  70883.       return (o = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {
  70884.         return e.__proto__ || Object.getPrototypeOf(e)
  70885.       }) (e)
  70886.     }
  70887.     n = [
  70888.       n(25),
  70889.       n(26)
  70890.     ],
  70891.     void 0 === (n = function (o, e) {
  70892.       var t = function () {
  70893.         !function (e, t) {
  70894.           if ('function' != typeof t && null !== t) throw new TypeError('Super expression must either be null or a function');
  70895.           e.prototype = Object.create(t && t.prototype, {
  70896.             constructor: {
  70897.               value: e,
  70898.               writable: !0,
  70899.               configurable: !0
  70900.             }
  70901.           }),
  70902.           t && c(e, t)
  70903.         }(r, o.Component);
  70904.         var e,
  70905.         t,
  70906.         n,
  70907.         a = u(r);
  70908.         function r(e) {
  70909.           return function (e, t) {
  70910.             if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
  70911.           }(this, r),
  70912.           (e = a.call(this, e)).addListeners = e.addListeners.bind(p(e)),
  70913.           e.removeListeners = e.removeListeners.bind(p(e)),
  70914.           e.handleClick = e.handleClick.bind(p(e)),
  70915.           e
  70916.         }
  70917.         return e = r,
  70918.         (t = [
  70919.           {
  70920.             key: 'componentDidMount',
  70921.             value: function () {
  70922.               this.props.active && this.addListeners()
  70923.             }
  70924.           },
  70925.           {
  70926.             key: 'componentWillUnmount',
  70927.             value: function () {
  70928.               this.removeListeners()
  70929.             }
  70930.           },
  70931.           {
  70932.             key: 'componentWillReceiveProps',
  70933.             value: function (e) {
  70934.               this.props.active !== e.active && (e.active ? this.addListeners() : this.removeListeners())
  70935.             }
  70936.           },
  70937.           {
  70938.             key: 'addListeners',
  70939.             value: function () {
  70940.               window.document.addEventListener('click', this.handleClick),
  70941.               window.document.addEventListener('touchstart', this.handleClick)
  70942.             }
  70943.           },
  70944.           {
  70945.             key: 'removeListeners',
  70946.             value: function () {
  70947.               window.document.removeEventListener('click', this.handleClick),
  70948.               window.document.removeEventListener('touchstart', this.handleClick)
  70949.             }
  70950.           },
  70951.           {
  70952.             key: 'handleClick',
  70953.             value: function (e) {
  70954.               this.container && !this.container.contains(e.target) && this.props.onOutsideClick(e)
  70955.             }
  70956.           },
  70957.           {
  70958.             key: 'render',
  70959.             value: function () {
  70960.               var t = this,
  70961.               e = this.props,
  70962.               n = e.children,
  70963.               e = s(e, [
  70964.                 'children',
  70965.                 'onOutsideClick',
  70966.                 'active'
  70967.               ]);
  70968.               return o.createElement('div', i({
  70969.               }, e, {
  70970.                 ref: function (e) {
  70971.                   t.container = e
  70972.                 }
  70973.               }), n)
  70974.             }
  70975.           }
  70976.         ]) && l(e.prototype, t),
  70977.         n && l(e, n),
  70978.         r
  70979.       }();
  70980.       return t.displayName = 'OutsideClick',
  70981.       t.propTypes = {
  70982.         active: e.bool,
  70983.         onOutsideClick: e.func.isRequired,
  70984.         children: e.node.isRequired
  70985.       },
  70986.       t.defaultProps = {
  70987.         active: !0
  70988.       },
  70989.       t
  70990.     }.apply(t, n)) || (e.exports = n)
  70991.   },
  70992.   92: function (e, t, n) {
  70993.     t = function () {
  70994.       'use strict';
  70995.       var e = 'https://',
  70996.       t = window.marketing_config && window.marketing_config.disqus_domain || 'disqus.com';
  70997.       return {
  70998.         accountSettings: e.concat(t, '/home/settings/account/'),
  70999.         accountSettingsMobile: e.concat(t, '/home/settings/'),
  71000.         admin: e.concat(t, '/admin/'),
  71001.         api: e.concat(t, '/api/docs/'),
  71002.         blog: 'https://blog.disqus.com/',
  71003.         brand: e.concat(t, '/brand/'),
  71004.         caseStudies: 'https://about.disqus.com/case-studies',
  71005.         channels: 'https://www.disqus.com/channels/',
  71006.         companyFacebook: 'https://www.facebook.com/disqus/',
  71007.         companyTwitter: 'https://twitter.com/disqus',
  71008.         companyInstagram: 'https://www.instagram.com/disqus',
  71009.         companyLinkedIn: 'https://www.linkedin.com/company/disqus',
  71010.         contactSupport: 'https://help.disqus.com',
  71011.         cookies: 'https://help.disqus.com/en/articles/1944034-cookies-and-data-recipients',
  71012.         advertiseOnDisqus: 'https://disqusads.com',
  71013.         data: 'https://data.disqus.com',
  71014.         disqus101: 'https://about.disqus.com/disqus-101',
  71015.         disqusContact: 'https://about.disqus.com/contact',
  71016.         disqusPro: 'https://disqus.com/landing/disqus-pro',
  71017.         disqusBusiness: 'https://disqus.com/landing/disqus-business',
  71018.         disqusBusinessContact: 'https://about.disqus.com/disqus-for-business-contact-form',
  71019.         disqusPollsAdSupportedContact: 'https://about.disqus.com/apply-for-ad-supported-polls',
  71020.         disqusPollsBusinessContact: 'https://about.disqus.com/disqus-polls-for-business-contact',
  71021.         disqusZetaSSP: 'https://disqus.com/landing/zeta-ssp',
  71022.         discussDisqus: 'https://disqus.com/channel/discussdisqus/',
  71023.         doNotSell: 'https://disqus.com/data-sharing-settings/',
  71024.         help: 'https://help.disqus.com/',
  71025.         home: e.concat(t, '/home/'),
  71026.         inbox: e.concat(t, '/home/notifications/'),
  71027.         installEngage: e.concat(t, '/admin/settings/install/'),
  71028.         learn: {
  71029.           howDoesDisqusWork: 'https://help.disqus.com/en/articles/1717050-how-does-disqus-work',
  71030.           communityTips: 'https://help.disqus.com/en/collections/191659-community-tips',
  71031.           increaseEngagement: 'https://help.disqus.com/en/articles/1717197-how-to-increase-reader-engagement-and-retention',
  71032.           moderating101: 'https://help.disqus.com/en/articles/1717078-moderating-101',
  71033.           developers: 'https://help.disqus.com/en/collections/191735-developer',
  71034.           otherIntegrations: 'https://help.disqus.com/en/collections/191781-other-integrations'
  71035.         },
  71036.         logIn: e.concat(t, '/profile/login/'),
  71037.         logInPublisher: e.concat(t, '/publishers/login/'),
  71038.         logOut: e.concat(t, '/logout/'),
  71039.         signUp: e.concat(t, '/profile/signup/'),
  71040.         signUpPublisher: e.concat(t, '/publishers/signup/'),
  71041.         pages: e.concat(t, '/pages/'),
  71042.         pricingPolls: e.concat(t, '/pricing/?product=polls'),
  71043.         profileUrlPrefix: e.concat(t, '/by'),
  71044.         privacy: 'https://disqus.com/privacy-policy',
  71045.         terms: 'https://help.disqus.com/customer/portal/articles/466260-terms-of-service',
  71046.         iosApp: 'https://itunes.apple.com/app/apple-store/id1006908426?pt=103468801&ct=Disqus.com%20Marketing%20Pages&mt=8',
  71047.         windowsApp: 'https://www.microsoft.com/store/apps/9WZDNCRDGCTR?cid=Disqus.com%20Marketing%20Pages'
  71048.       }
  71049.     }.apply(t, [
  71050.     ]);
  71051.     void 0 === t || (e.exports = t)
  71052.   },
  71053.   94: function (e) {
  71054.     e.exports = JSON.parse('{"data":[{"id":"l:aa_DJ","type":"languages","attributes":{"code":"aa_DJ","name":"Afar (Djibouti)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:aa_DJ"}},{"id":"l:ab","type":"languages","attributes":{"code":"ab","name":"Abkhaz","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ab"}},{"id":"l:ace","type":"languages","attributes":{"code":"ace","name":"Acehnese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ace"}},{"id":"l:ach","type":"languages","attributes":{"code":"ach","name":"Acoli","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ach"}},{"id":"l:ady","type":"languages","attributes":{"code":"ady","name":"Adyghe","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ady"}},{"id":"l:aeb","type":"languages","attributes":{"code":"aeb","name":"Tunisian Arabic","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:aeb"}},{"id":"l:af","type":"languages","attributes":{"code":"af","name":"Afrikaans","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:af"}},{"id":"l:af_ZA","type":"languages","attributes":{"code":"af_ZA","name":"Afrikaans (South Africa)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:af_ZA"}},{"id":"l:ak","type":"languages","attributes":{"code":"ak","name":"Akan","rtl":false,"plural_equation":"n > 1","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ak"}},{"id":"l:aln","type":"languages","attributes":{"code":"aln","name":"Albanian Gheg","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:aln"}},{"id":"l:am","type":"languages","attributes":{"code":"am","name":"Amharic","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:am"}},{"id":"l:am_ET","type":"languages","attributes":{"code":"am_ET","name":"Amharic (Ethiopia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:am_ET"}},{"id":"l:an","type":"languages","attributes":{"code":"an","name":"Aragonese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:an"}},{"id":"l:ang","type":"languages","attributes":{"code":"ang","name":"Old English","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ang"}},{"id":"l:ar","type":"languages","attributes":{"code":"ar","name":"Arabic","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar"}},{"id":"l:ar_AA","type":"languages","attributes":{"code":"ar_AA","name":"Arabic (Unitag)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_AA"}},{"id":"l:ar_AE","type":"languages","attributes":{"code":"ar_AE","name":"Arabic (U.A.E.)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_AE"}},{"id":"l:arb","type":"languages","attributes":{"code":"arb","name":"Modern Standard Arabic (MSA)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:arb"}},{"id":"l:arc","type":"languages","attributes":{"code":"arc","name":"Aramaic","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:arc"}},{"id":"l:ar_DZ","type":"languages","attributes":{"code":"ar_DZ","name":"Arabic (Algeria)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_DZ"}},{"id":"l:ar_EG","type":"languages","attributes":{"code":"ar_EG","name":"Arabic (Egypt)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_EG"}},{"id":"l:ar_IQ","type":"languages","attributes":{"code":"ar_IQ","name":"Arabic (Iraq)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_IQ"}},{"id":"l:ar_JO","type":"languages","attributes":{"code":"ar_JO","name":"Arabic (Jordan)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_JO"}},{"id":"l:ar_LB","type":"languages","attributes":{"code":"ar_LB","name":"Arabic (Lebanon)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_LB"}},{"id":"l:arn","type":"languages","attributes":{"code":"arn","name":"Mapudungun","rtl":false,"plural_equation":"n > 1","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:arn"}},{"id":"l:ar_QA","type":"languages","attributes":{"code":"ar_QA","name":"Arabic (Qatar)","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_QA"}},{"id":"l:ar_SA","type":"languages","attributes":{"code":"ar_SA","name":"Arabic (Saudi Arabia)","rtl":true,"plural_equation":"(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5)","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_SA"}},{"id":"l:ar_SD","type":"languages","attributes":{"code":"ar_SD","name":"Arabic (Sudan)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_SD"}},{"id":"l:ar_SY","type":"languages","attributes":{"code":"ar_SY","name":"Arabic (Syria)","rtl":true,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ar_SY"}},{"id":"l:ary","type":"languages","attributes":{"code":"ary","name":"Moroccan Arabic","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ary"}},{"id":"l:as","type":"languages","attributes":{"code":"as","name":"Assamese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:as"}},{"id":"l:as_IN","type":"languages","attributes":{"code":"as_IN","name":"Assamese (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:as_IN"}},{"id":"l:ast","type":"languages","attributes":{"code":"ast","name":"Asturian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ast"}},{"id":"l:ast_ES","type":"languages","attributes":{"code":"ast_ES","name":"Asturian (Spain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ast_ES"}},{"id":"l:ay","type":"languages","attributes":{"code":"ay","name":"Aymara","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ay"}},{"id":"l:ayl","type":"languages","attributes":{"code":"ayl","name":"Libyan Arabic","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n is 2","many":"n mod 100 in 11..99","few":"n mod 100 in 3..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ayl"}},{"id":"l:az","type":"languages","attributes":{"code":"az","name":"Azerbaijani","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:az"}},{"id":"l:az@Arab","type":"languages","attributes":{"code":"az@Arab","name":"Azerbaijani (Arabic)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:az@Arab"}},{"id":"l:az_AZ","type":"languages","attributes":{"code":"az_AZ","name":"Azerbaijani (Azerbaijan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:az_AZ"}},{"id":"l:az_IR","type":"languages","attributes":{"code":"az_IR","name":"Azerbaijani (Iran)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:az_IR"}},{"id":"l:az@latin","type":"languages","attributes":{"code":"az@latin","name":"Azerbaijani (Latin)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:az@latin"}},{"id":"l:ba","type":"languages","attributes":{"code":"ba","name":"Bashkir","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ba"}},{"id":"l:bal","type":"languages","attributes":{"code":"bal","name":"Balochi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bal"}},{"id":"l:bar","type":"languages","attributes":{"code":"bar","name":"Bavarian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bar"}},{"id":"l:bcq","type":"languages","attributes":{"code":"bcq","name":"Bench","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bcq"}},{"id":"l:be","type":"languages","attributes":{"code":"be","name":"Belarusian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:be"}},{"id":"l:be_BY","type":"languages","attributes":{"code":"be_BY","name":"Belarusian (Belarus)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:be_BY"}},{"id":"l:bem","type":"languages","attributes":{"code":"bem","name":"Bemba","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bem"}},{"id":"l:bem_ZM","type":"languages","attributes":{"code":"bem_ZM","name":"Bemba (Zambia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bem_ZM"}},{"id":"l:ber","type":"languages","attributes":{"code":"ber","name":"Berber","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ber"}},{"id":"l:be@tarask","type":"languages","attributes":{"code":"be@tarask","name":"Belarusian (Tarask)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:be@tarask"}},{"id":"l:bg","type":"languages","attributes":{"code":"bg","name":"Bulgarian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bg"}},{"id":"l:bg_BG","type":"languages","attributes":{"code":"bg_BG","name":"Bulgarian (Bulgaria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bg_BG"}},{"id":"l:bg@Cyrl","type":"languages","attributes":{"code":"bg@Cyrl","name":"Bulgarian (Cyrillic)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bg@Cyrl"}},{"id":"l:bg_US","type":"languages","attributes":{"code":"bg_US","name":"Bulgarian (United States)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bg_US"}},{"id":"l:bho","type":"languages","attributes":{"code":"bho","name":"Bhojpuri","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bho"}},{"id":"l:bi","type":"languages","attributes":{"code":"bi","name":"Bislama","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bi"}},{"id":"l:bm","type":"languages","attributes":{"code":"bm","name":"Bambara","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bm"}},{"id":"l:bn","type":"languages","attributes":{"code":"bn","name":"Bengali","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bn"}},{"id":"l:bn_BD","type":"languages","attributes":{"code":"bn_BD","name":"Bengali (Bangladesh)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bn_BD"}},{"id":"l:bn_IN","type":"languages","attributes":{"code":"bn_IN","name":"Bengali (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bn_IN"}},{"id":"l:bo","type":"languages","attributes":{"code":"bo","name":"Tibetan","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bo"}},{"id":"l:bo_CN","type":"languages","attributes":{"code":"bo_CN","name":"Tibetan (China)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bo_CN"}},{"id":"l:bqi","type":"languages","attributes":{"code":"bqi","name":"Luri (Bakhtiari)","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bqi"}},{"id":"l:bqi_IR","type":"languages","attributes":{"code":"bqi_IR","name":"Luri Bakhtiari (Iran)","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bqi_IR"}},{"id":"l:br","type":"languages","attributes":{"code":"br","name":"Breton","rtl":false,"plural_equation":"((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11,71,91","two":"n mod 10 is 2 and n mod 100 is not 12,72,92","many":"n is not 0 and n mod 1000000 is 0","few":"n mod 10 is 3 or 4 or 9 and n mod 100 is not in 10..19 or 70..79 or 90..99","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:br"}},{"id":"l:br_FR","type":"languages","attributes":{"code":"br_FR","name":"Breton (France)","rtl":false,"plural_equation":"((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11,71,91","two":"n mod 10 is 2 and n mod 100 is not 12,72,92","many":"n is not 0 and n mod 1000000 is 0","few":"n mod 10 is 3 or 4 or 9 and n mod 100 is not in 10..19 or 70..79 or 90..99","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:br_FR"}},{"id":"l:brx","type":"languages","attributes":{"code":"brx","name":"Bodo","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:brx"}},{"id":"l:bs","type":"languages","attributes":{"code":"bs","name":"Bosnian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bs"}},{"id":"l:bs_BA","type":"languages","attributes":{"code":"bs_BA","name":"Bosnian (Bosnia and Herzegovina)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bs_BA"}},{"id":"l:bs_BA-SRP","type":"languages","attributes":{"code":"bs_BA-SRP","name":"Bosnian (Republika Srpska)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bs_BA-SRP"}},{"id":"l:bua","type":"languages","attributes":{"code":"bua","name":"Buryat","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:bua"}},{"id":"l:ca","type":"languages","attributes":{"code":"ca","name":"Catalan","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ca"}},{"id":"l:ca_ES","type":"languages","attributes":{"code":"ca_ES","name":"Catalan (Spain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ca_ES"}},{"id":"l:cak","type":"languages","attributes":{"code":"cak","name":"Kaqchikel","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cak"}},{"id":"l:ca@valencia","type":"languages","attributes":{"code":"ca@valencia","name":"Catalan (Valencian)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ca@valencia"}},{"id":"l:cdo","type":"languages","attributes":{"code":"cdo","name":"Chinese (Min Dong)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cdo"}},{"id":"l:ce","type":"languages","attributes":{"code":"ce","name":"Chechen","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ce"}},{"id":"l:ceb","type":"languages","attributes":{"code":"ceb","name":"Cebuano","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ceb"}},{"id":"l:cgg","type":"languages","attributes":{"code":"cgg","name":"Chiga","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cgg"}},{"id":"l:ch","type":"languages","attributes":{"code":"ch","name":"Chamorro","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ch"}},{"id":"l:chk","type":"languages","attributes":{"code":"chk","name":"Chuukese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:chk"}},{"id":"l:chr","type":"languages","attributes":{"code":"chr","name":"Cherokee","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:chr"}},{"id":"l:cjy","type":"languages","attributes":{"code":"cjy","name":"Chinese (Jinyu)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cjy"}},{"id":"l:ckb","type":"languages","attributes":{"code":"ckb","name":"Central Kurdish","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ckb"}},{"id":"l:cmn","type":"languages","attributes":{"code":"cmn","name":"Chinese (Mandarin)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cmn"}},{"id":"l:cnr","type":"languages","attributes":{"code":"cnr","name":"Montenegrin","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cnr"}},{"id":"l:cnx","type":"languages","attributes":{"code":"cnx","name":"Middle Cornish","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : (n % 100 ==2 || n % 100 ==22 || n % 100 ==42 || n % 100 ==62 || n % 100 ==82 || n % 1000 ==0) && (n mod 100000 in 1000..20000 || n % 100000 ==40000 || n % 100000 ==60000 || n % 100000 ==80000 or n!=0) && (n % 1000000 == 100000) ? 2 : n % 100 ==3 || n % 100 ==23 || n % 100 ==43 || n % 100 ==63 || n % 100 ==83 ? 3 : n!=1 && (n % 100 ==1 || n % 100 ==21 || n % 100 ==41 || n % 100 ==61 || n % 100 ==81) ? 4: 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"(n % 100 ==2 || n % 100 ==22 || n % 100 ==42 || n % 100 ==62 || n % 100 ==82 || n % 1000 ==0) && (n mod 100000 in 1000..20000 || n % 100000 ==40000 || n % 100000 ==60000 || n % 100000 ==80000 or n!=0) && (n % 1000000 == 100000)","many":"n!=1 && (n % 100 ==1 || n % 100 ==21 || n % 100 ==41 || n % 100 ==61 || n % 100 ==81)","few":"n % 100 ==3 || n % 100 ==23 || n % 100 ==43 || n % 100 ==63 || n % 100 ==83","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cnx"}},{"id":"l:co","type":"languages","attributes":{"code":"co","name":"Corsican","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:co"}},{"id":"l:cpx","type":"languages","attributes":{"code":"cpx","name":"Chinese (Pu-Xian)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cpx"}},{"id":"l:crh","type":"languages","attributes":{"code":"crh","name":"Crimean Turkish","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:crh"}},{"id":"l:cs","type":"languages","attributes":{"code":"cs","name":"Czech","rtl":false,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3","plural_rules":{"one":"n is 1","many":"n is decimal","few":"n in 2..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cs"}},{"id":"l:csb","type":"languages","attributes":{"code":"csb","name":"Kashubian","rtl":false,"plural_equation":"n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2","plural_rules":{"one":"n is 1","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:csb"}},{"id":"l:cs_CZ","type":"languages","attributes":{"code":"cs_CZ","name":"Czech (Czech Republic)","rtl":false,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3","plural_rules":{"one":"n is 1","many":"n is decimal","few":"n in 2..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cs_CZ"}},{"id":"l:cs@qtfiletype","type":"languages","attributes":{"code":"cs@qtfiletype","name":"Czech (QT FILETYPE)","rtl":false,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1 : 2","plural_rules":{"one":"n is 1","few":"n in 2..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cs@qtfiletype"}},{"id":"l:cv","type":"languages","attributes":{"code":"cv","name":"Chuvash","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cv"}},{"id":"l:cy","type":"languages","attributes":{"code":"cy","name":"Welsh","rtl":false,"plural_equation":"(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3","plural_rules":{"one":"n is 1","two":"n is 2","many":"n is 8 or n is 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cy"}},{"id":"l:cy_GB","type":"languages","attributes":{"code":"cy_GB","name":"Welsh (United Kingdom)","rtl":false,"plural_equation":"(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3","plural_rules":{"one":"n is 1","two":"n is 2","many":"n is 8 or n is 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:cy_GB"}},{"id":"l:czh","type":"languages","attributes":{"code":"czh","name":"Chinese (Huizhou)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:czh"}},{"id":"l:czo","type":"languages","attributes":{"code":"czo","name":"Chinese (Min Zhong)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:czo"}},{"id":"l:da","type":"languages","attributes":{"code":"da","name":"Danish","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:da"}},{"id":"l:da_DK","type":"languages","attributes":{"code":"da_DK","name":"Danish (Denmark)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:da_DK"}},{"id":"l:de","type":"languages","attributes":{"code":"de","name":"German","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:de"}},{"id":"l:de_AT","type":"languages","attributes":{"code":"de_AT","name":"German (Austria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:de_AT"}},{"id":"l:de_CH","type":"languages","attributes":{"code":"de_CH","name":"German (Switzerland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:de_CH"}},{"id":"l:de_DE","type":"languages","attributes":{"code":"de_DE","name":"German (Germany)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:de_DE"}},{"id":"l:de_LU","type":"languages","attributes":{"code":"de_LU","name":"German (Luxembourg)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:de_LU"}},{"id":"l:doi","type":"languages","attributes":{"code":"doi","name":"Dogri","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:doi"}},{"id":"l:dsb","type":"languages","attributes":{"code":"dsb","name":"Lower Sorbian","rtl":false,"plural_equation":"(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)","plural_rules":{"one":"n mod 100 is 1","two":"n mod 100 is 2","few":"n mod 100 in 3..4 ","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:dsb"}},{"id":"l:dtp","type":"languages","attributes":{"code":"dtp","name":"Kadazandusun","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:dtp"}},{"id":"l:dv","type":"languages","attributes":{"code":"dv","name":"Divehi","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:dv"}},{"id":"l:dz","type":"languages","attributes":{"code":"dz","name":"Dzongkha","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:dz"}},{"id":"l:dz_BT","type":"languages","attributes":{"code":"dz_BT","name":"Dzongkha (Bhutan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:dz_BT"}},{"id":"l:ee","type":"languages","attributes":{"code":"ee","name":"Ewe","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ee"}},{"id":"l:el","type":"languages","attributes":{"code":"el","name":"Greek","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:el"}},{"id":"l:el_CY","type":"languages","attributes":{"code":"el_CY","name":"Greek (Cyprus)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:el_CY"}},{"id":"l:el_DE","type":"languages","attributes":{"code":"el_DE","name":"Greek (Germany)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:el_DE"}},{"id":"l:el_GR","type":"languages","attributes":{"code":"el_GR","name":"Greek (Greece)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:el_GR"}},{"id":"l:en","type":"languages","attributes":{"code":"en","name":"English","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en"}},{"id":"l:en_150","type":"languages","attributes":{"code":"en_150","name":"English (Europe)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_150"}},{"id":"l:en_AE","type":"languages","attributes":{"code":"en_AE","name":"English (United Arab Emirates)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AE"}},{"id":"l:en_AL","type":"languages","attributes":{"code":"en_AL","name":"English (Albania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AL"}},{"id":"l:en_AO","type":"languages","attributes":{"code":"en_AO","name":"English (Angola)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AO"}},{"id":"l:en_AR","type":"languages","attributes":{"code":"en_AR","name":"English (Argentina)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AR"}},{"id":"l:en_AR-B","type":"languages","attributes":{"code":"en_AR-B","name":"English (Argentina - Buenos Aires)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AR-B"}},{"id":"l:en_AR-C","type":"languages","attributes":{"code":"en_AR-C","name":"English (Argentina - Buenos Aires City)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AR-C"}},{"id":"l:en_AT","type":"languages","attributes":{"code":"en_AT","name":"English (Austria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AT"}},{"id":"l:en_AU","type":"languages","attributes":{"code":"en_AU","name":"English (Australia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_AU"}},{"id":"l:en_BA","type":"languages","attributes":{"code":"en_BA","name":"English (Bosnia and Herzegovina)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BA"}},{"id":"l:en_BA-SRP","type":"languages","attributes":{"code":"en_BA-SRP","name":"English (Republika Srpska)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BA-SRP"}},{"id":"l:en_BB","type":"languages","attributes":{"code":"en_BB","name":"English (Barbados)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BB"}},{"id":"l:en_BD","type":"languages","attributes":{"code":"en_BD","name":"English (Bangladesh)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BD"}},{"id":"l:en_BE","type":"languages","attributes":{"code":"en_BE","name":"English (Belgium)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BE"}},{"id":"l:en_BG","type":"languages","attributes":{"code":"en_BG","name":"English (Bulgaria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BG"}},{"id":"l:en_BH","type":"languages","attributes":{"code":"en_BH","name":"English (Bahrain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BH"}},{"id":"l:en_BM","type":"languages","attributes":{"code":"en_BM","name":"English (Bermuda)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BM"}},{"id":"l:en_BN","type":"languages","attributes":{"code":"en_BN","name":"English (Brunei)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BN"}},{"id":"l:en_BO","type":"languages","attributes":{"code":"en_BO","name":"English (Bolivia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BO"}},{"id":"l:en_BR","type":"languages","attributes":{"code":"en_BR","name":"English (Brazil)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BR"}},{"id":"l:en_BS","type":"languages","attributes":{"code":"en_BS","name":"English (Bahamas)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BS"}},{"id":"l:en_BW","type":"languages","attributes":{"code":"en_BW","name":"English (Botswana)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_BW"}},{"id":"l:en_CA","type":"languages","attributes":{"code":"en_CA","name":"English (Canada)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CA"}},{"id":"l:en_CD","type":"languages","attributes":{"code":"en_CD","name":"English (Democratic Republic of the Congo)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CD"}},{"id":"l:en_CG","type":"languages","attributes":{"code":"en_CG","name":"English (Congo - Brazzaville)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CG"}},{"id":"l:en_CH","type":"languages","attributes":{"code":"en_CH","name":"English (Switzerland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CH"}},{"id":"l:en_CI","type":"languages","attributes":{"code":"en_CI","name":"English (Côte d\'Ivoire)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CI"}},{"id":"l:en_CL","type":"languages","attributes":{"code":"en_CL","name":"English (Chile)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CL"}},{"id":"l:en_CM","type":"languages","attributes":{"code":"en_CM","name":"English (Cameroon)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CM"}},{"id":"l:en_CO","type":"languages","attributes":{"code":"en_CO","name":"English (Colombia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CO"}},{"id":"l:en_CR","type":"languages","attributes":{"code":"en_CR","name":"English (Costa Rica)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CR"}},{"id":"l:en_CW","type":"languages","attributes":{"code":"en_CW","name":"English (CURAÇAO)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CW"}},{"id":"l:en_CY","type":"languages","attributes":{"code":"en_CY","name":"English (Cyprus)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CY"}},{"id":"l:en_CZ","type":"languages","attributes":{"code":"en_CZ","name":"English (Czech Republic)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_CZ"}},{"id":"l:en_DE","type":"languages","attributes":{"code":"en_DE","name":"English (Germany)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_DE"}},{"id":"l:en_DK","type":"languages","attributes":{"code":"en_DK","name":"English (Denmark)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_DK"}},{"id":"l:en_DO","type":"languages","attributes":{"code":"en_DO","name":"English (Dominican Republic)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_DO"}},{"id":"l:en_DZ","type":"languages","attributes":{"code":"en_DZ","name":"English (Algeria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_DZ"}},{"id":"l:en_EC","type":"languages","attributes":{"code":"en_EC","name":"English (Ecuador)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_EC"}},{"id":"l:en_ee","type":"languages","attributes":{"code":"en_ee","name":"English (Estonia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ee"}},{"id":"l:en_EG","type":"languages","attributes":{"code":"en_EG","name":"English (Egypt)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_EG"}},{"id":"l:en_ES","type":"languages","attributes":{"code":"en_ES","name":"English (Spain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ES"}},{"id":"l:en_FI","type":"languages","attributes":{"code":"en_FI","name":"English (Finland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_FI"}},{"id":"l:en_FJ","type":"languages","attributes":{"code":"en_FJ","name":"English (Fiji)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_FJ"}},{"id":"l:en_FR","type":"languages","attributes":{"code":"en_FR","name":"English (France)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_FR"}},{"id":"l:en_GA","type":"languages","attributes":{"code":"en_GA","name":"English (Gabon)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GA"}},{"id":"l:en_GB","type":"languages","attributes":{"code":"en_GB","name":"English (United Kingdom)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GB"}},{"id":"l:en_GF","type":"languages","attributes":{"code":"en_GF","name":"English (French Guiana)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GF"}},{"id":"l:en_GH","type":"languages","attributes":{"code":"en_GH","name":"English (Ghana)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GH"}},{"id":"l:en_GM","type":"languages","attributes":{"code":"en_GM","name":"English (Gambia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GM"}},{"id":"l:en_GN","type":"languages","attributes":{"code":"en_GN","name":"English (Guinea)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GN"}},{"id":"l:en_GR","type":"languages","attributes":{"code":"en_GR","name":"English (Greece)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GR"}},{"id":"l:en_GT","type":"languages","attributes":{"code":"en_GT","name":"English (Guatemala)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_GT"}},{"id":"l:en_HK","type":"languages","attributes":{"code":"en_HK","name":"English (Hong Kong)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_HK"}},{"id":"l:en_HN","type":"languages","attributes":{"code":"en_HN","name":"English (Honduras)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_HN"}},{"id":"l:en_HR","type":"languages","attributes":{"code":"en_HR","name":"English (Croatia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_HR"}},{"id":"l:en_HT","type":"languages","attributes":{"code":"en_HT","name":"English (Haiti)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_HT"}},{"id":"l:en_HU","type":"languages","attributes":{"code":"en_HU","name":"English (Hungary)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_HU"}},{"id":"l:en_ID","type":"languages","attributes":{"code":"en_ID","name":"English (Indonesia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ID"}},{"id":"l:en_IE","type":"languages","attributes":{"code":"en_IE","name":"English (Ireland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IE"}},{"id":"l:en_IL","type":"languages","attributes":{"code":"en_IL","name":"English (Israel)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IL"}},{"id":"l:en_IN","type":"languages","attributes":{"code":"en_IN","name":"English (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IN"}},{"id":"l:en_IQ","type":"languages","attributes":{"code":"en_IQ","name":"English (Iraq)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IQ"}},{"id":"l:en_IS","type":"languages","attributes":{"code":"en_IS","name":"English (Icelandic)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IS"}},{"id":"l:en_IT","type":"languages","attributes":{"code":"en_IT","name":"English (Italy)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_IT"}},{"id":"l:en_JM","type":"languages","attributes":{"code":"en_JM","name":"English (Jamaica)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_JM"}},{"id":"l:en_JO","type":"languages","attributes":{"code":"en_JO","name":"English (Jordan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_JO"}},{"id":"l:en_JP","type":"languages","attributes":{"code":"en_JP","name":"English (Japan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_JP"}},{"id":"l:en_KE","type":"languages","attributes":{"code":"en_KE","name":"English (Kenya)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_KE"}},{"id":"l:en_KR","type":"languages","attributes":{"code":"en_KR","name":"English (Korea)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_KR"}},{"id":"l:en_KW","type":"languages","attributes":{"code":"en_KW","name":"English (Kuwait)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_KW"}},{"id":"l:en_KY","type":"languages","attributes":{"code":"en_KY","name":"English (Cayman Islands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_KY"}},{"id":"l:en_LA","type":"languages","attributes":{"code":"en_LA","name":"English (Laos)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LA"}},{"id":"l:en_LB","type":"languages","attributes":{"code":"en_LB","name":"English (Lebanon)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LB"}},{"id":"l:en_LK","type":"languages","attributes":{"code":"en_LK","name":"English (Sri Lanka)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LK"}},{"id":"l:en@lolcat","type":"languages","attributes":{"code":"en@lolcat","name":"LOLCAT English","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en@lolcat"}},{"id":"l:en_LR","type":"languages","attributes":{"code":"en_LR","name":"English (Liberia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LR"}},{"id":"l:en_LS","type":"languages","attributes":{"code":"en_LS","name":"English (Lesotho)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LS"}},{"id":"l:en_lt","type":"languages","attributes":{"code":"en_lt","name":"English (Lithuania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_lt"}},{"id":"l:en_LU","type":"languages","attributes":{"code":"en_LU","name":"English (Luxembourg)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_LU"}},{"id":"l:en_lv","type":"languages","attributes":{"code":"en_lv","name":"English (Latvia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_lv"}},{"id":"l:en_MA","type":"languages","attributes":{"code":"en_MA","name":"English (Morocco)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MA"}},{"id":"l:en_MG","type":"languages","attributes":{"code":"en_MG","name":"English (Madagascar)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MG"}},{"id":"l:en_MK","type":"languages","attributes":{"code":"en_MK","name":"English (Macedonia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MK"}},{"id":"l:en_ML","type":"languages","attributes":{"code":"en_ML","name":"English (Mali)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ML"}},{"id":"l:en_MM","type":"languages","attributes":{"code":"en_MM","name":"English (Myanmar)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MM"}},{"id":"l:en_MT","type":"languages","attributes":{"code":"en_MT","name":"English (Malta)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MT"}},{"id":"l:en_MU","type":"languages","attributes":{"code":"en_MU","name":"English (Mauritius)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MU"}},{"id":"l:en_MW","type":"languages","attributes":{"code":"en_MW","name":"English (Malawi)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MW"}},{"id":"l:en_MX","type":"languages","attributes":{"code":"en_MX","name":"English (Mexico)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MX"}},{"id":"l:en_MY","type":"languages","attributes":{"code":"en_MY","name":"English (Malaysia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MY"}},{"id":"l:en_MZ","type":"languages","attributes":{"code":"en_MZ","name":"English (Mozambique)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_MZ"}},{"id":"l:en_NA","type":"languages","attributes":{"code":"en_NA","name":"English (Namibia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NA"}},{"id":"l:en_NE","type":"languages","attributes":{"code":"en_NE","name":"English (Niger)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NE"}},{"id":"l:en_NG","type":"languages","attributes":{"code":"en_NG","name":"English (Nigeria)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NG"}},{"id":"l:en_NI","type":"languages","attributes":{"code":"en_NI","name":"English (Nicaragua)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NI"}},{"id":"l:en_NL","type":"languages","attributes":{"code":"en_NL","name":"English (Netherlands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NL"}},{"id":"l:en_NO","type":"languages","attributes":{"code":"en_NO","name":"English (Norway)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NO"}},{"id":"l:en_NP","type":"languages","attributes":{"code":"en_NP","name":"English (Nepal)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NP"}},{"id":"l:en_NZ","type":"languages","attributes":{"code":"en_NZ","name":"English (New Zealand)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_NZ"}},{"id":"l:en@Ontario","type":"languages","attributes":{"code":"en@Ontario","name":"English (Ontario)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en@Ontario"}},{"id":"l:en_PE","type":"languages","attributes":{"code":"en_PE","name":"English (Peru)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PE"}},{"id":"l:en_PG","type":"languages","attributes":{"code":"en_PG","name":"English (Papua New Guinea)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PG"}},{"id":"l:en_PH","type":"languages","attributes":{"code":"en_PH","name":"English (Philippines)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PH"}},{"id":"l:en@pirate","type":"languages","attributes":{"code":"en@pirate","name":"Pirate English","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en@pirate"}},{"id":"l:en_PK","type":"languages","attributes":{"code":"en_PK","name":"English (Pakistan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PK"}},{"id":"l:en_PL","type":"languages","attributes":{"code":"en_PL","name":"English (Poland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PL"}},{"id":"l:en_PR","type":"languages","attributes":{"code":"en_PR","name":"English (Puerto Rico)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PR"}},{"id":"l:en_PT","type":"languages","attributes":{"code":"en_PT","name":"English (Portugal)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PT"}},{"id":"l:en_PY","type":"languages","attributes":{"code":"en_PY","name":"English (Paraguay)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_PY"}},{"id":"l:en_QA","type":"languages","attributes":{"code":"en_QA","name":"English (Qatar)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_QA"}},{"id":"l:en_RO","type":"languages","attributes":{"code":"en_RO","name":"English (Romania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_RO"}},{"id":"l:en_RS","type":"languages","attributes":{"code":"en_RS","name":"English (Serbia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_RS"}},{"id":"l:en_SA","type":"languages","attributes":{"code":"en_SA","name":"English (Saudi Arabia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SA"}},{"id":"l:en_SE","type":"languages","attributes":{"code":"en_SE","name":"English (Sweden)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SE"}},{"id":"l:en_SG","type":"languages","attributes":{"code":"en_SG","name":"English (Singapore)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SG"}},{"id":"l:en@shaw","type":"languages","attributes":{"code":"en@shaw","name":"English (Shavian)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en@shaw"}},{"id":"l:en_SI","type":"languages","attributes":{"code":"en_SI","name":"English (Slovenia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SI"}},{"id":"l:en_SK","type":"languages","attributes":{"code":"en_SK","name":"English (Slovakia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SK"}},{"id":"l:en_SN","type":"languages","attributes":{"code":"en_SN","name":"English (Senegal)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SN"}},{"id":"l:en_SV","type":"languages","attributes":{"code":"en_SV","name":"English (El Salvador)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SV"}},{"id":"l:en_SZ","type":"languages","attributes":{"code":"en_SZ","name":"English (Swaziland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_SZ"}},{"id":"l:en_TG","type":"languages","attributes":{"code":"en_TG","name":"English (Togo)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TG"}},{"id":"l:en_TH","type":"languages","attributes":{"code":"en_TH","name":"English (Thailand)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TH"}},{"id":"l:en_TR","type":"languages","attributes":{"code":"en_TR","name":"English (Turkey)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TR"}},{"id":"l:en_TT","type":"languages","attributes":{"code":"en_TT","name":"English (Trinidad & Tobago)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TT"}},{"id":"l:en_TW","type":"languages","attributes":{"code":"en_TW","name":"English (Taiwan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TW"}},{"id":"l:en_TZ","type":"languages","attributes":{"code":"en_TZ","name":"English (Tanzania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_TZ"}},{"id":"l:en_UA","type":"languages","attributes":{"code":"en_UA","name":"English (Ukraine)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_UA"}},{"id":"l:en_UG","type":"languages","attributes":{"code":"en_UG","name":"English (Uganda)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_UG"}},{"id":"l:en_US","type":"languages","attributes":{"code":"en_US","name":"English (United States)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_US"}},{"id":"l:en_UY","type":"languages","attributes":{"code":"en_UY","name":"English (Uruguay)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_UY"}},{"id":"l:en_VE","type":"languages","attributes":{"code":"en_VE","name":"English (Venezuela)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_VE"}},{"id":"l:en_VG","type":"languages","attributes":{"code":"en_VG","name":"English (British Virgin Islands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_VG"}},{"id":"l:en_VN","type":"languages","attributes":{"code":"en_VN","name":"English (Viet Nam)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_VN"}},{"id":"l:en@ysv","type":"languages","attributes":{"code":"en@ysv","name":"Yeshivish English","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en@ysv"}},{"id":"l:en_ZA","type":"languages","attributes":{"code":"en_ZA","name":"English (South Africa)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ZA"}},{"id":"l:en_ZM","type":"languages","attributes":{"code":"en_ZM","name":"English (Zambia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ZM"}},{"id":"l:en_ZW","type":"languages","attributes":{"code":"en_ZW","name":"English (Zimbabwe)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:en_ZW"}},{"id":"l:eo","type":"languages","attributes":{"code":"eo","name":"Esperanto","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:eo"}},{"id":"l:es","type":"languages","attributes":{"code":"es","name":"Spanish","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es"}},{"id":"l:es_150","type":"languages","attributes":{"code":"es_150","name":"Spanish (Europe)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_150"}},{"id":"l:es_419","type":"languages","attributes":{"code":"es_419","name":"Spanish (Latin America)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_419"}},{"id":"l:es_AR","type":"languages","attributes":{"code":"es_AR","name":"Spanish (Argentina)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_AR"}},{"id":"l:es_AR-B","type":"languages","attributes":{"code":"es_AR-B","name":"Spanish (Argentina - Buenos Aires)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_AR-B"}},{"id":"l:es_AR-C","type":"languages","attributes":{"code":"es_AR-C","name":"Spanish (Argentina - Buenos Aires City)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_AR-C"}},{"id":"l:es_BO","type":"languages","attributes":{"code":"es_BO","name":"Spanish (Bolivia)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_BO"}},{"id":"l:es_BR","type":"languages","attributes":{"code":"es_BR","name":"Spanish (Brazil)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_BR"}},{"id":"l:es_CL","type":"languages","attributes":{"code":"es_CL","name":"Spanish (Chile)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_CL"}},{"id":"l:es_CO","type":"languages","attributes":{"code":"es_CO","name":"Spanish (Colombia)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_CO"}},{"id":"l:es_CR","type":"languages","attributes":{"code":"es_CR","name":"Spanish (Costa Rica)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_CR"}},{"id":"l:es_CU","type":"languages","attributes":{"code":"es_CU","name":"Spanish (Cuba)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_CU"}},{"id":"l:es_CW","type":"languages","attributes":{"code":"es_CW","name":"Spanish (CURAÇAO)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_CW"}},{"id":"l:es_DO","type":"languages","attributes":{"code":"es_DO","name":"Spanish (Dominican Republic)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_DO"}},{"id":"l:es_EC","type":"languages","attributes":{"code":"es_EC","name":"Spanish (Ecuador)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_EC"}},{"id":"l:es_ES","type":"languages","attributes":{"code":"es_ES","name":"Spanish (Spain)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_ES"}},{"id":"l:es_GQ","type":"languages","attributes":{"code":"es_GQ","name":"Spanish (Equatorial Guinea)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_GQ"}},{"id":"l:es_GT","type":"languages","attributes":{"code":"es_GT","name":"Spanish (Guatemala)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_GT"}},{"id":"l:es_HN","type":"languages","attributes":{"code":"es_HN","name":"Spanish (Honduras)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_HN"}},{"id":"l:es_MX","type":"languages","attributes":{"code":"es_MX","name":"Spanish (Mexico)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_MX"}},{"id":"l:es_NI","type":"languages","attributes":{"code":"es_NI","name":"Spanish (Nicaragua)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_NI"}},{"id":"l:es_PA","type":"languages","attributes":{"code":"es_PA","name":"Spanish (Panama)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_PA"}},{"id":"l:es_PE","type":"languages","attributes":{"code":"es_PE","name":"Spanish (Peru)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_PE"}},{"id":"l:es_PR","type":"languages","attributes":{"code":"es_PR","name":"Spanish (Puerto Rico)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_PR"}},{"id":"l:es_PY","type":"languages","attributes":{"code":"es_PY","name":"Spanish (Paraguay)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_PY"}},{"id":"l:es@qtfiletype","type":"languages","attributes":{"code":"es@qtfiletype","name":"Spanish (QT FILETYPE)","rtl":false,"plural_equation":"n != 1","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es@qtfiletype"}},{"id":"l:es_SA","type":"languages","attributes":{"code":"es_SA","name":"Spanish (Saudi Arabia)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_SA"}},{"id":"l:es_SV","type":"languages","attributes":{"code":"es_SV","name":"Spanish (El Salvador)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_SV"}},{"id":"l:es_US","type":"languages","attributes":{"code":"es_US","name":"Spanish (United States)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_US"}},{"id":"l:es_UY","type":"languages","attributes":{"code":"es_UY","name":"Spanish (Uruguay)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_UY"}},{"id":"l:es_VE","type":"languages","attributes":{"code":"es_VE","name":"Spanish (Venezuela)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_VE"}},{"id":"l:es_VG","type":"languages","attributes":{"code":"es_VG","name":"Spanish (British Virgin Islands)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:es_VG"}},{"id":"l:et","type":"languages","attributes":{"code":"et","name":"Estonian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:et"}},{"id":"l:et_EE","type":"languages","attributes":{"code":"et_EE","name":"Estonian (Estonia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:et_EE"}},{"id":"l:eu","type":"languages","attributes":{"code":"eu","name":"Basque","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:eu"}},{"id":"l:eu_ES","type":"languages","attributes":{"code":"eu_ES","name":"Basque (Spain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:eu_ES"}},{"id":"l:fa","type":"languages","attributes":{"code":"fa","name":"Persian","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fa"}},{"id":"l:fa_AF","type":"languages","attributes":{"code":"fa_AF","name":"Persian (Afghanistan)","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fa_AF"}},{"id":"l:fa_IR","type":"languages","attributes":{"code":"fa_IR","name":"Persian (Iran)","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fa_IR"}},{"id":"l:ff","type":"languages","attributes":{"code":"ff","name":"Fulah","rtl":false,"plural_equation":"(n >= 2)","plural_rules":{"one":"n in 0..2 and n is not 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ff"}},{"id":"l:ff_SN","type":"languages","attributes":{"code":"ff_SN","name":"Fulah (Senegal)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ff_SN"}},{"id":"l:fi","type":"languages","attributes":{"code":"fi","name":"Finnish","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fi"}},{"id":"l:fi_FI","type":"languages","attributes":{"code":"fi_FI","name":"Finnish (Finland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fi_FI"}},{"id":"l:fil","type":"languages","attributes":{"code":"fil","name":"Filipino","rtl":false,"plural_equation":"(n == 1 || n==2 || n==3) || (n % 10 != 4 || n % 10 != 6 || n % 10 != 9)","plural_rules":{"one":"n in 1,2,3 or n mod 10 not in 4,6,9","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fil"}},{"id":"l:fil_PH","type":"languages","attributes":{"code":"fil_PH","name":"Filipino (Philippines)","rtl":false,"plural_equation":"(n == 1 || n==2 || n==3) || (n % 10 != 4 || n % 10 != 6 || n % 10 != 9)","plural_rules":{"one":"n in 1,2,3 or n mod 10 not in 4,6,9","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fil_PH"}},{"id":"l:fo","type":"languages","attributes":{"code":"fo","name":"Faroese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fo"}},{"id":"l:fo_FO","type":"languages","attributes":{"code":"fo_FO","name":"Faroese (Faroe Islands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fo_FO"}},{"id":"l:fr","type":"languages","attributes":{"code":"fr","name":"French","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr"}},{"id":"l:fr_150","type":"languages","attributes":{"code":"fr_150","name":"French (Europe)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_150"}},{"id":"l:fr_BE","type":"languages","attributes":{"code":"fr_BE","name":"French (Belgium)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_BE"}},{"id":"l:fr_BF","type":"languages","attributes":{"code":"fr_BF","name":"French (Burkina Faso)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_BF"}},{"id":"l:fr_BJ","type":"languages","attributes":{"code":"fr_BJ","name":"French (Benin)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_BJ"}},{"id":"l:fr_CA","type":"languages","attributes":{"code":"fr_CA","name":"French (Canada)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CA"}},{"id":"l:fr_CD","type":"languages","attributes":{"code":"fr_CD","name":"French (Democratic Republic of the Congo)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CD"}},{"id":"l:fr_CG","type":"languages","attributes":{"code":"fr_CG","name":"French (Congo - Brazzaville)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CG"}},{"id":"l:fr_CH","type":"languages","attributes":{"code":"fr_CH","name":"French (Switzerland)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CH"}},{"id":"l:fr_CI","type":"languages","attributes":{"code":"fr_CI","name":"French (Côte d\'Ivoire)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CI"}},{"id":"l:fr_CM","type":"languages","attributes":{"code":"fr_CM","name":"French (Cameroon)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_CM"}},{"id":"l:fr_DZ","type":"languages","attributes":{"code":"fr_DZ","name":"French (Algeria)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_DZ"}},{"id":"l:fr_FR","type":"languages","attributes":{"code":"fr_FR","name":"French (France)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_FR"}},{"id":"l:fr_GA","type":"languages","attributes":{"code":"fr_GA","name":"French (Gabon)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_GA"}},{"id":"l:fr_GF","type":"languages","attributes":{"code":"fr_GF","name":"French (French Guiana)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_GF"}},{"id":"l:fr_GN","type":"languages","attributes":{"code":"fr_GN","name":"French (Guinea)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_GN"}},{"id":"l:fr_GP","type":"languages","attributes":{"code":"fr_GP","name":"French (Guadeloupe)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_GP"}},{"id":"l:fr_HT","type":"languages","attributes":{"code":"fr_HT","name":"French (Haiti)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_HT"}},{"id":"l:fr_LR","type":"languages","attributes":{"code":"fr_LR","name":"French (Liberia)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_LR"}},{"id":"l:fr_LU","type":"languages","attributes":{"code":"fr_LU","name":"French (Luxembourg)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_LU"}},{"id":"l:fr_MA","type":"languages","attributes":{"code":"fr_MA","name":"French (Morocco)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_MA"}},{"id":"l:fr_MG","type":"languages","attributes":{"code":"fr_MG","name":"French (Madagascar)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_MG"}},{"id":"l:fr_ML","type":"languages","attributes":{"code":"fr_ML","name":"French (Mali)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_ML"}},{"id":"l:fr_MQ","type":"languages","attributes":{"code":"fr_MQ","name":"French (Martinique)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_MQ"}},{"id":"l:fr_NE","type":"languages","attributes":{"code":"fr_NE","name":"French (Niger)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_NE"}},{"id":"l:fr@Ontario","type":"languages","attributes":{"code":"fr@Ontario","name":"French (Ontario)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr@Ontario"}},{"id":"l:frp","type":"languages","attributes":{"code":"frp","name":"Franco-Provençal (Arpitan)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:frp"}},{"id":"l:fr@qtfiletype","type":"languages","attributes":{"code":"fr@qtfiletype","name":"French (QT FILETYPE)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n within 0..2 and n is not 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr@qtfiletype"}},{"id":"l:fr_RE","type":"languages","attributes":{"code":"fr_RE","name":"French (Réunion)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_RE"}},{"id":"l:fr_SN","type":"languages","attributes":{"code":"fr_SN","name":"French (Senegal)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_SN"}},{"id":"l:fr_TG","type":"languages","attributes":{"code":"fr_TG","name":"French (Togo)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fr_TG"}},{"id":"l:fur","type":"languages","attributes":{"code":"fur","name":"Friulian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fur"}},{"id":"l:fy","type":"languages","attributes":{"code":"fy","name":"Western Frisian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fy"}},{"id":"l:fy_NL","type":"languages","attributes":{"code":"fy_NL","name":"Western Frisian (Netherlands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:fy_NL"}},{"id":"l:ga","type":"languages","attributes":{"code":"ga","name":"Irish","rtl":false,"plural_equation":"(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4)","plural_rules":{"one":"n is 1","two":"n is 2","many":"n in 7..10","few":"n in 3..6","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ga"}},{"id":"l:ga_IE","type":"languages","attributes":{"code":"ga_IE","name":"Irish (Ireland)","rtl":false,"plural_equation":"(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4)","plural_rules":{"one":"n is 1","two":"n is 2","many":"n in 7..10","few":"n in 3..6","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ga_IE"}},{"id":"l:gan","type":"languages","attributes":{"code":"gan","name":"Chinese (Gan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gan"}},{"id":"l:gd","type":"languages","attributes":{"code":"gd","name":"Gaelic, Scottish","rtl":false,"plural_equation":"(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3","plural_rules":{"one":"n in 1,11","two":"n in 2,12","few":"n in 3..10,13..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gd"}},{"id":"l:gl","type":"languages","attributes":{"code":"gl","name":"Galician","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gl"}},{"id":"l:gl_ES","type":"languages","attributes":{"code":"gl_ES","name":"Galician (Spain)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gl_ES"}},{"id":"l:gos","type":"languages","attributes":{"code":"gos","name":"Gronings","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gos"}},{"id":"l:grc","type":"languages","attributes":{"code":"grc","name":"Ancient Greek","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:grc"}},{"id":"l:grt","type":"languages","attributes":{"code":"grt","name":"Garo","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:grt"}},{"id":"l:gsw","type":"languages","attributes":{"code":"gsw","name":"Swiss German","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gsw"}},{"id":"l:gu","type":"languages","attributes":{"code":"gu","name":"Gujarati","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gu"}},{"id":"l:guc","type":"languages","attributes":{"code":"guc","name":"Wayuu","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:guc"}},{"id":"l:gug_PY","type":"languages","attributes":{"code":"gug_PY","name":"Guarani (Paraguay)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gug_PY"}},{"id":"l:gu_IN","type":"languages","attributes":{"code":"gu_IN","name":"Gujarati (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gu_IN"}},{"id":"l:gum","type":"languages","attributes":{"code":"gum","name":"Guambiano","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gum"}},{"id":"l:gun","type":"languages","attributes":{"code":"gun","name":"Gun","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:gun"}},{"id":"l:ha","type":"languages","attributes":{"code":"ha","name":"Hausa","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ha"}},{"id":"l:hak","type":"languages","attributes":{"code":"hak","name":"Chinese (Hakka)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hak"}},{"id":"l:haw","type":"languages","attributes":{"code":"haw","name":"Hawaiian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:haw"}},{"id":"l:he","type":"languages","attributes":{"code":"he","name":"Hebrew","rtl":true,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:he"}},{"id":"l:he@female","type":"languages","attributes":{"code":"he@female","name":"Hebrew (female)","rtl":true,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:he@female"}},{"id":"l:he_IL","type":"languages","attributes":{"code":"he_IL","name":"Hebrew (Israel)","rtl":true,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:he_IL"}},{"id":"l:he@male","type":"languages","attributes":{"code":"he@male","name":"Hebrew (male)","rtl":true,"plural_equation":"(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:he@male"}},{"id":"l:hi","type":"languages","attributes":{"code":"hi","name":"Hindi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hi"}},{"id":"l:hi_IN","type":"languages","attributes":{"code":"hi_IN","name":"Hindi (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hi_IN"}},{"id":"l:hne","type":"languages","attributes":{"code":"hne","name":"Chhattisgarhi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hne"}},{"id":"l:hr","type":"languages","attributes":{"code":"hr","name":"Croatian","rtl":false,"plural_equation":"n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 3..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hr"}},{"id":"l:hr_BA","type":"languages","attributes":{"code":"hr_BA","name":"Croatian (Bosnia and Herzegovina)","rtl":false,"plural_equation":"n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 3..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hr_BA"}},{"id":"l:hr_BA-SRP","type":"languages","attributes":{"code":"hr_BA-SRP","name":"Croatian (Republika Srpska)","rtl":false,"plural_equation":"n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 3..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hr_BA-SRP"}},{"id":"l:hr_HR","type":"languages","attributes":{"code":"hr_HR","name":"Croatian (Croatia)","rtl":false,"plural_equation":"n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 3..4 and n mod 100 not in 11..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hr_HR"}},{"id":"l:hrx","type":"languages","attributes":{"code":"hrx","name":"Hunsrik","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hrx"}},{"id":"l:hsb","type":"languages","attributes":{"code":"hsb","name":"Upper Sorbian","rtl":false,"plural_equation":"(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)","plural_rules":{"one":"n mod 100 is 1","two":"n mod 100 is 2","few":"n mod 100 in 3..4 ","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hsb"}},{"id":"l:hsn","type":"languages","attributes":{"code":"hsn","name":"Chinese (Xiang)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hsn"}},{"id":"l:ht","type":"languages","attributes":{"code":"ht","name":"Haitian (Haitian Creole)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ht"}},{"id":"l:ht_HT","type":"languages","attributes":{"code":"ht_HT","name":"Haitian (Haitian Creole) (Haiti)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ht_HT"}},{"id":"l:hu","type":"languages","attributes":{"code":"hu","name":"Hungarian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hu"}},{"id":"l:hu_HU","type":"languages","attributes":{"code":"hu_HU","name":"Hungarian (Hungary)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hu_HU"}},{"id":"l:hu_RO","type":"languages","attributes":{"code":"hu_RO","name":"Hungarian (Romanian)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hu_RO"}},{"id":"l:hu_SK","type":"languages","attributes":{"code":"hu_SK","name":"Hungarian (Slovakia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hu_SK"}},{"id":"l:hy","type":"languages","attributes":{"code":"hy","name":"Armenian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hy"}},{"id":"l:hy_AM","type":"languages","attributes":{"code":"hy_AM","name":"Armenian (Armenia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hy_AM"}},{"id":"l:hye","type":"languages","attributes":{"code":"hye","name":"Eastern Armenian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hye"}},{"id":"l:hye_RU","type":"languages","attributes":{"code":"hye_RU","name":"Eastern Armenian (Russia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hye_RU"}},{"id":"l:hy_RU","type":"languages","attributes":{"code":"hy_RU","name":"Armenian (Russia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:hy_RU"}},{"id":"l:ia","type":"languages","attributes":{"code":"ia","name":"Interlingua","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ia"}},{"id":"l:id","type":"languages","attributes":{"code":"id","name":"Indonesian","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:id"}},{"id":"l:id_ID","type":"languages","attributes":{"code":"id_ID","name":"Indonesian (Indonesia)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:id_ID"}},{"id":"l:ie","type":"languages","attributes":{"code":"ie","name":"Interlingue","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ie"}},{"id":"l:ig","type":"languages","attributes":{"code":"ig","name":"Igbo","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ig"}},{"id":"l:ilo","type":"languages","attributes":{"code":"ilo","name":"Iloko","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ilo"}},{"id":"l:io","type":"languages","attributes":{"code":"io","name":"Ido","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:io"}},{"id":"l:is","type":"languages","attributes":{"code":"is","name":"Icelandic","rtl":false,"plural_equation":"(n % 10 != 1 || n % 100 == 11)","plural_rules":{"one":"n mod 10 is 1 or n mod 100 is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:is"}},{"id":"l:is_IS","type":"languages","attributes":{"code":"is_IS","name":"Icelandic (Iceland)","rtl":false,"plural_equation":"(n % 10 != 1 || n % 100 == 11)","plural_rules":{"one":"n mod 10 is 1 or n mod 100 is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:is_IS"}},{"id":"l:it","type":"languages","attributes":{"code":"it","name":"Italian","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:it"}},{"id":"l:it_CH","type":"languages","attributes":{"code":"it_CH","name":"Italian (Switzerland)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:it_CH"}},{"id":"l:it_IT","type":"languages","attributes":{"code":"it_IT","name":"Italian (Italy)","rtl":false,"plural_equation":"n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:it_IT"}},{"id":"l:it@qtfiletype","type":"languages","attributes":{"code":"it@qtfiletype","name":"Italian (QT FILETYPE)","rtl":false,"plural_equation":"n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:it@qtfiletype"}},{"id":"l:iu","type":"languages","attributes":{"code":"iu","name":"Inuktitut","rtl":false,"plural_equation":"n == 1 ? 0 : n == 2 ? 1 : 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:iu"}},{"id":"l:ja","type":"languages","attributes":{"code":"ja","name":"Japanese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ja"}},{"id":"l:ja-Hira","type":"languages","attributes":{"code":"ja-Hira","name":"Japanese (Hiragana)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ja-Hira"}},{"id":"l:ja_JP","type":"languages","attributes":{"code":"ja_JP","name":"Japanese (Japan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ja_JP"}},{"id":"l:jam","type":"languages","attributes":{"code":"jam","name":"Jamaican Patois","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:jam"}},{"id":"l:jbo","type":"languages","attributes":{"code":"jbo","name":"Lojban","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:jbo"}},{"id":"l:jv","type":"languages","attributes":{"code":"jv","name":"Javanese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:jv"}},{"id":"l:ka","type":"languages","attributes":{"code":"ka","name":"Georgian","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ka"}},{"id":"l:kaa","type":"languages","attributes":{"code":"kaa","name":"Karakalpak","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kaa"}},{"id":"l:kab","type":"languages","attributes":{"code":"kab","name":"Kabyle","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kab"}},{"id":"l:ka_GE","type":"languages","attributes":{"code":"ka_GE","name":"Georgian (Georgia)","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ka_GE"}},{"id":"l:kbd","type":"languages","attributes":{"code":"kbd","name":"Kabardian","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kbd"}},{"id":"l:kha","type":"languages","attributes":{"code":"kha","name":"Khasi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kha"}},{"id":"l:ki","type":"languages","attributes":{"code":"ki","name":"Kikuyu","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ki"}},{"id":"l:kk","type":"languages","attributes":{"code":"kk","name":"Kazakh","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kk"}},{"id":"l:kk@Arab","type":"languages","attributes":{"code":"kk@Arab","name":"Kazakh (Arabic)","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kk@Arab"}},{"id":"l:kk@Cyrl","type":"languages","attributes":{"code":"kk@Cyrl","name":"Kazakh (Cyrillic)","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kk@Cyrl"}},{"id":"l:kk_KZ","type":"languages","attributes":{"code":"kk_KZ","name":"Kazakh (Kazakhstan)","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kk_KZ"}},{"id":"l:kk@latin","type":"languages","attributes":{"code":"kk@latin","name":"Kazakh (Latin)","rtl":false,"plural_equation":"(n!=1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kk@latin"}},{"id":"l:kl","type":"languages","attributes":{"code":"kl","name":"Greenlandic","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kl"}},{"id":"l:km","type":"languages","attributes":{"code":"km","name":"Khmer","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:km"}},{"id":"l:km_KH","type":"languages","attributes":{"code":"km_KH","name":"Khmer (Cambodia)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:km_KH"}},{"id":"l:kmr","type":"languages","attributes":{"code":"kmr","name":"Kurmanji","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kmr"}},{"id":"l:kn","type":"languages","attributes":{"code":"kn","name":"Kannada","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"(n is decimal and n < 1) or n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kn"}},{"id":"l:kn_IN","type":"languages","attributes":{"code":"kn_IN","name":"Kannada (India)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"(n is decimal and n < 1) or n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kn_IN"}},{"id":"l:ko","type":"languages","attributes":{"code":"ko","name":"Korean","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ko"}},{"id":"l:kog","type":"languages","attributes":{"code":"kog","name":"Kogi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kog"}},{"id":"l:kok","type":"languages","attributes":{"code":"kok","name":"Konkani","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kok"}},{"id":"l:ko_KR","type":"languages","attributes":{"code":"ko_KR","name":"Korean (Korea)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ko_KR"}},{"id":"l:kqn","type":"languages","attributes":{"code":"kqn","name":"Kaonde","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kqn"}},{"id":"l:krc","type":"languages","attributes":{"code":"krc","name":"Karachay-Balkar","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:krc"}},{"id":"l:krl","type":"languages","attributes":{"code":"krl","name":"Karelian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:krl"}},{"id":"l:ks","type":"languages","attributes":{"code":"ks","name":"Kashmiri","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ks"}},{"id":"l:ksh","type":"languages","attributes":{"code":"ksh","name":"Colognian","rtl":false,"plural_equation":"(n==0) ? 0 : (n==1) ? 1 : 2","plural_rules":{"zero":"n is 0","one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ksh"}},{"id":"l:ks_IN","type":"languages","attributes":{"code":"ks_IN","name":"Kashmiri (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ks_IN"}},{"id":"l:ku","type":"languages","attributes":{"code":"ku","name":"Kurdish","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ku"}},{"id":"l:ku_IQ","type":"languages","attributes":{"code":"ku_IQ","name":"Kurdish (Iraq)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ku_IQ"}},{"id":"l:kw","type":"languages","attributes":{"code":"kw","name":"Cornish","rtl":false,"plural_equation":"n == 0 ? 0 : n == 1 ? 1 : (n % 100 == 2 || n % 100 == 22 || n % 100 == 42 || n % 100 == 62 || n % 100 == 82) || n % 1000 == 0 && (n % 100000 >= 1000 && n % 100000 <= 20000 || n % 100000 == 40000 || n % 100000 == 60000 || n % 100000 == 80000) || n != 0 && n % 1000000 == 100000 ? 2 : (n % 100 == 3 || n % 100 == 23 || n % 100 == 43 || n % 100 == 63 || n % 100 == 83) ? 3 : n != 1 && (n % 100 == 1 || n % 100 == 21 || n % 100 == 41 || n % 100 == 61 || n % 100 == 81) ? 4 : 5","plural_rules":{"zero":"n is 0","one":"n is 1","two":"n mod 100 is 2,22,42,62,82 or n mod 1000 is 0 and (n mod 100000 in 1000..20000 or n % 100000 is 40000,60000,80000 or n is not 0 and && n mod 1000000 is 100000)","many":"n is not 1 and n mod 100 is 1,21,41,61,81","few":"n mod 100 is 3,23,43,63,83","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:kw"}},{"id":"l:ky","type":"languages","attributes":{"code":"ky","name":"Kyrgyz","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ky"}},{"id":"l:ky@Arab","type":"languages","attributes":{"code":"ky@Arab","name":"Kyrgyz (Arabic)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ky@Arab"}},{"id":"l:la","type":"languages","attributes":{"code":"la","name":"Latin","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:la"}},{"id":"l:lad","type":"languages","attributes":{"code":"lad","name":"Ladino","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lad"}},{"id":"l:lb","type":"languages","attributes":{"code":"lb","name":"Luxembourgish","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lb"}},{"id":"l:lez","type":"languages","attributes":{"code":"lez","name":"Lezghian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lez"}},{"id":"l:lfn","type":"languages","attributes":{"code":"lfn","name":"Lingua Franca Nova","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lfn"}},{"id":"l:lg","type":"languages","attributes":{"code":"lg","name":"Luganda","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lg"}},{"id":"l:lg_UG","type":"languages","attributes":{"code":"lg_UG","name":"Ganda (Uganda)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lg_UG"}},{"id":"l:li","type":"languages","attributes":{"code":"li","name":"Limburgian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:li"}},{"id":"l:lij","type":"languages","attributes":{"code":"lij","name":"Ligurian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lij"}},{"id":"l:lkt","type":"languages","attributes":{"code":"lkt","name":"Lakota","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lkt"}},{"id":"l:lmo","type":"languages","attributes":{"code":"lmo","name":"Lombard","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : 2","plural_rules":{"zero":"n is 0","one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lmo"}},{"id":"l:ln","type":"languages","attributes":{"code":"ln","name":"Lingala","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ln"}},{"id":"l:lo","type":"languages","attributes":{"code":"lo","name":"Lao","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lo"}},{"id":"l:lo_LA","type":"languages","attributes":{"code":"lo_LA","name":"Lao (Laos)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lo_LA"}},{"id":"l:loz_ZM","type":"languages","attributes":{"code":"loz_ZM","name":"Lozi (Zambia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:loz_ZM"}},{"id":"l:lrc","type":"languages","attributes":{"code":"lrc","name":"Northern Luri","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lrc"}},{"id":"l:lt","type":"languages","attributes":{"code":"lt","name":"Lithuanian","rtl":false,"plural_equation":"(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 not in 11..19","many":"n is decimal","few":"n mod 10 in 2..9 and n mod 100 not in 11..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lt"}},{"id":"l:ltg","type":"languages","attributes":{"code":"ltg","name":"Latgalian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)","plural_rules":{"zero":"n mod 10 is 1 and n mod 100 is not 11","one":"n != 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ltg"}},{"id":"l:lt_LT","type":"languages","attributes":{"code":"lt_LT","name":"Lithuanian (Lithuania)","rtl":false,"plural_equation":"(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 not in 11..19","many":"n is decimal","few":"n mod 10 in 2..9 and n mod 100 not in 11..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lt_LT"}},{"id":"l:lue","type":"languages","attributes":{"code":"lue","name":"Luvale","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lue"}},{"id":"l:lus","type":"languages","attributes":{"code":"lus","name":"Mizo","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lus"}},{"id":"l:luz","type":"languages","attributes":{"code":"luz","name":"Southern Luri","rtl":true,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:luz"}},{"id":"l:lv","type":"languages","attributes":{"code":"lv","name":"Latvian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)","plural_rules":{"zero":"n is 0","one":"n mod 10 is 1 and n mod 100 is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lv"}},{"id":"l:lv_LV","type":"languages","attributes":{"code":"lv_LV","name":"Latvian (Latvia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)","plural_rules":{"zero":"n is 0","one":"n mod 10 is 1 and n mod 100 is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lv_LV"}},{"id":"l:lzh","type":"languages","attributes":{"code":"lzh","name":"Chinese (Literary)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:lzh"}},{"id":"l:mai","type":"languages","attributes":{"code":"mai","name":"Maithili","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mai"}},{"id":"l:mfe","type":"languages","attributes":{"code":"mfe","name":"Mauritian Creole","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mfe"}},{"id":"l:mg","type":"languages","attributes":{"code":"mg","name":"Malagasy","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mg"}},{"id":"l:mh","type":"languages","attributes":{"code":"mh","name":"Marshallese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mh"}},{"id":"l:mhr","type":"languages","attributes":{"code":"mhr","name":"Meadow Mari","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mhr"}},{"id":"l:mhr_RU","type":"languages","attributes":{"code":"mhr_RU","name":"Eastern Mari (Russia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mhr_RU"}},{"id":"l:mi","type":"languages","attributes":{"code":"mi","name":"Maori","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mi"}},{"id":"l:min","type":"languages","attributes":{"code":"min","name":"Minangkabau","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:min"}},{"id":"l:mk","type":"languages","attributes":{"code":"mk","name":"Macedonian","rtl":false,"plural_equation":"(n % 10 == 1 && n % 100 != 11) ? 0 : 1","plural_rules":{"one":"n mod 10 is 1 and n is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mk"}},{"id":"l:mk_MK","type":"languages","attributes":{"code":"mk_MK","name":"Macedonian (Macedonia)","rtl":false,"plural_equation":"(n % 10 == 1 && n % 100 != 11) ? 0 : 1","plural_rules":{"one":"n mod 10 is 1 and n is not 11","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mk_MK"}},{"id":"l:ml","type":"languages","attributes":{"code":"ml","name":"Malayalam","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ml"}},{"id":"l:ml_IN","type":"languages","attributes":{"code":"ml_IN","name":"Malayalam (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ml_IN"}},{"id":"l:mn","type":"languages","attributes":{"code":"mn","name":"Mongolian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mn"}},{"id":"l:mni","type":"languages","attributes":{"code":"mni","name":"Manipuri","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mni"}},{"id":"l:mn_MN","type":"languages","attributes":{"code":"mn_MN","name":"Mongolian (Mongolia)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mn_MN"}},{"id":"l:mnp","type":"languages","attributes":{"code":"mnp","name":"Chinese (Min Bei)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mnp"}},{"id":"l:mr","type":"languages","attributes":{"code":"mr","name":"Marathi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mr"}},{"id":"l:mr_IN","type":"languages","attributes":{"code":"mr_IN","name":"Marathi (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mr_IN"}},{"id":"l:ms","type":"languages","attributes":{"code":"ms","name":"Malay","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ms"}},{"id":"l:ms@Arab","type":"languages","attributes":{"code":"ms@Arab","name":"Malay (Arabic)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ms@Arab"}},{"id":"l:ms_BN","type":"languages","attributes":{"code":"ms_BN","name":"Malay (Brunei)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ms_BN"}},{"id":"l:ms_MY","type":"languages","attributes":{"code":"ms_MY","name":"Malay (Malaysia)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ms_MY"}},{"id":"l:mt","type":"languages","attributes":{"code":"mt","name":"Maltese","rtl":false,"plural_equation":"(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)","plural_rules":{"one":"n is 1","many":"n mod 100 in 11..19","few":"n is 0 or n mod 100 in 2..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mt"}},{"id":"l:mt_MT","type":"languages","attributes":{"code":"mt_MT","name":"Maltese (Malta)","rtl":false,"plural_equation":"(n==1 ? 0 : n==0 || ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)","plural_rules":{"one":"n is 1","many":"n mod 100 in 11..19","few":"n is 0 or n mod 100 in 2..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mt_MT"}},{"id":"l:mus","type":"languages","attributes":{"code":"mus","name":"Muscogee","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mus"}},{"id":"l:mw1","type":"languages","attributes":{"code":"mw1","name":"Mirandese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mw1"}},{"id":"l:mxp","type":"languages","attributes":{"code":"mxp","name":"Tlahuitoltepec Mixe","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:mxp"}},{"id":"l:my","type":"languages","attributes":{"code":"my","name":"Burmese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:my"}},{"id":"l:my_MM","type":"languages","attributes":{"code":"my_MM","name":"Burmese (Myanmar)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:my_MM"}},{"id":"l:myv","type":"languages","attributes":{"code":"myv","name":"Erzya","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:myv"}},{"id":"l:nah","type":"languages","attributes":{"code":"nah","name":"Nahuatl","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nah"}},{"id":"l:nan","type":"languages","attributes":{"code":"nan","name":"Chinese (Min Nan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nan"}},{"id":"l:nap","type":"languages","attributes":{"code":"nap","name":"Neapolitan","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nap"}},{"id":"l:nb","type":"languages","attributes":{"code":"nb","name":"Norwegian Bokmål","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nb"}},{"id":"l:nb_NO","type":"languages","attributes":{"code":"nb_NO","name":"Norwegian Bokmål (Norway)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nb_NO"}},{"id":"l:nd","type":"languages","attributes":{"code":"nd","name":"Ndebele, North","rtl":false,"plural_equation":"(n == 1 ? 0 : 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nd"}},{"id":"l:nds","type":"languages","attributes":{"code":"nds","name":"Low German","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nds"}},{"id":"l:ne","type":"languages","attributes":{"code":"ne","name":"Nepali","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ne"}},{"id":"l:ne_NP","type":"languages","attributes":{"code":"ne_NP","name":"Nepali (Nepal)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ne_NP"}},{"id":"l:nia","type":"languages","attributes":{"code":"nia","name":"Nias","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nia"}},{"id":"l:nl","type":"languages","attributes":{"code":"nl","name":"Dutch","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nl"}},{"id":"l:nl_BE","type":"languages","attributes":{"code":"nl_BE","name":"Dutch (Belgium)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nl_BE"}},{"id":"l:nl_CW","type":"languages","attributes":{"code":"nl_CW","name":"Dutch (CURAÇAO)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nl_CW"}},{"id":"l:nl_NL","type":"languages","attributes":{"code":"nl_NL","name":"Dutch (Netherlands)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nl_NL"}},{"id":"l:nn","type":"languages","attributes":{"code":"nn","name":"Norwegian Nynorsk","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nn"}},{"id":"l:nn_NO","type":"languages","attributes":{"code":"nn_NO","name":"Norwegian Nynorsk (Norway)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nn_NO"}},{"id":"l:no","type":"languages","attributes":{"code":"no","name":"Norwegian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:no"}},{"id":"l:no_NO","type":"languages","attributes":{"code":"no_NO","name":"Norwegian (Norway)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:no_NO"}},{"id":"l:nqo","type":"languages","attributes":{"code":"nqo","name":"N\'ko","rtl":true,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nqo"}},{"id":"l:nr","type":"languages","attributes":{"code":"nr","name":"Ndebele, South","rtl":false,"plural_equation":"(n == 1 ? 0 : 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nr"}},{"id":"l:nso","type":"languages","attributes":{"code":"nso","name":"Northern Sotho","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nso"}},{"id":"l:nv","type":"languages","attributes":{"code":"nv","name":"Navajo","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:nv"}},{"id":"l:ny","type":"languages","attributes":{"code":"ny","name":"Nyanja","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ny"}},{"id":"l:ny_MW","type":"languages","attributes":{"code":"ny_MW","name":"Nyanja (Malawi)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ny_MW"}},{"id":"l:oc","type":"languages","attributes":{"code":"oc","name":"Occitan (post 1500)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc"}},{"id":"l:oc-aranes","type":"languages","attributes":{"code":"oc-aranes","name":"Aranese","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-aranes"}},{"id":"l:oc-auvern","type":"languages","attributes":{"code":"oc-auvern","name":"Occitan (Auvergnat)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-auvern"}},{"id":"l:oc-cisaup","type":"languages","attributes":{"code":"oc-cisaup","name":"Occitan (Cisalpine)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-cisaup"}},{"id":"l:oc-gascon","type":"languages","attributes":{"code":"oc-gascon","name":"Occitan (Gascon)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-gascon"}},{"id":"l:oc-lemosin","type":"languages","attributes":{"code":"oc-lemosin","name":"Occitan (Limousin)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-lemosin"}},{"id":"l:oc-lengadoc","type":"languages","attributes":{"code":"oc-lengadoc","name":"Occitan (Languedocien)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-lengadoc"}},{"id":"l:oc-nicard","type":"languages","attributes":{"code":"oc-nicard","name":"Occitan (Niçard)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-nicard"}},{"id":"l:oc-provenc","type":"languages","attributes":{"code":"oc-provenc","name":"Occitan (Provençal)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-provenc"}},{"id":"l:oc-vivaraup","type":"languages","attributes":{"code":"oc-vivaraup","name":"Occitan (Vivaro-Alpine)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:oc-vivaraup"}},{"id":"l:om","type":"languages","attributes":{"code":"om","name":"Oromo","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:om"}},{"id":"l:or","type":"languages","attributes":{"code":"or","name":"Odia","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:or"}},{"id":"l:or_IN","type":"languages","attributes":{"code":"or_IN","name":"Odia (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:or_IN"}},{"id":"l:os","type":"languages","attributes":{"code":"os","name":"Ossetic","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:os"}},{"id":"l:pa","type":"languages","attributes":{"code":"pa","name":"Panjabi (Punjabi)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pa"}},{"id":"l:pa_IN","type":"languages","attributes":{"code":"pa_IN","name":"Panjabi (Punjabi) (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pa_IN"}},{"id":"l:pam","type":"languages","attributes":{"code":"pam","name":"Kapampangan","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pam"}},{"id":"l:pap","type":"languages","attributes":{"code":"pap","name":"Papiamento","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pap"}},{"id":"l:pap_AW","type":"languages","attributes":{"code":"pap_AW","name":"Papiamento (ARUBA)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pap_AW"}},{"id":"l:pap_CW","type":"languages","attributes":{"code":"pap_CW","name":"Papiamento (CURAÇAO)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pap_CW"}},{"id":"l:pa_PK","type":"languages","attributes":{"code":"pa_PK","name":"Panjabi (Pakistan)","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pa_PK"}},{"id":"l:pbb","type":"languages","attributes":{"code":"pbb","name":"Páez","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pbb"}},{"id":"l:pcm","type":"languages","attributes":{"code":"pcm","name":"Nigerian Pidgin","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n <=1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pcm"}},{"id":"l:pfl","type":"languages","attributes":{"code":"pfl","name":"Palatinate German","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pfl"}},{"id":"l:pl","type":"languages","attributes":{"code":"pl","name":"Polish","rtl":false,"plural_equation":"(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3)","plural_rules":{"one":"n is 1","many":"n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pl"}},{"id":"l:pl_PL","type":"languages","attributes":{"code":"pl_PL","name":"Polish (Poland)","rtl":false,"plural_equation":"(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3)","plural_rules":{"one":"n is 1","many":"n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pl_PL"}},{"id":"l:pl@qtfiletype","type":"languages","attributes":{"code":"pl@qtfiletype","name":"Polish (QT FILETYPE)","rtl":false,"plural_equation":"(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<10 || n%100>20) ? 1 : 2)","plural_rules":{"one":"n is 1","few":"n mod 10 in 2..4 and n mod 100 not in 10..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pl@qtfiletype"}},{"id":"l:pms","type":"languages","attributes":{"code":"pms","name":"Piemontese","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pms"}},{"id":"l:ps","type":"languages","attributes":{"code":"ps","name":"Pashto","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ps"}},{"id":"l:ps_AF","type":"languages","attributes":{"code":"ps_AF","name":"Pashto (Afghanistan)","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ps_AF"}},{"id":"l:pt","type":"languages","attributes":{"code":"pt","name":"Portuguese","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt"}},{"id":"l:pt_AO","type":"languages","attributes":{"code":"pt_AO","name":"Portuguese (Angola)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_AO"}},{"id":"l:pt_BR","type":"languages","attributes":{"code":"pt_BR","name":"Portuguese (Brazil)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_BR"}},{"id":"l:pt_CL","type":"languages","attributes":{"code":"pt_CL","name":"Portuguese (Chile)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_CL"}},{"id":"l:pt_CO","type":"languages","attributes":{"code":"pt_CO","name":"Portuguese (Colombia)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_CO"}},{"id":"l:pt_MX","type":"languages","attributes":{"code":"pt_MX","name":"Portuguese (Mexico)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_MX"}},{"id":"l:pt_MZ","type":"languages","attributes":{"code":"pt_MZ","name":"Portuguese (Mozambique)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_MZ"}},{"id":"l:pt_PE","type":"languages","attributes":{"code":"pt_PE","name":"Portuguese (Peru)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_PE"}},{"id":"l:pt_PT","type":"languages","attributes":{"code":"pt_PT","name":"Portuguese (Portugal)","rtl":false,"plural_equation":"(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2","plural_rules":{"one":"n is 0 or n is 1","many":"n is not 0 and n mod 1000000 == 0","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt_PT"}},{"id":"l:pt@qtfiletype","type":"languages","attributes":{"code":"pt@qtfiletype","name":"Portuguese (QT FILETYPE)","rtl":false,"plural_equation":"n != 1","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:pt@qtfiletype"}},{"id":"l:qji","type":"languages","attributes":{"code":"qji","name":"Atanque","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:qji"}},{"id":"l:qu","type":"languages","attributes":{"code":"qu","name":"Quechua","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:qu"}},{"id":"l:quc","type":"languages","attributes":{"code":"quc","name":"K\'iche\'","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:quc"}},{"id":"l:qu_EC","type":"languages","attributes":{"code":"qu_EC","name":"Quechua (Ecuador)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:qu_EC"}},{"id":"l:quh","type":"languages","attributes":{"code":"quh","name":"South Bolivian Quechua","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:quh"}},{"id":"l:rap","type":"languages","attributes":{"code":"rap","name":"Rapa Nui","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rap"}},{"id":"l:rif","type":"languages","attributes":{"code":"rif","name":"Tarifit","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rif"}},{"id":"l:rm","type":"languages","attributes":{"code":"rm","name":"Romansh","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rm"}},{"id":"l:rn","type":"languages","attributes":{"code":"rn","name":"Kirundi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rn"}},{"id":"l:ro","type":"languages","attributes":{"code":"ro","name":"Romanian","rtl":false,"plural_equation":"(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))","plural_rules":{"one":"n is 1","few":"n is 0 OR n is not 1 AND n mod 100 in 1..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ro"}},{"id":"l:ro_MD","type":"languages","attributes":{"code":"ro_MD","name":"Romanian (Moldova)","rtl":false,"plural_equation":"(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))","plural_rules":{"one":"n is 1","few":"n is 0 OR n is not 1 AND n mod 100 in 1..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ro_MD"}},{"id":"l:ro_RO","type":"languages","attributes":{"code":"ro_RO","name":"Romanian (Romania)","rtl":false,"plural_equation":"(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))","plural_rules":{"one":"n is 1","few":"n is 0 OR n is not 1 AND n mod 100 in 1..19","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ro_RO"}},{"id":"l:ru","type":"languages","attributes":{"code":"ru","name":"Russian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru"}},{"id":"l:rue","type":"languages","attributes":{"code":"rue","name":"Rusyn","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rue"}},{"id":"l:ru_ee","type":"languages","attributes":{"code":"ru_ee","name":"Russian (Estonia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_ee"}},{"id":"l:ru_KZ","type":"languages","attributes":{"code":"ru_KZ","name":"Russian (Kazakhstan)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_KZ"}},{"id":"l:ru_lt","type":"languages","attributes":{"code":"ru_lt","name":"Russian (Lithuania)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_lt"}},{"id":"l:ru_lv","type":"languages","attributes":{"code":"ru_lv","name":"Russian (Latvia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_lv"}},{"id":"l:ru@petr1708","type":"languages","attributes":{"code":"ru@petr1708","name":"Russian Petrine orthography","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru@petr1708"}},{"id":"l:ru@qtfiletype","type":"languages","attributes":{"code":"ru@qtfiletype","name":"Russian (QT FILETYPE)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 10..20","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru@qtfiletype"}},{"id":"l:ru_RU","type":"languages","attributes":{"code":"ru_RU","name":"Russian (Russia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_RU"}},{"id":"l:ru_UA","type":"languages","attributes":{"code":"ru_UA","name":"Russian (Ukraine)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","many":"n mod 10 == 0 OR n mod 10 in 5..9 OR n mod 100 in 11..14","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ru_UA"}},{"id":"l:rw","type":"languages","attributes":{"code":"rw","name":"Kinyarwanda","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:rw"}},{"id":"l:sa","type":"languages","attributes":{"code":"sa","name":"Sanskrit","rtl":false,"plural_equation":"(n==1 ? 0 : n==2 ? 1:2)","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sa"}},{"id":"l:sah","type":"languages","attributes":{"code":"sah","name":"Sakha (Yakut)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sah"}},{"id":"l:saq","type":"languages","attributes":{"code":"saq","name":"Samburu","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:saq"}},{"id":"l:sat","type":"languages","attributes":{"code":"sat","name":"Santali","rtl":false,"plural_equation":"n == 1 ? 0 : n == 2 ? 1 : 2","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sat"}},{"id":"l:sc","type":"languages","attributes":{"code":"sc","name":"Sardinian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sc"}},{"id":"l:scn","type":"languages","attributes":{"code":"scn","name":"Sicilian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:scn"}},{"id":"l:sco","type":"languages","attributes":{"code":"sco","name":"Scots","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sco"}},{"id":"l:sd","type":"languages","attributes":{"code":"sd","name":"Sindhi","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sd"}},{"id":"l:sdh","type":"languages","attributes":{"code":"sdh","name":"Southern Kurdish","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sdh"}},{"id":"l:se","type":"languages","attributes":{"code":"se","name":"Northern Sami","rtl":false,"plural_equation":"(n == 1 ? 0 : n == 2 ? 1 : 2)","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:se"}},{"id":"l:sg","type":"languages","attributes":{"code":"sg","name":"Sango","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sg"}},{"id":"l:shi","type":"languages","attributes":{"code":"shi","name":"Tachelhit","rtl":false,"plural_equation":"(n == 1) ? 0 : (n >= 2 && n <= 10) ? 1 : 2)","plural_rules":{"one":"n is 1","few":"n in 2..10","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:shi"}},{"id":"l:shy","type":"languages","attributes":{"code":"shy","name":"Tachawit","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:shy"}},{"id":"l:si","type":"languages","attributes":{"code":"si","name":"Sinhala","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:si"}},{"id":"l:sid","type":"languages","attributes":{"code":"sid","name":"Sidama","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sid"}},{"id":"l:si_LK","type":"languages","attributes":{"code":"si_LK","name":"Sinhala (Sri Lanka)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:si_LK"}},{"id":"l:sk","type":"languages","attributes":{"code":"sk","name":"Slovak","rtl":false,"plural_equation":"(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3)","plural_rules":{"one":"n is 1","many":"n is decimal","few":"n in 2..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sk"}},{"id":"l:skr","type":"languages","attributes":{"code":"skr","name":"Saraiki","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:skr"}},{"id":"l:sk_SK","type":"languages","attributes":{"code":"sk_SK","name":"Slovak (Slovakia)","rtl":false,"plural_equation":"(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3)","plural_rules":{"one":"n is 1","many":"n is decimal","few":"n in 2..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sk_SK"}},{"id":"l:sl","type":"languages","attributes":{"code":"sl","name":"Slovenian","rtl":false,"plural_equation":"(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)","plural_rules":{"one":"n mod 100 is 1","two":"n mod 100 is 2","few":"n mod 100 in 3..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sl"}},{"id":"l:sl_SI","type":"languages","attributes":{"code":"sl_SI","name":"Slovenian (Slovenia)","rtl":false,"plural_equation":"(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)","plural_rules":{"one":"n mod 100 is 1","two":"n mod 100 is 2","few":"n mod 100 in 3..4","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sl_SI"}},{"id":"l:sm","type":"languages","attributes":{"code":"sm","name":"Samoan","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sm"}},{"id":"l:sma","type":"languages","attributes":{"code":"sma","name":"Southern Sami","rtl":false,"plural_equation":"(n==1 ? 0 : n==2 ? 1 : 2)","plural_rules":{"one":"n is 1","two":"n is 2","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sma"}},{"id":"l:sn","type":"languages","attributes":{"code":"sn","name":"Shona","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sn"}},{"id":"l:so","type":"languages","attributes":{"code":"so","name":"Somali","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:so"}},{"id":"l:son","type":"languages","attributes":{"code":"son","name":"Songhay","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:son"}},{"id":"l:sq","type":"languages","attributes":{"code":"sq","name":"Albanian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sq"}},{"id":"l:sq_AL","type":"languages","attributes":{"code":"sq_AL","name":"Albanian (Albania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sq_AL"}},{"id":"l:sr","type":"languages","attributes":{"code":"sr","name":"Serbian","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr"}},{"id":"l:sr_BA@latin","type":"languages","attributes":{"code":"sr_BA@latin","name":"Serbian (Latin) (Bosnia and Herzegovina)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_BA@latin"}},{"id":"l:sr_BA-SRP","type":"languages","attributes":{"code":"sr_BA-SRP","name":"Serbian (Republika Srpska)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_BA-SRP"}},{"id":"l:sr@Cyrl","type":"languages","attributes":{"code":"sr@Cyrl","name":"Serbian (Cyrillic)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr@Cyrl"}},{"id":"l:sr@Ijekavian","type":"languages","attributes":{"code":"sr@Ijekavian","name":"Serbian (Ijekavian)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr@Ijekavian"}},{"id":"l:sr@ijekavianlatin","type":"languages","attributes":{"code":"sr@ijekavianlatin","name":"Serbian (Ijekavian Latin)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr@ijekavianlatin"}},{"id":"l:sr@latin","type":"languages","attributes":{"code":"sr@latin","name":"Serbian (Latin)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr@latin"}},{"id":"l:sr_ME","type":"languages","attributes":{"code":"sr_ME","name":"Serbian (Montenegro)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_ME"}},{"id":"l:sr_ME@latin","type":"languages","attributes":{"code":"sr_ME@latin","name":"Serbian (Latin) (Montenegro)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_ME@latin"}},{"id":"l:sr_RS","type":"languages","attributes":{"code":"sr_RS","name":"Serbian (Serbia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_RS"}},{"id":"l:sr_RS@latin","type":"languages","attributes":{"code":"sr_RS@latin","name":"Serbian (Latin) (Serbia)","rtl":false,"plural_equation":"(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n mod 10 is 1 and n mod 100 is not 11","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sr_RS@latin"}},{"id":"l:ss","type":"languages","attributes":{"code":"ss","name":"Swati","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ss"}},{"id":"l:st","type":"languages","attributes":{"code":"st","name":"Sotho, Southern","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:st"}},{"id":"l:st_ZA","type":"languages","attributes":{"code":"st_ZA","name":"Sotho, Southern (South Africa)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:st_ZA"}},{"id":"l:su","type":"languages","attributes":{"code":"su","name":"Sundanese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:su"}},{"id":"l:sv","type":"languages","attributes":{"code":"sv","name":"Swedish","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sv"}},{"id":"l:sv_FI","type":"languages","attributes":{"code":"sv_FI","name":"Swedish (Finland)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sv_FI"}},{"id":"l:sv_SE","type":"languages","attributes":{"code":"sv_SE","name":"Swedish (Sweden)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sv_SE"}},{"id":"l:sw","type":"languages","attributes":{"code":"sw","name":"Swahili","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sw"}},{"id":"l:sw_CD","type":"languages","attributes":{"code":"sw_CD","name":"Swahili (Democratic Republic of the Congo)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sw_CD"}},{"id":"l:swg","type":"languages","attributes":{"code":"swg","name":"Swabian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:swg"}},{"id":"l:sw_KE","type":"languages","attributes":{"code":"sw_KE","name":"Swahili (Kenya)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sw_KE"}},{"id":"l:sw_TZ","type":"languages","attributes":{"code":"sw_TZ","name":"Swahili (Tanzania)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sw_TZ"}},{"id":"l:sw_UG","type":"languages","attributes":{"code":"sw_UG","name":"Swahili (Uganda)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:sw_UG"}},{"id":"l:szl","type":"languages","attributes":{"code":"szl","name":"Silesian","rtl":false,"plural_equation":"(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)","plural_rules":{"one":"n is 1","few":"n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:szl"}},{"id":"l:ta","type":"languages","attributes":{"code":"ta","name":"Tamil","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ta"}},{"id":"l:ta_IN","type":"languages","attributes":{"code":"ta_IN","name":"Tamil (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ta_IN"}},{"id":"l:ta_LK","type":"languages","attributes":{"code":"ta_LK","name":"Tamil (Sri-Lanka)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ta_LK"}},{"id":"l:te","type":"languages","attributes":{"code":"te","name":"Telugu","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:te"}},{"id":"l:te_IN","type":"languages","attributes":{"code":"te_IN","name":"Telugu (India)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:te_IN"}},{"id":"l:tet","type":"languages","attributes":{"code":"tet","name":"Tetum (Tetun)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tet"}},{"id":"l:tg","type":"languages","attributes":{"code":"tg","name":"Tajik","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tg"}},{"id":"l:tg_TJ","type":"languages","attributes":{"code":"tg_TJ","name":"Tajik (Tajikistan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tg_TJ"}},{"id":"l:th","type":"languages","attributes":{"code":"th","name":"Thai","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:th"}},{"id":"l:th_TH","type":"languages","attributes":{"code":"th_TH","name":"Thai (Thailand)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:th_TH"}},{"id":"l:ti","type":"languages","attributes":{"code":"ti","name":"Tigrinya","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ti"}},{"id":"l:tk","type":"languages","attributes":{"code":"tk","name":"Turkmen","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tk"}},{"id":"l:tk_TM","type":"languages","attributes":{"code":"tk_TM","name":"Turkmen (Turkmenistan)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tk_TM"}},{"id":"l:tl","type":"languages","attributes":{"code":"tl","name":"Tagalog","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tl"}},{"id":"l:tlh","type":"languages","attributes":{"code":"tlh","name":"Klingon","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tlh"}},{"id":"l:tl_PH","type":"languages","attributes":{"code":"tl_PH","name":"Tagalog (Philippines)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tl_PH"}},{"id":"l:tn","type":"languages","attributes":{"code":"tn","name":"Tswana","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tn"}},{"id":"l:to","type":"languages","attributes":{"code":"to","name":"Tongan","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:to"}},{"id":"l:tok","type":"languages","attributes":{"code":"tok","name":"Toki Pona","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tok"}},{"id":"l:tpi","type":"languages","attributes":{"code":"tpi","name":"Tok Pisin","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tpi"}},{"id":"l:tr","type":"languages","attributes":{"code":"tr","name":"Turkish","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tr"}},{"id":"l:tr_CY","type":"languages","attributes":{"code":"tr_CY","name":"Turkish (Cyprus)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tr_CY"}},{"id":"l:tr_DE","type":"languages","attributes":{"code":"tr_DE","name":"Turkish (Germany)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tr_DE"}},{"id":"l:tr_TR","type":"languages","attributes":{"code":"tr_TR","name":"Turkish (Turkey)","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tr_TR"}},{"id":"l:ts","type":"languages","attributes":{"code":"ts","name":"Tsonga","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ts"}},{"id":"l:tsi","type":"languages","attributes":{"code":"tsi","name":"Tsimshian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tsi"}},{"id":"l:tt","type":"languages","attributes":{"code":"tt","name":"Tatar","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tt"}},{"id":"l:tum","type":"languages","attributes":{"code":"tum","name":"Tumbuka","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tum"}},{"id":"l:tuv","type":"languages","attributes":{"code":"tuv","name":"Turkana","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tuv"}},{"id":"l:twd","type":"languages","attributes":{"code":"twd","name":"Tweants","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:twd"}},{"id":"l:tzj","type":"languages","attributes":{"code":"tzj","name":"Tz’utujil","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tzj"}},{"id":"l:tzl","type":"languages","attributes":{"code":"tzl","name":"Talossan","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tzl"}},{"id":"l:tzm","type":"languages","attributes":{"code":"tzm","name":"Central Atlas Tamazight","rtl":false,"plural_equation":"(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1","plural_rules":{"one":"n in 0..1 or n in 11..99","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:tzm"}},{"id":"l:udm","type":"languages","attributes":{"code":"udm","name":"Udmurt","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:udm"}},{"id":"l:ug","type":"languages","attributes":{"code":"ug","name":"Uyghur","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ug"}},{"id":"l:ug@Arab","type":"languages","attributes":{"code":"ug@Arab","name":"Uighur (Arabic)","rtl":true,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ug@Arab"}},{"id":"l:ug@Cyrl","type":"languages","attributes":{"code":"ug@Cyrl","name":"Uighur (Cyrillic)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ug@Cyrl"}},{"id":"l:ug@Latin","type":"languages","attributes":{"code":"ug@Latin","name":"Uighur (Latin)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ug@Latin"}},{"id":"l:uk","type":"languages","attributes":{"code":"uk","name":"Ukrainian","rtl":false,"plural_equation":"(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3)","plural_rules":{"one":"n mod 1 is 0 and n mod 10 is 1 and n mod 100 is not 11","many":"n mod 1 is 0 and (n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14)","few":"n mod 1 is 0 and n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uk"}},{"id":"l:uk_UA","type":"languages","attributes":{"code":"uk_UA","name":"Ukrainian (Ukraine)","rtl":false,"plural_equation":"(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3)","plural_rules":{"one":"n mod 1 is 0 and n mod 10 is 1 and n mod 100 is not 11","many":"n mod 1 is 0 and (n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14)","few":"n mod 1 is 0 and n mod 10 in 2..4 and n mod 100 not in 12..14","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uk_UA"}},{"id":"l:ur","type":"languages","attributes":{"code":"ur","name":"Urdu","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ur"}},{"id":"l:ur_PK","type":"languages","attributes":{"code":"ur_PK","name":"Urdu (Pakistan)","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ur_PK"}},{"id":"l:uz","type":"languages","attributes":{"code":"uz","name":"Uzbek","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uz"}},{"id":"l:uz@Arab","type":"languages","attributes":{"code":"uz@Arab","name":"Uzbek (Arabic)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uz@Arab"}},{"id":"l:uz@Cyrl","type":"languages","attributes":{"code":"uz@Cyrl","name":"Uzbek (Cyrillic)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uz@Cyrl"}},{"id":"l:uz@Latn","type":"languages","attributes":{"code":"uz@Latn","name":"Uzbek (Latin)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uz@Latn"}},{"id":"l:uz_UZ","type":"languages","attributes":{"code":"uz_UZ","name":"Uzbek (Uzbekistan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:uz_UZ"}},{"id":"l:ve","type":"languages","attributes":{"code":"ve","name":"Venda","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:ve"}},{"id":"l:vec","type":"languages","attributes":{"code":"vec","name":"Venetian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vec"}},{"id":"l:vep","type":"languages","attributes":{"code":"vep","name":"Vepsian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vep"}},{"id":"l:vi","type":"languages","attributes":{"code":"vi","name":"Vietnamese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vi"}},{"id":"l:vi_VN","type":"languages","attributes":{"code":"vi_VN","name":"Vietnamese (Viet Nam)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vi_VN"}},{"id":"l:vls","type":"languages","attributes":{"code":"vls","name":"Vlaams","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vls"}},{"id":"l:vmf","type":"languages","attributes":{"code":"vmf","name":"Upper Franconian","rtl":false,"plural_equation":"n==0 ? 0 : n==1 ? 1 : 2","plural_rules":{"zero":"n is 0","one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vmf"}},{"id":"l:vo","type":"languages","attributes":{"code":"vo","name":"Volapük","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:vo"}},{"id":"l:wa","type":"languages","attributes":{"code":"wa","name":"Walloon","rtl":false,"plural_equation":"(n > 1)","plural_rules":{"one":"n in 0..1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wa"}},{"id":"l:war","type":"languages","attributes":{"code":"war","name":"Wáray-Wáray","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:war"}},{"id":"l:wo","type":"languages","attributes":{"code":"wo","name":"Wolof","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wo"}},{"id":"l:wo_SN","type":"languages","attributes":{"code":"wo_SN","name":"Wolof (Senegal)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wo_SN"}},{"id":"l:wuu","type":"languages","attributes":{"code":"wuu","name":"Chinese (Wu)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wuu"}},{"id":"l:wuu-Hans","type":"languages","attributes":{"code":"wuu-Hans","name":"Chinese Simplified (Wu)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wuu-Hans"}},{"id":"l:wuu-Hant","type":"languages","attributes":{"code":"wuu-Hant","name":"Chinese Traditional (Wu)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:wuu-Hant"}},{"id":"l:xcl","type":"languages","attributes":{"code":"xcl","name":"Classical Armenian","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:xcl"}},{"id":"l:xh","type":"languages","attributes":{"code":"xh","name":"Xhosa","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:xh"}},{"id":"l:yi","type":"languages","attributes":{"code":"yi","name":"Yiddish","rtl":true,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:yi"}},{"id":"l:yo","type":"languages","attributes":{"code":"yo","name":"Yoruba","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:yo"}},{"id":"l:yue","type":"languages","attributes":{"code":"yue","name":"Cantonese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:yue"}},{"id":"l:yue_CN","type":"languages","attributes":{"code":"yue_CN","name":"Cantonese (China)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:yue_CN"}},{"id":"l:zgh","type":"languages","attributes":{"code":"zgh","name":"Standard Moroccan Tamazight","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zgh"}},{"id":"l:zh","type":"languages","attributes":{"code":"zh","name":"Chinese","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh"}},{"id":"l:zh_CN","type":"languages","attributes":{"code":"zh_CN","name":"Chinese (China)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_CN"}},{"id":"l:zh_CN.GB2312","type":"languages","attributes":{"code":"zh_CN.GB2312","name":"Chinese (China) (GB2312)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_CN.GB2312"}},{"id":"l:zh-Hans","type":"languages","attributes":{"code":"zh-Hans","name":"Chinese Simplified","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh-Hans"}},{"id":"l:zh-Hant","type":"languages","attributes":{"code":"zh-Hant","name":"Chinese Traditional","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh-Hant"}},{"id":"l:zh_HK","type":"languages","attributes":{"code":"zh_HK","name":"Chinese (Hong Kong)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_HK"}},{"id":"l:zh_SG","type":"languages","attributes":{"code":"zh_SG","name":"Chinese (Singapore)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_SG"}},{"id":"l:zh_TW","type":"languages","attributes":{"code":"zh_TW","name":"Chinese (Taiwan)","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_TW"}},{"id":"l:zh_TW.Big5","type":"languages","attributes":{"code":"zh_TW.Big5","name":"Chinese (Taiwan) (Big5) ","rtl":false,"plural_equation":"0","plural_rules":{"other":"everything"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zh_TW.Big5"}},{"id":"l:zu","type":"languages","attributes":{"code":"zu","name":"Zulu","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zu"}},{"id":"l:zu_ZA","type":"languages","attributes":{"code":"zu_ZA","name":"Zulu (South Africa)","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zu_ZA"}},{"id":"l:zza","type":"languages","attributes":{"code":"zza","name":"Zaza","rtl":false,"plural_equation":"(n != 1)","plural_rules":{"one":"n is 1","other":"everything else"}},"links":{"self":"https://rest.api.transifex.com/languages/l:zza"}}]}')
  71055.   }
  71056. }
  71057. ]);
  71058. https://c.disquscdn.com/next/publisher-admin/js/3.0db1cfd53e3db2eac5e9.js