1"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[6226],{7363:(Z,E,s)=>{s.d(E,{_:()=>M});var $=s(72200),j=s(31821),m=s(50513),r=s(30644),c=s(35154),w=s(84412),z=s(73664),_=s(16389);let M=(()=>{class d{constructor(){this.tooltipTitle=new w.t("Copy to clipboard")}copy(){j.copy(this.data),this.tooltipTitle.next("Copied!")}static{this.\u0275fac=function(h){return new(h||d)}}static{this.\u0275cmp=z.VBU({type:d,selectors:[["app-copy-to-clipboard"]],inputs:{data:"data"},decls:3,vars:3,consts:[["nz-button","","nzType","link","nzSize","small","nz-tooltip","",3,"click","nzTooltipTitle"],["nz-icon","","nzType","copy","nzTheme","outline"]],template:function(h,x){1&h&&(z.j41(0,"button",0),z.nI1(1,"async"),z.bIt("click",function(){return x.copy()}),z.nrm(2,"span",1),z.k0s()),2&h&&z.Y8G("nzTooltipTitle",z.bMT(1,1,x.tooltipTitle))},dependencies:[$.MD,r.Y3,r.Dn,c.qA,c.LH,m.Z,m.a,_.c,$.Jj],styles:["small[_ngcontent-%COMP%]{display:flex;align-items:center}small[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#7f8c8d}small[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{color:#2c3e50}small[_ngcontent-%COMP%] .anticon[_ngcontent-%COMP%]{cursor:pointer}small[_ngcontent-%COMP%] .anticon[_ngcontent-%COMP%]:hover{color:#2980b9}"]})}}return d})()},76226:(Z,E,s)=>{s.r(E),s.d(E,{routes:()=>Yt});var $=s(31635),j=s(57303),m=s(72200),r=s(2615),c=s(89417),w=s(43694),z=s(10365),_=s(21120),M=s(75256),d=s(68018),C=s(78338),T=s(54626),h=s(50513),x=s(19448),b=s(38927),g=s(21011),D=s(3062),f=s(25725),u=s(84412),y=s(84572),S=s(25558),R=s(96354),G=s(44668),mt=s(80552),t=s(73664);let H=(()=>{class o extends z.dD{constructor(){super(...arguments),this.url=`${this.config.apiUrl}/template-element`}static{this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})()}static{this.\u0275prov=r.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})();var K=s(57723),B=s(84218);let q=(()=>{class o{constructor(){this.config=(0,r.WQX)(K.O3),this.fb=(0,r.WQX)(c.ok),this.translate=(0,r.WQX)(d.c$)}form(){return this.fb.group({name:new c.MJ(null,[c.k0.required]),content:new c.MJ(null,[])})}template(){return{name:{component:B.go,option:{nzSize:"large",type:"text",label:this.translate.instant("template.name"),className:["col-12"]}},content:{component:B.dD,option:{nzSize:"large",type:"text",label:this.translate.instant("template.content"),className:["col-12"],nzAutosize:{minRows:3,maxRows:10}}}}}updateBgImageform(){return this.fb.group({bgImage:new c.MJ(null,[])})}updateBgImageTemplate(){return{bgImage:{component:B.vu,option:{nzSize:"large",type:"text",label:this.translate.instant("template.bgImageLabel"),nzMultiple:!1,queryParamKey:"files",simpleMode:!0,apiEndPoint:`${this.config.apiUrl}/file/upload`,reponseHandler:e=>e.data[0].url,className:["col-12"]}}}}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275prov=r.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})(),tt=(()=>{class o extends z.dD{constructor(){super(...arguments),this.url=`${this.config.apiUrl}/template`}updateTemplateAttribute(e,n){return this.http.put(`${this.url}/${e}/attribute`,n)}duplicate(e,n){return this.http.post(`${this.url}/${e}/duplicate`,{targetCampaignId:n})}static{this.\u0275fac=(()=>{let e;return function(a){return(e||(e=t.xGo(o)))(a||o)}})()}static{this.\u0275prov=r.jDH({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})();var I=s(30644),O=s(16389),X=s(25930);let pt=(()=>{class o{constructor(){this.templateElementCommonService=(0,r.WQX)(H),this.addToPreview=new t.bkB}onAddToPreview(){this.templateElementCommonService.create({templateId:this.template.id,campaignSchemaId:this.campaignSchema.id,style:JSON.stringify({}),type:"campaignSchema"}).subscribe(n=>{this.addToPreview.emit(n.data)})}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["app-campaign-schema"]],inputs:{template:"template",campaignSchema:"campaignSchema"},outputs:{addToPreview:"addToPreview"},decls:7,vars:4,consts:[[1,"element","d-flex","mb-2","gap-2"],["nz-button","","nzType","primary","nzSize","small","nzGhost","",3,"click"],["nz-icon","","nzType","arrow-left"],[1,"flex-grow-1"]],template:function(n,a){1&n&&(t.j41(0,"div",0)(1,"button",1),t.bIt("click",function(){return a.onAddToPreview()}),t.nrm(2,"i",2),t.EFF(3),t.nI1(4,"translate"),t.k0s(),t.j41(5,"div",3),t.EFF(6),t.k0s()()),2&n&&(t.R7$(3),t.SpI(" ",t.bMT(4,2,"common.add")," "),t.R7$(3),t.SpI(" ",a.campaignSchema.label," "))},dependencies:[c.YN,h.Z,h.a,O.c,X.p,d.h,I.Y3,I.Dn,d.D9],encapsulation:2})}}return o}
1)();var dt=s(62047);let ht=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["app-element"]],inputs:{template:"template",templateElement:"templateElement"},decls:2,vars:1,consts:[[1,"element"]],template:function(n,a){1&n&&(t.rj2(0,"div",0),t.EFF(1),t.eux()),2&n&&(t.R7$(),t.SpI(" ",a.templateElement.id,"\n"))},dependencies:[c.YN,dt.G],styles:["[_nghost-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid #ccc;margin-bottom:5px;border-radius:4px}button[_ngcontent-%COMP%]{background-color:#007bff;color:#fff;border:none;padding:5px 10px;border-radius:4px;cursor:pointer}button[_ngcontent-%COMP%]:hover{background-color:#0056b3}"]})}}return o})();const gt=["previewContainer"],ut=["updateBgImageFormInputs"],k=(o,i)=>i.id;function ft(o,i){if(1&o){const e=t.RV6();t.j41(0,"nz-page-header",18),t.nI1(1,"translate"),t.bIt("nzBack",function(){r.eBV(e);const a=t.XpG();return r.Njj(a.onBack())}),t.k0s()}2&o&&t.Y8G("nzTitle",t.bMT(1,2,"template.description"))("nzSubtitle",i.name)}function vt(o,i){if(1&o&&t.nrm(0,"img",8),2&o){const e=t.XpG();t.Y8G("src",t.mNQ(i.bgImage||e.fallback),t.B4B)}}function zt(o,i){if(1&o){const e=t.RV6();t.j41(0,"div",19),t.bIt("drag",function(a){const l=r.eBV(e).$implicit,p=t.XpG();return r.Njj(p.onDragElement(a,l))}),t.EFF(1),t.j41(2,"div",20),t.bIt("mousedown",function(a){const l=r.eBV(e).$implicit,p=t.XpG();return r.Njj(p.onResizeElement(a,l,"top-left"))}),t.k0s(),t.j41(3,"div",21),t.bIt("mousedown",function(a){const l=r.eBV(e).$implicit,p=t.XpG();return r.Njj(p.onResizeElement(a,l,"top-right"))}),t.k0s(),t.j41(4,"div",22),t.bIt("mousedown",function(a){const l=r.eBV(e).$implicit,p=t.XpG();return r.Njj(p.onResizeElement(a,l,"bottom-left"))}),t.k0s(),t.j41(5,"div",23),t.bIt("mousedown",function(a){const l=r.eBV(e).$implicit,p=t.XpG();return r.Njj(p.onResizeElement(a,l,"bottom-right"))}),t.k0s()()}if(2&o){const e=i.$implicit;t.xc7("top",e.positionTop,"px")("left",e.positionLeft,"px")("width",e.elementWidth,"px")("height",e.elementHeight,"px"),t.R7$(),t.SpI(" ",e.id," ")}}function bt(o,i){if(1&o&&t.nrm(0,"app-element",24),2&o){const e=i.$implicit,n=t.XpG();t.Y8G("templateElement",e)("template",n)}}function Ct(o,i){if(1&o&&(t.Z7z(0,bt,1,2,"app-element",24,k),t.nI1(2,"async")),2&o){const e=t.XpG();t.Dyx(t.bMT(2,0,e.elements$))}}function _t(o,i){if(1&o){const e=t.RV6();t.j41(0,"app-campaign-schema",26),t.bIt("addToPreview",function(a){r.eBV(e);const l=t.XpG(2);return r.Njj(l.onAddElementToPreview(a))}),t.k0s()}if(2&o){const e=i.$implicit,n=t.XpG();t.Y8G("campaignSchema",e)("template",n)}}function It(o,i){if(1&o&&(t.Z7z(0,_t,1,2,"app-campaign-schema",25,k),t.nI1(2,"async")),2&o){const e=t.XpG();t.Dyx(t.bMT(2,0,e.campaignSchemas$))}}let W=class A{constructor(){this.activatedRoute=(0,r.WQX)(w.nX),this.templateService=(0,r.WQX)(tt),this.templateNgxFormService=(0,r.WQX)(q),this.campaignSchemaCommonService=(0,r.WQX)(mt.M),this.templateElementCommonService=(0,r.WQX)(H),this.ngxFormManager=(0,r.WQX)(C.$),this.location=(0,r.WQX)(j.aZ),this.fetchData$=new u.t(null),this.fetchElement$=new u.t(null),this.template$=(0,y.z)({params:this.activatedRoute.params,fetchData$:this.fetchData$}).pipe((0,S.n)(({params:i})=>this.templateService.show(i.id,{cache:"false"})),(0,R.T)(i=>i.data),(0,G.t)({refCount:!0,bufferSize:1})),this.elements$=(0,y.z)({params:this.activatedRoute.params,fetchElement:this.fetchElement$}).pipe((0,S.n)(({params:i})=>this.templateElementCommonService.get({templateId:i.id,limit:-1})),(0,R.T)(i=>i.data),(0,G.t)({refCount:!0,bufferSize:1})),this.campaignSchemas$=this.activatedRoute.queryParams.pipe((0,S.n)(i=>this.campaignSchemaCommonService.get({campaignId:i.campaignId,limit:-1})),(0,R.T)(i=>i.data),(0,G.t)({refCount:!0,bufferSize:1})),this.fallback=z.VP,this.baseWidth=800,this.previewRatio=null,this.updateBgImageForm=this.templateNgxFormService.updateBgImageform(),this.avatarImage=null,this.avatarPosition={x:0,y:0}}ngOnInit(){this.template$.pipe((0,M.s)(this),(0,R.T)(i=>(0,T.bj)(_.Bjj,i))).subscribe(i=>{this.template=i,this.updateBgImageForm.patchValue(i),this.updateBgImageFormInputs.viewContainerRef.clear();const e=this.ngxFormManager.init(this.updateBgImageForm,this.templateNgxFormService.updateBgImageTemplate());this.ngxFormManager.render(e,this.updateBgImageFormInputs.viewContainerRef)})}ngAfterViewInit(){if(!this.previewContainer)throw new Error("Container template not found");this.previewRatio=this.previewContainer.nativeElement.offsetWidth/800,console.log(`Preview ratio calculated: ${this.previewRatio}`)}onBack(){this.location.back()}updateBgImage(){this.templateService.updateTemplateAttribute(this.template.id,this.updateBgImageForm.value).subscribe(()=>{this.fetchData$.next(null)})}onAvatarUpload(i){const e=i.target;if(e.files&&e.files[0]){const n=new FileReader;n.onload=a=>{this.avatarImage=a.target.result},n.readAsDataURL(e.files[0])}}onDrag(i){i.clientX&&i.clientY&&(this.avatarPosition={x:i.clientX,y:i.clientY})}onUpdatePosition(i,e){console.log(`Updating position: ${i} = ${e}`)}onAddElementToPreview(i){this.fetchElement$.next(null)}onDragElement(i,e){if(i.clientX&&i.clientY&&this.previewContainer){const n=this.previewContainer.nativeElement.getBoundingClientRect(),p=i.clientY-n.top-e.position.top,F=i.clientX-n.left-e.position.left;console.log(`Delta Top: ${p}, Delta Left: ${F}`),e.position.top+=p,e.position.left+=F}}onResizeElement(i,e,n){i.preventDefault();const a=i.clientX,l=i.clientY,p=e.position.width,F=e.position.height,At=e.position.left,Jt=e.position.top,rt=ct=>{const U=ct.clientX-a,Y=ct.clientY-l;if(n.includes("right")&&(e.position.width=Math.max(10,p+U)),n.includes("bottom")&&(e.position.height=Math.max(10,F+Y)),n.includes("left")){const L=p-U;L>
1=10&&(e.position.width=L,e.position.left=At+U)}if(n.includes("top")){const L=F-Y;L>=10&&(e.position.height=L,e.position.top=Jt+Y)}},lt=()=>{document.removeEventListener("mousemove",rt),document.removeEventListener("mouseup",lt)};document.addEventListener("mousemove",rt),document.addEventListener("mouseup",lt)}static{this.\u0275fac=function(e){return new(e||A)}}static{this.\u0275cmp=t.VBU({type:A,selectors:[["app-design"]],viewQuery:function(e,n){if(1&e&&(t.GBs(gt,5),t.GBs(ut,7)),2&e){let a;t.mGM(a=t.lsd())&&(n.previewContainer=a.first),t.mGM(a=t.lsd())&&(n.updateBgImageFormInputs=a.first)}},decls:31,vars:18,consts:[["previewContainer",""],["updateBgImageFormInputs",""],[1,"board"],[1,"mb-3"],["nzBackIcon","",3,"nzTitle","nzSubtitle"],[1,"row"],[1,"col-7"],[1,"board__preview","shadow-sm"],["alt","Certificate",1,"certificate-image",3,"src"],["draggable","true",1,"preview-element","border",3,"top","left","width","height"],[1,"col-5","board__sidebar","border","shadow-sm","p-3"],[1,"d-flex","flex-column"],[1,"sidebar__bg-image"],["nz-form","","nzLayout","vertical",3,"submit","formGroup"],["nz-button","","nzType","default"],[1,"sidebar__schema"],["nzTitle","Thi\u1ebft k\u1ebf"],["nzTitle","Th\xeam tr\u01b0\u1eddng th\xf4ng tin"],["nzBackIcon","",3,"nzBack","nzTitle","nzSubtitle"],["draggable","true",1,"preview-element","border",3,"drag"],[1,"resize-handle","top-left",3,"mousedown"],[1,"resize-handle","top-right",3,"mousedown"],[1,"resize-handle","bottom-left",3,"mousedown"],[1,"resize-handle","bottom-right",3,"mousedown"],[3,"templateElement","template"],[3,"campaignSchema","template"],[3,"addToPreview","campaignSchema","template"]],template:function(e,n){if(1&e){const a=t.RV6();t.j41(0,"div",2)(1,"div",3),t.nVh(2,ft,2,4,"nz-page-header",4),t.nI1(3,"async"),t.k0s(),t.j41(4,"div",5)(5,"div",6)(6,"div",7,0),t.nVh(8,vt,1,2,"img",8),t.nI1(9,"async"),t.Z7z(10,zt,6,9,"div",9,k),t.nI1(12,"async"),t.k0s()(),t.j41(13,"div",10)(14,"div",11)(15,"div",12)(16,"form",13),t.bIt("submit",function(){return r.eBV(a),r.Njj(n.updateBgImage())}),t.nrm(17,"ngx-form-anchor",null,1),t.j41(19,"button",14),t.EFF(20),t.nI1(21,"translate"),t.k0s()()(),t.nrm(22,"nz-divider"),t.j41(23,"div",15)(24,"nz-tabset")(25,"nz-tab",16),t.nVh(26,Ct,3,2),t.nI1(27,"async"),t.k0s(),t.j41(28,"nz-tab",17),t.nVh(29,It,3,2),t.nI1(30,"async"),t.k0s()()()()()()()}if(2&e){let a,l,p,F;t.R7$(2),t.vxM((a=t.bMT(3,6,n.template$))?2:-1,a),t.R7$(6),t.vxM((l=t.bMT(9,8,n.template$))?8:-1,l),t.R7$(2),t.Dyx(t.bMT(12,10,n.elements$)),t.R7$(6),t.Y8G("formGroup",n.updateBgImageForm),t.R7$(4),t.JRh(t.bMT(21,12,"common.update")),t.R7$(6),t.vxM((p=t.bMT(27,14,n.template$))?26:-1,p),t.R7$(3),t.vxM((F=t.bMT(30,16,n.template$))?29:-1,F)}},dependencies:[m.MD,c.YN,c.qT,c.cb,C.uI,C.II,c.X1,c.j4,d.h,ht,pt,D.ZJ,D.WB,b.PQ,b.CA,h.Z,h.a,O.c,X.p,g.j,x.g,x.j,f.hM,f.eG,f.rE,m.Jj,d.D9],styles:[".design-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:20px}.certificate-preview[_ngcontent-%COMP%]{position:relative;width:60%}.certificate-image[_ngcontent-%COMP%]{width:100%;height:auto}.avatar-image[_ngcontent-%COMP%]{position:absolute;width:100px;height:100px;border-radius:50%;cursor:grab}.avatar-upload[_ngcontent-%COMP%]{width:35%;display:flex;flex-direction:column;align-items:center;justify-content:center}input[type=file][_ngcontent-%COMP%]{margin-top:10px}.board__preview[_ngcontent-%COMP%]{position:relative;overflow:hidden}.preview-element[_ngcontent-%COMP%]{position:absolute;background-color:#fffc;display:flex;align-items:center;justify-content:center;border:1px solid #007bff;cursor:grab}.preview-element[_ngcontent-%COMP%] .resize-handle[_ngcontent-%COMP%]{position:absolute;width:10px;height:10px;background-color:#007bff;cursor:pointer}.preview-element[_ngcontent-%COMP%] .resize-handle.top-left[_ngcontent-%COMP%]{top:-5px;left:-5px;cursor:nwse-resize}.preview-element[_ngcontent-%COMP%] .resize-handle.top-right[_ngcontent-%COMP%]{top:-5px;right:-5px;cursor:nesw-resize}.preview-element[_ngcontent-%COMP%] .resize-handle.bottom-left[_ngcontent-%COMP%]{bottom:-5px;left:-5px;cursor:nesw-resize}.preview-element[_ngcontent-%COMP%] .resize-handle.bottom-right[_ngcontent-%COMP%]{bottom:-5px;right:-5px;cursor:nwse-resize}.sidebar__position[_ngcontent-%COMP%]{margin-top:20px}.sidebar__position[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:block;margin-bottom:5px;font-weight:700}.sidebar__position[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;padding:5px;margin-bottom:10px;border:1px solid #ccc;border-radius:4px}"]})}};W=(0,$.Cg)([(0,M.d)()],W);var Mt=s(38132),et=s(7363),Tt=s(23687),yt=s(86299),$t=s(3032),nt=s(28461),it=s(18682),xt=s(72019),Ft=s(59640),P=s(43053),v=s(23359),wt=s(88141),Dt=s(5964),N=s(99437),ot=s(76927),V=s(1997),St=s(51020),at=s(97529);const Pt=(o,i)=>i.id;function Et(o,i){if(1&o&&t.nrm(0,"nz-option",5),2&o){const e=i.$implicit;t.Y8G("nzValue",e.id)("nzLabel",e.name)}}let jt=(()=>{class o{constructor(){this.fb=(0,r.WQX)(c.ok),this.translate=(0,r.WQX)(d.c$),this.campaignService=(0,r.WQX)(St.O),this.modalRef=(0,r.WQX)(P.J9),this.nzModalData=(0,r.WQX)(P.or),this.isLoading$=new u.t(!0),this.campaigns$=new u.t([]),this.duplicateForm=this.fb.group({targetCampaignId:new c.MJ(null,[c.k0.required])})}ngOnInit(){this.campaignService.get({isCompleted:!1,limit:-1}).pipe((0,R.T)(e=>(0,T.bj)(_.Hu0,e.data))).subscribe({next:e=>{this.campaigns$.next(e),this.isLoading$.next(!1),this.duplicateForm.patchValue({targetCampaignId:this.nzModalData.currentCampaignId})},error:()=>{this.isLoading$.next(!1)}})}get selectedCampaignId(){return this.duplicateForm.get("targetCampaignId")?.value}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["app-duplicate-modal"]],decls:18,vars:17,consts:[[1,"duplicate-modal"],["nz-form","",3,"formGroup"],["nzRequired","",3,"nzSpan"],[3,"nzSpan"],["formControlName","targetCampaignId","nzSize","large","nzShowSearch","","nzAllowClear","",3,"nzPlaceHolder","nzLoading"],[3,"nzValue","nzLabel"],[1,"mt-3"],[1,"text-muted"]],template:function(n,a){1&n&&(t.j41(0,"div",0)(1,"form",1)(2,"nz-form-item")(3,"nz-form-label",2),t.EFF(4),t.nI1(5,"translate"),t.k0s(),t.j41(6,"nz-form-control",3)(7,"nz-select",4),t.nI1(8,"translate"),t.nI1(9,"async"),t.Z7z(10,Et,1,2,"nz-option",5,Pt),t.nI1(12,"async"),t.k0s()()(),t.j41(13,"div",6)(14,"p",7)(15,"small"),t.EFF(16),t.nI1(17,"translate"),t.k0s()()()()()),2&n&&(t.R7$(),t.Y8G("formGroup",a.duplicateForm),t.R7$(2),t.Y8G("nzSpan",24),t.R7$(),t.SpI(" ",t.bMT(5,7,"campaign.selectCampaign")," "),t.R7$(2),t.Y8G("nzSpan",24),t.R7$(),t.Y8G("nzPlaceHolder",t.bMT(8,9,"campaign.selectCampaign"))("nzLoading",t.bMT(9,11,a.isLoading$)),t.R7$(3),t.Dyx(t.bMT(12,13,a.
1campaigns$)),t.R7$(6),t.SpI(" ",t.bMT(17,15,"template.duplicateNote")," "))},dependencies:[m.MD,c.X1,c.qT,c.BC,c.cb,c.j4,c.JD,d.h,C.uI,V.DH,V.ld,V.WI,b.PQ,at.Uq,at.e,b.CA,b.Ls,b.Mo,b.zS,m.Jj,d.D9],styles:[".duplicate-modal[_ngcontent-%COMP%]{padding:10px 0}"]})}}return o})();var st=s(86505),Rt=s(75786);const Bt=["formInputs"];let Ot=(()=>{class o{constructor(){this.fb=(0,r.WQX)(c.ok),this.ngxFormManager=(0,r.WQX)(C.$),this.translate=(0,r.WQX)(d.c$),this.searchEvent=new t.bkB,this.searchForm=this.fb.group({keyword:new c.MJ("",[]),number:new c.MJ("",[])})}ngOnInit(){const e=this.ngxFormManager.init(this.searchForm,{number:{component:B.go,option:{placeholder:this.translate.instant("marathon.placeholder.searchBibNumber"),nzSize:"large",className:["col-12","col-lg-6","px-0","pe-lg-3"]}},keyword:{component:B.go,option:{placeholder:this.translate.instant("marathon.placeholder.searchBib"),nzSize:"large",className:["col-12","col-lg-6","px-0","pe-lg-3"]}}});this.ngxFormManager.render(e,this.formInputs.viewContainerRef)}removeAccents(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}removeVietnameseTones(e){return e.toLowerCase().replace(/(\u0103|\xe2)/g,"a").replace(/\u0111/g,"d").replace(/(\xea)/g,"e").replace(/(\xf4|\u01a1)/g,"o").replace(/(\u01b0)/g,"u")}search(){let e=this.searchForm.get("keyword")?.value;e&&(e=this.removeVietnameseTones(this.removeAccents(e)));const n=this.searchForm.get("number")?.value;this.searchEvent.emit({keyword:e||"",number:n||""})}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["app-search-bib"]],viewQuery:function(n,a){if(1&n&&t.GBs(Bt,7),2&n){let l;t.mGM(l=t.lsd())&&(a.formInputs=l.first)}},outputs:{searchEvent:"searchEvent"},decls:10,vars:4,consts:[["formInputs",""],[1,"d-flex","flex-column","flex-lg-row"],[1,"w-100"],["nz-form","","nzLayout","vertical",1,"row",3,"formGroup"],[1,"mb-4"],["nz-button","","nzType","primary","nzSize","large",1,"btn-success","w-100",3,"click"],["nz-icon","","nzType","search","nzTheme","outline"]],template:function(n,a){if(1&n){const l=t.RV6();t.j41(0,"div",1)(1,"div",2)(2,"form",3),t.nrm(3,"ngx-form-anchor",null,0),t.k0s()(),t.j41(5,"div",4)(6,"button",5),t.bIt("click",function(){return r.eBV(l),r.Njj(a.search())}),t.nrm(7,"i",6),t.EFF(8),t.nI1(9,"translate"),t.k0s()()()}2&n&&(t.R7$(2),t.Y8G("formGroup",a.searchForm),t.R7$(6),t.SpI(" ",t.bMT(9,2,"common.search")," "))},dependencies:[c.YN,c.qT,c.cb,d.h,c.X1,c.j4,b.PQ,b.CA,C.uI,C.II,I.Y3,I.Dn,h.Z,h.a,O.c,X.p,d.D9],styles:["[_nghost-%COMP%]{display:block}"]})}}return o})();const Lt=()=>[],Xt=()=>({y:"400px"}),Gt=(o,i)=>i.id;function kt(o,i){if(1&o){const e=t.RV6();t.j41(0,"tr")(1,"td"),t.EFF(2),t.k0s(),t.j41(3,"td"),t.EFF(4),t.k0s(),t.j41(5,"td"),t.EFF(6),t.k0s(),t.j41(7,"td",5)(8,"button",8),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG();return r.Njj(l.openPreview(a,"view"))}),t.nrm(9,"i",9),t.EFF(10),t.nI1(11,"translate"),t.k0s(),t.j41(12,"button",10),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG();return r.Njj(l.openPreview(a,"user-welcome-image"))}),t.nrm(13,"i",11),t.EFF(14),t.nI1(15,"translate"),t.k0s()()()}if(2&o){const e=i.$implicit;t.R7$(2),t.JRh(e.number),t.R7$(2),t.JRh(e.bibName||e.name),t.R7$(2),t.JRh(e.email),t.R7$(4),t.SpI(" ",t.bMT(11,5,"template.previewBib")," "),t.R7$(4),t.SpI(" ",t.bMT(15,7,"template.previewWelcomeImage")," ")}}let Wt=(()=>{class o{constructor(){this.bibService=(0,r.WQX)(Rt.Z),this.modalRef=(0,r.WQX)(P.J9),this.nzModalData=(0,r.WQX)(P.or),this.isLoading$=new u.t(!0),this.bibs$=new u.t([]),this.totalItems=0,this.currentPage=1,this.pageSize=10,this.pageSizeOptions=[10,20,50,100],this.searchKeyword="",this.searchNumber=""}ngOnInit(){this.loadBibs()}onSearchEvent(e){this.searchKeyword=e.keyword,this.searchNumber=e.number,this.currentPage=1,this.loadBibs()}loadBibs(){this.isLoading$.next(!0);const e={campaignId:this.nzModalData.campaignId,page:this.currentPage,limit:this.pageSize};this.searchKeyword&&(e.keyword=this.searchKeyword),this.searchNumber&&(e.number=this.searchNumber),this.bibService.get(e).subscribe({next:n=>{this.bibs$.next((0,T.bj)(_.Gjr,n.data)),this.totalItems=n.meta.pagination.totalItems,this.isLoading$.next(!1)},error:()=>{this.isLoading$.next(!1)}})}openPreview(e,n){const a=window.location.origin;let l="";l="view"===n?`${a}/template/${this.nzModalData.template.id}/view?bibId=${e.id}
1&cache=false`:`${a}/template/${this.nzModalData.template.id}/user-welcome-image?bibId=${e.id}&userDefaultImageUrl=https://api.qrplatform.vn/raceplatform/v1.0/uploads/39ba82a2697384108ae3f2561ee228a50-user-avatar.png&cache=false`,window.open(l,"_blank")}onPageChange(e){this.currentPage=e,this.loadBibs()}onPageSizeChange(e){this.pageSize=e,this.currentPage=1,this.loadBibs()}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275cmp=t.VBU({type:o,selectors:[["app-preview-modal"]],decls:26,vars:26,consts:[[1,"preview-modal"],[1,"search-section","mb-3"],[3,"searchEvent"],[1,"table-section"],["nzSize","small",3,"nzData","nzLoading","nzFrontPagination","nzScroll"],[1,"text-center"],[1,"pagination-section","mt-3","d-flex","justify-content-end"],[3,"nzPageIndexChange","nzPageSizeChange","nzPageIndex","nzTotal","nzPageSize","nzPageSizeOptions","nzShowSizeChanger"],["nz-button","","nzType","link","nzSize","small",1,"me-1",3,"click"],["nz-icon","","nzType","eye"],["nz-button","","nzType","link","nzSize","small",3,"click"],["nz-icon","","nzType","picture"]],template:function(n,a){1&n&&(t.j41(0,"div",0)(1,"div",1)(2,"app-search-bib",2),t.bIt("searchEvent",function(p){return a.onSearchEvent(p)}),t.k0s()(),t.j41(3,"div",3)(4,"nz-table",4),t.nI1(5,"async"),t.nI1(6,"async"),t.j41(7,"thead")(8,"tr")(9,"th"),t.EFF(10),t.nI1(11,"translate"),t.k0s(),t.j41(12,"th"),t.EFF(13),t.nI1(14,"translate"),t.k0s(),t.j41(15,"th"),t.EFF(16,"Email"),t.k0s(),t.j41(17,"th",5),t.EFF(18),t.nI1(19,"translate"),t.k0s()()(),t.j41(20,"tbody"),t.Z7z(21,kt,16,9,"tr",null,Gt),t.nI1(23,"async"),t.k0s()()(),t.j41(24,"div",6)(25,"nz-pagination",7),t.bIt("nzPageIndexChange",function(p){return a.onPageChange(p)})("nzPageSizeChange",function(p){return a.onPageSizeChange(p)}),t.k0s()()()),2&n&&(t.R7$(4),t.Y8G("nzData",t.bMT(5,12,a.bibs$)||t.lJ4(24,Lt))("nzLoading",t.bMT(6,14,a.isLoading$)??!1)("nzFrontPagination",!1)("nzScroll",t.lJ4(25,Xt)),t.R7$(6),t.JRh(t.bMT(11,16,"bib.numberLabel")),t.R7$(3),t.JRh(t.bMT(14,18,"bib.bibNameLabel")),t.R7$(5),t.JRh(t.bMT(19,20,"common.action")),t.R7$(3),t.Dyx(t.bMT(23,22,a.bibs$)),t.R7$(4),t.Y8G("nzPageIndex",a.currentPage)("nzTotal",a.totalItems)("nzPageSize",a.pageSize)("nzPageSizeOptions",a.pageSizeOptions)("nzShowSizeChanger",!0))},dependencies:[m.MD,d.h,v.$G,v.CP,v.SO,v._4,v.IL,v.aj,v.kt,h.Z,h.a,O.c,I.Y3,I.Dn,st.Hf,st.ae,Ot,m.Jj,d.D9],styles:[".preview-modal[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%]{padding:10px 0}.preview-modal[_ngcontent-%COMP%] .table-section[_ngcontent-%COMP%]{max-height:500px}.preview-modal[_ngcontent-%COMP%] .pagination-section[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"]})}}return o})();function Nt(o,i){1&o&&(t.nrm(0,"app-campaign-detail-widget",1),t.nI1(1,"translate")),2&o&&t.Y8G("title",t.bMT(1,1,"breadcrumb.template"))}function Vt(o,i){if(1&o){const e=t.RV6();t.j41(0,"tr")(1,"td")(2,"div",11)(3,"p",12)(4,"strong"),t.EFF(5),t.k0s()(),t.j41(6,"small"),t.EFF(7),t.nrm(8,"app-copy-to-clipboard",13),t.k0s()()(),t.j41(9,"td",14)(10,"div",15)(11,"button",16),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG(2);return r.Njj(l.openEditModal(a))}),t.nrm(12,"i",17),t.EFF(13),t.nI1(14,"translate"),t.k0s(),t.j41(15,"a",18)(16,"button",19),t.nrm(17,"i",17),t.EFF(18," Thi\u1ebft k\u1ebf "),t.k0s()(),t.j41(19,"button",16),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG(2);return r.Njj(l.openDuplicateModal(a))}),t.nrm(20,"i",20),t.EFF(21),t.nI1(22,"translate"),t.k0s(),t.j41(23,"button",16),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG(2);return r.Njj(l.openPreviewModal(a))}),t.nrm(24,"i",21),t.EFF(25),t.nI1(26,"translate"),t.k0s(),t.j41(27,"button",22),t.bIt("click",function(){const a=r.eBV(e).$implicit,l=t.XpG(2);return r.Njj(l.deleteItem(a))}),t.nrm(28,"i",23),t.EFF(29),t.nI1(30,"translate"),t.k0s()()()()}if(2&o){const e=i.$implicit,n=t.XpG(2);t.R7$(5),t.JRh(e.name),t.R7$(2),t.SpI(" ID: ",e.id," "),t.R7$(),t.Y8G("data",e.id),t.R7$(5),t.SpI(" ",t.bMT(14,9,"common.edit")," "),t.R7$(2),t.Y8G("href",t.mNQ(n.getTemplateDesignUrl(e)),t.B4B),t.R7$(6),t.SpI(" ",t.bMT(22,11,"common.duplicate")," "),t.R7$(4),t.SpI(" ",t.bMT(26,13,"common.preview")," "),t.R7$(4),t.SpI(" ",t.bMT(30,15,"common.delete")," ")}}
1function Qt(o,i){1&o&&t.nrm(0,"app-simple-pagination",10),2&o&&t.Y8G("pagination",i)}function Ut(o,i){if(1&o&&(t.j41(0,"div",6)(1,"div",7)(2,"nz-table",8),t.nI1(3,"async"),t.j41(4,"thead")(5,"tr")(6,"th",9),t.EFF(7),t.nI1(8,"translate"),t.k0s(),t.nrm(9,"th"),t.k0s()(),t.j41(10,"tbody"),t.Z7z(11,Vt,31,17,"tr",null,t.fX1),t.k0s()()(),t.nVh(13,Qt,1,1,"app-simple-pagination",10),t.nI1(14,"async"),t.k0s()),2&o){let e;const n=i,a=t.XpG();t.R7$(2),t.Y8G("nzData",n)("nzLoading",t.bMT(3,4,a.isLoading$)),t.R7$(5),t.SpI(" ",t.bMT(8,6,"template.name")," "),t.R7$(4),t.Dyx(n),t.R7$(2),t.vxM((e=t.bMT(14,8,a.pagination$))?13:-1,e)}}let Q=class J{constructor(){this.store=(0,r.WQX)(Ft.il),this.config=(0,r.WQX)(K.O3),this.modal=(0,r.WQX)(P.N_),this.translate=(0,r.WQX)(d.c$),this.ngxFormManager=(0,r.WQX)(C.$),this.activatedRoute=(0,r.WQX)(w.nX),this.templateService=(0,r.WQX)(tt),this.viewContainerRef=(0,r.WQX)(t.c1b),this.notificationService=(0,r.WQX)($t.JE),this.templateNgxFormService=(0,r.WQX)(q),this.fetchData$=new u.t(null),this.isLoading$=new u.t(!0),this.pagination$=new u.t(null),this.user=null,this.items$=(0,y.z)({queryParams:this.activatedRoute.queryParams,fetchData:this.fetchData$}).pipe((0,S.n)(({queryParams:i})=>this.templateService.get(i)),(0,wt.M)(i=>{this.isLoading$.next(!1),this.pagination$.next(i.meta.pagination)}),(0,R.T)(i=>(0,T.bj)(_.Bjj,i.data))),this.createForm=this.templateNgxFormService.form(),this.editForm=this.templateNgxFormService.form()}ngOnInit(){this.campaignId=this.activatedRoute.snapshot.queryParams.campaignId,this.store.select(xt.xU.wr).pipe((0,M.s)(this),(0,Dt.p)(i=>null!==i)).subscribe(i=>{this.user=(0,T.bj)(_.KJW,i)})}openCreateModal(){const i=this.modal.create({nzTitle:this.translate.instant("common.add"),nzContent:Tt.Q,nzViewContainerRef:this.viewContainerRef,nzWidth:800,nzData:{form:this.createForm,template:this.templateNgxFormService.template()},nzOnOk:()=>{const e=i.getContentComponent().form;if(e.invalid)this.ngxFormManager.markAllAsDirty(e);else{i.updateConfig({nzOkLoading:!0});const n={name:e.get("name")?.value,content:e.get("content")?.value,campaignId:this.campaignId};this.templateService.create(n).pipe((0,N.W)(a=>{throw i.updateConfig({nzOkLoading:!1}),a})).subscribe(()=>{this.notificationService.success(this.translate.instant("success.title"),this.translate.instant("success.create"),{nzDuration:3e3}),this.fetchData$.next(null),this.createForm.reset(),i.destroy()})}return!1}})}openEditModal(i){this.editForm.reset(),this.editForm.patchValue(i);const e=this.modal.create({nzTitle:this.translate.instant("common.update"),nzContent:yt.A,nzViewContainerRef:this.viewContainerRef,nzWidth:800,nzData:{form:this.editForm,template:this.templateNgxFormService.template()},nzOnOk:()=>{const n=e.getContentComponent().form;if(n.invalid)this.ngxFormManager.markAllAsDirty(n);else{e.updateConfig({nzOkLoading:!0});const a={name:n.get("name")?.value,content:n.get("content")?.value};this.templateService.update(i.id,a).pipe((0,N.W)(l=>{throw e.updateConfig({nzOkLoading:!1}),l})).subscribe(()=>{this.notificationService.success(this.translate.instant("success.title"),this.translate.instant("success.create"),{nzDuration:3e3}),this.fetchData$.next(null),this.editForm.reset(),e.destroy()})}return!1}})}deleteItem(i){const e=this.modal.warning({nzTitle:this.translate.instant("confirmation.remove"),nzContent:this.translate.instant("confirmation.cannotBeUndone"),nzOnOk:()=>(e.updateConfig({nzOkLoading:!0}),this.templateService.delete(i.id).subscribe(()=>{e.destroy(),this.fetchData$.next(null)}),!1)})}getTemplateDesignUrl(i){return`${this.config.ticketDesignerUrl}/template/${i.id}?userId=${this.user?.id}`}getTemplateViewUrl(i){return`${window.location.origin}/template/${i.id}/view`}getTemplateSampleUrl(i){return`${window.location.origin}/template/${i.id}/view?bibId=THAY_BIB_ID&bibName=HieuPV&bibNumber=9999&distance=10KM&team=VMMS&shirtSize=L&genderShortName=M&cache=false`}getUserWelcomeImageTemplateSampleUrl(i){return`${window.location.origin}/template/${i.id}/user-welcome-image?bibId=THAY_BIB_ID&userDefaultImageUrl=https://api.qrplatform.vn/raceplatform/v1.0/uploads/39ba82a2697384108ae3f2561ee228a50-user-avatar.png&cache=false`}openDuplicateModal(i){const e=this.modal.create({nzTitle:this.translate.instant("template.duplicate"),nzContent:jt,nzViewContainerRef:this.viewContainerRef,nzWidth:600,nzData:{template:i,currentCampaignId:this.campaignId},nzOnOk:()=>{const n=e.getContentComponent();
1if(n.duplicateForm.invalid)return this.ngxFormManager.markAllAsDirty(n.duplicateForm),!1;e.updateConfig({nzOkLoading:!0});const a=n.duplicateForm.get("targetCampaignId")?.value;return this.templateService.duplicate(i.id,a).pipe((0,N.W)(l=>{throw e.updateConfig({nzOkLoading:!1}),l})).subscribe(()=>{this.notificationService.success(this.translate.instant("success.title"),this.translate.instant("template.duplicateSuccess"),{nzDuration:3e3}),this.fetchData$.next(null),e.destroy()}),!1}})}openPreviewModal(i){this.modal.create({nzTitle:this.translate.instant("template.preview"),nzContent:Wt,nzViewContainerRef:this.viewContainerRef,nzWidth:900,nzData:{template:i,campaignId:this.campaignId},nzFooter:null})}static{this.\u0275fac=function(e){return new(e||J)}}static{this.\u0275cmp=t.VBU({type:J,selectors:[["app-list"]],decls:11,vars:7,consts:[[1,"component"],[3,"title"],[1,"d-flex","justify-content-between","flex-column","flex-sm-row","mb-3"],[1,"d-flex","justify-content-end"],["nz-button","","nzType","primary","nzSize","large","nzGhost","",3,"click"],["nz-icon","","nzType","plus","nzTheme","outline"],[1,"row"],[1,"template","col","mb-4"],["nzFrontPagination","false",1,"nz-table-xs",3,"nzData","nzLoading"],[1,"fw-bold"],[3,"pagination"],[1,"d-flex","flex-column"],[1,"mb-1"],[3,"data"],[1,"table-action"],[1,"d-flex"],["nz-button","","nzType","dashed","nz-tooltip","","nzSize","small",1,"me-1","mb-1",3,"click"],["nz-icon","","nzType","form",2,"color","#1452d7"],["target","_blank",3,"href"],["nz-button","","nzType","dashed","nz-tooltip","","nzSize","small",1,"me-1","mb-1"],["nz-icon","","nzType","copy",2,"color","#52c41a"],["nz-icon","","nzType","eye",2,"color","#722ed1"],["nz-button","","nzType","dashed","nzSize","small","nzDanger","",1,"me-1","mb-1",3,"click"],["nz-icon","","nzType","delete",2,"color","#cf002a"]],template:function(e,n){if(1&e&&(t.j41(0,"div",0),t.nVh(1,Nt,2,3,"app-campaign-detail-widget",1),t.j41(2,"div",2),t.nrm(3,"app-simple-search-form"),t.j41(4,"div",3)(5,"button",4),t.bIt("click",function(){return n.openCreateModal()}),t.nrm(6,"i",5),t.EFF(7),t.nI1(8,"translate"),t.k0s()()(),t.nVh(9,Ut,15,10,"div",6),t.nI1(10,"async"),t.k0s()),2&e){let a;t.R7$(),t.vxM(n.campaignId?1:-1),t.R7$(6),t.SpI(" ",t.bMT(8,3,"common.create")," "),t.R7$(2),t.vxM((a=t.bMT(10,5,n.items$))?9:-1,a)}},dependencies:[m.MD,Mt.iI,d.h,v.$G,v.CP,v.SO,v._4,v.IL,v.aj,v.kt,h.Z,h.a,O.c,X.p,P.U6,I.Y3,I.Dn,it._,nt.g,et._,ot.h,m.Jj,d.D9],encapsulation:2})}};Q=(0,$.Cg)([(0,M.d)()],Q);const Yt=[{path:"",component:Q},{path:":id/design",component:W}]},86299:(Z,E,s)=>{s.d(E,{A:()=>b});var $=s(72200),j=s(2615),m=s(73664),r=s(89417),c=s(78338),w=s(23617),z=s(50513),_=s(38927),M=s(43053);const d=["formInputs"];function C(g,D){1&g&&m.eu8(0)}function T(g,D){if(1&g&&m.DNE(0,C,1,0,"ng-container",4),2&g){const f=m.XpG(2);m.Y8G("ngTemplateOutlet",f.note)}}function h(g,D){if(1&g&&m.nrm(0,"nz-alert",3),2&g){const f=m.XpG(2);m.Y8G("nzMessage",f.note)}}function x(g,D){if(1&g&&m.nVh(0,T,1,1,"ng-container")(1,h,1,1,"nz-alert",3),2&g){const f=m.XpG();m.vxM(f.isNoteTemplate?0:1)}}let b=(()=>{class g{constructor(){this.nzModalData=(0,j.WQX)(M.or),this.ngxFormManager=(0,j.WQX)(c.$)}get isNoteTemplate(){return this.note instanceof m.C4Q}ngOnInit(){this.nzLayout=this.nzModalData.nzLayout??"vertical",this.form=this.nzModalData.form,this.template=this.nzModalData.template,this.note=this.nzModalData.note;const f=this.ngxFormManager.init(this.form,this.template);this.ngxFormManager.render(f,this.formInputs.viewContainerRef)}static{this.\u0275fac=function(u){return new(u||g)}}static{this.\u0275cmp=m.VBU({type:g,selectors:[["app-edit-modal-blueprint"]],viewQuery:function(u,y){if(1&u&&m.GBs(d,7),2&u){let S;m.mGM(S=m.lsd())&&(y.formInputs=S.first)}},decls:5,vars:3,consts:[["formInputs",""],["nz-form","",3,"formGroup","nzLayout"],[1,"row"],["nzType","warning","nzShowIcon","",3,"nzMessage"],[4,"ngTemplateOutlet"]],template:function(u,y){1&u&&(m.nVh(0,x,2,1),m.j41(1,"form",1)(2,"div",2),m.nrm(3,"ngx-form-anchor",null,0),m.k0s()()),2&u&&(m.vxM(y.note?0:-1),m.R7$(),m.Y8G("formGroup",y.form)("nzLayout",y.nzLayout))},dependencies:[$.MD,$.T3,r.YN,r.qT,r.cb,r.X1,r.j4,c.uI,c.II,_.PQ,_.CA,z.Z,M.U6,w.$,w.Y],encapsulation:2})}}return g})()}}]);
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.