@contentcredits/sdk 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ContentCreditsSDK={})}(this,function(e){"use strict";function n(e){try{const n=e.split(".");if(3!==n.length)return null;const t=n[1].replace(/-/g,"+").replace(/_/g,"/"),o=t.padEnd(t.length+(4-t.length%4)%4,"="),i=decodeURIComponent(atob(o).split("").map(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(i)}catch(e){return null}}function t(e){const t=n(e);return!t||"number"!=typeof t.exp||Date.now()/1e3>t.exp}const o="cc_sdk_token",i="cc_rt";let c=null;const r={set(e){c=e;try{sessionStorage.setItem(o,e)}catch(e){}},get(){if(c)return t(c)?(this.clear(),null):c;try{const e=sessionStorage.getItem(o);if(e)return t(e)?(this.clear(),null):(c=e,e)}catch(e){}return null},clear(){c=null;try{sessionStorage.removeItem(o)}catch(e){}},has(){return null!==this.get()}},a={set(e){try{localStorage.setItem(i,e)}catch(e){}},get(){try{return localStorage.getItem(i)}catch(e){return null}},clear(){try{localStorage.removeItem(i)}catch(e){}},has(){return null!==this.get()}};async function s(e){const n=a.get();if(!n)return!1;const t=new AbortController,o=setTimeout(()=>t.abort(),8e3);try{const i=await fetch(`${e}/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n}),credentials:"omit",signal:t.signal});if(clearTimeout(o),!i.ok)return a.clear(),!1;const c=await i.json();return(null==c?void 0:c.accessToken)&&(null==c?void 0:c.refreshToken)?(r.set(c.accessToken),a.set(c.refreshToken),!0):(a.clear(),!1)}catch(e){return clearTimeout(o),!1}}const l=new Map;class d extends Error{constructor(e,n,t){super(n),this.status=e,this.data=t,this.name="ApiError"}}const p="data-cc-gated";function u(e){let n=document.getElementById(e);n||(n=document.createElement("div"),n.id=e,n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;z-index:2147483647;",document.body.appendChild(n));const t=n._ccShadow;if(t)return{host:n,root:t};const o=n.attachShadow({mode:"open"});return n._ccShadow=o,{host:n,root:o}}function m(e){const n=document.getElementById(e);n&&n.remove()}function h(e,n){const t=e.querySelector("style[data-cc-styles]");if(t)return void(t.textContent=n);const o=document.createElement("style");o.dataset.ccStyles="true",o.textContent=n,e.appendChild(o)}function f(e,n){e.textContent=n}function g(e,n,t){const o=document.createElement(e);return void 0!==n&&(o.textContent=n),o}const b="cc-paywall-host";function y(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<768}function v(){var e,n;try{const t=new URL(window.location.href),o=null!==(e=t.searchParams.get("token"))&&void 0!==e?e:t.searchParams.get("cc_token"),i=null!==(n=t.searchParams.get("refresh_token"))&&void 0!==n?n:t.searchParams.get("cc_refresh_token");if(function(){try{const e=new URL(window.location.href);let n=!1;["token","cc_token","refresh_token","cc_refresh_token"].forEach(t=>{e.searchParams.has(t)&&(e.searchParams.delete(t),n=!0)}),n&&history.replaceState(null,"",e.toString())}catch(e){}}(),i&&a.set(i),o)return r.set(o),o}catch(e){}return null}function x(e){return new Promise(n=>{let t=null;try{t=window.open(e,"ccAuthPopup",`scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=600,height=650,left=${Math.round(window.screenX+(window.outerWidth-600)/2)},top=${Math.round(window.screenY+(window.outerHeight-650)/2)}`)}catch(e){}if(!t||t.closed)return void n(null);let o=0;const i=setInterval(()=>{var e,c;if(o+=200,!t||t.closed)return clearInterval(i),void n(r.get());if(o>3e5){clearInterval(i);try{t.close()}catch(e){}n(null)}else try{const o=t.location.href;if(o.includes("/auth/callback")||o.includes("cc_token=")||o.includes("token=")){const o=new URLSearchParams(t.location.search),s=null!==(e=o.get("token"))&&void 0!==e?e:o.get("cc_token"),l=null!==(c=o.get("refresh_token"))&&void 0!==c?c:o.get("cc_refresh_token");if(s){r.set(s),l&&a.set(l),clearInterval(i);try{t.close()}catch(e){}n(s)}}}catch(e){}},200)})}function w(e,n,t,o){const i=function(e){let n=!1,t=null,o=[];return{hide:function(){if(t=document.querySelector(e.selector),!t)return!1;if(t.hasAttribute(p))return!0;const i=Array.from(t.querySelectorAll("p, h2, h3, h4, blockquote, ul, ol"));if(i.length>e.teaserParagraphs){const n=i[e.teaserParagraphs],c=Array.from(t.childNodes),r=c.findIndex(e=>e===n||t.contains(e)&&e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING);o=c.slice(r<0?e.teaserParagraphs:r),o.forEach(e=>{var n,t,o,i;(e instanceof HTMLElement||e instanceof Text)&&(null===(t=null===(n=e.style)||void 0===n?void 0:n.setProperty)||void 0===t||t.call(n,"display","none"),null===(i=(o=e).setAttribute)||void 0===i||i.call(o,"data-cc-hidden","true"))})}else o=Array.from(t.childNodes),o.forEach(e=>{e instanceof HTMLElement&&(e.style.display="none")});return t.setAttribute(p,"true"),n=!0,!0},reveal:function(){n&&(o.forEach(e=>{e instanceof HTMLElement&&(e.style.removeProperty("display"),e.removeAttribute("data-cc-hidden"))}),o=[],null==t||t.removeAttribute(p),n=!1)},isGated:function(){return n}}}({selector:e.contentSelector,teaserParagraphs:e.teaserParagraphs}),c=function(e){let n=null,t=null;function o(){const{root:o}=u(b);var i,c;n=o,h(n,(i=e.theme.primaryColor,`\n *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n .cc-paywall-gate {\n position: relative;\n width: 100%;\n }\n\n .cc-teaser-fade {\n position: relative;\n }\n .cc-teaser-fade::after {\n content: '';\n position: absolute;\n bottom: 0; left: 0; width: 100%;\n height: 120px;\n background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);\n pointer-events: none;\n }\n\n /* Full-viewport backdrop — centers the overlay and blocks background clicks */\n .cc-paywall-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.45);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n pointer-events: all;\n }\n\n .cc-paywall-overlay {\n background: #fff;\n border: 1px solid #e5e7eb;\n border-radius: 12px;\n padding: 32px 24px;\n width: 100%;\n max-width: 480px;\n text-align: center;\n font-family: ${c=e.theme.fontFamily};\n box-shadow: 0 8px 40px rgba(0,0,0,0.18);\n pointer-events: all;\n }\n\n .cc-paywall-overlay h2 {\n font-size: 20px;\n font-weight: 700;\n color: #111827;\n margin-bottom: 8px;\n }\n\n .cc-paywall-overlay p {\n font-size: 14px;\n color: #6b7280;\n margin-bottom: 24px;\n line-height: 1.6;\n }\n\n .cc-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n height: 44px;\n padding: 0 20px;\n border: none;\n border-radius: 8px;\n font-family: ${c};\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.15s ease, transform 0.1s ease;\n width: 100%;\n max-width: 320px;\n }\n .cc-btn:hover:not(:disabled) { opacity: 0.88; }\n .cc-btn:active:not(:disabled) { transform: scale(0.98); }\n .cc-btn:disabled { opacity: 0.55; cursor: not-allowed; }\n\n .cc-btn-primary {\n background: ${i};\n color: #fff;\n }\n\n .cc-btn-secondary {\n background: #111827;\n color: #fff;\n margin-top: 10px;\n }\n\n .cc-btn-outline {\n background: transparent;\n color: #111827;\n border: 2px solid #111827;\n margin-top: 10px;\n }\n\n .cc-credit-badge {\n display: inline-block;\n background: #fef3c7;\n color: #92400e;\n border-radius: 20px;\n padding: 2px 10px;\n font-size: 13px;\n font-weight: 600;\n margin-bottom: 16px;\n }\n\n .cc-spinner {\n width: 18px; height: 18px;\n border: 2px solid rgba(255,255,255,0.4);\n border-top-color: #fff;\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n flex-shrink: 0;\n }\n @keyframes cc-spin { to { transform: rotate(360deg); } }\n\n .cc-powered-by {\n margin-top: 20px;\n font-size: 12px;\n color: #9ca3af;\n }\n .cc-powered-by a {\n color: ${i};\n text-decoration: none;\n font-weight: 600;\n }\n .cc-powered-by a:hover { text-decoration: underline; }\n `));const r=g("div");r.className="cc-paywall-backdrop",n.appendChild(r),t=g("div"),t.className="cc-paywall-overlay",r.appendChild(t)}function i(){const e=g("div");e.className="cc-powered-by",e.textContent="Powered by ";const n=g("a","Content Credits");return n.setAttribute("href","https://contentcredits.com"),n.setAttribute("target","_blank"),n.setAttribute("rel","noopener noreferrer"),e.appendChild(n),e}function c(){m(b),n=null,t=null}return{init:o,render:function(n,r,a){var s,l,d;if(t||o(),t){for(;t.firstChild;)t.removeChild(t.firstChild);switch(n){case"checking":!function(n){const t=g("div");t.className="cc-spinner",t.style.margin="0 auto 12px",t.style.width="24px",t.style.height="24px",t.style.borderWidth="2px",t.style.borderColor="#e5e7eb",t.style.borderTopColor=e.theme.primaryColor;const o=g("p","Checking access...");o.style.cssText="font-size:14px;color:#6b7280;text-align:center;font-family:"+e.theme.fontFamily,n.appendChild(t),n.appendChild(o)}(t);break;case"login":!function(e,n){e.appendChild(g("h2","This article requires a subscription")),e.appendChild(g("p","Log in with your Content Credits account to unlock this article."));const t=g("button","Login & Buy with Content Credits");t.className="cc-btn cc-btn-primary",t.addEventListener("click",n.onLogin),e.appendChild(t),e.appendChild(i())}(t,r);break;case"purchase":!function(e,n,t){if(e.appendChild(g("h2","Unlock this article")),null!==t){const n=g("span",`${t} credit${1!==t?"s":""}`);n.className="cc-credit-badge",e.appendChild(n)}e.appendChild(g("p","Use your Content Credits balance to instantly access this premium article."));const o=g("button",null!==t?`Buy for ${t} Credit${1!==t?"s":""}`:"Buy with Content Credits");o.className="cc-btn cc-btn-primary",o.addEventListener("click",n.onPurchase),e.appendChild(o),e.appendChild(i())}(t,r,null!==(s=null==a?void 0:a.requiredCredits)&&void 0!==s?s:null);break;case"insufficient":!function(e,n,t,o){e.appendChild(g("h2","Not enough credits"));const c=null!==t&&null!==o?`You need ${t} credit${1!==t?"s":""} but have ${o}. Top up to unlock this article.`:"You don't have enough credits to unlock this article. Purchase more to continue.";e.appendChild(g("p",c));const r=g("button","Buy More Credits");r.className="cc-btn cc-btn-primary",r.addEventListener("click",n.onBuyMoreCredits),e.appendChild(r),e.appendChild(i())}(t,r,null!==(l=null==a?void 0:a.requiredCredits)&&void 0!==l?l:null,null!==(d=null==a?void 0:a.creditBalance)&&void 0!==d?d:null);break;case"loading":!function(e){const n=g("button");n.className="cc-btn cc-btn-primary",n.disabled=!0;const t=g("span");t.className="cc-spinner",n.appendChild(t),n.appendChild(document.createTextNode(" Processing…")),e.appendChild(n)}(t);break;case"granted":c()}}},setButtonLoading:function(e){if(!t)return;const n=t.querySelector(".cc-btn");if(n&&(n.disabled=e,e)){const e=g("span");e.className="cc-spinner",f(n,""),n.appendChild(e),n.appendChild(document.createTextNode(" Processing…"))}},destroy:c}}(e),a=function(){let e=null,n=null;function t(t){var o,i,c,r;if(!function(){const e=["https://accounts.contentcredits.com"];try{e.push(window.location.origin)}catch(e){}return e}().includes(t.origin)&&t.origin!==window.location.origin)return;const a=t.data;if(a&&"object"==typeof a&&a.type)switch(a.type){case"authorization_response":{const n=null!==(o=a.data)&&void 0!==o?o:null===(i=t.detail)||void 0===i?void 0:i.data;n&&e&&e(n);break}case"purchase_response":{const e=null!==(c=a.data)&&void 0!==c?c:null===(r=t.detail)||void 0===r?void 0:r.data;e&&n&&n(e);break}}}return{attach:function(){window.addEventListener("message",t),window.addEventListener("authorization_response",n=>{const t=n.detail;(null==t?void 0:t.data)&&e&&e(t.data)}),window.addEventListener("purchase_response",e=>{const t=e.detail;(null==t?void 0:t.data)&&n&&n(t.data)})},detach:function(){window.removeEventListener("message",t)},requestAuthorization:function(e,n){window.postMessage({type:"request_authorization",data:{articleId:e,hostName:n}},window.location.origin)},requestPurchase:function(e){window.postMessage({type:"request_purchase",data:e},window.location.origin)},requestLogin:function(e){window.postMessage({type:"request_login",data:{hostName:e}},window.location.origin)},onAuthorizationResponse:function(n){e=n},onPurchaseResponse:function(e){n=e}}}();let s=!1;function l(n=0,r=0){var a;t.set({hasAccess:!0,isLoaded:!0,isLoading:!1}),i.reveal(),c.render("granted",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:hidden",{}),o.emit("article:purchased",{creditsSpent:n,remainingBalance:r}),null===(a=e.onAccessGranted)||void 0===a||a.call(e)}async function w(){const n=`https://accounts.contentcredits.com/authenticate/extension?redirect=${encodeURIComponent(e.articleUrl)}`;s?a.requestLogin(e.hostName):y()?window.location.href=n:(c.render("loading",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),await x(n)?(t.set({isLoggedIn:!0}),await L()):c.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}))}async function C(){var i,p,u;if(r.has())if(s)a.requestPurchase({articleId:e.apiKey,hostName:e.hostName,location:e.articleUrl,title:e.pageTitle});else{c.render("loading",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),t.set({isLoading:!0});try{const r=await n.purchaseArticle({apiKey:e.apiKey,postUrl:e.articleUrl,postName:e.pageTitle,hostName:e.hostName});r.success?l(0,0):(t.set({isLoading:!1}),c.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:null!==(i=r.message)&&void 0!==i?i:"Purchase failed"}))}catch(e){t.set({isLoading:!1}),e instanceof d&&402===e.status?(c.render("insufficient",{onLogin:w,onPurchase:C,onBuyMoreCredits:k},{requiredCredits:t.get().requiredCredits,creditBalance:t.get().creditBalance}),o.emit("credits:insufficient",{required:null!==(p=t.get().requiredCredits)&&void 0!==p?p:0,available:null!==(u=t.get().creditBalance)&&void 0!==u?u:0})):(c.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:"Purchase failed",error:e}))}}else await w()}function k(){window.open("https://accounts.contentcredits.com/consumer/dashboard","_blank","noopener,noreferrer")}async function L(){if(t.set({isLoading:!0}),c.render("checking",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),s)a.requestAuthorization(e.apiKey,e.hostName);else{if(!r.has())return t.set({isLoading:!1,isLoaded:!0}),i.hide(),c.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),void o.emit("paywall:shown",{});try{const r=await n.checkAccess({apiKey:e.apiKey,postUrl:e.articleUrl,postName:e.pageTitle,hostName:e.hostName});t.set({isLoading:!1,isLoaded:!0,hasAccess:r.success}),r.success?l(0,0):(i.hide(),c.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:shown",{}))}catch(e){t.set({isLoading:!1,isLoaded:!0}),i.hide(),c.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),e instanceof d&&401===e.status||o.emit("error",{message:"Access check failed",error:e})}}}return{init:async function(){var n;v()&&t.set({isLoggedIn:!0}),s=await(n=e.extensionId,n&&"string"==typeof n?new Promise(e=>{let t=!1;function o(n){t||(t=!0,e(n))}if(!0===window.__CC_EXTENSION_LOADED)return void o(!0);const i=new Image;i.onload=()=>o(!0),i.onerror=()=>o(!1),i.src=`chrome-extension://${n}/icons/icon16.png`,setTimeout(()=>o(!1),2e3)}):Promise.resolve(!1)),t.set({isExtensionAvailable:s}),s&&(a.attach(),a.onAuthorizationResponse(e=>{var n,r,a;t.set({isLoggedIn:e.isAuthenticated,hasAccess:e.doesHaveAccess,isLoaded:!0,isLoading:!1,creditBalance:null!==(n=e.creditBalance)&&void 0!==n?n:null,requiredCredits:null!==(r=e.requiredCredits)&&void 0!==r?r:null}),e.isAuthenticated?e.doesHaveAccess?l(0,null!==(a=e.creditBalance)&&void 0!==a?a:0):(i.hide(),c.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k},{requiredCredits:e.requiredCredits,creditBalance:e.creditBalance}),o.emit("paywall:shown",{})):(i.hide(),c.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:shown",{}))}),a.onPurchaseResponse(e=>{var n,i;t.set({isLoading:!1,isLoaded:!0,hasAccess:e.doesHaveAccess}),e.doesHaveAccess?l(null!==(n=e.creditsSpent)&&void 0!==n?n:0,null!==(i=e.creditBalance)&&void 0!==i?i:0):(c.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:"Purchase failed via extension"}))})),await L()},checkAccess:L,destroy:function(){a.detach(),c.destroy(),i.reveal()}}}const C="cc-widget-pos",k="cc-comments-host",L=["#6366f1","#ec4899","#8b5cf6","#14b8a6","#f59e0b","#ef4444"];function E(e,t,o,i){let c=null,a=null,s=null,l=[],d="TOP",p=null,b=null,w=null;function C(){if(c)return c;const{root:n}=u(k);var t,o;return c=n,h(c,`\n *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n /* ── Widget Button ───────────────────────────────────── */\n .cc-widget-btn {\n position: fixed;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n width: auto;\n height: 60px;\n background: ${t=e.theme.primaryColor};\n border-radius: 10px 0 0 10px;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n padding-right: 6px;\n z-index: 2147483646;\n box-shadow: -2px 0 16px rgba(0,0,0,0.12);\n cursor: pointer;\n user-select: none;\n font-family: ${o=e.theme.fontFamily};\n transition: background 0.2s;\n pointer-events: all;\n }\n .cc-widget-btn:hover { filter: brightness(1.08); }\n\n .cc-widget-icon { color: #fff; display: flex; align-items: center; }\n .cc-widget-badge {\n background: #fff;\n color: ${t};\n border-radius: 12px;\n padding: 2px 7px;\n font-size: 12px;\n font-weight: 700;\n min-width: 20px;\n text-align: center;\n }\n .cc-widget-drag-handle {\n color: rgba(255,255,255,0.7);\n cursor: grab;\n display: flex;\n align-items: center;\n padding: 0 4px;\n }\n .cc-widget-drag-handle:active { cursor: grabbing; }\n\n /* ── Panel Overlay ───────────────────────────────────── */\n .cc-panel-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.35);\n z-index: 2147483645;\n opacity: 0;\n transition: opacity 0.25s;\n pointer-events: all;\n }\n .cc-panel-backdrop.cc-visible { opacity: 1; }\n\n .cc-panel {\n position: fixed;\n top: 0; right: -500px;\n width: 460px;\n max-width: 95vw;\n height: 100%;\n background: #f9fafb;\n z-index: 2147483646;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 32px rgba(0,0,0,0.12);\n transition: right 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n font-family: ${o};\n pointer-events: all;\n }\n .cc-panel.cc-open { right: 0; }\n\n /* ── Panel Header ────────────────────────────────────── */\n .cc-panel-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n }\n .cc-panel-title {\n font-size: 16px;\n font-weight: 700;\n color: #111827;\n flex: 1;\n }\n .cc-panel-count {\n font-size: 13px;\n color: #6b7280;\n font-weight: 400;\n }\n .cc-panel-close-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n color: #6b7280;\n padding: 4px;\n display: flex;\n align-items: center;\n border-radius: 6px;\n transition: background 0.15s;\n }\n .cc-panel-close-btn:hover { background: #f3f4f6; }\n\n .cc-back-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n color: #6b7280;\n padding: 4px;\n display: none;\n align-items: center;\n border-radius: 6px;\n transition: background 0.15s;\n }\n .cc-back-btn.cc-visible { display: flex; }\n .cc-back-btn:hover { background: #f3f4f6; }\n\n /* ── Sort Bar ────────────────────────────────────────── */\n .cc-sort-bar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n }\n .cc-sort-label { font-size: 12px; color: #9ca3af; font-weight: 500; }\n .cc-sort-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n color: #6b7280;\n padding: 4px 8px;\n border-radius: 6px;\n font-family: ${o};\n transition: background 0.15s, color 0.15s;\n }\n .cc-sort-btn:hover { background: #f3f4f6; }\n .cc-sort-btn.cc-active { background: #111827; color: #fff; }\n\n /* ── Comments List ───────────────────────────────────── */\n .cc-comments-list {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n .cc-comments-list::-webkit-scrollbar { width: 4px; }\n .cc-comments-list::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }\n\n /* ── Comment Card ────────────────────────────────────── */\n .cc-comment-card {\n padding: 16px 20px;\n background: #fff;\n border-bottom: 1px solid #f3f4f6;\n }\n .cc-comment-card.cc-reply {\n padding-left: 36px;\n background: #fafafa;\n }\n\n .cc-comment-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n .cc-comment-author-row { display: flex; align-items: center; gap: 10px; }\n\n .cc-avatar {\n width: 32px; height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n font-weight: 700;\n font-size: 12px;\n overflow: hidden;\n }\n .cc-avatar img { width: 100%; height: 100%; object-fit: cover; }\n\n .cc-author-name {\n font-size: 14px;\n font-weight: 700;\n color: #111827;\n }\n .cc-comment-time {\n font-size: 11px;\n color: #9ca3af;\n margin-top: 2px;\n }\n\n .cc-comment-body {\n font-size: 14px;\n color: #374151;\n line-height: 1.6;\n margin-bottom: 12px;\n word-break: break-word;\n white-space: pre-wrap;\n }\n\n .cc-comment-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .cc-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n color: #6b7280;\n padding: 3px 6px;\n border-radius: 6px;\n font-family: ${o};\n transition: background 0.15s, color 0.15s;\n }\n .cc-action-btn:hover { background: #f3f4f6; }\n .cc-action-btn.cc-liked { color: #ef4444; }\n .cc-action-btn.cc-danger:hover { color: #ef4444; background: #fef2f2; }\n .cc-action-btn.cc-owner-actions { margin-left: auto; }\n\n /* ── Reply Subthread ─────────────────────────────────── */\n .cc-subthread-label {\n font-size: 11px;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 20px 8px;\n background: #f9fafb;\n }\n\n /* ── Empty / Loading / Error ─────────────────────────── */\n .cc-empty-state, .cc-loading-state, .cc-error-state {\n text-align: center;\n padding: 60px 20px;\n color: #9ca3af;\n }\n .cc-empty-state p, .cc-loading-state p, .cc-error-state p {\n font-size: 14px;\n font-weight: 500;\n color: #9ca3af;\n margin-bottom: 6px;\n }\n .cc-empty-state span, .cc-loading-state span, .cc-error-state span {\n font-size: 13px;\n color: #d1d5db;\n }\n .cc-error-state .cc-retry-btn {\n margin-top: 16px;\n padding: 8px 16px;\n background: #111827;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n font-family: ${o};\n }\n .cc-error-icon { color: #ef4444; margin-bottom: 12px; }\n\n .cc-spinner-lg {\n width: 28px; height: 28px;\n border: 2px solid #e5e7eb;\n border-top-color: ${t};\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n margin: 0 auto 12px;\n }\n @keyframes cc-spin { to { transform: rotate(360deg); } }\n\n /* ── Compose Box ─────────────────────────────────────── */\n .cc-compose {\n border-top: 1px solid #e5e7eb;\n padding: 12px 20px;\n background: #fff;\n flex-shrink: 0;\n position: relative;\n }\n\n .cc-compose-textarea {\n width: 100%;\n min-height: 72px;\n max-height: 180px;\n border: 1.5px solid #d1d5db;\n border-radius: 8px;\n padding: 10px 12px;\n font-size: 14px;\n font-family: ${o};\n color: #111827;\n resize: vertical;\n outline: none;\n background: #fff;\n transition: border-color 0.15s;\n line-height: 1.5;\n }\n .cc-compose-textarea:focus { border-color: ${t}; }\n .cc-compose-textarea::placeholder { color: #9ca3af; }\n\n .cc-compose-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 8px;\n gap: 8px;\n }\n .cc-compose-cancel {\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 13px;\n color: #6b7280;\n font-family: ${o};\n padding: 6px;\n display: none;\n }\n .cc-compose-cancel.cc-visible { display: block; }\n .cc-compose-submit {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 36px;\n padding: 0 16px;\n background: ${t};\n color: #fff;\n border: none;\n border-radius: 7px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n font-family: ${o};\n margin-left: auto;\n transition: opacity 0.15s;\n }\n .cc-compose-submit:disabled { opacity: 0.55; cursor: not-allowed; }\n\n .cc-spinner-sm {\n width: 14px; height: 14px;\n border: 2px solid rgba(255,255,255,0.4);\n border-top-color: #fff;\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n }\n\n /* ── Login Overlay inside compose ────────────────────── */\n .cc-login-overlay {\n position: absolute;\n inset: 0;\n background: rgba(255,255,255,0.95);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 16px;\n border-top: 1px solid #e5e7eb;\n }\n .cc-login-overlay p {\n font-size: 14px;\n color: #6b7280;\n text-align: center;\n }\n .cc-login-overlay-btn {\n height: 40px;\n padding: 0 20px;\n background: ${t};\n color: #fff;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n font-family: ${o};\n }\n `),c}function E(){const e=r.get();a=e?function(e){var t,o;const i=n(e);return i&&null!==(o=null!==(t=i.id)&&void 0!==t?t:i._id)&&void 0!==o?o:null}(e):null}async function N(){const n=`https://accounts.contentcredits.com/authenticate/extension?redirect=${encodeURIComponent(e.articleUrl)}`;y()?window.location.href=n:await x(n)&&(E(),z(),I())}async function I(){var n;const o=C(),i=o.getElementById("cc-comments-list");if(i){!function(e){e.innerHTML="";const n=g("div");n.className="cc-loading-state";const t=g("div");t.className="cc-spinner-lg",n.appendChild(t),n.appendChild(g("p","Loading comments…")),e.appendChild(n)}(i);try{const c=await t.ensureThread({pageUrl:e.articleUrl,hostname:e.hostName});if(!c._id)return void T(i,"Comments are not available for this page.");s=c._id;const r=await t.getComments({pageUrl:e.articleUrl,sortBy:d});l=null!==(n=r.comments)&&void 0!==n?n:[],r.thread&&(s=r.thread._id);const a=o.getElementById("cc-header-count");a&&f(a,String(l.length)),P(i)}catch(e){T(i,"Unable to reach the server. Check your connection.")}}}function B(e){const n=new Map,t=[];return e.forEach(e=>n.set(e._id,Object.assign(Object.assign({},e),{replies:[]}))),e.forEach(e=>{const o=n.get(e._id);if(e.parentCommentId){const t=n.get(e.parentCommentId);t&&!t.parentCommentId&&t.replies.push(o)}else t.push(o)}),t}function T(e,n){e.innerHTML="";const t=g("div");t.className="cc-error-state";const o=g("div");o.className="cc-error-icon",o.innerHTML='<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>',t.appendChild(o),t.appendChild(g("p",n));const i=g("button","Try Again");i.className="cc-retry-btn",i.addEventListener("click",()=>{I()}),t.appendChild(i),e.appendChild(t)}function P(e){e.innerHTML="";const n=C(),t=n.getElementById("cc-back-btn"),o=n.getElementById("cc-panel-title");if(p?(null==t||t.classList.add("cc-visible"),o&&f(o,"Replies")):(null==t||t.classList.remove("cc-visible"),o&&f(o,"Comments")),p)!function(e,n){var t,o,i,c,r;const a=B(l).find(e=>e._id===n);if(!a)return;e.appendChild(A(a,!1));const s=g("div",`${null!==(o=null===(t=a.replies)||void 0===t?void 0:t.length)&&void 0!==o?o:0} ${1===(null!==(c=null===(i=a.replies)||void 0===i?void 0:i.length)&&void 0!==c?c:0)?"REPLY":"REPLIES"}`);if(s.className="cc-subthread-label",e.appendChild(s),null===(r=a.replies)||void 0===r?void 0:r.length)a.replies.forEach(n=>e.appendChild(A(n,!0)));else{const n=g("div");n.className="cc-empty-state",n.style.paddingTop="20px",n.appendChild(g("p","No replies yet")),e.appendChild(n)}}(e,p);else{if(0===l.length){const n=g("div");n.className="cc-empty-state",n.appendChild(g("p","No comments yet"));const t=g("span","Be the first to share your thoughts");return n.appendChild(t),void e.appendChild(n)}(function(e){const n=[...e];return"NEWEST"===d?n.sort((e,n)=>new Date(n.createdAt).getTime()-new Date(e.createdAt).getTime()):n.sort((e,n)=>{var t,o,i,c,r,a;return(null!==(o=null===(t=n.replies)||void 0===t?void 0:t.length)&&void 0!==o?o:0)-(null!==(c=null===(i=e.replies)||void 0===i?void 0:i.length)&&void 0!==c?c:0)||(null!==(r=n.likeCount)&&void 0!==r?r:0)-(null!==(a=e.likeCount)&&void 0!==a?a:0)}),n.forEach(e=>{var n;(null===(n=e.replies)||void 0===n?void 0:n.length)&&e.replies.sort((e,n)=>new Date(n.createdAt).getTime()-new Date(e.createdAt).getTime())}),n})(B(l)).forEach(n=>e.appendChild(A(n,!1)))}}function A(n,t){var o,i;const c=!(!a||n.authorId!==a),r=n.author,s=r?`${r.firstName} ${r.lastName}`.trim():"Anonymous",l=L[(s||"A").charCodeAt(0)%L.length],d=r?function(e,n){var t,o,i,c;return`${null!==(o=null===(t=null==e?void 0:e[0])||void 0===t?void 0:t.toUpperCase())&&void 0!==o?o:""}${null!==(c=null===(i=null==n?void 0:n[0])||void 0===i?void 0:i.toUpperCase())&&void 0!==c?c:""}`||"?"}(r.firstName,r.lastName):"?",p=g("div");p.className="cc-comment-card"+(t?" cc-reply":""),p.dataset.commentId=n._id;const u=g("div");u.className="cc-comment-header";const m=g("div");m.className="cc-comment-author-row";const h=g("div");if(h.className="cc-avatar",h.style.background=l,null==r?void 0:r.profilePicture){const n=function(e){try{const n=new URL(e);return"http:"!==n.protocol&&"https:"!==n.protocol?null:n.toString()}catch(e){return null}}(r.profilePicture.startsWith("http")?r.profilePicture:`${e.apiBaseUrl}${r.profilePicture}`);if(n){const e=g("img");e.setAttribute("src",n),e.setAttribute("alt",s),e.addEventListener("error",()=>{e.remove(),f(h,d)}),h.appendChild(e)}else f(h,d)}else f(h,d);const b=g("div"),y=g("div",s);y.className="cc-author-name";const v=g("div",function(e){try{const n=new Date(e);return`${n.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})} · ${n.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}`}catch(e){return""}}(n.createdAt));v.className="cc-comment-time",b.appendChild(y),b.appendChild(v),m.appendChild(h),m.appendChild(b),u.appendChild(m),p.appendChild(u);const x=g("div");x.className="cc-comment-body",x.appendChild(function(e){const n=document.createDocumentFragment(),t=e.split("\n");return t.forEach((e,o)=>{n.appendChild(document.createTextNode(e)),o<t.length-1&&n.appendChild(document.createElement("br"))}),n}(n.content)),p.appendChild(x);const w=g("div");if(w.className="cc-comment-actions",!t){const e=g("button");e.className="cc-action-btn",e.dataset.commentId=n._id,e.dataset.action="reply",e.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="transform:scaleX(-1)"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>',e.appendChild(document.createTextNode(` ${(null===(o=n.replies)||void 0===o?void 0:o.length)||"Reply"}`)),w.appendChild(e)}const C=g("button");if(C.className="cc-action-btn"+(n.hasLiked?" cc-liked":""),C.dataset.commentId=n._id,C.dataset.action="like",C.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${n.hasLiked?"currentColor":"none"}" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,C.appendChild(document.createTextNode(` ${null!==(i=n.likeCount)&&void 0!==i?i:0}`)),w.appendChild(C),c){const e=g("div");e.className="cc-action-btn cc-owner-actions",e.style.cssText="margin-left:auto;display:flex;gap:4px;background:transparent;border:none;padding:0;";const t=g("button","Edit");t.className="cc-action-btn",t.dataset.commentId=n._id,t.dataset.action="edit";const o=g("button","Delete");o.className="cc-action-btn cc-danger",o.dataset.commentId=n._id,o.dataset.action="delete",e.appendChild(t),e.appendChild(o),w.appendChild(e)}return p.appendChild(w),p}function $(){const e=g("div");e.className="cc-login-overlay",e.id="cc-login-overlay",e.appendChild(g("p","Sign in to join the conversation"));const n=g("button","Login with Content Credits");return n.className="cc-login-overlay-btn",n.addEventListener("click",()=>{N()}),e.appendChild(n),e}function S(e){const n=e.target.closest("[data-action]");if(!n)return;const i=n.dataset.action,a=n.dataset.commentId;if(a)switch(i){case"reply":!function(e){if(p){b=e,w=null;const n=null==c?void 0:c.getElementById("cc-compose-textarea");n&&(n.placeholder="Write a reply…",n.focus()),M()}else{p=e;const n=null==c?void 0:c.getElementById("cc-comments-list");n&&P(n)}}(a);break;case"like":!async function(e){var n,i,a,s,d;if(!r.has())return void N();const p=l.find(n=>n._id===e);if(!p)return;const u=p.hasLiked;p.hasLiked=!u,p.likeCount=(null!==(n=p.likeCount)&&void 0!==n?n:0)+(p.hasLiked?1:-1);const m=null==c?void 0:c.getElementById("cc-comments-list");m&&P(m);try{const n=await t.toggleLike(e);n.success?("boolean"==typeof(null===(i=n.data)||void 0===i?void 0:i.hasLiked)&&(p.hasLiked=n.data.hasLiked),"number"==typeof(null===(a=n.data)||void 0===a?void 0:a.likeCount)&&(p.likeCount=n.data.likeCount),o.emit("comment:liked",{commentId:e,hasLiked:p.hasLiked})):(p.hasLiked=u,p.likeCount=(null!==(s=p.likeCount)&&void 0!==s?s:0)+(u?1:-1)),m&&P(m)}catch(e){p.hasLiked=u,p.likeCount=(null!==(d=p.likeCount)&&void 0!==d?d:0)+(u?1:-1),m&&P(m)}}(a);break;case"edit":!function(e){const n=l.find(n=>n._id===e);if(!n)return;w=e,b=null;const t=null==c?void 0:c.getElementById("cc-compose-textarea");t&&(t.value=n.content,t.placeholder="Edit your comment…",t.focus());const o=null==c?void 0:c.getElementById("cc-compose-submit");o&&f(o,"Update"),M()}(a);break;case"delete":!async function(e){if(confirm("Delete this comment?"))try{(await t.deleteComment(e))._id&&(o.emit("comment:deleted",{commentId:e}),I())}catch(e){}}(a)}}function M(){const e=null==c?void 0:c.getElementById("cc-compose-cancel");null==e||e.classList.add("cc-visible")}function _(){const e=null==c?void 0:c.getElementById("cc-compose-cancel");null==e||e.classList.remove("cc-visible")}function U(){w=null,b=null;const e=null==c?void 0:c.getElementById("cc-compose-textarea");e&&(e.value="",e.placeholder="Write a comment…");const n=null==c?void 0:c.getElementById("cc-compose-submit");n&&f(n,"Post"),_()}function z(){const e=C(),n=e.getElementById("cc-login-overlay");if(r.has()&&n)n.remove();else if(!r.has()&&!n){const n=e.getElementById("cc-compose");null==n||n.appendChild($())}}function O(){const e=c;if(!e)return;const n=e.getElementById("cc-panel-backdrop"),t=e.getElementById("cc-comments-panel");null==n||n.classList.remove("cc-visible"),null==t||t.classList.remove("cc-open"),setTimeout(()=>{null==n||n.remove(),null==t||t.remove(),i()},280)}return{openPanel:function(){const e=C();v()&&E(),E();let n=e.getElementById("cc-panel-backdrop");n||(n=g("div"),n.className="cc-panel-backdrop",n.id="cc-panel-backdrop",n.addEventListener("click",O),e.appendChild(n),e.appendChild(function(){const e=g("div");e.className="cc-panel",e.id="cc-comments-panel";const n=g("div");n.className="cc-panel-header";const i=g("button");i.className="cc-back-btn",i.id="cc-back-btn",i.setAttribute("aria-label","Back"),i.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg>',i.addEventListener("click",()=>{p=null,b=null;const e=null==c?void 0:c.getElementById("cc-comments-list");e&&P(e)});const a=g("div");a.style.cssText="flex:1;display:flex;align-items:center;gap:6px;";const l=g("span","Comments");l.className="cc-panel-title",l.id="cc-panel-title";const u=g("span","");u.className="cc-panel-count",u.id="cc-header-count",a.appendChild(l),a.appendChild(u);const m=g("button");m.className="cc-panel-close-btn",m.setAttribute("aria-label","Close comments"),m.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',m.addEventListener("click",O),n.appendChild(i),n.appendChild(a),n.appendChild(m),e.appendChild(n);const h=g("div");h.className="cc-sort-bar";const y=g("span","Sort:");y.className="cc-sort-label",h.appendChild(y),["TOP","NEWEST"].forEach(e=>{const n=g("button",e);n.className="cc-sort-btn"+(d===e?" cc-active":""),n.dataset.sort=e,n.addEventListener("click",()=>{d!==e&&(d=e,h.querySelectorAll(".cc-sort-btn").forEach(e=>e.classList.remove("cc-active")),n.classList.add("cc-active"),I())}),h.appendChild(n)}),e.appendChild(h);const v=g("div");return v.className="cc-comments-list",v.id="cc-comments-list",v.addEventListener("click",S),e.appendChild(v),e.appendChild(function(){const e=g("div");e.className="cc-compose",e.id="cc-compose";const n=g("textarea");n.className="cc-compose-textarea",n.id="cc-compose-textarea",n.setAttribute("placeholder","Write a comment…"),n.setAttribute("rows","3"),e.appendChild(n);const i=g("div");i.className="cc-compose-actions";const a=g("button","Cancel");a.className="cc-compose-cancel",a.id="cc-compose-cancel",a.addEventListener("click",U),i.appendChild(a);const l=g("button","Post");return l.className="cc-compose-submit",l.id="cc-compose-submit",l.addEventListener("click",()=>{!async function(){const e=null==c?void 0:c.getElementById("cc-compose-textarea");if(!e)return;const n=e.value.trim();if(!n)return;if(!r.has())return void N();if(!s)return;const i=null==c?void 0:c.getElementById("cc-compose-submit");i&&(i.disabled=!0,f(i,"Posting…"));try{let c;w?c=await t.editComment(w,n):(c=await t.postComment({threadId:s,content:n,parentCommentId:null!=b?b:p}),o.emit("comment:posted",{comment:c})),c._id&&(e.value="",w=null,b=null,e.placeholder=p?"Write a reply…":"Write a comment…",_(),i&&f(i,"Post"),I())}catch(e){}finally{i&&(i.disabled=!1)}}()}),i.appendChild(l),e.appendChild(i),r.has()||e.appendChild($()),e}()),e}())),requestAnimationFrame(()=>{var t;n.classList.add("cc-visible"),null===(t=e.getElementById("cc-comments-panel"))||void 0===t||t.classList.add("cc-open")}),z(),I()},closePanel:O,destroy:function(){m(k),c=null}}}class N{constructor(e){var n;this.config=e,this.state=function(){let e={isLoading:!1,isExtensionAvailable:!1,isLoggedIn:!1,hasAccess:!1,isLoaded:!1,user:null,creditBalance:null,requiredCredits:null};const n=[];function t(){return Object.assign({},e)}function o(o){e=Object.assign(Object.assign({},e),o),n.forEach(e=>e(t()))}return{get:t,set:o,subscribe:function(e){return n.push(e),()=>{const t=n.indexOf(e);t>=0&&n.splice(t,1)}},reset:function(){e={isLoading:!1,isExtensionAvailable:!1,isLoggedIn:!1,hasAccess:!1,isLoaded:!1,user:null,creditBalance:null,requiredCredits:null},n.forEach(e=>e(t()))},setUser:function(e){var n;o({user:e,isLoggedIn:null!==e,creditBalance:null!==(n=null==e?void 0:e.credits)&&void 0!==n?n:null})}}}(),this.emitter=function(){const e={};function n(n,t){const o=e[n];if(!o)return;const i=o.indexOf(t);i>=0&&o.splice(i,1)}return{on:function(t,o){return e[t]||(e[t]=[]),e[t].push(o),()=>n(t,o)},off:n,emit:function(n,t){const o=e[n];o&&o.forEach(e=>{try{e(t)}catch(e){console.warn(`[ContentCredits] Error in "${n}" handler:`,e)}});try{document.dispatchEvent(new CustomEvent(`contentcredits:${n}`,{detail:t,bubbles:!1}))}catch(e){}},removeAll:function(){Object.keys(e).forEach(n=>{delete e[n]})}}}(),this.paywallModule=null,this.commentsModule=null,this.client=function(e,n){async function t(o,i,c,p=0,u=!1){const m=`${e}${i}`,h=c?JSON.stringify(c):void 0,f=function(e,n,t){return`${e}:${n}:${null!=t?t:""}`}(o,m,h),g=l.get(f);if(g)return g;const b=new AbortController,y=setTimeout(()=>b.abort(),12e3),v={"Content-Type":"application/json"},x=r.get();x&&(v.Authorization=`Bearer ${x}`);const w=fetch(m,{method:o,headers:v,body:h,signal:b.signal,credentials:"omit"}).then(async m=>{var h;if(clearTimeout(y),401===m.status){if(!u&&await s(e))return l.delete(f),t(o,i,c,p,!0);throw r.clear(),a.clear(),n.emit("auth:logout",{}),new d(401,"Unauthorized — session expired")}let g;try{g=await m.json()}catch(e){throw new d(m.status,"Invalid JSON response from server")}if(!m.ok){const e=null!==(h=null==g?void 0:g.message)&&void 0!==h?h:`HTTP ${m.status}`;throw new d(m.status,e,g)}return g}).catch(async e=>{clearTimeout(y);const n=e instanceof TypeError&&e.message.includes("fetch"),r=e instanceof d&&((a=e.status)>=500||429===a);var a;if((n||r)&&p<3)return l.delete(f),await async function(e){return new Promise(n=>setTimeout(n,e))}(400*Math.pow(2,p)),t(o,i,c,p+1);throw e}).finally(()=>{l.delete(f)});return l.set(f,w),w}return{get:e=>t("GET",e),post:(e,n)=>t("POST",e,n),put:(e,n)=>t("PUT",e,n),delete:e=>t("DELETE",e)}}(e.apiBaseUrl,this.emitter),this.creditsApi=(n=this.client,{checkAccess:e=>n.post("/credits/check-article-access",{apiKey:e.apiKey,postUrl:e.postUrl,postName:e.postName,hostName:e.hostName}),purchaseArticle:e=>n.post("/credits/purchase-article",{apiKey:e.apiKey,postUrl:e.postUrl,postName:e.postName,hostName:e.hostName})}),this.commentsApi=function(e){return{ensureThread:n=>e.post("/comments/threads/ensure",{pageUrl:n.pageUrl,hostname:n.hostname}),getComments(n){const t=encodeURIComponent(n.pageUrl);return e.get(`/comments/comments/by-url?url=${t}&sortBy=${n.sortBy}`)},postComment:n=>e.post("/comments/comments",Object.assign({threadId:n.threadId,content:n.content},n.parentCommentId?{parentCommentId:n.parentCommentId}:{})),editComment:(n,t)=>e.put(`/comments/comments/${n}`,{content:t}),deleteComment:n=>e.delete(`/comments/comments/${n}`),toggleLike:n=>e.post(`/comments/comments/${n}/toggle-like`,{})}}(this.client)}static init(e){const n=function(e){var n,t,o,i,c,r,a,s,l,d;if(!e.apiKey||"string"!=typeof e.apiKey||""===e.apiKey.trim())throw new Error("[ContentCredits] apiKey is required. Get yours from the Content Credits admin panel.");const p=null!==(n=e.articleUrl)&&void 0!==n?n:window.location.href;let u;try{u=new URL(p).hostname}catch(e){throw new Error(`[ContentCredits] Invalid articleUrl: "${p}"`)}return{apiKey:e.apiKey.trim(),articleUrl:p,hostName:u,pageTitle:document.title,contentSelector:null!==(t=e.contentSelector)&&void 0!==t?t:".cc-premium-content",teaserParagraphs:null!==(o=e.teaserParagraphs)&&void 0!==o?o:2,enableComments:null===(i=e.enableComments)||void 0===i||i,extensionId:null!==(c=e.extensionId)&&void 0!==c?c:"ljehdpabbhgccmanhjdfacjnaigpgcml",debug:null!==(r=e.debug)&&void 0!==r&&r,apiBaseUrl:"https://api.contentcredits.com",accountsUrl:"https://accounts.contentcredits.com",paywallTemplate:e.paywallTemplate,onAccessGranted:e.onAccessGranted,theme:{primaryColor:null!==(s=null===(a=e.theme)||void 0===a?void 0:a.primaryColor)&&void 0!==s?s:"#44C678",fontFamily:null!==(d=null===(l=e.theme)||void 0===l?void 0:l.fontFamily)&&void 0!==d?d:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"}}}(e),t=new N(n);return t._start(),t}async _start(){v(),r.has()||await s(this.config.apiBaseUrl),this.paywallModule=w(this.config,this.creditsApi,this.state,this.emitter),this.config.enableComments&&(this.commentsModule=function(e,n,t){const o=E(e,n,t,()=>i.show()),i=function(e,n){let t=null,o=null;return{mount:function(){if(document.getElementById("cc-comment-widget"))return;let i=50;try{const e=localStorage.getItem(C);e&&(i=JSON.parse(e))}catch(e){}t=document.createElement("div"),t.id="cc-comment-widget",t.style.cssText=`\n position:fixed;top:${i}%;right:0;transform:translateY(-50%);\n height:60px;background:${e};border-radius:10px 0 0 10px;\n display:flex;align-items:center;gap:8px;padding:0 8px 0 12px;\n z-index:2147483646;box-shadow:-2px 0 16px rgba(0,0,0,.12);\n cursor:pointer;user-select:none;\n font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;\n transition:filter .2s;\n `,t.setAttribute("role","button"),t.setAttribute("aria-label","Open comments"),t.tabIndex=0;const c=document.createElement("div");c.style.cssText="color:#fff;display:flex;align-items:center;flex-shrink:0;",c.innerHTML='<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>',o=document.createElement("span"),o.style.cssText=`\n background:#fff;color:${e};border-radius:12px;\n padding:2px 7px;font-size:12px;font-weight:700;min-width:20px;\n text-align:center;display:none;\n `;const r=document.createElement("div");r.style.cssText="color:rgba(255,255,255,.65);cursor:grab;display:flex;align-items:center;padding:0 2px;flex-shrink:0;",r.innerHTML='<svg width="8" height="22" viewBox="0 0 8 22" fill="none"><circle cx="4" cy="4" r="2" fill="currentColor"/><circle cx="4" cy="11" r="2" fill="currentColor"/><circle cx="4" cy="18" r="2" fill="currentColor"/></svg>',c.addEventListener("click",n),o.addEventListener("click",n);let a=!1,s=0,l=0;function d(e){a=!0,s=e,l=t.getBoundingClientRect().top,r.style.cursor="grabbing"}function p(e){if(!a||!t)return;const n=e-s,o=Math.max(0,Math.min(window.innerHeight-60,l+n))/window.innerHeight*100;t.style.top=`${o}%`}function u(){if(!a||!t)return;a=!1,r.style.cursor="grab";const e=t.getBoundingClientRect().top/window.innerHeight*100;try{localStorage.setItem(C,JSON.stringify(e))}catch(e){}}r.addEventListener("mousedown",e=>{e.preventDefault(),e.stopPropagation(),d(e.clientY)}),r.addEventListener("touchstart",e=>{e.preventDefault(),d(e.touches[0].clientY)},{passive:!1}),document.addEventListener("mousemove",e=>p(e.clientY)),document.addEventListener("touchmove",e=>p(e.touches[0].clientY),{passive:!0}),document.addEventListener("mouseup",u),document.addEventListener("touchend",u),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||n()}),t.appendChild(c),t.appendChild(o),t.appendChild(r),document.body.appendChild(t)},setCount:function(e){o&&(e>0?(o.textContent=e>99?"99+":String(e),o.style.display="inline-block"):o.style.display="none")},show:function(){t&&(t.style.display="flex")},hide:function(){t&&(t.style.display="none")},destroy:function(){null==t||t.remove(),t=null,o=null}}}(e.theme.primaryColor,()=>{i.hide(),o.openPanel()});return{init:function(){i.mount()},open:function(){i.hide(),o.openPanel()},close:function(){o.closePanel()},destroy:function(){o.destroy(),i.destroy()}}}(this.config,this.commentsApi,this.emitter),this.commentsModule.init()),await this.paywallModule.init(),this.emitter.emit("ready",{state:this.state.get()})}on(e,n){return this.emitter.on(e,n)}off(e,n){this.emitter.off(e,n)}getState(){return this.state.get()}async checkAccess(){var e;await(null===(e=this.paywallModule)||void 0===e?void 0:e.checkAccess())}openComments(){var e;null===(e=this.commentsModule)||void 0===e||e.open()}closeComments(){var e;null===(e=this.commentsModule)||void 0===e||e.close()}isLoggedIn(){return r.has()}destroy(){var e,n;null===(e=this.paywallModule)||void 0===e||e.destroy(),null===(n=this.commentsModule)||void 0===n||n.destroy(),this.emitter.removeAll(),this.state.reset()}static get version(){return"2.0.3"}}!function(){var e,n,t;const o=null!==(e=document.currentScript)&&void 0!==e?e:document.querySelector("script[data-cc-api-key], script[data-api-key]");if(!o)return;const i=o.dataset,c=null!==(n=i.ccApiKey)&&void 0!==n?n:i.apiKey;if(!c)return;const r={apiKey:c,contentSelector:null!==(t=i.ccContentSelector)&&void 0!==t?t:i.contentSelector,teaserParagraphs:i.ccTeaserParagraphs?parseInt(i.ccTeaserParagraphs,10):void 0,enableComments:"false"!==i.ccEnableComments,extensionId:i.ccExtensionId,debug:"true"===i.ccDebug};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>N.init(r)):N.init(r)}(),e.ContentCredits=N});
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).ContentCreditsSDK={})}(this,function(e){"use strict";function n(e){try{const n=e.split(".");if(3!==n.length)return null;const t=n[1].replace(/-/g,"+").replace(/_/g,"/"),o=t.padEnd(t.length+(4-t.length%4)%4,"="),i=decodeURIComponent(atob(o).split("").map(e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""));return JSON.parse(i)}catch(e){return null}}function t(e){const t=n(e);return!t||"number"!=typeof t.exp||Date.now()/1e3>t.exp}const o="cc_sdk_token",i="cc_rt";let c=null;const r={set(e){c=e;try{sessionStorage.setItem(o,e)}catch(e){}},get(){if(c)return t(c)?(this.clear(),null):c;try{const e=sessionStorage.getItem(o);if(e)return t(e)?(this.clear(),null):(c=e,e)}catch(e){}return null},clear(){c=null;try{sessionStorage.removeItem(o)}catch(e){}},has(){return null!==this.get()}},a={set(e){try{localStorage.setItem(i,e)}catch(e){}},get(){try{return localStorage.getItem(i)}catch(e){return null}},clear(){try{localStorage.removeItem(i)}catch(e){}},has(){return null!==this.get()}};async function s(e){const n=a.get();if(!n)return!1;const t=new AbortController,o=setTimeout(()=>t.abort(),8e3);try{const i=await fetch(`${e}/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:n}),credentials:"omit",signal:t.signal});if(clearTimeout(o),!i.ok)return a.clear(),!1;const c=await i.json();return(null==c?void 0:c.accessToken)&&(null==c?void 0:c.refreshToken)?(r.set(c.accessToken),a.set(c.refreshToken),!0):(a.clear(),!1)}catch(e){return clearTimeout(o),!1}}const l=new Map;class d extends Error{constructor(e,n,t){super(n),this.status=e,this.data=t,this.name="ApiError"}}const p="data-cc-gated";function u(e){let n=!1,t=null,o=[];return{hide:function(){if(t=document.querySelector(e.selector),!t)return!1;if(t.hasAttribute(p))return!0;const i=Array.from(t.querySelectorAll("p, h2, h3, h4, blockquote, ul, ol"));if(i.length>e.teaserParagraphs){const n=i[e.teaserParagraphs],c=Array.from(t.childNodes),r=c.findIndex(e=>e===n||t.contains(e)&&e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING);o=c.slice(r<0?e.teaserParagraphs:r),o.forEach(e=>{var n,t,o,i;(e instanceof HTMLElement||e instanceof Text)&&(null===(t=null===(n=e.style)||void 0===n?void 0:n.setProperty)||void 0===t||t.call(n,"display","none"),null===(i=(o=e).setAttribute)||void 0===i||i.call(o,"data-cc-hidden","true"))})}else o=Array.from(t.childNodes),o.forEach(e=>{e instanceof HTMLElement&&(e.style.display="none")});if(t.setAttribute(p,"true"),n=!0,!t.querySelector("[data-cc-fade]")){const e=t.style.position;e&&"static"!==e||(t.style.position="relative");const n=document.createElement("div");n.setAttribute("data-cc-fade","true"),n.style.cssText="position:absolute;bottom:0;left:0;width:100%;height:160px;background:linear-gradient(to bottom,transparent 0%,var(--cc-bg,#fff) 100%);pointer-events:none;z-index:1;",t.appendChild(n)}return!0},reveal:function(){if(!n)return;o.forEach(e=>{e instanceof HTMLElement&&(e.style.removeProperty("display"),e.removeAttribute("data-cc-hidden"))});const e=null==t?void 0:t.querySelector("[data-cc-fade]");e&&e.remove(),o=[],null==t||t.removeAttribute(p),n=!1},isGated:function(){return n}}}function m(e){const n=document.getElementById(e);n&&n.remove()}function h(e,n){const t=e.querySelector("style[data-cc-styles]");if(t)return void(t.textContent=n);const o=document.createElement("style");o.dataset.ccStyles="true",o.textContent=n,e.appendChild(o)}function f(e,n){e.textContent=n}function g(e,n,t){const o=document.createElement(e);return void 0!==n&&(o.textContent=n),o}const b="cc-paywall-host";function y(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)||window.innerWidth<768}function v(){var e,n;try{const t=new URL(window.location.href),o=null!==(e=t.searchParams.get("token"))&&void 0!==e?e:t.searchParams.get("cc_token"),i=null!==(n=t.searchParams.get("refresh_token"))&&void 0!==n?n:t.searchParams.get("cc_refresh_token");if(function(){try{const e=new URL(window.location.href);let n=!1;["token","cc_token","refresh_token","cc_refresh_token"].forEach(t=>{e.searchParams.has(t)&&(e.searchParams.delete(t),n=!0)}),n&&history.replaceState(null,"",e.toString())}catch(e){}}(),i&&a.set(i),o){if(r.set(o),window.opener&&!window.opener.closed){try{window.opener.postMessage({type:"cc_auth_callback",token:o,refreshToken:null!=i?i:null},window.location.origin)}catch(e){}setTimeout(()=>{try{window.close()}catch(e){}},300)}return o}}catch(e){}return null}function x(e){return new Promise(n=>{let t=null,o=!1;function i(e){o||(o=!0,clearInterval(l),window.removeEventListener("message",c),n(e))}function c(e){var n;if(e.origin!==window.location.origin)return;if("cc_auth_callback"!==(null===(n=e.data)||void 0===n?void 0:n.type))return;const o=e.data.token,c=e.data.refreshToken;if(o){r.set(o),c&&a.set(c);try{null==t||t.close()}catch(e){}i(o)}}window.addEventListener("message",c);try{t=window.open(e,"ccAuthPopup",`scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=600,height=650,left=${Math.round(window.screenX+(window.outerWidth-600)/2)},top=${Math.round(window.screenY+(window.outerHeight-650)/2)}`)}catch(e){return window.removeEventListener("message",c),void n(null)}if(!t||t.closed)return window.removeEventListener("message",c),void n(null);let s=0;const l=setInterval(()=>{var e,n;if(s+=200,t&&!t.closed)if(s>3e5){try{t.close()}catch(e){}i(null)}else try{const o=t.location.href;if(o.includes("/auth/callback")||o.includes("cc_token=")||o.includes("token=")){const o=new URLSearchParams(t.location.search),c=null!==(e=o.get("token"))&&void 0!==e?e:o.get("cc_token"),s=null!==(n=o.get("refresh_token"))&&void 0!==n?n:o.get("cc_refresh_token");if(c){r.set(c),s&&a.set(s);try{t.close()}catch(e){}i(c)}}}catch(e){}else i(r.get())},200)})}function w(e,n,t,o,i){const c=null!=i?i:u({selector:e.contentSelector,teaserParagraphs:e.teaserParagraphs}),a=function(e){let n=null,t=null;function o(){const o=document.querySelector(e.contentSelector);if(!o)return;const{root:i}=function(e,n){let t=document.getElementById(e);t||(t=document.createElement("div"),t.id=e,n.parentNode.insertBefore(t,n.nextSibling));const o=t._ccShadow;if(o)return{host:t,root:o};const i=t.attachShadow({mode:"open"});return t._ccShadow=i,{host:t,root:i}}(b,o);var c,r;n=i,h(n,`\n *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n /* Inline paywall panel — sits below the teaser content in the page flow */\n .cc-paywall-inline {\n width: 100%;\n padding: 36px 24px 32px;\n background: #fff;\n border: 1px solid #e5e7eb;\n border-top: 3px solid ${c=e.theme.primaryColor};\n border-radius: 0 0 12px 12px;\n text-align: center;\n font-family: ${r=e.theme.fontFamily};\n box-sizing: border-box;\n }\n\n .cc-paywall-inline h2 {\n font-size: 20px;\n font-weight: 700;\n color: #111827;\n margin-bottom: 8px;\n }\n\n .cc-paywall-inline p {\n font-size: 14px;\n color: #6b7280;\n margin-bottom: 24px;\n line-height: 1.6;\n }\n\n .cc-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n height: 44px;\n padding: 0 20px;\n border: none;\n border-radius: 8px;\n font-family: ${r};\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.15s ease, transform 0.1s ease;\n width: 100%;\n max-width: 320px;\n }\n .cc-btn:hover:not(:disabled) { opacity: 0.88; }\n .cc-btn:active:not(:disabled) { transform: scale(0.98); }\n .cc-btn:disabled { opacity: 0.55; cursor: not-allowed; }\n\n .cc-btn-primary {\n background: ${c};\n color: #fff;\n }\n\n .cc-btn-secondary {\n background: #111827;\n color: #fff;\n margin-top: 10px;\n }\n\n .cc-btn-outline {\n background: transparent;\n color: #111827;\n border: 2px solid #111827;\n margin-top: 10px;\n }\n\n .cc-credit-badge {\n display: inline-block;\n background: #fef3c7;\n color: #92400e;\n border-radius: 20px;\n padding: 2px 10px;\n font-size: 13px;\n font-weight: 600;\n margin-bottom: 16px;\n }\n\n .cc-spinner {\n width: 18px; height: 18px;\n border: 2px solid rgba(255,255,255,0.4);\n border-top-color: #fff;\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n flex-shrink: 0;\n }\n @keyframes cc-spin { to { transform: rotate(360deg); } }\n\n .cc-powered-by {\n margin-top: 20px;\n font-size: 12px;\n color: #9ca3af;\n }\n .cc-powered-by a {\n color: ${c};\n text-decoration: none;\n font-weight: 600;\n }\n .cc-powered-by a:hover { text-decoration: underline; }\n `),t=g("div"),t.className="cc-paywall-inline",n.appendChild(t)}function i(){const e=g("div");e.className="cc-powered-by",e.textContent="Powered by ";const n=g("a","Content Credits");return n.setAttribute("href","https://contentcredits.com"),n.setAttribute("target","_blank"),n.setAttribute("rel","noopener noreferrer"),e.appendChild(n),e}function c(){m(b),n=null,t=null}return{init:o,render:function(e,n,r){var a,s,l;if("checking"!==e&&(t||o(),t)){for(;t.firstChild;)t.removeChild(t.firstChild);switch(e){case"login":!function(e,n){e.appendChild(g("h2","This article requires a subscription")),e.appendChild(g("p","Log in with your Content Credits account to unlock this article."));const t=g("button","Login & Buy with Content Credits");t.className="cc-btn cc-btn-primary",t.addEventListener("click",n.onLogin),e.appendChild(t),e.appendChild(i())}(t,n);break;case"purchase":!function(e,n,t){if(e.appendChild(g("h2","Unlock this article")),null!==t){const n=g("span",`${t} credit${1!==t?"s":""}`);n.className="cc-credit-badge",e.appendChild(n)}e.appendChild(g("p","Use your Content Credits balance to instantly access this premium article."));const o=g("button",null!==t?`Buy for ${t} Credit${1!==t?"s":""}`:"Buy with Content Credits");o.className="cc-btn cc-btn-primary",o.addEventListener("click",n.onPurchase),e.appendChild(o),e.appendChild(i())}(t,n,null!==(a=null==r?void 0:r.requiredCredits)&&void 0!==a?a:null);break;case"insufficient":!function(e,n,t,o){e.appendChild(g("h2","Not enough credits"));const c=null!==t&&null!==o?`You need ${t} credit${1!==t?"s":""} but have ${o}. Top up to unlock this article.`:"You don't have enough credits to unlock this article. Purchase more to continue.";e.appendChild(g("p",c));const r=g("button","Buy More Credits");r.className="cc-btn cc-btn-primary",r.addEventListener("click",n.onBuyMoreCredits),e.appendChild(r),e.appendChild(i())}(t,n,null!==(s=null==r?void 0:r.requiredCredits)&&void 0!==s?s:null,null!==(l=null==r?void 0:r.creditBalance)&&void 0!==l?l:null);break;case"loading":!function(e){const n=g("button");n.className="cc-btn cc-btn-primary",n.disabled=!0;const t=g("span");t.className="cc-spinner",n.appendChild(t),n.appendChild(document.createTextNode(" Processing…")),e.appendChild(n)}(t);break;case"granted":c()}}},setButtonLoading:function(e){if(!t)return;const n=t.querySelector(".cc-btn");if(n&&(n.disabled=e,e)){const e=g("span");e.className="cc-spinner",f(n,""),n.appendChild(e),n.appendChild(document.createTextNode(" Processing…"))}},destroy:c}}(e),s=function(){let e=null,n=null;function t(t){var o,i,c,r;if(!function(){const e=["https://accounts.contentcredits.com"];try{e.push(window.location.origin)}catch(e){}return e}().includes(t.origin)&&t.origin!==window.location.origin)return;const a=t.data;if(a&&"object"==typeof a&&a.type)switch(a.type){case"authorization_response":{const n=null!==(o=a.data)&&void 0!==o?o:null===(i=t.detail)||void 0===i?void 0:i.data;n&&e&&e(n);break}case"purchase_response":{const e=null!==(c=a.data)&&void 0!==c?c:null===(r=t.detail)||void 0===r?void 0:r.data;e&&n&&n(e);break}}}return{attach:function(){window.addEventListener("message",t),window.addEventListener("authorization_response",n=>{const t=n.detail;(null==t?void 0:t.data)&&e&&e(t.data)}),window.addEventListener("purchase_response",e=>{const t=e.detail;(null==t?void 0:t.data)&&n&&n(t.data)})},detach:function(){window.removeEventListener("message",t)},requestAuthorization:function(e,n){window.postMessage({type:"request_authorization",data:{articleId:e,hostName:n}},window.location.origin)},requestPurchase:function(e){window.postMessage({type:"request_purchase",data:e},window.location.origin)},requestLogin:function(e){window.postMessage({type:"request_login",data:{hostName:e}},window.location.origin)},onAuthorizationResponse:function(n){e=n},onPurchaseResponse:function(e){n=e}}}();let l=!1;function p(n=0,i=0){var r;t.set({hasAccess:!0,isLoaded:!0,isLoading:!1}),c.reveal(),a.render("granted",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:hidden",{}),o.emit("article:purchased",{creditsSpent:n,remainingBalance:i}),null===(r=e.onAccessGranted)||void 0===r||r.call(e)}async function w(){const n=`https://accounts.contentcredits.com/authenticate/extension?redirect=${encodeURIComponent(e.articleUrl)}`;l?s.requestLogin(e.hostName):y()?window.location.href=n:(a.render("loading",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),await x(n)?(t.set({isLoggedIn:!0}),await L()):a.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}))}async function C(){var i,c,u;if(r.has())if(l)s.requestPurchase({articleId:e.apiKey,hostName:e.hostName,location:e.articleUrl,title:e.pageTitle});else{a.render("loading",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),t.set({isLoading:!0});try{const c=await n.purchaseArticle({apiKey:e.apiKey,postUrl:e.articleUrl,postName:e.pageTitle,hostName:e.hostName});c.success?p(0,0):(t.set({isLoading:!1}),a.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:null!==(i=c.message)&&void 0!==i?i:"Purchase failed"}))}catch(e){t.set({isLoading:!1}),e instanceof d&&402===e.status?(a.render("insufficient",{onLogin:w,onPurchase:C,onBuyMoreCredits:k},{requiredCredits:t.get().requiredCredits,creditBalance:t.get().creditBalance}),o.emit("credits:insufficient",{required:null!==(c=t.get().requiredCredits)&&void 0!==c?c:0,available:null!==(u=t.get().creditBalance)&&void 0!==u?u:0})):(a.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:"Purchase failed",error:e}))}}else await w()}function k(){window.open("https://accounts.contentcredits.com/consumer/dashboard","_blank","noopener,noreferrer")}async function L(){if(t.set({isLoading:!0}),a.render("checking",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),l)s.requestAuthorization(e.apiKey,e.hostName);else{if(!r.has())return t.set({isLoading:!1,isLoaded:!0}),c.hide(),a.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),void o.emit("paywall:shown",{});try{const i=await n.checkAccess({apiKey:e.apiKey,postUrl:e.articleUrl,postName:e.pageTitle,hostName:e.hostName});t.set({isLoading:!1,isLoaded:!0,hasAccess:i.success}),i.success?p(0,0):(c.hide(),a.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:shown",{}))}catch(e){t.set({isLoading:!1,isLoaded:!0}),c.hide(),a.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),e instanceof d&&401===e.status||o.emit("error",{message:"Access check failed",error:e})}}}return{init:async function(){var n;v()&&t.set({isLoggedIn:!0}),l=await(n=e.extensionId,n&&"string"==typeof n?new Promise(e=>{let t=!1;function o(n){t||(t=!0,e(n))}if(!0===window.__CC_EXTENSION_LOADED)return void o(!0);const i=new Image;i.onload=()=>o(!0),i.onerror=()=>o(!1),i.src=`chrome-extension://${n}/icons/icon16.png`,setTimeout(()=>o(!1),2e3)}):Promise.resolve(!1)),t.set({isExtensionAvailable:l}),l&&(s.attach(),s.onAuthorizationResponse(e=>{var n,i,r;t.set({isLoggedIn:e.isAuthenticated,hasAccess:e.doesHaveAccess,isLoaded:!0,isLoading:!1,creditBalance:null!==(n=e.creditBalance)&&void 0!==n?n:null,requiredCredits:null!==(i=e.requiredCredits)&&void 0!==i?i:null}),e.isAuthenticated?e.doesHaveAccess?p(0,null!==(r=e.creditBalance)&&void 0!==r?r:0):(c.hide(),a.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k},{requiredCredits:e.requiredCredits,creditBalance:e.creditBalance}),o.emit("paywall:shown",{})):(c.hide(),a.render("login",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("paywall:shown",{}))}),s.onPurchaseResponse(e=>{var n,i;t.set({isLoading:!1,isLoaded:!0,hasAccess:e.doesHaveAccess}),e.doesHaveAccess?p(null!==(n=e.creditsSpent)&&void 0!==n?n:0,null!==(i=e.creditBalance)&&void 0!==i?i:0):(a.render("purchase",{onLogin:w,onPurchase:C,onBuyMoreCredits:k}),o.emit("error",{message:"Purchase failed via extension"}))})),await L()},checkAccess:L,destroy:function(){s.detach(),a.destroy(),c.reveal()}}}const C="cc-widget-pos",k="cc-comments-host",L=["#6366f1","#ec4899","#8b5cf6","#14b8a6","#f59e0b","#ef4444"];function E(e,t,o,i){let c=null,a=null,s=null,l=[],d="TOP",p=null,u=null,b=null;function w(){if(c)return c;const{root:n}=function(e){let n=document.getElementById(e);n||(n=document.createElement("div"),n.id=e,n.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;z-index:2147483647;",document.body.appendChild(n));const t=n._ccShadow;if(t)return{host:n,root:t};const o=n.attachShadow({mode:"open"});return n._ccShadow=o,{host:n,root:o}}(k);var t,o;return c=n,h(c,`\n *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n /* ── Widget Button ───────────────────────────────────── */\n .cc-widget-btn {\n position: fixed;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n width: auto;\n height: 60px;\n background: ${t=e.theme.primaryColor};\n border-radius: 10px 0 0 10px;\n display: flex;\n align-items: center;\n gap: 8px;\n padding-left: 12px;\n padding-right: 6px;\n z-index: 2147483646;\n box-shadow: -2px 0 16px rgba(0,0,0,0.12);\n cursor: pointer;\n user-select: none;\n font-family: ${o=e.theme.fontFamily};\n transition: background 0.2s;\n pointer-events: all;\n }\n .cc-widget-btn:hover { filter: brightness(1.08); }\n\n .cc-widget-icon { color: #fff; display: flex; align-items: center; }\n .cc-widget-badge {\n background: #fff;\n color: ${t};\n border-radius: 12px;\n padding: 2px 7px;\n font-size: 12px;\n font-weight: 700;\n min-width: 20px;\n text-align: center;\n }\n .cc-widget-drag-handle {\n color: rgba(255,255,255,0.7);\n cursor: grab;\n display: flex;\n align-items: center;\n padding: 0 4px;\n }\n .cc-widget-drag-handle:active { cursor: grabbing; }\n\n /* ── Panel Overlay ───────────────────────────────────── */\n .cc-panel-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.35);\n z-index: 2147483645;\n opacity: 0;\n transition: opacity 0.25s;\n pointer-events: all;\n }\n .cc-panel-backdrop.cc-visible { opacity: 1; }\n\n .cc-panel {\n position: fixed;\n top: 0; right: -500px;\n width: 460px;\n max-width: 95vw;\n height: 100%;\n background: #f9fafb;\n z-index: 2147483646;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 32px rgba(0,0,0,0.12);\n transition: right 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n font-family: ${o};\n pointer-events: all;\n }\n .cc-panel.cc-open { right: 0; }\n\n /* ── Panel Header ────────────────────────────────────── */\n .cc-panel-header {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 16px 20px;\n border-bottom: 1px solid #e5e7eb;\n background: #fff;\n flex-shrink: 0;\n }\n .cc-panel-title {\n font-size: 16px;\n font-weight: 700;\n color: #111827;\n flex: 1;\n }\n .cc-panel-count {\n font-size: 13px;\n color: #6b7280;\n font-weight: 400;\n }\n .cc-panel-close-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n color: #6b7280;\n padding: 4px;\n display: flex;\n align-items: center;\n border-radius: 6px;\n transition: background 0.15s;\n }\n .cc-panel-close-btn:hover { background: #f3f4f6; }\n\n .cc-back-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n color: #6b7280;\n padding: 4px;\n display: none;\n align-items: center;\n border-radius: 6px;\n transition: background 0.15s;\n }\n .cc-back-btn.cc-visible { display: flex; }\n .cc-back-btn:hover { background: #f3f4f6; }\n\n /* ── Sort Bar ────────────────────────────────────────── */\n .cc-sort-bar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 20px;\n border-bottom: 1px solid #f3f4f6;\n background: #fff;\n flex-shrink: 0;\n }\n .cc-sort-label { font-size: 12px; color: #9ca3af; font-weight: 500; }\n .cc-sort-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 12px;\n font-weight: 600;\n color: #6b7280;\n padding: 4px 8px;\n border-radius: 6px;\n font-family: ${o};\n transition: background 0.15s, color 0.15s;\n }\n .cc-sort-btn:hover { background: #f3f4f6; }\n .cc-sort-btn.cc-active { background: #111827; color: #fff; }\n\n /* ── Comments List ───────────────────────────────────── */\n .cc-comments-list {\n flex: 1;\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n .cc-comments-list::-webkit-scrollbar { width: 4px; }\n .cc-comments-list::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }\n\n /* ── Comment Card ────────────────────────────────────── */\n .cc-comment-card {\n padding: 16px 20px;\n background: #fff;\n border-bottom: 1px solid #f3f4f6;\n }\n .cc-comment-card.cc-reply {\n padding-left: 36px;\n background: #fafafa;\n }\n\n .cc-comment-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 8px;\n }\n .cc-comment-author-row { display: flex; align-items: center; gap: 10px; }\n\n .cc-avatar {\n width: 32px; height: 32px;\n border-radius: 50%;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #fff;\n font-weight: 700;\n font-size: 12px;\n overflow: hidden;\n }\n .cc-avatar img { width: 100%; height: 100%; object-fit: cover; }\n\n .cc-author-name {\n font-size: 14px;\n font-weight: 700;\n color: #111827;\n }\n .cc-comment-time {\n font-size: 11px;\n color: #9ca3af;\n margin-top: 2px;\n }\n\n .cc-comment-body {\n font-size: 14px;\n color: #374151;\n line-height: 1.6;\n margin-bottom: 12px;\n word-break: break-word;\n white-space: pre-wrap;\n }\n\n .cc-comment-actions {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .cc-action-btn {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n color: #6b7280;\n padding: 3px 6px;\n border-radius: 6px;\n font-family: ${o};\n transition: background 0.15s, color 0.15s;\n }\n .cc-action-btn:hover { background: #f3f4f6; }\n .cc-action-btn.cc-liked { color: #ef4444; }\n .cc-action-btn.cc-danger:hover { color: #ef4444; background: #fef2f2; }\n .cc-action-btn.cc-owner-actions { margin-left: auto; }\n\n /* ── Reply Subthread ─────────────────────────────────── */\n .cc-subthread-label {\n font-size: 11px;\n font-weight: 600;\n color: #94a3b8;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 12px 20px 8px;\n background: #f9fafb;\n }\n\n /* ── Empty / Loading / Error ─────────────────────────── */\n .cc-empty-state, .cc-loading-state, .cc-error-state {\n text-align: center;\n padding: 60px 20px;\n color: #9ca3af;\n }\n .cc-empty-state p, .cc-loading-state p, .cc-error-state p {\n font-size: 14px;\n font-weight: 500;\n color: #9ca3af;\n margin-bottom: 6px;\n }\n .cc-empty-state span, .cc-loading-state span, .cc-error-state span {\n font-size: 13px;\n color: #d1d5db;\n }\n .cc-error-state .cc-retry-btn {\n margin-top: 16px;\n padding: 8px 16px;\n background: #111827;\n color: #fff;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n font-family: ${o};\n }\n .cc-error-icon { color: #ef4444; margin-bottom: 12px; }\n\n .cc-spinner-lg {\n width: 28px; height: 28px;\n border: 2px solid #e5e7eb;\n border-top-color: ${t};\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n margin: 0 auto 12px;\n }\n @keyframes cc-spin { to { transform: rotate(360deg); } }\n\n /* ── Compose Box ─────────────────────────────────────── */\n .cc-compose {\n border-top: 1px solid #e5e7eb;\n padding: 12px 20px;\n background: #fff;\n flex-shrink: 0;\n position: relative;\n }\n\n .cc-compose-textarea {\n width: 100%;\n min-height: 72px;\n max-height: 180px;\n border: 1.5px solid #d1d5db;\n border-radius: 8px;\n padding: 10px 12px;\n font-size: 14px;\n font-family: ${o};\n color: #111827;\n resize: vertical;\n outline: none;\n background: #fff;\n transition: border-color 0.15s;\n line-height: 1.5;\n }\n .cc-compose-textarea:focus { border-color: ${t}; }\n .cc-compose-textarea::placeholder { color: #9ca3af; }\n\n .cc-compose-actions {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 8px;\n gap: 8px;\n }\n .cc-compose-cancel {\n background: transparent;\n border: none;\n cursor: pointer;\n font-size: 13px;\n color: #6b7280;\n font-family: ${o};\n padding: 6px;\n display: none;\n }\n .cc-compose-cancel.cc-visible { display: block; }\n .cc-compose-submit {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n height: 36px;\n padding: 0 16px;\n background: ${t};\n color: #fff;\n border: none;\n border-radius: 7px;\n font-size: 13px;\n font-weight: 600;\n cursor: pointer;\n font-family: ${o};\n margin-left: auto;\n transition: opacity 0.15s;\n }\n .cc-compose-submit:disabled { opacity: 0.55; cursor: not-allowed; }\n\n .cc-spinner-sm {\n width: 14px; height: 14px;\n border: 2px solid rgba(255,255,255,0.4);\n border-top-color: #fff;\n border-radius: 50%;\n animation: cc-spin 0.7s linear infinite;\n }\n\n /* ── Login Overlay inside compose ────────────────────── */\n .cc-login-overlay {\n position: absolute;\n inset: 0;\n background: rgba(255,255,255,0.95);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 16px;\n border-top: 1px solid #e5e7eb;\n }\n .cc-login-overlay p {\n font-size: 14px;\n color: #6b7280;\n text-align: center;\n }\n .cc-login-overlay-btn {\n height: 40px;\n padding: 0 20px;\n background: ${t};\n color: #fff;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n font-family: ${o};\n }\n `),c}function C(){const e=r.get();a=e?function(e){var t,o;const i=n(e);return i&&null!==(o=null!==(t=i.id)&&void 0!==t?t:i._id)&&void 0!==o?o:null}(e):null}async function E(){const n=`https://accounts.contentcredits.com/authenticate/extension?redirect=${encodeURIComponent(e.articleUrl)}`;y()?window.location.href=n:await x(n)&&(C(),z(),N())}async function N(){var n;const o=w(),i=o.getElementById("cc-comments-list");if(i){!function(e){e.innerHTML="";const n=g("div");n.className="cc-loading-state";const t=g("div");t.className="cc-spinner-lg",n.appendChild(t),n.appendChild(g("p","Loading comments…")),e.appendChild(n)}(i);try{const c=await t.ensureThread({pageUrl:e.articleUrl,hostname:e.hostName});if(!c._id)return void B(i,"Comments are not available for this page.");s=c._id;const r=await t.getComments({pageUrl:e.articleUrl,sortBy:d});l=null!==(n=r.comments)&&void 0!==n?n:[],r.thread&&(s=r.thread._id);const a=o.getElementById("cc-header-count");a&&f(a,String(l.length)),T(i)}catch(e){B(i,"Unable to reach the server. Check your connection.")}}}function I(e){const n=new Map,t=[];return e.forEach(e=>n.set(e._id,Object.assign(Object.assign({},e),{replies:[]}))),e.forEach(e=>{const o=n.get(e._id);if(e.parentCommentId){const t=n.get(e.parentCommentId);t&&!t.parentCommentId&&t.replies.push(o)}else t.push(o)}),t}function B(e,n){e.innerHTML="";const t=g("div");t.className="cc-error-state";const o=g("div");o.className="cc-error-icon",o.innerHTML='<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>',t.appendChild(o),t.appendChild(g("p",n));const i=g("button","Try Again");i.className="cc-retry-btn",i.addEventListener("click",()=>{N()}),t.appendChild(i),e.appendChild(t)}function T(e){e.innerHTML="";const n=w(),t=n.getElementById("cc-back-btn"),o=n.getElementById("cc-panel-title");if(p?(null==t||t.classList.add("cc-visible"),o&&f(o,"Replies")):(null==t||t.classList.remove("cc-visible"),o&&f(o,"Comments")),p)!function(e,n){var t,o,i,c,r;const a=I(l).find(e=>e._id===n);if(!a)return;e.appendChild(P(a,!1));const s=g("div",`${null!==(o=null===(t=a.replies)||void 0===t?void 0:t.length)&&void 0!==o?o:0} ${1===(null!==(c=null===(i=a.replies)||void 0===i?void 0:i.length)&&void 0!==c?c:0)?"REPLY":"REPLIES"}`);if(s.className="cc-subthread-label",e.appendChild(s),null===(r=a.replies)||void 0===r?void 0:r.length)a.replies.forEach(n=>e.appendChild(P(n,!0)));else{const n=g("div");n.className="cc-empty-state",n.style.paddingTop="20px",n.appendChild(g("p","No replies yet")),e.appendChild(n)}}(e,p);else{if(0===l.length){const n=g("div");n.className="cc-empty-state",n.appendChild(g("p","No comments yet"));const t=g("span","Be the first to share your thoughts");return n.appendChild(t),void e.appendChild(n)}(function(e){const n=[...e];return"NEWEST"===d?n.sort((e,n)=>new Date(n.createdAt).getTime()-new Date(e.createdAt).getTime()):n.sort((e,n)=>{var t,o,i,c,r,a;return(null!==(o=null===(t=n.replies)||void 0===t?void 0:t.length)&&void 0!==o?o:0)-(null!==(c=null===(i=e.replies)||void 0===i?void 0:i.length)&&void 0!==c?c:0)||(null!==(r=n.likeCount)&&void 0!==r?r:0)-(null!==(a=e.likeCount)&&void 0!==a?a:0)}),n.forEach(e=>{var n;(null===(n=e.replies)||void 0===n?void 0:n.length)&&e.replies.sort((e,n)=>new Date(n.createdAt).getTime()-new Date(e.createdAt).getTime())}),n})(I(l)).forEach(n=>e.appendChild(P(n,!1)))}}function P(n,t){var o,i;const c=!(!a||n.authorId!==a),r=n.author,s=r?`${r.firstName} ${r.lastName}`.trim():"Anonymous",l=L[(s||"A").charCodeAt(0)%L.length],d=r?function(e,n){var t,o,i,c;return`${null!==(o=null===(t=null==e?void 0:e[0])||void 0===t?void 0:t.toUpperCase())&&void 0!==o?o:""}${null!==(c=null===(i=null==n?void 0:n[0])||void 0===i?void 0:i.toUpperCase())&&void 0!==c?c:""}`||"?"}(r.firstName,r.lastName):"?",p=g("div");p.className="cc-comment-card"+(t?" cc-reply":""),p.dataset.commentId=n._id;const u=g("div");u.className="cc-comment-header";const m=g("div");m.className="cc-comment-author-row";const h=g("div");if(h.className="cc-avatar",h.style.background=l,null==r?void 0:r.profilePicture){const n=function(e){try{const n=new URL(e);return"http:"!==n.protocol&&"https:"!==n.protocol?null:n.toString()}catch(e){return null}}(r.profilePicture.startsWith("http")?r.profilePicture:`${e.apiBaseUrl}${r.profilePicture}`);if(n){const e=g("img");e.setAttribute("src",n),e.setAttribute("alt",s),e.addEventListener("error",()=>{e.remove(),f(h,d)}),h.appendChild(e)}else f(h,d)}else f(h,d);const b=g("div"),y=g("div",s);y.className="cc-author-name";const v=g("div",function(e){try{const n=new Date(e);return`${n.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})} · ${n.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}`}catch(e){return""}}(n.createdAt));v.className="cc-comment-time",b.appendChild(y),b.appendChild(v),m.appendChild(h),m.appendChild(b),u.appendChild(m),p.appendChild(u);const x=g("div");x.className="cc-comment-body",x.appendChild(function(e){const n=document.createDocumentFragment(),t=e.split("\n");return t.forEach((e,o)=>{n.appendChild(document.createTextNode(e)),o<t.length-1&&n.appendChild(document.createElement("br"))}),n}(n.content)),p.appendChild(x);const w=g("div");if(w.className="cc-comment-actions",!t){const e=g("button");e.className="cc-action-btn",e.dataset.commentId=n._id,e.dataset.action="reply",e.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="transform:scaleX(-1)"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>',e.appendChild(document.createTextNode(` ${(null===(o=n.replies)||void 0===o?void 0:o.length)||"Reply"}`)),w.appendChild(e)}const C=g("button");if(C.className="cc-action-btn"+(n.hasLiked?" cc-liked":""),C.dataset.commentId=n._id,C.dataset.action="like",C.innerHTML=`<svg width="14" height="14" viewBox="0 0 24 24" fill="${n.hasLiked?"currentColor":"none"}" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>`,C.appendChild(document.createTextNode(` ${null!==(i=n.likeCount)&&void 0!==i?i:0}`)),w.appendChild(C),c){const e=g("div");e.className="cc-action-btn cc-owner-actions",e.style.cssText="margin-left:auto;display:flex;gap:4px;background:transparent;border:none;padding:0;";const t=g("button","Edit");t.className="cc-action-btn",t.dataset.commentId=n._id,t.dataset.action="edit";const o=g("button","Delete");o.className="cc-action-btn cc-danger",o.dataset.commentId=n._id,o.dataset.action="delete",e.appendChild(t),e.appendChild(o),w.appendChild(e)}return p.appendChild(w),p}function A(){const e=g("div");e.className="cc-login-overlay",e.id="cc-login-overlay",e.appendChild(g("p","Sign in to join the conversation"));const n=g("button","Login with Content Credits");return n.className="cc-login-overlay-btn",n.addEventListener("click",()=>{E()}),e.appendChild(n),e}function S(e){const n=e.target.closest("[data-action]");if(!n)return;const i=n.dataset.action,a=n.dataset.commentId;if(a)switch(i){case"reply":!function(e){if(p){u=e,b=null;const n=null==c?void 0:c.getElementById("cc-compose-textarea");n&&(n.placeholder="Write a reply…",n.focus()),$()}else{p=e;const n=null==c?void 0:c.getElementById("cc-comments-list");n&&T(n)}}(a);break;case"like":!async function(e){var n,i,a,s,d;if(!r.has())return void E();const p=l.find(n=>n._id===e);if(!p)return;const u=p.hasLiked;p.hasLiked=!u,p.likeCount=(null!==(n=p.likeCount)&&void 0!==n?n:0)+(p.hasLiked?1:-1);const m=null==c?void 0:c.getElementById("cc-comments-list");m&&T(m);try{const n=await t.toggleLike(e);n.success?("boolean"==typeof(null===(i=n.data)||void 0===i?void 0:i.hasLiked)&&(p.hasLiked=n.data.hasLiked),"number"==typeof(null===(a=n.data)||void 0===a?void 0:a.likeCount)&&(p.likeCount=n.data.likeCount),o.emit("comment:liked",{commentId:e,hasLiked:p.hasLiked})):(p.hasLiked=u,p.likeCount=(null!==(s=p.likeCount)&&void 0!==s?s:0)+(u?1:-1)),m&&T(m)}catch(e){p.hasLiked=u,p.likeCount=(null!==(d=p.likeCount)&&void 0!==d?d:0)+(u?1:-1),m&&T(m)}}(a);break;case"edit":!function(e){const n=l.find(n=>n._id===e);if(!n)return;b=e,u=null;const t=null==c?void 0:c.getElementById("cc-compose-textarea");t&&(t.value=n.content,t.placeholder="Edit your comment…",t.focus());const o=null==c?void 0:c.getElementById("cc-compose-submit");o&&f(o,"Update"),$()}(a);break;case"delete":!async function(e){if(confirm("Delete this comment?"))try{(await t.deleteComment(e))._id&&(o.emit("comment:deleted",{commentId:e}),N())}catch(e){}}(a)}}function $(){const e=null==c?void 0:c.getElementById("cc-compose-cancel");null==e||e.classList.add("cc-visible")}function M(){const e=null==c?void 0:c.getElementById("cc-compose-cancel");null==e||e.classList.remove("cc-visible")}function _(){b=null,u=null;const e=null==c?void 0:c.getElementById("cc-compose-textarea");e&&(e.value="",e.placeholder="Write a comment…");const n=null==c?void 0:c.getElementById("cc-compose-submit");n&&f(n,"Post"),M()}function z(){const e=w(),n=e.getElementById("cc-login-overlay");if(r.has()&&n)n.remove();else if(!r.has()&&!n){const n=e.getElementById("cc-compose");null==n||n.appendChild(A())}}function U(){const e=c;if(!e)return;const n=e.getElementById("cc-panel-backdrop"),t=e.getElementById("cc-comments-panel");null==n||n.classList.remove("cc-visible"),null==t||t.classList.remove("cc-open"),setTimeout(()=>{null==n||n.remove(),null==t||t.remove(),i()},280)}return{openPanel:function(){const e=w();v()&&C(),C();let n=e.getElementById("cc-panel-backdrop");n||(n=g("div"),n.className="cc-panel-backdrop",n.id="cc-panel-backdrop",n.addEventListener("click",U),e.appendChild(n),e.appendChild(function(){const e=g("div");e.className="cc-panel",e.id="cc-comments-panel";const n=g("div");n.className="cc-panel-header";const i=g("button");i.className="cc-back-btn",i.id="cc-back-btn",i.setAttribute("aria-label","Back"),i.innerHTML='<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"/></svg>',i.addEventListener("click",()=>{p=null,u=null;const e=null==c?void 0:c.getElementById("cc-comments-list");e&&T(e)});const a=g("div");a.style.cssText="flex:1;display:flex;align-items:center;gap:6px;";const l=g("span","Comments");l.className="cc-panel-title",l.id="cc-panel-title";const m=g("span","");m.className="cc-panel-count",m.id="cc-header-count",a.appendChild(l),a.appendChild(m);const h=g("button");h.className="cc-panel-close-btn",h.setAttribute("aria-label","Close comments"),h.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>',h.addEventListener("click",U),n.appendChild(i),n.appendChild(a),n.appendChild(h),e.appendChild(n);const y=g("div");y.className="cc-sort-bar";const v=g("span","Sort:");v.className="cc-sort-label",y.appendChild(v),["TOP","NEWEST"].forEach(e=>{const n=g("button",e);n.className="cc-sort-btn"+(d===e?" cc-active":""),n.dataset.sort=e,n.addEventListener("click",()=>{d!==e&&(d=e,y.querySelectorAll(".cc-sort-btn").forEach(e=>e.classList.remove("cc-active")),n.classList.add("cc-active"),N())}),y.appendChild(n)}),e.appendChild(y);const x=g("div");return x.className="cc-comments-list",x.id="cc-comments-list",x.addEventListener("click",S),e.appendChild(x),e.appendChild(function(){const e=g("div");e.className="cc-compose",e.id="cc-compose";const n=g("textarea");n.className="cc-compose-textarea",n.id="cc-compose-textarea",n.setAttribute("placeholder","Write a comment…"),n.setAttribute("rows","3"),e.appendChild(n);const i=g("div");i.className="cc-compose-actions";const a=g("button","Cancel");a.className="cc-compose-cancel",a.id="cc-compose-cancel",a.addEventListener("click",_),i.appendChild(a);const l=g("button","Post");return l.className="cc-compose-submit",l.id="cc-compose-submit",l.addEventListener("click",()=>{!async function(){const e=null==c?void 0:c.getElementById("cc-compose-textarea");if(!e)return;const n=e.value.trim();if(!n)return;if(!r.has())return void E();if(!s)return;const i=null==c?void 0:c.getElementById("cc-compose-submit");i&&(i.disabled=!0,f(i,"Posting…"));try{let c;b?c=await t.editComment(b,n):(c=await t.postComment({threadId:s,content:n,parentCommentId:null!=u?u:p}),o.emit("comment:posted",{comment:c})),c._id&&(e.value="",b=null,u=null,e.placeholder=p?"Write a reply…":"Write a comment…",M(),i&&f(i,"Post"),N())}catch(e){}finally{i&&(i.disabled=!1)}}()}),i.appendChild(l),e.appendChild(i),r.has()||e.appendChild(A()),e}()),e}())),requestAnimationFrame(()=>{var t;n.classList.add("cc-visible"),null===(t=e.getElementById("cc-comments-panel"))||void 0===t||t.classList.add("cc-open")}),z(),N()},closePanel:U,destroy:function(){m(k),c=null}}}class N{constructor(e){var n;this.config=e,this.state=function(){let e={isLoading:!1,isExtensionAvailable:!1,isLoggedIn:!1,hasAccess:!1,isLoaded:!1,user:null,creditBalance:null,requiredCredits:null};const n=[];function t(){return Object.assign({},e)}function o(o){e=Object.assign(Object.assign({},e),o),n.forEach(e=>e(t()))}return{get:t,set:o,subscribe:function(e){return n.push(e),()=>{const t=n.indexOf(e);t>=0&&n.splice(t,1)}},reset:function(){e={isLoading:!1,isExtensionAvailable:!1,isLoggedIn:!1,hasAccess:!1,isLoaded:!1,user:null,creditBalance:null,requiredCredits:null},n.forEach(e=>e(t()))},setUser:function(e){var n;o({user:e,isLoggedIn:null!==e,creditBalance:null!==(n=null==e?void 0:e.credits)&&void 0!==n?n:null})}}}(),this.emitter=function(){const e={};function n(n,t){const o=e[n];if(!o)return;const i=o.indexOf(t);i>=0&&o.splice(i,1)}return{on:function(t,o){return e[t]||(e[t]=[]),e[t].push(o),()=>n(t,o)},off:n,emit:function(n,t){const o=e[n];o&&o.forEach(e=>{try{e(t)}catch(e){console.warn(`[ContentCredits] Error in "${n}" handler:`,e)}});try{document.dispatchEvent(new CustomEvent(`contentcredits:${n}`,{detail:t,bubbles:!1}))}catch(e){}},removeAll:function(){Object.keys(e).forEach(n=>{delete e[n]})}}}(),this.paywallModule=null,this.commentsModule=null,this.client=function(e,n){async function t(o,i,c,p=0,u=!1){const m=`${e}${i}`,h=c?JSON.stringify(c):void 0,f=function(e,n,t){return`${e}:${n}:${null!=t?t:""}`}(o,m,h),g=l.get(f);if(g)return g;const b=new AbortController,y=setTimeout(()=>b.abort(),12e3),v={"Content-Type":"application/json"},x=r.get();x&&(v.Authorization=`Bearer ${x}`);const w=fetch(m,{method:o,headers:v,body:h,signal:b.signal,credentials:"omit"}).then(async m=>{var h;if(clearTimeout(y),401===m.status){if(!u&&await s(e))return l.delete(f),t(o,i,c,p,!0);throw r.clear(),a.clear(),n.emit("auth:logout",{}),new d(401,"Unauthorized — session expired")}let g;try{g=await m.json()}catch(e){throw new d(m.status,"Invalid JSON response from server")}if(!m.ok){const e=null!==(h=null==g?void 0:g.message)&&void 0!==h?h:`HTTP ${m.status}`;throw new d(m.status,e,g)}return g}).catch(async e=>{clearTimeout(y);const n=e instanceof TypeError&&e.message.includes("fetch"),r=e instanceof d&&((a=e.status)>=500||429===a);var a;if((n||r)&&p<3)return l.delete(f),await async function(e){return new Promise(n=>setTimeout(n,e))}(400*Math.pow(2,p)),t(o,i,c,p+1);throw e}).finally(()=>{l.delete(f)});return l.set(f,w),w}return{get:e=>t("GET",e),post:(e,n)=>t("POST",e,n),put:(e,n)=>t("PUT",e,n),delete:e=>t("DELETE",e)}}(e.apiBaseUrl,this.emitter),this.creditsApi=(n=this.client,{checkAccess:e=>n.post("/credits/check-article-access",{apiKey:e.apiKey,postUrl:e.postUrl,postName:e.postName,hostName:e.hostName}),purchaseArticle:e=>n.post("/credits/purchase-article",{apiKey:e.apiKey,postUrl:e.postUrl,postName:e.postName,hostName:e.hostName})}),this.commentsApi=function(e){return{ensureThread:n=>e.post("/comments/threads/ensure",{pageUrl:n.pageUrl,hostname:n.hostname}),getComments(n){const t=encodeURIComponent(n.pageUrl);return e.get(`/comments/comments/by-url?url=${t}&sortBy=${n.sortBy}`)},postComment:n=>e.post("/comments/comments",Object.assign({threadId:n.threadId,content:n.content},n.parentCommentId?{parentCommentId:n.parentCommentId}:{})),editComment:(n,t)=>e.put(`/comments/comments/${n}`,{content:t}),deleteComment:n=>e.delete(`/comments/comments/${n}`),toggleLike:n=>e.post(`/comments/comments/${n}/toggle-like`,{})}}(this.client)}static init(e){const n=function(e){var n,t,o,i,c,r,a,s,l,d;if(!e.apiKey||"string"!=typeof e.apiKey||""===e.apiKey.trim())throw new Error("[ContentCredits] apiKey is required. Get yours from the Content Credits admin panel.");const p=null!==(n=e.articleUrl)&&void 0!==n?n:window.location.href;let u;try{u=new URL(p).hostname}catch(e){throw new Error(`[ContentCredits] Invalid articleUrl: "${p}"`)}return{apiKey:e.apiKey.trim(),articleUrl:p,hostName:u,pageTitle:document.title,contentSelector:null!==(t=e.contentSelector)&&void 0!==t?t:".cc-premium-content",teaserParagraphs:null!==(o=e.teaserParagraphs)&&void 0!==o?o:2,enableComments:null===(i=e.enableComments)||void 0===i||i,extensionId:null!==(c=e.extensionId)&&void 0!==c?c:"ljehdpabbhgccmanhjdfacjnaigpgcml",debug:null!==(r=e.debug)&&void 0!==r&&r,apiBaseUrl:"https://api.contentcredits.com",accountsUrl:"https://accounts.contentcredits.com",paywallTemplate:e.paywallTemplate,onAccessGranted:e.onAccessGranted,theme:{primaryColor:null!==(s=null===(a=e.theme)||void 0===a?void 0:a.primaryColor)&&void 0!==s?s:"#44C678",fontFamily:null!==(d=null===(l=e.theme)||void 0===l?void 0:l.fontFamily)&&void 0!==d?d:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"}}}(e),t=new N(n);return t._start(),t}async _start(){v();const e=u({selector:this.config.contentSelector,teaserParagraphs:this.config.teaserParagraphs});e.hide(),r.has()||await s(this.config.apiBaseUrl),this.paywallModule=w(this.config,this.creditsApi,this.state,this.emitter,e),this.config.enableComments&&(this.commentsModule=function(e,n,t){const o=E(e,n,t,()=>i.show()),i=function(e,n){let t=null,o=null;return{mount:function(){if(document.getElementById("cc-comment-widget"))return;let i=50;try{const e=localStorage.getItem(C);e&&(i=JSON.parse(e))}catch(e){}t=document.createElement("div"),t.id="cc-comment-widget",t.style.cssText=`\n position:fixed;top:${i}%;right:0;transform:translateY(-50%);\n height:60px;background:${e};border-radius:10px 0 0 10px;\n display:flex;align-items:center;gap:8px;padding:0 8px 0 12px;\n z-index:2147483646;box-shadow:-2px 0 16px rgba(0,0,0,.12);\n cursor:pointer;user-select:none;\n font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;\n transition:filter .2s;\n `,t.setAttribute("role","button"),t.setAttribute("aria-label","Open comments"),t.tabIndex=0;const c=document.createElement("div");c.style.cssText="color:#fff;display:flex;align-items:center;flex-shrink:0;",c.innerHTML='<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>',o=document.createElement("span"),o.style.cssText=`\n background:#fff;color:${e};border-radius:12px;\n padding:2px 7px;font-size:12px;font-weight:700;min-width:20px;\n text-align:center;display:none;\n `;const r=document.createElement("div");r.style.cssText="color:rgba(255,255,255,.65);cursor:grab;display:flex;align-items:center;padding:0 2px;flex-shrink:0;",r.innerHTML='<svg width="8" height="22" viewBox="0 0 8 22" fill="none"><circle cx="4" cy="4" r="2" fill="currentColor"/><circle cx="4" cy="11" r="2" fill="currentColor"/><circle cx="4" cy="18" r="2" fill="currentColor"/></svg>',c.addEventListener("click",n),o.addEventListener("click",n);let a=!1,s=0,l=0;function d(e){a=!0,s=e,l=t.getBoundingClientRect().top,r.style.cursor="grabbing"}function p(e){if(!a||!t)return;const n=e-s,o=Math.max(0,Math.min(window.innerHeight-60,l+n))/window.innerHeight*100;t.style.top=`${o}%`}function u(){if(!a||!t)return;a=!1,r.style.cursor="grab";const e=t.getBoundingClientRect().top/window.innerHeight*100;try{localStorage.setItem(C,JSON.stringify(e))}catch(e){}}r.addEventListener("mousedown",e=>{e.preventDefault(),e.stopPropagation(),d(e.clientY)}),r.addEventListener("touchstart",e=>{e.preventDefault(),d(e.touches[0].clientY)},{passive:!1}),document.addEventListener("mousemove",e=>p(e.clientY)),document.addEventListener("touchmove",e=>p(e.touches[0].clientY),{passive:!0}),document.addEventListener("mouseup",u),document.addEventListener("touchend",u),t.addEventListener("keydown",e=>{"Enter"!==e.key&&" "!==e.key||n()}),t.appendChild(c),t.appendChild(o),t.appendChild(r),document.body.appendChild(t)},setCount:function(e){o&&(e>0?(o.textContent=e>99?"99+":String(e),o.style.display="inline-block"):o.style.display="none")},show:function(){t&&(t.style.display="flex")},hide:function(){t&&(t.style.display="none")},destroy:function(){null==t||t.remove(),t=null,o=null}}}(e.theme.primaryColor,()=>{i.hide(),o.openPanel()});return{init:function(){i.mount()},open:function(){i.hide(),o.openPanel()},close:function(){o.closePanel()},destroy:function(){o.destroy(),i.destroy()}}}(this.config,this.commentsApi,this.emitter),this.commentsModule.init()),await this.paywallModule.init(),this.emitter.emit("ready",{state:this.state.get()})}on(e,n){return this.emitter.on(e,n)}off(e,n){this.emitter.off(e,n)}getState(){return this.state.get()}async checkAccess(){var e;await(null===(e=this.paywallModule)||void 0===e?void 0:e.checkAccess())}openComments(){var e;null===(e=this.commentsModule)||void 0===e||e.open()}closeComments(){var e;null===(e=this.commentsModule)||void 0===e||e.close()}isLoggedIn(){return r.has()}destroy(){var e,n;null===(e=this.paywallModule)||void 0===e||e.destroy(),null===(n=this.commentsModule)||void 0===n||n.destroy(),this.emitter.removeAll(),this.state.reset()}static get version(){return"2.1.0"}}!function(){var e,n,t;const o=null!==(e=document.currentScript)&&void 0!==e?e:document.querySelector("script[data-cc-api-key], script[data-api-key]");if(!o)return;const i=o.dataset,c=null!==(n=i.ccApiKey)&&void 0!==n?n:i.apiKey;if(!c)return;const r={apiKey:c,contentSelector:null!==(t=i.ccContentSelector)&&void 0!==t?t:i.contentSelector,teaserParagraphs:i.ccTeaserParagraphs?parseInt(i.ccTeaserParagraphs,10):void 0,enableComments:"false"!==i.ccEnableComments,extensionId:i.ccExtensionId,debug:"true"===i.ccDebug};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>N.init(r)):N.init(r)}(),e.ContentCredits=N});
2
2
  //# sourceMappingURL=content-credits.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-credits.umd.min.js","sources":["../src/auth/token.ts","../src/auth/storage.ts","../src/auth/session.ts","../src/api/client.ts","../src/paywall/gate.ts","../src/ui/shadow.ts","../src/ui/sanitize.ts","../src/paywall/renderer.ts","../src/auth/popup.ts","../src/paywall/index.ts","../src/ui/styles.ts","../src/extension/bridge.ts","../src/extension/detector.ts","../src/comments/widget.ts","../src/comments/panel.ts","../src/index.ts","../src/api/credits.ts","../src/core/state.ts","../src/core/events.ts","../src/api/comments.ts","../src/core/config.ts","../src/comments/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["decodeJwt","token","parts","split","length","base64","replace","padded","padEnd","json","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","_a","isTokenExpired","payload","exp","Date","now","SESSION_KEY","REFRESH_KEY","memoryToken","tokenStorage","set","sessionStorage","setItem","get","this","clear","stored","getItem","removeItem","has","refreshTokenStorage","localStorage","async","tryRefreshSession","apiBaseUrl","rt","controller","AbortController","timeoutId","setTimeout","abort","resp","fetch","method","headers","body","stringify","refreshToken","credentials","signal","clearTimeout","ok","data","accessToken","inFlight","Map","ApiError","Error","constructor","status","message","super","name","GATE_ATTR","createShadowHost","id","host","document","getElementById","createElement","style","cssText","appendChild","existing","_ccShadow","root","attachShadow","mode","removeShadowHost","remove","injectStyles","css","querySelector","textContent","dataset","ccStyles","setTextContent","el","str","tag","text","attrs","element","undefined","HOST_ID","isMobileDevice","test","navigator","userAgent","window","innerWidth","consumeTokenFromUrl","url","URL","location","href","searchParams","_b","changed","forEach","param","delete","history","replaceState","scrubTokenFromUrl","_c","openAuthPopup","authUrl","Promise","resolve","popup","open","Math","round","screenX","outerWidth","screenY","outerHeight","closed","elapsed","timer","setInterval","clearInterval","close","popupUrl","includes","params","URLSearchParams","search","_d","_e","createPaywall","config","creditsApi","state","emitter","gate","options","gated","contentEl","hiddenNodes","hide","selector","hasAttribute","paragraphs","Array","from","querySelectorAll","teaserParagraphs","hideFrom","childNodes","pivotIndex","findIndex","n","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","HTMLElement","Text","setProperty","call","setAttribute","display","reveal","removeProperty","removeAttribute","isGated","createGate","contentSelector","renderer","overlay","init","shadowRoot","primaryColor","fontFamily","theme","backdrop","className","poweredBy","div","link","destroy","render","callbacks","meta","firstChild","removeChild","parent","spinner","margin","width","height","borderWidth","borderColor","borderTopColor","renderChecking","cb","btn","addEventListener","onLogin","renderLogin","credits","badge","onPurchase","renderPurchase","requiredCredits","required","available","detail","onBuyMoreCredits","renderInsufficient","creditBalance","disabled","createTextNode","renderLoading","setButtonLoading","loading","createPaywallRenderer","bridge","authHandler","purchaseHandler","handleMessage","event","origins","push","origin","getAllowedOrigins","msg","type","attach","e","detach","removeEventListener","requestAuthorization","articleId","hostName","postMessage","requestPurchase","requestLogin","onAuthorizationResponse","handler","onPurchaseResponse","createExtensionBridge","extensionAvailable","handleAccessGranted","creditsSpent","balance","hasAccess","isLoaded","isLoading","doLogin","doPurchase","doBuyMoreCredits","emit","remainingBalance","onAccessGranted","encodeURIComponent","articleUrl","isLoggedIn","checkAccess","apiKey","title","pageTitle","result","purchaseArticle","postUrl","postName","success","err","error","extensionId","resolved","done","__CC_EXTENSION_LOADED","img","Image","onload","onerror","src","isExtensionAvailable","isAuthenticated","doesHaveAccess","POSITION_KEY","PANEL_HOST_ID","AVATAR_COLORS","createCommentPanel","commentsApi","onClose","currentUserId","currentThreadId","currentComments","currentSort","viewingSubthreadFor","replyingToCommentId","editingCommentId","ensureRoot","r","refreshUser","_id","getUserIdFromToken","updateLoginOverlay","loadComments","listEl","container","innerHTML","threadRes","ensureThread","pageUrl","hostname","renderError","commentsRes","getComments","sortBy","comments","thread","countEl","String","renderComments","buildTree","roots","replies","node","parentCommentId","icon","retry","backBtn","titleEl","classList","add","parentId","find","buildCommentEl","label","empty","paddingTop","renderSubthread","sub","sorted","sort","a","b","createdAt","getTime","likeCount","_f","sortTree","comment","isReply","isOwn","authorId","author","authorName","firstName","lastName","trim","avatarBg","inis","first","last","toUpperCase","initials","card","commentId","header","authorRow","avatar","background","profilePicture","safeUrl","parsed","protocol","sanitizeUrl","startsWith","authorMeta","nameEl","timeEl","iso","d","toLocaleTimeString","hour","minute","toLocaleDateString","month","day","year","formatDate","raw","fragment","createDocumentFragment","lines","line","i","renderCommentContent","content","actions","replyBtn","action","likeBtn","hasLiked","ownerDiv","editBtn","deleteBtn","buildLoginOverlay","handleListClick","target","closest","textarea","placeholder","focus","showCancel","handleReply","wasLiked","res","toggleLike","handleLike","value","submitBtn","handleEdit","confirm","deleteComment","handleDelete","cancelBtn","hideCancel","cancelEdit","compose","closePanel","panel","openPanel","titleGroup","closeBtn","sortBar","sortLabel","list","editComment","postComment","threadId","handleSubmit","buildCompose","buildPanel","requestAnimationFrame","ContentCredits","client","current","user","subscribers","Object","assign","patch","fn","subscribe","indexOf","splice","reset","setUser","createState","listeners","off","arr","idx","on","console","warn","dispatchEvent","CustomEvent","bubbles","removeAll","keys","k","createEventEmitter","paywallModule","commentsModule","baseUrl","request","path","attempt","authRetried","serialisedBody","key","requestKey","promise","then","response","catch","isNetworkError","TypeError","isServerError","ms","sleep","pow","finally","post","put","createApiClient","encoded","createCommentsApi","rawConfig","_l","enableComments","debug","accountsUrl","paywallTemplate","_g","_h","_j","_k","resolveConfig","instance","_start","widget","show","onOpen","badgeEl","mount","topPercent","saved","tabIndex","handle","dragging","startY","startTop","beginDrag","y","getBoundingClientRect","top","cursor","moveDrag","delta","pct","max","min","innerHeight","endDrag","preventDefault","stopPropagation","clientY","touches","passive","setCount","createCommentWidget","createComments","getState","openComments","closeComments","version","script","currentScript","ds","ccApiKey","ccContentSelector","ccTeaserParagraphs","parseInt","ccEnableComments","ccExtensionId","ccDebug","readyState","autoInit"],"mappings":"wPAYM,SAAUA,EAAUC,GACxB,IACE,MAAMC,EAAQD,EAAME,MAAM,KAC1B,GAAqB,IAAjBD,EAAME,OAAc,OAAO,KAE/B,MAEMC,EAFYH,EAAM,GAECI,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACpDC,EAASF,EAAOG,OAAOH,EAAOD,QAAW,EAAKC,EAAOD,OAAS,GAAM,EAAI,KACxEK,EAAOC,mBACXC,KAAKJ,GACFJ,MAAM,IACNS,IAAIC,GAAK,KAAO,KAAOA,EAAEC,WAAW,GAAGC,SAAS,KAAKC,OAAO,IAC5DC,KAAK,KAEV,OAAOC,KAAKC,MAAMV,EACpB,CAAE,MAAAW,GACA,OAAO,IACT,CACF,CAGM,SAAUC,EAAepB,GAC7B,MAAMqB,EAAUtB,EAAUC,GAC1B,OAAKqB,GAAkC,iBAAhBA,EAAQC,KAExBC,KAAKC,MAAQ,IAAOH,EAAQC,GACrC,CCrCA,MAAMG,EAAc,eACdC,EAAe,QAkBrB,IAAIC,EAA6B,KAE1B,MAAMC,EAAe,CAC1B,GAAAC,CAAI7B,GACF2B,EAAc3B,EACd,IACE8B,eAAeC,QAAQN,EAAazB,EACtC,CAAE,MAAAmB,GAEF,CACF,EAEA,GAAAa,GAEE,GAAIL,EACF,OAAIP,EAAeO,IACjBM,KAAKC,QACE,MAEFP,EAIT,IACE,MAAMQ,EAASL,eAAeM,QAAQX,GACtC,GAAIU,EACF,OAAIf,EAAee,IACjBF,KAAKC,QACE,OAETP,EAAcQ,EACPA,EAEX,CAAE,MAAAhB,GAEF,CAEA,OAAO,IACT,EAEA,KAAAe,GACEP,EAAc,KACd,IACEG,eAAeO,WAAWZ,EAC5B,CAAE,MAAAN,GAEF,CACF,EAEA,GAAAmB,GACE,OAAsB,OAAfL,KAAKD,KACd,GAWWO,EAAsB,CACjC,GAAAV,CAAI7B,GACF,IACEwC,aAAaT,QAAQL,EAAa1B,EACpC,CAAE,MAAAmB,GAGF,CACF,EAEA,GAAAa,GACE,IACE,OAAOQ,aAAaJ,QAAQV,EAC9B,CAAE,MAAAP,GACA,OAAO,IACT,CACF,EAEA,KAAAe,GACE,IACEM,aAAaH,WAAWX,EAC1B,CAAE,MAAAP,GAEF,CACF,EAEA,GAAAmB,GACE,OAAsB,OAAfL,KAAKD,KACd,GC3FKS,eAAeC,EAAkBC,GACtC,MAAMC,EAAKL,EAAoBP,MAC/B,IAAKY,EAAI,OAAO,EAEhB,MAAMC,EAAa,IAAIC,gBACjBC,EAAYC,WAAW,IAAMH,EAAWI,QAAS,KAEvD,IACE,MAAMC,QAAaC,MAAM,GAAGR,iBAA2B,CACrDS,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAMrC,KAAKsC,UAAU,CAAEC,aAAcZ,IACrCa,YAAa,OACbC,OAAQb,EAAWa,SAKrB,GAFAC,aAAaZ,IAERG,EAAKU,GAIR,OADArB,EAAoBL,SACb,EAGT,MAAM2B,QAAcX,EAAK1C,OAEzB,OAAKqD,aAAI,EAAJA,EAAMC,eAAgBD,aAAI,EAAJA,EAAML,eAMjC5B,EAAaC,IAAIgC,EAAKC,aACtBvB,EAAoBV,IAAIgC,EAAKL,eACtB,IAPLjB,EAAoBL,SACb,EAOX,CAAE,MAAAf,GAGA,OADAwC,aAAaZ,IACN,CACT,CACF,CChDA,MAAMgB,EAAW,IAAIC,IA6Gf,MAAOC,UAAiBC,MAC5B,WAAAC,CACkBC,EAChBC,EACgBR,GAEhBS,MAAMD,GAJUpC,KAAAmC,OAAAA,EAEAnC,KAAA4B,KAAAA,EAGhB5B,KAAKsC,KAAO,UACd,EC7GF,MAAMC,EAAY,gBChBZ,SAAUC,EAAiBC,GAE/B,IAAIC,EAAOC,SAASC,eAAeH,GAC9BC,IACHA,EAAOC,SAASE,cAAc,OAC9BH,EAAKD,GAAKA,EAEVC,EAAKI,MAAMC,QAAU,uFACrBJ,SAAStB,KAAK2B,YAAYN,IAG5B,MAAMO,EAAYP,EAA+CQ,UACjE,GAAID,EAAU,MAAO,CAAEP,OAAMS,KAAMF,GAEnC,MAAME,EAAOT,EAAKU,aAAa,CAAEC,KAAM,SAEvC,OADCX,EAA8CQ,UAAYC,EACpD,CAAET,OAAMS,OACjB,CAEM,SAAUG,EAAiBb,GAC/B,MAAMC,EAAOC,SAASC,eAAeH,GACjCC,GAAMA,EAAKa,QACjB,CAGM,SAAUC,EAAaL,EAAkBM,GAC7C,MAAMR,EAAWE,EAAKO,cAAc,yBACpC,GAAIT,EAEF,YADAA,EAASU,YAAcF,GAGzB,MAAMX,EAAQH,SAASE,cAAc,SACrCC,EAAMc,QAAQC,SAAW,OACzBf,EAAMa,YAAcF,EACpBN,EAAKH,YAAYF,EACnB,CC7BM,SAAUgB,EAAeC,EAAaC,GAC1CD,EAAGJ,YAAcK,CACnB,UAKgBD,EACdE,EACAC,EACAC,GAEA,MAAMC,EAAUzB,SAASE,cAAcoB,GAKvC,YAJaI,IAATH,IAAoBE,EAAQT,YAAcO,GAIvCE,CACT,CCxBA,MAAME,EAAU,2BCQAC,IACd,MAAO,iEAAiEC,KAAKC,UAAUC,YAClFC,OAAOC,WAAa,GAC3B,UA6BgBC,YACd,IACE,MAAMC,EAAM,IAAIC,IAAIJ,OAAOK,SAASC,MAC9BlH,EAAqC,QAA7BmB,EAAA4F,EAAII,aAAanF,IAAI,gBAAQ,IAAAb,EAAAA,EAAI4F,EAAII,aAAanF,IAAI,YAC9DwB,EAAoD,QAArC4D,EAAAL,EAAII,aAAanF,IAAI,wBAAgB,IAAAoF,EAAAA,EAAIL,EAAII,aAAanF,IAAI,oBAQnF,cAlCF,IACE,MAAM+E,EAAM,IAAIC,IAAIJ,OAAOK,SAASC,MACpC,IAAIG,GAAU,EACd,CAAC,QAAS,WAAY,gBAAiB,oBAAoBC,QAAQC,IAC7DR,EAAII,aAAa7E,IAAIiF,KACvBR,EAAII,aAAaK,OAAOD,GACxBF,GAAU,KAGVA,GACFI,QAAQC,aAAa,KAAM,GAAIX,EAAIjG,WAEvC,CAAE,MAAAK,GAEF,CACF,CAcIwG,GAEInE,GACFjB,EAAoBV,IAAI2B,GAEtBxD,EAEF,OADA4B,EAAaC,IAAI7B,GACVA,CAEX,CAAE,MAAA4H,GAEF,CACA,OAAO,IACT,CAOM,SAAUC,EAAcC,GAC5B,OAAO,IAAIC,QAAQC,IACjB,IAAIC,EAAuB,KAE3B,IACEA,EAAQrB,OAAOsB,KAAKJ,EA3EP,cAQV,oGAFMK,KAAKC,MAAMxB,OAAOyB,SAAWzB,OAAO0B,WAFnC,KAEyD,UAC3DH,KAAKC,MAAMxB,OAAO2B,SAAW3B,OAAO4B,YAFjC,KAEyD,KAqEtE,CAAE,MAAArH,GAEF,CAGA,IAAK8G,GAASA,EAAMQ,OAElB,YADAT,EAAQ,MAMV,IAAIU,EAAU,EAEd,MAAMC,EAAQC,YAAY,aAGxB,GAFAF,GALc,KAOTT,GAASA,EAAMQ,OAGlB,OAFAI,cAAcF,QACdX,EAAQpG,EAAaI,OAIvB,GAAI0G,EAZc,IAYlB,CACEG,cAAcF,GACd,IAAMV,EAAMa,OAAS,CAAE,MAAoBlB,GAAC,CAC5CI,EAAQ,KAEV,MAEA,IAEE,MAAMe,EAAWd,EAAMhB,SAASC,KAChC,GAAI6B,EAASC,SAAS,mBAAqBD,EAASC,SAAS,cAAgBD,EAASC,SAAS,UAAW,CACxG,MAAMC,EAAS,IAAIC,gBAAgBjB,EAAMhB,SAASkC,QAC5CnJ,EAA2B,QAAnBmB,EAAA8H,EAAOjH,IAAI,gBAAQ,IAAAb,EAAAA,EAAI8H,EAAOjH,IAAI,YAC1CwB,EAA0C,QAA3B4D,EAAA6B,EAAOjH,IAAI,wBAAgB,IAAAoF,EAAAA,EAAI6B,EAAOjH,IAAI,oBAC/D,GAAIhC,EAAO,CACT4B,EAAaC,IAAI7B,GACbwD,GACFjB,EAAoBV,IAAI2B,GAE1BqF,cAAcF,GACd,IAAMV,EAAMa,OAAS,CAAE,MAAoBM,GAAC,CAC5CpB,EAAQhI,EACV,CACF,CACF,CAAE,MAAAqJ,GAEF,GAvCc,MA0CpB,CCpHM,SAAUC,EACdC,EACAC,EACAC,EACAC,GAEA,MAAMC,ELGF,SAAqBC,GACzB,IAAIC,GAAQ,EACRC,EAAgC,KAChCC,EAAsB,GA0D1B,MAAO,CAAEC,KApDT,WAEE,GADAF,EAJOlF,SAASe,cAA2BiE,EAAQK,WAK9CH,EAAW,OAAO,EACvB,GAAIA,EAAUI,aAAa1F,GAAY,OAAO,EAE9C,MAAM2F,EAAaC,MAAMC,KAAKP,EAAUQ,iBAAiB,sCAGzD,GAAIH,EAAWhK,OAASyJ,EAAQW,iBAAkB,CAChD,MAAMC,EAAWL,EAAWP,EAAQW,kBAC9BE,EAAaL,MAAMC,KAAKP,EAAUW,YAClCC,EAAaD,EAAWE,UAAUC,GAAKA,IAAMJ,GAAYV,EAAWe,SAASD,IAAcA,EAAEE,wBAAwBN,GAAYO,KAAKC,6BAE5IjB,EAAcU,EAAW1J,MAAM2J,EAAa,EAAId,EAAQW,iBAAmBG,GAC3EX,EAAYzC,QAAQsD,iBACdA,aAAaK,aAAeL,aAAaM,QACN,QAArC9D,EAAwB,QAAxBjG,EAACyJ,EAAkB7F,aAAK,IAAA5D,SAAAA,EAAEgK,mBAAW,IAAA/D,GAAAA,EAAAgE,KAAAjK,EAAG,UAAW,gBACnDiI,GAAAxB,EAACgD,GAAkBS,oCAAe,iBAAkB,UAG1D,MAEEtB,EAAcK,MAAMC,KAAKP,EAAUW,YACnCV,EAAYzC,QAAQsD,IACdA,aAAaK,cAAaL,EAAE7F,MAAMuG,QAAU,UAMpD,OAFAxB,EAAUuB,aAAa7G,EAAW,QAClCqF,GAAQ,GACD,CACT,EAqBe0B,OAnBf,WACO1B,IAELE,EAAYzC,QAAQsD,IACdA,aAAaK,cACfL,EAAE7F,MAAMyG,eAAe,WACvBZ,EAAEa,gBAAgB,qBAItB1B,EAAc,GACdD,SAAAA,EAAW2B,gBAAgBjH,GAC3BqF,GAAQ,EACV,EAMuB6B,QAJvB,WACE,OAAO7B,CACT,EAGF,CKjEe8B,CAAW,CACtB1B,SAAUV,EAAOqC,gBACjBrB,iBAAkBhB,EAAOgB,mBAGrBsB,EFJF,SAAgCtC,GACpC,IAAInE,EAA0B,KAC1B0G,EAA8B,KAElC,SAASC,IACP,MAAQ3G,KAAM4G,GAAevH,EAAiB8B,GG1B5C,IAA2B0F,EAAsBC,EH2BnD9G,EAAO4G,EACPvG,EAAaL,GG5BgB6G,EH4BO1C,EAAO4C,MAAMF,aG3B5C,wiCAD8CC,EH4BY3C,EAAO4C,MAAMD,kmBGyC3DA,6ZAaDD,68BA4CLA,qIH9FX,MAAMG,EAAWpG,EAAG,OACpBoG,EAASC,UAAY,sBACrBjH,EAAKH,YAAYmH,GAEjBN,EAAU9F,EAAG,OACb8F,EAAQO,UAAY,qBACpBD,EAASnH,YAAY6G,EACvB,CAsHA,SAASQ,IACP,MAAMC,EAAMvG,EAAG,OACfuG,EAAIF,UAAY,gBAChBE,EAAI3G,YAAc,cAClB,MAAM4G,EAAOxG,EAAG,IAAK,mBAKrB,OAJAwG,EAAKnB,aAAa,OAAQ,8BAC1BmB,EAAKnB,aAAa,SAAU,UAC5BmB,EAAKnB,aAAa,MAAO,uBACzBkB,EAAItH,YAAYuH,GACTD,CACT,CAgBA,SAASE,IACPlH,EAAiBgB,GACjBnB,EAAO,KACP0G,EAAU,IACZ,CAEA,MAAO,CAAEC,OAAMW,OApJf,SACEjD,EACAkD,EACAC,aAGA,GADKd,GAASC,IACTD,EAAL,CAGA,KAAOA,EAAQe,YAAYf,EAAQgB,YAAYhB,EAAQe,YAEvD,OAAQpD,GACN,IAAK,YAqBT,SAAwBsD,GACtB,MAAMC,EAAUhH,EAAG,OACnBgH,EAAQX,UAAY,aACpBW,EAAQjI,MAAMkI,OAAS,cACvBD,EAAQjI,MAAMmI,MAAQ,OACtBF,EAAQjI,MAAMoI,OAAS,OACvBH,EAAQjI,MAAMqI,YAAc,MAC5BJ,EAAQjI,MAAMsI,YAAc,UAC5BL,EAAQjI,MAAMuI,eAAiB/D,EAAO4C,MAAMF,aAE5C,MAAM9F,EAAOH,EAAG,IAAK,sBACrBG,EAAKpB,MAAMC,QAAU,8DAAgEuE,EAAO4C,MAAMD,WAElGa,EAAO9H,YAAY+H,GACnBD,EAAO9H,YAAYkB,EACrB,CAnCMoH,CAAezB,GACf,MACF,IAAK,SAmCT,SAAqBiB,EAAqBS,GACxCT,EAAO9H,YAAYe,EAAG,KAAM,yCAC5B+G,EAAO9H,YAAYe,EAAG,IAAK,qEAE3B,MAAMyH,EAAMzH,EAAG,SAAU,oCACzByH,EAAIpB,UAAY,wBAChBoB,EAAIC,iBAAiB,QAASF,EAAGG,SACjCZ,EAAO9H,YAAYwI,GAEnBV,EAAO9H,YAAYqH,IACrB,CA5CMsB,CAAY9B,EAASa,GACrB,MACF,IAAK,YA4CT,SAAwBI,EAAqBS,EAA8BK,GAGzE,GAFAd,EAAO9H,YAAYe,EAAG,KAAM,wBAEZ,OAAZ6H,EAAkB,CACpB,MAAMC,EAAQ9H,EAAG,OAAQ,GAAG6H,WAA6B,IAAZA,EAAgB,IAAM,MACnEC,EAAMzB,UAAY,kBAClBU,EAAO9H,YAAY6I,EACrB,CAEAf,EAAO9H,YAAYe,EAAG,IAAK,+EAE3B,MAAMyH,EAAMzH,EAAG,SAAsB,OAAZ6H,EAAmB,WAAWA,WAA6B,IAAZA,EAAgB,IAAM,KAAO,4BACrGJ,EAAIpB,UAAY,wBAChBoB,EAAIC,iBAAiB,QAASF,EAAGO,YACjChB,EAAO9H,YAAYwI,GAEnBV,EAAO9H,YAAYqH,IACrB,CA5DM0B,CAAelC,EAASa,EAAgC,UAArBC,aAAI,EAAJA,EAAMqB,uBAAe,IAAA9M,EAAAA,EAAI,MAC5D,MACF,IAAK,gBA4DT,SACE4L,EACAS,EACAU,EACAC,GAEApB,EAAO9H,YAAYe,EAAG,KAAM,uBAE5B,MAAMoI,EAAsB,OAAbF,GAAmC,OAAdC,EAChC,YAAYD,WAA+B,IAAbA,EAAiB,IAAM,eAAeC,oCACpE,mFAEJpB,EAAO9H,YAAYe,EAAG,IAAKoI,IAE3B,MAAMX,EAAMzH,EAAG,SAAU,oBACzByH,EAAIpB,UAAY,wBAChBoB,EAAIC,iBAAiB,QAASF,EAAGa,kBACjCtB,EAAO9H,YAAYwI,GAEnBV,EAAO9H,YAAYqH,IACrB,CA/EMgC,CAAmBxC,EAASa,EAAgC,QAArBvF,EAAAwF,aAAI,EAAJA,EAAMqB,uBAAe,IAAA7G,EAAAA,EAAI,KAAyB,QAAnBQ,EAAAgF,aAAI,EAAJA,EAAM2B,qBAAa,IAAA3G,EAAAA,EAAI,MAC7F,MACF,IAAK,WA+ET,SAAuBmF,GACrB,MAAMU,EAAMzH,EAAG,UACfyH,EAAIpB,UAAY,wBAChBoB,EAAIe,UAAW,EAEf,MAAMxB,EAAUhH,EAAG,QACnBgH,EAAQX,UAAY,aACpBoB,EAAIxI,YAAY+H,GAChBS,EAAIxI,YAAYL,SAAS6J,eAAe,iBAExC1B,EAAO9H,YAAYwI,EACrB,CAzFMiB,CAAc5C,GACd,MACF,IAAK,UACHW,IAtBU,CAyBhB,EAqHuBkC,iBApBvB,SAA0BC,GACxB,IAAK9C,EAAS,OACd,MAAM2B,EAAM3B,EAAQnG,cAAiC,WACrD,GAAK8H,IACLA,EAAIe,SAAWI,EACXA,GAAS,CACX,MAAM5B,EAAUhH,EAAG,QACnBgH,EAAQX,UAAY,aACpBtG,EAAe0H,EAAK,IACpBA,EAAIxI,YAAY+H,GAChBS,EAAIxI,YAAYL,SAAS6J,eAAe,gBAC1C,CACF,EAQyChC,UAC3C,CErKmBoC,CAAsBtF,GACjCuF,aECN,IAAIC,EAA0C,KAC1CC,EAAkD,KAEtD,SAASC,EAAcC,eAGrB,IArBJ,WACE,MAAMC,EAAU,CAAC,uCAEjB,IACEA,EAAQC,KAAKxI,OAAOK,SAASoI,OAC/B,CAAE,MAAAlO,GAEF,CACA,OAAOgO,CACT,CAWoBG,GACHtG,SAASkG,EAAMG,SAAWH,EAAMG,SAAWzI,OAAOK,SAASoI,OACtE,OAGF,MAAME,EAAML,EAAMrL,KAClB,GAAK0L,GAAsB,iBAARA,GAAqBA,EAAIC,KAE5C,OAAQD,EAAIC,MACV,IAAK,yBAA0B,CAC7B,MAAM3L,EAAgB,QAAR1C,EAAAoO,EAAI1L,YAAI,IAAA1C,EAAAA,EAAgF,QAA5EiG,EAAC8H,EAAqEd,cAAM,IAAAhH,OAAA,EAAAA,EAAEvD,KACpGA,GAAQkL,GAAaA,EAAYlL,GACrC,KACF,CACA,IAAK,oBAAqB,CACxB,MAAMA,EAAgB,QAAR+D,EAAA2H,EAAI1L,YAAI,IAAA+D,EAAAA,EAA2E,QAAvEwB,EAAC8F,EAAgEd,cAAM,IAAAhF,OAAA,EAAAA,EAAEvF,KAC/FA,GAAQmL,GAAiBA,EAAgBnL,GAC7C,KACF,EAEJ,CAqDA,MAAO,CACL4L,OApDF,WACE7I,OAAO8G,iBAAiB,UAAWuB,GAEnCrI,OAAO8G,iBAAiB,yBAA2BgC,IACjD,MAAMtB,EAAUsB,EAAuDtB,QACnEA,eAAAA,EAAQvK,OAAQkL,GAAaA,EAAYX,EAAOvK,QAEtD+C,OAAO8G,iBAAiB,oBAAsBgC,IAC5C,MAAMtB,EAAUsB,EAAkDtB,QAC9DA,eAAAA,EAAQvK,OAAQmL,GAAiBA,EAAgBZ,EAAOvK,OAEhE,EA0CE8L,OAxCF,WACE/I,OAAOgJ,oBAAoB,UAAWX,EACxC,EAuCEY,qBArCF,SAA8BC,EAAmBC,GAC/CnJ,OAAOoJ,YACL,CAAER,KAAM,wBAAyB3L,KAAM,CAAEiM,YAAWC,aACpDnJ,OAAOK,SAASoI,OAEpB,EAiCEY,gBA/BF,SAAyBhH,GAMvBrC,OAAOoJ,YACL,CAAER,KAAM,mBAAoB3L,KAAMoF,GAClCrC,OAAOK,SAASoI,OAEpB,EAsBEa,aApBF,SAAsBH,GACpBnJ,OAAOoJ,YACL,CAAER,KAAM,gBAAiB3L,KAAM,CAAEkM,aACjCnJ,OAAOK,SAASoI,OAEpB,EAgBEc,wBAdF,SAAiCC,GAC/BrB,EAAcqB,CAChB,EAaEC,mBAXF,SAA4BD,GAC1BpB,EAAkBoB,CACpB,EAWF,CFxFiBE,GACf,IAAIC,GAAqB,EASzB,SAASC,EAAoBC,EAAe,EAAGC,EAAU,SACvDjH,EAAM5H,IAAI,CAAE8O,WAAW,EAAMC,UAAU,EAAMC,WAAW,IACxDlH,EAAK4B,SACLM,EAASa,OAAO,UAAW,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IACzFtH,EAAQuH,KAAK,iBAAkB,IAC/BvH,EAAQuH,KAAK,oBAAqB,CAAER,eAAcS,iBAAkBR,IAC9C,QAAtBvP,EAAAoI,EAAO4H,uBAAe,IAAAhQ,GAAAA,EAAAiK,KAAA7B,EACxB,CAIA9G,eAAeqO,IACb,MAAMhJ,EAfC,uEADUsJ,mBAAmB7H,EAAO8H,cAkBvCd,EACFzB,EAAOoB,aAAa3G,EAAOwG,UAIzBvJ,IAEFI,OAAOK,SAASC,KAAOY,GAIzB+D,EAASa,OAAO,UAAW,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,UACrEnJ,EAAcC,IAGhC2B,EAAM5H,IAAI,CAAEyP,YAAY,UAClBC,KAGN1F,EAASa,OAAO,QAAS,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAE3F,CAIAvO,eAAesO,cACb,GAAKnP,EAAaU,MAKlB,GAAIiO,EACFzB,EAAOmB,gBAAgB,CACrBH,UAAWvG,EAAOiI,OAClBzB,SAAUxG,EAAOwG,SACjB9I,SAAUsC,EAAO8H,WACjBI,MAAOlI,EAAOmI,gBALlB,CAUA7F,EAASa,OAAO,UAAW,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IACzFvH,EAAM5H,IAAI,CAAEgP,WAAW,IAEvB,IACE,MAAMc,QAAenI,EAAWoI,gBAAgB,CAC9CJ,OAAQjI,EAAOiI,OACfK,QAAStI,EAAO8H,WAChBS,SAAUvI,EAAOmI,UACjB3B,SAAUxG,EAAOwG,WAGf4B,EAAOI,QACTvB,EAAoB,EAAG,IAEvB/G,EAAM5H,IAAI,CAAEgP,WAAW,IACvBhF,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAC1FtH,EAAQuH,KAAK,QAAS,CAAE5M,QAAuB,QAAdlD,EAAAwQ,EAAOtN,eAAO,IAAAlD,EAAAA,EAAI,oBAEvD,CAAE,MAAO6Q,GACPvI,EAAM5H,IAAI,CAAEgP,WAAW,IACnBmB,aAAe/N,GAA2B,MAAf+N,EAAI5N,QAEjCyH,EAASa,OAAO,eAAgB,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,GAAoB,CAChH/C,gBAAiBxE,EAAMzH,MAAMiM,gBAC7BM,cAAe9E,EAAMzH,MAAMuM,gBAE7B7E,EAAQuH,KAAK,uBAAwB,CACnC/C,SAAqC,UAA3BzE,EAAMzH,MAAMiM,2BAAe7G,EAAAA,EAAI,EACzC+G,UAAoC,UAAzB1E,EAAMzH,MAAMuM,yBAAa3G,EAAAA,EAAI,MAG1CiE,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAC1FtH,EAAQuH,KAAK,QAAS,CAAE5M,QAAS,kBAAmB4N,MAAOD,IAE/D,CApCA,YAZQlB,GAiDV,CAEA,SAASE,IACPpK,OAAOsB,KAAK,yDAA0C,SAAU,sBAClE,CAIAzF,eAAe8O,IAIb,GAHA9H,EAAM5H,IAAI,CAAEgP,WAAW,IACvBhF,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAEtFT,EACFzB,EAAOe,qBAAqBtG,EAAOiI,OAAQjI,EAAOwG,cADpD,CAKA,IAAKnO,EAAaU,MAKhB,OAJAmH,EAAM5H,IAAI,CAAEgP,WAAW,EAAOD,UAAU,IACxCjH,EAAKK,OACL6B,EAASa,OAAO,QAAS,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,SACvFtH,EAAQuH,KAAK,gBAAiB,IAIhC,IACE,MAAMU,QAAenI,EAAW+H,YAAY,CAC1CC,OAAQjI,EAAOiI,OACfK,QAAStI,EAAO8H,WAChBS,SAAUvI,EAAOmI,UACjB3B,SAAUxG,EAAOwG,WAGnBtG,EAAM5H,IAAI,CACRgP,WAAW,EACXD,UAAU,EACVD,UAAWgB,EAAOI,UAGhBJ,EAAOI,QACTvB,EAAoB,EAAG,IAEvB7G,EAAKK,OACL6B,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAC1FtH,EAAQuH,KAAK,gBAAiB,IAElC,CAAE,MAAOe,GACPvI,EAAM5H,IAAI,CAAEgP,WAAW,EAAOD,UAAU,IACxCjH,EAAKK,OACL6B,EAASa,OAAO,QAAS,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IACjFgB,aAAe/N,GAA2B,MAAf+N,EAAI5N,QACnCsF,EAAQuH,KAAK,QAAS,CAAE5M,QAAS,sBAAuB4N,MAAOD,GAEnE,CAtCA,CAuCF,CA+DA,MAAO,CAAEjG,KA3DTtJ,iBG1KI,IAA0ByP,EH4KNpL,KAEpB2C,EAAM5H,IAAI,CAAEyP,YAAY,IAI1Bf,QGlL4B2B,EHkLe3I,EAAO2I,YGjL/CA,GAAsC,iBAAhBA,EAIpB,IAAInK,QAAQC,IACjB,IAAImK,GAAW,EAEf,SAASC,EAAKT,GACPQ,IACHA,GAAW,EACXnK,EAAQ2J,GAEZ,CAGA,IAA6E,IAAxE/K,OAA8CyL,sBAEjD,YADAD,GAAK,GAKP,MAAME,EAAM,IAAIC,MAChBD,EAAIE,OAAS,IAAMJ,GAAK,GACxBE,EAAIG,QAAU,IAAML,GAAK,GACzBE,EAAII,IAAM,sBAAsBR,qBAGhClP,WAAW,IAAMoP,GAAK,GA1CG,OAgBlBrK,QAAQC,SAAQ,IHiLvByB,EAAM5H,IAAI,CAAE8Q,qBAAsBpC,IAE9BA,IACFzB,EAAOW,SACPX,EAAOqB,wBAAwBtM,cAC7B4F,EAAM5H,IAAI,CACRyP,WAAYzN,EAAK+O,gBACjBjC,UAAW9M,EAAKgP,eAChBjC,UAAU,EACVC,WAAW,EACXtC,sBAAepN,EAAA0C,EAAK0K,6BAAiB,KACrCN,wBAAiB7G,EAAAvD,EAAKoK,+BAAmB,OAGtCpK,EAAK+O,gBAIC/O,EAAKgP,eACdrC,EAAoB,EAAqB,QAAlB5I,EAAA/D,EAAK0K,qBAAa,IAAA3G,EAAAA,EAAI,IAE7C+B,EAAKK,OACL6B,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,GAAoB,CAC5G/C,gBAAiBpK,EAAKoK,gBACtBM,cAAe1K,EAAK0K,gBAEtB7E,EAAQuH,KAAK,gBAAiB,MAX9BtH,EAAKK,OACL6B,EAASa,OAAO,QAAS,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IACvFtH,EAAQuH,KAAK,gBAAiB,OAalCnC,EAAOuB,mBAAmBxM,YACxB4F,EAAM5H,IAAI,CAAEgP,WAAW,EAAOD,UAAU,EAAMD,UAAW9M,EAAKgP,iBAC1DhP,EAAKgP,eACPrC,EAAqC,QAAjBrP,EAAA0C,EAAK4M,oBAAY,IAAAtP,EAAAA,EAAI,EAAqB,QAAlBiG,EAAAvD,EAAK0K,qBAAa,IAAAnH,EAAAA,EAAI,IAElEyE,EAASa,OAAO,WAAY,CAAEiB,QAASmD,EAAS/C,WAAYgD,EAAY1C,iBAAkB2C,IAC1FtH,EAAQuH,KAAK,QAAS,CAAE5M,QAAS,4CAKjCkN,GACR,EAQeA,cAAa9E,QAN5B,WACEqC,EAAOa,SACP9D,EAASY,UACT9C,EAAK4B,QACP,EAGF,CIpPA,MAAMuH,EAAe,gBCYfC,EAAgB,mBAEhBC,EAAgB,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WAmBxE,SAAUC,EACd1J,EACA2J,EACAxJ,EACAyJ,GAEA,IAAI/N,EAA0B,KAC1BgO,EAA+B,KAC/BC,EAAiC,KACjCC,EAA6B,GAC7BC,EAA6B,MAC7BC,EAAqC,KACrCC,EAAqC,KACrCC,EAAkC,KAItC,SAASC,IACP,GAAIvO,EAAM,OAAOA,EACjB,MAAQA,KAAMwO,GAAMnP,EAAiBsO,GJkFnC,IAA2B9G,EAAsBC,EI/EnD,OAFA9G,EAAOwO,EACPnO,EAAaL,EJiFR,uUADwB6G,EIhFO1C,EAAO4C,MAAMF,kUJgFEC,EIhFY3C,EAAO4C,MAAMD,yRJgHjED,olCAyCMC,q0DAyEAA,8pEAqFAA,y2CA6CAA,+LAOKD,uoBAwBLC,4NAQ4BD,mZAgB5BC,mRAWDD,uKAOCC,g7BAmCDD,uKAOCC,iBItdV9G,CACT,CAIA,SAASyO,IACP,MAAM7T,EAAQ4B,EAAaI,MAEzBoR,EADEpT,EdpBF,SAA6BA,WACjC,MAAMqB,EAAUtB,EAAUC,GAC1B,OAAOqB,GAAoC,QAAzB+F,UAAAjG,EAAAE,EAAQqD,kBAAMrD,EAAQyS,eAAG1M,EAAAA,EAAY,IACzD,CckBsB2M,CAAmB/T,GAEnB,IAEpB,CAEAyC,eAAeqO,IACb,MACMhJ,EAAU,uEADIsJ,mBAAmB7H,EAAO8H,cAG1C7K,IACFI,OAAOK,SAASC,KAAOY,QAILD,EAAcC,KAEhC+L,IACAG,IACKC,IAET,CAIAxR,eAAewR,UACb,MAAML,EAAID,IACJO,EAASN,EAAE/O,eAAe,oBAChC,GAAKqP,EAAL,EA+EF,SAAuBC,GACrBA,EAAUC,UAAY,GACtB,MAAM7H,EAAMvG,EAAG,OACfuG,EAAIF,UAAY,mBAChB,MAAMW,EAAUhH,EAAG,OACnBgH,EAAQX,UAAY,gBACpBE,EAAItH,YAAY+H,GAChBT,EAAItH,YAAYe,EAAG,IAAK,sBACxBmO,EAAUlP,YAAYsH,EACxB,CAtFEmC,CAAcwF,GAEd,IAEE,MAAMG,QAAkBnB,EAAYoB,aAAa,CAC/CC,QAAShL,EAAO8H,WAChBmD,SAAUjL,EAAOwG,WAGnB,IAAKsE,EAAUP,IAEb,YADAW,EAAYP,EAAQ,6CAItBb,EAAkBgB,EAAUP,IAG5B,MAAMY,QAAoBxB,EAAYyB,YAAY,CAChDJ,QAAShL,EAAO8H,WAChBuD,OAAQrB,IAGVD,EAAsC,QAApBnS,EAAAuT,EAAYG,gBAAQ,IAAA1T,EAAAA,EAAI,GACtCuT,EAAYI,SAAQzB,EAAkBqB,EAAYI,OAAOhB,KAG7D,MAAMiB,EAAUnB,EAAE/O,eAAe,mBAC7BkQ,GAAShP,EAAegP,EAASC,OAAO1B,EAAgBnT,SAE5D8U,EAAef,EACjB,CAAE,MAAA9M,GACAqN,EAAYP,EAAQ,qDACtB,CAlCa,CAmCf,CAIA,SAASgB,EAAUL,GACjB,MAAMlU,EAAM,IAAIqD,IACVmR,EAAiD,GAcvD,OAZAN,EAASvN,QAAQ1G,GAAKD,EAAIkB,IAAIjB,EAAEkT,mCAAUlT,GAAC,CAAEwU,QAAS,OAEtDP,EAASvN,QAAQ1G,IACf,MAAMyU,EAAO1U,EAAIqB,IAAIpB,EAAEkT,KACvB,GAAIlT,EAAE0U,gBAAiB,CACrB,MAAMvI,EAASpM,EAAIqB,IAAIpB,EAAE0U,iBACrBvI,IAAWA,EAAOuI,iBAAiBvI,EAAOqI,QAAQhG,KAAKiG,EAC7D,MACEF,EAAM/F,KAAKiG,KAIRF,CACT,CAkCA,SAASV,EAAYN,EAAwB9P,GAC3C8P,EAAUC,UAAY,GACtB,MAAM7H,EAAMvG,EAAG,OACfuG,EAAIF,UAAY,iBAEhB,MAAMkJ,EAAOvP,EAAG,OAChBuP,EAAKlJ,UAAY,gBACjBkJ,EAAKnB,UAAY,8NAEjB7H,EAAItH,YAAYsQ,GAChBhJ,EAAItH,YAAYe,EAAG,IAAK3B,IAExB,MAAMmR,EAAQxP,EAAG,SAAU,aAC3BwP,EAAMnJ,UAAY,eAClBmJ,EAAM9H,iBAAiB,QAAS,KAAWuG,MAC3C1H,EAAItH,YAAYuQ,GAChBrB,EAAUlP,YAAYsH,EACxB,CAEA,SAAS0I,EAAed,GACtBA,EAAUC,UAAY,GAEtB,MAAMR,EAAID,IAGJ8B,EAAU7B,EAAE/O,eAAe,eAC3B6Q,EAAU9B,EAAE/O,eAAe,kBASjC,GARI2O,GACFiC,SAAAA,EAASE,UAAUC,IAAI,cACnBF,GAAS3P,EAAe2P,EAAS,aAErCD,SAAAA,EAASE,UAAUnQ,OAAO,cACtBkQ,GAAS3P,EAAe2P,EAAS,aAGnClC,GAmBN,SAAyBW,EAAwB0B,iBAC/C,MACM9I,EADOmI,EAAU5B,GACHwC,KAAKlV,GAAKA,EAAEkT,MAAQ+B,GACxC,IAAK9I,EAAQ,OAEboH,EAAUlP,YAAY8Q,EAAehJ,GAAQ,IAE7C,MAAMiJ,EAAQhQ,EAAG,MAAO,WAAGoB,EAAc,QAAdjG,EAAA4L,EAAOqI,eAAO,IAAAjU,OAAA,EAAAA,EAAEhB,sBAAU,KAAuC,aAAjCiJ,EAAc,QAAdxB,EAAAmF,EAAOqI,eAAO,IAAAxN,SAAAA,EAAEzH,sBAAU,GAAW,QAAU,aAI1G,GAHA6V,EAAM3J,UAAY,qBAClB8H,EAAUlP,YAAY+Q,GAEH,QAAd3M,EAAA0D,EAAOqI,mBAAO/L,OAAA,EAAAA,EAAElJ,OAOnB4M,EAAOqI,QAAQ9N,QAAQsM,GAAKO,EAAUlP,YAAY8Q,EAAenC,GAAG,SAPzC,CAC3B,MAAMqC,EAAQjQ,EAAG,OACjBiQ,EAAM5J,UAAY,iBAClB4J,EAAMlR,MAAMmR,WAAa,OACzBD,EAAMhR,YAAYe,EAAG,IAAK,mBAC1BmO,EAAUlP,YAAYgR,EACxB,CAGF,CAtCIE,CAAgBhC,EAAWX,OAD7B,CAKA,GAA+B,IAA3BF,EAAgBnT,OAAc,CAChC,MAAM8V,EAAQjQ,EAAG,OACjBiQ,EAAM5J,UAAY,iBAClB4J,EAAMhR,YAAYe,EAAG,IAAK,oBAC1B,MAAMoQ,EAAMpQ,EAAG,OAAQ,uCAGvB,OAFAiQ,EAAMhR,YAAYmR,QAClBjC,EAAUlP,YAAYgR,EAExB,EAhFF,SAAkBd,GAChB,MAAMkB,EAAS,IAAIlB,GAenB,MAdoB,WAAhB5B,EACF8C,EAAOC,KAAK,CAACC,EAAGC,IAAM,IAAIjV,KAAKiV,EAAEC,WAAWC,UAAY,IAAInV,KAAKgV,EAAEE,WAAWC,WAG9EL,EAAOC,KAAK,CAACC,EAAGC,qBACd,OAAmB,QAAjBpP,EAAS,QAATjG,EAAAqV,EAAEpB,eAAO,IAAAjU,OAAA,EAAAA,EAAEhB,cAAM,IAAAiH,EAAAA,EAAI,IAAuB,QAAjBgC,UAAAxB,EAAA2O,EAAEnB,8BAASjV,cAAM,IAAAiJ,EAAAA,EAAI,KACrC,QAAXC,EAAAmN,EAAEG,iBAAS,IAAAtN,EAAAA,EAAI,YAAMuN,EAAAL,EAAEI,yBAAa,KAG1CN,EAAO/O,QAAQ1G,WACA,UAATA,EAAEwU,mBAAOjU,OAAA,EAAAA,EAAEhB,SACbS,EAAEwU,QAAQkB,KAAK,CAACC,EAAGC,IAAM,IAAIjV,KAAKiV,EAAEC,WAAWC,UAAY,IAAInV,KAAKgV,EAAEE,WAAWC,aAG9EL,CACT,EAiEeQ,CAAS3B,EAAU5B,IAC3BhM,QAAQ1G,GAAKuT,EAAUlP,YAAY8Q,EAAenV,GAAG,IAb1D,CAcF,CAwBA,SAASmV,EAAee,EAAkBC,WACxC,MAAMC,KAAW5D,GAAiB0D,EAAQG,WAAa7D,GACjD8D,EAASJ,EAAQI,OACjBC,EAAaD,EAAS,GAAGA,EAAOE,aAAaF,EAAOG,WAAWC,OAAS,YACxEC,EApPDvE,GAoPwBmE,GApPD,KAAKtW,WAAW,GAAKmS,EAAc7S,QAqPzDqX,EAAON,EAlPjB,SAAkBO,EAAeC,eAC/B,MAAO,WAAGtQ,EAAU,QAAVjG,EAAAsW,aAAK,EAALA,EAAQ,cAAEtW,OAAA,EAAAA,EAAEwW,6BAAiB,KAA6B,QAAxBvO,EAAS,QAATxB,EAAA8P,eAAAA,EAAO,UAAE,IAAA9P,OAAA,EAAAA,EAAE+P,yBAAavO,EAAAA,EAAI,MAAQ,GAClF,CAgP0BwO,CAASV,EAAOE,UAAWF,EAAOG,UAAY,IAE9DQ,EAAO7R,EAAG,OAChB6R,EAAKxL,UAAY,mBAAkB0K,EAAU,YAAc,IAC3Dc,EAAKhS,QAAQiS,UAAYhB,EAAQhD,IAGjC,MAAMiE,EAAS/R,EAAG,OAClB+R,EAAO1L,UAAY,oBACnB,MAAM2L,EAAYhS,EAAG,OACrBgS,EAAU3L,UAAY,wBAGtB,MAAM4L,EAASjS,EAAG,OAIlB,GAHAiS,EAAO5L,UAAY,YACnB4L,EAAOlT,MAAMmT,WAAaX,EAEtBL,aAAM,EAANA,EAAQiB,eAAgB,CAC1B,MAAMC,ERnON,SAAsBrR,GAC1B,IACE,MAAMsR,EAAS,IAAIrR,IAAID,GACvB,MAAwB,UAApBsR,EAAOC,UAA4C,WAApBD,EAAOC,SAA8B,KACjED,EAAOvX,UAChB,CAAE,MAAAK,GACA,OAAO,IACT,CACF,CQ2NsBoX,CACdrB,EAAOiB,eAAeK,WAAW,QAC7BtB,EAAOiB,eACP,GAAG5O,EAAO5G,aAAauU,EAAOiB,kBAEpC,GAAIC,EAAS,CACX,MAAM9F,EAAMtM,EAAG,OACfsM,EAAIjH,aAAa,MAAO+M,GACxB9F,EAAIjH,aAAa,MAAO8L,GACxB7E,EAAI5E,iBAAiB,QAAS,KAC5B4E,EAAI9M,SACJO,EAAekS,EAAQT,KAEzBS,EAAOhT,YAAYqN,EACrB,MACEvM,EAAekS,EAAQT,EAE3B,MACEzR,EAAekS,EAAQT,GAGzB,MAAMiB,EAAazS,EAAG,OAChB0S,EAAS1S,EAAG,MAAOmR,GACzBuB,EAAOrM,UAAY,iBACnB,MAAMsM,EAAS3S,EAAG,MAxRtB,SAAoB4S,GAClB,IACE,MAAMC,EAAI,IAAItX,KAAKqX,GAGnB,MAAO,GAFMC,EAAEC,mBAAmB,QAAS,CAAEC,KAAM,UAAWC,OAAQ,iBAC1DH,EAAEI,mBAAmB,QAAS,CAAEC,MAAO,QAASC,IAAK,UAAWC,KAAM,aAEpF,CAAE,MAAAjY,GAAQ,MAAO,EAAI,CACvB,CAiR6BkY,CAAWvC,EAAQL,YAC5CkC,EAAOtM,UAAY,kBACnBoM,EAAWxT,YAAYyT,GACvBD,EAAWxT,YAAY0T,GAEvBX,EAAU/S,YAAYgT,GACtBD,EAAU/S,YAAYwT,GACtBV,EAAO9S,YAAY+S,GACnBH,EAAK5S,YAAY8S,GAGjB,MAAMzU,EAAO0C,EAAG,OAChB1C,EAAK+I,UAAY,kBACjB/I,EAAK2B,YRzRH,SAA+BqU,GACnC,MAAMC,EAAW3U,SAAS4U,yBAEpBC,EAAQH,EAAIpZ,MAAM,MAOxB,OANAuZ,EAAMnS,QAAQ,CAACoS,EAAMC,KACnBJ,EAAStU,YAAYL,SAAS6J,eAAeiL,IACzCC,EAAIF,EAAMtZ,OAAS,GACrBoZ,EAAStU,YAAYL,SAASE,cAAc,SAGzCyU,CACT,CQ8QqBK,CAAqB9C,EAAQ+C,UAC9ChC,EAAK5S,YAAY3B,GAGjB,MAAMwW,EAAU9T,EAAG,OAInB,GAHA8T,EAAQzN,UAAY,sBAGf0K,EAAS,CACZ,MAAMgD,EAAW/T,EAAG,UACpB+T,EAAS1N,UAAY,gBACrB0N,EAASlU,QAAQiS,UAAYhB,EAAQhD,IACrCiG,EAASlU,QAAQmU,OAAS,QAC1BD,EAAS3F,UAAY,iQACrB2F,EAAS9U,YAAYL,SAAS6J,eAAe,aAAItN,EAAA2V,EAAQ1B,8BAASjV,SAAU,YAC5E2Z,EAAQ7U,YAAY8U,EACtB,CAGA,MAAME,EAAUjU,EAAG,UASnB,GARAiU,EAAQ5N,UAAY,iBAAgByK,EAAQoD,SAAW,YAAc,IACrED,EAAQpU,QAAQiS,UAAYhB,EAAQhD,IACpCmG,EAAQpU,QAAQmU,OAAS,OACzBC,EAAQ7F,UAAY,yDAAyD0C,EAAQoD,SAAW,eAAiB,2PACjHD,EAAQhV,YAAYL,SAAS6J,eAAe,IAAqB,QAAjBrH,EAAA0P,EAAQH,iBAAS,IAAAvP,EAAAA,EAAI,MACrE0S,EAAQ7U,YAAYgV,GAGhBjD,EAAO,CACT,MAAMmD,EAAWnU,EAAG,OACpBmU,EAAS9N,UAAY,iCACrB8N,EAASpV,MAAMC,QAAU,sFAEzB,MAAMoV,EAAUpU,EAAG,SAAU,QAC7BoU,EAAQ/N,UAAY,gBACpB+N,EAAQvU,QAAQiS,UAAYhB,EAAQhD,IACpCsG,EAAQvU,QAAQmU,OAAS,OAEzB,MAAMK,EAAYrU,EAAG,SAAU,UAC/BqU,EAAUhO,UAAY,0BACtBgO,EAAUxU,QAAQiS,UAAYhB,EAAQhD,IACtCuG,EAAUxU,QAAQmU,OAAS,SAE3BG,EAASlV,YAAYmV,GACrBD,EAASlV,YAAYoV,GACrBP,EAAQ7U,YAAYkV,EACtB,CAGA,OADAtC,EAAK5S,YAAY6U,GACVjC,CACT,CAuHA,SAASyC,IACP,MAAMxO,EAAU9F,EAAG,OACnB8F,EAAQO,UAAY,mBACpBP,EAAQpH,GAAK,mBACboH,EAAQ7G,YAAYe,EAAG,IAAK,qCAC5B,MAAMyH,EAAMzH,EAAG,SAAU,8BAIzB,OAHAyH,EAAIpB,UAAY,uBAChBoB,EAAIC,iBAAiB,QAAS,KAAWoD,MACzChF,EAAQ7G,YAAYwI,GACb3B,CACT,CAIA,SAASyO,EAAgB7K,GACvB,MACMjC,EADSiC,EAAE8K,OACEC,QAAQ,iBAC3B,IAAKhN,EAAK,OAEV,MAAMuM,EAASvM,EAAI5H,QAAQmU,OACrBlC,EAAYrK,EAAI5H,QAAQiS,UAC9B,GAAKA,EAEL,OAAQkC,GACN,IAAK,SAOT,SAAqBlC,GACnB,GAAKtE,EAKE,CAELC,EAAsBqE,EACtBpE,EAAmB,KACnB,MAAMgH,EAAWtV,eAAAA,EAAMP,eAAe,uBAClC6V,IACFA,EAASC,YAAc,iBACvBD,EAASE,SAEXC,GACF,KAf0B,CAExBrH,EAAsBsE,EACtB,MAAM5D,EAAS9O,eAAAA,EAAMP,eAAe,oBAChCqP,GAAQe,EAAef,EAC7B,CAWF,CAxBkB4G,CAAYhD,GAAY,MACtC,IAAK,QAyBTrV,eAA0BqV,iBACxB,IAAKlW,EAAaU,MAAyB,YAAXwO,IAGhC,MAAMgG,EAAUxD,EAAgBwC,KAAKlV,GAAKA,EAAEkT,MAAQgE,GACpD,IAAKhB,EAAS,OACd,MAAMiE,EAAWjE,EAAQoD,SACzBpD,EAAQoD,UAAYa,EACpBjE,EAAQH,WAA8B,QAAjBxV,EAAA2V,EAAQH,iBAAS,IAAAxV,EAAAA,EAAI,IAAM2V,EAAQoD,SAAW,MACnE,MAAMhG,EAAS9O,eAAAA,EAAMP,eAAe,oBAChCqP,GAAQe,EAAef,GAE3B,IAEE,MAAM8G,QAAY9H,EAAY+H,WAAWnD,GACrCkD,EAAIjJ,SAC4B,kBAAf,QAAR3K,EAAA4T,EAAInX,YAAI,IAAAuD,OAAA,EAAAA,EAAE8S,YAAwBpD,EAAQoD,SAAWc,EAAInX,KAAKqW,UACtC,iBAAhB,QAARtS,EAAAoT,EAAInX,YAAI,IAAA+D,OAAA,EAAAA,EAAE+O,aAAwBG,EAAQH,UAAYqE,EAAInX,KAAK8S,WAC1EjN,EAAQuH,KAAK,gBAAiB,CAAE6G,YAAWoC,SAAUpD,EAAQoD,aAG7DpD,EAAQoD,SAAWa,EACnBjE,EAAQH,WAA8B,QAAjBvN,EAAA0N,EAAQH,iBAAS,IAAAvN,EAAAA,EAAI,IAAM2R,EAAW,GAAK,IAE9D7G,GAAQe,EAAef,EAC7B,CAAE,MAAA0C,GACAE,EAAQoD,SAAWa,EACnBjE,EAAQH,WAA8B,QAAjBtN,EAAAyN,EAAQH,iBAAS,IAAAtN,EAAAA,EAAI,IAAM0R,EAAW,GAAI,GAC3D7G,GAAQe,EAAef,EAC7B,CACF,CAvDsBgH,CAAWpD,GAAY,MACzC,IAAK,QAwDT,SAAoBA,GAClB,MAAMhB,EAAUxD,EAAgBwC,KAAKlV,GAAKA,EAAEkT,MAAQgE,GACpD,IAAKhB,EAAS,OACdpD,EAAmBoE,EACnBrE,EAAsB,KACtB,MAAMiH,EAAWtV,eAAAA,EAAMP,eAAe,uBAClC6V,IACFA,EAASS,MAAQrE,EAAQ+C,QACzBa,EAASC,YAAc,qBACvBD,EAASE,SAEX,MAAMQ,EAAYhW,eAAAA,EAAMP,eAAe,qBACnCuW,GAAWrV,EAAeqV,EAAW,UACzCP,GACF,CAtEiBQ,CAAWvD,GAAY,MACpC,IAAK,UAuETrV,eAA4BqV,GAC1B,GAAKwD,QAAQ,wBACb,WAEoBpI,EAAYqI,cAAczD,IACpChE,MACNpK,EAAQuH,KAAK,kBAAmB,CAAE6G,cAC7B7D,IAET,CAAE,MAAoB9S,GAAC,CACzB,CAjFwBqa,CAAa1D,GAErC,CAyHA,SAAS+C,IACP,MAAMY,EAAYrW,eAAAA,EAAMP,eAAe,qBACvC4W,SAAAA,EAAW9F,UAAUC,IAAI,aAC3B,CAEA,SAAS8F,IACP,MAAMD,EAAYrW,eAAAA,EAAMP,eAAe,qBACvC4W,SAAAA,EAAW9F,UAAUnQ,OAAO,aAC9B,CAEA,SAASmW,IACPjI,EAAmB,KACnBD,EAAsB,KACtB,MAAMiH,EAAWtV,eAAAA,EAAMP,eAAe,uBAClC6V,IAAYA,EAASS,MAAQ,GAAIT,EAASC,YAAc,oBAC5D,MAAMS,EAAYhW,eAAAA,EAAMP,eAAe,qBACnCuW,GAAWrV,EAAeqV,EAAW,QACzCM,GACF,CAEA,SAAS1H,IACP,MAAMJ,EAAID,IACJzO,EAAW0O,EAAE/O,eAAe,oBAClC,GAAIjD,EAAaU,OAAS4C,EACxBA,EAASM,cACJ,IAAK5D,EAAaU,QAAU4C,EAAU,CAC3C,MAAM0W,EAAUhI,EAAE/O,eAAe,cACjC+W,SAAAA,EAAS3W,YAAYqV,IACvB,CACF,CAmCA,SAASuB,IACP,MAAMjI,EAAIxO,EACV,IAAKwO,EAAG,OAER,MAAMxH,EAAWwH,EAAE/O,eAAe,qBAC5BiX,EAAQlI,EAAE/O,eAAe,qBAE/BuH,SAAAA,EAAUuJ,UAAUnQ,OAAO,cAC3BsW,SAAAA,EAAOnG,UAAUnQ,OAAO,WAExBxC,WAAW,KACToJ,SAAAA,EAAU5G,SACVsW,SAAAA,EAAOtW,SACP2N,KACC,IACL,CAOA,MAAO,CAAE4I,UArDT,WACE,MAAMnI,EAAID,IAGY7M,KACH+M,IAEnBA,IAGA,IAAIzH,EAAWwH,EAAE/O,eAAe,qBAC3BuH,IACHA,EAAWpG,EAAG,OACdoG,EAASC,UAAY,oBACrBD,EAAS1H,GAAK,oBACd0H,EAASsB,iBAAiB,QAASmO,GACnCjI,EAAE3O,YAAYmH,GAEdwH,EAAE3O,YA5TN,WACE,MAAM6W,EAAQ9V,EAAG,OACjB8V,EAAMzP,UAAY,WAClByP,EAAMpX,GAAK,oBAGX,MAAMqT,EAAS/R,EAAG,OAClB+R,EAAO1L,UAAY,kBAEnB,MAAMoJ,EAAUzP,EAAG,UACnByP,EAAQpJ,UAAY,cACpBoJ,EAAQ/Q,GAAK,cACb+Q,EAAQpK,aAAa,aAAc,QACnCoK,EAAQrB,UAAY,wLACpBqB,EAAQ/H,iBAAiB,QAAS,KAChC8F,EAAsB,KACtBC,EAAsB,KACtB,MAAMS,EAAS9O,eAAAA,EAAMP,eAAe,oBAChCqP,GAAQe,EAAef,KAG7B,MAAM8H,EAAahW,EAAG,OACtBgW,EAAWjX,MAAMC,QAAU,kDAC3B,MAAM0Q,EAAU1P,EAAG,OAAQ,YAC3B0P,EAAQrJ,UAAY,iBACpBqJ,EAAQhR,GAAK,iBACb,MAAMqQ,EAAU/O,EAAG,OAAQ,IAC3B+O,EAAQ1I,UAAY,iBACpB0I,EAAQrQ,GAAK,kBACbsX,EAAW/W,YAAYyQ,GACvBsG,EAAW/W,YAAY8P,GAEvB,MAAMkH,EAAWjW,EAAG,UACpBiW,EAAS5P,UAAY,qBACrB4P,EAAS5Q,aAAa,aAAc,kBACpC4Q,EAAS7H,UAAY,uOACrB6H,EAASvO,iBAAiB,QAASmO,GAEnC9D,EAAO9S,YAAYwQ,GACnBsC,EAAO9S,YAAY+W,GACnBjE,EAAO9S,YAAYgX,GACnBH,EAAM7W,YAAY8S,GAGlB,MAAMmE,EAAUlW,EAAG,OACnBkW,EAAQ7P,UAAY,cACpB,MAAM8P,EAAYnW,EAAG,OAAQ,SAC7BmW,EAAU9P,UAAY,gBACtB6P,EAAQjX,YAAYkX,GAEnB,CAAC,MAAO,UAA8B7U,QAAQgP,IAC7C,MAAM7I,EAAMzH,EAAG,SAAUsQ,GACzB7I,EAAIpB,UAAY,eAAckH,IAAgB+C,EAAO,aAAe,IACpE7I,EAAI5H,QAAQyQ,KAAOA,EACnB7I,EAAIC,iBAAiB,QAAS,KACxB6F,IAAgB+C,IACpB/C,EAAc+C,EACd4F,EAAQ5R,iBAAiB,gBAAgBhD,QAAQkP,GAAKA,EAAEb,UAAUnQ,OAAO,cACzEiI,EAAIkI,UAAUC,IAAI,aACb3B,OAEPiI,EAAQjX,YAAYwI,KAEtBqO,EAAM7W,YAAYiX,GAGlB,MAAME,EAAOpW,EAAG,OAShB,OARAoW,EAAK/P,UAAY,mBACjB+P,EAAK1X,GAAK,mBACV0X,EAAK1O,iBAAiB,QAAS6M,GAC/BuB,EAAM7W,YAAYmX,GAGlBN,EAAM7W,YAKR,WACE,MAAM2W,EAAU5V,EAAG,OACnB4V,EAAQvP,UAAY,aACpBuP,EAAQlX,GAAK,aAEb,MAAMgW,EAAW1U,EAAG,YACpB0U,EAASrO,UAAY,sBACrBqO,EAAShW,GAAK,sBACdgW,EAASrP,aAAa,cAAe,oBACrCqP,EAASrP,aAAa,OAAQ,KAC9BuQ,EAAQ3W,YAAYyV,GAEpB,MAAMZ,EAAU9T,EAAG,OACnB8T,EAAQzN,UAAY,qBAEpB,MAAMoP,EAAYzV,EAAG,SAAU,UAC/ByV,EAAUpP,UAAY,oBACtBoP,EAAU/W,GAAK,oBACf+W,EAAU/N,iBAAiB,QAASiO,GACpC7B,EAAQ7U,YAAYwW,GAEpB,MAAML,EAAYpV,EAAG,SAAU,QAa/B,OAZAoV,EAAU/O,UAAY,oBACtB+O,EAAU1W,GAAK,oBACf0W,EAAU1N,iBAAiB,QAAS,MA2HtCjL,iBACE,MAAMiY,EAAWtV,eAAAA,EAAMP,eAAe,uBACtC,IAAK6V,EAAU,OACf,MAAMb,EAAUa,EAASS,MAAM7D,OAC/B,IAAKuC,EAAS,OAEd,IAAKjY,EAAaU,MAAyB,YAAXwO,IAChC,IAAKuC,EAAiB,OAEtB,MAAM+H,EAAYhW,eAAAA,EAAMP,eAAe,qBACnCuW,IAAaA,EAAU5M,UAAW,EAAMzI,EAAeqV,EAAW,aAEtE,IAEE,IAAIJ,EACAtH,EACFsH,QAAY9H,EAAYmJ,YAAY3I,EAAkBmG,IAEtDmB,QAAY9H,EAAYoJ,YAAY,CAClCC,SAAUlJ,EACVwG,UACAvE,gBAAiB7B,QAAAA,EAAuBD,IAE1C9J,EAAQuH,KAAK,iBAAkB,CAAE6F,QAASkE,KAGxCA,EAAIlH,MACN4G,EAASS,MAAQ,GACjBzH,EAAmB,KACnBD,EAAsB,KACtBiH,EAASC,YAAcnH,EAAsB,iBAAmB,mBAChEkI,IACIN,GAAWrV,EAAeqV,EAAW,QACpCnH,IAET,CAAE,MAAqC9S,GAAC,SAClCia,IAAaA,EAAU5M,UAAW,EACxC,CACF,CAjKiDgO,KAC/C1C,EAAQ7U,YAAYmW,GAEpBQ,EAAQ3W,YAAY6U,GAGflY,EAAaU,OAChBsZ,EAAQ3W,YAAYqV,KAGfsB,CACT,CAxCoBa,IAEXX,CACT,CAgPkBY,KAIhBC,sBAAsB,WACpBvQ,EAAUuJ,UAAUC,IAAI,cACa,QAArCzU,EAAAyS,EAAE/O,eAAe,4BAAoB,IAAA1D,GAAAA,EAAEwU,UAAUC,IAAI,aAGvD5B,IACKC,GACP,EAwBoB4H,aAAYpP,QALhC,WACElH,EAAiBwN,GACjB3N,EAAO,IACT,EAGF,OC3qBawX,EASX,WAAAzY,CAAqCoF,GC9CjC,IAA2BsT,ED8CM5a,KAAAsH,OAAAA,EARpBtH,KAAAwH,iBEzBjB,IAAIqT,EAbG,CACLjM,WAAW,EACX8B,sBAAsB,EACtBrB,YAAY,EACZX,WAAW,EACXC,UAAU,EACVmM,KAAM,KACNxO,cAAe,KACfN,gBAAiB,MAMnB,MAAM+O,EAAgD,GAEtD,SAAShb,IACP,OAAAib,OAAAC,OAAA,CAAA,EAAYJ,EACd,CAEA,SAASjb,EAAIsb,GACXL,EAAOG,OAAAC,OAAAD,OAAAC,OAAA,GAAQJ,GAAYK,GAC3BH,EAAY1V,QAAQ8V,GAAMA,EAAGpb,KAC/B,CAuBA,MAAO,CAAEA,MAAKH,MAAKwb,UArBnB,SAAmBD,GAEjB,OADAJ,EAAY5N,KAAKgO,GACV,KACL,MAAMzD,EAAIqD,EAAYM,QAAQF,GAC1BzD,GAAK,GAAGqD,EAAYO,OAAO5D,EAAG,GAEtC,EAe8B6D,MAb9B,WACEV,EAlCK,CACLjM,WAAW,EACX8B,sBAAsB,EACtBrB,YAAY,EACZX,WAAW,EACXC,UAAU,EACVmM,KAAM,KACNxO,cAAe,KACfN,gBAAiB,MA2BjB+O,EAAY1V,QAAQ8V,GAAMA,EAAGpb,KAC/B,EAUqCyb,QARrC,SAAiBV,SACflb,EAAI,CACFkb,OACAzL,WAAqB,OAATyL,EACZxO,cAA4B,QAAbpN,EAAA4b,eAAAA,EAAMlP,eAAO,IAAA1M,EAAAA,EAAI,MAEpC,EAGF,CFT2Buc,GACRzb,KAAAyH,mBGnCjB,MAAMiU,EAAyB,CAAA,EAY/B,SAASC,EAA4B1O,EAAUkB,GAC7C,MAAMyN,EAAMF,EAAUzO,GACtB,IAAK2O,EAAK,OACV,MAAMC,EAAMD,EAAIP,QAAQlN,GACpB0N,GAAO,GAAGD,EAAIN,OAAOO,EAAK,EAChC,CA8BA,MAAO,CAAEC,GA7CT,SAAoC7O,EAAUkB,GAO5C,OANKuN,EAAUzO,KACZyO,EAAwCzO,GAAS,IAEnDyO,EAAUzO,GAAqCE,KAAKgB,GAG9C,IAAMwN,EAAI1O,EAAOkB,EAC1B,EAqCawN,MAAK3M,KA5BlB,SAAsC/B,EAAU7N,GAC9C,MAAMwc,EAAMF,EAAUzO,GAClB2O,GACFA,EAAIvW,QAAQ8I,IACV,IACEA,EAAQ/O,EACV,CAAE,MAAOqO,GACPsO,QAAQC,KAAK,8BAA8B/O,cAAmBQ,EAChE,IAKJ,IACE9K,SAASsZ,cACP,IAAIC,YAAY,kBAAkBjP,IAAS,CAAEd,OAAQ/M,EAAS+c,SAAS,IAE3E,CAAE,MAAAjd,GAEF,CACF,EAQwBkd,UANxB,WACGpB,OAAOqB,KAAKX,GAA8BrW,QAAQiX,WAC1CZ,EAAUY,IAErB,EAGF,CHb6BC,GAInBvc,KAAAwc,cAAyD,KACzDxc,KAAAyc,eAA2D,KAGjEzc,KAAK4a,OZ3BH,SAA0B8B,EAAiBjV,GAC/CjH,eAAemc,EACbxb,EACAyb,EACAvb,EACAwb,EAAU,EACVC,GAAc,GAEd,MAAMhY,EAAM,GAAG4X,IAAUE,IACnBG,EAAiB1b,EAAOrC,KAAKsC,UAAUD,QAAQgD,EAC/C2Y,EAxBV,SAAoB7b,EAAgB2D,EAAazD,GAC/C,MAAO,GAAGF,KAAU2D,KAAOzD,QAAAA,EAAQ,IACrC,CAsBgB4b,CAAW9b,EAAQ2D,EAAKiY,GAG9B9Z,EAAWnB,EAAS/B,IAAIid,GAC9B,GAAI/Z,EAAU,OAAOA,EAErB,MAAMrC,EAAa,IAAIC,gBACjBC,EAAYC,WAAW,IAAMH,EAAWI,QApCvB,MAsCjBI,EAAkC,CACtC,eAAgB,oBAEZrD,EAAQ4B,EAAaI,MACvBhC,IACFqD,EAAuB,cAAI,UAAUrD,KAGvC,MAAMmf,EAAUhc,MAAM4D,EAAK,CACzB3D,SACAC,UACAC,KAAM0b,EACNtb,OAAQb,EAAWa,OACnBD,YAAa,SAEZ2b,KAAK3c,MAAM4c,UAGV,GAFA1b,aAAaZ,GAEW,MAApBsc,EAASjb,OAAgB,CAI3B,IAAK2a,SACqBrc,EAAkBic,GAGxC,OADA5a,EAASyD,OAAOyX,GACTL,EAAWxb,EAAQyb,EAAMvb,EAAMwb,GAAS,GAMnD,MAHAld,EAAaM,QACbK,EAAoBL,QACpBwH,EAAQuH,KAAK,cAAe,IACtB,IAAIhN,EAAS,IAAK,iCAC1B,CAEA,IAAIJ,EACJ,IACEA,QAAawb,EAAS7e,MACxB,CAAE,MAAA4G,GACA,MAAM,IAAInD,EAASob,EAASjb,OAAQ,oCACtC,CAEA,IAAKib,EAASzb,GAAI,CAChB,MAAM2L,UAAMpO,EAAC0C,eAAAA,EAA+BQ,uBAAW,QAAQgb,EAASjb,SACxE,MAAM,IAAIH,EAASob,EAASjb,OAAQmL,EAAK1L,EAC3C,CAEA,OAAOA,IAERyb,MAAM7c,MAAOuP,IACZrO,aAAaZ,GAGb,MAAMwc,EAAiBvN,aAAewN,WAAaxN,EAAI3N,QAAQ2E,SAAS,SAClEyW,EAAgBzN,aAAe/N,KA7ExBG,EA6EgD4N,EAAI5N,SA5EtD,KAAkB,MAAXA,GAD1B,IAAqBA,EA+Eb,IAAKmb,GAAkBE,IAAkBX,EA7F7B,EAgGV,OAFA/a,EAASyD,OAAOyX,SApF1Bxc,eAAqBid,GACnB,OAAO,IAAI3X,QAAQC,GAAWhF,WAAWgF,EAAS0X,GACpD,CAmFgBC,CA9FO,IA8FgBxX,KAAKyX,IAAI,EAAGd,IAClCF,EAAWxb,EAAQyb,EAAMvb,EAAMwb,EAAU,GAGlD,MAAM9M,IAEP6N,QAAQ,KACP9b,EAASyD,OAAOyX,KAIpB,OADAlb,EAASlC,IAAIod,EAAKE,GACXA,CACT,CAEA,MAAO,CACLnd,IAAS6c,GAAiBD,EAAW,MAAOC,GAC5CiB,KAAM,CAAIjB,EAAcvb,IAAkCsb,EAAW,OAAQC,EAAMvb,GACnFyc,IAAK,CAAIlB,EAAcvb,IAAkCsb,EAAW,MAAOC,EAAMvb,GACjFkE,OAAYqX,GAAiBD,EAAW,SAAUC,GAEtD,CYtEkBmB,CAAgBzW,EAAO5G,WAAYV,KAAKyH,SACtDzH,KAAKuH,YChDwBqT,EDgDM5a,KAAK4a,OC/CnC,CACLtL,YAAYtI,GAMH4T,EAAOiD,KAA0B,gCAAiC,CACvEtO,OAAQvI,EAAOuI,OACfK,QAAS5I,EAAO4I,QAChBC,SAAU7I,EAAO6I,SACjB/B,SAAU9G,EAAO8G,WAIrB6B,gBAAgB3I,GAMP4T,EAAOiD,KAAuB,4BAA6B,CAChEtO,OAAQvI,EAAOuI,OACfK,QAAS5I,EAAO4I,QAChBC,SAAU7I,EAAO6I,SACjB/B,SAAU9G,EAAO8G,aDuBrB9N,KAAKiR,YI5CH,SAA4B2J,GAChC,MAAO,CAELvI,aAAarL,GACJ4T,EAAOiD,KAAoB,2BAA4B,CAC5DvL,QAAStL,EAAOsL,QAChBC,SAAUvL,EAAOuL,WAKrB,WAAAG,CAAY1L,GACV,MAAMgX,EAAU7O,mBAAmBnI,EAAOsL,SAC1C,OAAOsI,EAAO7a,IACZ,iCAAiCie,YAAkBhX,EAAO2L,SAE9D,EAGA0H,YAAYrT,GAKH4T,EAAOiD,KAAc,oCAC1BvD,SAAUtT,EAAOsT,SACjB1C,QAAS5Q,EAAO4Q,SACZ5Q,EAAOqM,gBAAkB,CAAEA,gBAAiBrM,EAAOqM,iBAAoB,CAAA,IAK/E+G,YAAW,CAACvE,EAAmB+B,IACtBgD,EAAOkD,IAAa,sBAAsBjI,IAAa,CAAE+B,YAIlE0B,cAAczD,GACL+E,EAAOrV,OAAgB,sBAAsBsQ,KAItDmD,WAAWnD,GACF+E,EAAOiD,KACZ,sBAAsBhI,gBACtB,IAIR,CJLuBoI,CAAkBje,KAAK4a,OAC5C,CAaA,WAAO9Q,CAAKoU,GACV,MAAM5W,EK7DJ,SAAwB+P,2BAC5B,IAAKA,EAAI9H,QAAgC,iBAAf8H,EAAI9H,QAA6C,KAAtB8H,EAAI9H,OAAO8F,OAC9D,MAAM,IAAIpT,MAAM,wFAGlB,MAAMmN,EAA2B,QAAdlQ,EAAAmY,EAAIjI,sBAAUlQ,EAAAA,EAAIyF,OAAOK,SAASC,KACrD,IAAI6I,EAEJ,IACEA,EAAW,IAAI/I,IAAIqK,GAAYmD,QACjC,CAAE,MAAA4L,GACA,MAAM,IAAIlc,MAAM,yCAAyCmN,KAC3D,CAEA,MAAO,CACLG,OAAQ8H,EAAI9H,OAAO8F,OACnBjG,aACAtB,WACA2B,UAAW9M,SAAS6M,MACpB7F,wBAAiBxE,EAAAkS,EAAI1N,+BAAmB,sBACxCrB,yBAAkB3C,EAAA0R,EAAI/O,gCAAoB,EAC1C8V,uBAAgBjX,EAAAkQ,EAAI+G,+BACpBnO,oBAAa7I,EAAAiQ,EAAIpH,2BAAe,mCAChCoO,cAAO1J,EAAA0C,EAAIgH,sBACX3d,WAAY,iCACZ4d,YAAa,sCACbC,gBAAiBlH,EAAIkH,gBACrBrP,gBAAiBmI,EAAInI,gBACrBhF,MAAO,CACLF,aAAqC,UAAd,QAATwU,EAAAnH,EAAInN,aAAK,IAAAsU,OAAA,EAAAA,EAAExU,oBAAY,IAAAyU,EAAAA,EAAI,UACzCxU,WAAiC,UAAZ,QAATyU,EAAArH,EAAInN,aAAK,IAAAwU,OAAA,EAAAA,EAAEzU,kBAAU,IAAA0U,EAAAA,EAAI,qEAG3C,CL4BmBC,CAAcV,GACvBW,EAAW,IAAIlE,EAAerT,GAEpC,OADKuX,EAASC,SACPD,CACT,CAIQ,YAAMC,GAEZja,IAMKlF,EAAaU,aACVI,EAAkBT,KAAKsH,OAAO5G,YAGtCV,KAAKwc,cAAgBnV,EACnBrH,KAAKsH,OACLtH,KAAKuH,WACLvH,KAAKwH,MACLxH,KAAKyH,SAGHzH,KAAKsH,OAAO8W,iBACdpe,KAAKyc,wBMxFTnV,EACA2J,EACAxJ,GAEA,MAAMoS,EAAQ7I,EAAmB1J,EAAQ2J,EAAaxJ,EAAS,IAAMsX,EAAOC,QACtED,ERTF,SACJ/U,EACAiV,GAEA,IAAIF,EAA6B,KAC7BG,EAA8B,KAuHlC,MAAO,CAAEC,MArHT,WACE,GAAIxc,SAASC,eAAe,qBAAsB,OAGlD,IAAIwc,EAAa,GACjB,IACE,MAAMC,EAAQ9e,aAAaJ,QAAQ0Q,GAC/BwO,IAAOD,EAAapgB,KAAKC,MAAMogB,GACrC,CAAE,MAAoBngB,GAAC,CAEvB6f,EAASpc,SAASE,cAAc,OAChCkc,EAAOtc,GAAK,oBAGZsc,EAAOjc,MAAMC,QAAU,8BACAqc,wEACkBpV,sUAOzC+U,EAAO3V,aAAa,OAAQ,UAC5B2V,EAAO3V,aAAa,aAAc,iBAClC2V,EAAOO,SAAW,EAGlB,MAAMhM,EAAO3Q,SAASE,cAAc,OACpCyQ,EAAKxQ,MAAMC,QAAU,4DACrBuQ,EAAKnB,UAAY,sJAGjB+M,EAAUvc,SAASE,cAAc,QACjCqc,EAAQpc,MAAMC,QAAU,iCACEiH,2IAM1B,MAAMuV,EAAS5c,SAASE,cAAc,OACtC0c,EAAOzc,MAAMC,QAAU,uGACvBwc,EAAOpN,UAAY,wNAGnBmB,EAAK7H,iBAAiB,QAASwT,GAC/BC,EAAQzT,iBAAiB,QAASwT,GAGlC,IAAIO,GAAW,EACXC,EAAS,EACTC,EAAW,EAEf,SAASC,EAAUC,GACjBJ,GAAW,EACXC,EAASG,EACTF,EAAWX,EAAQc,wBAAwBC,IAC3CP,EAAOzc,MAAMid,OAAS,UACxB,CAEA,SAASC,EAASJ,GAChB,IAAKJ,IAAaT,EAAQ,OAC1B,MAAMkB,EAAQL,EAAIH,EAEZS,EADSha,KAAKia,IAAI,EAAGja,KAAKka,IAAIzb,OAAO0b,YAzE3B,GAyEwDX,EAAWO,IAC7Dtb,OAAO0b,YAAe,IAC5CtB,EAAOjc,MAAMgd,IAAM,GAAGI,IACxB,CAEA,SAASI,IACP,IAAKd,IAAaT,EAAQ,OAC1BS,GAAW,EACXD,EAAOzc,MAAMid,OAAS,OACtB,MACMG,EADOnB,EAAOc,wBACFC,IAAMnb,OAAO0b,YAAe,IAC9C,IAAM9f,aAAaT,QAAQ+Q,EAAc7R,KAAKsC,UAAU4e,GAAO,CAAE,MAAoBhhB,GAAC,CACxF,CAEAqgB,EAAO9T,iBAAiB,YAAagC,IAAOA,EAAE8S,iBAAkB9S,EAAE+S,kBAAmBb,EAAUlS,EAAEgT,WACjGlB,EAAO9T,iBAAiB,aAAcgC,IAAOA,EAAE8S,iBAAkBZ,EAAUlS,EAAEiT,QAAQ,GAAGD,UAAa,CAAEE,SAAS,IAChHhe,SAAS8I,iBAAiB,YAAagC,GAAKuS,EAASvS,EAAEgT,UACvD9d,SAAS8I,iBAAiB,YAAagC,GAAKuS,EAASvS,EAAEiT,QAAQ,GAAGD,SAAU,CAAEE,SAAS,IACvFhe,SAAS8I,iBAAiB,UAAW6U,GACrC3d,SAAS8I,iBAAiB,WAAY6U,GAEtCvB,EAAOtT,iBAAiB,UAAWgC,IAAqB,UAAVA,EAAEuP,KAA6B,MAAVvP,EAAEuP,KAAaiC,MAElFF,EAAO/b,YAAYsQ,GACnByL,EAAO/b,YAAYkc,GACnBH,EAAO/b,YAAYuc,GACnB5c,SAAStB,KAAK2B,YAAY+b,EAC5B,EA0BgB6B,SAxBhB,SAAkBjY,GACXuW,IACDvW,EAAI,GACNuW,EAAQvb,YAAcgF,EAAI,GAAK,MAAQoK,OAAOpK,GAC9CuW,EAAQpc,MAAMuG,QAAU,gBAExB6V,EAAQpc,MAAMuG,QAAU,OAE5B,EAgB0B2V,KAd1B,WACMD,IAAQA,EAAOjc,MAAMuG,QAAU,OACrC,EAYgCtB,KAVhC,WACMgX,IAAQA,EAAOjc,MAAMuG,QAAU,OACrC,EAQsCmB,QANtC,WACEuU,SAAAA,EAAQxb,SACRwb,EAAS,KACTG,EAAU,IACZ,EAGF,CQpHiB2B,CAAoBvZ,EAAO4C,MAAMF,aAAc,KAC5D+U,EAAOhX,OACP8R,EAAMC,cAqBR,MAAO,CAAEhQ,KAlBT,WACEiV,EAAOI,OACT,EAgBelZ,KAdf,WACE8Y,EAAOhX,OACP8R,EAAMC,WACR,EAWqBjT,MATrB,WACEgT,EAAMD,YACR,EAO4BpP,QAL5B,WACEqP,EAAMrP,UACNuU,EAAOvU,SACT,EAGF,CN2D4BsW,CACpB9gB,KAAKsH,OACLtH,KAAKiR,YACLjR,KAAKyH,SAEPzH,KAAKyc,eAAe3S,cAGhB9J,KAAKwc,cAAc1S,OAEzB9J,KAAKyH,QAAQuH,KAAK,QAAS,CAAExH,MAAOxH,KAAKwH,MAAMzH,OACjD,CAKA,EAAA+b,CAA2B7O,EAAUkB,GACnC,OAAOnO,KAAKyH,QAAQqU,GAAG7O,EAAOkB,EAChC,CAGA,GAAAwN,CAA4B1O,EAAUkB,GACpCnO,KAAKyH,QAAQkU,IAAI1O,EAAOkB,EAC1B,CAGA,QAAA4S,GACE,OAAO/gB,KAAKwH,MAAMzH,KACpB,CAGA,iBAAMuP,eACoB,UAAlBtP,KAAKwc,qBAAa,IAAAtd,OAAA,EAAAA,EAAEoQ,cAC5B,CAGA,YAAA0R,SACqB,QAAnB9hB,EAAAc,KAAKyc,0BAAcvd,GAAAA,EAAE+G,MACvB,CAGA,aAAAgb,SACqB,QAAnB/hB,EAAAc,KAAKyc,0BAAcvd,GAAAA,EAAE2H,OACvB,CAGA,UAAAwI,GACE,OAAO1P,EAAaU,KACtB,CAGA,OAAAmK,WACoB,QAAlBtL,EAAAc,KAAKwc,yBAAatd,GAAAA,EAAEsL,UACD,QAAnBrF,EAAAnF,KAAKyc,0BAActX,GAAAA,EAAEqF,UACrBxK,KAAKyH,QAAQ2U,YACbpc,KAAKwH,MAAM+T,OACb,CAGA,kBAAW2F,GACT,MAAO,OACT,GAQF,qBACE,MAAMC,EAC8C,QAAlDjiB,EAAAyD,SAASye,qBAAyC,IAAAliB,EAAAA,EAClDyD,SAASe,cAAiC,iDAE5C,IAAKyd,EAAQ,OAEb,MAAME,EAAKF,EAAOvd,QACZ2L,EAAoB,QAAXpK,EAAAkc,EAAGC,gBAAQ,IAAAnc,EAAAA,EAAIkc,EAAG9R,OACjC,IAAKA,EAAQ,OAEb,MAAM2O,EAAuB,CAC3B3O,SACA5F,gBAAqC,UAApB0X,EAAGE,yBAAiB,IAAA5b,EAAAA,EAAI0b,EAAG1X,gBAC5CrB,iBAAkB+Y,EAAGG,mBAAqBC,SAASJ,EAAGG,mBAAoB,SAAMnd,EAChF+Z,eAAwC,UAAxBiD,EAAGK,iBACnBzR,YAAaoR,EAAGM,cAChBtD,MAAsB,SAAfgD,EAAGO,SAGgB,YAAxBjf,SAASkf,WACXlf,SAAS8I,iBAAiB,mBAAoB,IAAMkP,EAAe7Q,KAAKoU,IAExEvD,EAAe7Q,KAAKoU,EAExB,CAEA4D"}
1
+ {"version":3,"file":"content-credits.umd.min.js","sources":["../src/auth/token.ts","../src/auth/storage.ts","../src/auth/session.ts","../src/api/client.ts","../src/paywall/gate.ts","../src/ui/shadow.ts","../src/ui/sanitize.ts","../src/paywall/renderer.ts","../src/auth/popup.ts","../src/paywall/index.ts","../src/ui/styles.ts","../src/extension/bridge.ts","../src/extension/detector.ts","../src/comments/widget.ts","../src/comments/panel.ts","../src/index.ts","../src/api/credits.ts","../src/core/state.ts","../src/core/events.ts","../src/api/comments.ts","../src/core/config.ts","../src/comments/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["decodeJwt","token","parts","split","length","base64","replace","padded","padEnd","json","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","_a","isTokenExpired","payload","exp","Date","now","SESSION_KEY","REFRESH_KEY","memoryToken","tokenStorage","set","sessionStorage","setItem","get","this","clear","stored","getItem","removeItem","has","refreshTokenStorage","localStorage","async","tryRefreshSession","apiBaseUrl","rt","controller","AbortController","timeoutId","setTimeout","abort","resp","fetch","method","headers","body","stringify","refreshToken","credentials","signal","clearTimeout","ok","data","accessToken","inFlight","Map","ApiError","Error","constructor","status","message","super","name","GATE_ATTR","createGate","options","gated","contentEl","hiddenNodes","hide","document","querySelector","selector","hasAttribute","paragraphs","Array","from","querySelectorAll","teaserParagraphs","hideFrom","childNodes","pivotIndex","findIndex","n","contains","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","forEach","HTMLElement","Text","_b","style","setProperty","call","_d","_c","setAttribute","display","prevPos","position","fadeEl","createElement","cssText","appendChild","reveal","removeProperty","removeAttribute","remove","isGated","removeShadowHost","id","host","getElementById","injectStyles","root","css","existing","textContent","dataset","ccStyles","setTextContent","el","str","tag","text","attrs","element","undefined","HOST_ID","isMobileDevice","test","navigator","userAgent","window","innerWidth","consumeTokenFromUrl","url","URL","location","href","searchParams","changed","param","delete","history","replaceState","scrubTokenFromUrl","opener","closed","postMessage","type","origin","close","openAuthPopup","authUrl","Promise","resolve","popup","settled","finish","clearInterval","timer","removeEventListener","onMessage","event","addEventListener","open","Math","round","screenX","outerWidth","screenY","outerHeight","elapsed","setInterval","popupUrl","includes","params","URLSearchParams","search","_e","createPaywall","config","creditsApi","state","emitter","existingGate","gate","contentSelector","renderer","overlay","init","shadowRoot","anchorEl","parentNode","insertBefore","nextSibling","_ccShadow","attachShadow","mode","createInlineShadowHost","primaryColor","fontFamily","theme","className","poweredBy","div","link","destroy","render","callbacks","meta","firstChild","removeChild","parent","cb","btn","onLogin","renderLogin","credits","badge","onPurchase","renderPurchase","requiredCredits","required","available","detail","onBuyMoreCredits","renderInsufficient","creditBalance","disabled","spinner","createTextNode","renderLoading","setButtonLoading","loading","createPaywallRenderer","bridge","authHandler","purchaseHandler","handleMessage","origins","push","getAllowedOrigins","msg","attach","e","detach","requestAuthorization","articleId","hostName","requestPurchase","requestLogin","onAuthorizationResponse","handler","onPurchaseResponse","createExtensionBridge","extensionAvailable","handleAccessGranted","creditsSpent","balance","hasAccess","isLoaded","isLoading","doLogin","doPurchase","doBuyMoreCredits","emit","remainingBalance","onAccessGranted","encodeURIComponent","articleUrl","isLoggedIn","checkAccess","apiKey","title","pageTitle","result","purchaseArticle","postUrl","postName","success","err","error","extensionId","resolved","done","__CC_EXTENSION_LOADED","img","Image","onload","onerror","src","isExtensionAvailable","isAuthenticated","doesHaveAccess","POSITION_KEY","PANEL_HOST_ID","AVATAR_COLORS","createCommentPanel","commentsApi","onClose","currentUserId","currentThreadId","currentComments","currentSort","viewingSubthreadFor","replyingToCommentId","editingCommentId","ensureRoot","r","createShadowHost","refreshUser","_id","getUserIdFromToken","updateLoginOverlay","loadComments","listEl","container","innerHTML","threadRes","ensureThread","pageUrl","hostname","renderError","commentsRes","getComments","sortBy","comments","thread","countEl","String","renderComments","buildTree","roots","replies","node","parentCommentId","icon","retry","backBtn","titleEl","classList","add","parentId","find","buildCommentEl","label","empty","paddingTop","renderSubthread","sub","sorted","sort","a","b","createdAt","getTime","likeCount","_f","sortTree","comment","isReply","isOwn","authorId","author","authorName","firstName","lastName","trim","avatarBg","inis","first","last","toUpperCase","initials","card","commentId","header","authorRow","avatar","background","profilePicture","safeUrl","parsed","protocol","sanitizeUrl","startsWith","authorMeta","nameEl","timeEl","iso","d","toLocaleTimeString","hour","minute","toLocaleDateString","month","day","year","formatDate","raw","fragment","createDocumentFragment","lines","line","i","renderCommentContent","content","actions","replyBtn","action","likeBtn","hasLiked","ownerDiv","editBtn","deleteBtn","buildLoginOverlay","handleListClick","target","closest","textarea","placeholder","focus","showCancel","handleReply","wasLiked","res","toggleLike","handleLike","value","submitBtn","handleEdit","confirm","deleteComment","handleDelete","cancelBtn","hideCancel","cancelEdit","compose","closePanel","backdrop","panel","openPanel","titleGroup","closeBtn","sortBar","sortLabel","list","editComment","postComment","threadId","handleSubmit","buildCompose","buildPanel","requestAnimationFrame","ContentCredits","client","current","user","subscribers","Object","assign","patch","fn","subscribe","indexOf","splice","reset","setUser","createState","listeners","off","arr","idx","on","console","warn","dispatchEvent","CustomEvent","bubbles","removeAll","keys","k","createEventEmitter","paywallModule","commentsModule","baseUrl","request","path","attempt","authRetried","serialisedBody","key","requestKey","promise","then","response","catch","isNetworkError","TypeError","isServerError","ms","sleep","pow","finally","post","put","createApiClient","encoded","createCommentsApi","rawConfig","_l","enableComments","debug","accountsUrl","paywallTemplate","_g","_h","_j","_k","resolveConfig","instance","_start","earlyGate","widget","show","onOpen","badgeEl","mount","topPercent","saved","tabIndex","handle","dragging","startY","startTop","beginDrag","y","getBoundingClientRect","top","cursor","moveDrag","delta","pct","max","min","innerHeight","endDrag","preventDefault","stopPropagation","clientY","touches","passive","setCount","createCommentWidget","createComments","getState","openComments","closeComments","version","script","currentScript","ds","ccApiKey","ccContentSelector","ccTeaserParagraphs","parseInt","ccEnableComments","ccExtensionId","ccDebug","readyState","autoInit"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import type { Gate } from './gate.js';
1
2
  import type { createCreditsApi } from '../api/credits.js';
2
3
  import type { StateStore } from '../core/state.js';
3
4
  import type { EventEmitter } from '../core/events.js';
4
5
  import type { ResolvedConfig } from '../types/index.js';
5
- export declare function createPaywall(config: ResolvedConfig, creditsApi: ReturnType<typeof createCreditsApi>, state: StateStore, emitter: EventEmitter): {
6
+ export declare function createPaywall(config: ResolvedConfig, creditsApi: ReturnType<typeof createCreditsApi>, state: StateStore, emitter: EventEmitter, existingGate?: Gate): {
6
7
  init: () => Promise<void>;
7
8
  checkAccess: () => Promise<void>;
8
9
  destroy: () => void;
@@ -7,6 +7,14 @@ export declare function createShadowHost(id: string): {
7
7
  host: HTMLElement;
8
8
  root: ShadowRoot;
9
9
  };
10
+ /**
11
+ * Creates a shadow host inserted immediately after `anchorEl` in the DOM.
12
+ * Used for the inline paywall panel so it flows naturally below the content.
13
+ */
14
+ export declare function createInlineShadowHost(id: string, anchorEl: HTMLElement): {
15
+ host: HTMLElement;
16
+ root: ShadowRoot;
17
+ };
10
18
  export declare function removeShadowHost(id: string): void;
11
19
  /** Inject a <style> tag into a shadow root */
12
20
  export declare function injectStyles(root: ShadowRoot, css: string): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentcredits/sdk",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
4
4
  "description": "Content Credits JS SDK — drop-in paywall and comments for any website",
5
5
  "author": "Content Credits",
6
6
  "license": "Apache-2.0",