class Component extends DCLogic {
state = { now: Date.now() };
componentDidMount(){
// event start: 22 Mordad 1405 ≈ 13 Aug 2026
this.target = new Date('2026-08-13T09:00:00+03:30').getTime();
this._t = setInterval(()=>this.setState({ now: Date.now() }), 1000);
}
componentWillUnmount(){ clearInterval(this._t); }
fa(n){ return String(n).replace(/\d/g, d=>'۰۱۲۳۴۵۶۷۸۹'[d]); }
pad(n){ return this.fa(String(n).padStart(2,'0')); }
icon(name){
const p={fill:'none',stroke:'currentColor',strokeWidth:1.7,strokeLinecap:'round',strokeLinejoin:'round'};
const svg=(...ch)=>React.createElement('svg',{width:20,height:20,viewBox:'0 0 24 24',...p},...ch);
const el=(t,a)=>React.createElement(t,a);
switch(name){
case 'cal': return svg(el('rect',{key:1,x:3,y:5,width:18,height:16,rx:2}),el('path',{key:2,d:'M3 9h18M8 3v4M16 3v4'}));
case 'pin': return svg(el('path',{key:1,d:'M12 21s-7-6-7-11a7 7 0 0 1 14 0c0 5-7 11-7 11z'}),el('circle',{key:2,cx:12,cy:10,r:2.5}));
case 'ticket': return svg(el('path',{key:1,d:'M3 8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2 2 2 0 0 0 0 4 2 2 0 0 1 0 4H5a2 2 0 0 1 0-4 2 2 0 0 0 0-4z'}),el('path',{key:2,d:'M14 6v12',strokeDasharray:'2 3'}));
case 'search': return svg(el('circle',{key:1,cx:11,cy:11,r:6.5}),el('path',{key:2,d:'M20 20l-4.2-4.2'}));
}
return svg();
}
renderVals(){
let diff = Math.max(0, Math.floor((this.target - this.state.now)/1000));
const d = Math.floor(diff/86400); diff-=d*86400;
const h = Math.floor(diff/3600); diff-=h*3600;
const m = Math.floor(diff/60); const s = diff-m*60;
return {
calIcon:this.icon('cal'), pinIcon:this.icon('pin'),
ticketIcon:this.icon('ticket'), searchIcon:this.icon('search'),
countdown:[
{ val:this.fa(d), label:'روز' },
{ val:this.pad(h), label:'ساعت' },
{ val:this.pad(m), label:'دقیقه' },
{ val:this.pad(s), label:'ثانیه' },
],
steps:[
{ n:this.fa(1), title:'تکمیل فرم ثبتنام', desc:'اطلاعات فردی و صنفی خود را در فرم ثبتنام آنلاین وارد کنید.' },
{ n:this.fa(2), title:'پرداخت و تأیید', desc:'هزینه ثبتنام را پرداخت کرده و کد رهگیری خود را دریافت کنید.' },
{ n:this.fa(3), title:'دریافت کارت ورود', desc:'کارت ورود به نمایشگاه را دریافت و در روزهای برگزاری همراه داشته باشید.' },
],
};
}
}