shared.js 5.1 KB

1234
  1. var m=Object.defineProperty;var u=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable;var f=(o,e,t)=>e in o?m(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,p=(o,e)=>{for(var t in e||(e={}))g.call(e,t)&&f(o,t,e[t]);if(u)for(var t of u(e))w.call(e,t)&&f(o,t,e[t]);return o};import"./vendor.js";const L=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function t(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerpolicy&&(s.referrerPolicy=n.referrerpolicy),n.crossorigin==="use-credentials"?s.credentials="include":n.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(n){if(n.ep)return;n.ep=!0;const s=t(n);fetch(n.href,s)}};L();function c(o){return document.querySelector(o)}function l(o){return document.querySelectorAll(o)}function d(o,e,t=[]){const r=document.createElement(o);return Object.entries(e).forEach(([n,s])=>{switch(n){case"class":Array.isArray(s)?r.classList.add(...s):r.className=s;break;case"on":Object.entries(s).forEach(([i,a])=>{r.addEventListener(i,a)});break;default:r.setAttribute(n,s)}}),t.forEach(n=>r.appendChild(n)),r}function h(o,e,t){return d("button",{class:o,on:{click:t}},[document.createTextNode(e)])}class v{constructor(e){this.options=p({showCancel:!1,cancelText:"CANCEL",confirmText:"OK"},e),this.init()}init(){const e=this.options,t=d("div",{class:["ptc-dialog-wrap","fade-in"],on:{touchmove:n=>n.preventDefault(),wheel:n=>n.preventDefault(),animationend(){t.classList.contains("fade-out")&&document.body.removeChild(t)}}});t.innerHTML=`<div class="ptc-dialog">
  2. <div class="ptc-dialog__title">${e.title}</div>
  3. <div class="ptc-dialog__content">${e.content}</div>
  4. </div>`;const r=d("div",{class:"ptc-dialog__footer"},[e.showCancel&&h("ptc-dialog__cancel",e.cancelText,()=>{this.close(),e.onCancel&&e.onCancel()}),h("ptc-dialog__confirm",e.confirmText,()=>{this.close(),e.onConfirm&&e.onConfirm()})].filter(Boolean));t.firstChild.appendChild(r),this.$el=t}show(){document.body.appendChild(this.$el)}close(){this.$el.classList.add("fade-out")}}function y(o){new v(o).show()}function b(){return new Promise(o=>{const e=new XMLHttpRequest;e.open("GET","/api/user/info"),e.timeout=4e3,e.setRequestHeader("Cache-Control","no-cache"),e.onload=()=>{if(e.status===200){const t=JSON.parse(e.response);o(t.results)}else o(null)},e.onerror=()=>o(null),e.ontimeout=()=>o(null),e.send()})}function E(){return new Promise((o,e)=>{const t=new XMLHttpRequest;t.open("POST","/api/user/logout"),t.timeout=4e3,t.onload=()=>{if(t.status===200){const r=JSON.parse(t.response);r.success?o(r):e(r)}else e(t)},t.onerror=e,t.ontimeout=e,t.send()})}function C(){return Promise.resolve(null)}Promise.all([b(),C()]).then(([o,e])=>{var t,r;e&&(_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,c("#header").outerHTML=_.template(e.header)({userInfo:o,rebuyDiscount:10,couponInfo:{coupon_amount:1,coupon_num:10}}),c("#footer").outerHTML=e.footer),o&&o.orders.length&&(c(".user-panel").classList.add("is-member"),(t=c(".dot"))==null||t.classList.add("active"),new Swiper("#order-swiper",{slidesPerView:1.08,spaceBetween:15,on:{slideChange(n){l(".dot").forEach((s,i)=>{i===n.realIndex?s.classList.add("active"):s.classList.remove("active")})},click(n,s){let i=s.target;for(;!i.classList.contains("swiper-slide")&&!i.classList.contains("swiper");)i=i.parentNode;const a=i.dataset.order_id;a&&(location.href="/ptc/order/"+a)}}}));{const n=c(".nav-dropdown");n&&document.addEventListener("click",()=>{!n.classList.contains("hidden")&&n.classList.add("fade-out")}),l("[data-toggle]").forEach(s=>{s.addEventListener("click",i=>{if(i.stopPropagation(),s.hasAttribute("data-auth")&&!o)return location.href="/ptc/login";const a=c(s.getAttribute("data-toggle")).classList;a.contains("hidden")?(a.remove("hidden"),a.add("fade-in"),window.innerWidth<768&&document.body.classList.add("lock-scroll")):a.add("fade-out")})}),l("[data-fade]").forEach(s=>{s.addEventListener("animationend",()=>{const i=s.classList;i.contains("fade-out")&&(i.add("hidden"),i.remove("fade-in","fade-out"),document.body.classList.remove("lock-scroll"))})}),(r=c("#signOut"))==null||r.addEventListener("click",()=>{y({title:"TIPS",content:"Are you sure you want to sign out?",confirmText:"YES",showCancel:!0,async onConfirm(){await E(),o=null,c(".user").innerHTML='<span class="u-no">LOGIN</span>',n.remove()}})}),l("[data-action=buy]").forEach(s=>{s.addEventListener("click",function(i){const a=i.target.dataset.id;location.href="/ptc/fill-order"+(a?`?pid=${a}`:"")})})}});c("#banner-swiper > .swiper-wrapper").children.length>1&&new Swiper("#banner-swiper",{loop:!0,autoplay:{delay:5e3},pagination:{el:".swiper-pagination",type:"bullets"},effect:"fade"});const T=c(".services");T&&document.addEventListener("scroll",()=>{const o=c(".popup-buy").classList;document.scrollingElement.scrollTop>=1400?o.add("in"):o.remove("in")});