1import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{w as t}from"./vendor-Dlkm7nrb.js";import{o as n,t as r}from"./GA4EcommerceEvent-BIdU0jJF.js";import{t as i}from"./PaymentStatus-BIRcJ_rx.js";var a=e(t()),o=class e{static GA4_FROM_LS_KEY=`EC1`;static GA4_SEGMENT_LS_KEY=`EC_SEG`;static clickedElements=new Set;static _logEnabled=(()=>{try{return new URLSearchParams(window.location.search).get(`showLog`)===`true`}catch{return!1}})();static _log(...t){e._logEnabled}static EVENT_PURCHASE=`purchase`;static EVENT_NAME_NO_POINT_MODAL_PREFIX=`0ç©å_MODAL`;static initEvents(){e._mountEventListeners()}static _mountEventListeners(){e._mountViewableEventListeners(),e._mountClickedEventListeners(),e._mountOfferPageABTestFlagListener()}static _mountViewableEventListeners(){let t=new Set;e.observeViewportThreshold(`ga_js_viewable`,.3,(n,r)=>{if(r&&!t.has(n)){let r=(0,a.default)(n),i=r.data(`ga4-event-name`);if(!i||/(^|_)(undefined|null)(_|$)/.test(String(i)))return;t.add(n);let o=e._readModalSegmentParams(n);e.sendGA4CustomEvent(i,o);let s=e._buildAbEventName(i,r.data(`ab-issue`),r.data(`ab-test-group`));s&&e.sendGA4CustomEvent(s,o)}})}static _buildAbEventName(e,t,n){return!e||!t||!n||!/^0ç©å_MODAL/.test(e)?null:e.replace(/^0ç©å_MODAL/,`AB_${t}`)+`_${n}`}static _mountClickedEventListeners(){(0,a.default)(`body`).on(`click`,`.ga_js_click`,t=>{let{ga4EventName:n,abTestGroup:r}=(0,a.default)(t.currentTarget).data();e._executeGA4EventBeforeRedirect(t,()=>{if(!n||/(^|_)(undefined|null)(_|$)/.test(String(n)))return;e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - _executeGA4EventBeforeRedirect ===`,{ga4EventName:n,abTestGroup:r});let i=r!=null&&r!==``?`${n}_${r}`:`${n}`,a=e._readModalSegmentParams(t.currentTarget);e.setEcommerceActionFrom(i),e.setEcommerceSegment(a),e.sendGA4CustomEvent(i,a)})})}static getEcommerceActionFrom(){return sessionStorage.getItem(e.GA4_FROM_LS_KEY)}static setEcommerceActionFrom(t=``){sessionStorage.setItem(e.GA4_FROM_LS_KEY,t)}static observeViewportThreshold(e,t=.8,n=null){if(!e||typeof e!=`string`)return null;let r=e.replace(/^\./,``),i=new Set,a=new IntersectionObserver(e=>{e.forEach(e=>{let r=e.target,a=i.has(r),o=e.intersectionRatio>=t;o?i.add(r):i.delete(r),n&&a!==o&&n(r,o,e.intersectionRatio)})},{threshold:[0,t],root:null});document.querySelectorAll(`.${r}`).forEach(e=>{a.observe(e)});let o=new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE){e.classList&&e.classList.contains(r)&&a.observe(e);let t=e.querySelectorAll&&e.querySelectorAll(`.${r}`);t&&t.forEach(e=>{a.observe(e)})}})})});return o.observe(document.body,{childList:!0,subtree:!0}),{visibleElements:i,observer:a,mutationObserver:o,cleanup:()=>{a.disconnect(),o&&o.disconnect(),i.clear()}}}static _executeGA4EventBeforeRedirect(t,n,r=!1){let i=(0,a.default)(t.currentTarget),o=``,s=i.prop(`tagName`).toLowerCase(),c=s===`a`&&!!i.attr(`href`);if(s===`a`?o=i.attr(`href`)||i.data(`href`):s===`button`&&(o=i.data(`href`),e._log(o)),o){let e=new URL(o,window.location.href);(i.data(`ga4-event-name`)||r)&&e.searchParams.set(`send_ab_test`,`true`),o=e.href}if(c){i.attr(`href`,o),n();return}t.preventDefault(),n(),o&&(window.location.href=o)}static sendGA4CustomEvent(t,n={}){let r=typeof t==`string`?t.trim():``;if(!r||r.length>40||!/^[A-Za-z0-9_ä¸-é¾¥]+$/.test(r)||/(^|_)(undefined|null)(_|$)/.test(r))return;e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - sendGA4CustomEvent - eventName ===`,r,n),window.dataLayer=window.dataLayer||[];let i={event:r};Object.entries(n||{}).forEach(([e,t])=>{t==null||t===``||(i[e]=t)}),window.dataLayer.push(i)}static _readModalSegmentParams(e){let t=(0,a.default)(e).closest(`[data-ga4-is-high-value-user]`);return t.length?{is_high_value_user:t.data(`ga4-is-high-value-user`)}:{}}static setEcommerceSegment(t={}){let n={};if(Object.entries(t).forEach(([e,t])=>{t==null||t===``||(n[e]=t)}),Object.keys(n).length)try{sessionStorage.setItem(e.GA4_SEGMENT_LS_KEY,JSON.stringify(n))}catch(t){e._log(`=== GA4 - setEcommerceSegment - skip ===`,t)}}static getEcommerceSegment(){try{let t=sessionStorage.getItem(e.GA4_SEGMENT_LS_KEY);return t?JSON.parse(t):{}}catch{return{}}}
1static getUrlParams(e=``,t=window.location.search){let n=new URLSearchParams(t).get(e);return n===`true`?!0:n===`false`?!1:n}static offerPageUrlHasABTestFlag(){return!!e.getUrlParams(`send_ab_test`,window.location.search)}static shouldSendGA4PurchaseEvent(){let t=e.offerPageUrlHasABTestFlag(),n=document.referrer;if(n){let r=new URL(n).searchParams.get(`send_ab_test`)===`true`;if(e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - shouldSendGA4PurchaseEvent - urlHasKey ===`,{urlHasKey:t,previousUrlHasKey:r}),t||r)return!0}return!1}static getABTestNameFromFrom(e=``){let t=(0,a.default)(`.ga_js_ab_test_offer_flag`).data(`name`);if(t)return t;if(e&&e.includes(`AB_`)){let t=e.match(/^AB_(\d+)_/);if(t)return t[1]}return null}static GTagPurchase(t=null){let n=e.shouldSendGA4PurchaseEvent();if(e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - GTagPurchase - shouldSendGA4PurchaseEvent ===`,n),!n)return;let r=e.getEcommerceActionFrom();if(e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - GTagPurchase - from ===`,r),!r)return;let i=e.getEcommerceSegment(),a=t||e.getUrlParams(`product`),o=e.getPurchaseProductName(a),s=e.getABTestNameFromFrom(r),c;c=r.includes(`0ç©å_MODAL_`)?r.replace(`0ç©å_MODAL_`,`0ç©å_MODAL_è³¼è²·ä¾æº_`):s&&r.includes(`AB_${s}_`)?r.replace(`AB_${s}_`,`AB_${s}_è³¼è²·ä¾æº_`):r.replace(`AB_`,`AB_購買_${o}_便º_`),c===r&&(c=`è³¼è²·ä¾æº_${r}`),e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - GTagPurchase - eventName ===`,c);let l={event:c};Object.entries(i).forEach(([e,t])=>{t==null||t===``||(l[e]=t)}),window.dataLayer.push(l),e.setEcommerceActionFrom(``),sessionStorage.removeItem(e.GA4_SEGMENT_LS_KEY)}static getPurchaseProductName(t=null){let n=t||e.getUrlParams(`product`);switch(n){case`subscribe_Ai_VIP_interview_6_months_set`:return`VIP`;case`subscribe_Ai_VIP_PRO_interview_12_months_set`:return`PRO`;case`interview_badge_100_3_months_set`:return`ç©å`;default:return n||`unknown_product`}}static getProductId(e){switch(e){case`VIP`:return n.VIP.productId;case`PRO`:return n.PRO.productId;case`ç©å`:return n.BADGE.productId;default:return`missing_data_product_name`}}static _mountOfferPageABTestFlagListener(){(0,a.default)(`body`).on(`click`,`.ga_js_offer_buy_btn`,t=>{let n=(0,a.default)(t.currentTarget),{productName:o}=n.data();if(o===`ç©å`){let e=document.querySelector(`.iw_js-payment-count`).value??100;i.setPaymentStatusForBadge(e)}let{from:s}=n.data();e._executeGA4EventBeforeRedirect(t,()=>{let t=(0,a.default)(`.ga_js_ab_test_offer_flag`),n=t.val()??``,i=t.data(`name`);if(n&&n.trim()!==``&&i){let t=`AB_${i}_é»æè³¼è²·_${o}_${n}`;e._log(`\x1B[33m%s\x1B[0m`,`=== GA4 - Offer Buy Button - AB Test Event ===`,{fullName:t,abTestFlag:n,abTestName:i,productName:o}),e.setEcommerceActionFrom(t),e.sendGA4CustomEvent(t)}let c=e.getProductId(o);r.GtagSelectItem(c,1,s)},!0)})}};export{o as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.