{"id":617,"date":"2026-10-05T09:49:59","date_gmt":"2026-10-05T02:19:59","guid":{"rendered":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/thiet-ke-ao-online\/"},"modified":"2026-10-05T14:27:32","modified_gmt":"2026-10-05T06:57:32","slug":"thiet-ke-ao-online","status":"publish","type":"page","link":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/thiet-ke-ao-online\/","title":{"rendered":"Thi\u1ebft k\u1ebf \u00e1o online"},"content":{"rendered":"\n<div class=\"dsg-page\"><div class=\"hero\"><div class=\"wrap\"><div class=\"crumb\"><a href=\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/\">Trang ch\u1ee7<\/a> \/ Thi\u1ebft k\u1ebf \u00e1o online<\/div><p class=\"eyebrow\">Thi\u1ebft k\u1ebf \u00e1o tr\u1ef1c tuy\u1ebfn<\/p><h1>T\u1ef1 thi\u1ebft k\u1ebf m\u1eabu \u0111\u1ed3ng ph\u1ee5c c\u1ee7a b\u1ea1n<\/h1><p>Ch\u1ecdn lo\u1ea1i \u00e1o, ph\u1ed1i m\u00e0u, th\u00eam logo v\u00e0 t\u00ean c\u00f4ng ty \u0111\u1ec3 xem tr\u01b0\u1edbc m\u1eabu ngay tr\u00ean website. T\u1ea3i \u1ea3nh thi\u1ebft k\u1ebf v\u1ec1 v\u00e0 g\u1eedi qua Zalo \u0111\u1ec3 H\u1ea3i Th\u1ecbnh Ph\u00e1t b\u00e1o gi\u00e1 v\u00e0 may m\u1eabu.<\/p><\/div><\/div><section id=\"thiet-ke-ao\"><div class=\"wrap\"><h2>Thi\u1ebft k\u1ebf \u00e1o \u0111\u1ed3ng ph\u1ee5c online<\/h2><p class=\"section-lead\">\u00c1o thun c\u1ed5 tr\u00f2n, \u00e1o thun c\u1ed5 tr\u1ee5, s\u01a1 mi v\u00e0 b\u1ea3o h\u1ed9 lao \u0111\u1ed9ng. \u0110\u1ed5i m\u00e0u t\u1eebng ph\u1ea7n, t\u1ea3i logo l\u00ean, k\u00e9o th\u1ea3 \u0111\u1ebfn v\u1ecb tr\u00ed in ho\u1eb7c th\u00eau r\u1ed3i xem k\u1ebft qu\u1ea3 ngay.<\/p><div class=\"dsg-grid\"><div class=\"dsg-stage\"><div class=\"dsg-canvaswrap\"><canvas id=\"dsg-cv\" width=\"820\" height=\"846\" aria-label=\"Xem tr\u01b0\u1edbc thi\u1ebft k\u1ebf \u00e1o\"><\/canvas><\/div><p class=\"dsg-hint\">K\u00e9o logo ho\u1eb7c ch\u1eef tr\u00ean \u00e1o \u0111\u1ec3 di chuy\u1ec3n. B\u1ea5m v\u00e0o l\u1edbp \u1edf khung b\u00ean ph\u1ea3i \u0111\u1ec3 ch\u1ec9nh k\u00edch th\u01b0\u1edbc v\u00e0 g\u00f3c xoay.<\/p><\/div><div class=\"dsg-panel\"><div class=\"dsg-card\"><h3>1. Ch\u1ecdn lo\u1ea1i \u00e1o<\/h3><div class=\"dsg-chips\" id=\"dsg-prods\"><\/div><div class=\"dsg-faces\" id=\"dsg-faces\" role=\"group\" aria-label=\"M\u1eb7t \u00e1o\" hidden><button type=\"button\" class=\"dsg-chip\" id=\"dsg-front\" aria-pressed=\"true\">M\u1eb7t tr\u01b0\u1edbc<\/button><button type=\"button\" class=\"dsg-chip\" id=\"dsg-back\" aria-pressed=\"false\">M\u1eb7t sau<\/button><span class=\"dsg-facehint\">Logo v\u00e0 ch\u1eef \u0111\u01b0\u1ee3c gi\u1eef ri\u00eang cho t\u1eebng m\u1eb7t.<\/span><\/div><\/div><div class=\"dsg-card\"><h3>2. Ph\u1ed1i m\u00e0u<\/h3><div id=\"dsg-regs\"><\/div><\/div><div class=\"dsg-card\"><h3>3. Th\u00eam logo v\u00e0 ch\u1eef<\/h3><div class=\"dsg-row\"><input type=\"file\" id=\"dsg-file\" class=\"dsg-file\" accept=\"image\/*\"><button type=\"button\" class=\"dsg-btn alt\" id=\"dsg-up\">+ T\u1ea3i logo l\u00ean<\/button><label class=\"dsg-lbl\"><input type=\"checkbox\" id=\"dsg-rmw\"> X\u00f3a n\u1ec1n tr\u1eafng c\u1ee7a logo<\/label><\/div><div class=\"dsg-row\"><input type=\"text\" id=\"dsg-txt\" class=\"dsg-in\" maxlength=\"60\" placeholder=\"T\u00ean c\u00f4ng ty, s\u1ed1 \u0111i\u1ec7n tho\u1ea1i...\" aria-label=\"N\u1ed9i dung ch\u1eef\"><select id=\"dsg-font\" class=\"dsg-sel\" aria-label=\"Ki\u1ec3u ch\u1eef\"><option value=\"Arial, Helvetica, sans-serif\">Arial<\/option><option value=\"Tahoma, Geneva, sans-serif\">Tahoma<\/option><option value=\"Verdana, Geneva, sans-serif\">Verdana<\/option><option value=\"'Trebuchet MS', Helvetica, sans-serif\">Trebuchet<\/option><option value=\"Georgia, serif\">Georgia<\/option><option value=\"'Times New Roman', Times, serif\">Times New Roman<\/option><\/select><input type=\"color\" id=\"dsg-tcol\" value=\"#ffffff\" title=\"M\u00e0u ch\u1eef\" aria-label=\"M\u00e0u ch\u1eef\"><label class=\"dsg-lbl\"><input type=\"checkbox\" id=\"dsg-bold\" checked> \u0110\u1eadm<\/label><button type=\"button\" class=\"dsg-btn\" id=\"dsg-addtxt\">+ Th\u00eam l\u1edbp ch\u1eef<\/button><\/div><div class=\"dsg-layers\" id=\"dsg-layers\"><\/div><div id=\"dsg-selui\" hidden><div class=\"dsg-ctl\"><span>K\u00edch th\u01b0\u1edbc<\/span><input type=\"range\" id=\"dsg-size\" min=\"20\" max=\"300\" value=\"100\"><span id=\"dsg-sizev\">100%<\/span><\/div><div class=\"dsg-ctl\"><span>Xoay<\/span><input type=\"range\" id=\"dsg-rot\" min=\"-180\" max=\"180\" value=\"0\"><span id=\"dsg-rotv\">0\u00b0<\/span><\/div><div class=\"dsg-row\"><span class=\"dsg-lbl\">V\u1ecb tr\u00ed nhanh:<\/span><button type=\"button\" class=\"dsg-btn alt sm\" data-pos=\"l\">Ng\u1ef1c tr\u00e1i<\/button><button type=\"button\" class=\"dsg-btn alt sm\" data-pos=\"c\">Gi\u1eefa ng\u1ef1c<\/button><button type=\"button\" class=\"dsg-btn alt sm\" data-pos=\"r\">Ng\u1ef1c ph\u1ea3i<\/button><button type=\"button\" class=\"dsg-btn alt sm\" data-pos=\"s\">Tay \u00e1o<\/button><\/div><\/div><\/div><div class=\"dsg-card\"><h3>4. Ho\u00e0n t\u1ea5t<\/h3><p class=\"dsg-sum\" id=\"dsg-sum\"><\/p><div class=\"dsg-row\"><button type=\"button\" class=\"dsg-btn hot\" id=\"dsg-dl\">T\u1ea3i \u1ea3nh thi\u1ebft k\u1ebf (PNG)<\/button><a class=\"dsg-btn\" id=\"dsg-zalo\" href=\"https:\/\/zalo.me\/0941257996\" target=\"_blank\" rel=\"noopener noreferrer\">G\u1eedi qua Zalo<\/a><button type=\"button\" class=\"dsg-btn alt\" id=\"dsg-reset\">L\u00e0m l\u1ea1i<\/button><\/div><div class=\"dsg-toast\" id=\"dsg-toast\" role=\"status\"><\/div><p class=\"dsg-note\">\u1ea2nh xem tr\u01b0\u1edbc ch\u1ec9 mang t\u00ednh tham kh\u1ea3o. M\u00e0u th\u1ef1c t\u1ebf v\u00e0 v\u1ecb tr\u00ed in\/th\u00eau s\u1ebd \u0111\u01b0\u1ee3c H\u1ea3i Th\u1ecbnh Ph\u00e1t x\u00e1c nh\u1eadn l\u1ea1i tr\u01b0\u1edbc khi may. Hotline\/Zalo 0941 257 996.<\/p><\/div><\/div><\/div><\/div><\/section><\/div><style>main.htp-editor-content{max-width:none;width:100%;padding:0;margin:0}main.htp-editor-content>h1:first-child{display:none}.dsg-page{font-family:\"Be Vietnam Pro\",Arial,sans-serif;color:#192d46}.dsg-page .wrap{max-width:1220px;margin:auto;padding:0 42px}.dsg-page .hero{background:linear-gradient(125deg,#122e52,#1d4d80);color:#fff;padding:41px 0 52px}.dsg-page .crumb{font-size:.83rem;color:#bfd6ee;margin-bottom:27px}.dsg-page .crumb a{text-decoration:none;color:#bfd6ee}.dsg-page .eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.77rem;font-weight:800;color:#bdd7f4;margin:0 0 13px}.dsg-page h1{max-width:890px;font-size:clamp(2.35rem,4.2vw,4rem);line-height:1.12;letter-spacing:-.04em;margin:0 0 19px;color:#fff}.dsg-page .hero p:last-child{color:#e0ecf8;line-height:1.7;max-width:790px;margin:0;font-size:1.04rem}.dsg-page h2{font-size:clamp(1.85rem,2.8vw,2.65rem);line-height:1.2;letter-spacing:-.035em;color:#142b51;margin:0 0 16px}.dsg-page .section-lead{color:#536981;line-height:1.75;margin:0 0 29px;max-width:790px}@media(max-width:700px){.dsg-page .wrap{padding:0 18px}}#thiet-ke-ao{background:#faf7f2;padding:48px 0}\n#thiet-ke-ao .dsg-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:22px}\n#thiet-ke-ao .dsg-stage{background:#fff;border:1px solid #e7ddd0;border-radius:12px;padding:14px;position:sticky;top:90px}\n#thiet-ke-ao .dsg-canvaswrap{background:#f3f1ee;border-radius:8px;overflow:hidden;display:flex;justify-content:center;min-height:240px}\n#thiet-ke-ao canvas{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;touch-action:none;cursor:grab}\n#thiet-ke-ao canvas.is-drag{cursor:grabbing}\n#thiet-ke-ao .dsg-hint{margin:10px 2px 0;font-size:13px;color:#6b6b6b}\n#thiet-ke-ao .dsg-panel{display:flex;flex-direction:column;gap:14px}\n#thiet-ke-ao .dsg-card{background:#fff;border:1px solid #e7ddd0;border-radius:12px;padding:16px}\n#thiet-ke-ao .dsg-card h3{margin:0 0 10px;font-size:15px;color:#1c3b63;font-weight:700}\n#thiet-ke-ao .dsg-chips{display:flex;flex-wrap:wrap;gap:8px}\n#thiet-ke-ao .dsg-chip{border:1px solid #e7ddd0;background:#fff;color:#1c3b63;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}\n#thiet-ke-ao .dsg-faces{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid #e7ddd0;margin-top:14px;padding-top:12px}\n#thiet-ke-ao .dsg-faces[hidden]{display:none}\n#thiet-ke-ao .dsg-facehint{flex-basis:100%;font-size:12px;line-height:1.5;color:#6b6b6b}\n#thiet-ke-ao .dsg-chip.is-active{background:#1c3b63;border-color:#1c3b63;color:#fff}\n#thiet-ke-ao .dsg-reg{margin-bottom:12px}\n#thiet-ke-ao .dsg-reg:last-child{margin-bottom:0}\n#thiet-ke-ao .dsg-reglabel{font-size:13px;font-weight:600;color:#2a2a2a;margin-bottom:6px;display:flex;align-items:center;gap:8px}\n#thiet-ke-ao .dsg-sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}\n#thiet-ke-ao .dsg-swb{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #cfc5b5;cursor:pointer;padding:0}\n#thiet-ke-ao .dsg-swb.is-active{box-shadow:0 0 0 2px #e8792a}\n#thiet-ke-ao input[type=color]{width:34px;height:28px;border:1px solid #e7ddd0;border-radius:6px;padding:0;background:#fff;cursor:pointer}\n#thiet-ke-ao .dsg-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}\n#thiet-ke-ao .dsg-row:last-child{margin-bottom:0}\n#thiet-ke-ao .dsg-in,#thiet-ke-ao .dsg-sel{padding:9px 12px;border:1px solid #e7ddd0;border-radius:8px;font-size:14px;background:#fff;font-family:inherit;min-width:0}\n#thiet-ke-ao .dsg-in{flex:1 1 160px}\n#thiet-ke-ao .dsg-in:focus,#thiet-ke-ao .dsg-sel:focus{outline:2px solid #e8792a;outline-offset:1px}\n#thiet-ke-ao .dsg-btn{border:1px solid #1c3b63;background:#1c3b63;color:#fff;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;text-decoration:none;display:inline-block;line-height:1.3}\n#thiet-ke-ao .dsg-btn.alt{background:#fff;color:#1c3b63}\n#thiet-ke-ao .dsg-btn.hot{background:#e8792a;border-color:#e8792a}\n#thiet-ke-ao .dsg-btn.sm{padding:6px 11px;font-size:13px}\n#thiet-ke-ao .dsg-btn[disabled]{opacity:.45;cursor:not-allowed}\n#thiet-ke-ao .dsg-file{display:none}\n#thiet-ke-ao .dsg-layers{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}\n#thiet-ke-ao .dsg-layer{display:inline-flex;align-items:center;gap:6px;border:1px solid #e7ddd0;border-radius:999px;padding:5px 6px 5px 12px;font-size:13px;background:#fff;cursor:pointer;max-width:100%}\n#thiet-ke-ao .dsg-layer.is-active{border-color:#e8792a;background:#fff4ea}\n#thiet-ke-ao .dsg-layer b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-weight:600}\n#thiet-ke-ao .dsg-layer i{font-style:normal;color:#c0392b;font-weight:700;padding:0 6px}\n#thiet-ke-ao .dsg-ctl{display:grid;grid-template-columns:70px 1fr 44px;gap:8px;align-items:center;font-size:13px;margin:6px 0}\n#thiet-ke-ao .dsg-ctl input[type=range]{width:100%;accent-color:#e8792a}\n#thiet-ke-ao .dsg-ctl span:last-child{color:#6b6b6b;text-align:right}\n#thiet-ke-ao .dsg-lbl{font-size:13px;color:#2a2a2a;display:inline-flex;align-items:center;gap:6px}\n#thiet-ke-ao .dsg-sum{font-size:13px;color:#2a2a2a;background:#faf7f2;border:1px dashed #d9cdb9;border-radius:8px;padding:10px 12px;white-space:pre-line;margin:0 0 10px}\n#thiet-ke-ao .dsg-toast{font-size:13px;color:#1c3b63;margin-top:8px;min-height:18px}\n#thiet-ke-ao .dsg-note{font-size:12.5px;color:#6b6b6b;margin-top:8px}\n@media (max-width:900px){#thiet-ke-ao .dsg-grid{grid-template-columns:minmax(0,1fr)}#thiet-ke-ao .dsg-stage{position:static}}\n<\/style><script>(function(){\nvar U={tee:['image-4.jpg','image-5.png'],poloA:['image-6.jpg','image-7.png'],poloB:['image-5.jpg','image-6.png'],somi_nam:['image-2.jpg','image-3.png'],somi_nu:['image-3.jpg','image-4.png'],baoho:['image.jpg','image-1.png']};var UP='\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/';Object.keys(U).forEach(function(k){U[k]=[UP+U[k][0],UP+U[k][1]]});\nU.poloA[0]=\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/xinrong.png\";U.poloA[1]=U.poloA[0];U.poloB[0]=\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/polo-co-tru-tron-corrected-20261005.png\";\nU.somi_nu[0]=\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/so-mi-nu-mau-trang.png\";U.somi_nu[1]=U.somi_nu[0];\nvar SW=['#ffffff','#1a1a1a','#1c3b63','#2255b3','#6fb3e0','#c8102e','#e8792a','#f2c230','#2e8b57','#1f5c3a','#9aa0a6','#4a4f55','#d9c7a5','#e58aa3','#6a4c93','#7b4a2a'];\nvar P=[\n{id:'tee',name:'\u00c1o thun c\u1ed5 tr\u00f2n',file:'dsg-tee',w:820,h:846,med:[210,206.7],reg:[['Th\u00e2n v\u00e0 tay \u00e1o','#f5dda5'],['C\u1ed5 \u00e1o','#f2d9a1']],pos:{l:[.63,.29],c:[.5,.3],r:[.37,.29],s:[.88,.35]}},\n{id:'poloA',name:'\u00c1o thun c\u1ed5 tr\u1ee5 bo vi\u1ec1n',file:'dsg-poloA',w:1024,h:1024,med:[255,255],reg:[['Th\u00e2n v\u00e0 tay \u00e1o','#ffffff'],['C\u1ed5 \u00e1o v\u00e0 bo tay','#ffffff']],pos:{l:[.65,.35],c:[.5,.52],r:[.34,.32],s:[.86,.34]}},\n{id:'poloB',name:'\u00c1o thun c\u1ed5 tr\u1ee5 tr\u01a1n',file:'dsg-poloB',w:703,h:900,med:[123,200],reg:[['M\u00e0u \u00e1o (th\u00e2n, c\u1ed5, tay)','#7a7876']],pos:{l:[.65,.28],c:[.5,.4],r:[.34,.28],s:[.88,.38]}},\n{id:'somi_nam',name:'S\u01a1 mi nam',file:'dsg-somi_nam',w:760,h:746,med:[193.3,200],reg:[['M\u00e0u \u00e1o','#b1bed6']],pos:{l:[.62,.33],c:[.49,.4],r:[.37,.33],s:[.81,.4]}},\n{id:'somi_nu',name:'S\u01a1 mi n\u1eef tr\u01a1n',file:'dsg-somi_nu',w:800,h:800,med:[245,200],reg:[['M\u00e0u \u00e1o (th\u00e2n, c\u1ed5, tay)','#ffffff']],pos:{l:[.65,.39],c:[.5,.52],r:[.34,.35],s:[.85,.32]}},\n{id:'baoho',name:'B\u1ea3o h\u1ed9 lao \u0111\u1ed9ng',file:'dsg-baoho',w:568,h:900,med:[201,86.7],reg:[['M\u00e0u ch\u00ednh (th\u00e2n, tay, qu\u1ea7n)','#c6cacd'],['M\u00e0u ph\u1ed1i (vai, vi\u1ec1n, kh\u00f3a)','#2e4d89']],pos:{l:[.66,.52],c:[.5,.5],r:[.35,.5],s:[.86,.48]}}\n];\nvar BACK={};\n[{\"id\":\"tee\",\"url\":\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/ao-thun-co-tron-mat-sau-20261005.png\",\"w\":1254,\"h\":1254,\"med\":[245,240]},{\"id\":\"poloA\",\"url\":\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/ao-polo-bo-vien-mat-sau-20261005.png\",\"w\":1254,\"h\":1254,\"med\":[255,255]},{\"id\":\"poloB\",\"url\":\"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-content\/uploads\/2026\/10\/ao-polo-tron-mat-sau-20261005.png\",\"w\":1254,\"h\":1254,\"med\":[128,200]}].forEach(function(b){\n var front=P.find(function(p){return p.id===b.id;});\n var q=Object.assign({},front,b,{id:b.id+'_back',parentId:b.id,isBack:true,pos:{l:[.5,.26],c:[.5,.47],r:[.5,.69],s:[.865,.345]}});\n BACK[b.id]=q;U[q.id]=[b.url,b.url];\n});\nvar cv=document.getElementById('dsg-cv');if(!cv)return;\nvar ctx=cv.getContext('2d');\nvar $=function(i){return document.getElementById(i);};\nvar cur=null,frontProd=null,productColors={},designs={},colors=[],layers=[],sel=null,nid=1,drag=null,raf=0;\nfunction toast(t){var e=$('dsg-toast');e.textContent=t;clearTimeout(toast.t);toast.t=setTimeout(function(){e.textContent='';},4500);}\nfunction rgb(h){var n=parseInt(h.slice(1),16);return [n>>16&255,n>>8&255,n&255];}\nfunction loadImg(src){return new Promise(function(ok,no){var i=new Image();i.onload=function(){ok(i);};i.onerror=no;i.src=src;});}\nfunction px(img,w,h){var c=document.createElement('canvas');c.width=w;c.height=h;var x=c.getContext('2d');x.drawImage(img,0,0,w,h);return x.getImageData(0,0,w,h);}\nfunction xinRongMask(p,base,mask){\n var W=p.w,H=p.h,bd=base.data,md=mask.data;\n var sc=document.createElement('canvas');sc.width=W;sc.height=H;\n var sx=sc.getContext('2d');sx.scale(W\/1024,H\/1024);sx.fillStyle='#fff';\n sx.fill(new Path2D('M414 0 C399 1 386 24 375 47 L363 61 L182 141 C155 160 137 194 126 228 C110 278 99 348 88 405 L83 445 C128 464 186 479 230 480 L241 444 C248 496 251 580 250 660 C251 783 241 912 234 996 C234 1014 311 1024 509 1024 C698 1024 787 1013 786 994 C777 898 770 773 770 665 C770 574 774 499 782 444 L795 480 C839 480 904 462 943 445 L937 405 C928 365 920 320 911 282 C906 254 903 230 894 209 C883 180 871 158 845 141 L663 61 C653 39 641 0 619 0 Z'));\n var coverageData=sx.getImageData(0,0,W,H).data;\n var tc=document.createElement('canvas');tc.width=W;tc.height=H;\n var tx=tc.getContext('2d');tx.scale(W\/1024,H\/1024);tx.fillStyle='#fff';\n function path(s){tx.fill(new Path2D(s));}\n path('M415 0 C402 6 387 25 379 45 C369 59 362 72 363 87 C365 112 380 143 398 162 L474 122 C445 102 419 64 410 42 C405 22 406 7 415 0 Z');\n path('M619 0 C636 8 646 28 653 49 C662 65 668 79 665 95 C660 121 648 145 632 162 L560 121 C590 99 613 63 624 43 C630 24 629 8 619 0 Z');\n path('M415 0 L619 0 C632 10 632 27 624 43 C567 54 467 56 410 42 C401 23 403 9 415 0 Z');\n path('M88 405 C129 420 185 439 234 445 L235 459 L229 481 C184 477 125 462 83 445 Z');\n path('M783 444 C832 438 891 423 937 404 L944 446 C902 462 840 477 795 481 L787 462 Z');\n var trim=tx.getImageData(0,0,W,H).data,buttons=[[480,139],[513,220],[513,292]];\n function clamp(v){return Math.max(0,Math.min(1,v));}\n for(var y=0;H>y;y++){\n  var py=y*1024\/H;\n  for(var x=0;W>x;x++){\n   var j=(y*W+x)*4,R=bd[j],G=bd[j+1],B=bd[j+2],L=(R+G+B)\/3;\n   var coverage=coverageData[j+3]\/255,tr=trim[j+3]\/255;\n   var navy=clamp((150-L)\/30)*clamp((B-R-3)\/8)*clamp((B-G-2)\/5);\n   coverage*=1-navy;\n   var px=x*1024\/W;\n   for(var k=0;buttons.length>k;k++){\n    var dx=px-buttons[k][0],dy=py-buttons[k][1];\n    if(169>dx*dx+dy*dy){coverage=0;break;}\n   }\n   md[j]=Math.round(255*coverage*(1-tr));md[j+1]=Math.round(255*coverage*tr);md[j+2]=0;md[j+3]=255;\n  }\n }\n return mask;\n}\nfunction femalePlainShirtMask(p,base,mask){\n var W=p.w,H=p.h,bd=base.data,md=mask.data;\n var sc=document.createElement('canvas');sc.width=W;sc.height=H;\n var sx=sc.getContext('2d');sx.scale(W\/800,H\/800);sx.fillStyle='#fff';\n sx.fill(new Path2D('M338 11 C329 11 324 16 321 27 C315 45 308 57 295 68 L164 119 C151 125 141 147 132 167 L69 327 C108 345 160 365 193 371 C199 374 201 370 203 360 L206 340 C210 379 217 421 220 453 C225 497 218 543 209 581 L173 711 C169 733 235 782 397 790 C520 790 590 753 624 714 C606 653 590 589 582 535 C574 489 577 440 583 393 L592 340 L596 361 C597 367 599 369 605 367 L731 326 L666 162 C657 143 650 127 638 120 L501 68 C488 50 484 27 474 16 C471 11 463 11 452 11 Z'));\n var coverageData=sx.getImageData(0,0,W,H).data;\n var buttons=[[398,216],[400,312],[400,420],[398,525],[398,635]];\n for(var y=0;H>y;y++){\n  var py=y*800\/H;\n  for(var x=0;W>x;x++){\n   var j=(y*W+x)*4,px=x*800\/W;\n   var neutral=Math.max(0,Math.min(1,(17-(bd[j]-bd[j+2]))\/7));\n   var coverage=coverageData[j+3]\/255*neutral;\n   for(var k=0;buttons.length>k;k++){\n    var dx=px-buttons[k][0],dy=py-buttons[k][1];\n    var distance=Math.sqrt(dx*dx+dy*dy);\n    coverage*=Math.max(0,Math.min(1,distance-7));\n   }\n   md[j]=Math.round(255*coverage);md[j+1]=0;md[j+2]=0;md[j+3]=255;\n  }\n }\n return mask;\n}\nfunction backShirtMask(p,base,mask){\n var W=p.w,H=p.h,bd=base.data,md=mask.data;\n var tc=document.createElement('canvas');tc.width=W;tc.height=H;\n var tx=tc.getContext('2d');tx.scale(W\/1254,H\/1254);tx.fillStyle='#fff';\n function path(s){tx.fill(new Path2D(s));}\n if(p.parentId==='tee')path('M488 35 C555 65 695 65 763 35 L788 53 C710 125 547 122 458 54 Z');\n if(p.parentId==='poloA'){\n  path('M490 25 C499 19 757 19 768 25 C785 42 787 68 806 91 L822 106 C711 96 549 96 432 106 L457 84 C472 63 474 43 490 25 Z');\n  path('M113 494 C172 515 247 535 307 536 L294 587 C223 590 156 567 106 541 Z');\n  path('M945 536 C1011 535 1104 514 1138 494 L1149 541 C1092 565 1029 584 967 588 Z');\n }\n var trim=tx.getImageData(0,0,W,H).data;\n function clamp(v){return Math.max(0,Math.min(1,v));}\n for(var j=0;bd.length>j;j+=4){\n  var coverage=bd[j+3]>32?1:0;\n  if(p.parentId==='poloA'){\n   var R=bd[j],G=bd[j+1],B=bd[j+2],L=(R+G+B)\/3;\n   coverage*=1-clamp((150-L)\/30)*clamp((B-R-3)\/8)*clamp((B-G-2)\/5);\n  }\n  var tr=trim[j+3]\/255;\n  md[j]=Math.round(255*coverage*(1-tr));md[j+1]=Math.round(255*coverage*tr);md[j+2]=0;md[j+3]=255;\n }\n return mask;\n}\nfunction correctedPoloMask(p,base,mask){\n if(p.isBack)return backShirtMask(p,base,mask);\n if(p.id==='somi_nu')return femalePlainShirtMask(p,base,mask);\n if(p.id==='poloA')return xinRongMask(p,base,mask);\n if(p.id!=='poloA'&&p.id!=='poloB')return mask;\n var bd=base.data,md=mask.data,W=p.w,H=p.h;\n function clamp(v){return Math.max(0,Math.min(1,v));}\n for(var i=0,j=0;i<W*H;i++,j+=4){\n  var R=bd[j],G=bd[j+1],B=bd[j+2],a=0,b=0;\n  if(p.id==='poloA'){\n   var coverage=Math.min(clamp((B-R-8)\/24),clamp((.83-R\/(B+1))\/.18));\n   var nx=(i%W)\/W,ny=Math.floor(i\/W)\/H;\n   var collarArea=Math.min(.215-ny,nx-.32,.68-nx)>0;\n   if(Math.min(ny-.17,nx-.465,.535-nx)>0)collarArea=false;\n   var cuffArea=Math.min(ny-.34,.52-ny)>0;\n   if(Math.min(nx-.22,.78-nx)>0)cuffArea=false;\n   var collar=(collarArea||cuffArea)?clamp((.64-G\/(B+1))\/.06):0;\n   a=coverage*(1-collar);b=coverage*collar;\n  }else{\n   var L=(R+G+B)\/3;\n   a=clamp((231-L)\/40);\n   var nx=(i%W)\/W-.496,ny=Math.floor(i\/W)\/H;\n   for(var k=0;k<3;k++){\n    var cy=[.159,.213,.280][k];\n    if(nx*nx\/(.012*.012)+(ny-cy)*(ny-cy)\/(.0094*.0094)<1){a=0;break;}\n   }\n  }\n  md[j]=Math.round(a*255);md[j+1]=Math.round(b*255);md[j+2]=0;md[j+3]=255;\n }\n return mask;\n}\nfunction ensure(p){\n if(p._d)return Promise.resolve(p._d);\n if(p._p)return p._p;\n p._p=Promise.all([loadImg(U[p.id][0]),loadImg(U[p.id][1])]).then(function(r){\n  var b=px(r[0],p.w,p.h),m=px(r[1],p.w,p.h),n=p.w*p.h,lum=new Float32Array(n);\n  m=correctedPoloMask(p,b,m);\n  for(var i=0,j=0;i<n;i++,j+=4)lum[i]=(b.data[j]+b.data[j+1]+b.data[j+2])\/3;\n  var oc=document.createElement('canvas');oc.width=p.w;oc.height=p.h;\n  p._d={base:b.data,mask:m.data,lum:lum,oc:oc,octx:oc.getContext('2d'),out:new ImageData(p.w,p.h)};\n  return p._d;\n });\n return p._p;\n}\nfunction f(c,s){var v=c*s+110*(s-1)*(1-c\/255)*(1-c\/255);return v<0?0:(v>255?255:v);}\nfunction tint(){\n var d=cur._d,o=d.out.data,bd=d.base,md=d.mask,lum=d.lum,n=lum.length;\n var c1=rgb(colors[0]),c2=colors[1]?rgb(colors[1]):null,m0=cur.med[0],m1=cur.med[1];\n var keep1=false,keep2=false;\n if((cur.parentId||cur.id)==='poloA'){keep1=colors[0].toLowerCase()===cur.reg[0][1];keep2=colors[1].toLowerCase()===cur.reg[1][1];}\n if(cur.isBack){if(cur.parentId==='poloB')keep1=colors[0].toLowerCase()===cur.reg[0][1];}\n if(cur.id==='somi_nu')keep1=colors[0].toLowerCase()===cur.reg[0][1];\n for(var i=0,j=0;i<n;i++,j+=4){\n  var a=md[j]\/255,b=md[j+1]\/255,alpha=cur.isBack?Math.max(0,Math.min(255,(bd[j+3]-32)*255\/192)):255;\n  if(a+b<0.004){o[j]=bd[j];o[j+1]=bd[j+1];o[j+2]=bd[j+2];o[j+3]=alpha;continue;}\n  if(a+b>1){var k=1\/(a+b);a*=k;b*=k;}\n  var w=1-a-b,r=bd[j]*w,g=bd[j+1]*w,bl=bd[j+2]*w,L=lum[i];\n  if(a>0){if(keep1){r+=a*bd[j];g+=a*bd[j+1];bl+=a*bd[j+2];}else{var s=L\/m0;r+=a*f(c1[0],s);g+=a*f(c1[1],s);bl+=a*f(c1[2],s);}}\n  if(b>0&&c2){if(keep2){r+=b*bd[j];g+=b*bd[j+1];bl+=b*bd[j+2];}else{var s2=L\/m1;r+=b*f(c2[0],s2);g+=b*f(c2[1],s2);bl+=b*f(c2[2],s2);}}\n  o[j]=r;o[j+1]=g;o[j+2]=bl;o[j+3]=alpha;\n }\n d.octx.putImageData(d.out,0,0);\n}\nfunction size(L){\n var W=cv.width;\n if(L.type==='img'){var w=W*.18*L.s;return [w,w*L.cv.height\/L.cv.width];}\n var fs=W*.06*L.s;ctx.save();ctx.font=(L.bold?'700 ':'400 ')+fs+'px '+L.font;var tw=ctx.measureText(L.text).width;ctx.restore();return [tw,fs*1.25];\n}\nfunction drawLayer(c,L){\n var W=cv.width,H=cv.height,sz=size(L);\n c.save();c.translate(L.x*W,L.y*H);c.rotate(L.rot*Math.PI\/180);\n if(L.type==='img'){c.drawImage(L.cv,-sz[0]\/2,-sz[1]\/2,sz[0],sz[1]);}\n else{c.font=(L.bold?'700 ':'400 ')+(W*.06*L.s)+'px '+L.font;c.textAlign='center';c.textBaseline='middle';c.fillStyle=L.color;c.fillText(L.text,0,0);}\n c.restore();\n}\nfunction paint(){\n raf=0;if(!cur||!cur._d)return;\n ctx.clearRect(0,0,cv.width,cv.height);ctx.drawImage(cur._d.oc,0,0);\n layers.forEach(function(L){drawLayer(ctx,L);});\n if(sel){var L=sel,sz=size(L),W=cv.width,H=cv.height;ctx.save();ctx.translate(L.x*W,L.y*H);ctx.rotate(L.rot*Math.PI\/180);ctx.setLineDash([6,4]);ctx.lineWidth=2;ctx.strokeStyle='#e8792a';ctx.strokeRect(-sz[0]\/2-4,-sz[1]\/2-4,sz[0]+8,sz[1]+8);ctx.restore();}\n}\nfunction redraw(){if(!raf)raf=requestAnimationFrame(paint);}\nvar userCol=false;\nfunction autoCol(){if(userCol)return;var c=rgb(colors[0]),l=.3*c[0]+.59*c[1]+.11*c[2];$('dsg-tcol').value=l>150?'#1c3b63':'#ffffff';}\nfunction retint(){productColors[cur.parentId||cur.id]=colors;autoCol();if(cur&&cur._d){tint();redraw();}summary();}\nfunction summary(){\n var t='Lo\u1ea1i \u00e1o: '+cur.name;\n if(BACK[frontProd.id])t+='\\nM\u1eb7t \u00e1o: '+(cur.isBack?'M\u1eb7t sau':'M\u1eb7t tr\u01b0\u1edbc');\n cur.reg.forEach(function(r,i){t+='\\n'+r[0]+': '+colors[i].toUpperCase();});\n var li=layers.filter(function(l){return l.type==='img';}).length,tx=layers.filter(function(l){return l.type==='txt';}).map(function(l){return '\"'+l.text+'\"';});\n t+='\\nLogo: '+(li?li+' logo':'ch\u01b0a c\u00f3');\n t+='\\nCh\u1eef: '+(tx.length?tx.join(', '):'ch\u01b0a c\u00f3');\n $('dsg-sum').textContent=t;\n}\nfunction buildFaces(){\n var enabled=!!BACK[frontProd.id],back=!!cur.isBack;\n $('dsg-faces').hidden=!enabled;\n $('dsg-front').classList.toggle('is-active',!back);$('dsg-front').setAttribute('aria-pressed',String(!back));\n $('dsg-back').classList.toggle('is-active',back);$('dsg-back').setAttribute('aria-pressed',String(back));\n var labels=back?{l:'L\u01b0ng tr\u00ean',c:'Gi\u1eefa l\u01b0ng',r:'L\u01b0ng d\u01b0\u1edbi',s:'Tay \u00e1o'}:{l:'Ng\u1ef1c tr\u00e1i',c:'Gi\u1eefa ng\u1ef1c',r:'Ng\u1ef1c ph\u1ea3i',s:'Tay \u00e1o'};\n document.querySelectorAll('#dsg-selui [data-pos]').forEach(function(b){b.textContent=labels[b.getAttribute('data-pos')];});\n $('dsg-dl').textContent=enabled?(back?'T\u1ea3i m\u1eb7t sau (PNG)':'T\u1ea3i m\u1eb7t tr\u01b0\u1edbc (PNG)'):'T\u1ea3i \u1ea3nh thi\u1ebft k\u1ebf (PNG)';\n}\nfunction buildProds(){\n var h=$('dsg-prods');h.innerHTML='';\n P.forEach(function(p){var b=document.createElement('button');b.type='button';b.className='dsg-chip'+(p===frontProd?' is-active':'');b.textContent=p.name;b.onclick=function(){if(p!==frontProd)setProd(cur.isBack&&BACK[p.id]?BACK[p.id]:p);};h.appendChild(b);});\n}\nfunction buildRegs(){\n var h=$('dsg-regs');h.innerHTML='';\n cur.reg.forEach(function(r,i){\n  var box=document.createElement('div');box.className='dsg-reg';\n  var lb=document.createElement('div');lb.className='dsg-reglabel';lb.textContent=r[0];box.appendChild(lb);\n  var sw=document.createElement('div');sw.className='dsg-sw';\n  function mk(c){var b=document.createElement('button');b.type='button';b.className='dsg-swb';b.style.background=c;b.title=c;b.setAttribute('aria-label','M\u00e0u '+c);b.onclick=function(){colors[i]=c;pick.value=c;mark();retint();};sw.appendChild(b);return b;}\n  var btns=[];\n  var pick=document.createElement('input');pick.type='color';pick.value=colors[i];pick.title='Ch\u1ecdn m\u00e0u kh\u00e1c';\n  btns.push(mk(r[1]));SW.forEach(function(c){if(c.toLowerCase()!==r[1].toLowerCase())btns.push(mk(c));});\n  if(colors[i].toLowerCase()!==r[1].toLowerCase()){if(!SW.some(function(c){return c.toLowerCase()===colors[i].toLowerCase();}))btns.push(mk(colors[i]));}\n  pick.oninput=function(){colors[i]=pick.value;mark();retint();};\n  function mark(){btns.forEach(function(b){b.classList.toggle('is-active',b.title.toLowerCase()===colors[i].toLowerCase());});}\n  sw.appendChild(pick);box.appendChild(sw);h.appendChild(box);mark();\n });\n}\nfunction buildLayers(){\n var h=$('dsg-layers');h.innerHTML='';\n layers.forEach(function(L,i){\n  var e=document.createElement('span');e.className='dsg-layer'+(L===sel?' is-active':'');\n  var b=document.createElement('b');b.textContent=(L.type==='img'?'Logo ':'Ch\u1eef: ')+(L.type==='img'?(L.n):L.text);e.appendChild(b);\n  var x=document.createElement('i');x.textContent='\u00d7';x.title='X\u00f3a';x.onclick=function(ev){ev.stopPropagation();layers.splice(i,1);if(sel===L)select(null);else buildLayers();summary();redraw();};e.appendChild(x);\n  e.onclick=function(){select(L);};h.appendChild(e);\n });\n var ui=$('dsg-selui');ui.hidden=!sel;\n if(sel){$('dsg-size').value=Math.round(sel.s*100);$('dsg-sizev').textContent=Math.round(sel.s*100)+'%';$('dsg-rot').value=Math.round(sel.rot);$('dsg-rotv').textContent=Math.round(sel.rot)+'\u00b0';}\n}\nfunction select(L){\n sel=L;\n if(L&&L.type==='txt'){$('dsg-txt').value=L.text;$('dsg-font').value=L.font;$('dsg-tcol').value=L.color;$('dsg-bold').checked=L.bold;}\n buildLayers();redraw();\n}\nfunction setProd(p){\n if(cur)designs[cur.isBack?'back':'front']={layers:layers};\n var id=p.parentId||p.id;\n frontProd=P.find(function(q){return q.id===id;});\n cur=p;colors=productColors[id]||p.reg.map(function(r){return r[1];});productColors[id]=colors;\n var side=p.isBack?'back':'front';\n layers=designs[side]?designs[side].layers:[];sel=null;drag=null;\n layers.forEach(function(L){if(L.pk)place(L,L.pk);});\n buildProds();buildFaces();buildRegs();buildLayers();summary();\n cv.width=p.w;cv.height=p.h;cv.setAttribute('aria-busy','true');cv.setAttribute('aria-label','Xem tr\u01b0\u1edbc '+p.name+(BACK[id]?(p.isBack?' \u2013 M\u1eb7t sau':' \u2013 M\u1eb7t tr\u01b0\u1edbc'):''));\n $('dsg-dl').disabled=true;\n ensure(p).then(function(){\n  if(cur!==p)return;\n  var bg=cur._d.base,wr=cv.parentNode;\n  wr.style.background=p.isBack?'#f3f1ee':'rgb('+bg[0]+','+bg[1]+','+bg[2]+')';\n  autoCol();tint();buildLayers();summary();cv.setAttribute('aria-busy','false');$('dsg-dl').disabled=false;redraw();\n }).catch(function(){if(cur===p){cv.setAttribute('aria-busy','false');toast('Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c \u1ea3nh m\u1eabu \u00e1o. Vui l\u00f2ng t\u1ea3i l\u1ea1i trang.');}});\n}\nfunction whiteOut(L){\n var src=L.src,mw=600,sc=Math.min(1,mw\/Math.max(src.width,src.height)),w=Math.max(1,Math.round(src.width*sc)),h=Math.max(1,Math.round(src.height*sc));\n var c=document.createElement('canvas');c.width=w;c.height=h;var x=c.getContext('2d');x.drawImage(src,0,0,w,h);\n if(L.rmw){var im=x.getImageData(0,0,w,h),d=im.data;for(var i=0;i<d.length;i+=4){var m=Math.min(d[i],d[i+1],d[i+2]);if(m>=245)d[i+3]=0;else if(m>215)d[i+3]=d[i+3]*(245-m)\/30;}x.putImageData(im,0,0);}\n L.cv=c;\n}\nfunction place(L,k){var q=cur.pos[k]||cur.pos.l;L.pk=k;L.x=q[0];L.y=Math.min(.95,q[1]+(L.dy||0));}\nfunction addImg(img,name){\n var L={id:nid++,type:'img',src:img,rmw:$('dsg-rmw').checked,s:1,rot:0,n:name};whiteOut(L);place(L,'l');\n layers.push(L);select(L);summary();\n}\nfunction addTxt(){\n var t=$('dsg-txt').value.trim();if(!t){toast('H\u00e3y nh\u1eadp n\u1ed9i dung ch\u1eef tr\u01b0\u1edbc.');$('dsg-txt').focus();return;}\n var L={id:nid++,type:'txt',text:t,font:$('dsg-font').value,color:$('dsg-tcol').value,bold:$('dsg-bold').checked,s:1,rot:0};L.dy=.07*layers.filter(function(l){return l.type==='txt';}).length;place(L,'c');\n layers.push(L);select(L);summary();\n}\nfunction pt(e){var r=cv.getBoundingClientRect();return [(e.clientX-r.left)*cv.width\/r.width,(e.clientY-r.top)*cv.height\/r.height];}\nfunction hit(x,y){\n for(var i=layers.length-1;i>=0;i--){var L=layers[i],sz=size(L),dx=x-L.x*cv.width,dy=y-L.y*cv.height,a=-L.rot*Math.PI\/180,rx=dx*Math.cos(a)-dy*Math.sin(a),ry=dx*Math.sin(a)+dy*Math.cos(a);\n  if(Math.abs(rx)<=sz[0]\/2+8){if(Math.abs(ry)<=sz[1]\/2+8)return L;}}\n return null;\n}\ncv.addEventListener('pointerdown',function(e){\n var p=pt(e),L=hit(p[0],p[1]);\n if(L){select(L);drag={L:L,dx:L.x*cv.width-p[0],dy:L.y*cv.height-p[1]};cv.classList.add('is-drag');try{cv.setPointerCapture(e.pointerId);}catch(_){}e.preventDefault();}\n else if(sel){select(null);}\n});\ncv.addEventListener('pointermove',function(e){\n if(!drag)return;var p=pt(e);\n drag.L.pk=null;drag.L.x=Math.max(0,Math.min(1,(p[0]+drag.dx)\/cv.width));drag.L.y=Math.max(0,Math.min(1,(p[1]+drag.dy)\/cv.height));redraw();\n});\nfunction endDrag(){drag=null;cv.classList.remove('is-drag');}\ncv.addEventListener('pointerup',endDrag);cv.addEventListener('pointercancel',endDrag);\n$('dsg-up').onclick=function(){$('dsg-file').click();};\n$('dsg-file').onchange=function(){\n var f=this.files?this.files[0]:null;this.value='';if(!f)return;\n if(!\/^image\\\/\/.test(f.type)){toast('Vui l\u00f2ng ch\u1ecdn file \u1ea3nh (PNG, JPG, SVG, WEBP).');return;}\n if(f.size>8*1024*1024){toast('\u1ea2nh qu\u00e1 l\u1edbn (t\u1ed1i \u0111a 8MB).');return;}\n var u=URL.createObjectURL(f),img=new Image();\n img.onload=function(){if(!img.width||!img.height){toast('Kh\u00f4ng \u0111\u1ecdc \u0111\u01b0\u1ee3c \u1ea3nh logo.');return;}addImg(img,(layers.filter(function(l){return l.type==='img';}).length+1)+'');};\n img.onerror=function(){toast('Kh\u00f4ng \u0111\u1ecdc \u0111\u01b0\u1ee3c \u1ea3nh logo.');};img.src=u;\n};\n$('dsg-rmw').onchange=function(){if(sel&&sel.type==='img'){sel.rmw=this.checked;whiteOut(sel);redraw();}};\n$('dsg-addtxt').onclick=addTxt;\nfunction liveTxt(){if(sel&&sel.type==='txt'){var t=$('dsg-txt').value;sel.text=t||' ';sel.font=$('dsg-font').value;sel.color=$('dsg-tcol').value;sel.bold=$('dsg-bold').checked;buildLayers();summary();redraw();}}\n$('dsg-tcol').addEventListener('input',function(){userCol=true;});\n['dsg-txt','dsg-font','dsg-tcol','dsg-bold'].forEach(function(i){$(i).addEventListener('input',liveTxt);$(i).addEventListener('change',liveTxt);});\n$('dsg-size').oninput=function(){if(sel){sel.s=this.value\/100;$('dsg-sizev').textContent=this.value+'%';redraw();}};\n$('dsg-rot').oninput=function(){if(sel){sel.rot=+this.value;$('dsg-rotv').textContent=this.value+'\u00b0';redraw();}};\ndocument.querySelectorAll('#dsg-selui [data-pos]').forEach(function(b){b.onclick=function(){if(sel){place(sel,b.getAttribute('data-pos'));redraw();}};});\n$('dsg-reset').onclick=function(){layers=[];sel=null;colors=cur.reg.map(function(r){return r[1];});buildRegs();buildLayers();retint();toast('\u0110\u00e3 \u0111\u01b0a thi\u1ebft k\u1ebf v\u1ec1 m\u1eb7c \u0111\u1ecbnh.');};\nfunction render(){\n var c=document.createElement('canvas');c.width=cv.width;c.height=cv.height;var x=c.getContext('2d');\n x.fillStyle='#fff';x.fillRect(0,0,c.width,c.height);x.drawImage(cur._d.oc,0,0);\n layers.forEach(function(L){drawLayer(x,L);});\n x.font='600 '+Math.round(c.width*.022)+'px Arial, sans-serif';x.textAlign='left';x.textBaseline='bottom';x.fillStyle='rgba(28,59,99,.6)';x.fillText('haithinhphat.vn \u00b7 B\u1ea3n thi\u1ebft k\u1ebf tham kh\u1ea3o',c.width*.02,c.height-c.height*.015);\n return c;\n}\nfunction download(){\n if(!cur||!cur._d)return;\n var c=render();\n c.toBlob(function(b){if(!b){toast('Kh\u00f4ng xu\u1ea5t \u0111\u01b0\u1ee3c \u1ea3nh. Vui l\u00f2ng th\u1eed l\u1ea1i.');return;}var a=document.createElement('a');a.href=URL.createObjectURL(b);a.download='thiet-ke-'+(cur.parentId||cur.id)+(BACK[frontProd.id]?(cur.isBack?'-mat-sau':'-mat-truoc'):'')+'.png';document.body.appendChild(a);a.click();setTimeout(function(){URL.revokeObjectURL(a.href);a.remove();},1500);toast('\u0110\u00e3 t\u1ea3i \u1ea3nh thi\u1ebft k\u1ebf. H\u00e3y \u0111\u00ednh k\u00e8m \u1ea3nh n\u00e0y khi nh\u1eafn Zalo 0941 257 996.');},'image\/png');\n}\n$('dsg-dl').onclick=download;\n$('dsg-zalo').addEventListener('click',function(){download();});\n$('dsg-front').onclick=function(){if(cur!==frontProd)setProd(frontProd);};\n$('dsg-back').onclick=function(){var p=BACK[frontProd.id];if(p){if(cur!==p)setProd(p);}};\nsetProd(P[0]);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Trang ch\u1ee7 \/ Thi\u1ebft k\u1ebf \u00e1o online Thi\u1ebft k\u1ebf \u00e1o tr\u1ef1c tuy\u1ebfn T\u1ef1 thi\u1ebft k\u1ebf m\u1eabu \u0111\u1ed3ng ph\u1ee5c c\u1ee7a b\u1ea1n Ch\u1ecdn lo\u1ea1i \u00e1o, ph\u1ed1i m\u00e0u, th\u00eam logo v\u00e0 t\u00ean c\u00f4ng ty \u0111\u1ec3 xem tr\u01b0\u1edbc m\u1eabu ngay tr\u00ean website. T\u1ea3i \u1ea3nh thi\u1ebft k\u1ebf v\u1ec1 v\u00e0 g\u1eedi qua Zalo \u0111\u1ec3 H\u1ea3i Th\u1ecbnh Ph\u00e1t b\u00e1o gi\u00e1 v\u00e0 may [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-617","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/pages\/617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/comments?post=617"}],"version-history":[{"count":14,"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/pages\/617\/revisions"}],"predecessor-version":[{"id":647,"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/pages\/617\/revisions\/647"}],"wp:attachment":[{"href":"https:\/\/haithinhphat.vn\/dong-phuc-cms\/wp-json\/wp\/v2\/media?parent=617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}