PageSourceSearch

https://www.ttcs.org.tw/_next/static/chunks/0ep-g.wcv6~m0.js

js ttcs.org.tw collected 2026-09-25 01:11:07 UTC 134,058 bytes, 92 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,648443,e=>{"use strict";var t=e.i(23995),n=e.i(498232),i=e.i(586211);e.s(["PublicIntlProvider",0,function({locale:e,messages:a,children:r}){return(0,t.jsx)(n.NextIntlClientProvider,{locale:e,messages:a,onError:e=>{e.code===i.IntlErrorCode.MISSING_MESSAGE?console.error("[i18n] 公開頁缺少訊息(字典可能被裁掉):",e.message):console.error(e)},children:r})}])},789090,e=>{"use strict";var t=e.i(647083);let n={"commerce:products":{label:"商品列表",isDynamic:!0},articles:{label:"文章列表",isDynamic:!0},portfolio:{label:"作品集",isDynamic:!0},"cms:events":{label:"活動",isDynamic:!0},courses:{label:"課程列表",isDynamic:!0},forms:{label:"表單",isDynamic:!0},"team-members":{label:"團隊成員",isDynamic:!1},faqs:{label:"FAQ 列表",isDynamic:!1},testimonials:{label:"推薦詞",isDynamic:!1},events:{label:"活動列表",isDynamic:!1},services:{label:"服務項目",isDynamic:!1},partners:{label:"合作夥伴",isDynamic:!1},"case-studies":{label:"案例展示",isDynamic:!1}},i="#3b82f6";function a(e){let t=[],n=e,i=0;for(;n&&i<5&&n!==document.body;){let e=n.tagName.toLowerCase(),a=(n.getAttribute("class")??"").trim().split(/\s+/).filter(Boolean).slice(0,3).map(e=>`.${e}`).join("");t.unshift(`${e}${a}`),n=n.parentElement,i++}return t.join(" > ")}function r(e){let t=[],n=e;for(;n&&n!==document.body&&n.parentElement;){let e=Array.from(n.parentElement.children).indexOf(n);t.unshift(`${n.tagName.toLowerCase()}:${e}`),n=n.parentElement}return t.join(">")}e.s(["EditorPickerOverlay",0,function(){return(0,t.useEffect)(()=>{if(!new URLSearchParams(window.location.search).has("__pe")||window.parent===window)return;let e=null,t=null,o=!1,s="page",l=new Map,c=null,d=null,u=null,p=null,f=e=>{let t="hover"===e?c:d;if(t)return t;let n=document.createElement("div"),i="selected"===e;return n.style.cssText=`
2        position: fixed;
3        pointer-events: none;
4        z-index: ${i?"2147483645":"2147483644"};
5        border: 2px ${i?"solid":"dashed"} #2563eb;
6        background-color: rgba(37, 99, 235, ${i?"0.05":"0.04"});
7        display: none;
8        box-sizing: border-box;
9        border-radius: 2px;
10      `,document.body.appendChild(n),"hover"===e?c=n:d=n,n},b=e=>{let t=Array.from(e.children).filter(e=>e instanceof HTMLElement);if(0===t.length)return null;let n=1/0,i=1/0,a=-1/0,r=-1/0;for(let e of t){let t=e.getBoundingClientRect();(0!==t.width||0!==t.height)&&(t.top<n&&(n=t.top),t.left<i&&(i=t.left),t.bottom>a&&(a=t.bottom),t.right>r&&(r=t.right))}return Number.isFinite(n)?new DOMRect(i,n,r-i,a-n):null},m=e=>{try{return"contents"===getComputedStyle(e).display}catch{return!1}},h=e=>{if(m(e))return b(e);let t=e.getBoundingClientRect();return 0===t.width&&0===t.height?null:t},g=(e,t)=>{e.style.top=`${t.top}px`,e.style.left=`${t.left}px`,e.style.width=`${t.width}px`,e.style.height=`${t.height}px`,e.style.display="block"},x=e=>{let t="hover"===e?c:d;t&&(t.style.display="none"),"hover"===e?u=null:p=null},y=()=>{if(t)return t;let e=document.createElement("div");return e.style.cssText=`
11        position: fixed; top: 0; left: 0;
12        background: #2563eb; color: #fff;
13        padding: 2px 8px; border-radius: 4px;
14        font: 11px/1.4 ui-sans-serif, system-ui, -apple-system, sans-serif;
15        pointer-events: none; z-index: 2147483646;
16        white-space: nowrap; max-width: 60vw;
17        overflow: hidden; text-overflow: ellipsis;
18        box-shadow: 0 1px 4px rgba(0,0,0,0.15);
19        display: none;
20      `,document.body.appendChild(e),t=e,e},w=document.createElement("style");w.textContent=`
21      /* hover:虛線藍框,輕量提示「這個會被選」 */
22      [data-zb-pe-hover='1'] {
23        outline: 2px dashed #2563eb !important;
24        outline-offset: -2px;
25        cursor: crosshair !important;
26      }
27      /* selected:實心藍框,已加入 AI 對話 selection */
28      [data-zb-pe-selected='1'] {
29        outline: 2px solid #2563eb !important;
30        outline-offset: -2px;
31        background-color: rgba(37, 99, 235, 0.05) !important;
32      }
33      /* selected + hover 同時:仍顯示實心(selected 優先) */
34      [data-zb-pe-selected='1'][data-zb-pe-hover='1'] {
35        outline: 2px solid #2563eb !important;
36      }
37      /* chrome zone(header / footer)hover:琥珀色實線+底色,與藍色明顯區別。
38         整個 header/footer 一次反白,而不是裡面的子元素,提示「點這整個區域」。 */
39      [data-zb-pe-chrome='1'] {
40        outline: 2px solid #d97706 !important;
41        outline-offset: -2px;
42        background-color: rgba(217, 119, 6, 0.08) !important;
43        cursor: pointer !important;
44      }
45      /* Phase 1.6.1 — source-block hover:當有 data-zb-pe-source-color 屬性時,
46         以 inline style 覆寫 outline 顏色(不同類型不同色)。
47         此處仍提供 fallback 藍色 dashed,與一般 hover 相同。 */
48      [data-zb-pe-source-block-hover='1'] {
49        outline: 2px solid #2563eb !important;
50        outline-offset: -2px;
51        background-color: rgba(37, 99, 235, 0.05) !important;
52        cursor: pointer !important;
53      }
54      /* inline edit:綠色虛線框 + text caret,與藍色 picker 明顯區別。
55         contentEditable 啟用時套上;commit / cancel 後立刻移除。 */
56      [data-zb-pe-editing='1'] {
57        outline: 2px dashed #16a34a !important;
58        outline-offset: -2px;
59        cursor: text !important;
60        caret-color: #16a34a !important;
61      }
62    `,document.head.appendChild(w);let v=null,z="",j=null,k=null,C=()=>{k&&(clearTimeout(k.timeoutId),k=null)},S=e=>{if(!v||!j){v=null,j=null;return}let t=v,n=j,i=z;if(v=null,j=null,z="",t.removeAttribute("data-zb-pe-editing"),t.removeAttribute("contenteditable"),t.removeEventListener("blur",N),t.removeEventListener("keydown",E),!e){t.textContent=i;return}let a=(t.textContent??"").replace(/\s+/g," ").trim();if(a===i.replace(/\s+/g," ").trim()){t.textContent=i;return}t.textContent=a,window.parent.postMessage({type:"page-editor:edit-text",payload:{...n,newText:a,oldText:i}},"*")},N=()=>{S(!0)},E=e=>{"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),S(!1)):(e.preventDefault(),e.stopPropagation(),S(!0))},_=e=>{let t=F(e.target)?e.target:null;if(!t)return;let n=T(t);n&&n.zone!==s||(n||"header"!==s&&"footer"!==s)&&(e.preventDefault(),e.stopPropagation(),(e=>{if(C(),v&&S(!0),!(0!==e.childNodes.length&&Array.from(e.childNodes).every(e=>e.nodeType===Node.TEXT_NODE)))return window.parent.postMessage({type:"page-editor:edit-text-rejected",reason:"has-children"},"*");let t=e.textContent??"",n={id:r(e),tag:e.tagName.toLowerCase(),classes:(e.getAttribute("class")??"").trim(),text:t.trim().slice(0,40),chain:a(e)},i=setTimeout(()=>{k&&k.target===e&&(k=null)},500);k={target:e,payload:n,originalText:t,timeoutId:i},window.parent.postMessage({type:"page-editor:request-edit-permission",payload:n},"*")})(t))},A=null,T=e=>{if(!e)return null;let t=e=>!!e?.closest('[data-zb-page-content], main, [role="main"]'),n=e.closest('header, [role="banner"], .to
62pbar, .site-header, .navbar, .top-nav');if(n&&!t(n))return{zone:"header",root:n};let i=e.closest('footer, [role="contentinfo"], .site-footer, .page-footer');return i&&!t(i)?{zone:"footer",root:i}:null},L=e=>{if(!e||T(e))return null;let t=e.closest("[data-zb-page-content]");if(t)return t;let n=e.closest('main, [role="main"]');if(n)return n;let i=e;for(;i.parentElement;){let e=i.parentElement;if(e===document.body||/-root\b/.test(e.className))return i;i=e}return e},I=e=>{A!==e&&(A&&A.removeAttribute("data-zb-pe-chrome"),(A=e)&&A.setAttribute("data-zb-pe-chrome","1"))},$=e=>{e&&(e.removeAttribute("data-zb-pe-source-block-hover"),e.style.removeProperty("outline"),e.style.removeProperty("outline-offset"),e.style.removeProperty("background-color"))},R=()=>{for(let e of l.values())e.removeAttribute("data-zb-pe-selected");l.clear(),x("selected")},D=(e,t)=>{e.setAttribute("data-zb-pe-selected","1"),l.set(t,e)},M=(e,t)=>{if(e.setAttribute("data-zb-pe-selected","1"),l.set(t,e),m(e)){let t=b(e);t&&(g(f("selected"),t),p=e)}else x("selected")},P=e=>{var t;let n,i,a=y();n=(t=e).tagName.toLowerCase(),a.textContent=0===(i=(t.getAttribute("class")??"").trim().split(/\s+/).filter(Boolean)).length?n:`${n}.${i[0]}${i.length>1?`+${i.length-1}`:""}`;let r=e.getBoundingClientRect(),o=r.top-22;
62a.style.top=(o<4?r.bottom+4:o)+"px",a.style.left=Math.max(4,r.left)+"px",a.style.display="block"},O=()=>{t&&(t.style.display="none")},F=e=>!!(e&&e instanceof HTMLElement)&&e!==t&&e!==document.body&&e!==document.documentElement,U=e=>e?e.closest("[data-zb-source-block]"):null,q=e=>{if(!e)return null;let t=e.closest("[data-zb-content-id]");return!t||t.closest("[data-zb-source-block]")?null:t},B=t=>{let a=F(t.target)?t.target:null,r=U(a);if(r){e&&(e.removeAttribute("data-zb-pe-hover"),$(e)),e=r;let t=r.getAttribute("data-zb-source-resource")??"",a=function(e){let t=n[e];if(t)return t;if(e.startsWith("commerce:"))return n["commerce:products"]??{label:"資料源 Block",isDynamic:!1};for(let[t,i]of Object.entries(n))if(e.includes(t)||t.includes(e))return i;return{label:"資料源 Block",isDynamic:!1}}(t);if(r.setAttribute("data-zb-pe-hover","1"),r.setAttribute("data-zb-pe-source-block-hover","1"),r.style.outline=`2px solid ${i}`,r.style.outlineOffset="-2px",r.style.backgroundColor=`${i}1a`,m(r)){let e=b(r);e&&(g(f("hover"),e),u=r)}else x("hover");let o=y(),s=a.isDynamic?" ・動態":"";o.textContent=`${a.label}${s} (${t})`,o.style.background=i;let l=h(r)??r.getBoundingClientRect(),c=l.top-22;o.style.top=(c<4?l.bottom+4:c)+"px",o.style.left=Math.max(4,l.left)+"px",o.style.display="block",I(null);return}let o=q(a);if(o){e&&e!==o&&(e.removeAttribute("data-zb-pe-hover"),$(e)),e=o;let t=o.getAttribute("data-zb-content-kind")??"",n=o.tagName.toLowerCase();if(o.setAttribute("data-zb-pe-hover","1"),o.style.outline=`2px solid ${i}`,o.style.outlineOffset="-2px",o.style.backgroundColor=`${i}1a`,m(o)){let e=b(o);e&&(g(f("hover"),e),u=o)}else x("hover");let a=y();a.textContent=((e,t)=>{if("image"===e)return"圖片";if("video"===e)return"影片";if("heading"===e){let e=/^h([1-6])$/.exec(t.toLowerCase())?.[1];return e?`H${e} 標題`:"標題"}return"paragraph"===e?"文字段落":"button"===e?"按鈕":"內容元素"})(t,n),a.style.background=i;let r=h(o)??o.getBoundingClientRect(),s=r.top-22;a.style.top=(s<4?r.bottom+4:s)+"px",a.style.left=Math.max(4,r.left)+"px",a.style.display="block",I(null);return}let l=T(a);if(l&&l.zone!==s){e&&(e.removeAttribute("data-zb-pe-hover"),$(e)),e=null,I(l.root);let t=y();t.textContent="header"===l.zone?"這是頁首區域 — 點擊以開啟頁首編輯(會跳新分頁)":"這是頁尾區域 — 點擊以開啟頁尾編輯(會跳新分頁)",t.style.background="#d97706";let n=l.root.getBoundingClientRect(),i=n.top-22;t.style.top=(i<4?n.bottom+4:i)+"px",t.style.left=Math.max(4,n.left)+"px",t.style.display="block";return}if(a&&("header"===s||"footer"===s)){let t=L(a);if(t){e&&(e.removeAttribute("data-zb-pe-hover"),$(e)),e=null,I(t);let n=y();n.textContent="這是頁面內容區域 — 點擊以開啟頁面編輯(會跳新分頁)",n.style.background="#d97706";let i=t.getBoundingClientRect(),a=i.top-22;n.style.top=(a<4?i.bottom+4:a)+"px",n.style.left=Math.max(4,i.left)+"px",n.style.display="block";return}}I(null),x("hover"),e!==a?(e&&(e.removeAttribute("data-zb-pe-hover"),$(e)),(e=a)?(e.setAttribute("data-zb-pe-hover","1"),y().style.background="#2563eb",P(e)):O()):e&&(y().style.background="#2563eb",P(e))},W=()=>{e&&(e.removeAttribute("data-zb-pe-hover"),$(e)),e=null,I(null),O(),x("hover")},H=e=>{if(e.detail>=2||v)return;let t=F(e.target)?e.target:null;if(!t)return;let n=U(t);if(n){e.preventDefault(),e.stopPropagation();let t=n.getAttribute("data-zb-source-resource")??"",i=n.getAttribute("data-zb-source-sort")??"",a=n.getAttribute("data-zb-source-limit")??"",o=n.getAttribute("data-zb-source-where")??"",s=null;if(o)try{s=JSON.parse(o)}catch{s=null}R(),M(n,r(n)),window.parent.postMessage({type:"page-editor:pick-source-block",payload:{resource:t,sort:i||null,limit:a?Number(a):null,where:s}},"*");return}let i=q(t);if(i){e.preventDefault(),e.stopPropagation();let t=i.getAttribute("data-zb-content-id")??"",n=i.getAttribute("data-zb-content-kind")??"";R(),M(i,r(i)),window.parent.postMessage({type:"page-editor:pick-content-block",payload:{contentId:t,kind:n}},"*");return}let c=T(t);if(c&&c.zone!==s){e.preventDefault(),e.stopPropagation();let t=c.root.getBoundingClientRect();window.parent.postMessage({type:"chrome-click",zone:c.zone,iframeRect:{top:t.top,left
62:t.left,width:t.width,height:t.height}},"*");return}if(!c&&("header"===s||"footer"===s)){e.preventDefault(),e.stopPropagation();let n=(L(t)??t).getBoundingClientRect();window.parent.postMessage({type:"body-click",iframeRect:{top:n.top,left:n.left,width:n.width,height:n.height}},"*");return}e.preventDefault(),e.stopPropagation();let d=t.getAttribute("data-zb-node")||r(t),u=t.tagName.toLowerCase(),p=(t.getAttribute("class")??"").trim(),f=(t.textContent??"").trim().slice(0,40),b=a(t),m=o||e.metaKey||e.ctrlKey||e.shiftKey;if(m)if(l.has(d)){let e;(e=l.get(d))&&e.removeAttribute("data-zb-pe-selected"),l.delete(d)}else D(t,d);else R(),D(t,d);window.parent.postMessage({type:"pick",id:d,tag:u,classes:p,text:f,chain:b,additive:m},"*")},K=e=>{"Escape"===e.key&&(R(),window.parent.postMessage({type:"clear-selection"},"*"))},G=0,Y=()=>{G||(G=requestAnimationFrame(()=>{if(G=0,e&&P(e),c&&"block"===c.style.display&&u){let e=b(u);e?(c.style.top=`${e.top}px`,c.style.left=`${e.left}px`,c.style.width=`${e.width}px`,c.style.height=`${e.height}px`):c.style.display="none"}if(d&&"block"===d.style.display&&p){let e=b(p);e?(d.style.top=`${e.top}px`,d.style.left=`${e.left}px`,d.style.width=`${e.width}px`,d.style.height=`${e.height}px`):d.style.display="none"}}))},X=e=>{if(v)return;let t=e.target;!t||t.closest('a,button,input,select,textarea,form,[role="link"],[role="button"]')&&(e.preventDefault(),e.stopPropagation())};document.addEventListener("mousedown",X,!0),document.addEventListener("auxclick",X,!0),document.addEventListener("submit",X,!0);let V=window.history.pushState.bind(window.history),J=window.history.replaceState.bind(window.history);window.history.pushState=function(){},window.history.replaceState=function(){},document.addEventListener("mouseover",B),document.addEventListener("mouseout",W),document.addEventListener("click",H,!0),document.addEventListener("dblclick",_,!0),document.addEventListener("keydown",K),document.addEventListener("scroll",Y,!0),window.parent.postMessage({type:"preview-mounted"},"*"),window.parent.postMessage({type:"preview-ready"},"*");let Q=t=>{if(t.data?.type==="reload-preview")window.location.reload();else if(t.data?.type==="set-multi")o=!!t.data.value;else if(t.data?.type==="clear-selected")R();else if(t.data?.type==="set-edit-context"){let e=t.data.zone;s="header"===e||"footer"===e?e:"page"}else if(t.data?.type==="page-editor:edit-permission-granted"){if(!k)return;clearTimeout(k.timeoutId);let{target:t,payload:n,originalText:i}=k;k=null;v&&S(!0),e&&e.removeAttribute("data-zb-pe-hover"),e=null,I(null),O(),z=i,j=n,v=t,t.setAttribute("data-zb-pe-editing","1"),t.setAttribute("contenteditable","true"),t.addEventListener("blur",N),t.addEventListener("keydown",E),t.focus();try{let e=window.getSelection();if(e){let n=document.createRange();n.selectNodeContents(t),e.removeAllRanges(),e.addRange(n)}}catch{}}else if(t.data?.type==="page-editor:edit-permission-denied")C();else if(t.data?.type==="scroll-to-bottom"){let e=document.scrollingElement??document.documentElement;e.scrollTo({top:e.scrollHeight,behavior:"auto"})}else t.data?.type==="scroll-to-top"&&(document.scrollingElement??document.documentElement).scrollTo({top:0,behavior:"auto"})};return window.addEventListener("message",Q),()=>{document.removeEventListener("mousedown",X,!0),document.removeEventListener("auxclick",X,!0),document.removeEventListener("submit",X,!0),window.history.pushState=V,window.history.replaceState=J,document.removeEventListener("mouseover",B),document.removeEventListener("mouseout",W),document.removeEventListener("click",H,!0),document.removeEventListener("dblclick",_,!0),document.removeEventListener("keydown",K),document.removeEventListener("scroll",Y,!0),window.removeEventListener("message",Q),I(null),C(),v&&(v.removeAttribute("data-zb-pe-editing"),v.removeAttribute("contenteditable"),v.removeEventListener("blur",N),v.removeEventListener("keydown",E),v.textContent=z),w.remove(),t?.remove(),G&&cancelAnimationFrame(G),c?.remove(),d?.remove(),c=null,d=null}},[]),null}])},484949,e=>{"use strict";var t=e.i(647083);function n(e){for(let t of Array.from(e.childNodes))if(t.nodeType!==Node.TEXT_NODE)return!1;return!0}function i(){return window.parent!==window&&new URLSearchParams(window.location.search).has("__pe")}let a="2px solid #3b82f6",r="-2px",o="outline-color 300ms ease, opacity 300ms ease";function s(e){let t=Array.from(e.children).filter(e=>e instanceof HTMLElement);if(0===t.length)return null;let n=1/0,i=1/0,a=-1/0,r=-1/0;for(let e of t){let t=e.getBoundingClientRect();
62(0!==t.width||0!==t.height)&&(t.top<n&&(n=t.top),t.left<i&&(i=t.left),t.bottom>a&&(a=t.bottom),t.right>r&&(r=t.right))}return Number.isFinite(n)?new DOMRect(i,n,r-i,a-n):null}function l(e){let t=e.getAttribute("data-zb-content-kind");if(t){if("image"===t)return"圖片";if("video"===t)return"影片";if("paragraph"===t)return"文字段落";if("button"===t)return"按鈕";if("link"===t)return"連結";if("heading"===t){let t=e.tagName.toLowerCase(),n=/^h([1-6])$/.exec(t);return n?`H${n[1]}`:"標題"}}if(e.hasAttribute("data-zb-source-block")){let t=e.getAttribute("data-zb-source-resource")??"";return t?`資料源 \xb7 ${t}`:"資料源"}return""}function c(e){let t=document.createElement("div");return t.textContent=e,t.style.cssText=`
63    position: fixed; top: 0; left: 0;
64    background: #2563eb; color: #fff;
65    padding: 2px 8px; border-radius: 4px;
66    font: 11px/1.4 ui-sans-serif, system-ui, -apple-system, sans-serif;
67    pointer-events: none; z-index: 2147483646;
68    white-space: nowrap; max-width: 60vw;
69    overflow: hidden; text-overflow: ellipsis;
70    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
71    transition: opacity 300ms ease;
72    opacity: 1;
73  `,document.body.appendChild(t),t}function d(e,t){let n=t.top-22;e.style.top=`${n<4?t.bottom+4:n}px`,e.style.left=`${Math.max(4,t.left)}px`}function u(e){let t=!1,n=0,i=()=>{t||(e(),n=requestAnimationFrame(i))};return n=requestAnimationFrame(i),()=>{t=!0,cancelAnimationFrame(n)}}function p(){return(0,t.useEffect)(()=>{if(!i())return;let e=requestAnimationFrame(()=>{var e;let t;e=document.body,t={},e.querySelectorAll("img, video, iframe, h1, h2, h3, h4, h5, h6, p, button, a, ul, ol, blockquote, aside, details, figure, hr, code, pre, span, small, mark, time").forEach(e=>{let i,a;if(e.hasAttribute("data-zb-content-id")||e.closest("[data-zb-source-block]"))return;let r=e.tagName.toLowerCase(),o="img"===(a=r.toLowerCase())?"image":"video"===a||"iframe"===a?"video":/^h[1-6]$/.test(a)?"heading":"p"===a?"paragraph":"button"===a?"button":"ul"===a||"ol"===a?"list":"blockquote"===a?"blockquote":"aside"===a?"aside":"details"===a?"details":"figure"===a?"figure":"hr"===a?"hr":"code"===a||"pre"===a?"code":"span"===a||"small"===a||"mark"===a||"time"===a?"inline-text":null;if("a"===r){let t=e.getAttribute("class")??"",n=e.getAttribute("href");o=!function(e){for(let t of e.split(/\s+/)){if(!t)continue;let e=t.toLowerCase();if(e.includes("btn")||e.includes("button"))return!0}return!1}(t)?n?"link":null:"button"}if("span"===r?(e.getAttribute("class")??"").trim()&&n(e)||(o=null):"small"!==r&&"mark"!==r&&"time"!==r||n(e)||(o=null),!o)return;if("heading"===o){let e,t=(e=/^h([1-6])$/.exec(r.toLowerCase()))?Number.parseInt(e[1],10):null;if(null===t)return;i=`h${t}`}else if("image"===o)i="img";else if("video"===o)i="video";else if("button"===o)i="btn";else if("link"===o)i="link";else if("paragraph"===o)i="p";else if("list"===o)i="list";else if("blockquote"===o)i="quote";else if("aside"===o)i="aside";else if("details"===o)i="details";else if("figure"===o)i="fig";else if("hr"===o)i="hr";else if("code"===o)i="code";else{if("inline-text"!==o)return;i="inline"}
73let s=t[i]??0;t[i]=s+1;let l=`${i}-${s}`;e.setAttribute("data-zb-content-id",l),e.setAttribute("data-zb-content-kind",o)}),e.querySelectorAll("[data-zb-source-block]").forEach((e,t)=>{e.hasAttribute("data-zb-source-block-index")||e.setAttribute("data-zb-source-block-index",String(t))})});return()=>{cancelAnimationFrame(e)}},[]),(0,t.useEffect)(()=>{if(!i())return;let e=new WeakMap,t=null,n=n=>{var i,p,f;if(n.origin&&n.origin!==window.location.origin||!((i=n.data)&&"object"==typeof i&&("page-editor:highlight-content-block"===i.type||"page-editor:highlight-source-block"===i.type||"page-editor:highlight-by-var"===i.type||"page-editor:highlight-by-form"===i.type)&&i.payload&&"object"==typeof i.payload&&("page-editor:highlight-content-block"===i.type?"string"==typeof i.payload.contentId:"page-editor:highlight-source-block"===i.type?"number"==typeof i.payload.blockIndex:"page-editor:highlight-by-var"===i.type?"string"==typeof i.payload.varName:"number"==typeof i.payload.formIndex)))return;let b=null;if("page-editor:highlight-content-block"===n.data.type){let e="u">typeof CSS&&"function"==typeof CSS.escape?CSS.escape(n.data.payload.contentId):n.data.payload.contentId;b=document.querySelector(`[data-zb-content-id="${e}"]`)}else if("page-editor:highlight-source-block"===n.data.type)b=document.querySelector(`[data-zb-source-block][data-zb-source-block-index="${n.data.payload.blockIndex}"]`);else if("page-editor:highlight-by-var"===n.data.type){let e=n.data.payload.varName,t="u">typeof CSS&&"function"==typeof CSS.escape?CSS.escape(e):e;b=document.querySelector(`[data-zb-array-name="${t}"]`)??document.querySelector("[data-zb-source-block]")}else{let e=n.data.payload.formIndex,t=document.querySelectorAll("form");e>=0&&e<t.length&&(b=t[e])}if(b){let n;t&&t!==b&&(p=t,(n=e.get(p))&&(clearTimeout(n),e.delete(p)),p.__zbCleanup?.()),t=b,function(e){try{return"contents"===getComputedStyle(e).display}catch{return!1}}(f=b)?function(e,t){let n,i=t.get(e);i&&clearTimeout(i),e.__zbCleanup?.();let p=s(e);if(!p)return;let f=((n=document.createElement("div")).style.cssText=`
74    position: fixed;
75    pointer-events: none;
76    z-index: 2147483643;
77    outline: ${a};
78    outline-offset: ${r};
79    transition: ${o};
80    opacity: 1;
81    box-sizing: border-box;
82  `,document.body.appendChild(n),n);f.style.top=`${p.top}px`,f.style.left=`${p.left}px`,f.style.width=`${p.width}px`,f.style.height=`${p.height}px`,e.__zbOverlay=f;let b=l(e),m=b?c(b):null;m&&(d(m,p),e.__zbLabel=m);try{f.scrollIntoView({behavior:"smooth",block:"center"})}catch{try{f.scrollIntoView()}catch{}}let h=u(()=>{let t=s(e);t&&(f.style.top=`${t.top}px`,f.style.left=`${t.left}px`,f.style.width=`${t.width}px`,f.style.height=`${t.height}px`,m&&d(m,t))});e.__zbFollowCancel=h;let g=!1,x=()=>{g||(g=!0,h(),f.parentNode&&f.parentNode.removeChild(f),m&&m.parentNode&&m.parentNode.removeChild(m),e.__zbOverlay===f&&delete e.__zbOverlay,m&&e.__zbLabel===m&&delete e.__zbLabel,e.__zbFollowCancel===h&&delete e.__zbFollowCancel,e.__zbCleanup===x&&delete e.__zbCleanup,t.delete(e))};e.__zbCleanup=x;let y=setTimeout(()=>{f.style.opacity="0",f.style.outline="2px solid transparent",m&&(m.style.opacity="0");let n=setTimeout(x,300);t.set(e,n)},1500);t.set(e,y)}(f,e):function(e,t){let n=t.get(e);n&&clearTimeout(n),e.__zbCleanup?.();let i=e.style.outline,s=e.style.outlineOffset,p=e.style.transition;e.style.transition=o,e.style.outline=a,e.style.outlineOffset=r;try{e.scrollIntoView({behavior:"smooth",block:"center"})}catch{try{e.scrollIntoView()}catch{}}let f=l(e),b=null;if(f){b=c(f);try{d(b,e.getBoundingClientRect())}catch{}e.__zbLabel=b}let m=b,h=m?u(()=>{try{d(m,e.getBoundingClientRect())}catch{}}):()=>{};e.__zbFollowCancel=h;let g=!1,x=()=>{g||(g=!0,h(),e.style.outline=i,e.style.outlineOffset=s,e.style.transition=p,b&&b.parentNode&&b.parentNode.removeChild(b),b&&e.__zbLabel===b&&delete e.__zbLabel,e.__zbFollowCancel===h&&delete e.__zbFollowCancel,e.__zbCleanup===x&&delete e.__zbCleanup,t.delete(e))};e.__zbCleanup=x;let y=setTimeout(()=>{e.style.outline=i,e.style.outlineOffset=s,b&&(b.style.opacity="0");let n=setTimeout(x,300);t.set(e,n)},1500);t.set(e,y)}(f,e)}};
82return window.addEventListener("message",n),()=>{window.removeEventListener("message",n)}},[]),null}e.s(["ContentBlockMarker",0,p,"default",0,p])},77558,e=>{"use strict";var t=e.i(23995),n=e.i(647083);function i(){return window.parent!==window&&new URLSearchParams(window.location.search).has("__pe")}function a(e,t){if(!e)return;let n=String(e).replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g,"");return n.length>t?n.slice(0,t)+"…(truncated)":n}function r(e){if(window.parent!==window)try{window.parent.postMessage({type:"page-editor:runtime-error",payload:e},window.location.origin)}catch{}}class o extends n.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(e){return window.parent!==window&&new URLSearchParams(window.location.search).has("__pe")?{hasError:!0}:{hasError:!1}}componentDidCatch(e,t){i()&&r({message:a(e.message,1e3)??"Unknown render error",stack:a(e.stack,2e3),componentStack:a(t.componentStack??void 0,2e3),source:"render",timestamp:Date.now()})}render(){return this.state.hasError?(0,t.jsxs)("div",{style:{padding:"24px",fontFamily:"ui-sans-serif, system-ui, sans-serif",color:"#991b1b",background:"#fef2f2",border:"1px solid #fecaca",borderRadius:"8px",margin:"24px"},children:[(0,t.jsx)("div",{style:{fontWeight:600,marginBottom:"8px"},children:"⚠ Preview 渲染失敗"}),(0,t.jsx)("div",{style:{fontSize:"13px",color:"#7f1d1d"},children:"錯誤已回報給編輯器。請於左側面板查看詳情並重新編輯。"})]}):this.props.children}}function s(){return(0,n.useEffect)(()=>{if(!i())return;let e=e=>{r({message:a(e.message,1e3)??"Unknown error",stack:a(e.error?.stack,2e3),source:"event",line:e.lineno,column:e.colno,timestamp:Date.now()})},t=e=>{let t=e.reason,n=t instanceof Error?t.message:"string"==typeof t?t:"Unhandled promise rejection",i=t instanceof Error?t.stack:void 0;r({message:a(n,1e3)??"Unhandled rejection",stack:a(i,2e3),source:"unhandledrejection",timestamp:Date.now()})};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",t),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",t)}},[]),null}e.s(["PreviewErrorBoundary",0,function({children:e}){return(0,t.jsxs)(o,{children:[(0,t.jsx)(s,{}),e]})},"__testing__",0,{sanitize:a,isPreviewMode:i,postRuntimeError:r,MESSAGE_MAX:1e3,STACK_MAX:2e3}])},472165,e=>{"use strict";e.i(399453);var t=e.i(23995),n=e.i(647083),i=e.i(493629);let a={"center-modal":32,"bottom-bar":24,"slide-in-corner":32};var r=e.i(55429);let o="zb-popup-",s="zb-popup-session-";function l({popup:e}){let[i,a]=(0,n.useState)(!1),r=(0,n.useRef)(!1),d=(0,n.useCallback)(()=>{try{let t=Date.now();localStorage.setItem(`${o}${e.id}-shown-at`,String(t)),sessionStorage.setItem(`${s}${e.id}`,"1")}catch{}},[e.id]),u=(0,n.useCallback)(()=>{try{let t=e.frequency;if("every-time"===t.type)return!0;if("once-per-session"===t.type)return"1"!==sessionStorage.getItem(`${s}${e.id}`);let n=localStorage.getItem(`${o}${e.id}-shown-at`);if(!n)return!0;if("once-per-visitor"===t.type)return!1;if("every-n-days"===t.type&&t.days&&t.days>0)return Date.now()-Number(n)>=24*t.days*36e5;return!0}catch{return!0}},[e.id,e.frequency]),p=(0,n.useCallback)(()=>{r.current||u()&&(r.current=!0,d(),a(!0))},[u,d]);return((0,n.useEffect)(()=>{if(!u())return;let t=e.trigger;if("page-load"===t.type){let e=setTimeout(p,0);return()=>clearTimeout(e)}if("time-delay"===t.type){let e=setTimeout(p,t.delayMs??3e3);return()=>clearTimeout(e)}if("scroll-depth"===t.type){let e=t.scrollPercent??50,n=()=>{let t=document.documentElement,n=t.scrollHeight-t.clientHeight;n<=0||window.scrollY/n*100>=e&&p()};return window.addEventListener("scroll",n,{passive:!0}),()=>window.removeEventListener("scroll",n)}if("exit-intent"===t.type){let e=e=>{e.clientY<=0&&p()};return document.addEventListener("mouseleave",e),()=>document.removeEventListener("mouseleave",e)}},[e.id]),(0,n.useEffect)(()=>{if(!i)return;let t=t=>{"Escape"===t.key&&e.content.closeable&&a(!1)};document.addEventListener("keydown",t);let n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",t),document.body.style.overflow=n}},[i,e.content.closeable]),i)?(0,t.jsx)(c,{popup:e,onClose:()=>a(!1)}):null}function c({popup:e,onClose:n}){let{content:o}=e,s=(0,r.getPopupStyles)(o.style??"default"),l=o.accentColor?{"--st-brand":o.accentColor}:{},u=(0,r.computeScarcity)(o.scarcity),p=s.card.borderRadius??12,f=function(e,t={}){let n=e in a?e:"center-modal",i=t.cardRadius??12,r="bottom-bar"===n?16:"center-modal"===n?24:20;return{wrap:"bottom-bar"===n?{position:"fixed",left:0,right:0,bottom:0,zIndex:0x7ffffff9,padding:12,background:"rgba(0,0,0,0.4)"}:"slide-in-corner"===n?{position:"fixed",right:16,bottom:16,zIndex:0x7ffffff9,maxWidth:"92vw"}:{position:"fixed",inset:0,zIndex:0x7ffffff9,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",padding:16},card:{..."bottom-bar"===n?{maxWidth:960,margin:"0 auto"}:"slide-in-corner"===n?{width:360,maxWidth:"100%"}:{width:480,maxWidth:"100%"},maxHeight:`calc(100dvh - ${a[n]}px)`,display:"flex",flexDirection:"column"},image:{display:"block",width:"100%",borderTopLeftRadius:i,borderTopRightRadius:i,maxHeight:240,objectFit:"cover",flexShrink:0},content:{padding:"bottom-bar"===n?`${r}px ${"center-modal"===n?24:20}px`:`${r}px`,flex:"1 1 auto",minHeight:0,overflowY:"auto",overscrollBehavior:"contain"}}}(o.layout,{cardRadius:p}),b={position:"relative",...s.card,...f.card,...l};return(0,t.jsx)("div",{style:f.wrap,onClick:"center-modal"===o.layout&&o.closeable?n:void 0,children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":o.title,style:b,onClick:e=>e.stopPropagation(),children:[o.closeable&&(0,t.jsx)("button",{type:"button",onClick:n,"aria-label":"關閉",style:{position:"absolute",top:-10,right:-10,width:24,height:24,border:"none",borderRadius:"50%",background:"#ffffff",boxShadow:"0 3px 8px rgba(0,0,0,0.2)",color:"#374151",cursor:"pointer",fontSize:15,lineHeight:1,display:"inline-flex",alignItems:"center",justifyContent:"center",zIndex:2},children:"×"}),o.imageUrl&&(0,t.jsx)("img",{src:o.imageUrl,alt:"",style:f.image}),(0,t.jsxs)("div",{style:f.content,children:[u?.show&&(0,t.jsx)(d,{label:o.scarcity?.label??"名額即將滿額",pct:u.pct,current:Number(o.scarcity?.current??0),total:Number(o.scarcity?.total??0),showCount:o.scarcity?.showCount!==!1,barStyles:s.bar}),(0,t.jsx)("h2",{style:{margin:"0 0 8px",paddingRight:!o.imageUrl&&o.closeable?32:0,...s.title},children:o.title}
82),o.body&&(0,t.jsx)("p",{style:{margin:"0 0 16px",whiteSpace:"pre-wrap",lineHeight:1.6,...s.body},children:o.body}),o.formKey&&(0,t.jsx)(i.ZenbuForm,{formKey:o.formKey}),!o.formKey&&o.primaryCtaLabel&&o.primaryCtaHref&&(0,t.jsx)("a",{href:o.primaryCtaHref,onClick:n,style:{display:"block",width:"100%",padding:"12px 20px",borderRadius:8,textDecoration:"none",fontSize:14,textAlign:"center",boxSizing:"border-box",...s.cta},children:o.primaryCtaLabel})]})]})})}function d({label:e,pct:i,current:a,total:r,showCount:o,barStyles:s}){let l=`${Math.max(2,Math.min(100,i))}%`,[c,p]=(0,n.useState)("0%");return(0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>p(l));return()=>cancelAnimationFrame(e)},[l]),(0,t.jsxs)("div",{style:{marginBottom:16},children:[(0,t.jsx)(u,{}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:6},children:[(0,t.jsx)("span",{style:{fontSize:12,...s.label},children:e}),o&&(0,t.jsxs)("span",{style:{fontSize:11,fontFamily:'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',...s.count},children:[a," / ",r]})]}),(0,t.jsx)("div",{style:{height:10,borderRadius:5,overflow:"hidden",position:"relative",...s.track},children:(0,t.jsx)("div",{style:{height:"100%",width:c,transition:"width 0.9s cubic-bezier(0.22, 1, 0.36, 1)",position:"relative",overflow:"hidden",...s.fill},children:(0,t.jsx)("div",{style:{position:"absolute",inset:0,backgroundImage:"linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.55) 50%, transparent 70%)",backgroundSize:"200% 100%",animation:"zb-popup-shimmer 2.2s linear infinite",pointerEvents:"none"}})})})]})}function u(){return(0,t.jsx)("style",{children:`
83      @keyframes zb-popup-shimmer {
84        from { background-position: -100% 0; }
85        to { background-position: 200% 0; }
86      }
87    `})}e.s(["ZenbuPopupRunner",0,function({locale:e,initialPopups:i=[]}){let[a,r]=(0,n.useState)(i);return((0,n.useEffect)(()=>{let t=!1,n=window.location.pathname.replace(RegExp(`^/${e}(/|$)`),"/").replace(/^\/+/,"/").split("/").filter(Boolean),i=0===n.length?"home":n[0];return fetch(`/v1/public/popups/active?locale=${encodeURIComponent(e)}&slug=${encodeURIComponent(i)}`,{credentials:"omit"}).then(e=>{if(!e.ok)throw Error(`popups active ${e.status}`);return e.json()}).then(e=>{!t&&Array.isArray(e)&&r(e)}).catch(e=>{}),()=>{t=!0}},[e]),0===a.length)?null:(0,t.jsx)(t.Fragment,{children:a.map(e=>(0,t.jsx)(l,{popup:e},e.id))})}],472165)},585906,(e,t,n)=>{!function(){"use strict";var e={};e.d=function(t,n){for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})},e.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},void 0!==e&&(e.ab="/ROOT/node_modules/.pnpm/[email protected]_@[email protected]_@[email protected][email protected][email protected][email protected]/node_modules/next/dist/compiled/web-vitals/");var n={};e.r(n),e.d(n,{CLSThresholds:function(){return N},FCPThresholds:function(){return C},FIDThresholds:function(){return ee},INPThresholds:function(){return F},LCPThresholds:function(){return q},TTFBThresholds:function(){return H},onCLS:function(){return E},onFCP:function(){return S},onFID:function(){return et},onINP:function(){return U},onLCP:function(){return W},onTTFB:function(){return G}});var i,a,r,o,s,l=-1,c=function(e){addEventListener("pageshow",function(t){t.persisted&&(l=t.timeStamp,e(t))},!0)},d=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},u=function(){var e=d();return e&&e.activationStart||0},p=function(e,t){var n=d(),i="navigate";return l>=0?i="back-forward-cache":n&&(document.prerendering||u()>0?i="prerender":document.wasDiscarded?i="restore":n.type&&(i=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(0x82f79cd8fff*Math.random())+1e12),navigationType:i}},f=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})});return i.observe(Object.assign({type:e,buffered:!0},n||{})),i}}catch(e){}},b=function(e,t,n,i){var a,r;return function(o){var s;t.value>=0&&(o||i)&&((r=t.value-(a||0))||void 0===a)&&(a=t.value,t.delta=r,s=t.value,t.rating=s>n[1]?"poor":s>n[0]?"needs-improvement":"good",e(t))}},m=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},h=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},g=function(e){var t=!1;return function(){t||(e(),t=!0)}},x=-1,y=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},w=function(e){"hidden"===document.visibilityState&&x>-1&&(x="visibilitychange"===e.type?e.timeStamp:0,z())},v=function(){addEventListener("visibilitychange",w,!0),addEventListener("prerenderingchange",w,!0)},z=function(){removeEventListener("visibilitychange",w,!0),removeEventListener("prerenderingchange",w,!0)},j=function(){return x<0&&(x=y(),v(),c(function(){setTimeout(function(){x=y(),v()},0)})),{get firstHiddenTime(){return x}}},k=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},C=[1800,3e3],S=function(e,t){t=t||{},k(function(){var n,i=j(),a=p("FCP"),r=f("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(r.disconnect(),e.startTime<i.firstHiddenTime&&(a.value=Math.max(e.startTime-u(),0),a.entries.push(e),n(!0)))})});r&&(n=b(e,a,C,t.reportAllChanges),c(function(i){n=b(e,a=p("FCP"),C,t.reportAllChanges),m(function(){a.value=performance.now()-i.timeStamp,n(!0)})}))})},N=[.1,.25],E=function(e,t){t=t||{},S(g(function(){var n,i=p("CLS",0),a=0,r=[],o=function(e){e.forEach(function(e){if(!e.hadRecentInput){var t=r[0],n=r[r.length-1];a&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,r.push(e)):(a=e.value,r=[e])}}),a>i.value&&(i.value=a,i.entries=r,n())},s=f("layout-shift",o);s&&(n=b(e,i,N,t.reportAllChanges),h(function(){o(s.takeRecords()),n(!0)}),c(function(){a=0,n=b(e,i=p("CLS",0),N,t.reportAllChanges),m(function(){return n()})}),setTimeout(n,0))}
87))},_=0,A=1/0,T=0,L=function(e){e.forEach(function(e){e.interactionId&&(A=Math.min(A,e.interactionId),_=(T=Math.max(T,e.interactionId))?(T-A)/7+1:0)})},I=function(){"interactionCount"in performance||i||(i=f("event",L,{type:"event",buffered:!0,durationThreshold:0}))},$=[],R=new Map,D=0,M=[],P=function(e){if(M.forEach(function(t){return t(e)}),e.interactionId||"first-input"===e.entryType){var t=$[$.length-1],n=R.get(e.interactionId);if(n||$.length<10||e.duration>t.latency){if(n)e.duration>n.latency?(n.entries=[e],n.latency=e.duration):e.duration===n.latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e);else{var i={id:e.interactionId,latency:e.duration,entries:[e]};R.set(i.id,i),$.push(i)}$.sort(function(e,t){return t.latency-e.latency}),$.length>10&&$.splice(10).forEach(function(e){return R.delete(e.id)})}}},O=function(e){var t=self.requestIdleCallback||self.setTimeout,n=-1;return e=g(e),"hidden"===document.visibilityState?e():(n=t(e),h(e)),n},F=[200,500],U=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},k(function(){I();var n,a,r=p("INP"),o=function(e){O(function(){e.forEach(P);var t,n=(t=Math.min($.length-1,Math.floor(((i?_:performance.interactionCount||0)-D)/50)),$[t]);n&&n.latency!==r.value&&(r.value=n.latency,r.entries=n.entries,a())})},s=f("event",o,{durationThreshold:null!=(n=t.durationThreshold)?n:40});a=b(e,r,F,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:!0}),h(function(){o(s.takeRecords()),a(!0)}),c(function(){D=0,$.length=0,R.clear(),a=b(e,r=p("INP"),F,t.reportAllChanges)}))}))},q=[2500,4e3],B={},W=function(e,t){t=t||{},k(function(){var n,i=j(),a=p("LCP"),r=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach(function(e){e.startTime<i.firstHiddenTime&&(a.value=Math.max(e.startTime-u(),0),a.entries=[e],n())})},o=f("largest-contentful-paint",r);if(o){n=b(e,a,q,t.reportAllChanges);var s=g(function(){B[a.id]||(r(o.takeRecords()),o.disconnect(),B[a.id]=!0,n(!0))});["keydown","click"].forEach(function(e){addEventListener(e,function(){return O(s)},!0)}),h(s),c(function(i){n=b(e,a=p("LCP"),q,t.reportAllChanges),m(function(){a.value=performance.now()-i.timeStamp,B[a.id]=!0,n(!0)})})}})},H=[800,1800],K=function e(t){document.prerendering?k(function(){return e(t)}):"complete"!==document.readyState?addEventListener("load",function(){return e(t)},!0):setTimeout(t,0)},G=function(e,t){t=t||{};var n=p("TTFB"),i=b(e,n,H,t.reportAllChanges);K(function(){var a=d();a&&(n.value=Math.max(a.responseStart-u(),0),n.entries=[a],i(!0),c(function(){(i=b(e,n=p("TTFB",0),H,t.reportAllChanges))(!0)}))})},Y={passive:!0,capture:!0},X=new Date,V=function(e,t){a||(a=t,r=e,o=new Date,Z(removeEventListener),J())},J=function(){if(r>=0&&r<o-X){var e={entryType:"first-input",name:a.type,target:a.target,cancelable:a.cancelable,startTime:a.timeStamp,processingStart:a.timeStamp+r};s.forEach(function(t){t(e)}),s=[]}},Q=function(e){if(e.cancelable){var t,n,i,a=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?(t=function(){V(a,e),i()},n=function(){i()},i=function(){removeEventListener("pointerup",t,Y),removeEventListener("pointercancel",n,Y)},addEventListener("pointerup",t,Y),addEventListener("pointercancel",n,Y)):V(a,e)}},Z=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach(function(t){return e(t,Q,Y)})},ee=[100,300],et=function(e,t){t=t||{},k(function(){var n,i=j(),o=p("FID"),l=function(e){e.startTime<i.firstHiddenTime&&(o.value=e.processingStart-e.startTime,o.entries.push(e),n(!0))},d=function(e){e.forEach(l)},u=f("first-input",d);n=b(e,o,ee,t.reportAllChanges),u&&(h(g(function(){d(u.takeRecords()),u.disconnect()})),c(function(){n=b(e,o=p("FID"),ee,t.reportAllChanges),s=[],r=-1,a=null,Z(addEventListener),s.push(l),J()}))})};t.exports=n}()},531627,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useReportWebVitals",{enumerable:!0,get:function(){return r}});let i=e.r(647083),a=e.r(585906);function r(e){(0,i.useEffect)(()=>{(0,a.onCLS)(e),(0,a.onFID)(e),(0,a.onLCP)(e),(0,a.onINP)(e),(0,a.onFCP)(e),(0,a.onTTFB)(e)},[e])}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
87dule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},302018,(e,t,n)=>{t.exports=e.r(531627)},204627,e=>{"use strict";var t=e.i(647083),n=e.i(302018);let i=new Set(["LCP","INP","CLS","FCP","TTFB"]),a="/v1/analytics/vitals";e.s(["default",0,function(){let e=(0,t.useRef)({}),r=(0,t.useCallback)(t=>{if(!i.has(t.name))return;let n=Number(t.value);!Number.isFinite(n)||n<0||n>36e5||e.current[t.name]!==n&&(e.current[t.name]=n,function(e){try{let t=JSON.stringify(e);if("u">typeof navigator&&"function"==typeof navigator.sendBeacon){let e=new Blob([t],{type:"application/json"});if(navigator.sendBeacon(a,e))return}"function"==typeof fetch&&fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:t,keepalive:!0}).catch(()=>{})}catch{}}({name:t.name,value:n}))},[]);return(0,n.useReportWebVitals)(r),null}])},310558,e=>{"use strict";var t=e.i(23995),n=e.i(296473),i=e.i(997288),a=e.i(432187),r=e.i(647083),o=e.i(238811),s=e.i(592213);function l(){let e=(0,o.usePathname)(),t=(0,o.useSearchParams)();return(0,r.useEffect)(()=>{let n=t?.get(s.AFFILIATE_REF_PARAM);if(!n||!(0,s.isValidReferralCode)(n))return;document.cookie=`zb_aff=${encodeURIComponent(n)}; Max-Age=2592000; Path=/; SameSite=Lax`;let i=JSON.stringify({code:n,path:e??window.location.pathname});try{if(navigator.sendBeacon){let e=new Blob([i],{type:"application/json"});navigator.sendBeacon("/v1/affiliate/track",e)}else fetch("/v1/affiliate/track",{method:"POST",headers:{"Content-Type":"application/json"},body:i,credentials:"include",keepalive:!0}).catch(()=>void 0)}catch{}},[e,t]),null}var c=e.i(349173),d=e.i(37277),u=e.i(914506),p=e.i(851396),f=e.i(823559),b=e.i(630615);function m({code:e}){let n=(0,c.useTranslations)("affiliateBar"),i=(0,o.usePathname)(),a=(0,o.useSearchParams)(),[l,h]=(0,r.useState)(!1),g=a?.toString()??"",x=window.location.origin,y=(0,s.buildReferralLink)(x,`${i??"/"}${g?`?${g}`:""}`,e);async function w(){try{await navigator.clipboard.writeText(y),h(!0),setTimeout(()=>h(!1),2e3)}catch{}}return(0,t.jsx)("div",{"data-zb-affiliate-bar":"",style:{position:"relative",width:"100%",background:"var(--st-fg, #111827)",color:"var(--st-bg, #ffffff)",fontSize:13,lineHeight:1.4},children:(0,t.jsxs)("div",{style:{maxWidth:1200,margin:"0 auto",padding:"8px 16px",display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[(0,t.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,whiteSpace:"nowrap"},children:[(0,t.jsx)(f.Handshake,{size:14,"aria-hidden":"true"}),n("label")]}),(0,t.jsx)("code",{title:y,style:{flex:"1 1 220px",minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",padding:"4px 8px",borderRadius:6,background:"rgba(255,255,255,0.12)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},children:y}),(0,t.jsxs)("button",{type:"button",onClick:w,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 12px",borderRadius:6,border:"1px solid rgba(255,255,255,0.35)",background:"transparent",color:"inherit",fontSize:13,cursor:"pointer",whiteSpace:"nowrap"},children:[l?(0,t.jsx)(p.Check,{size:14,"aria-hidden":"true"}):(0,t.jsx)(u.Copy,{size:14,"aria-hidden":"true"}),n(l?"copied":"copy")]}),(0,t.jsxs)(d.Link,{href:"/account/affiliate",style:{display:"inline-flex",alignItems:"center",gap:6,padding:"5px 12px",borderRadius:6,background:"rgba(255,255,255,0.16)",color:"inherit",textDecoration:"none",fontSize:13,whiteSpace:"nowrap"},children:[(0,t.jsx)(b.ExternalLink,{size:14,"aria-hidden":"true"}),n("dashboard")]})]})})}let h="zb_attr";function g(e){if("string"!=typeof e)return null;let t=e.replace(/[\u0000-\u001f\u007f]/g," ").replace(/\s+/g," ").trim();return""===t?null:t.slice(0,255)}let x=[[/(^|\.)google\./,"google"],[/(^|\.)facebook\.com$|(^|\.)fb\.com$/,"facebook"],[/(^|\.)instagram\.com$/,"instagram"],[/(^|\.)youtube\.com$|(^|\.)youtu\.be$/,"youtube"],[/(^|\.)line\.me$|(^|\.)line\.naver\.jp$/,"line"],[/(^|\.)yahoo\./,"yahoo"],[/(^|\.)bing\.com$/,"bing"],[/(^|\.)tiktok\.com$/,"tiktok"],[/(^|\.)threads\.(net|com)$/,"threads"],[/(^|\.)x\.com$|(^|\.)twitter\.com$/,"x"]],y=new Set(["google","yahoo","bing"]);function w(){let e=(0,o.usePathname)(),t=(0,o.useSearchParams)();return(0,r.useEffect)(()=>{try{let e=function(e){let t,n=null;try{let i=new URL(e.url,"https://placeholder.invalid");t=i.searchParams,n=i.pathname||null}catch{return null}let i=e=>g(t.get(e)),a=g(t.get("gclid"))??g(t.get("fbclid"))??g(t.get("ttclid"))??g(t.get("msclkid")),r=function(e,t){let n;if(!e)return null;try{n=new URL(e).host}catch{return null}return!n||t&&n.toLowerCase()===t.toLowerCase()?null:n}(e.referrer,e.selfHost),o=i("utm_source")??function(e){if(!e)return null;let t=e.toLowerCase();for(let[e,n]of x)if(e.test(t))return n;return t}(r);if(!o&&!a)return null;let s=i("utm_medium")??(a?"paid":o&&y.has(o)?"organic":r?"referral":null);return{source:o??(a?"paid":null),medium:s,campaign:i("utm_campaign"),content:i("utm_content"),term:i("utm_term"),clickId:a,referrer:g(e.referrer??null),landingPath:n,at:e.now}}({url:window.location.pathname+window.location.search,referrer:document.referrer||null,selfHost:window.location.host,now:new Date().toISOString()});if(!e)return;let t=function(e){let t=document.cookie.split("; ").find(t=>t.startsWith(`${e}=`))?.slice(e.length+1);if(!t)return null;try{let e=JSON.parse(decodeURIComponent(t));return e&&"object"==typeof e?e:null}catch{return null}}(h),n=function(e,t){if(!t)return e??null;let n=e??{};return{first:n.first??t,last:t,visitCount:Math.max(1,Number(n.visitCount??0)+1)}}(t,e);if(!n)return;v(h,{first:n.first,visitCount:n.visitCount}),v("zb_attr_last",{last:n.last})}catch{}},[e,t]),null}function v(e,t){let n=encodeURIComponent(JSON.stringify(t));n.length>
873500||(document.cookie=`${e}=${n}; Max-Age=2592000; Path=/; SameSite=Lax`)}e.i(390607);var z=e.i(831235);function j(){let e=(0,o.usePathname)(),t=(0,o.useSearchParams)();return(0,r.useEffect)(()=>{let n=t?.get(z.MEIAN_RID_QUERY_PARAM)??null,i=t?.get(z.MEIAN_CLICK_ID_QUERY_PARAM)??null;if(!n&&!i)return;let a=e??window.location.pathname;n&&i&&(document.cookie=`${z.MEIAN_RID_COOKIE_NAME}=${encodeURIComponent(k(n))}; Path=/; SameSite=Lax`,document.cookie=`${z.MEIAN_CLICK_ID_COOKIE_NAME}=${encodeURIComponent(k(i))}; Path=/; SameSite=Lax`);let r=JSON.stringify({...n?{rid:n}:{},...i?{clickId:i}:{},landingPath:a});try{if(navigator.sendBeacon){let e=new Blob([r],{type:"application/json"});navigator.sendBeacon("/v1/meian/track",e)}else fetch("/v1/meian/track",{method:"POST",headers:{"Content-Type":"application/json"},body:r,credentials:"include",keepalive:!0}).catch(()=>void 0)}catch{}},[e,t]),null}function k(e){return e.slice(0,z.MEIAN_TRACKING_PARAM_MAX_LENGTH)}var C=e.i(202154);function S(){let e=(0,o.useSearchParams)(),[n,i]=(0,r.useState)(null),a=e?.get(z.MEIAN_RID_QUERY_PARAM)??null,s=e?.get(z.MEIAN_CLICK_ID_QUERY_PARAM)??null;(0,r.useEffect)(()=>{if(!a||!s||function(){if("u"<typeof document)return null;let e=RegExp(`(?:^|;\\s*)${z.MEIAN_ENTRY_NOTICE_COOKIE_NAME}=([^;]*)`).exec(document.cookie);return e?decodeURIComponent(e[1]):null}()===s)return;let e=!1;return(async()=>{try{let t=await fetch("/v1/public/meian/anti-fraud?placement=entry_notice",{credentials:"include"});if(!t.ok)return;let n=await t.json();!e&&n.shouldDisplay&&i(n)}catch{}})(),()=>{e=!0}},[a,s]);let l=(0,r.useCallback)(()=>{i(null),s&&(document.cookie=`${z.MEIAN_ENTRY_NOTICE_COOKIE_NAME}=${encodeURIComponent(s)}; Path=/; SameSite=Lax`)},[s]);return n?(0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"meian-entry-notice-title",className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/50 p-4",children:(0,t.jsxs)("div",{className:"w-full max-w-md rounded-lg bg-white p-6 shadow-xl",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsx)("h2",{id:"meian-entry-notice-title",className:"text-lg font-bold text-[#b91c1c]",children:"防詐騙提醒"}),(0,t.jsx)("button",{type:"button",onClick:l,"aria-label":"關閉防詐騙提醒",className:"-mr-1 -mt-1 rounded p-1 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900",children:(0,t.jsx)(C.X,{size:20})})]}),(0,t.jsx)("p",{className:"mt-3 text-[15px] leading-relaxed text-gray-800",children:n.content}),n.resources.length>0&&(0,t.jsx)("ul",{className:"mt-4 space-y-1.5",children:n.resources.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-[#1d4ed8] underline underline-offset-2",children:e.label})},e.url))}),(0,t.jsx)("div",{className:"mt-5 flex justify-end",children:(0,t.jsx)("button",{type:"button",onClick:l,className:"rounded-md bg-[#1d4ed8] px-5 py-2.5 text-sm font-semibold text-white transition-opacity hover:opacity-90",children:"我知道了"})})]})}):null}var N=r;let E=new Map,_=!1;function A(e){if(!_)try{let t;if(!function(e){let t=Date.now(),n=E.get(e);if(n&&t-n<6e4)return!1;if(E.set(e,t),E.size>100)for(let[e,n]of E.entries())t-n>6e4&&E.delete(e);return!0}((t=e.stack?.split("\n")[0]??"",`${e.url}||${e.message}||${t}`)))return;let n=JSON.stringify(e);if("u">typeof navigator&&navigator.sendBeacon){let e=new Blob([n],{type:"application/json"});navigator.sendBeacon("/v1/public/errors/log",e);return}fetch("/v1/public/errors/log",{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0}).catch(()=>{})}catch(e){_=!0}}function T(e,t){if(e)return e.length>t?e.slice(0,t):e}class L extends N.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){A({message:T(e.message,8e3)??"unknown error",url:window.location.href,stack:T(`${e.stack??""}
88--- componentStack ---
89${t.componentStack??""}`,2e4)})}render(){return this.props.children}}function I(){return(0,N.useEffect)(()=>{let e=e=>{A({message:T(e.message,8e3)??"unknown error",url:window.location.href,stack:T(e.error?.stack,2e4),source:T(e.filename,2e3),line:e.lineno,column:e.colno})},t=e=>{let t=e.reason,n=t instanceof Error?t.message:"string"==typeof t?t:"Unhandled promise rejection",i=t instanceof Error?t.stack:void 0;A({message:T(n,8e3)??"unhandled rejection",url:window.location.href,stack:T(i,2e4)})};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",t),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",t)}},[]),null}function $({children:e}){return(0,t.jsxs)(L,{children:[(0,t.jsx)(I,{}),e]})}var R=e.i(33314),D=e.i(569304),M=e.i(967942),P=e.i(426800),O=e.i(885316),F=e.i(383342),U=e.i(351796),q=e.i(727388),B=e.i(571398),W=e.i(813162),H=e.i(848552),K=e.i(450839),G=e.i(545055),Y=e.i(197280),X=e.i(485750),V=e.i(292799),J=e.i(502948),Q=e.i(501688),Z=e.i(349526),ee=e.i(708488),et=e.i(615983),en=e.i(826715),ei=e.i(16708),ea=e.i(946532),er
89=e.i(493044),eo=e.i(828374),es=e.i(275172),el=e.i(157688);let ec=new Map;function ed(e,t){let n=(e??"").trim();return n?`${n}::${t}`:null}function eu(e){if(e)return ec.get(e)?.value}function ep(e,t){e&&ec.set(e,{value:t,at:Date.now()})}let ef={border:"1px solid rgba(0,0,0,0.08)",borderRadius:12,padding:12,background:"#fff"},eb={color:"#6b7280",fontSize:13};function em({children:e}){return(0,t.jsx)("div",{style:{padding:"32px 12px",textAlign:"center",...eb},children:e})}function eh(){let e=(0,c.useTranslations)("shopUi");return(0,t.jsxs)(em,{children:[(0,t.jsx)(G.Loader2,{size:18,className:"animate-spin",style:{display:"inline"}})," ",e("loading")]})}function eg({message:e}){let n=(0,c.useTranslations)("shopUi");return(0,t.jsxs)("div",{style:{...ef,textAlign:"center",padding:20},children:[(0,t.jsx)(J.GraduationCap,{size:28,style:{color:"#9ca3af",margin:"0 auto 8px"}}),(0,t.jsx)("p",{style:{...eb,marginBottom:12},children:e}),(0,t.jsxs)(d.Link,{href:"/account",style:{display:"inline-flex",alignItems:"center",gap:6,fontSize:13,fontWeight:600,color:"#111",textDecoration:"none",border:"1px solid rgba(0,0,0,0.12)",borderRadius:8,padding:"7px 14px"},children:[(0,t.jsx)(U.LogIn,{size:14})," ",n("signInRegister")]})]})}function ex(e,t,n,i){let a=ed(e,t),[o,s]=(0,r.useState)(()=>eu(a)??null),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(!i)return;let e=!1,t=eu(a)??null;return s(t),c(!1),n().then(t=>{e||(ep(a,t),s(t))}).catch(()=>{e||null!==t||c(!0)}),()=>{e=!0}},[a,i]),{data:o,failed:l}}function ey({customer:e,customerChecked:n}){let i=(0,c.useTranslations)("shopUi"),{data:a,failed:r}=ex(e?.email??null,"courses",async()=>{let e=await (0,en.accountApi)("/v1/me/courses");return Array.isArray(e)?e:[]},!!e);return n?e?(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,t.jsxs)("div",{style:{...ef,display:"flex",alignItems:"center",gap:10},children:[(0,t.jsx)("span",{style:{width:36,height:36,borderRadius:"50%",background:"#f3f4f6",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:(0,t.jsx)(J.GraduationCap,{size:18,style:{color:"#6b7280"}})}),(0,t.jsxs)("span",{style:{minWidth:0},children:[(0,t.jsx)("span",{style:{display:"block",fontSize:14,fontWeight:600,color:"#111"},children:e.name||i("myAccount")}),e.email&&(0,t.jsx)("span",{style:{display:"block",fontSize:12,color:"#6b7280",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.email})]}),(0,t.jsx)(d.Link,{href:"/account",style:{marginLeft:"auto",fontSize:12,color:"#6b7280",textDecoration:"none",flexShrink:0},children:i("accountSettings")})]}),(0,t.jsx)("p",{style:{fontSize:12,fontWeight:600,color:"#374151",margin:"2px 2px 0"},children:i("myCourses")}),r?(0,t.jsx)(em,{children:i("loadCoursesFailed")}):null===a?(0,t.jsx)(eh,{}):0===a.length?(0,t.jsx)(em,{children:i("noEnrolledCourses")}):a.map(e=>(0,t.jsxs)(d.Link,{href:`/account/courses/${e.course.slug}`,style:{...ef,display:"block",textDecoration:"none",color:"inherit"},children:[(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{flex:1,minWidth:0,fontSize:14,fontWeight:600,color:"#111",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.course.title}),(0,t.jsx)(el.ChevronRight,{size:15,style:{color:"#9ca3af",flexShrink:0}})]}),(0,t.jsxs)("span",{style:{display:"block",marginTop:8},children:[(0,t.jsx)("span",{style:{display:"block",height:6,borderRadius:999,background:"#f3f4f6",overflow:"hidden"},children:(0,t.jsx)("span",{style:{display:"block",height:"100%",width:`${e.progress.percent}%`,background:"#111",borderRadius:999}})}),(0,t.jsxs)("span",{style:{display:"block",marginTop:4,fontSize:11,color:"#6b7280"},children:[i("courseProgress",{percent:e.progress.percent,completed:e.progress.completed,total:e.progress.total}),e.certificate?` \xb7 ${i("certificateEarned")}`:""]})]})]},e.course.id))]}):(0,t.jsx)(eg,{message:i("coursesLoginPrompt")}):(0,t.jsx)(eh,{})}function ew({customer:e,customerChecked:n}){let i=(0,c.useTranslations)("shopUi"),a=e?.email??null,{data:r}=ex(a,"course-events",async()=>{try{let e=await (0,en.accountApi)("/v1/me/course-events");return Array.isArray(e)?e:[]}catch{return[]}},!!e),{data:o}=ex(a,"rewards",async()=>{try{let e=await (0,en.accountApi)("/v1/me/rewards");return Array.isArray(e)?e:[]}catch{return[]}},!!e);return n?e?(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{style:{fontSize:12,fontWeight:600,color:"#374151",margin:"0 2px 8px",display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)(ea.CalendarDays,{size:13})," ",i("upcomingActivities")]}),null===r?(0,t.jsx)(eh,{}):0===r.length?(0,t.jsx)(em,{children:i("noScheduledActivities")}):(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:r.slice(0,8).map(e=>(0,t.jsxs)("div",{style:ef,children:[(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)("span",{style:{flex:1,minWidth:0,fontSize:13.5,fontWeight:600,color:"#111"},children:e.title}),e.registered&&(0,t.jsx)("span",{style:{fontSize:10,padding:"1px 7px",borderRadius:999,background:"#ecfdf5",color:"#047857",flexShrink:0},children:i("registered")})]}),(0,t.jsxs)("span",{style:{display:"block",marginTop:3,fontSize:12,color:"#6b7280"},children:[(e=>{try{let t=new Date(e);return`${t.getMonth()+1}/${t.getDate()} ${String(t.getHours()).padStart(2,"0")}
89:${String(t.getMinutes()).padStart(2,"0")}`}catch{return""}})(e.startAt),e.location?` \xb7 ${e.location}`:"online"===e.type?` \xb7 ${i("online")}`:""]})]},e.id))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{style:{fontSize:12,fontWeight:600,color:"#374151",margin:"0 2px 8px",display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)(er.Trophy,{size:13})," ",i("learningTask")]}),null===o?(0,t.jsx)(eh,{}):0===o.length?(0,t.jsx)(em,{children:i("noRewardsHint")}):(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:o.slice(0,8).map((e,n)=>(0,t.jsxs)("div",{style:{...ef,display:"flex",alignItems:"center",gap:8},children:[(0,t.jsx)(er.Trophy,{size:14,style:{color:"#d97706",flexShrink:0}}),(0,t.jsx)("span",{style:{flex:1,minWidth:0,fontSize:13.5,color:"#111"},children:e.title||e.name||i("learningTask")}),e.status&&(0,t.jsx)("span",{style:{fontSize:10,padding:"1px 7px",borderRadius:999,background:"#f3f4f6",color:"#6b7280",flexShrink:0},children:e.status})]},e.id??n))})]})]}):(0,t.jsx)(eg,{message:i("activitiesLoginPrompt")}):(0,t.jsx)(eh,{})}let ev={assignment_graded:eo.ClipboardCheck,comment_reply:es.MessageCircle,announcement:H.Megaphone};function ez({customer:e,customerChecked:n,onSeen:i}){let a=(0,c.useTranslations)("shopUi"),{data:r}=ex(e?.email??null,"notifications",async()=>{try{let e=await (0,en.accountApi)("/v1/me/course-notifications");return(0,en.accountApi)("/v1/me/course-notifications/mark-seen",{method:"POST"}).then(()=>i?.()).catch(()=>{}),e?.items??[]}catch{return[]}},!!e);return n?e?null===r?(0,t.jsx)(eh,{}):0===r.length?(0,t.jsx)(em,{children:a("noNewNotifications")}):(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:r.map(e=>{let n=ev[e.type]??Q.Bell,i=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{style:{width:30,height:30,borderRadius:8,flexShrink:0,background:e.unread?"#eff6ff":"#f3f4f6",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,t.jsx)(n,{size:15,style:{color:e.unread?"#2563eb":"#6b7280"}})}),(0,t.jsxs)("span",{style:{minWidth:0,flex:1},children:[(0,t.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,t.jsx)("span",{style:{fontSize:13.5,fontWeight:e.unread?700:500,color:"#111",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.title}),e.unread&&(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"#ef4444",flexShrink:0}})]}),e.body&&(0,t.jsx)("span",{style:{display:"block",fontSize:12,color:"#6b7280",marginTop:2,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.body}),(0,t.jsxs)("span",{style:{display:"block",fontSize:11,color:"#9ca3af",marginTop:3},children:[e.courseTitle?`${e.courseTitle} \xb7 `:"",(e=>{try{let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let n=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${t.getMonth()+1}/${t.getDate()} ${n}:${i}`}catch{return""}})(e.occurredAt)]})]})]}),a={...ef,display:"flex",gap:10,alignItems:"flex-start",textDecoration:"none",color:"inherit",background:e.unread?"#fafcff":"#fff"};return e.courseSlug?(0,t.jsx)(d.Link,{href:`/account/courses/${e.courseSlug}`,style:a,children:i},e.id):(0,t.jsx)("div",{style:a,children:i},e.id)})}):(0,t.jsx)(eg,{message:a("notificationsLoginPrompt")}):(0,t.jsx)(eh,{})}let ej={"shopping-bag":M.ShoppingBag,"shopping-cart":F.ShoppingCart,basket:F.ShoppingCart,package:V.Package,gift:O.Gift,sparkles:B.Sparkles},ek=/^\/(en|ja|ko)(?=\/|$)/,eC="/shop";function eS({initial:e}={}){let n=(0,o.usePathname)(),a=(0,c.useTranslations)("shopUi"),{items:s,count:l,subtotal:d,updateQty:u,removeItem:p,appliedCodes:f,applyCode:b,removeCode:m,lastAddedAt:h}=(0,R.useCart)(),g=(0,i.useConfirm)(),[x,y]=(0,r.useState)(!1),[w,v]=(0,r.useState)("cart"),[z,j]=(0,r.useState)(!1),[k,S]=(0,r.useState)(null),[N,E]=(0,r.useState)(!1),[_,A]=(0,r.useState)(null),[T,L]=(0,r.useState)(!1),[I,$]=(0,r.useState)(e?.visibility??"always"),[P,O]=(0,r.useState)(e?.iconName??"shopping-bag"),[U,q]=(0,r.useState)(e?.position??"bottom-left"),[B,W]=(0,r.useState)(e?.openOnAdd??!1),[K,G]=(0,r.useState)(e?.excludePaths??[]),[Y,V]=(0,r.useState)(eC),[ee,et]=(0,r.useState)("cart"),[ea,er]=(0,r.useState)(0),[eo,es]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{j(!0)},[]),(0,r.useEffect)(()=>{let e=()=>{es("u">typeof document&&"1"===document.body.dataset.zbFlashPage)};e();let t=setTimeout(e,0);return()=>clearTimeout(t)},[n]),(0,r.useEffect)(()=>{let e=!1;return fetch("/v1/public/settings",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{if(e||!t)return;let n=t["commerce.cart_widget_visibility"];("hide"===n||"shop-only"===n||"always"===n||"never"===n)&&$(n);let i=t["commerce.cart_widget_mode"];("cart"===i||"course"===i)&&et(i);let a=t["commerce.cart_widget_icon"];"string"==typeof a&&a in ej&&O(a);let r=t["commerce.cart_widget_position"];("bottom-left"===r||"bottom-right"===r||"top-right"===r)&&q(r),W("true"===t["commerce.cart_widget_open_on_add"]);let o=t["commerce.cart_widget_exclude_paths"];Array.isArray(o)&&G(o.filter(e=>"string"==typeof e&&e.startsWith("/")));let s=t["commerce.cart_continue_shopping_url"];"string"==typeof s&&""!==s.trim()&&V(function(e){if("string"==typeof e){let t=e.trim();if(t.startsWith("/")&&!t.startsWith("//"))return t}return eC}(s))}).catch(()=>{}),()=>{e=!0}},[]),(0,r.useEffect)(()=>
89{if("course"!==ee||!k)return void er(0);let e=!1;return(0,en.accountApi)("/v1/me/course-notifications").then(t=>{e||er("number"==typeof t?.unreadCount?t.unreadCount:0)}).catch(()=>{}),()=>{e=!0}},[ee,k]),(0,r.useEffect)(()=>{if(!z||!h)return;L(!0);let e=setTimeout(()=>L(!1),500);return()=>clearTimeout(e)},[h,z]),(0,r.useEffect)(()=>{if(!z||!h||!B)return;let e=setTimeout(()=>y(!0),300);return()=>clearTimeout(e)},[h,z,B]),(0,r.useEffect)(()=>{if(0===s.length)return void A(null);let e=!1,t=setTimeout(()=>{(0,ei.previewCart)({items:s.map(e=>({productId:e.productId,variantId:e.variantId,quantity:e.quantity})),discountCodes:f}).then(t=>{e||A(t)})},300);return()=>{e=!0,clearTimeout(t)}},[s,f]),(0,r.useEffect)(()=>{if(!x||N)return;let e=!1;return(0,en.accountApi)("/v1/account/me").then(t=>{e||S(t.customer)}).catch(t=>{e||t instanceof en.AccountApiError&&401!==t.status||S(null)}).finally(()=>{e||E(!0)}),()=>{e=!0}},[x,N]),(0,r.useEffect)(()=>{x&&N&&k&&function(e){if(!e)return;let t=(t,n)=>{n.then(n=>ep(ed(e,t),n)).catch(()=>{})};t("courses",(0,en.accountApi)("/v1/me/courses").then(e=>Array.isArray(e)?e:[])),t("course-events",(0,en.accountApi)("/v1/me/course-events").then(e=>Array.isArray(e)?e:[])),t("notifications",(0,en.accountApi)("/v1/me/course-notifications").then(e=>e?.items??[]))}(k.email??null)},[x,N,k]),(0,r.useEffect)(()=>{if(!x)return;let e=e=>{"Escape"===e.key&&y(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x]),n&&/\/(checkout|cart)(?:\/|$)/.test(n)||eo)return null;if(z&&n){let e,t=""===(e=n.replace(ek,""))?"/":e;if(K.some(e=>(function(e,t){if(t.endsWith("/*")){let n=t.slice(0,-2)||"/";return"/"===n||e===n||e.startsWith(n+"/")}return e===t})(t,e)))return null}let el="course"===ee;if("never"===I)return null;if(z&&0===l&&!el&&("hide"===I||"shop-only"===I&&!(n&&/(^|\/)(shop|account)(?:\/|$)/.test(n))))return null;let ec=el?J.GraduationCap:ej[P]??M.ShoppingBag,eu=el?ea:l,ef=z&&eu>0;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{type:"button","aria-label":el?a("courseAssistantUnread",{count:ea}):a("cartItemCount",{count:l}),title:el?a("courseAssistant"):a("cart"),onClick:()=>y(e=>!e),"data-position":U,"aria-expanded":x,className:"jsx-6feceab80db72b2c zb-cart-widget-btn",children:[(0,t.jsx)(ec,{size:22,"aria-hidden":!0,className:"jsx-6feceab80db72b2c"}),ef&&(0,t.jsx)("span",{style:el?{background:"#ef4444",color:"#fff"}:void 0,"aria-hidden":!0,className:`jsx-6feceab80db72b2c zb-cart-widget-badge ${T&&!el?"is-pulsing":""}`,children:eu>99?"99+":eu})]}),x&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button","aria-label":a("closeCartPreview"),onClick:()=>y(!1),className:"jsx-6feceab80db72b2c zb-cart-widget-backdrop"}),(0,t.jsxs)("div",{role:"dialog","aria-label":el?a("courseAssistant"):a("cartAndOffers"),"data-position":U,className:"jsx-6feceab80db72b2c zb-cart-widget-popup",children:[(0,t.jsxs)("header",{className:"jsx-6feceab80db72b2c zb-cart-widget-tabs",children:[(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":"cart"===w,onClick:()=>v("cart"),className:`jsx-6feceab80db72b2c zb-cart-widget-tab ${"cart"===w?"is-active":""}`,children:[(0,t.jsx)(F.ShoppingCart,{size:15}),a("cart"),z&&l>0&&(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-tab-count",children:l})]}),(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":"rewards"===w,onClick:()=>v("rewards"),className:`jsx-6feceab80db72b2c zb-cart-widget-tab ${"rewards"===w?"is-active":""}`,children:[(0,t.jsx)(X.User,{size:15}),(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-tab-label-full",children:a("myAccount")}),(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-tab-label-short",children:a("myAccountShort")})]}),(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":"activities"===w,onClick:()=>v("activities"),className:`jsx-6feceab80db72b2c zb-cart-widget-tab ${"activities"===w?"is-active":""}`,children:[el?(0,t.jsx)(Z.BookOpen,{size:15}):(0,t.jsx)(H.Megaphone,{size:15}),(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-tab-label-full",children:el?a("learningActivities"):a("rewardActivities")}),(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-tab-label-short",children:el?a("learningActivitiesSh
89ort"):a("rewardActivitiesShort")})]}),el&&(0,t.jsxs)("button",{type:"button",role:"tab","aria-selected":"notifications"===w,onClick:()=>v("notifications"),style:{position:"relative"},className:`jsx-6feceab80db72b2c zb-cart-widget-tab ${"notifications"===w?"is-active":""}`,children:[(0,t.jsx)(Q.Bell,{size:15}),a("notifications"),ea>0&&(0,t.jsx)("span",{"aria-hidden":!0,style:{position:"absolute",top:4,right:6,minWidth:16,height:16,padding:"0 4px",borderRadius:999,background:"#ef4444",color:"#fff",fontSize:10,fontWeight:700,lineHeight:"16px",textAlign:"center"},className:"jsx-6feceab80db72b2c",children:ea>99?"99+":ea})]}),(0,t.jsx)("span",{className:"jsx-6feceab80db72b2c zb-cart-widget-spacer"}),(0,t.jsx)("button",{type:"button","aria-label":a("close"),onClick:()=>y(!1),className:"jsx-6feceab80db72b2c zb-cart-widget-close",children:(0,t.jsx)(C.X,{size:18})})]}),(0,t.jsxs)("div",{className:"jsx-6feceab80db72b2c zb-cart-widget-body",children:["cart"===w&&(0,t.jsx)(eN,{mounted:z,items:s,count:l,subtotal:d,updateQty:u,removeItem:async(e,t,n)=>{await g({title:a("removeItem"),message:a("removeItemConfirm",{name:n}),confirmLabel:a("remove"),cancelLabel:a("cancel"),variant:"danger"})&&p(e,t)},appliedCodes:f,removeCode:m,onNavigate:()=>y(!1),preview:_,continueShoppingUrl:Y}),"rewards"===w&&(el?(0,t.jsx)(ey,{customer:k,customerChecked:N}):(0,t.jsx)(e_,{customer:k,customerChecked:N,onLoginSuccess:e=>S(e),appliedCodes:f,applyCode:b,preview:_})),"activities"===w&&(el?(0,t.jsx)(ew,{customer:k,customerChecked:N}):(0,t.jsx)(eT,{appliedCodes:f,applyCode:b,preview:_})),"notifications"===w&&el&&(0,t.jsx)(ez,{customer:k,customerChecked:N,onSeen:()=>er(0)})]})]})]}),(0,t.jsx)(D.default,{id:"eeadc88e271830b8",children:'.zb-cart-widget-btn.jsx-6feceab80db72b2c{z-index:var(--zb-z-cart-widget,70);-webkit-backdrop-filter:saturate(180%)blur(16px);color:#1a1a1a;cursor:pointer;background:#ffffffeb;border:1px solid #fff9;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s;display:inline-flex;position:fixed;bottom:20px;left:20px;box-shadow:0 1px 2px #0000000f,0 8px 24px #0000001f}.zb-cart-widget-btn.jsx-6feceab80db72b2c:hover{transform:translateY(-1px);box-shadow:0 2px 4px #00000014,0 12px 32px #0000002e}.zb-cart-widget-btn.jsx-6feceab80db72b2c:active{transform:translateY(0)}.zb-cart-widget-btn[data-position=bottom-right].jsx-6feceab80db72b2c{left:auto;right:20px}.zb-cart-widget-btn[data-position=top-right].jsx-6feceab80db72b2c{inset:20px 20px auto auto}@media (width>=960px){.zb-cart-widget-btn.jsx-6feceab80db72b2c{width:56px;height:56px;bottom:28px;left:28px}.zb-cart-widget-btn[data-position=bottom-right].jsx-6feceab80db72b2c{left:auto;right:28px}.zb-cart-widget-btn[data-position=top-right].jsx-6feceab80db72b2c{inset:28px 28px auto auto}}.zb-cart-widget-badge.jsx-6feceab80db72b2c{color:#fff;pointer-events:none;background:#1a1a1a;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;position:absolute;top:-2px;right:-2px;box-shadow:0 0 0 2px #fffffff2}.zb-cart-widget-badge.is-pulsing.jsx-6feceab80db72b2c{animation:.48s cubic-bezier(.5,1.25,.55,1) zb-cart-badge-pop}@keyframes zb-cart-badge-pop{0%{transform:scale(1)}45%{transform:scale(1.1)}to{transform:scale(1)}}.zb-cart-widget-backdrop.jsx-6feceab80db72b2c{z-index:80;cursor:pointer;background:#00000026;border:0;padding:0;animation:.18s ease-out zb-cart-fade-in;position:fixed;inset:0}@keyframes zb-cart-fade-in{0%{opacity:0}to{opacity:1}}.zb-cart-widget-popup.jsx-6feceab80db72b2c{color:#1a1a1a;z-index:81;transform-origin:0 100%;background:#fff;border-radius:14px;flex-direction:column;max-width:480px;min-height:380px;max-height:calc(100vh - 120px);animation:.22s cubic-bezier(.2,.8,.2,1) zb-cart-popup-in;display:flex;position:fixed;bottom:84px;left:20px;right:20px;overflow:hidden;box-shadow:0 4px 16px #00000014,0 24px 56px #00000038}.zb-cart-widget-popup[data-position=bottom-right].jsx-6feceab80db72b2c{transform-origin:100% 100%}.zb-cart-widget-popup[data-position=top-right].jsx-6feceab80db72b2c{transform-origin:100% 0;inset:84px 12px auto auto}@keyframes zb-cart-popup-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width>=960px){.zb-cart-widget-popup.jsx-6feceab80db72b2c{width:540px;min-height:460px;max-height:calc(100vh - 140px);bottom:96px;left:28px;right:auto}.zb-cart-widget-popup[data-position=bottom-right].jsx-6feceab80db72b2c{left:auto;right:28px}.zb-cart-widget-popup[data-position=top-right].jsx-6feceab80db72b2c{inset:96px 28px auto auto}.zb-cart-widget-tab.jsx-6feceab80db72b2c{gap:7px;padding:16px 18px;font-size:14px}.zb-cart-widget-tab-count.jsx-6feceab80db72b2c{min-width:20px;height:20px;font-size:11px}}.zb-cart-widget-tabs.jsx-6feceab80db72b2c{border-bottom:1px solid #f1f1f1;flex-shrink:0;align-items:center;gap:0;padding:0 8px;display:flex}.zb-cart-widget-tab.jsx-6feceab80db72b2c{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:14px;font-size:13px;font-weight:600;transition:color .12s;display:inline-flex;position:relative}.zb-cart-widget-tab-label-full.jsx-6feceab80db72b2c{display:inline}.zb-cart-widget-tab-label-short.jsx-6feceab80db72b2c{display:none}.zb-cart-widget-tab.jsx-6feceab80db72b2c:hover,.zb-cart-widget-tab.is-active.jsx-6feceab80db72b2c{color:#1
89a1a1a}.zb-cart-widget-tab.is-active.jsx-6feceab80db72b2c:after{content:"";background:#1a1a1a;border-radius:1px;height:2px;position:absolute;bottom:-1px;left:14px;right:14px}.zb-cart-widget-tab-count.jsx-6feceab80db72b2c{color:#1a1a1a;background:#f3f4f6;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}@media (width<=959px){.zb-cart-widget-tab-label-full.jsx-6feceab80db72b2c{display:none}.zb-cart-widget-tab-label-short.jsx-6feceab80db72b2c{display:inline}.zb-cart-widget-tab.jsx-6feceab80db72b2c .zb-cart-widget-tab-count.jsx-6feceab80db72b2c{min-width:16px;height:16px;padding:0 4px;font-size:9px;position:absolute;top:4px;right:0}}.zb-cart-widget-tab.is-active.jsx-6feceab80db72b2c .zb-cart-widget-tab-count.jsx-6feceab80db72b2c{color:#fff;background:#1a1a1a}.zb-cart-widget-spacer.jsx-6feceab80db72b2c{flex:1}.zb-cart-widget-close.jsx-6feceab80db72b2c{color:#6b7280;cursor:pointer;background:0 0;border:0;border-radius:6px;margin-right:4px;padding:8px}.zb-cart-widget-close.jsx-6feceab80db72b2c:hover{color:#1a1a1a;background:#f3f4f6}.zb-cart-widget-body.jsx-6feceab80db72b2c{flex-direction:column;flex:1;display:flex;overflow-y:auto}'}),(0,t.jsx)(D.default,{id:"867a11c512db865b",children:".zb-cart-tab-empty{text-align:center;color:#6b7280;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:56px 24px;display:flex}.zb-cart-tab-empty-icon{color:#d1d5db;margin-bottom:12px}.zb-cart-tab-empty-msg{margin:0 0 16px;font-size:14px}.zb-cart-tab-shop-link{color:#fff;background:#1a1a1a;border-radius:6px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.zb-cart-tab-list{flex:1;margin:0;padding:0;list-style:none}.zb-cart-tab-item{border-bottom:1px solid #f3f4f6;gap:12px;padding:14px 20px;display:flex;position:relative}.zb-cart-tab-item:last-child{border-bottom:0}.zb-cart-tab-img,.zb-cart-tab-img-placeholder{object-fit:cover;background:#f3f4f6;border-radius:6px;flex-shrink:0;width:60px;height:60px}.zb-cart-tab-info{flex:1;min-width:0}.zb-cart-tab-name{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;padding-right:24px;font-size:13px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.zb-cart-tab-variant{color:#6b7280;margin:2px 0 0;font-size:11px}.zb-cart-tab-bottom{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.zb-cart-tab-qty{border:1px solid #e5e7eb;border-radius:4px;align-items:center;display:inline-flex}.zb-cart-tab-qty button{color:#1a1a1a;cursor:pointer;background:0 0;border:0;width:26px;height:26px;font-size:13px;line-height:1}.zb-cart-tab-qty button:disabled{color:#9ca3af;cursor:not-allowed}.zb-cart-tab-qty span{text-align:center;font-variant-numeric:tabular-nums;min-width:24px;padding:0 4px;font-size:12px;font-weight:600}.zb-cart-tab-price{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.zb-cart-tab-remove{color:#9ca3af;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px;position:absolute;top:14px;right:18px}.zb-cart-tab-remove:hover{color:#dc2626}.zb-cart-tab-footer{background:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;padding:14px 20px 18px}.zb-cart-tab-subtotal{justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:14px;display:flex}.zb-cart-tab-subtotal-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.zb-cart-tab-subtotal-count{color:#6b7280;margin-left:4px;font-size:13px;font-weight:400}.zb-cart-tab-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.zb-cart-tab-action-primary,.zb-cart-tab-action-secondary{text-align:center;border-radius:6px;padding:11px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .12s}.zb-cart-tab-action-primary{color:#fff;background:#1a1a1a}.zb-cart-tab-action-primary:hover{opacity:.92}.zb-cart-tab-action-secondary{color:#1a1a1a;background:0 0;border:1px solid #e5e7eb}.zb-cart-tab-action-secondary:hover{background:#f9fafb}.zb-rewards-tab{flex-direction:column;gap:16px;padding:16px 20px 20px;display:flex}.zb-rewards-login-fill{text-align:center;background:#fafafa;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;padding:24px 24px 64px;display:flex}.zb-rewards-login-icon{color:#9ca3af}
89.zb-rewards-login-title{color:#1a1a1a;margin:14px 0 8px;font-size:15px;font-weight:600}.zb-rewards-login-desc{color:#6b7280;margin:0 0 20px;font-size:12px;line-height:1.6}.zb-rewards-login-cta{color:#fff;background:#1a1a1a;border-radius:6px;align-items:center;gap:6px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.zb-rewards-login-cta:hover{opacity:.92}.zb-rewards-member-cta{margin-top:10px}.zb-rewards-section{background:#fafafa;border:1px solid #f3f4f6;border-radius:10px;padding:14px 16px}.zb-rewards-section-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.zb-rewards-section-head h3{color:#1a1a1a;margin:0;font-size:13px;font-weight:700}.zb-rewards-section-icon{color:#1a1a1a;background:#fff;border:1px solid #e5e7eb;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.zb-rewards-section-empty{color:#6b7280;margin:0;font-size:12px;line-height:1.55}.zb-rewards-section-value{justify-content:space-between;align-items:baseline;margin-top:2px;display:flex}.zb-rewards-section-value strong{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.zb-rewards-section-value span{color:#6b7280;font-size:11px}.zb-rewards-empty-pill{color:#9ca3af;background:#fff;border:1px dashed #d1d5db;border-radius:999px;padding:3px 9px;font-size:11px;display:inline-block}.zb-rewards-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.zb-rewards-list-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.zb-rewards-list-item strong{color:#111827;font-size:13px;font-weight:600;display:block}.zb-rewards-list-item p{color:#4b5563;margin:4px 0 0;font-size:12px;line-height:1.5}.zb-rewards-account-link{color:#2563eb;margin-top:10px;font-size:12px;text-decoration:none;display:inline-block}.zb-rewards-account-link:hover{text-decoration:underline}.zb-rewards-balance-inline{align-items:baseline;gap:4px;margin-top:2px;display:flex}.zb-rewards-balance-inline strong{font-variant-numeric:tabular-nums;color:#111827;font-size:22px;font-weight:700}.zb-rewards-balance-inline span{color:#6b7280;font-size:12px}.zb-rewards-identity{background:0 0;border:1px dashed #d1d5db;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.zb-rewards-identity-row{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.zb-rewards-identity-avatar{color:#6b7280;background:#f3f4f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.zb-rewards-identity-info{flex-direction:column;min-width:0;display:flex}.zb-rewards-identity-info strong{color:#374151;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.zb-rewards-identity-info span{color:#9ca3af;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.zb-rewards-identity-link{color:#2563eb;white-space:nowrap;flex-shrink:0;font-size:12px;text-decoration:none}.zb-rewards-identity-link:hover{text-decoration:underline}.zb-rewards-rule-line{color:#4b5563;align-items:baseline;gap:8px;margin:6px 0 0;font-size:12px;line-height:1.5;display:flex}.zb-rewards-rule-step{color:#4338ca;letter-spacing:.04em;background:#eef2ff;border-radius:999px;flex-shrink:0;align-items:center;padding:1px 7px;font-size:10px;font-weight:600;display:inline-flex}.zb-rewards-rule-step-reward{color:#92400e;background:#fef3c7}.zb-rewards-rule-note{color:#9ca3af;margin:6px 0 0;font-size:11px;line-height:1.5}.zb-rewards-discount-item{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;transition:background-color .15s;display:flex}.zb-rewards-discount-item:hover{background:#f9fafb}.zb-rewards-discount-main{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.zb-rewards-discount-code{color:#4338ca;letter-spacing:.02em;background:#eef2ff;border-radius:6px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;display:inline-block}.zb-rewards-discount-copy{color:#6b7280;font-size:11px}.zb-activities-allempty{text-align:center;color:#9ca3af;padding:48px 20px}.zb-activities-allempty-icon{color:#d1d5db;margin:0 auto 10px}.zb-activities-allempty p{color:#6b7280;margin:0;font-size:13px;font-weight:500}.zb-activities-allempty span{color:#9ca3af;margin-top:4px;font-size:11px;display:block}.zb-inline-auth{background:#fafafa;flex-direction:column;flex:1;padding:28px 24px;display:flex;overflow-y:auto}
89.zb-inline-auth-head{text-align:center;margin-bottom:20px}.zb-inline-auth-icon{color:#9ca3af}.zb-inline-auth-head h3{color:#1a1a1a;margin:12px 0 6px;font-size:15px;font-weight:600}.zb-inline-auth-head p{color:#6b7280;margin:0;font-size:12px;line-height:1.55}.zb-inline-auth-form{flex-direction:column;gap:10px;display:flex}.zb-inline-auth-field{flex-direction:column;gap:4px;display:flex}.zb-inline-auth-field span{color:#6b7280;letter-spacing:.02em;font-size:11px;font-weight:600}.zb-inline-auth-field input{color:#1a1a1a;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:10px 12px;font-size:13px;transition:border-color .12s,box-shadow .12s}.zb-inline-auth-field input:focus{border-color:#1a1a1a;box-shadow:0 0 0 3px #1a1a1a14}.zb-inline-auth-field input:disabled{color:#9ca3af;background:#f3f4f6}.zb-inline-auth-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 10px;font-size:12px}.zb-inline-auth-submit{color:#fff;cursor:pointer;background:#1a1a1a;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;margin-top:4px;padding:11px 16px;font-size:13px;font-weight:600;transition:opacity .12s;display:inline-flex}.zb-inline-auth-submit:hover:not(:disabled){opacity:.92}.zb-inline-auth-submit:disabled{cursor:not-allowed;opacity:.6}.zb-inline-auth-spin{animation:.8s linear infinite zb-cart-spin}@keyframes zb-cart-spin{to{transform:rotate(360deg)}}.zb-inline-auth-switch{color:#6b7280;cursor:pointer;text-align:center;background:0 0;border:0;margin-top:2px;padding:8px;font-size:12px}.zb-inline-auth-switch:hover{color:#1a1a1a;text-decoration:underline}.zb-activities-tab{flex-direction:column;gap:16px;padding:16px 20px 20px;display:flex}.zb-activities-section{background:#fff;border:1px solid #f3f4f6;border-radius:10px;padding:14px 16px}.zb-activities-section-head{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.zb-activities-section-head h3{color:#1a1a1a;margin:0;font-size:13px;font-weight:700}.zb-activities-section-head p{color:#6b7280;margin:2px 0 0;font-size:11px;line-height:1.5}.zb-activities-section-icon{color:#1a1a1a;background:#f9fafb;border:1px solid #e5e7eb;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.zb-activities-empty{padding:8px 0 4px}.zb-activities-task-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.zb-activities-task{background:#f9fafb;border:1px solid #f1f1f1;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.zb-activities-task-icon{color:#1a1a1a;background:#fff;border:1px solid #e5e7eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.zb-activities-task-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}
89.zb-activities-task-info strong{color:#1a1a1a;font-size:13px;font-weight:600}.zb-activities-task-info span{color:#6b7280;font-size:11px;line-height:1.4}.zb-activities-task-reward{color:#1a1a1a;white-space:nowrap;background:#fff;border:1px dashed #d1d5db;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.zb-activities-note{color:#9ca3af;margin:4px 2px 0;font-size:11px;line-height:1.55}.zb-discount-card-list{flex-direction:column;gap:8px;margin-top:4px;display:flex}.zb-discount-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;align-items:stretch;gap:10px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.zb-discount-card.is-applied{background:#f0fdf4;border-color:#bbf7d0}.zb-discount-card.is-rejected{background:#fef2f2;border-color:#fecaca}.zb-discount-card-warning{color:#991b1b;align-items:center;gap:4px;margin:4px 0 0;font-size:11px;line-height:1.5;display:inline-flex}.zb-discount-card-applied-amount{color:#166534;align-items:center;gap:4px;margin:4px 0 0;font-size:11px;font-weight:600;line-height:1.5;display:inline-flex}.zb-discount-card-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.zb-discount-card-code{color:#1a1a1a;letter-spacing:.02em;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Roboto Mono,monospace;font-size:14px;font-weight:700}.zb-discount-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.zb-discount-card-badge{color:#fff;background:#1a1a1a;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.zb-discount-card-hint{color:#6b7280;font-size:11px}.zb-discount-card-desc{color:#6b7280;margin:2px 0 0;font-size:11px;line-height:1.5}.zb-discount-card-apply{color:#fff;cursor:pointer;white-space:nowrap;background:#1a1a1a;border:0;border-radius:6px;align-self:center;align-items:center;gap:4px;padding:8px 10px;font-size:11px;font-weight:600;transition:opacity .12s;display:inline-flex}.zb-discount-card-apply:hover:not(:disabled){opacity:.92}.zb-discount-card-apply:disabled{color:#6b7280;cursor:not-allowed;background:#d1d5db}.zb-cart-tab-applied{border-bottom:1px solid #f1f1f1;flex-direction:column;gap:6px;margin-bottom:10px;padding:10px 0;display:flex}.zb-cart-tab-applied-label{color:#6b7280;font-size:11px;font-weight:600}.zb-cart-tab-applied-pills{flex-wrap:wrap;gap:6px;display:flex}.zb-cart-tab-applied-pill{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 8px;font-size:11px;display:inline-flex}.zb-cart-tab-applied-pill.is-rejected{color:#991b1b;background:#fee2e2;border-color:#fecaca}.zb-cart-tab-applied-code{font-family:ui-monospace,SFMono-Regular,Roboto Mono,monospace;font-weight:700}.zb-cart-tab-applied-amount,.zb-cart-tab-applied-reason{font-weight:400}.zb-cart-tab-applied-remove{color:#166534;cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;transition:background .12s;display:inline-flex}.zb-cart-tab-applied-remove:hover{background:#bbf7d0}.zb-cart-tab-applied-pill.is-rejected .zb-cart-tab-applied-remove{color:#991b1b}.zb-cart-tab-applied-pill.is-rejected .zb-cart-tab-applied-remove:hover{background:#fecaca}.zb-cart-tab-discount-row{color:#047857;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:13px;display:flex}.zb-cart-tab-total-row{border-top:1px solid #f1f1f1;justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-top:8px;font-size:14px;font-weight:600;display:flex}.zb-cart-tab-total-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}@media (width>=960px){.zb-cart-tab-empty{padding:72px 24px}.zb-cart-tab-empty-msg{margin-bottom:20px;font-size:15px}.zb-cart-tab-shop-link{padding:11px 22px;font-size:14px}.zb-cart-tab-item{gap:14px;padding:16px 22px}.zb-cart-tab-img,.zb-cart-tab-img-placeholder{width:72px;height:72px}.zb-cart-tab-name{font-size:14px;line-height:1.45}.zb-cart-tab-variant{font-size:12px}.zb-cart-tab-qty button{width:30px;height:30px;font-size:14px}.zb-cart-tab-qty span{min-width:28px;font-size:13px}.zb-cart-tab-price{font-size:14px}.zb-cart-tab-footer{padding:18px 22px 22px}.zb-cart-tab-subtotal{margin-bottom:14px;font-size:15px}.zb-cart-tab-subtotal-value{font-size:22px}.zb-cart-tab-subtotal-count{font-size:14px}.zb-cart-tab-actions{gap:10px}.zb-cart-tab-action-primary,.zb-cart-tab-action-secondary{padding:13px 16px;font-size:14px}.zb-rewards-tab{gap:18px;padding:20px 22px 24px}.zb-rewards-login-fill{padding:32px 32px 80px}.zb-rewards-login-title{margin-top:16px;font-size:16px}.zb-rewards-login-desc{margin-bottom:24px;font-size:13px}.zb-rewards-login-cta{padding:11px 22px;font-size:14px}.zb-rewards-section{padding:16px 18px}.zb-rewards-section-head h3{font-size:14px}.zb-rewards-section-icon{width:32px;height:32px}.zb-rewards-section-empty{font-size:13px}.zb-rewards-section-value strong{font-size:26px}.zb-rewards-section-value span{font-size:12px}.zb-rewards-empty-pill{padding:4px 10px;font-size:12px}.zb-inline-auth{padding:36px 32px}
89.zb-inline-auth-head h3{font-size:16px}.zb-inline-auth-head p{font-size:13px}.zb-inline-auth-field span{font-size:12px}.zb-inline-auth-field input{padding:11px 13px;font-size:14px}.zb-inline-auth-error{padding:10px 12px;font-size:13px}.zb-inline-auth-submit{padding:12px 18px;font-size:14px}.zb-inline-auth-switch{font-size:13px}.zb-activities-tab{gap:18px;padding:20px 22px 24px}.zb-activities-section{padding:16px 18px}.zb-activities-section-head h3{font-size:14px}.zb-activities-section-head p{font-size:12px}.zb-activities-section-icon{width:32px;height:32px}.zb-activities-task{padding:12px 14px}.zb-activities-task-info strong{font-size:14px}.zb-activities-task-info span{font-size:12px}.zb-activities-task-reward{padding:4px 10px;font-size:12px}.zb-activities-note{font-size:12px}}"})]})}function eN({mounted:e,items:n,count:i,subtotal:a,updateQty:r,removeItem:o,appliedCodes:s,removeCode:l,onNavigate:u,preview:p,continueShoppingUrl:f}){let b=(0,c.useTranslations)("shopUi"),m=p?.totalDiscount??0,h=new Map((p?.applied??[]).map(e=>[e.code,e.amount])),g=new Map((p?.rejected??[]).map(e=>[e.code,e.reason]));return e&&0!==n.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("ul",{className:"zb-cart-tab-list",children:n.map(e=>(0,t.jsxs)("li",{className:"zb-cart-tab-item",children:[e.image?(0,t.jsx)("img",{src:e.image,alt:e.productName,className:"zb-cart-tab-img",loading:"lazy"}):(0,t.jsx)("div",{className:"zb-cart-tab-img-placeholder","aria-hidden":!0}),(0,t.jsxs)("div",{className:"zb-cart-tab-info",children:[(0,t.jsx)("p",{className:"zb-cart-tab-name",children:e.productName}),e.variantName&&(0,t.jsx)("p",{className:"zb-cart-tab-variant",children:e.variantName}),(0,t.jsxs)("div",{className:"zb-cart-tab-bottom",children:[e.isVirtual?(0,t.jsx)("div",{className:"zb-cart-tab-qty",children:(0,t.jsx)("span",{children:e.quantity})}):(0,t.jsxs)("div",{className:"zb-cart-tab-qty",children:[(0,t.jsx)("button",{type:"button","aria-label":b("decreaseQty"),onClick:()=>r(e.productId,e.variantId??null,-1),disabled:e.quantity<=1,children:"−"}),(0,t.jsx)("span",{children:e.quantity}),(0,t.jsx)("button",{type:"button","aria-label":b("increaseQty"),onClick:()=>r(e.productId,e.variantId??null,1),children:"+"})]}),(0,t.jsxs)("span",{className:"zb-cart-tab-price",children:["NT$ ",(e.price*e.quantity).toLocaleString()]})]})]}),(0,t.jsx)("button",{type:"button","aria-label":b("removeItem"),onClick:()=>o(e.productId,e.variantId??null,e.productName),className:"zb-cart-tab-remove",children:(0,t.jsx)(P.Trash2,{size:14})})]},`${e.productId}|${e.variantId??""}`))}),(0,t.jsxs)("footer",{className:"zb-cart-tab-footer",children:[s.length>0&&(0,t.jsxs)("div",{className:"zb-cart-tab-applied","aria-label":b("discountApplied"),children:[(0,t.jsx)("span",{className:"zb-cart-tab-applied-label",children:b("appliedDiscountsLabel")}),(0,t.jsx)("div",{className:"zb-cart-tab-applied-pills",children:s.map(e=>{let n=h.get(e),i=g.get(e),a=void 0!==i;return(0,t.jsxs)("span",{className:`zb-cart-tab-applied-pill ${a?"is-rejected":""}`,children:[a?(0,t.jsx)(Y.AlertCircle,{size:11,"aria-hidden":!0}):(0,t.jsx)(q.Tag,{size:11,"aria-hidden":!0}),(0,t.jsx)("span",{className:"zb-cart-tab-applied-code",children:e}),a?(0,t.jsx)("span",{className:"zb-cart-tab-applied-reason",children:b("rejectedReason",{reason:i})}):n&&n>0?(0,t.jsxs)("span",{className:"zb-cart-tab-applied-amount",children:["−NT$ ",n.toLocaleString()]}):null,(0,t.jsx)("button",{type:"button","aria-label":b("removeDiscountCode",{code:e}),onClick:()=>l(e),className:"zb-cart-tab-applied-remove",children:(0,t.jsx)(C.X,{size:11,"aria-hidden":!0})})]},e)})})]}),(0,t.jsxs)("div",{className:"zb-cart-tab-subtotal",children:[(0,t.jsxs)("span",{children:[b("subtotal"),(0,t.jsx)("span",{className:"zb-cart-tab-subtotal-count",children:b("subtotalItemCount",{count:i})})]}),(0,t.jsxs)("span",{className:"zb-cart-tab-subtotal-value",children:["NT$ ",a.toLocaleString()]})]}),m>0&&(0,t.jsxs)("div",{className:"zb-cart-tab-discount-row",children:[(0,t.jsx)("span",{children:b("discount")}),(0,t.jsxs)("span",{children:["−NT$ ",m.toLocaleString()]})]}),p&&p.total>0&&m>0&&(0,t.jsxs)("div",{className:"zb-cart-tab-total-row",children:[(0,t.jsx)("span",{children:b("total")}),(0,t.jsxs)("span",{className:"zb-cart-tab-total-value",children:["NT$ ",p.total.toLocaleStr
89ing()]})]}),(0,t.jsxs)("div",{className:"zb-cart-tab-actions",children:[(0,t.jsx)(d.Link,{href:"/cart",onClick:u,className:"zb-cart-tab-action-secondary",children:b("goToCart")}),(0,t.jsx)(d.Link,{href:"/checkout",onClick:u,className:"zb-cart-tab-action-primary",children:b("checkout")})]})]})]}):(0,t.jsxs)("div",{className:"zb-cart-tab-empty",children:[(0,t.jsx)(M.ShoppingBag,{size:36,className:"zb-cart-tab-empty-icon","aria-hidden":!0}),(0,t.jsx)("p",{className:"zb-cart-tab-empty-msg",children:b("emptyCart")}),(0,t.jsx)(d.Link,{href:f,onClick:u,className:"zb-cart-tab-shop-link",children:b("keepShopping")})]})}function eE({discount:e,applied:n,onApply:i,rejectedReason:a,appliedAmount:r}){let o,s=(0,c.useTranslations)("shopUi");return(0,t.jsxs)("div",{className:`zb-discount-card ${n?"is-applied":""} ${a?"is-rejected":""}`,children:[(0,t.jsxs)("div",{className:"zb-discount-card-main",children:[(0,t.jsx)("div",{className:"zb-discount-card-code",children:e.code}),(0,t.jsxs)("div",{className:"zb-discount-card-meta",children:[(0,t.jsx)("span",{className:"zb-discount-card-badge",children:(o=Number(e.value),"percentage"===e.type?`${Number.isFinite(o)?o:"—"}% off`:"fixed_amount"===e.type?`NT$ ${Number.isFinite(o)?o.toLocaleString():"—"} off`:String(e.value))}),null!=e.minAmount&&Number(e.minAmount)>0&&(0,t.jsx)("span",{className:"zb-discount-card-hint",children:s("minSpendHint",{amount:Number(e.minAmount).toLocaleString()})})]}),e.description&&(0,t.jsx)("p",{className:"zb-discount-card-desc",children:e.description}),a?(0,t.jsxs)("p",{className:"zb-discount-card-warning",children:[(0,t.jsx)(Y.AlertCircle,{size:11,"aria-hidden":!0})," ",s("notEligibleYet",{reason:a})]}):n&&r&&r>0?(0,t.jsxs)("p",{className:"zb-discount-card-applied-amount",children:[(0,t.jsx)(p.Check,{size:11,"aria-hidden":!0})," ",s("appliedDiscountAmount",{amount:r.toLocaleString()})]}):null]}),(0,t.jsxs)("button",{type:"button",onClick:()=>i(e.code),disabled:n,className:"zb-discount-card-apply","aria-label":s(n?"appliedCode":"applyCodeToCart",{code:e.code}),children:[n?(0,t.jsx)(p.Check,{size:13,"aria-hidden":!0}):(0,t.jsx)(q.Tag,{size:13,"aria-hidden":!0}),s(n?"applied":"applyToCart")]})]})}function e_({customer:e,customerChecked:i,onLoginSuccess:a,appliedCodes:o,applyCode:s,preview:l}){let u=(0,n.useToast)(),p=(0,c.useTranslations)("shopUi"),[f,b]=(0,r.useState)(null),[m,h]=(0,r.useState)(null),[g,x]=(0,r.useState)(null),[y,w]=(0,r.useState)(null),v=y?.points===!1,z=y?.credits===!1,j=y?.discounts===!1,k=y?.promotions===!1,C=new Map((l?.applied??[]).map(e=>[e.code,e.amount])),S=new Map((l?.rejected??[]).map(e=>[e.code,e.reason]));(0,r.useEffect)(()=>{if(!e?.id)return;let t=!1;return(0,ei.fetchCustomerPoints)(e.id).then(e=>{t||b(Number(e.balance??0))}).catch(()=>{t||b(0)}),(0,ei.fetchCustomerCredits)(e.id).then(e=>{t||h(Number(e.balance??0))}).catch(()=>{t||h(0)}),(0,ei.fetchExclusiveDiscounts)().then(e=>{t||x(e)}).catch(()=>{t||x([])}),()=>{t=!0}},[e?.id]),(0,r.useEffect)(()=>{let e=!1;return(0,ei.fetchCommerceFeatureFlags)().then(t=>{e||w(t)}).catch(()=>{e||w(null)}),()=>{e=!0}},[]);let N=e=>{s(e),u.push(p("discountAppliedToast",{code:e}),"success")};if(!i)return(0,t.jsx)("div",{style:{padding:32,textAlign:"center",color:"#9ca3af",fontSize:13},children:p("loading")});if(!e)return(0,t.jsx)(eA,{onLoginSuccess:a});let E=null===f,_=null===m,A=null===g;return(0,t.jsxs)("div",{className:"zb-rewards-tab",children:[!v&&(0,t.jsxs)("section",{className:"zb-rewards-section",children:[(0,t.jsxs)("div",{className:"zb-rewards-section-head",children:[(0,t.jsx)("span",{className:"zb-rewards-section-icon",children:(0,t.jsx)(B.Sparkles,{size:14})}),(0,t.jsx)("h3",{children:p("pointsBalance")})]}),(0,t.jsxs)("div",{className:"zb-rewards-section-value",children:[(0,t.jsx)("strong",{children:E?"—":(f??0).toLocaleString()}),(0,t.jsx)("span",{children:p("pointsRate")})]}),!E&&(f??0)===0&&(0,t.jsx)("p",{className:"zb-rewards-section-empty",style:{marginTop:8},children:p("noPointsHint")})]}),!z&&(0,t.jsxs)("section",{className:"zb-rewards-section",children:[(0,t.jsxs)("div",{className:"zb-rewards-section-head",children:[(0,t.jsx)("span",{className:"zb-rewards-section-icon",children:(0,t.jsx)(W.Wallet,{size:14})}),(0,t.jsx)("h3",{children:p("creditBalance")})]}),(0,t.jsxs)("div",{className:"zb-rewards-section-value",children:[(0,t.jsx)("strong",{children:_?"—":`
89NT$ ${(m??0).toLocaleString()}`}),(0,t.jsx)("span",{children:p("redeemableAtCheckout")})]}),!_&&(m??0)===0&&(0,t.jsx)("p",{className:"zb-rewards-section-empty",style:{marginTop:8},children:p("noCreditHint")})]}),!j&&(0,t.jsxs)("section",{className:"zb-rewards-section",children:[(0,t.jsxs)("div",{className:"zb-rewards-section-head",children:[(0,t.jsx)("span",{className:"zb-rewards-section-icon",children:(0,t.jsx)(q.Tag,{size:14})}),(0,t.jsx)("h3",{children:p("exclusiveDiscounts")})]}),A?(0,t.jsx)("p",{className:"zb-rewards-section-empty",children:p("loading")}):g&&g.length>0?(0,t.jsx)("div",{className:"zb-discount-card-list",children:g.map(e=>(0,t.jsx)(eE,{discount:e,applied:o.includes(e.code),onApply:N,rejectedReason:o.includes(e.code)?S.get(e.code):void 0,appliedAmount:C.get(e.code)},e.code))}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"zb-rewards-section-empty",children:p("noExclusiveDiscounts")}),(0,t.jsx)("span",{className:"zb-rewards-empty-pill",children:p("noData")})]})]}),!k&&(0,t.jsxs)("section",{className:"zb-rewards-section",children:[(0,t.jsxs)("div",{className:"zb-rewards-section-head",children:[(0,t.jsx)("span",{className:"zb-rewards-section-icon",children:(0,t.jsx)(O.Gift,{size:14})}),(0,t.jsx)("h3",{children:p("ongoingPromotions")})]}),(0,t.jsx)("p",{className:"zb-rewards-section-empty",children:p("noOngoingPromotions")}),(0,t.jsx)("span",{className:"zb-rewards-empty-pill",children:p("noData")})]}),v&&z&&j&&k&&(0,t.jsxs)("section",{className:"zb-rewards-section",children:[(0,t.jsxs)("div",{className:"zb-rewards-section-head",children:[(0,t.jsx)("span",{className:"zb-rewards-section-icon",children:(0,t.jsx)(X.User,{size:14})}),(0,t.jsx)("h3",{children:e.name?.trim()||e.email||p("accountSettings")})]}),e.name?.trim()&&e.email&&(0,t.jsx)("p",{className:"zb-rewards-section-empty",children:e.email}),(0,t.jsx)(d.Link,{href:"/account",className:"zb-rewards-login-cta zb-rewards-member-cta",children:p("goToMemberCenter")})]})]})}function eA({onLoginSuccess:e}){let i=(0,n.useToast)(),a=(0,c.useTranslations)("shopUi"),[o,s]=(0,r.useState)("login"),[l,d]=(0,r.useState)(""),[u,p]=(0,r.useState)(""),[f,b]=(0,r.useState)(""),[m,h]=(0,r.useState)(!1),[g,x]=(0,r.useState)(null),y=async t=>{t.preventDefault(),x(null),h(!0);try{if("login"===o)await (0,en.accountApi)("/v1/account/login",{method:"POST",body:JSON.stringify({email:l,password:u})});else{let e={email:l,password:u};f.trim()&&(e.name=f.trim()),await (0,en.accountApi)("/v1/account/register",{method:"POST",body:JSON.stringify(e)})}let t=await (0,en.accountApi)("/v1/account/me");e(t.customer),i.push("login"===o?a("signedIn"):a("registeredAutoSignedIn"),"success")}catch(e){x(e instanceof en.AccountApiError?e.message:a("genericError"))}finally{h(!1)}};return(0,t.jsxs)("div",{className:"zb-inline-auth",children:[(0,t.jsxs)("div",{className:"zb-inline-auth-
89head",children:[(0,t.jsx)(B.Sparkles,{size:22,className:"zb-inline-auth-icon","aria-hidden":!0}),(0,t.jsx)("h3",{children:"login"===o?a("signInToViewRewards"):a("registerNewAccount")}),(0,t.jsx)("p",{children:"login"===o?a("signInBenefitsDesc"):a("registerBenefitsDesc")})]}),(0,t.jsxs)("form",{onSubmit:y,className:"zb-inline-auth-form",children:["register"===o&&(0,t.jsxs)("label",{className:"zb-inline-auth-field",children:[(0,t.jsx)("span",{children:a("nameOptional")}),(0,t.jsx)("input",{type:"text",value:f,onChange:e=>b(e.target.value),autoComplete:"name",disabled:m,placeholder:a("namePlaceholder")})]}),(0,t.jsxs)("label",{className:"zb-inline-auth-field",children:[(0,t.jsx)("span",{children:"login"===o?a("identifierLabel"):"Email"}),(0,t.jsx)("input",{type:"login"===o?"text":"email",required:!0,value:l,onChange:e=>d(e.target.value),autoComplete:"login"===o?"username":"email",disabled:m,placeholder:"login"===o?a("identifierPlaceholder"):"[email protected]"})]}),(0,t.jsxs)("label",{className:"zb-inline-auth-field",children:[(0,t.jsx)("span",{children:a("password")}),(0,t.jsx)("input",{type:"password",required:!0,value:u,onChange:e=>p(e.target.value),autoComplete:"login"===o?"current-password":"new-password",disabled:m,placeholder:"login"===o?a("passwordPlaceholder"):a("passwordMinPlaceholder"),minLength:"register"===o?8:void 0})]}),g&&(0,t.jsx)("div",{className:"zb-inline-auth-error",role:"alert",children:g}),(0,t.jsxs)("button",{type:"submit",disabled:m,className:"zb-inline-auth-submit",children:[m?(0,t.jsx)(G.Loader2,{size:14,className:"zb-inline-auth-spin"}):"login"===o?(0,t.jsx)(U.LogIn,{size:14}):(0,t.jsx)(K.UserPlus,{size:14}),m?a("processing"):"login"===o?a("signIn"):a("register")]}),(0,t.jsx)("button",{type:"button",onClick:()=>{s("login"===o?"register":"login"),x(null),d(""),p(""),b("")},className:"zb-inline-auth-switch",children:"login"===o?a("noAccountRegister"):a("haveAccountSignIn")})]})]})}function eT({appliedCodes:e,applyCode:i,preview:a}){let o=(0,n.useToast)(),s=(0,c.useTranslations)("shopUi"),[l,d]=(0,r.useState)(null),[u,p]=(0,r.useState)(null),f=u?.rules??[],b=u?.defaults??[],m=u?.discountCodes??[],h=new Map((a?.applied??[]).map(e=>[e.code,e.amount])),g=new Map((a?.rejected??[]).map(e=>[e.code,e.reason]));(0,r.useEffect)(()=>{let e=!1;return(0,ei.fetchMiniCartDiscounts)().then(t=>{e||d(t)}).catch(()=>{e||d([])}),(0,ei.fetchMiniCartLoyalty)().then(t=>{e||p(t)}).catch(()=>{e||p(null)}),()=>{e=!0}},[]);let x=e=>{i(e),o.push(s("discountAppliedToast",{code:e}),"success")},y=null===l;return(0,t.jsxs)("div",{className:"zb-activities-tab",children:[f.length>0&&(0,t.jsxs)("section",{className:"zb-activities-section",children:[(0,t.jsxs)("div",{className:"zb-activities-section-head",children:[(0,t.jsx)("span",{className:"zb-activities-section-icon",children:(0,t.jsx)(B.Sparkles,{size:14})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{children:s("limitedTimeOffers")}),(0,t.jsx)("p",{children:s("limitedTimeOffersDesc")})]})]}),(0,t.jsx)("ul",{className:"zb-rewards-list",children:f.map(e=>(0,t.jsxs)("li",{className:"zb-rewards-list-item",children:[(0,t.jsx)("strong",{children:e.name}),e.conditionLabel&&(0,t.jsxs)("p",{className:"zb-rewards-rule-line",children:[(0,t.jsx)("span",{className:"zb-rewards-rule-step",children:s("condition")}),(0,t.jsx)("span",{children:e.conditionLabel})]}),(0,t.jsxs)("p",{className:"zb-rewards-rule-line",children:[(0,t.jsx)("span",{className:"zb-rewards-rule-step zb-rewards-rule-step-reward",children:s("reward")}),(0,t.jsx)("span",{children:e.rewardLabel})]}),e.description&&(0,t.jsx)("p",{className:"zb-rewards-rule-note",children:e.description})]},e.id))})]}),(0,t.jsxs)("section",{className:"zb-activities-section",children:[(0,t.jsxs)("div",{className:"zb-activities-section-head",children:[(0,t.jsx)("span",{className:"zb-activities-section-icon",children:(0,t.jsx)(q.Tag,{size:14})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{children:s("availableDiscountCodes")}),(0,t.jsx)("p",{children:s("publicDiscountCodesDesc")})]})]}),y?(0,t.jsx)("p",{className:"zb-rewards-section-empty",children:s("loading")}):l&&l.length>0?(0,t.jsx)("div",{className:"zb-discount-card-list",children:l.map(n=>(0,t.jsx)(eE,{discount:n,applied:e.includes(n.code),onApply:x,rejectedReason:e.includes(n.code)?g.get(n.code):void 0,appliedAmount:h.get(n.code)},n.code))}):(0,t.jsx)("div",{className:"zb-activities-empty",children:(0,t.jsx)("span",{className:"zb-rewards-empty-pill",children:s("noPublicDiscountCodes")})})]}),m.length>0&&(0,t.jsxs)("section",{className:"zb-activities-section",children:[(0,t.jsxs)("div",{className:"zb-activities-section-head",children:[(0,t.jsx)("span",{className:"zb-activities-section-icon",children:(0,t.jsx)(q.Tag,{size:14})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{children:s("availableDiscountCodes")}),(0,t.jsx)("p",{children:s("clickToCopyDiscountCode")})]})]}),(0,t.jsx)("ul",{className:"zb-rewards-list",children:m.map(e=>(0,t.jsx)(eL,{discount:e},e.id))})]}),b.length>0&&(0,t.jsxs)("section",{className:"zb-activities-section",children:[(0,t.jsxs)("div",{className:"zb-activities-section-head",children:[(0,t.jsx)("span",{className:"zb-activities-section-icon",children:(0,t.jsx)(O.Gift,{size:14})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{children:s("memberRewards")}),(0,t.jsx)("p",{children:s("memberRewardsDesc")})]})]}),(0,t.jsx)("ul",{className:"zb-rewards-list",children:b.map(e=>(0,t.jsxs)("li",{className:"zb-rewards-list-item",children:[(0,t.jsx)("strong",{children:e.label}),e.detail&&(0,t.jsx)("p",{children:e.detail})]},e.kind))})]})]})}function eL({discount:e}){let i=(0,n.useToast)(),a=(0,c.useTranslations)("shopUi"),{timeZone:r}=(0,ee.useShopTimezone)(),o=()=>{try{navigator.clipboard?.writeText(e.code),i.push(a("discountCodeCopied",{code:e.code}),"success")}catch{i.push(a("copyFailedManualSelect"),"error")}};return(0,t.jsxs)("li",{className:"zb-rewards-list-item zb-rewards-discount-item",onClick:o,role:"button",tabIndex:0,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&o()}
89,title:a("clickToCopyToClipboard"),children:[(0,t.jsxs)("div",{className:"zb-rewards-discount-main",children:[(0,t.jsx)("code",{className:"zb-rewards-discount-code",children:e.code}),(0,t.jsxs)("p",{children:[e.label,e.endsAt?a("untilDate",{date:(0,et.formatInTimeZone)(e.endsAt,r,"datetime")}):""]})]}),(0,t.jsx)("span",{className:"zb-rewards-discount-copy",children:a("clickToCopy")})]})}var eI=e.i(115834);function e$(){let e=(0,R.useCart)(),t=(0,n.useToast)(),i=(0,r.useRef)(e);i.current=e;let a=(0,r.useRef)(t);return a.current=t,(0,r.useEffect)(()=>{async function e(e){var t;if("string"!=typeof e||""===e.trim())return"not-found";let n=null;try{let t=await fetch(`/v1/public/courses/${encodeURIComponent(e.trim())}`,{cache:"no-store"});t.ok&&(n=await t.json())}catch{n=null}if(!n?.id)return a.current.push("找不到這門課程","error"),"not-found";let r=i.current.addItem({productId:(t=n).id,productName:t.title,variantId:"standard",variantName:null,image:t.coverMedia?.url?t.coverMedia.url:t.previewVideoUrl?t.previewVideoUrl:t.coverImageUrl??null,price:(0,eI.toPriceNumber)(t.price),quantity:1,isVirtual:!0,...!0!==t.allowScheduledStart?{}:{courseScheduling:{courseId:t.id,allowScheduledStart:!0,scheduledStartAt:t.scheduledStartAt??null,maxDays:t.scheduledStartMaxDays??null}}});return"added"===r&&a.current.push("已加入購物車","success",{label:"前往結帳",href:"/cart"}),r}window.zbCart={addCourse:e};let t=t=>{let n=t.detail;e(n?.courseSlug)};return window.addEventListener("zb:add-to-cart",t),()=>{window.removeEventListener("zb:add-to-cart",t),delete window.zbCart}},[]),null}let eR="zenbu_exit_intent_shown";function eD(){let e=(0,c.useTranslations)("shopUi"),n=(0,R.useCart)(),[i,a]=(0,r.useState)(null),[o,s]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return fetch("/v1/commerce/storefront/exit-intent-popup").then(e=>e.ok?e.json():null).then(t=>{!e&&t&&a(t)}).catch(()=>{}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{if(!i?.enabled)return;let e=setTimeout(()=>d(!0),5e3);return()=>clearTimeout(e)},[i?.enabled]);let u=(0,r.useCallback)(e=>{if(!l||o||!i?.enabled||0===n.items.length||window.innerWidth<1024||sessionStorage.getItem(eR))return;let t=!e.relatedTarget&&!e.toElement;if(e.clientY<10&&t){s(!0);try{sessionStorage.setItem(eR,"1")}catch{}}},[l,o,i?.enabled,n.items.length]);return((0,r.useEffect)(()=>{if(l)return document.addEventListener("mouseout",u),()=>document.removeEventListener("mouseout",u)},[l,u]),o&&i)?(0,t.jsx)("div",{role:"dialog","aria-modal":"true","aria-labelledby":"exit-intent-title",className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",onClick:()=>s(!1),children:(0,t.jsxs)("div",{className:"relative max-w-md w-full bg-white rounded-lg shadow-2xl p-6",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("button",{type:"button",onClick:()=>s(!1),"aria-label":e("close"),className:"absolute top-3 right-3 w-8 h-8 flex items-center justify-center rounded-full text-gray-400 hover:bg-gray-100 hover:text-gray-700",children:(0,t.jsx)(C.X,{className:"w-5 h-5"})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,t.jsx)("div",{className:"w-10 h-10 rounded-full bg-amber-100 flex items-center justify-center",children:(0,t.jsx)(F.ShoppingCart,{className:"w-5 h-5 text-amber-700"})}),(0,t.jsx)("h2",{id:"exit-intent-title",className:"text-lg font-semibold text-gray-900",children:i.title})]}),(0,t.jsx)("p",{className:"text-sm text-gray-600 mb-4 whitespace-pre-line",children:i.message}),(0,t.jsx)(eM,{items:n.items}),i.discountCode&&(0,t.jsx)(eP,{code:i.discountCode}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>s(!1),className:"flex-1 px-4 py-2.5 text-sm font-medium text-gray-800 bg-white border border-gray-300 rounded text-center hover:bg-gray-50",children:i.secondaryCtaLabel}),(0,t.jsx)("a",{href:"/cart",onClick:()=>s(!1),className:"flex-1 px-4 py-2.5 text-sm font-medium text-white bg-[var(--color-brand,#0a0a0a)] rounded text-center hover:opacity-90",children:i.ctaLabel})]})]})}):null}function eM({items:e}){let n=(0,c.useTranslations)("shopUi"),i=e.slice(0,4),a=Math.max(0,e.length-4);return(0,t.jsxs)("div",{className:"mb-4 border border-gray-100 rounded overflow-hidden",children:[(0,t.jsx)("ul",{className:"divide-y divide-gray-100",children:i.map((e,n)=>(0,t.jsxs)("li",{className:"flex items-center gap-3 px-3 py-2",children:[e.image?(0,t.jsx)("img",{src:e.image,alt:e.productName,width:40,height:40,className:"w-10 h-10 rounded object-cover border border-gray-200 flex-shrink-0"}):(0,t.jsx)("div",{className:"w-10 h-10 rounded bg-gray-100 flex items-center justify-center flex-shrink-0",children:(0,t.jsx)(F.ShoppingCart,{className:"w-4 h-4 text-gray-400"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-gray-900 truncate",children:e.productName}),e.variantName&&(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate",children:e.variantName})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500 tabular-nums whitespace-nowrap",children:["× ",e.quantity]})]},`${e.productId}-${n}`))}),a>0&&(0,t.jsx)("div",{className:"px-3 py-2 text-xs text-gray-500 bg-gray-50",children:n("extraItemsCount",{count:a})})]})}function eP({code:e}){let i=(0,c.useTranslations)("shopUi"),a=(0,n.useToast)(),[o,s]=(0,r.useState)(!1);async function l(){try{await navigator.clipboard.writeText(e),s(!0),a.push(i("copiedDiscountCode",{code:e}),"success"),setTimeout(()=>s(!1),2e3)}catch{a.push(i("copyFailedManualSelect"),"error")}}return(0,t.jsxs)("div",{className:"mb-4 p-3 bg-amber-50 border border-amber-200 rounded flex items-center justify-center gap-3",children:[(0,t.jsx)("span",{className:"text-xs text-amber-700",children:i("enterDiscountCodeLabel")}),(0,t.jsx)("code",{className:"font-mono font-semibold text-amber-900 text-base tracking-wider",children:e}),(0,t.jsx)("button",{type:"button",onClick:l,"aria-label":o?i("copied"):i("copyDiscountCode"),title:o?i("copied"):i("copyDiscountCode"),className:"inline-flex items-center justify-center w-7 h-7 rounded text-amber-700 hover:bg-amber-100 transition-colors",children:o?(0,t.jsx)(p.Check,{className:"w-4 h-4"}):(0,t.jsx)(u.Copy,{className:"w-4 h-4"})})]})}var eO=e.i(928443);let eF="zenbu_promo_banner_dismissed_";function eU(){var e,n;let i,a,o,s,l,d,u=(0,c.useTranslations)("shopUi"),[p,f]=(0,r.useState)(null),[b,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{let e=!1;return fetch("/v1/commerce/storefront/promo-banner",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(t=>{if(!e&&t){try{sessionStorage.getItem(eF+t.id)&&m(!0)}catch{}f(t)}}).catch(()=>{}),()=>{e=!0}},[]),(0,r.useEffect)(()=>
89{if(!p?.showCountdown||!p.endAt)return;let e=setInterval(()=>g(Date.now()),1e3);return()=>clearInterval(e)},[p?.showCountdown,p?.endAt]),!p||b||p.endAt&&new Date(p.endAt).getTime()<h)return null;let x=p.endAt?Math.max(0,new Date(p.endAt).getTime()-h):null,y={background:p.bgColor??"#0a0a0a",color:p.textColor??"#ffffff"},w=(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3 px-4 py-2 text-sm font-medium",children:[(0,t.jsx)("span",{className:"text-center",children:p.title}),p.linkUrl&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 underline decoration-dotted underline-offset-2",children:[p.linkLabel||u("viewDetails"),(0,t.jsx)(eO.ArrowUpRight,{className:"w-3.5 h-3.5"})]}),p.showCountdown&&null!==x&&(0,t.jsx)("span",{className:"inline-block px-2 py-0.5 rounded text-xs tabular-nums",style:{background:"rgba(255,255,255,0.18)"},children:(e=x,n=u,a=Math.floor((i=Math.max(0,Math.floor(e/1e3)))/86400),o=Math.floor(i%86400/3600),s=Math.floor(i%3600/60),l=e=>String(e).padStart(2,"0"),d=[],a>0&&d.push(n("countdownDays",{days:a})),d.push(n("countdownHours",{hours:l(o)})),d.push(n("countdownMins",{mins:l(s)})),d.push(n("countdownSecs",{secs:l(i%60)})),d.join(" "))})]});return(0,t.jsxs)("div",{className:"relative",style:y,role:"region","aria-label":u("promoAnnouncement"),children:[p.linkUrl?(0,t.jsx)("a",{href:p.linkUrl,className:"block hover:opacity-90",children:w}):w,p.dismissible&&(0,t.jsx)("button",{type:"button",onClick:function(){m(!0);try{sessionStorage.setItem(eF+p.id,"1")}catch{}},"aria-label":u("closeAnnouncement"),className:"absolute top-1/2 -translate-y-1/2 right-2 w-7 h-7 flex items-center justify-center rounded hover:bg-white/20 transition-colors",style:{color:p.textColor??"#ffffff"},children:(0,t.jsx)(C.X,{className:"w-4 h-4"})})]})}e.i(399453);var eq=e.i(962945);function eB(e){if("u"<typeof document)return null;let t=document.cookie.match(RegExp(`(?:^|;\\s*)${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}=([^;]*)`));return t?decodeURIComponent(t[1]):null}let eW="zenbu-meta-pixel";function eH(e){let t=window;if(t.fbq)return void t.fbq("init",e);let n=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(n.queue=[],n.loaded=!0,n.version="2.0",t.fbq=n,t._fbq||(t._fbq=n),!document.getElementById(eW)){let e=document.createElement("script");e.id=eW,e.async=!0,e.src="https://connect.facebook.net/en_US/fbevents.js",document.head.appendChild(e)}t.fbq("init",e)}function eK(e){let t=window;if(t.dataLayer??=[],!t.gtag){let e=t.dataLayer;t.gtag=function(){e.push(arguments)},t.gtag("js",new Date)}let n="zenbu-gtag-base";if(!document.getElementById(n)){let t=document.createElement("script");t.id=n,t.async=!0,t.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(e)}`,document.head.appendChild(t)}}function eG(e){eK(e);let t=window;t.gtag?.("config",e,{send_page_view:!1})}function eY(e){eK(e);let t=window;t.gtag?.("config",e)}let eX="zenbu-gtm";function eV(e){let t=window;if(t.dataLayer??=[],t.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),!document.getElementById(eX)){let t=document.createElement("script");t.id=eX,t.async=!0,t.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(e)}`,document.head.appendChild(t)}}let eJ="zenbu-line-tag",eQ=new Set;function eZ(e){let t=window;if(t._ltq??=[],!t._lt){let e=t._ltq;t._lt=function(){e.push(arguments)}}if(!document.getElementById(eJ)){let e=document.createElement("script");e.id=eJ,e.async=!0,e.src="https://d.line-scdn.net/n/line_tag/public/release/v1/lt.js",document.head.appendChild(e)}eQ.has(e)||(eQ.add(e),t._lt("init",{customerType:"lap",tagId:e}))}function e0(e){let t=window;if(t.ttq?.load){t.ttq.load(e),t.ttq.page?.();return}t.TiktokAnalyticsObject="ttq";let n=t.ttq??[];for(let e of(t.ttq=n,n.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],n.setAndDefer=function(e,t){e[t]=function(...n){e.push([t,...n])}},n.methods))n.setAndDefer(n,e);n.instance=function(e){let t=n._i?.[e]??[];for(let e of n.methods)n.setAndDefer(t,e);return t},n.load=function(e,t){let i="https://analytics.tiktok.com/i18n/pixel/events.js";n._i??={};let a=n._i[e]??[];a._u=i,n._i[e]=a,n._t??={},n._t[e]=Date.now(),n._o??={},n._o[e]=t??{};let r=`zenbu-tiktok-pixel-${e}`;if(!document.getElementById(r)){let t=document.createElement("script");t.id=r,t.async=!0,t.src=`${i}?sdkid=${encodeURIComponent(e)}&lib=ttq`,document.head.appendChild(t)}},n.load(e),n.page?.()}var e1=e.i(131693);function e2(e){}let e6="tracking:custom-event-fired:";function e4(e,t){let n=e.dedup_window_hours??0;(function(e,t){if(t<=0||"u"<typeof localStorage)return!0;try{let n=localStorage.getItem(e6+e);if(!n)return!0;let i=Number(n);if(!Number.isFinite(i))return!0;return Date.now()-i>=60*t*6e4}catch{return!0}})(e.event_name,n)&&((0,e1.track)("view_content",{custom_event_name:e.event_name,meta:{...e.payload??{},...t??{}}}),n>0&&function(e){if("u">typeof localStorage)try{localStorage.setItem(e6+e,String(Date.now()))}catch{}}(e.event_name))}function e8(e,t){return!t||0===t.length||t.some(t=>t.length>0&&e.includes(t))}function e3(){let e=(0,o.usePathname)(),[t,n]=(0,r.useState)(null),[i,a]=(0,r.useState)(!1),s=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/v1/storefront/tracking/config",{cache:"no-store"});if(!t.ok)return void(0,e1.setActiveTrackingConfig)(null,!0);let i=await t.json();if(e)return;if(!i.enabled||i.exclude_admin&&"1"===eB(eq.TRACKING_COOKIES.noTrack)){(0,e1.setActiveTrackingConfig)(i,!0),n(i);return}if(i.consent_banner_enabled){let e=eB(eq.TRACKING_COOKIES.consent);if("rejected"===e||"accepted"!==e){(0,e1.setActiveTrackingConfig)(i,!0),n(i);return}}e5(i),(0,e1.setActiveTrackingConfig)(i,!1),n(i),a(!0),s.current=function(e){if(0===e.length)return()=>{};let t=[],n=e.filter(e=>
89"click"===e.trigger||"outbound-link"===e.trigger||"file-download"===e.trigger);if(n.length>0){let e=e=>{if(!(e.target instanceof Element))return;let t=e.target;for(let e of n)if("click"===e.trigger)(function(e,t){switch(t.kind){case"css":try{return e.closest(t.selector)}catch{return e2(`invalid css selector: ${t.selector}`),null}case"id":{let n=t.id.replace(/^#/,"");try{return e.closest(`#${CSS.escape(n)}`)}catch{return null}}case"text":{let n=e;for(;n;){if((n.textContent??"").trim().includes(t.contains))return n;n=n.parentElement}return null}case"url-contains":{let n=e.closest("a");if(!n)return null;return n.href.includes(t.substring)?n:null}}})(t,e.matcher)&&e4(e);else if("outbound-link"===e.trigger){let n=t.closest("a");if(!n||!function(e){try{if(!e.href)return!1;let t=new URL(e.href,window.location.origin);return!!t.host&&t.host!==window.location.host}catch{return!1}}(n)||e.url_filter&&!n.href.includes(e.url_filter))continue;e4(e,{href:n.href})}else if("file-download"===e.trigger){let n=t.closest("a");if(!n)continue;let i=0===e.extensions.length||function(e,t){if(!e.href||0===t.length)return!1;try{let n=new URL(e.href,window.location.origin).pathname.toLowerCase();return t.some(e=>n.endsWith("."+e.toLowerCase().replace(/^\./,"")))}catch{return!1}}(n,e.extensions),a=!e.filename_contains||function(e,t){if(!e.href)return!1;try{return(new URL(e.href,window.location.origin).pathname.split("/").pop()??"").toLowerCase().includes(t.toLowerCase())}catch{return!1}}(n,e.filename_contains);i&&a&&e4(e,{href:n.href})}};document.addEventListener("click",e,!0),t.push(()=>document.removeEventListener("click",e,!0))}let i=e.filter(e=>"pageview"===e.trigger);if(i.length>0){let e=()=>{let e=window.location.pathname+window.location.search;for(let t of i)"pageview"===t.trigger&&e8(e,t.urlPatterns)&&e4(t,{url:e})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}let a=e.filter(e=>"scroll-depth"===e.trigger);if(a.length>0){var r;let e,n,i=new Set,o=(r=()=>{let e=window.location.pathname+window.location.search,t=document.documentElement,n=window.scrollY||t.scrollTop,r=window.innerHeight,o=Math.max(t.scrollHeight,document.body.scrollHeight),s=o<=r?100:Math.round((n+r)/o*100);for(let t=0;t<a.length;t++){let n=a[t];!("scroll-depth"!==n.trigger||i.has(t))&&e8(e,n.urlPatterns)&&s>=n.percent&&(i.add(t),e4(n,{reachedPercent:s}))}},e=0,n=null,(...t)=>{let i=Date.now(),a=150-(i-e);a<=0?(e=i,r(...t)):n||(n=setTimeout(()=>{e=Date.now(),n=null,r(...t)},a))});window.addEventListener("scroll",o,{passive:!0}),t.push(()=>window.removeEventListener("scroll",o))}let o=[];for(let t of e){if("time-on-page"!==t.trigger)continue;let e=setTimeout(()=>{e8(window.location.pathname+window.location.search,t.urlPatterns)&&e4(t)},1e3*t.seconds);o.push(e)}o.length>0&&t.push(()=>o.forEach(clearTimeout));let s=e.filter(e=>"element-visible"===e.trigger);if(s.length>0&&"u">typeof IntersectionObserver){let e=new WeakSet,n=new Map,i=new IntersectionObserver(t=>{let a=window.location.pathname+window.location.search;for(let r of t){if(!r.isIntersecting)continue;let t=r.target;if(e.has(t))continue;let o=n.get(t);o&&("element-visible"!==o.trigger||e8(a,o.urlPatterns))&&(e.add(t),e4(o),i.unobserve(t))}},{threshold:.5});function l(){for(let e of s)if("element-visible"===e.trigger)for(let t of function(e){try{switch(e.kind){case"css":return Array.from(document.querySelectorAll(e.selector));case"id":{let t=e.id.replace(/^#/,""),n=document.getElementById(t);return n?[n]:[]}case"text":return Array.from(document.querySelectorAll("a,button,h1,h2,h3,h4,h5,h6,p,div,span,li")).filter(t=>(t.textContent??"").includes(e.contains));case"url-contains":return Array.from(document.querySelectorAll("a[href]")).filter(t=>t.href.includes(e.substring))}}catch{return e2(`queryAll failed for matcher ${e.kind}`),[]}}(e.matcher))n.has(t)||(n.set(t,e),i.observe(t))}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",l,{once:!0}):l();let a=new MutationObserver(l);a.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>{i.disconnect(),a.disconnect()})}let c=e.filter(e=>"form-submit"===e.trigger);if(c.length>0){let e=e=>{let t=e.target;if(!t||!(t instanceof HTMLFormElement))return;let n=t.getAttribute("data-zenbu-form-key")??t.getAttribute("form-key")??t.getAttribute("name")??t.id??"";for(let e of c)"form-submit"===e.trigger&&0!==e.form_keys.length&&e.form_keys.includes(n)&&e4(e,{form_key:n})};document.addEventListener("submit",e,!0),t.push(()=>document.removeEventListener("submit",e,!0))}let d=e.filter(e=>"video-play"===e.trigger);if(d.length>0){let e=new WeakSet,n=new WeakSet;function u(){for(let t of Array.from(document.querySelectorAll("video"))){if(e.has(t))continue;e.add(t);let i=t.getAttribute("data-media-id")??"";t.addEventListener("play",()=>{for(let e of d)"video-play"!==e.trigger||e.media_id&&e.media_id!==i||void 0===e.trigger_at_seconds&&e4(e,{media_id:i||void 0})}),t.addEventListener("timeupdate",()=>{if(!n.has(t))for(let e of d)"video-play"===e.trigger&&void 0!==e.trigger_at_seconds&&(!e.media_id||e.media_id===i)&&t.currentTime>=e.trigger_at_seconds&&(n.add(t),e4(e,{media_id:i||void 0,at_seconds:Math.floor(t.currentTime)}))})}}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",u,{once:!0}):u();let i=new MutationObserver(u);i.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>i.disconnect())}return()=>
89{t.forEach(e=>e())}}(i.custom_events??[])}catch(e){(0,e1.setActiveTrackingConfig)(null,!0)}})(),()=>{e=!0,s.current?.(),s.current=null}},[]),(0,r.useEffect)(()=>{i&&(0,e1.track)("page_view")},[e,i]),(0,r.useEffect)(()=>{function e(e){t&&t.enabled&&("accepted"===e.detail.result?(e5(t),(0,e1.setActiveTrackingConfig)(t,!1),a(!0)):((0,e1.setActiveTrackingConfig)(t,!0),a(!1)))}return window.addEventListener("zenbu-tracking-consent",e),()=>window.removeEventListener("zenbu-tracking-consent",e)},[t]),null}function e5(e){if(!0===e.meta_enabled)for(let t of(e.meta_pixel_id&&eH(e.meta_pixel_id),e.meta_extras??[]))t.pixel_id&&eH(t.pixel_id);if(!0===e.ga4_enabled)for(let t of(e.ga4_measurement_id&&eG(e.ga4_measurement_id),e.ga4_extras??[]))t.measurement_id&&eG(t.measurement_id);if(!0===e.gtm_enabled)for(let t of(e.gtm_container_id&&eV(e.gtm_container_id),e.gtm_extras??[]))t.container_id&&eV(t.container_id);if(!0===e.google_ads_enabled)for(let t of(e.google_ads_conversion_id&&eY(e.google_ads_conversion_id),e.google_ads_extras??[]))t.conversion_id&&eY(t.conversion_id);if(!0===e.line_enabled)for(let t of(e.line_tag_id&&eZ(e.line_tag_id),e.line_extras??[]))t.tag_id&&eZ(t.tag_id);if(!0===e.tiktok_enabled)for(let t of(e.tiktok_pixel_id&&e0(e.tiktok_pixel_id),e.tiktok_extras??[]))t.pixel_id&&e0(t.pixel_id)}function e7(){let[e,n]=(0,r.useState)(!1);function i(e){!function(e,t,n={}){if("u"<typeof document)return;let i=[`${e}=${encodeURIComponent(t)}`];i.push(`path=${n.path??"/"}`),i.push(`SameSite=${n.sameSite??"Lax"}`),"number"==typeof n.maxAgeDays&&i.push(`Max-Age=${24*n.maxAgeDays*3600}`),document.cookie=i.join("; ")}(eq.TRACKING_COOKIES.consent,e,{maxAgeDays:365}),n(!1),window.dispatchEvent(new CustomEvent("zenbu-tracking-consent",{detail:{result:e}}))}return((0,r.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch("/v1/storefront/tracking/config",{cache:"no-store"});if(!t.ok)return;let i=await t.json();if(e||!i.enabled||!i.consent_banner_enabled||i.exclude_admin&&"1"===eB(eq.TRACKING_COOKIES.noTrack))return;let a=eB(eq.TRACKING_COOKIES.consent);if("accepted"===a||"rejected"===a)return;n(!0)}catch{}})(),()=>{e=!0}},[]),e)?(0,t.jsxs)("div",{role:"dialog","aria-label":"Cookie 與追蹤同意","data-testid":"tracking-consent-banner",style:{position:"fixed",left:16,right:16,bottom:16,zIndex:0x7ffffff8,maxWidth:720,margin:"0 auto",padding:"14px 16px",background:"var(--st-surface)",color:"var(--st-fg)",border:"1px solid var(--st-border)",borderRadius:12,boxShadow:"0 8px 24px rgba(0,0,0,0.12)",display:"flex",gap:12,alignItems:"center",flexWrap:"wrap",fontSize:14,lineHeight:1.5},children:[(0,t.jsx)("p",{style:{flex:"1 1 280px",margin:0},children:"我們使用 Cookie 來分析網站流量並改善廣告投放效果。點選「接受」即同意; 您也可以選擇「拒絕」,這不影響網站基本功能。"}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,flexShrink:0},children:[(0,t.jsx)("button",{type:"button",onClick:()=>i("rejected"),"data-testid":"tracking-consent-reject",style:{padding:"8px 16px",background:"transparent",color:"var(--st-fg-muted)",border:"1px solid var(--st-border)",borderRadius:8,cursor:"pointer",fontSize:13},children:"拒絕"}),(0,t.jsx)("button",{type:"button",onClick:()=>i("accepted"),"data-testid":"tracking-consent-accept",style:{padding:"8px 16px",background:"var(--st-accent)",color:"var(--st-accent-fg)",border:"none",borderRadius:8,cursor:"pointer",fontSize:13,fontWeight:600},children:"接受"})]})]}):null}var e9=e.i(377339);let te=["/admin","/zb-cart","/zb-course","/zb-course-preview","/signin"];function tt(){let e=(0,o.usePathname)(),[t,n]=(0,r.useState)(null),i=te.some(t=>e?.startsWith(t));return(0,r.useEffect)(()=>{if(i)return;let e=!1;return(0,e9.apiFetch)("/v1/storefront/security").then(t=>{e||n(t)}).catch(e=>{if(e instanceof e9.ApiError&&404===e.status)return}),()=>{e=!0}},[i]),(0,r.useEffect)(()=>{if(i||!t)return;let e=[];
89if(t.rightClick){let t=e=>{let t=e.target,n=t?.tagName;"INPUT"===n||"TEXTAREA"===n||t?.isContentEditable||e.preventDefault()};document.addEventListener("contextmenu",t),e.push(()=>document.removeEventListener("contextmenu",t))}if(t.imageDrag){let t=e=>{e.setAttribute("draggable","false")};document.querySelectorAll("img").forEach(t);let n=new MutationObserver(e=>{for(let n of e)n.addedNodes.forEach(e=>{e instanceof HTMLImageElement?t(e):e instanceof HTMLElement&&e.querySelectorAll?.("img").forEach(e=>t(e))})});n.observe(document.body,{childList:!0,subtree:!0});let i=e=>{let t=e.target;t?.tagName==="IMG"&&e.preventDefault()};document.addEventListener("dragstart",i),e.push(()=>{n.disconnect(),document.removeEventListener("dragstart",i)})}if(t.savePrint){let t=e=>{(e.ctrlKey||e.metaKey)&&("s"===e.key||"S"===e.key||"p"===e.key||"P"===e.key)&&e.preventDefault()};window.addEventListener("keydown",t),e.push(()=>window.removeEventListener("keydown",t))}if(t.devtools){let t=e=>{if("F12"===e.key)return void e.preventDefault();let t=e.ctrlKey||e.metaKey,n=e.altKey;if(t){if("u"===e.key||"U"===e.key)return void e.preventDefault();if((e.shiftKey||n)&&["i","I","j","J","c","C"].includes(e.key)){let t=e.target,n=t?.tagName;if("INPUT"===n||"TEXTAREA"===n||t?.isContentEditable)return;e.preventDefault()}}};window.addEventListener("keydown",t),e.push(()=>window.removeEventListener("keydown",t))}if(t.copy){let t=e=>{let t=e.target,n=t?.tagName;"INPUT"===n||"TEXTAREA"===n||t?.isContentEditable||e.preventDefault()};document.addEventListener("copy",t),e.push(()=>document.removeEventListener("copy",t))}if(t.textSelection){let t=document.createElement("style");t.dataset.zbContentProtection="text-selection",t.textContent=`
90        body { user-select: none; -webkit-user-select: none; }
91        :where(input, textarea, [contenteditable="true"]) { user-select: text; -webkit-user-select: text; }
92      `,document.head.appendChild(t),e.push(()=>{t.parentNode&&t.parentNode.removeChild(t)})}return()=>{for(let t of e)t()}},[t,i]),null}var tn=e.i(875871);function ti({config:e}){return(0,r.useEffect)(()=>{if(!e.enabled||!e.cookieDomain)return;let t=function(e){try{let t=`${encodeURIComponent(e)}=`;for(let e of document.cookie.split(";")){let n=e.trim();if(n.startsWith(t))return decodeURIComponent(n.slice(t.length))}}catch{}return""}(e.cookieName);try{let n=new URLSearchParams(window.location.search).get(e.queryParam);if(n&&tn.REFERRAL_CODE_PATTERN.test(n)&&!("first-touch"===e.attribution&&t)){try{let t=24*Math.max(1,Math.floor(e.retentionDays))*3600,i="https:"===window.location.protocol?"; Secure":"";document.cookie=`${encodeURIComponent(e.cookieName)}=${encodeURIComponent(n)}; Domain=.${e.cookieDomain}; Path=/; Max-Age=${t}; SameSite=Lax${i}`}catch{}t=n}}catch{}if(!t||0===e.appendDomains.length)return;let n=()=>{for(let n of document.querySelectorAll("a[href]")){let i=(0,tn.appendReferralToUrl)(n.getAttribute("href")??"",t,e.queryParam,e.appendDomains,window.location.href);i&&n.setAttribute("href",i)}for(let n of document.querySelectorAll("form[action]")){let i=(0,tn.appendReferralToUrl)(n.getAttribute("action")??"",t,e.queryParam,e.appendDomains,window.location.href);i&&n.setAttribute("action",i)}};n();let i=0,a=new MutationObserver(()=>{i||(i=window.requestAnimationFrame(()=>{i=0,n()}))});return a.observe(document.body,{childList:!0,subtree:!0}),()=>{a.disconnect(),i&&window.cancelAnimationFrame(i)}},[e]),null}e.s(["PublicShell",0,function({children:e,cartWidgetInitial:r,showCartWidget:o=!1,commerceEnabled:s=!1,showMeian:c=!1,referralCapture:d,affiliateCode:u}){return(0,t.jsx)($,{children:(0,t.jsx)(n.ToastProvider,{placement:"storefront",children:(0,t.jsxs)(i.ConfirmProvider,{placement:"storefront",children:[(0,t.jsx)(a.default,{scope:"public"}),(0,t.jsx)(l,{}),d&&(0,t.jsx)(ti,{config:d}),(0,t.jsx)(w,{}),c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j,{}),(0,t.jsx)(S,{})]}),(0,t.jsx)(tt,{}),(0,t.jsx)(e3,{}),(0,t.jsx)(e7,{}),(0,t.jsxs)(R.CartProvider,{serverSync:s,children:[u&&(0,t.jsx)(m,{code:u}),s&&(0,t.jsx)(eU,{}),e,o&&(0,t.jsx)(eS,{initial:r}),o&&(0,t.jsx)(e$,{}),s&&(0,t.jsx)(eD,{})]})]})})})}],310558)}]);

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.