{"version":3,"file":"jsn/election2025Faq.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///../../node_modules/.pnpm/preact@10.26.9/node_modules/preact/dist/preact.module.js","webpack:///../../node_modules/.pnpm/preact@10.26.9/node_modules/preact/hooks/dist/hooks.module.js","webpack:///./paidPages/common/constants.js","webpack:///./paidPages/common/utils.js","webpack:///./election2025/utils/stringUtils.js","webpack:///../../node_modules/.pnpm/preact@10.26.9/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","webpack:///./election2025/faq/BoardArticleItem.js","webpack:///./election2025/election2025Faq.js","webpack:///./election2025/faq/api/request.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"joongang\"] = factory();\n\telse\n\t\troot[\"joongang\"] = root[\"joongang\"] || {}, root[\"joongang\"][\"election2025Faq\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_=t&&t.__k||v,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:_[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&q(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","export const USER_COOKIE_FAVORITE = 'joongangPlusCookieUserFavorite';\nexport const USER_COOKIE_TYPE = 'joongangPlusCookieUserType';\nexport const USER_HOME_BACK_CONTENTS_HISTORY_KEY = 'joongangPlusHomeBackHistoryKey';\nexport const USER_SERIES_ONLY_CACHE_KEY = 'joongangPlusHomeSeriesOnlyCacheKey';\nexport const USER_TOP_BACK_CONTENTS_HISTORY_KEY = 'joongangPlusTopBackHistoryKey';\n\nexport const USER_GA_COOKIE_FAVORITE_LOGIN = 'JAPlusUsrFavorite';\nexport const USER_GA_COOKIE_FAVORITE_NON_LOGIN = 'JAPlusGstFavorite';\n\nexport const ACCOUNT_PAGE_URL = 'https://account.joongang.co.kr/';\nexport const ACCOUNT_PAGE_DEV_URL = 'https://dev-account.joongang.co.kr/';\n\nexport const PLAYER_DOMAIN = 'https://oya.joongang.co.kr';\n\nexport const PACKAGE_HOME_SESSION_KEY = {\n  FILTER_KEY: 'joongangPlusPackageHomeFilterKey',\n  CONTENTS_LIST_KEY: 'joongangPlusPackageHomeContentListKey',\n};\n\nexport const CHOICE_BOOKMARK = 'plusChoiceBookmark';\n\nexport const TOP_PAGE_DROPDOWN_MAP = {\n  D: '실시간',\n  W: '주간',\n  M: '월간',\n};\n\nexport const PAY_CARD_TP_MAP = {\n  A: '아티클',\n  F: 'AtoZ',\n  L: '뉴스레터',\n  P: 'PDF',\n  G: '패키지',\n  O: '기타카드',\n};\n\nexport const PAY_FAVO_DIV_MAP = {\n  F_A: '관심분야 1',\n  F_B: '관심분야 2',\n  F_C: '관심분야 3',\n  F_D: '관심분야 4',\n};\n\nexport const FAVO_CODE_INTO_NAME_KR = {\n  F_A: 'Leader & Reader', // business\n  F_B: '세상과 함께', // society\n  F_C: '돈 버는 재미', // money\n  F_D: '마음 챙기기', // culture\n  F_E: '가족과 함께', // family\n  F_F: '쉴 땐 뭐하지', // lifestyle\n};\n\nexport const FAVO_CODE_INTO_NAME = {\n  F_A: 'business', // Leader & Reader\n  F_B: 'society', // 세상과 함께\n  F_C: 'money', // 돈 버는 재미\n  F_D: 'culture', // 마음 챙기기\n  F_E: 'family', // 가족과 함께\n  F_F: 'lifestyle', // 쉴 땐 뭐하지\n};\n\nexport const FAVO_NAME_INTO_CODE = {\n  business: 'F_A', // Leader & Reader\n  society: 'F_B', // 세상과 함께\n  money: 'F_C', // 돈 버는 재미\n  culture: 'F_D', // 마음 챙기기\n  family: 'F_E', // 가족과 함께\n  lifestyle: 'F_F', // 쉴 땐 뭐하지\n};\n\nexport const CONTENTS_TYPE = {\n  business: [\n    'science', // 과학\n    'leadership', // 리더십\n    'industry', // 산업\n    'enterprise', // 혁신기업\n    'kcontent', // K콘텐트\n  ],\n  society: [\n    'health', // 건강\n    'world', // 국제\n    'politics', // 국회\n    'law', // 생활법률\n    'issue', // 이슈\n    'history', // 현대사\n  ],\n  money: [\n    'realestate', // 부동산\n    'finance', // 주식/금융\n  ],\n  culture: [\n    'art', // 미술\n    'music', // 음악\n    'essay', // 에세이\n    'religion', // 종교\n  ],\n  family: [\n    'nurture', // 양육\n    'pet', // 펫\n  ],\n  lifestyle: [\n    'sports', // 스포츠\n    'leisure', // 여가\n    'travel', // 여행\n    'photo', // 포토\n    'food', // 푸드\n  ],\n};\n\nexport const TOPIC_CODE_INTO_NAME_KR = {\n  science: '과학',\n  leadership: '리더십',\n  industry: '산업',\n  enterprise: '혁신기업',\n  kcontent: 'K콘텐트',\n  health: '건강',\n  world: '국제',\n  politics: '국회',\n  law: '생활법률',\n  issue: '이슈',\n  history: '현대사',\n  realestate: '부동산',\n  finance: '주식/금융',\n  art: '미술',\n  essay: '에세이',\n  music: '음악',\n  religion: '종교',\n  nurture: '양육',\n  pet: '펫',\n  sports: '스포츠',\n  leisure: '여가',\n  travel: '여행',\n  photo: '포토',\n  food: '푸드',\n};\n\nexport const PACKAGE_TYPE = {\n  MIX: { CODE: 'M', NAME: 'MIX' },\n  ARTICLE: { CODE: 'A', NAME: '아티클' },\n  ATOZ: { CODE: 'F', NAME: 'AtoZ' },\n  LETTER: { CODE: 'L', NAME: '뉴스레터' },\n  PDF: { CODE: 'P', NAME: 'PDF' },\n};\n\nexport const FAVO_CODE_NAME = {\n  Q: '큐레이션',\n  G: '시리즈',\n  T: '토픽',\n  L: '뉴스레터',\n  R: '에디터',\n};\n\nexport const INITIAL_FAVO_LIST = { T: [], G: [], Q: [], R: [], P: [], E: [] };\n\nexport const FAVO_CODE = {\n  CURATION: 'Q',\n  SERIES: 'G',\n  TOPIC: 'T',\n  NEWSLETTER: 'L',\n  EDITOR: 'R',\n  PUBLICATION: 'P',\n  FREE: 'E',\n};\n\nexport const FREE_BADGE_TYPE = {\n  TIMER: 'T', // 타이머까지 노출\n  BADGE: 'B', // 무료 전문공개 뱃지만 노출\n  NONE: 'N', // 미노출\n};\n\nexport const FAVO_CODE_LIST = Object.keys(FAVO_CODE_NAME);\n\nexport const APP_PDF_DOWNLOAD_COMPARE_VERSION = '7.4.1';\n","import { APP_PDF_DOWNLOAD_COMPARE_VERSION, ACCOUNT_PAGE_DEV_URL, ACCOUNT_PAGE_URL } from '@paidPages/common/constants';\nimport { pageType, joongangUtils } from '@paidPages/common/references';\n\nexport function clsx(classNameList) {\n  return classNameList.filter(valid => valid).join(' ');\n}\n\nexport function isEmpty(value) {\n  return value === undefined || value === null || value === '';\n}\n\nexport function isEmpty2(value) {\n  return value === undefined || value === null || value?.length === 0 || Object.keys(value).length === 0;\n}\n\nexport function setJoongangRefProperty(key, value) {\n  if (!window.joongang) {\n    window.joongang = {};\n  }\n  if (!window.joongang.shareRef) {\n    window.joongang.shareRef = {};\n  }\n\n  window.joongang.shareRef[key] = value;\n}\n\nexport function getJoongangRefProperty(key) {\n  if (window?.joongang?.shareRef) {\n    return window.joongang.shareRef[key] || null;\n  }\n\n  return null;\n}\n\nexport function addStickyCallbacks(callback) {\n  const shareRef = window?.joongang?.shareRef;\n  if (shareRef?.stickyCalllbacks) {\n    shareRef?.stickyCalllbacks.push(callback);\n  } else {\n    setJoongangRefProperty('stickyCalllbacks', [callback]);\n  }\n}\n\nexport function removeStickyCallbacks(callback) {\n  const stickyCalllbacks = window?.joongang?.shareRef?.stickyCalllbacks;\n  if (stickyCalllbacks) {\n    const index = stickyCalllbacks.indexOf(callback);\n\n    if (index > -1) {\n      stickyCalllbacks.splice(index, 1);\n    }\n  }\n}\n\nexport function moveLoginUrl() {\n  const ACCOUNT_URL = getAccountUrl();\n  const LOGIN_URL = `${ACCOUNT_URL}login?targetURL=${encodeURIComponent(window.location.href)}`;\n\n  location.href = LOGIN_URL;\n}\n\nexport function moveLogoutUrl() {\n  window.jaLogout();\n}\n\nexport function logoutAndMoveLogin() {\n  joongangUtils.current?.current?.member?.removeMemInfo();\n  moveLoginUrl();\n}\n\nexport function convertServerTimeFormat(target) {\n  if (!target) return null;\n  return target.replace(/([0-9]{4})([0-9]{2})([0-9]{2})\\s([0-9]{2}:[0-9]{2}:[0-9]{2})\\.[0-9]*/, '$1-$2-$3T$4');\n}\n\nexport function getCookie(key) {\n  if (!key) {\n    return null;\n  }\n\n  let cookie =\n    document.cookie.replace(\n      new RegExp(`(?:(?:^|.*;)\\\\s*${encodeURIComponent(key).replace(/[-.+*]/g, '\\\\$&')}\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$`),\n      '$1'\n    ) || null;\n  if (cookie) {\n    try {\n      cookie = decodeURIComponent(cookie);\n    } catch {\n      cookie = decodeURIComponent(unescape(cookie)); // escape 처리된 문자열이 저장된 경우, catch.\n    }\n  }\n\n  return cookie;\n}\n\nexport function setCookie({ key, value, end, path, domain, secure }) {\n  let expires = '';\n  let domainValue = domain;\n\n  if (!key || /^(?:expires|max-age|path|domain|secure)$/i.test(key)) {\n    return false;\n  }\n\n  if (!domainValue) {\n    domainValue = '.joongang.co.kr';\n\n    if (location.host.match(/localhost/)) {\n      domainValue = '';\n    }\n  }\n\n  if (end) {\n    switch (end.constructor) {\n      case Number:\n        expires = end === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : `; max-age=${end * 60 * 60 * 24}`;\n        break;\n      case String:\n        expires = `; expires=${end}`;\n        break;\n      case Date:\n      default:\n        expires = `; expires=${end.toUTCString()}`;\n        break;\n    }\n  }\n\n  const domainString = domainValue ? `; domain=${domainValue}` : '';\n  const pathString = `; path=${path ? path : '/'}`;\n  const secureString = secure ? '; secure' : '';\n  const keyValueString = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n  const cookieString = `${keyValueString}${expires}${domainString}${pathString}${secureString}`;\n\n  document.cookie = cookieString;\n\n  return true;\n}\n\nexport function isBackForwardPage() {\n  const { performance } = window;\n  const { navigation } = performance;\n\n  if (navigation) {\n    return navigation.type === navigation.TYPE_BACK_FORWARD;\n  } else if (performance.getEntriesByType) {\n    return performance.getEntriesByType('navigation')[0].type === 'back_forward';\n  }\n\n  return false;\n}\n\nexport function isReload() {\n  const { navigation } = performance;\n  if (navigation) {\n    return navigation.type === navigation.TYPE_RELOAD;\n  } else if (performance.getEntriesByType) {\n    return performance.getEntriesByType('navigation')[0].type === 'reload';\n  }\n\n  return false;\n}\n\nexport function isFromLoginPage() {\n  const { referrer } = document;\n\n  if (referrer) {\n    const regex = new RegExp(`(${ACCOUNT_PAGE_DEV_URL}|${ACCOUNT_PAGE_URL})`);\n\n    return regex.test(referrer);\n  }\n\n  return false;\n}\n\n/**\n * 두 시간 차이를 계산해서 diff(default: 24시(하루))이내로 차이나면 true, 아니면 false 반환\n * @param startTime : 비교 대상 첫번째 시간 (문자열로 전달시 YYYY-MM-DD HH:MM:SS 형태로 전달)\n * @param endTime : 비교 대상 두번째 시간 (문자열로 전달시 YYYY-MM-DD HH:MM:SS 형태로 전달)\n * @param diff : 허용할 두 시간 차이. 허용 범위 내에 들어오면 true 반환, 그렇지 않으면 false 반환\n *\n * 입력 받는 두 시간 값 중의 하나라도 비어 있거나 null인 경우, 또 올바르지 않은 시간 값인 경우, null값 반환\n * diff 값 미 전달 시, 24시간 기본 설정.\n */\nexport function checkInTimeDifference(startTime, endTime, diff = 24) {\n  try {\n    if (!endTime || !startTime) {\n      return null;\n    }\n    // eslint-disable-next-line no-nested-ternary\n    const st = startTime instanceof Date ? startTime : typeof startTime === 'string' ? startTime.toDate() : null;\n    // eslint-disable-next-line no-nested-ternary\n    const et = endTime instanceof Date ? endTime : typeof endTime === 'string' ? endTime.toDate() : null;\n\n    if (!st || !et) {\n      return null;\n    }\n\n    return et - st < diff * 60 * 60 * 1000;\n  } catch (e) {\n    console.warn('CHECKINTIMEDIFF', e);\n    return null;\n  }\n}\n\n/**\n * Date 날짜 형식 값 넣어주면 YYYY.MM.DD HH:MM 형태의 스트링 포맷으로 반환하는 함수..\n *\n * @param datetime\n */\nexport const getDateTimeString = (datetime = new Date(), isShortType = false) => {\n  const date = datetime ? datetime : new Date();\n\n  const year = date.getFullYear();\n  const month = `0${1 + date.getMonth()}`.slice(-2);\n  const day = `0${date.getDate()}`.slice(-2);\n  const hour = `0${date.getHours()}`.slice(-2);\n  const minute = `0${date.getMinutes()}`.slice(-2);\n\n  if (isShortType) {\n    return `${year}.${month}.${day}`;\n  }\n\n  return `${year}.${month}.${day} ${hour}:${minute}`;\n};\n\n/**\n * 시간 문자열(YYYY-MM-DD HH:MM)값 넣어주면 방금 전, 몇분 전, 몇시간 전 그 외에는 시간 정보를 표기해주는 함수\n * 라이브 기사에서 사용\n *\n * @param stringDate\n * @param GLOBAL_SERVER_TIME - 원래 기존 대선 프로젝트에서는 별도로 SERVER 시간을 받아서 전역 세팅함.. 여기서는 일단 파라메터로 받는 방식으로 처리..\n */\nexport const getTimeAgo = (stringDate, GLOBAL_SERVER_TIME, isShortType) => {\n  try {\n    if (stringDate === '') {\n      return stringDate;\n    }\n\n    const st = new Date(stringDate.replace(/-/g, '/'));\n    let diff = ((GLOBAL_SERVER_TIME ? Date.parse(GLOBAL_SERVER_TIME) : Number(new Date())) - Number(st)) / 1000;\n    // let diff = (Number(new Date()) - Number(st)) / 1000;\n\n    if (diff < 60) {\n      return '방금 전';\n    }\n\n    diff = Math.ceil(diff / 60);\n    if (diff < 60) {\n      return `${diff}분 전`;\n    }\n\n    diff = Math.ceil(diff / 60);\n    if (diff < 24) {\n      return `${diff}시간 전`;\n    }\n\n    return getDateTimeString(st, isShortType);\n  } catch (e) {\n    console.warn('GET TIME AGO', e);\n    // Do Nothing\n  }\n\n  return stringDate;\n};\n\n/**\n * 밀리세컨드 숫자 값을 입력하면 MM:SS 또는 HH:MM:SS 형태의 시간 값으로 변환한 후, 반환.\n *\n * @param milliseconds\n * @returns {`${string}:${string}`|`${string}:${string}:${string}`}\n */\nexport const convertMillisecondsToMMSS = milliseconds => {\n  const totalSeconds = Math.floor(milliseconds / 1000);\n  const hours = Math.floor(totalSeconds / 3600);\n  const remainingSeconds = totalSeconds % 3600;\n  const minutes = Math.floor(remainingSeconds / 60);\n  const seconds = remainingSeconds % 60;\n\n  const formattedHours = String(hours).padStart(2, '0');\n  const formattedMinutes = String(minutes).padStart(2, '0');\n  const formattedSeconds = String(seconds).padStart(2, '0');\n\n  if (hours > 0) {\n    return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;\n  }\n  return `${formattedMinutes}:${formattedSeconds}`;\n};\n\n/**\n * API 등으로부터 전달받은 문자열 중, ASCII CODE값 등을 원 HTML 코드로 변환(디코딩) 해 준다.\n *\n * @param htmlString: 디코딩할 문자열\n * @return: 디코딩된 결과 문자열\n */\nexport const decodeHtml = (htmlString, nl2br = false) => {\n  if (!htmlString) {\n    return '';\n  }\n\n  let asciiDecodedHtml = htmlString.replace(/(&#(\\d+);)/g, (match, capture, charCode) => String.fromCharCode(charCode));\n\n  if (nl2br) {\n    asciiDecodedHtml = asciiDecodedHtml.replace(/\\n/g, '<br />');\n  }\n\n  return asciiDecodedHtml\n    .replace(/&lt;/g, `<`)\n    .replace(/&gt;/g, `>`)\n    .replace(/&amp;/g, `&`)\n    .replace(/&quot;/g, '\"')\n    .replace(/&ldquo;/g, '“')\n    .replace(/&rdquo;/g, '”')\n    .replace(/&rsquo;/g, \"'\")\n    .replace(/&lsquo;/g, \"'\")\n    .replace(/&middot;/g, '·')\n    .replace(/&hellip;/g, '…')\n    .replace(/&apos;/g, `'`)\n    .replace(/&rarr;/g, `→`)\n    .replace(/&rArr;/g, `⇒`)\n    .replace(/&larr;/g, `←`)\n    .replace(/&lArr;/g, `⇐`);\n};\n\nexport const decodeHtmlForGtmLabel = (htmlString, nl2br = false) => {\n  if (!htmlString) {\n    return '';\n  }\n\n  let asciiDecodedHtml = htmlString.replace(/(&#(\\d+);)/g, (match, capture, charCode) => String.fromCharCode(charCode));\n\n  if (nl2br) {\n    asciiDecodedHtml = asciiDecodedHtml.replace(/\\n/g, '<br />');\n  }\n\n  return asciiDecodedHtml\n    .replace(/&lt;/g, `<`)\n    .replace(/&gt;/g, `>`)\n    .replace(/&amp;/g, `&`)\n    .replace(/&quot;/g, '“')\n    .replace(/&ldquo;/g, '“')\n    .replace(/&rdquo;/g, '”')\n    .replace(/\"/g, '“')\n    .replace(/&rsquo;/g, \"'\")\n    .replace(/&lsquo;/g, \"'\")\n    .replace(/&middot;/g, '·')\n    .replace(/&hellip;/g, '…')\n    .replace(/&apos;/g, `'`)\n    .replace(/&rarr;/g, `→`)\n    .replace(/&rArr;/g, `⇒`)\n    .replace(/&larr;/g, `←`)\n    .replace(/&lArr;/g, `⇐`);\n};\n\n/**\n * Moka 구독 정보 업데이트 함수 호출\n * @param time\n */\nexport const callMokaSetActiveMySubs = (time = 500) => {\n  setTimeout(() => {\n    if (window) {\n      // @ts-ignore\n      if (window.setJoongangPlusActiveMySubs) {\n        // @ts-ignore\n        window.setJoongangPlusActiveMySubs();\n      }\n    }\n  }, time);\n};\n\n/**\n * Moka 관심 정보 업데이트 함수 호출\n * @param time\n */\nexport const callMokaSetActiveMyFavorites = (time = 500) => {\n  setTimeout(() => {\n    if (window) {\n      // @ts-ignore\n      if (window.setJoongangPlusActiveMyFavorites) {\n        window.setJoongangPlusActiveMyFavorites();\n      }\n    }\n  }, time);\n};\n\n/**\n * GA 데이터 세팅\n * @param category\n * @param action\n * @param label\n * @return {{\"data-evnt-act\", \"data-evnt-ctg\", \"data-evnt-lbl\"}}\n */\nexport const setGAEventSet = (category, action, label) => {\n  return {\n    'data-evnt-ctg': category || '',\n    'data-evnt-act': action || '',\n    'data-evnt-lbl': label || '-',\n  };\n};\n\n/**\n * GA impression 데이터 세팅\n * @param category\n * @param action\n * @param label\n * @return {{\"data-evnt-imp-act\", \"data-evnt-imp-ctg\", \"data-evnt-imp-lbl\"}}\n */\nexport const setGAImpressionEventSet = (category, action, label) => {\n  return {\n    'data-evnt-imp-ctg': category || '',\n    'data-evnt-imp-act': action || '',\n    'data-evnt-imp-lbl': label || '-',\n  };\n};\n\n/**\n * GA 데이터 세팅 (리얼 DOM ELEMNT)\n * @param {HTMLElement} targetElement\n * @param {Object} info\n *   @param {string} info.category\n *   @param {string} info.action\n *   @param {string} info.label\n */\nexport function setGAEventSetForRealElement(targetElement, { category, action, label }) {\n  const att = setGAEventSet(category, action, label);\n\n  Object.entries(att).forEach(([key, value]) => {\n    targetElement.setAttribute(key, value);\n  });\n}\n\nexport const getLimaApiDomain = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://dev-lima.joongang.co.kr';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://stg-lima.joongang.co.kr';\n  } else if (host.match(/local-/)) {\n    // return 'https://local-lima.joongang.co.kr';\n    return 'https://stg-lima.joongang.co.kr';\n  } else if (host.match(/localhost/)) {\n    // return 'http://localhost:8081';\n    return 'https://stg-lima.joongang.co.kr';\n  }\n\n  return 'https://lima.joongang.co.kr';\n};\n\nexport const getApiDomain = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://dev-api.joongang.co.kr';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://stg-api.joongang.co.kr';\n  } else if (host.match(/local-/)) {\n    // return 'https://local-api.joongang.co.kr';\n    return 'https://stg-api.joongang.co.kr';\n  } else if (host.match(/localhost/)) {\n    // return 'http://localhost:8081';\n    return 'https://stg-api.joongang.co.kr';\n  }\n\n  return 'https://api.joongang.co.kr';\n};\n\nexport const getAccountUrl = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://dev-account.joongang.co.kr/';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://dev-account.joongang.co.kr/';\n  } else if (host.match(/local-/)) {\n    return 'https://dev-account.joongang.co.kr/';\n  } else if (host.match(/localhost/)) {\n    return 'https://dev-account.joongang.co.kr/';\n  }\n\n  return 'https://account.joongang.co.kr/';\n};\n\nexport const getDomain = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://dev-www.joongang.co.kr';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://stg-www.joongang.co.kr';\n  } else if (host.match(/local-/)) {\n    return 'https://dev-www.joongang.co.kr';\n  } else if (host.match(/localhost/)) {\n    return 'http://localhost:8081';\n  }\n\n  return 'https://www.joongang.co.kr';\n};\n\nexport const getPdsDomain = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://dev-pds.joongang.co.kr';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://stg-pds.joongang.co.kr';\n  } else if (host.match(/local-/)) {\n    return 'https://dev-pds.oongang.co.kr';\n  } else if (host.match(/localhost/)) {\n    return 'https://pds.joongang.co.kr';\n  }\n\n  return 'https://pds.joongang.co.kr';\n};\n\nexport const getDomainEnv = () => {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'dev';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'stg';\n  } else if (host.match(/local-/)) {\n    return 'local';\n  } else if (host.match(/localhost/)) {\n    return 'localhost';\n  }\n\n  return 'production';\n};\n\nexport const isLocal = () => {\n  const host = location.host || '';\n\n  if (host.match(/local-/) || host.match(/localhost/)) {\n    return true;\n  }\n  return false;\n};\n\nexport function getPageType() {\n  const { pathname } = location;\n  const regexps = [\n    {\n      key: 'isCurationHomePage',\n      value: /^\\/plus\\/curation\\/[0-9]+/,\n    },\n    {\n      key: 'isCurationPage',\n      value: /^\\/plus\\/curation/,\n    },\n    {\n      key: 'isSeriesHomePage',\n      value: /^\\/plus\\/series\\/[0-9]+/,\n    },\n    {\n      key: 'isSeriesPage',\n      value: /^\\/plus\\/series/,\n    },\n    {\n      key: 'isKeywordPage',\n      value: /^\\/plus\\/word/,\n    },\n    {\n      key: 'isPdfPage',\n      value: /^\\/pdf/,\n    },\n    {\n      key: 'isSearchPage',\n      value: /^\\/search/,\n    },\n    {\n      key: 'isArticlePage',\n      value: /^\\/article/,\n    },\n    {\n      key: 'isNewsletterPage',\n      value: /^\\/newsletter/,\n    },\n    {\n      key: 'isAtoZPage',\n      value: /^\\/atoz/,\n    },\n    {\n      key: 'isReadPlus',\n      value: /^\\/plus\\/readplus/,\n    },\n    {\n      key: 'isGuideEventPage',\n      value: /^\\/plus\\/guides\\/event/,\n    },\n    {\n      key: 'isGuideB2BPage',\n      value: /^\\/plus\\/guides\\/b2b/,\n    },\n    {\n      key: 'isGuidePage',\n      value: /^\\/plus\\/guides/,\n    },\n    {\n      key: 'isContentPage',\n      value: /^\\/plus\\/contents/,\n    },\n    {\n      key: 'isPlusHomePage',\n      value: /^\\/plus/,\n    },\n    {\n      key: 'isHomePage',\n      value: /^\\/$/,\n    },\n  ];\n\n  const findItem = regexps.find(({ value }) => value.test(pathname));\n\n  return findItem?.key;\n}\n\nexport function getPageName(payFlag) {\n  const pageType = getPageType();\n\n  return (\n    {\n      isCurationHomePage: 'area:중앙플러스|큐레이션',\n      isCurationPage: 'area:중앙플러스|큐레이션 모아보기',\n      isSeriesHomePage: 'area:중앙플러스|시리즈',\n      isSeriesPage: 'area:중앙플러스|전체 시리즈',\n      isContentPage: 'area:중앙플러스|전체 콘텐트',\n      isKeywordPage: 'area:중앙플러스|키워드',\n      isPdfPage: 'area:중앙플러스|PDF',\n      isSearchPage: 'area:중앙|검색결과',\n      isArticlePage: `area:${payFlag === 'Y' ? '중앙플러스' : '중앙'}|아티클`,\n      isNewsletterPage: `area:${payFlag === 'Y' ? '중앙플러스' : '중앙'}|뉴스레터`,\n      isAtoZPage: `area:${payFlag === 'Y' ? '중앙플러스' : '중앙'}|AtoZ`,\n      isPlusHomePage: 'area:중앙플러스|홈',\n      isHomePage: 'area:중앙|홈',\n      isReadPlus: 'area:중앙플러스|READ Plus',\n      isGuidePage: 'area:중앙플러스|서비스 활용 가이드',\n      isGuideEventPage: 'area:중앙플러스|이벤트',\n      isGuideB2BPage: 'area:중앙플러스|단체 구독 서비스',\n    }[pageType] || 'area:중앙'\n  );\n}\n\nexport function calculateNeedVersionup(appVersion) {\n  if (!appVersion) {\n    return false;\n  }\n\n  let needVersionUp = false;\n\n  const compareVersionList = APP_PDF_DOWNLOAD_COMPARE_VERSION.split('.').map(item => Number(item));\n  const appVersionList = appVersion.split('.').map(item => Number(item));\n\n  if (appVersionList.length && compareVersionList.length) {\n    let index = 0;\n    for (const item of appVersionList) {\n      const compareItem = compareVersionList[index];\n\n      if (item < compareItem) {\n        needVersionUp = true;\n        break;\n      } else if (item > compareItem) {\n        needVersionUp = false;\n        break;\n      } else {\n        needVersionUp = false;\n      }\n\n      index += 1;\n    }\n  }\n\n  return needVersionUp;\n}\n\nexport function getAppInfoFromUserAgent() {\n  const IS_APP = /joongangilbo/.test(navigator.userAgent.toLowerCase());\n  const userAgent = navigator.userAgent.toLowerCase();\n  // const IS_APP = true;\n  // const userAgent =\n  // 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 joongangilbo/ios/7.4.0/';\n\n  const matchAppInfo = userAgent.match(/.*joongangilbo\\/(.*)\\/([.0-9]+).*$/);\n\n  if (IS_APP && matchAppInfo) {\n    const [, os, appVersion] = matchAppInfo;\n\n    return { os, appVersion };\n  }\n\n  return { os: null, appVersion: null };\n}\n\n/**\n * 레이어 열렸을땐 body 스크롤 동작 제거\n * 닫을땐 add 열을땐 remove\n */\nexport function toggleScroll(type) {\n  // JAPLUS22-389 : 태블릿, 모바일 환경일 경우에만 html 태그에 overflow_hidden 클래스 추가 (22.10.19 수정)\n  const isMobile = ['tablet', 'mobile'].includes(pageType?.current);\n\n  if (type === 'add') {\n    if (isMobile) {\n      document.documentElement.classList.remove('overflow_hidden');\n    }\n\n    const searchLayerDisplay =\n      document.getElementById('layer_search') !== null\n        ? window.getComputedStyle(document.getElementById('layer_search')).display\n        : '';\n\n    if (searchLayerDisplay !== 'block') {\n      // 검색 레이어가 떠 있는 경우에는 overflow_hidden 클래스 유지함. 현재로써는 공통으로 처리할 로직을 찾기 어려워 일단은 검색 레이어에 대해서만 대응.\n      document.body.classList.remove('overflow_hidden');\n    }\n  } else {\n    if (isMobile) {\n      document.documentElement.classList.add('overflow_hidden');\n    }\n    document.body.classList.add('overflow_hidden');\n  }\n}\n\n/**\n * 중앙앱 내에 하단 툴바 강제로 내리는 함수\n */\nexport function scrollByAppToolBarPositionFix() {\n  setTimeout(() => {\n    location.href = `joongangilbo://toolbar/hide`;\n  }, 100);\n}\n\nexport function getToolbarHeightForIos() {\n  let appMenuHeight = 50;\n\n  // eslint-disable-next-line\n  const appMenuHeightString = getCookie(COOKIE_NAME?.APP_MENU_HEIGHT);\n  if (appMenuHeightString) {\n    appMenuHeight = Number(appMenuHeightString);\n  }\n\n  return appMenuHeight;\n}\n\n/**\n * 카드에 도메인 붙여주는 함수\n * @param relLink\n * @returns {string|*}\n */\nexport function makeLink(relLink) {\n  return !isEmpty2(relLink) && relLink.startsWith('/') ? `${getDomain()}${relLink}` : relLink;\n}\n\n/**\n * fetch시 지정된 시간동안 응답 없을시 abort 처리를 위한 함수\n * @param time - 밀리세컨드 초\n */\nexport function fetchTimeoutController(time) {\n  const controller = new AbortController();\n\n  setTimeout(() => controller.abort(), time);\n\n  return controller;\n}\n\n/**\n * 인저로 받은 엘리먼트가 브라우저 뷰포트상에 노출되도록 스크롤을 이동시킨다.\n * @param targetElement {HTMLElement}\n */\nexport function moveAnchor({ targetElement, fixedHeight }) {\n  const { top } = targetElement.getBoundingClientRect();\n  const { scrollTop } = document.documentElement;\n  let newScrollTop = scrollTop + top;\n\n  if (fixedHeight) {\n    newScrollTop += fixedHeight;\n  }\n\n  window.scrollTo({ top: newScrollTop });\n}\n\nexport function unuseBrowserScrollRestoration() {\n  if ('scrollRestoration' in history) {\n    history.scrollRestoration = 'manual';\n  }\n}\n\nexport function autoBrowserScrollRestoration() {\n  if ('scrollRestoration' in history) {\n    history.scrollRestoration = 'auto';\n  }\n}\n\n/**\n * 토글 클래스\n * @param {HTMLElement} target 타겟 엘리먼트\n * @param {string} className toggle 될 클래스명\n */\nexport const toggleClass = (target, className) => {\n  target.classList.contains(className) ? target.classList.remove(className) : target.classList.add(className);\n};\n\nexport const updateMyFavoStatus = (multiYn, items) => {\n  if (!window.myFavoList) {\n    return;\n  }\n\n  if (multiYn === 'N') {\n    // 한개의 데이터 업데이트\n    const { FAVO_TYPE, FAVO_ID, USED_YN } = items;\n\n    if (USED_YN === 'Y') {\n      window.myFavoList[FAVO_TYPE].push(FAVO_ID);\n    } else {\n      const index = window.myFavoList[FAVO_TYPE].indexOf(FAVO_ID);\n      if (index !== -1) {\n        window.myFavoList[FAVO_TYPE].splice(index, 1);\n      }\n    }\n  } else {\n    // multy_yn === 'Y' // 여러개의 데이터 업데이트, 여러개인 경우는 토픽만 사용\n    window.myFavoList.T.length = 0;\n    window.myFavoList.T = [...items];\n  }\n};\n\nexport function objectFlip(obj) {\n  return Object.entries(obj).reduce((ret, entry) => {\n    const [key, value] = entry;\n    ret[value] = key;\n\n    return ret;\n  }, {});\n}\n","const replaceHTMLTag = text => {\n  return text?.replace(/(<([^>]+)>)/gi, '');\n};\n\nexport const StringUtils = {\n  replaceHTMLTag,\n};\n\nexport function getPdsDomain() {\n  const host = location.host || '';\n\n  if (host.indexOf('dev-') === 0) {\n    return 'https://stg-pds.joongang.co.kr';\n  } else if (host.indexOf('stg-') === 0) {\n    return 'https://stg-pds.joongang.co.kr';\n  } else if (host.match(/local-/)) {\n    return 'https://dev-pds.oongang.co.kr';\n  } else if (host.match(/localhost/)) {\n    return 'https://pds.joongang.co.kr';\n  }\n\n  return 'https://pds.joongang.co.kr';\n}\n\nexport function makeImgUrl(pathString) {\n  if (!pathString) {\n    return '';\n  }\n  if (!pathString.match(/^http/)) {\n    return getPdsDomain() + pathString;\n  }\n\n  return pathString;\n}\n\n/**\n * YYYYMMDD 형식의 값을 new Date('YYYY/MM/DD') 형태로 반환\n *\n * @param dateString\n */\nexport const getDateString = dateString => {\n  // 년, 월, 일 추출\n  const year = dateString.substring(0, 4);\n  const month = dateString.substring(4, 6);\n  const day = dateString.substring(6, 8);\n\n  // YYYY.MM.DD 형식으로 변환\n  return new Date(`${year}/${month}/${day}`);\n};\n\n/**\n * Date 날짜 형식 값 넣어주면 YYYY.MM.DD HH:MM 형태의 스트링 포맷으로 반환하는 함수..\n *\n * @param datetime\n */\nexport const getDateTimeString = (datetime = new Date(), isShortType = false) => {\n  const date = datetime ? datetime : new Date();\n\n  const year = date.getFullYear();\n  const month = `0${1 + date.getMonth()}`.slice(-2);\n  const day = `0${date.getDate()}`.slice(-2);\n  const hour = `0${date.getHours()}`.slice(-2);\n  const minute = `0${date.getMinutes()}`.slice(-2);\n\n  if (isShortType) {\n    return `${year}.${month}.${day}`;\n  }\n\n  return `${year}.${month}.${day} ${hour}:${minute}`;\n};\n\n/**\n * 시간 문자열(YYYY-MM-DD HH:MM)값 넣어주면 방금 전, 몇분 전, 몇시간 전 그 외에는 시간 정보를 표기해주는 함수\n * 라이브 기사에서 사용\n *\n * @param stringDate\n * @param GLOBAL_SERVER_TIME - 원래 기존 대선 프로젝트에서는 별도로 SERVER 시간을 받아서 전역 세팅함.. 여기서는 일단 파라메터로 받는 방식으로 처리..\n */\nexport const getTimeAgo = (stringDate, GLOBAL_SERVER_TIME, isShortType) => {\n  try {\n    if (stringDate === '') {\n      return stringDate;\n    }\n\n    const st = new Date(stringDate.replace(/-/g, '/'));\n    let diff = ((GLOBAL_SERVER_TIME ? Date.parse(GLOBAL_SERVER_TIME) : Number(new Date())) - Number(st)) / 1000;\n    // let diff = (Number(new Date()) - Number(st)) / 1000;\n\n    if (diff < 60) {\n      return '방금 전';\n    }\n\n    diff = Math.ceil(diff / 60);\n    if (diff < 60) {\n      return `${diff}분 전`;\n    }\n\n    diff = Math.ceil(diff / 60);\n    if (diff < 24) {\n      return `${diff}시간 전`;\n    }\n\n    return getDateTimeString(st, isShortType);\n  } catch (e) {\n    console.warn('GET TIME AGO', e);\n    // Do Nothing\n  }\n\n  return stringDate;\n};\n\n/**\n * 밀리세컨드 숫자 값을 입력하면 MM:SS 또는 HH:MM:SS 형태의 시간 값으로 변환한 후, 반환.\n *\n * @param milliseconds\n * @returns {`${string}:${string}`|`${string}:${string}:${string}`}\n */\nexport const convertMillisecondsToMMSS = milliseconds => {\n  const totalSeconds = Math.floor(milliseconds / 1000);\n  const hours = Math.floor(totalSeconds / 3600);\n  const remainingSeconds = totalSeconds % 3600;\n  const minutes = Math.floor(remainingSeconds / 60);\n  const seconds = remainingSeconds % 60;\n\n  const formattedHours = String(hours).padStart(2, '0');\n  const formattedMinutes = String(minutes).padStart(2, '0');\n  const formattedSeconds = String(seconds).padStart(2, '0');\n\n  if (hours > 0) {\n    return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;\n  }\n  return `${formattedMinutes}:${formattedSeconds}`;\n};\n\nexport const liveTimeAgo = (inServiceday, inServicetime) => {\n  const serviceday = inServiceday;\n  let servicetime = inServicetime;\n  let result = servicetime;\n\n  if (serviceday && serviceday !== '') {\n    if (!servicetime || servicetime === '') {\n      servicetime = '00:00';\n    }\n    // eslint-disable-next-line prefer-template\n    const fullDateString = serviceday.replace(/\\./g, '-') + ' ' + servicetime;\n    result = window.utils.format.timeAgo(fullDateString);\n  }\n\n  return result;\n};\n\nexport const liveTime = (liveStatus, artModDt) => {\n  if (liveStatus === '0') {\n    return window.utils.format.liveTime(artModDt);\n  }\n\n  return '라이브가 종료되었습니다.';\n};\n\nexport const durationString = targetString => {\n  const targetArr = targetString.split(':');\n  const newArr = targetArr.reduce((acc, item, index) => {\n    let value = item.replace(/^0/, '');\n\n    if (index === 2 && value === '0') {\n      value = '00';\n    }\n\n    if (index === 0 && value === '0') {\n      return acc;\n    }\n\n    acc.push(value);\n\n    return acc;\n  }, []);\n\n  return newArr.join(':');\n};\n\nexport const getDaysOfWeek = targetDate => {\n  return { 0: '일', 1: '월', 2: '화', 3: '수', 4: '목', 5: '금', 6: '토' }[targetDate.getDay()];\n};\n\nexport const election2024DisplayDate = targetDate => {\n  const ddayString = `${targetDate.getMonth() + 1}.${targetDate.getDate()}(${getDaysOfWeek(targetDate)})`;\n\n  return ddayString;\n};\n\nexport function randomInteger(length) {\n  return Math.floor(Math.random() * length);\n}\n\nexport function makeDDayString() {\n  const ddayDate = new Date('2025-06-03T00:01:00');\n  // const ddayDate = new Date('2025-05-27T00:01:00');\n  const today = window.utils.serverDaytime;\n  const diffTimeOrig = (ddayDate.getTime() - today.getTime()) / 1000;\n  const ddayString = election2024DisplayDate(ddayDate);\n\n  const diffTime = Math.ceil(diffTimeOrig / (60 * 60 * 24));\n  let diffTimePrint = diffTime === 0 ? 'D-day' : `D-${diffTime}`;\n  if (diffTime < 0) {\n    diffTimePrint = '';\n  }\n\n  return {\n    diffTime: diffTimePrint,\n    ddayString,\n  };\n}\n\nexport async function displayDDay() {\n  await window.utils.getServerDaytime();\n  const { diffTime, ddayString } = makeDDayString();\n\n  const ddayElement = Array.from(document.querySelectorAll('header .d_day strong:not(.ignore)'));\n  const ddayElementForJoongangHome = Array.from(document.querySelectorAll('.election2025_wrap header .d_day'));\n\n  const ddayElements = [...ddayElement, ...ddayElementForJoongangHome];\n\n  if (ddayElements) {\n    ddayElements.forEach(element => {\n      element.innerHTML = diffTime;\n    });\n  }\n\n  const targetDateElements = document.querySelectorAll('header .d_day em');\n  if (targetDateElements) {\n    Array.from(targetDateElements).forEach(element => {\n      element.innerHTML = `선거일 ${ddayString}`;\n    });\n  }\n}\n\n/**\n * 천자리에서 콤마 추가\n * @param {number | string} data\n * @returns string\n */\nexport const comma = data => {\n  return Number(data).toLocaleString('ko-KR');\n};\n\n/**\n * stg -> dev Api 주소 변환\n * @param {string} url 변환할 주소\n * @returns string\n */\nexport const changeApiDomain = url => {\n  return url.indexOf('stg') ? url.replace('stg', 'dev') : '';\n};\n\n/**\n * url 변경시 og:url및 공유 url 변경시키는 함수\n */\nexport function shareUrlChange(rebaseUrl) {\n  const metaUrlElement = document.querySelector('meta[property=\"og:url\"]');\n\n  if (metaUrlElement) {\n    metaUrlElement.setAttribute('content', rebaseUrl);\n  }\n  window.utils.share._c.url = rebaseUrl;\n}\n\n/**\n * SPA 페이지 meta title 및 공유 타이틀 변경시키는 함수\n */\nexport function shareTitleChange(newTitle) {\n  document.title = newTitle;\n  document.querySelectorAll('meta[name$=\"title\"], meta[property$=\"title\"]').forEach(item => {\n    item.setAttribute('content', newTitle);\n  });\n\n  window.share.TITLE = newTitle;\n  window.utils.share._c.title = newTitle;\n}\n\n/**\n * SPA 페이지 meta description 변경시키는 함수\n */\nexport function shareDescChange(newDesc) {\n  document.querySelectorAll('meta[name$=\"description\"], meta[property$=\"description\"]').forEach(item => {\n    item.setAttribute('content', newDesc);\n  });\n}\n\n/**\n * 현재 도메인이 운영 도메인인지 체크\n */\nexport const isRealDomain = /^www/.test(location.hostname);\n\nexport function isEmpty(value) {\n  return value === undefined || value === null || value === '';\n}\n\n/**\n * api cacheFlag\n */\nexport function getTimeStamp(isMinute = false) {\n  const date = new Date();\n  const year = date.getFullYear();\n  const month = `0${1 + date.getMonth()}`.slice(-2);\n  const day = `0${date.getDate()}`.slice(-2);\n  const hour = `0${date.getHours()}`.slice(-2);\n  const minute = `0${date.getMinutes()}`.slice(-2);\n\n  return `${year}${month}${day}${hour}${isMinute ? minute : ''}`;\n}\n\nexport function makeStringToElement(htmlString) {\n  const wrapElement = document.createElement('div');\n  wrapElement.innerHTML = htmlString;\n\n  const elements = Array.from(wrapElement.children);\n\n  return elements.length === 1 ? elements[0] : elements;\n}\n\nexport function numberWithCommas(x) {\n  return x ? x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') : 0;\n}\n\nexport function convertNumberWithComma(num) {\n  if (!num) return 0;\n\n  return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n}\n\n/**\n * 시간 데이터를 hh:mm 형식으로 반환\n * @param {*} timeString\n * @returns string HH:MM\n */\nexport function formatTimeToHHMM(timeString) {\n  const date = new Date(timeString.replace(' ', 'T'));\n  const hours = String(date.getHours()).padStart(2, '0');\n  const minutes = String(date.getMinutes()).padStart(2, '0');\n\n  return `${hours}:${minutes}`; // hh:mm 형식으로 반환\n}\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import { useMemo, useCallback, useEffect, useState, useRef } from 'preact/hooks';\nimport { decodeHtml, decodeHtmlForGtmLabel } from '@paidPages/common/utils';\n\n/*\n * https://clipboardjs.com/\nimport { useState, useRef, useEffect, useMemo, useCallback } from 'react';\nimport Clipboard from 'react-clipboard.js';\n*/\n\nconst defaultStyle = {\n  transition: 'height 0.5s',\n  display: 'block',\n  overflow: 'hidden',\n  height: 'inherit',\n};\n\nexport function BoardArticleItem({\n  data,\n  kwd,\n  selectSeq,\n  changeSelectSeq,\n  setItemElement,\n  moveScroll,\n  routerId,\n  notifyToast,\n}) {\n  const body = useRef(null);\n  const isClickChange = useRef(false);\n  const contetentLoadTiemout = useRef(null);\n  const isSelect = useMemo(() => data.BOARD_SEQ === selectSeq, [data, selectSeq]);\n  const isAutoOpen = useMemo(() => isSelect && !isClickChange.current, [isSelect]);\n  const isAutoScroll = useMemo(() => routerId && isAutoOpen, [routerId, isAutoOpen]);\n  const [bodyStyle, setBodyStyle] = useState(defaultStyle);\n\n  /**\n   * 펼쳐진 상태로 로드되는 컨텐츠의 이미지까지 전부 로드되지 않은 상태에서 클릭이벤트 발생시 오동작 방지\n   */\n  useEffect(() => {\n    if (contetentLoadTiemout.current) {\n      clearTimeout(contetentLoadTiemout.current);\n      contetentLoadTiemout.current = null;\n    }\n  }, [selectSeq, data]);\n\n  /**\n   * 오토 스크롤 처리 및 로드시 펼쳐져야 하는 컨텐츠 이미지 로드 대기 처리\n   */\n  useEffect(() => {\n    setBodyStyle({ ...defaultStyle, ...makeItemOverrideStyle(isSelect, isClickChange.current, body.current) });\n\n    // 페이지가 로드되자마자 펼쳐져야 하는 컨텐츠는 이미지가 로드 되지 않았기 때문에,\n    // 정확한 높이를 알수가 없으므로 로드후 지연 시간을 준 후 높이를 다시 계산해줌\n    contetentLoadTiemout.current = fixAnimationHeightForInitContents(\n      setBodyStyle,\n      body.current,\n      isAutoOpen || isSelect\n    );\n\n    if (isAutoScroll) {\n      moveScroll(data.BOARD_SEQ);\n    }\n  }, [selectSeq, data, isAutoOpen, isSelect, isAutoScroll, moveScroll]);\n\n  useEffect(() => {\n    //  사용법 (https://clipboardjs.com/)\n    const clipboard = new window.ClipboardJS('.clipboardButton');\n    clipboard.on('success', () => {\n      /*\n      console.info('Action:', e.action);\n      console.info('Text:', e.text);\n      console.info('Trigger:', e.trigger);\n      e.clearSelection();\n      */\n      notifyToast(`URL이 복사되었습니다.<br/>공유하고 싶은 곳에 붙여 넣어보세요.`);\n    });\n  }, []);\n\n  const headerEl = useCallback(node => setItemElement(data.BOARD_SEQ, node), [data, setItemElement]);\n\n  const toggleItem = seq => {\n    isClickChange.current = true;\n    changeSelectSeq(seq === selectSeq ? 0 : seq);\n  };\n\n  if (!data) {\n    return null;\n  }\n\n  const createMarkup = (htmlCode, kwd) => ({\n    __html: replaceTextKwd(htmlCode, kwd),\n  });\n\n  const { origin, pathname } = window.location;\n  const url = origin + pathname;\n\n  return (\n    <li className=\"accordion_item\" id={`accordion_${data.BOARD_SEQ}`}>\n      <div className=\"accordion_header\" ref={headerEl}>\n        <h2 className=\"headline\">\n          <button\n            type=\"button\"\n            className=\"accordion_button\"\n            onClick={() => toggleItem(data.BOARD_SEQ)}\n            data-evnt-ctg=\"area:중앙|대선2025\"\n            data-evnt-act=\"click:대선2025-FAQ\"\n            data-evnt-lbl={decodeHtmlForGtmLabel(data.TITLE)}\n            aria-controls=\"accordion1\"\n            aria-expanded={isSelect ? 'true' : 'false'}\n          >\n            <div dangerouslySetInnerHTML={createTitle(data, kwd)} />\n            <i className=\"ico ico_arrow_down\" aria-hidden=\"false\">\n              <span className=\"visually_hidden\">게시물본문보기</span>\n            </i>\n          </button>\n        </h2>\n      </div>\n      <div id=\"accordion1\" className=\"accordion_body\" ref={body} style={bodyStyle}>\n        <button\n          data-clipboard-text={`${url}?id=${data.BOARD_SEQ}`}\n          className=\"btn_link clipboardButton\"\n          button-title=\"link_copy\"\n          data-evnt-ctg=\"area:중앙|대선2025\"\n          data-evnt-act=\"click: 대선2025-FAQ-urlcopy\"\n          data-evnt-lbl={decodeHtmlForGtmLabel(data.TITLE)}\n          onClick={notifyToast}\n        >\n          <i className=\"ico_link\">\n            <span className=\"visually_hidden\">link_copy</span>\n          </i>\n        </button>\n\n        {/* <button className=\"clipboardButton\" data-clipboard-text={`${url}?id=${data.BOARD_SEQ}`}>\n          Copy to clipboard\n        </button> */}\n        <div dangerouslySetInnerHTML={createMarkup(data.CONTENT, kwd)} />\n      </div>\n    </li>\n  );\n}\n\nfunction makeItemOverrideStyle(isSelect, isClickChange, contentsElement) {\n  const contentsTopBottomMargin = 52;\n  return isSelect\n    ? { height: isClickChange ? `${contentsElement.scrollHeight + contentsTopBottomMargin}px` : 'inherit' }\n    : { height: '0', paddingTop: '0', paddingBottom: '0' };\n}\n\nfunction fixAnimationHeightForInitContents(setBodyStyle, contentsElement, isAutoOpen) {\n  return setTimeout(() => {\n    if (isAutoOpen) {\n      setBodyStyle({\n        ...defaultStyle,\n        height: `${contentsElement.scrollHeight}px`,\n      });\n    }\n  }, 1000);\n}\n\nfunction replaceTextKwdForTitle(htmlString, kwd) {\n  const replaceKwd = kwd.replace(/&|;|<|>/g, '');\n  const replaceExp = new RegExp(`${replaceKwd}`, 'gs');\n\n  return kwd\n    ? htmlString.replace(\n        replaceExp,\n        `<em style=\"color:#f6330a; word-break: keep-all; display: contents\">${replaceKwd}</em>`\n      )\n    : htmlString;\n}\n\nfunction replaceTextKwd(htmlString, kwd) {\n  const replaceKwd = kwd.replace(/&|;|<|>/g, '');\n  const replaceExp = new RegExp(`${replaceKwd}(?=[^<>]*?(<|$))`, 'gs');\n\n  return replaceKwd\n    ? htmlString.replace(\n        replaceExp,\n        `<em style=\"color:#f6330a; word-break: keep-all; display: contents\">${replaceKwd}</em>`\n      )\n    : htmlString;\n}\n\nfunction createTitle(data, kwd) {\n  // const ordNo = typeof data.ORD_NO === 'number' ? data.ORD_NO + 1 : data.ORD_NO;\n  const rowNum = data.ROWNUM;\n  const replacedTitle = replaceTextKwdForTitle(decodeHtml(data.TITLE), kwd);\n\n  return {\n    __html: `<span class=\"number\">${rowNum}</span> ${replacedTitle}`,\n  };\n}\n","import { render } from 'preact';\nimport { useState, useRef, useEffect } from 'preact/hooks';\nimport { getFaqList } from '@election2025/faq/api/request';\nimport { BoardArticleItem } from '@election2025/faq/BoardArticleItem';\nimport { displayDDay } from '@election2025/utils/stringUtils';\n\n// https://api.joongang.co.kr/moka_api/bbs.info?id=237\nexport default async function election2025Faq() {\n  await displayDDay();\n\n  const faqListElement = document.getElementById('faq-list');\n  render(<Faq />, faqListElement);\n}\n\nfunction Faq() {\n  const init = useRef(true);\n  const inputIns = useRef();\n  const boardBody = useRef(null);\n  const elements = useRef({});\n  const [isLoading, setIsLoading] = useState(false);\n  const [kwd, setKeyword] = useState('');\n  const [issue, setIssue] = useState([]);\n  const [inputString, setInputString] = useState(kwd);\n  const queryParams = new URLSearchParams(window.location.search);\n\n  // const routerId = queryParams.has('id') ? parseInt(queryParams.get('id')) : init.current || kwd ? 0 : null;\n  const routerId = init.current || kwd ? 0 : Number(queryParams.get('id'));\n\n  const [selectSeq, setSelectSeq] = useState(routerId || issue[0]?.BOARD_SEQ);\n\n  const fetchIssue = () => {\n    setIsLoading(true);\n    getFaqList(kwd).then(listData => {\n      const issue = listData?._DATA || [];\n      setIssue(issue);\n      setIsLoading(false);\n    });\n  };\n\n  useEffect(() => {\n    init.current = false;\n  }, []);\n\n  useEffect(() => {\n    fetchIssue();\n  }, [kwd]);\n\n  useEffect(() => {\n    setSelectSeq(routerId || issue[0]?.BOARD_SEQ);\n  }, [issue, routerId]);\n\n  const search = event => {\n    event.preventDefault();\n    init.current = true;\n    setKeyword(event.target.search.value);\n  };\n\n  const searchCancel = () => {\n    setKeyword('');\n    setInputString('');\n  };\n\n  const moveScroll = seq => {\n    return setTimeout(() => {\n      const movePosition = calculateScrollMovePosition(issue, seq, elements.current);\n      window.scrollTo({ top: movePosition, behavior: 'smooth' });\n    }, 100);\n  };\n\n  const notifyToast = message => {\n    window.messageUtil.toast({ message });\n  };\n\n  const changeSelectSeq = seq => {\n    setSelectSeq(seq);\n\n    if (seq) {\n      moveScroll(seq);\n    }\n  };\n\n  const setItemElement = (key, node) => {\n    elements.current[key] = node;\n  };\n\n  return (\n    <div className=\"row\">\n      <section className=\"col_lg9 board_list\">\n        {/* {dataBoardInfo ? (\n          <header className=\"chain_title_wrap\">\n            <h1 className=\"title\">{dataBoardInfo.BOARD_NAME}</h1>\n            <p className=\"description\">{dataBoardInfo.BOARD_DESC}</p>\n          </header>\n        ) : null} */}\n        {isLoading ? (\n          <div className=\"button_wrap_wide\" style={{ marginTop: '20px' }}>\n            <button type=\"button\" className=\"btn btn_outline_gray\">\n              불러오는 중...\n            </button>\n          </div>\n        ) : (\n          <>\n            <div className=\"board_head\">\n              <p class=\"description\">2025년 21대 대통령선거 궁금증을 풀어 드립니다.</p>\n              <div className=\"list_option_area flex_sm_col_reverse\">\n                <p className=\"all_count\">총 {issue.length}개</p>\n                <form className=\"search_form\" style={{ display: 'block' }} onSubmit={search}>\n                  <div className=\"input_group\">\n                    <input\n                      name=\"search\"\n                      type=\"search\"\n                      className=\"form_control\"\n                      placeholder=\"검색어를 입력해주세요.\"\n                      title=\"검색어를 입력해주세요.\"\n                      ref={inputIns}\n                      onChange={event => setInputString(event.target.value)}\n                      value={inputString}\n                    />\n                    {inputString.replace(/ /g, '') ? (\n                      <button className=\"btn_clear\" type=\"button\" onClick={searchCancel}>\n                        <i className=\"ico_clear\" />\n                        <span className=\"visually_hidden\">검색어 지우기</span>\n                      </button>\n                    ) : null}\n                    <button type=\"submit\" className=\"btn_search\">\n                      <i className=\"ico_search\" />\n                      <span className=\"visually_hidden\">검색</span>\n                    </button>\n                  </div>\n                </form>\n              </div>\n            </div>\n            <div className=\"board_body\" ref={boardBody}>\n              <ul className=\"accordion\">\n                {issue.map(item => (\n                  <BoardArticleItem\n                    key={item.BOARD_SEQ}\n                    data={item}\n                    kwd={kwd}\n                    selectSeq={selectSeq}\n                    changeSelectSeq={changeSelectSeq}\n                    setItemElement={setItemElement}\n                    moveScroll={moveScroll}\n                    routerId={routerId}\n                    notifyToast={notifyToast}\n                  />\n                ))}\n              </ul>\n            </div>\n            {/* <div class=\"board_foot\">\n              <div class=\"button_wrap_wide\">\n                <button type=\"button\" class=\"btn btn_outline_gray\">\n                  더 보기\n                </button>\n              </div>\n            </div> */}\n          </>\n        )}\n      </section>\n    </div>\n  );\n}\n\nfunction calculateScrollMovePosition(issue, seq, elements) {\n  let sumHeight = 0;\n\n  for (const item of issue) {\n    if (item.BOARD_SEQ === seq) {\n      break;\n    }\n\n    if (elements[item.BOARD_SEQ]) {\n      sumHeight += elements[item.BOARD_SEQ].offsetHeight + 1;\n    }\n  }\n\n  const scrollTop = window.scrollY || document.documentElement.scrollTop;\n  const boardBody = document.querySelector('.board_body');\n  const bodyTop = boardBody ? boardBody.getBoundingClientRect().top + scrollTop : 0;\n  const headerHeight = document.querySelector('.header').offsetHeight || 0;\n  return bodyTop - headerHeight + sumHeight;\n}\n","import { fetchTimeoutController } from '@paidPages/common/utils';\nimport { isRealDomain } from '@election2025/utils/stringUtils';\n\n/**\n * FAQ LIST\n */\nexport function getFaqList(kwd = '') {\n  // https://api.joongang.co.kr/moka_api/bbs.info?id=237\n  // const domainValue = getApiDomain();\n  //\n  // const url = 'https://api.joongang.co.kr/moka_api/bbs?id=election2025faq&kwd=&count=50&page=1';\n  const url = isRealDomain\n    ? `https://api.joongang.co.kr/moka_api/bbs?id=election2025faq&kwd=${kwd}&count=50&page=1`\n    : `https://stg-api.joongang.co.kr/moka_api/bbs?id=election2025faq&kwd=${kwd}&count=50&page=1`;\n\n  const result = fetch(url, {\n    method: 'GET',\n    credentials: 'include',\n    signal: fetchTimeoutController(10 * 1000).signal,\n  })\n    .then(response => response.json())\n    .catch(error => {\n      throw new Error('getNewsList Api', error);\n    });\n\n  return result;\n}\n\n/**\n * FAQ INFO\n */\nexport function getFaqInfo() {\n  const url = isRealDomain\n    ? 'https://api.joongang.co.kr/moka_api/bbs.info?id=243'\n    : 'https://stg-api.joongang.co.kr/moka_api/bbs.info?id=243';\n\n  const result = fetch(url, {\n    method: 'GET',\n    credentials: 'include',\n    signal: fetchTimeoutController(10 * 1000).signal,\n  })\n    .then(response => response.json())\n    .catch(error => {\n      throw new Error('getNewsList Api', error);\n    });\n\n  return result;\n}\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","n","u","i","f","c","s","a","p","v","y","w","Array","isArray","d","l","g","parentNode","removeChild","m","t","r","e","type","props","ref","__k","__","__b","__e","__c","constructor","__v","__i","__u","vnode","k","children","x","this","context","S","length","C","base","M","__d","push","$","__r","debounceRendering","sort","shift","__P","O","__n","namespaceURI","z","I","h","_","P","q","A","nextSibling","String","L","B","contains","insertBefore","nodeType","T","setProperty","test","j","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","F","event","b","H","render","contextType","value","__E","D","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","some","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","N","then","indexOf","V","diffed","map","localName","document","createTextNode","createElementNS","is","__m","data","childNodes","attributes","name","__html","innerHTML","content","current","unmount","componentWillUnmount","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","bind","resolve","setTimeout","__H","__N","__f","filter","every","forEach","requestAnimationFrame","clearTimeout","cancelAnimationFrame","keys","Q","G","R","decodeHtml","htmlString","nl2br","arguments","undefined","asciiDecodedHtml","match","capture","charCode","fromCharCode","decodeHtmlForGtmLabel","fetchTimeoutController","time","controller","AbortController","abort","election2024DisplayDate","targetDate","getMonth","getDate","getDay","getDaysOfWeek","isRealDomain","location","hostname","__source","__self","defaultProps","defaultStyle","transition","display","overflow","height","BoardArticleItem","_ref","kwd","selectSeq","changeSelectSeq","setItemElement","moveScroll","routerId","notifyToast","body","useRef","isClickChange","contetentLoadTiemout","isSelect","useMemo","BOARD_SEQ","isAutoOpen","isAutoScroll","bodyStyle","setBodyStyle","useState","useEffect","makeItemOverrideStyle","contentsElement","scrollHeight","fixAnimationHeightForInitContents","window","ClipboardJS","on","headerEl","useCallback","node","origin","pathname","url","_jsxs","className","id","_jsx","onClick","toggleItem","seq","TITLE","dangerouslySetInnerHTML","createTitle","createMarkup","htmlCode","replaceTextKwd","CONTENT","paddingTop","paddingBottom","replaceKwd","replaceExp","RegExp","rowNum","ROWNUM","replacedTitle","replaceTextKwdForTitle","async","election2025Faq","utils","getServerDaytime","diffTime","ddayString","ddayDate","Date","today","serverDaytime","diffTimeOrig","getTime","Math","ceil","diffTimePrint","makeDDayString","ddayElements","from","querySelectorAll","element","targetDateElements","displayDDay","faqListElement","getElementById","documentElement","firstChild","Faq","init","inputIns","boardBody","elements","isLoading","setIsLoading","setKeyword","issue","setIssue","inputString","setInputString","queryParams","URLSearchParams","search","Number","setSelectSeq","fetch","method","credentials","signal","response","json","catch","error","Error","getFaqList","listData","_DATA","movePosition","sumHeight","item","offsetHeight","scrollTop","scrollY","querySelector","getBoundingClientRect","top","calculateScrollMovePosition","scrollTo","behavior","message","messageUtil","toast","marginTop","_Fragment","class","onSubmit","preventDefault","target","placeholder","title","onChange","searchCancel"],"sourceRoot":""}