1import{a as ae}from"./chunk-LPUMUIRZ.js";import"./chunk-CYCM3RMZ.js";import{a as le}from"./chunk-QOBTJA7H.js";import{A as K,B as X,K as Y,b as j,c as z,h as G,o as R,q as D,r as $,x as Q,y as J,z as H}from"./chunk-MTWVMMTV.js";import{p as re}from"./chunk-6FMUVZTV.js";import"./chunk-4GF7H5DQ.js";import"./chunk-DASFUKKT.js";import"./chunk-YHWQER4F.js";import{a as ie}from"./chunk-BT75IBSD.js";import"./chunk-4IY5Y64V.js";import{g as ne,i as oe}from"./chunk-OAUPCMQT.js";import{a as te}from"./chunk-MNVAI74P.js";import{e as Z,g as ee,i as I}from"./chunk-N7TVKSTK.js";import"./chunk-XHS2HQOR.js";import"./chunk-SNKY6I5R.js";import{E as U,h as q,o as W,p as A}from"./chunk-QKVROGXD.js";import{Aa as h,Ab as C,Ec as f,Fc as k,Jc as O,Mb as P,Nb as S,Sb as v,Sc as E,Uc as c,Vc as m,Wc as L,Yc as V,Zc as F,_c as N,ad as b,bd as T,cd as M,hc as u,ka as B,md as p,od as s,sc as i,tc as t,ub as e,uc as w,yc as y,za as x}from"./chunk-4BCQERYJ.js";import"./chunk-DYO6X7YC.js";function ge(a,d){if(a&1&&(i(0,"option",25),c(1),p(2,"translate"),t()),a&2){let r=d.$implicit;O("title","id: ",r.id,""),u("ngValue",r.id),e(),F(" ",r.name," - ",r.price," (",r.quantity," ",s(2,7,"linkBuilder.Available","available"),") ")}}function ue(a,d){a&1&&(i(0,"p",5),c(1),p(2,"translate"),t()),a&2&&(e(),m(s(2,1,"linkBuilder.NoTickets","No tickets found for this event.")))}function ke(a,d){if(a&1){let r=y();i(0,"div",6)(1,"label",7),c(2),p(3,"translate"),t(),i(4,"select",21),M("ngModelChange",function(o){x(r);let l=k();return T(l.selectedTicketId,o)||(l.selectedTicketId=o),h(o)}),f("ngModelChange",function(){x(r);let o=k();return h(o.onFieldChanged())}),i(5,"option",22),c(6),p(7,"translate"),t(),v(8,ge,3,10,"option",23),t(),v(9,ue,3,4,"p",24),t()}if(a&2){let r=k();e(2),m(s(3,6,"linkBuilder.Ticket","Ticket")),e(2),b("ngModel",r.selectedTicketId),e(),u("ngValue",""),e(),m(s(7,9,"linkBuilder.ChooseTicket","Choose ticket type")),e(2),u("ngForOf",r.tickets),e(),u("ngIf",!r.tickets.length)}}function _e(a,d){a&1&&(i(0,"p",5),c(1),p(2,"translate"),t()),a&2&&(e(),m(s(2,1,"linkBuilder.NoTickets","No tickets found for this event.")))}function fe(a,d){if(a&1){let r=y();i(0,"input",32),f("ngModelChange",function(o){x(r);let l=k().$implicit,g=k(2);return h(g.setSelectionQuantity(l,o))}),t()}if(a&2){let r=k().$implicit,n=k(2);u("max",r.limits||null)("ngModel",n.getSelectionQuantity(r.id))}}function xe(a,d){if(a&1){let r=y();i(0,"div",28)(1,"label",29)(2,"input",30),f("change",function(o){let l=x(r).$implicit,g=k(2);return h(g.toggleTicketSelection(l,o.target==null?null:o.target.checked))}),t(),i(3,"span"),c(4),p(5,"translate"),t()(),v(6,fe,1,2,"input",31),t()}if(a&2){let r=d.$implicit,n=k(2);e(2),u("checked",n.isTicketSelected(r.id)),e(2),N("",r.name," - ",r.price," (",r.quantity," ",s(5,7,"linkBuilder.Available","available"),", id: ",r.id,")"),e(2),u("ngIf",n.isTicketSelected(r.id))}}function he(a,d){if(a&1&&(i(0,"div",6)(1,"label",7),c(2),p(3,"translate"),t(),v(4,_e,3,4,"p",24),i(5,"div",26),v(6,xe,7,10,"div",27),t()()),a&2){let r=k();e(2),m(s(3,3,"linkBuilder.Tickets","Tickets")),e(2),u("ngIf",!r.tickets.length),e(2),u("ngForOf",r.tickets)}}function Ce(a,d){if(a&1){let r=y();i(0,"div",6)(1,"label",29)(2,"input",33),M("ngModelChange",function(o){x(r);let l=k();return T(l.confirmTickets,o)||(l.confirmTickets=o),h(o)}),f("ngModelChange",function(){x(r);let o=k();return h(o.onFieldChanged())}),t(),i(3,"span"),c(4),p(5,"translate"),t()()()}if(a&2){let r=k();e(2),b("ngModel",r.confirmTickets),e(2),m(s(5,2,"linkBuilder.ConfirmTicketsCheckbox","Auto-confirm ticket selection (confirm-tickets=1)"))}}function ve(a,d){if(a&1){let r=y();i(0,"div",34)(1,"label",7),c(2),p(3,"translate"),t(),i(4,"div",35)(5,"input",36,0),f("click",function(){x(r);let o=E(6);return h(o.select())}),t(),i(7,"button",37),f("click",function(){x(r);let o=k();return h(o.copy())}),c(8),p(9,"translate"),t()()()}if(a&2){let r=k();e(2),m(s(3,3,"linkBuilder.GeneratedUrl","Generated URL")),e(3),u("value",r.generatedUrl),e(3),m(s(9,6,"linkBuilder.Copy","Copy"))}}var de=(()=>{let d=class d{constructor(n,o,l,g,_,se,me){this.activatedRoute=n,this.router=o,this.location=l,this.eventService=g,this.globals=_,this.clipboardService=se,this.toastService=me,this.event_id=null,this.tickets=[],this.linkType="prefill",this.selectedTickets=[],this.selectedTicketId="",this.confirmTickets=!0,this.generatedUrl="",this.base_url=te.getin_base_url,this.locale="en"}ngOnInit(){this.locale=this.globals.getLocaleId(),this.activatedRoute.params.subscribe(n=>{+n.event_id&&(this.event_id=+n.event_id,this.getTickets())})}getTickets(){this.globals.startLoader(),this.eventService.getCouponsData(this.event_id,"coupons",0,50).subscribe({next:n=>{this.globals.stopLoader(),this.tickets=n?.data?.items?.tickets??[]},error:()=>{this.globals.stopLoader(),this.toastService.show({type:"error",text:"Failed to load tickets",timeout:5e3})}})}get needsTicketList(){return this.linkType==="prefill"}get needsTicket(){return this.linkType==="lock"}get canGenerate(){return this.linkType==="list"?!0:this.linkType==="lock"?!!this.selectedTicketId:this.selectedTickets.length>0&&this.selectedTickets.every(n=>n.quantity>=1)}onFieldChanged(){this.generatedUrl=""}isTicketSelected(n){return this.selectedTickets.some(o=>o.ticketId===n)}getSelectionQuantity(n){return this.selectedTickets.find(o=>o.ticketId===n)?.quantity??1}toggleTicketSelection(n,o){o?this.selectedTickets.push({ticketId:n.id,quantity:1}):this.selectedTickets=this.selectedTickets.filter(l=>
1l.ticketId!==n.id),this.onFieldChanged()}setSelectionQuantity(n,o){let l=this.selectedTickets.find(_=>_.ticketId===n.id);if(!l)return;let g=+o||1;n.limits&&g>n.limits&&(g=n.limits),g<1&&(g=1),l.quantity=g,this.onFieldChanged()}generateLink(){if(!this.canGenerate)return;let n=`${this.base_url}/${this.locale}/${this.event_id}`;if(this.linkType==="list")this.generatedUrl=`${n}?ticket=list`;else if(this.linkType==="lock")this.generatedUrl=`${n}?u-tix=${this.selectedTicketId}`;else{let o=this.selectedTickets.map(g=>`ticket=${g.ticketId}-${g.quantity}`).join("&"),l=this.confirmTickets?"&confirm-tickets=1":"";this.generatedUrl=`${n}?${o}${l}`}}goBack(){typeof window<"u"&&window.history.length>1?this.location.back():this.router.navigate(["/dashboard/my-events"])}copy(){this.generatedUrl&&(this.clipboardService.copyFromContent(this.generatedUrl),this.clipboardService.destroy(),this.toastService.show({type:"info",text:"Link copied!",timeout:3e3}))}};d.\u0275fac=function(o){return new(o||d)(C(Z),C(ee),C(q),C(ae),C(ie),C(le),C(re))},d.\u0275cmp=P({type:d,selectors:[["app-link-builder"]],standalone:!1,decls:103,vars:87,consts:[["urlInput",""],[1,"link-builder-wrapper"],[1,"close-page",3,"click"],["src","/assets/images/analytics/arrow-left.svg","alt","back"],[1,"link-builder-container"],[1,"descr"],[1,"control-group"],[1,"control-label"],[1,"link-type-options"],[1,"radio-option"],["type","radio","name","linkType","value","prefill",3,"ngModelChange","ngModel"],["type","radio","name","linkType","value","lock",3,"ngModelChange","ngModel"],["type","radio","name","linkType","value","list",3,"ngModelChange","ngModel"],["class","control-group",4,"ngIf"],["type","button",1,"save",3,"click","disabled"],[1,"btn-text"],["class","generated-link",4,"ngIf"],[1,"link-builder-docs"],[1,"docs-table-wrap"],[1,"table","docs-table"],[1,"descr","example-url"],[1,"form-control",3,"ngModelChange","ngModel"],["disabled","",3,"ngValue"],[3,"ngValue","title",4,"ngFor","ngForOf"],["class","descr",4,"ngIf"],[3,"ngValue","title"],[1,"ticket-list"],["class","ticket-row",4,"ngFor","ngForOf"],[1,"ticket-row"],[1,"ticket-check"],["type","checkbox",3,"change","checked"],["type","number","class","form-control ticket-qty","min","1",3,"max","ngModel","ngModelChange",4,"ngIf"],["type","number","min","1",1,"form-control","ticket-qty",3,"ngModelChange","max","ngModel"],["type","checkbox",3,"ngModelChange","ngModel"],[1,"generated-link"],[1,"link-row"],["type","text","readonly","",1,"form-control",3,"click","value"],["type","button",1,"copy-btn",3,"click"]],template:function(o,l){o&1&&(i(0,"div",1)(1,"button",2),f("click",function(){return l.goBack()}),w(2,"img",3),t(),i(3,"div",4)(4,"h2"),c(5),p(6,"translate"),t(),i(7,"p",5),c(8),p(9,"translate"),t(),i(10,"div",6)(11,"label",7),c(12),p(13,"translate"),t(),i(14,"div",8)(15,"label",9)(16,"input",10),M("ngModelChange",function(_){return T(l.linkType,_)||(l.linkType=_),_}),f("ngModelChange",function(){return l.onFieldChanged()}),t(),i(17,"span"),c(18),p(19,"translate"),t()(),i(20,"label",9)(21,"input",11),M("ngModelChange",function(_){return T(l.linkType,_)||(l.linkType=_),_}),f("ngModelChange",function(){return l.onFieldChanged()}),t(),i(22,"span"),c(23),p(24,"translate"),t()(),i(25,"label",9)(26,"input",12),M("ngModelChange",function(_){return T(l.linkType,_)||(l.linkType=_),_}),f("ngModelChange",function(){return l.onFieldChanged()}),t(),i(27,"span"),c(28),p(29,"translate"),t()()()(),v(30,ke,10,12,"div",13)(31,he,7,6,"div",13)(32,Ce,6,5,"div",13),i(33,"button",14),f("click",function(){return l.generateLink()}),i(34,"span",15),c(35),p(36,"translate"),t()(),v(37,ve,10,9,"div",16),t(),i(38,"div",17)(39,"h3"),c(40),p(41,"translate"),t(),i(42,"p",5),c(43),p(44,"translate"),t(),i(45,"div",18)(46,"table",19)(47,"thead")(48,"tr")(49,"th"),c(50),p(51,"translate"),t(),i(52,"th"),c(53),p(54,"translate"),t(),i(55,"th"),c(56),p(57,"translate"),t()()(),i(58,"tbody")(59,"tr")(60,"td")(61,"code"),c(62,"ticket"),t()(),i(63,"td"),c(64),p(65,"translate"),t(),i(66,"td"),c(67),p(68,"translate"),t()(),i(69,"tr")(70,"td")(71,"code"),c(72,"ticket"),t()(),i(73,"td"),c(74,"list"),t(),i(75,"td"),c(76),p(77,"translate"),t()(),i(78,"tr")(79,"td")(80,"code"),c(81,"confirm-tickets"),t()(),i(82,"td"),c(83,"0 / 1"),t(),i(84,"td"),c(85),p(86,"translate"),t()(),i(87,"tr")(88,"td")(89,"code"),c(90,"u-tix"),t()(),i(91,"td"),c(92),p(93,"translate"),t(),i(94,"td"),c(95),p(96,"translate"),t()()()()(),i(97,"p",20),c(98),p(99,"translate"),w(100,"br"),i(101,"code"),c(102),t()()()()),o&2&&(e(5),m(s(6,30,"linkBuilder.Title","Link Builder")),e(3),m(s(9,33,"linkBuilder.Subtitle","Generate a pre-filled ticket purchase link for this event.")),e(4),m(s(13,36,"linkBuilder.LinkType","Link type")),e(4),b("ngModel",l.linkType),e(2),m(s(19,39,"linkBuilder.TypePrefill","Pre-fill ticket & quantity")),e(3),b("ngModel",l.linkType),e(2),m(s(24,42,"linkBuilder.TypeLock","Lock to one ticket (hide others)")),e(3),b("ngModel",l.linkType),e(2),m(s(29,45,"linkBuilder.TypeList","Jump to ticket selection")),e(2),u("ngIf",l.needsTicket),e(),u("ngIf",l.needsTicketList),e(),u("ngIf",l.needsTicketList),e(),u("disabled",!l.canGenerate),e(2),m(s(36,48,"linkBuilder.Generate","Generate Link")),e(2),u("ngIf",l.generatedUrl),e(3),m(s(41,51,"linkBuilder.DocsTitle","Deep link reference")),e(3),m(s(44,54,"linkBuilder.DocsSubtitle","All supported query parameters on the event page \u2014 combine as needed.")),e(7),m(s(51,57,"linkBuilder.Parameter","Parameter")),e(3),m(s(54,60,"linkBuilder.Values","Values")),e(3),m(s(57,63,"linkBuilder.Notes","Notes")),e(8),m(s(65,66,"linkBuilder.TicketValues","ticket_id-quantity")),e(3),m(s(68,69,"linkBuilder.TicketNotes","Pre-selects a ticket and quantity")),e(9),m(s(77,72,"linkBuilder.TicketListNotes","Jumps straight to the ticket-selection step, nothing pre-selected")),e(9),m(s(86,75,"linkBuilder.ConfirmTicketsNotes","Auto-confirms the ticket-selection step")),e(7),m(s(93,78,"linkBuilder.UTixValues","ticket_id")),e(3),m(s(96,81,"linkBuilder.UTixNotes","Selects only this ticket and hides all others from selection")),e(3),L(" ",s(99,84,"linkBuilder.ExampleLabel","Example (pre-fill ticket & quantity):"),""),e(4),V("",l.base_url,"/",l.locale,"/",l.event_id,"?ticket=2652-1&confirm-tickets=1"))},dependencies:[W,A,J,H,z,D,j,Q,$,G,X,K,R,ne],styles:[".link-builder-container[_ngcontent-%COMP%]{max-width:520px;margin:0 auto}h2[_ngcontent-%COMP%]{font-weight:600;font-size:20px;text-align:center;color:#fff}h3[_ngcontent-%COMP%]{font-weight:600;font-size:16px;color:#fff;text-align:center}.control-group[_ngcontent-%COMP%]{margin-bottom:24px}
1.control-label[_ngcontent-%COMP%]{display:block;color:#999;font-weight:500;font-size:13px;margin-bottom:8px}select.form-control[_ngcontent-%COMP%], input.form-control[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.7);border-radius:12px;padding:10px 15px;width:100%;height:auto}.descr[_ngcontent-%COMP%]{color:#999;font-weight:500;font-size:13px;text-align:center}.link-type-options[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.radio-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;cursor:pointer;color:#fff;font-size:13px;font-weight:500}.radio-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{flex-shrink:0;width:16px;height:16px;accent-color:#82FFCA}.ticket-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px}.ticket-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}.ticket-check[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;gap:10px;cursor:pointer;color:#fff;font-size:13px;font-weight:500}.ticket-check[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]{flex-shrink:0;width:16px;height:16px;accent-color:#82FFCA;margin:0}.ticket-qty[_ngcontent-%COMP%]{flex-shrink:0;width:70px!important;padding:8px 10px!important;text-align:center}.save[_ngcontent-%COMP%]{display:block;background:#fff;border:1px solid #FFFFFF;color:#000;border-radius:50px;margin:30px auto;min-height:44px;font-weight:500;font-size:13px;padding:0 20px;width:100%}.save[_ngcontent-%COMP%]:disabled{opacity:.5;background:gray;border:1px solid black}.close-page[_ngcontent-%COMP%]{background:transparent;display:flex;align-items:center;margin:20px auto 20px 20px}.generated-link[_ngcontent-%COMP%]{margin-top:24px}.generated-link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;gap:8px}.generated-link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;color:#82ffca;font-size:13px}.copy-btn[_ngcontent-%COMP%]{flex-shrink:0;color:#fff;font-weight:700;font-size:13px;padding:0 15px;border-radius:4px;border:1px solid rgba(255,255,255,.8);background:transparent}.copy-btn[_ngcontent-%COMP%]:hover{border:1px solid white}.link-builder-docs[_ngcontent-%COMP%]{max-width:900px;margin:60px auto 20px;padding:0 20px}.docs-table-wrap[_ngcontent-%COMP%]{overflow-x:auto;padding:0 5px}.docs-table[_ngcontent-%COMP%]{width:100%;margin:20px auto}.docs-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .docs-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{text-align:left;padding:8px 10px;font-size:12px;color:#ccc;border-bottom:1px solid rgba(255,255,255,.1)}.docs-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{color:#fff;font-weight:600}.docs-table[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#000;padding:6px 4px}.example-url[_ngcontent-%COMP%]{text-align:left;word-break:break-all}.example-url[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:#000;padding:6px 4px}@media(min-width:768px){h2[_ngcontent-%COMP%]{font-size:27px}.save[_ngcontent-%COMP%]{font-size:18px;height:60px}}"]});let a=d;return a})();var ye=[{path:"",component:de}],pe=(()=>{let d=class d{};d.\u0275fac=function(o){return new(o||d)},d.\u0275mod=S({type:d}),d.\u0275inj=B({imports:[I.forChild(ye),I]});let a=d;return a})();var Je=(()=>{let d=class d{};d.\u0275fac=function(o){return new(o||d)},d.\u0275mod=S({type:d}),d.\u0275inj=B({imports:[U,Y,oe,pe]});let a=d;return a})();export{Je as LinkBuilderModule}; 2/**i18n:781fa348e2b2338c8b8af109ef025fd7bb624da87d4802aee2d7ec6e37a8b725*/
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.