diff --git a/.admin-app/admin.html b/.admin-app/admin.html index 473a8802..6afa6b99 100644 --- a/.admin-app/admin.html +++ b/.admin-app/admin.html @@ -31,11 +31,11 @@ - + - + \ No newline at end of file diff --git a/.admin-app/chunk-2H3447NQ.js b/.admin-app/chunk-2H3447NQ.js new file mode 100644 index 00000000..0526f871 --- /dev/null +++ b/.admin-app/chunk-2H3447NQ.js @@ -0,0 +1 @@ +import{m as h,p as q,q as G,x as H}from"./chunk-TCALQ33I.js";import{$ as w,$a as S,Ba as _,Ca as k,Cc as F,Ea as I,Eb as W,Ga as D,H as a,Ha as y,Ia as f,J as u,Nc as L,P as M,Sa as z,U as b,Uc as j,Va as s,Yb as E,aa as x,ba as O,ca as o,da as r,ea as l,fa as P,ka as T,ma as C,nc as R,oa as c,s as p,t as v,tc as B,ub as N,vc as A,xb as V}from"./chunk-LVL3PYF7.js";function Q(g,i){if(g&1){let e=T();r(0,"ion-datetime",8),f("ngModelChange",function(n){p(e);let d=c();return y(d.startTime,n)||(d.startTime=n),v(n)}),C("ionChange",function(){p(e);let n=c();return v(n.startChange())}),l()}if(g&2){let e=c();o("min",e.minTime())("max",e.maxTime())("showDefaultButtons",!0),D("ngModel",e.startTime),o("id","datetime"+e.id())}}function U(g,i){if(g&1&&(r(0,"ion-select-option",7),_(1),l()),g&2){let e=i.$implicit;o("value",e.value),a(),k(e.title)}}var J=[{title:"1 hour",value:60},{title:"15 mins",value:15},{title:"30 mins",value:30},{title:"45 mins",value:45},{title:"1.5 hours",value:90},{title:"2 hours",value:120},{title:"2.5 hours",value:150},{title:"3 hours",value:180},{title:"3.5 hours",value:210},{title:"4 hours",value:240},{title:"4.5 hours",value:270},{title:"5 hours",value:300},{title:"5.5 hours",value:330},{title:"6 hours",value:360},{title:"All Day",value:1440}],X=[{title:"6.5 hours",value:390},{title:"7 hours",value:420},{title:"7.5 hours",value:450},{title:"8 hours",value:480},{title:"8.5 hours",value:510},{title:"9 hours",value:540},{title:"9.5 hours",value:570},{title:"10 hours",value:600},{title:"10.5 hours",value:630},{title:"11 hours",value:660},{title:"11.5 hours",value:690},{title:"12 hours",value:720}],m=class m{constructor(){this.id=s("");this.minTime=s("");this.maxTime=s("");this.startTime="";this.endTime="";this.size=s("");this.label=s("When");this.allDay=!1;this.allDayChanged=new u;this.occurrenceChange=new u;this.startChanged=new u;this.endChanged=new u;this.day="";this.eventDuration=0;this.longDurations=s(!1);this.durations=z(()=>this.longDurations()?[...J,...X]:[...J])}allDayChange(){console.log("all day changed",this.allDay),this.allDayChanged.emit(this.allDay)}ngAfterViewInit(){this.startTime.endsWith("00:00:00")&&this.endTime.endsWith("23:59:59")&&(this.allDay=!0);let i=h(this.startTime),e=h(this.endTime);this.eventDuration=Math.abs(e-i)/6e4,this.eventDuration>1439&&(this.eventDuration=1440),this.durations().find(n=>n.value===this.eventDuration)||this.durations().push({title:`${this.eventDuration} mins`,value:this.eventDuration}),this.setDay()}startChange(){this.startChanged.emit(this.startTime),this.setDuration(),this.setDay()}endChange(){this.endChanged.emit(this.endTime)}setDuration(){this.eventDuration===1440?(this.allDay=!0,this.allDayChanged.emit(this.allDay)):this.allDay=!1,this.endTime=G(q(h(this.startTime),this.eventDuration)),this.endChanged.emit(this.endTime),this.setDay()}setDay(){let i=new Date(this.startTime);this.day=H[i.getDay()]}};m.\u0275fac=function(e){return new(e||m)},m.\u0275cmp=M({type:m,selectors:[["app-date-range"]],inputs:{id:[1,"id"],minTime:[1,"minTime"],maxTime:[1,"maxTime"],startTime:"startTime",endTime:"endTime",size:[1,"size"],label:[1,"label"],allDay:"allDay",longDurations:[1,"longDurations"]},outputs:{allDayChanged:"allDayChanged",occurrenceChange:"occurrenceChange",startChanged:"startChanged",endChanged:"endChanged"},decls:11,vars:7,consts:[[1,"l2"],[1,"vertical",3,"ngClass"],["lines","none",1,"wide-enough"],[3,"datetime"],[3,"keepContentsMounted"],["lines","none",1,"duration"],["labelPlacement","floating","interface","popover","placeholder","Duration",1,"app-select-small",3,"ionChange","ngModelChange","value","ngModel"],[3,"value"],["minuteValues","0,15,30,45",3,"ngModelChange","ionChange","min","max","showDefaultButtons","ngModel","id"]],template:function(e,t){e&1&&(r(0,"ion-label",0),_(1),l(),r(2,"div",1)(3,"ion-item",2),P(4,"ion-datetime-button",3),l(),r(5,"ion-modal",4),b(6,Q,1,5,"ng-template"),l(),r(7,"ion-item",5)(8,"ion-select",6),C("ionChange",function(){return t.setDuration()}),f("ngModelChange",function(d){return y(t.eventDuration,d)||(t.eventDuration=d),d}),x(9,U,2,2,"ion-select-option",7,w),l()()()),e&2&&(a(),I("",t.label()," ",t.day),a(),o("ngClass",t.size()),a(2),o("datetime","datetime"+t.id()),a(),o("keepContentsMounted",!0),a(3),o("value",t.eventDuration),D("ngModel",t.eventDuration),a(),O(t.durations()))},dependencies:[E,R,W,N,V,A,S,B,L,j,F],styles:['.vertical[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:end;justify-content:center;padding:0}ion-label.lbl[_ngcontent-%COMP%]{min-width:50px;text-align:right;padding-right:var(--spacing-sm)}ion-label.l2[_ngcontent-%COMP%]{font-size:var(--font-size-base);color:var(--ion-color-dark)}ion-label.day[_ngcontent-%COMP%]{min-width:50px;padding-right:var(--spacing-sm);font-size:var(--font-size-xl)}.duration[_ngcontent-%COMP%]{margin-left:0;padding-left:0;padding-right:0;margin-right:0}ion-item[_ngcontent-%COMP%]{--padding-start: 0;--inner-padding-end: 0}.day[_ngcontent-%COMP%]{opacity:.5;text-align:right}ion-datetime-button[_ngcontent-%COMP%]{justify-content:left}.checkmark[_ngcontent-%COMP%]{position:absolute;top:0;left:0;height:18px;width:18px;background-color:#eee;border-radius:var(--br-xs)}.container[_ngcontent-%COMP%]:hover input[_ngcontent-%COMP%] ~ .checkmark[_ngcontent-%COMP%]{background-color:#ccc}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]{background-color:#999}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark[_ngcontent-%COMP%]:after{content:"";position:absolute;display:none}.container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{left:var(--spacing-sm);top:3px;width:4px;height:8px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.container[_ngcontent-%COMP%]{display:block;position:relative;padding-left:var(--spacing-md);margin-right:var(--spacing-xl);margin-bottom:var(--spacing-base)!important;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:var(--font-size-xl);min-width:70px}ion-datetime-button[_ngcontent-%COMP%]::part(native){margin-top:0;margin-bottom:var(--spacing-sm);padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs);min-width:120px}ion-select[_ngcontent-%COMP%]{--padding-start: 0px;width:150px}@media (min-width: 390px){ion-select[_ngcontent-%COMP%]{--padding-start: 0px;--padding-end: 0;margin-right:0}}@media (min-width: 440px){.wide-enough[_ngcontent-%COMP%]{min-width:280px}}@media (min-width: 640px){.vertical[_ngcontent-%COMP%]{flex-direction:row}}@media (min-width: 800px){.wide[_ngcontent-%COMP%] ion-datetime-button[_ngcontent-%COMP%]{min-width:300px}.wide[_ngcontent-%COMP%] ion-label.lbl[_ngcontent-%COMP%]{min-width:unset}.wide[_ngcontent-%COMP%] ion-label.day[_ngcontent-%COMP%]{min-width:unset;padding-right:var(--spacing-xs)}.wide[_ngcontent-%COMP%] ion-datetime-button[_ngcontent-%COMP%]::part(native){min-width:unset}}']});var K=m;export{K as a}; diff --git a/.admin-app/chunk-2YA6UCY4.js b/.admin-app/chunk-2YA6UCY4.js deleted file mode 100644 index a43d5926..00000000 --- a/.admin-app/chunk-2YA6UCY4.js +++ /dev/null @@ -1 +0,0 @@ -import{a as $}from"./chunk-VDXUCHAY.js";import{a as Z}from"./chunk-VVJA7NBV.js";import{a as Y}from"./chunk-WRLAXAJB.js";import{Y as Q,g as K,ja as X}from"./chunk-LIWDDRYP.js";import{H as L,K as G,l as q}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{Aa as l,Ba as I,Db as V,Ec as z,Fa as x,Fc as R,Ga as v,H as s,Ha as w,Mc as j,Nc as H,P as S,Ua as P,Wb as N,X as g,Y as y,Za as T,ba as f,ca as o,cc as O,da as t,dc as B,ea as p,ec as U,fc as W,ja as C,la as u,lc as J,na as c,p as b,rc as D,s as d,sc as A,t as m,tb as E,vc as F,wb as M}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";function ie(k,a){if(k&1){let e=C();o(0,"app-tooltip",11)(1,"ion-button",12),u("click",function(){d(e);let i=c(2);return m(i.moveUp())}),p(2,"ion-icon",13),l(3,"Move Up"),t(),l(4,"\xA0 "),t(),o(5,"ion-button",14),u("click",function(){d(e);let i=c(2);return m(i.delete())}),l(6,"Delete"),t(),l(7,"\xA0 ")}if(k&2){let e=c(2);s(),f("disabled",e.busy)}}function te(k,a){if(k&1){let e=C();o(0,"div",5)(1,"ion-card")(2,"ion-card-content")(3,"ion-list")(4,"ion-item",6)(5,"ion-input",7),w("ngModelChange",function(i){d(e);let r=c();return v(r.link.title,i)||(r.link.title=i),m(i)}),t()(),o(6,"app-link-input",8),w("modelChange",function(i){d(e);let r=c();return v(r.link.url,i)||(r.link.url=i),m(i)}),u("iconClick",function(){d(e);let i=c();return m(i.openLink())}),t(),o(7,"ion-item")(8,"app-note")(9,"b"),l(10,"Examples"),t(),p(11,"br"),o(12,"code"),l(13,"tel:702100200"),t(),l(14," to call a phone number."),p(15,"br"),o(16,"code"),l(17,"mailto:address"),t(),l(18," to open an email client."),p(19,"br"),o(20,"code"),l(21,"https://google.com"),t(),l(22," to open a browser."),t()()(),o(23,"div",9),g(24,ie,8,1),o(25,"ion-button",10),u("click",function(){d(e);let i=c();return m(i.save())}),l(26,"Save"),t()()()()()}if(k&2){let e=c();s(5),x("ngModel",e.link.title),s(),x("model",e.link.url),s(18),y(e.id?24:-1),s(),f("disabled",e.busy)}}var _=class _{constructor(){this.api=b(G);this.location=b(T);this.vanity=P();this.busy=!0;this.link={id:void 0,title:"",url:""};X({arrowUpOutline:K,openOutline:Q})}ionViewWillEnter(){return h(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.id=q(this.id),this.link=yield this.api.getLink(this.id),this.busy=!1})}delete(){return h(this,null,function*(){yield this.api.deleteLink(this.link.id),this.api.clearCache(),this.location.back()})}save(){return h(this,null,function*(){if(this.link.title.length<3){this.api.sendMessage("The link title must be set");return}if(this.link.url.length<3){this.api.sendMessage("The link url must be set");return}this.link.url=L(this.link.url),this.busy=!0;try{let a=yield this.api.addLink(this.link);a.message?this.api.sendMessage(a.message):this.location.back()}finally{this.busy=!1}})}moveUp(){return h(this,null,function*(){this.busy=!0;let a=yield this.api.links();console.log("moveup",a);let e=a.findIndex(n=>n.id===this.link.id);if(e!==-1){if(e==0){this.api.sendMessage("The link is the first in the list"),this.busy=!1;return}let n=JSON.parse(JSON.stringify(a[e-1])),i=JSON.parse(JSON.stringify(a[e-1])),r=JSON.parse(JSON.stringify(this.link));n.title=r.title,n.url=r.url,r.title=i.title,r.url=i.url,yield this.api.addLink(r),yield this.api.addLink(n),this.busy=!1,this.location.back()}})}openLink(){if(this.link.url){let a=L(this.link.url);window.open(a,"_blank")}}};_.\u0275fac=function(e){return new(e||_)},_.\u0275cmp=S({type:_,selectors:[["app-link"]],inputs:{vanity:[1,"vanity"],id:"id"},decls:11,vars:3,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],["lines","none"],["label","Title","labelPlacement","stacked","placeholder","Text of the link",3,"ngModelChange","ngModel"],["label","URL","placeholder","URL for the link",3,"modelChange","iconClick","model"],[1,"center"],[3,"click","disabled"],["text","Move higher in the list"],["color","secondary",3,"click","disabled"],["size","small","name","arrow-up-outline"],["color","secondary",3,"click"]],template:function(e,n){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),p(3,"ion-back-button"),t(),o(4,"ion-title"),l(5),t(),o(6,"ion-buttons",2)(7,"ion-button",3),u("click",function(){return n.save()}),l(8,"Save"),t()()()(),o(9,"ion-content",4),g(10,te,27,4,"div",5),t()),e&2&&(s(5),I(n.id?"Link":"Add Link"),s(4),f("fullscreen",!0),s(),y(n.busy?-1:10))},dependencies:[j,Y,V,E,M,$,D,R,B,N,z,J,U,W,F,A,H,O,Z],styles:["code[_ngcontent-%COMP%]{color:var(--ion-color-primary)}"]});var ee=_;export{ee as LinkPage}; diff --git a/.admin-app/chunk-3365OTC2.js b/.admin-app/chunk-3365OTC2.js new file mode 100644 index 00000000..a5f6be12 --- /dev/null +++ b/.admin-app/chunk-3365OTC2.js @@ -0,0 +1,3 @@ +import{a as Le,b as De}from"./chunk-CMEEWD7E.js";import{a as ke}from"./chunk-2H3447NQ.js";import"./chunk-M2OHFPPF.js";import{a as Oe}from"./chunk-4JLQIYCO.js";import"./chunk-3OSW3EO7.js";import{a as Te}from"./chunk-KCPLCCSF.js";import{a as Ve}from"./chunk-U3YCGDGQ.js";import{a as Se}from"./chunk-K6ROGVP7.js";import{a as Ie,c as m}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{b as Ee,oa as Me,x as Pe}from"./chunk-QF32E4V4.js";import{G as xe,K as we,c as ye,e as be,l as f,m as V,o as F,p as R,q as D,r as z,t as W,u as B,v as Ce}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as k,Aa as q,Ba as v,Ca as A,Cb as Q,Cc as pe,E as N,Eb as X,Fb as ee,Fc as he,Ga as T,Gc as _e,H as r,Ha as E,Ia as P,Kc as me,Oc as ue,P as $,Pc as ve,Uc as ge,Va as H,Vc as fe,Xb as te,Y as y,Z as b,_a as Z,aa as O,ba as L,ca as _,da as s,dc as ie,ea as l,ec as ne,fa as x,fc as oe,gc as ae,ib as G,ka as w,ma as u,mc as re,oa as c,ob as J,p as M,s as d,sc as se,t as p,tc as le,ub as K,wc as ce,xa as j,xb as Y,yc as de}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as C}from"./chunk-LNJ3S2LQ.js";function Ae(a,t){if(a&1&&(s(0,"ion-select-option",13),v(1),l()),a&2){let e=t.$implicit;_("value",e.id),r(),A(e.name)}}function Fe(a,t){if(a&1){let e=w();s(0,"ion-item",10)(1,"ion-select",26),u("ionChange",function(i){d(e);let o=c(2);return p(o.locationChange(i))}),P("ngModelChange",function(i){d(e);let o=c(2);return E(o.eventLocation,i)||(o.eventLocation=i),p(i)}),O(2,Ae,2,2,"ion-select-option",13,k),l()()}if(a&2){let e=c(2);r(),_("value",e.eventLocation),T("ngModel",e.eventLocation),r(),L(e.locations)}}function Re(a,t){if(a&1){let e=w();s(0,"ion-item",10)(1,"ion-input",27),P("ngModelChange",function(i){d(e);let o=c(2);return E(o.event.other_location,i)||(o.event.other_location=i),p(i)}),l()()}if(a&2){let e=c(2);r(),T("ngModel",e.event.other_location)}}function ze(a,t){a&1&&(s(0,"ion-item")(1,"ion-note",28),v(2," Please describe the location of your event. If your event is at a theme camp or art then it is best to coordinate with the camp/art lead to have them add your event. If you are a theme camp / art lead then be sure to register your camp before adding events."),l()())}function Be(a,t){if(a&1&&(s(0,"ion-select-option",13),v(1),l()),a&2){let e=t.$implicit;_("value",e),r(),A(e)}}function Ue(a,t){if(a&1&&x(0,"img",17),a&2){let e=c(2);_("src",e.imageUrl,N)}}function Ne(a,t){a&1&&(s(0,"p"),v(1,"Click to choose an optional image for this event"),l())}function $e(a,t){if(a&1){let e=w();s(0,"div",19)(1,"div",29)(2,"app-date-range",30),u("allDayChanged",function(i){let o=d(e).$implicit,g=c(2);return p(g.allDayChanged(o,i))})("endChanged",function(i){let o=d(e).$implicit,g=c(2);return p(g.endChanged(o,i))})("startChanged",function(i){let o=d(e).$implicit,g=c(2);return p(g.startChanged(o,i))}),l()(),s(3,"div",31)(4,"app-tooltip",32)(5,"ion-button",33),u("click",function(){let i=d(e).$implicit,o=c(2);return p(o.deleteItem(i))}),x(6,"ion-icon",34),l()()()()}if(a&2){let e=t.$implicit,n=t.$index,i=c(2);r(2),_("label",n===0?"":"Repeats")("minTime",i.minTime)("maxTime",i.maxTime)("id",e.id.toString())("startTime",e.start)("endTime",e.end),r(3),_("hidden",i.occurrences.length===1)}}function je(a,t){if(a&1){let e=w();s(0,"ion-button",24),u("click",function(){d(e);let i=c(2);return p(i.delete())}),v(1,"Delete"),l(),v(2,"\xA0 ")}}function qe(a,t){a&1&&(s(0,"ion-button",21),v(1,"\xA0"),l())}function He(a,t){if(a&1){let e=w();s(0,"div",6)(1,"app-moderation-check",7),u("approve",function(){d(e);let i=c();return p(i.approveModerations())}),l(),s(2,"ion-card",8)(3,"ion-card-content",9)(4,"ion-list"),y(5,Fe,4,2,"ion-item",10),y(6,Re,2,1,"ion-item",10),y(7,ze,3,0,"ion-item"),s(8,"ion-item",11)(9,"ion-select",12),P("ngModelChange",function(i){d(e);let o=c();return E(o.event.event_type,i)||(o.event.event_type=i),p(i)}),O(10,Be,2,2,"ion-select-option",13,k),l()(),s(12,"ion-item",10)(13,"ion-input",14),P("ngModelChange",function(i){d(e);let o=c();return E(o.event.title,i)||(o.event.title=i),p(i)}),l()(),s(14,"ion-item",10)(15,"ion-textarea",15),u("ionInput",function(){d(e);let i=c();return p(i.descriptionChanged())}),P("ngModelChange",function(i){d(e);let o=c();return E(o.event.description,i)||(o.event.description=i),p(i)}),l()(),s(16,"div",16),u("click",function(){d(e);let i=j(31);return p(i.click())}),y(17,Ue,1,1,"img",17),y(18,Ne,2,0,"p"),l(),x(19,"div",18),O(20,$e,7,7,"div",19,k),l(),s(22,"div",20),y(23,je,3,0)(24,qe,2,0,"ion-button",21),s(25,"ion-button",22),u("click",function(){d(e);let i=c();return p(i.save())}),v(26,"Save"),l(),s(27,"app-tooltip",23)(28,"ion-button",24),u("click",function(){d(e);let i=c();return p(i.addItem())}),v(29,"Add Occurrence"),l()()(),s(30,"input",25,0),u("change",function(i){d(e);let o=c();return p(o.onFileSelected(i))}),l()()()()}if(a&2){let e=c();r(),_("visible",!0)("moderationId",e.event.moderation),r(),_("disabled",!(e.isOwner||e.isAdmin)),r(3),b(e.openRegistration?-1:5),r(),b(!e.event.hosted_by_camp&&!e.event.located_at_art?6:-1),r(),b(e.openRegistration?7:-1),r(2),_("multiple",!0)("value",e.event.event_type),T("ngModel",e.event.event_type),r(),L(e.eventTypes),r(3),T("ngModel",e.event.title),r(2),_("spellcheck",!0)("rows",6)("autoGrow",!0),T("ngModel",e.event.description),_("maxlength",1e3)("helperText",e.helperText),r(),q(e.uploading?"disabled":""),r(),b(e.imageUrl?17:-1),r(),b(e.imageUrl?-1:18),r(2),L(e.occurrences),r(3),b(e.id?23:24),r(2),_("disabled",e.busy)}}function Ze(a,t){a&1&&x(0,"app-spinner")}var S=class S{constructor(){this.api=M(we);this.alert=M(me);this.location=M(Z);this.route=M(G);this.vanity=H();this.busy=!0;this.helperText="";this.event={description:"",title:"",occurrence_set:"[]",hosted_by_camp:void 0,id:void 0,event_type:"Event"};this.minTime=new Date().toISOString();this.maxTime=new Date().toISOString();this.locations=[];this.uploading=!1;this.isOwner=!1;this.isAdmin=!1;this.atArt=!1;this.openRegistration=!1;this.imageChanged=!1;this.beforeDescription="";this.occurrences=[];this.eventTypes=[];this.musicTypes=[];this.timezone=this.api.currentTimeZone();Me({addOutline:Ee,closeOutline:Pe})}ionViewWillEnter(){return C(this,null,function*(){var g,I,U;this.busy=!0,yield this.api.setFestivalByVanity(this.vanity()),this.id=f(this.id);let t=yield this.api.camps({cached:!0},!0),e=yield this.api.art({cached:!0});this.locations=[{id:"o-1",name:"Open Camping / Other",type:"other"}],t.map(h=>this.locations.push({id:"c-"+h.id,name:`${h.name}`,type:"camp"})),e.map(h=>this.locations.push({id:"a-"+h.id,name:`${h.name} \u{1F3A8}`,type:"art"})),this.openRegistration=!1,t.length==0&&e.length==0&&(this.openRegistration=!0);let n=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.timezone=n.timezone,this.eventTypes=n.event_types?n.event_types.split(` +`):Le,this.musicTypes=n.music_types?n.music_types.split(` +`):De,this.timezone||(this.timezone=this.api.currentTimeZone());let i=!this.id;if(i){this.event=yield this.api.newEvent();let h=this.route.snapshot.queryParams.location;this.event.hosted_by_camp=this.route.snapshot.queryParams.camp,this.event.located_at_art=this.route.snapshot.queryParams.art,!this.event.hosted_by_camp&&!this.event.located_at_art&&h!=="other"&&(t.length>0?this.event.hosted_by_camp=t[0].id:e.length>0&&(this.event.located_at_art=`${e[0].id}`))}else this.event=yield this.api.getEvent(this.id);this.event.hosted_by_camp&&(this.event.hosted_by_camp=Math.trunc(this.event.hosted_by_camp)),this.event.event_type=this.event.event_type.split(","),this.isOwner=this.api.isCampOwner(n.id,this.event.hosted_by_camp)||this.api.isArtOwner(n.id,f(this.event.located_at_art))||(yield this.api.isEventOwner(f(this.event.id)))||i,this.isAdmin=this.api.isAdmin(n.id),this.isAdmin&&this.event.contact&&(this.helperText=`Created by ${this.event.contact}`),this.event.hosted_by_camp?this.eventLocation=(g=this.locations.find(h=>h.id===`c-${f(this.event.hosted_by_camp)}`))==null?void 0:g.id:this.event.located_at_art?this.eventLocation=(I=this.locations.find(h=>h.id===`a-${f(this.event.located_at_art)}`))==null?void 0:I.id:this.eventLocation=(U=this.locations.find(h=>h.type==="other"))==null?void 0:U.id;let o=JSON.parse(this.event.occurrence_set);if(this.occurrences=[],o.length>0)for(let h of o)this.occurrences.push({start:W(h.start_time),end:W(h.end_time),id:this.occurrences.length+1});this.imageUrl=this.api.imageURL(this.event.imageUrl),this.minTime=n.start_time,this.maxTime=W(F(V(n.end_time),12).toISOString()),this.id||this.occurrences.push({start:n.start_time,end:D(R(V(n.start_time),60)),id:1}),this.busy=!1})}locationChange(t){let e=t.detail.value.startsWith("c-")?f(t.detail.value.substring(2)):void 0,n=t.detail.value.startsWith("a-")?f(t.detail.value.substring(2)):void 0;e?this.event.hosted_by_camp=e:n?(this.event.located_at_art=`${n}`,this.event.hosted_by_camp=void 0):(this.event.hosted_by_camp=void 0,this.event.located_at_art=void 0)}startChanged(t,e){if(t.start=e,t.end.endsWith("23:59:59")){t.start=t.start.substring(0,10)+"T00:00:00",t.end=t.start.substring(0,10)+"T23:59:59";return}t.end=D(F(V(e),1))}endChanged(t,e){t.end=e}allDayChanged(t,e){e&&(t.end=t.start.substring(0,10)+"T23:59:59",t.start=t.start.substring(0,10)+"T00:00:00")}addItem(){let t=this.occurrences[this.occurrences.length-1].end;this.occurrences.push({id:this.occurrences.length+1,start:t,end:D(R(V(t),60))})}deleteItem(t){this.occurrences.length!=1&&(this.occurrences=this.occurrences.filter(e=>e.id!==t.id))}save(){return C(this,null,function*(){Ce(this.event);let t=[];for(let e of this.occurrences){let n=new Date(e.start+B(this.timezone)),i=new Date(e.end+B(this.timezone)),o=Math.round((i-n)/1e3/60);if(o<0){yield m(this.alert,"The end time must be after the start time");return}if(o<15){yield m(this.alert,"The event must be at least 15 minutes long");return}if(o>1440&&!this.isAllDay(e)){yield m(this.alert,"The event cannot be longer than 12 hours. For longer events consider adding to your camp description.");return}if(this.event.event_type==""||this.event.event_type.length==0){yield m(this.alert,"The event type must be selected.");return}else if(Array.isArray(this.event.event_type)){let g=yield this.api.getFestival(this.api.festivalId,{cached:!0}),I=ye(g.max_event_types,2);if(this.event.event_type.length>I){yield m(this.alert,`You can choose at most ${I} event types.`);return}this.event.event_type=this.event.event_type.join(",")}if(this.event.title.length<4){yield m(this.alert,"The event title must be set (and longer than 4 characters).");return}if(this.event.event_type==="Event"){yield m(this.alert,"Select at least one event type.");return}if(this.event.description.length<20){yield m(this.alert,"The event description must be set (and longer than 20 characters).");return}if(this.event.description=z(this.event.description),this.event.title=z(this.event.title),this.applyLocation(),!this.event.hosted_by_camp||isNaN(this.event.hosted_by_camp)){if(!this.event.located_at_art&&!this.openRegistration&&!this.event.other_location){yield m(this.alert,"Select the location of the event");return}if(this.openRegistration&&be(this.event.other_location)){yield m(this.alert,"Describe the location of the event");return}this.openRegistration}t.push({start_time:e.start,end_time:e.end})}this.event.occurrence_set=JSON.stringify(t),this.busy=!0;try{let e=yield this.api.addEvent(this.event);this.api.clearCache(),e.message?(this.busy=!1,m(this.alert,e.message)):(e.id&&this.imageChanged&&(yield this.uploadImage(e.id)),this.event.id,this.isAdmin||(yield this.api.setKey(),yield m(this.alert,`The changes you have made will be reviewed by ${this.api.festivalTitle()} prior to publishing in the app.`,"Note")),this.location.back())}finally{this.busy=!1}})}applyLocation(){let t=this.locations.find(e=>e.id===this.eventLocation);t&&t.id&&(t.type==="camp"?(this.event.hosted_by_camp=f(t.id.substring(2)),this.event.other_location=void 0,this.event.located_at_art=void 0):t.type==="art"?(this.event.located_at_art=`${f(t.id.substring(2))}`,this.event.other_location=void 0,this.event.hosted_by_camp=void 0):(this.event.hosted_by_camp=void 0,this.event.located_at_art=void 0))}isAllDay(t){return t.start.endsWith("00:00:00")&&t.end.endsWith("23:59:59")}delete(){return C(this,null,function*(){(yield Ie(this.alert,"Are you sure you want to delete this event?"))&&(yield this.api.deleteEvent(this.event.id),this.api.clearCache(),this.location.back())})}uploadImage(t){return C(this,null,function*(){if(this.blob)try{this.uploading=!0,this.event.imageUrl=yield this.api.setImage(this.blob,t),yield this.api.addEvent(this.event)}finally{this.uploading=!1,this.imageChanged=!1}})}descriptionChanged(){this.event.description.length-this.beforeDescription.length>10&&(this.event.description=xe(this.event.description)),this.beforeDescription=this.event.description}onFileSelected(t){return C(this,null,function*(){let e=t.target.files[0];if(!e)return;this.blob=yield Te(e,{quality:75,width:300});let n=URL.createObjectURL(this.blob);this.imageUrl=n,this.imageChanged=!0})}ionViewWillLeave(){document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur()}approveModerations(){return C(this,null,function*(){this.event.moderation=0,yield this.save()})}};S.\u0275fac=function(e){return new(e||S)},S.\u0275cmp=$({type:S,selectors:[["app-event"]],inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:2,consts:[["fileUpload",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[3,"approve","visible","moderationId"],[1,"form",3,"disabled"],[1,"form"],["lines","none"],["lines","none",1,"app-select","ion-padding-top"],["labelPlacement","stacked","label","Type","interface","popover","placeholder","Select the type of event",1,"app-select",3,"ngModelChange","multiple","value","ngModel"],[3,"value"],["label","Title","labelPlacement","stacked","placeholder","Title of the event",3,"ngModelChange","ngModel"],["lines","none","labelPlacement","stacked","label","Description","placeholder","Description of the event",3,"ionInput","ngModelChange","spellcheck","rows","autoGrow","ngModel","maxlength","helperText"],[1,"image-container","center",3,"click"],[3,"src"],[1,"ion-padding-top"],[2,"display","flex","border-bottom","1px solid var(--ion-color-light)","margin-bottom","8px"],[1,"horizontal",2,"padding-left","1rem","padding-right","1rem"],["fill","clear"],[3,"click","disabled"],["text","Add occurrence"],["color","secondary",3,"click"],["type","file",1,"file-input",3,"change"],["label","Location","labelPlacement","stacked","interface","popover","placeholder","Select location of event",1,"app-select",3,"ionChange","ngModelChange","value","ngModel"],["labelPlacement","stacked","label","Location Description","placeholder","Description of the location",3,"ngModelChange","ngModel"],[1,"ion-padding-start","ion-padding-end","ion-padding-bottom"],[1,"wide","range"],["size","wide",3,"allDayChanged","endChanged","startChanged","label","minTime","maxTime","id","startTime","endTime"],[2,"width","60px","padding-top","32px"],["position","right","text","Remove this occurrence"],["color","secondary",3,"click","hidden"],["size","small","name","close-outline"]],template:function(e,n){e&1&&(s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),s(4,"ion-title"),v(5,"Event"),l(),s(6,"ion-buttons",3)(7,"ion-button",4),u("click",function(){return n.save()}),v(8,"Save"),l()()()(),s(9,"ion-content",5),y(10,He,32,22,"div",6)(11,Ze,1,0,"app-spinner"),l()),e&2&&(r(9),_("fullscreen",!0),r(),b(n.busy?11:10))},dependencies:[de,ue,X,K,Q,Y,J,se,_e,ne,te,he,re,oe,ae,ce,le,ge,pe,ve,fe,Ve,ke,Oe,ie,Se,ee],styles:[".horizontal[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between}.bottom-line[_ngcontent-%COMP%]{border-bottom:1px solid var(--ion-color-light)}.range[_ngcontent-%COMP%]{padding-left:var(--spacing-1xl)}"]});var We=S;export{We as EventPage}; diff --git a/.admin-app/chunk-3OSW3EO7.js b/.admin-app/chunk-3OSW3EO7.js new file mode 100644 index 00000000..8b366e2c --- /dev/null +++ b/.admin-app/chunk-3OSW3EO7.js @@ -0,0 +1 @@ +import{K as g}from"./chunk-TCALQ33I.js";import{l,p as c}from"./chunk-LVL3PYF7.js";import{h as u}from"./chunk-LNJ3S2LQ.js";var e=class e{constructor(){this.api=c(g)}moderateIfNeeded(t,a,r){return u(this,null,function*(){if(!a||a===0)return;let f=yield this.api.moderate(r),s=JSON.parse(f.message),i=!0;for(let n=0;n1e3))return`maxLines must be between 1 and 1000, got ${e.maxLines}`;if(e.maxLength!==void 0&&(e.maxLength<1||e.maxLength>1e4))return`maxLength must be between 1 and 10000, got ${e.maxLength}`}if(e.type==="values"&&(!e.values||!Array.isArray(e.values)||e.values.length===0))return"Values field must have at least one value";if(!["user","admin","readadmin"].includes(e.scope))return`Invalid scope: ${e.scope}`;if(typeof e.required!="boolean")return"Required must be a boolean";if(e.helperText!==void 0&&e.helperText!==null){if(typeof e.helperText!="string")return"Helper text must be a string";if(e.helperText.length>500)return"Helper text cannot exceed 500 characters"}return null}function f(e,t){if(t.required){if(e==null||e==="")return`${t.name} is required`;if(typeof e=="string"&&e.trim()==="")return`${t.name} is required`}if(e==null||e==="")return null;if(t.type==="string"){if(typeof e!="string")return`${t.name} must be a string`;if(t.maxLength&&e.length>t.maxLength)return`${t.name} cannot exceed ${t.maxLength} characters`}else if(t.type==="boolean"){if(typeof e!="boolean")return`${t.name} must be a boolean`}else if(t.type==="values"&&(!t.values||!t.values.includes(e)))return`${t.name} has an invalid value`;return null}function y(e,t){let i=[],o=new Map(e.map(n=>[n.name,n.value]));for(let n of t){let r=o.get(n.name),a=f(r!=null?r:null,n);a&&i.push({fieldName:n.name,message:a})}return i}function F(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:(console.error("Parsed data is not an array"),[])}catch(t){return console.error("Failed to parse field values:",t),[]}}function b(e,t){switch(e){case"user":return"This question is not shared to the public";case"admin":return`${t} is only visible to Dust admins`;case"readadmin":return`${t} was supplied by a user but is now only visible to Dust admins`;default:return""}}function g(e){return e.type==="boolean"?!1:""}function D(e,t,i){let o=e.findIndex(n=>n.name===t);if(o>=0){let n=[...e];return n[o]={name:t,value:i},n}else return[...e,{name:t,value:i}]}function E(e,t){var o;let i=new Map((o=t==null?void 0:t.map(n=>[n.name,n.value]))!=null?o:[]);return e.map(n=>{var r;return{name:n.name,value:(r=i.get(n.name))!=null?r:g(n)}})}var s=class s{constructor(){this.tooltipText=h(void 0,{alias:"appHoverTooltip"});this.tooltipElement=null;this.hideTimeout=null;this.showTimeout=null;this.el=l(u);this.renderer=l(p)}onMouseEnter(){this.scheduleShow()}onMouseLeave(){this.clearShowTimeout(),this.hideTooltip()}scheduleShow(){this.clearShowTimeout(),this.showTimeout=setTimeout(()=>{this.showTooltip(),this.scheduleHide()},2e3)}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}showTooltip(){if(this.tooltipText()===void 0||this.tooltipText()==="")return;this.hideTooltip(),this.tooltipElement=this.renderer.createElement("div"),this.renderer.addClass(this.tooltipElement,"hover-tooltip"),this.renderer.setProperty(this.tooltipElement,"textContent",this.tooltipText()),this.renderer.setStyle(this.tooltipElement,"cursor","pointer"),this.renderer.listen(this.tooltipElement,"click",()=>{this.hideTooltip()}),this.renderer.appendChild(document.body,this.tooltipElement);let t=this.el.nativeElement.getBoundingClientRect(),o=this.el.nativeElement.tagName.toLowerCase()==="ion-checkbox"?118:58;this.renderer.setStyle(this.tooltipElement,"position","fixed"),this.renderer.setStyle(this.tooltipElement,"top",`${t.top-o}px`),this.renderer.setStyle(this.tooltipElement,"left",`${t.left}px`)}scheduleHide(){this.hideTimeout&&clearTimeout(this.hideTimeout),this.hideTimeout=setTimeout(()=>{this.hideTooltip()},5e3)}hideTooltip(){this.tooltipElement&&(this.tooltipElement.parentNode&&this.renderer.removeChild(this.tooltipElement.parentNode,this.tooltipElement),this.tooltipElement=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.clearShowTimeout()}ngOnDestroy(){this.hideTooltip()}};s.\u0275fac=function(i){return new(i||s)},s.\u0275dir=m({type:s,selectors:[["","appHoverTooltip",""]],hostBindings:function(i,o){i&1&&d("mouseenter",function(){return o.onMouseEnter()})("mouseleave",function(){return o.onMouseLeave()})},inputs:{tooltipText:[1,"appHoverTooltip","tooltipText"]}});var c=s;export{v as a,y as b,F as c,b as d,D as e,E as f,c as g}; +import{A as u,M as p,R as m,Va as h,ma as d,p as l}from"./chunk-LVL3PYF7.js";function v(e){if(!e.name||e.name.trim()==="")return"Field name cannot be empty";if(!["string","boolean","values"].includes(e.type))return`Invalid field type: ${e.type}`;if(e.type==="string"){if(e.maxLines!==void 0&&(e.maxLines<1||e.maxLines>1e3))return`maxLines must be between 1 and 1000, got ${e.maxLines}`;if(e.maxLength!==void 0&&(e.maxLength<1||e.maxLength>1e4))return`maxLength must be between 1 and 10000, got ${e.maxLength}`}if(e.type==="values"&&(!e.values||!Array.isArray(e.values)||e.values.length===0))return"Values field must have at least one value";if(!["user","admin","readadmin"].includes(e.scope))return`Invalid scope: ${e.scope}`;if(typeof e.required!="boolean")return"Required must be a boolean";if(e.helperText!==void 0&&e.helperText!==null){if(typeof e.helperText!="string")return"Helper text must be a string";if(e.helperText.length>500)return"Helper text cannot exceed 500 characters"}return null}function f(e,t){if(t.required){if(e==null||e==="")return`${t.name} is required`;if(typeof e=="string"&&e.trim()==="")return`${t.name} is required`}if(e==null||e==="")return null;if(t.type==="string"){if(typeof e!="string")return`${t.name} must be a string`;if(t.maxLength&&e.length>t.maxLength)return`${t.name} cannot exceed ${t.maxLength} characters`}else if(t.type==="boolean"){if(typeof e!="boolean")return`${t.name} must be a boolean`}else if(t.type==="values"&&(!t.values||!t.values.includes(e)))return`${t.name} has an invalid value`;return null}function y(e,t){let i=[],o=new Map(e.map(n=>[n.name,n.value]));for(let n of t){let r=o.get(n.name),a=f(r!=null?r:null,n);a&&i.push({fieldName:n.name,message:a})}return i}function F(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:(console.error("Parsed data is not an array"),[])}catch(t){return console.error("Failed to parse field values:",t),[]}}function b(e,t){switch(e){case"user":return"This question is not shared to the public";case"admin":return`${t} is only visible to Dust admins`;case"readadmin":return`${t} was supplied by a user but is now only visible to Dust admins`;default:return""}}function g(e){return e.type==="boolean"?!1:""}function D(e,t,i){let o=e.findIndex(n=>n.name===t);if(o>=0){let n=[...e];return n[o]={name:t,value:i},n}else return[...e,{name:t,value:i}]}function E(e,t){var o;let i=new Map((o=t==null?void 0:t.map(n=>[n.name,n.value]))!=null?o:[]);return e.map(n=>{var r;return{name:n.name,value:(r=i.get(n.name))!=null?r:g(n)}})}var s=class s{constructor(){this.tooltipText=h(void 0,{alias:"appHoverTooltip"});this.tooltipElement=null;this.hideTimeout=null;this.showTimeout=null;this.el=l(u);this.renderer=l(p)}onMouseEnter(){this.scheduleShow()}onMouseLeave(){this.clearShowTimeout(),this.hideTooltip()}scheduleShow(){this.clearShowTimeout(),this.showTimeout=setTimeout(()=>{this.showTooltip(),this.scheduleHide()},2e3)}clearShowTimeout(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null)}showTooltip(){if(this.tooltipText()===void 0||this.tooltipText()==="")return;this.hideTooltip(),this.tooltipElement=this.renderer.createElement("div"),this.renderer.addClass(this.tooltipElement,"hover-tooltip"),this.renderer.setProperty(this.tooltipElement,"textContent",this.tooltipText()),this.renderer.setStyle(this.tooltipElement,"cursor","pointer"),this.renderer.listen(this.tooltipElement,"click",()=>{this.hideTooltip()}),this.renderer.appendChild(document.body,this.tooltipElement);let t=this.el.nativeElement.getBoundingClientRect(),o=this.el.nativeElement.tagName.toLowerCase()==="ion-checkbox"?118:58;this.renderer.setStyle(this.tooltipElement,"position","fixed"),this.renderer.setStyle(this.tooltipElement,"top",`${t.top-o}px`),this.renderer.setStyle(this.tooltipElement,"left",`${t.left}px`)}scheduleHide(){this.hideTimeout&&clearTimeout(this.hideTimeout),this.hideTimeout=setTimeout(()=>{this.hideTooltip()},5e3)}hideTooltip(){this.tooltipElement&&(this.tooltipElement.parentNode&&this.renderer.removeChild(this.tooltipElement.parentNode,this.tooltipElement),this.tooltipElement=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.clearShowTimeout()}ngOnDestroy(){this.hideTooltip()}};s.\u0275fac=function(i){return new(i||s)},s.\u0275dir=m({type:s,selectors:[["","appHoverTooltip",""]],hostBindings:function(i,o){i&1&&d("mouseenter",function(){return o.onMouseEnter()})("mouseleave",function(){return o.onMouseLeave()})},inputs:{tooltipText:[1,"appHoverTooltip","tooltipText"]}});var c=s;export{v as a,y as b,F as c,b as d,D as e,E as f,c as g}; diff --git a/.admin-app/chunk-MTVNVIRQ.js b/.admin-app/chunk-3XGYA3SU.js similarity index 69% rename from .admin-app/chunk-MTVNVIRQ.js rename to .admin-app/chunk-3XGYA3SU.js index 0d014d3a..0b18c9f1 100644 --- a/.admin-app/chunk-MTVNVIRQ.js +++ b/.admin-app/chunk-3XGYA3SU.js @@ -1 +1 @@ -import{E as f,ja as b}from"./chunk-LIWDDRYP.js";import{K as u}from"./chunk-OQVFSD37.js";import{Mc as d,P as r,Ua as t,ca as s,cc as c,da as l,ea as p,jb as a,la as m,p as n}from"./chunk-FDEJMFAU.js";var e=class e{constructor(){this.api=n(u);this.router=n(a);this.title=t("");this.hideProfile=t(!1);this.buttons=t();b({ellipsisVertical:f})}open(i){this.api.moreButton.set({buttons:this.buttons(),event:i,hideProfile:this.hideProfile()})}};e.\u0275fac=function(o){return new(o||e)},e.\u0275cmp=r({type:e,selectors:[["app-side"]],inputs:{title:[1,"title"],hideProfile:[1,"hideProfile"],buttons:[1,"buttons"]},decls:2,vars:0,consts:[[3,"click"],["name","ellipsis-vertical"]],template:function(o,h){o&1&&(s(0,"ion-button",0),m("click",function(g){return h.open(g)}),p(1,"ion-icon",1),l())},dependencies:[d,c],encapsulation:2});var v=e;export{v as a}; +import{G as f,oa as b}from"./chunk-QF32E4V4.js";import{K as u}from"./chunk-TCALQ33I.js";import{Oc as d,P as r,Va as t,da as s,dc as c,ea as l,fa as p,kb as a,ma as m,p as n}from"./chunk-LVL3PYF7.js";var e=class e{constructor(){this.api=n(u);this.router=n(a);this.title=t("");this.hideProfile=t(!1);this.buttons=t();b({ellipsisVertical:f})}open(i){this.api.moreButton.set({buttons:this.buttons(),event:i,hideProfile:this.hideProfile()})}};e.\u0275fac=function(o){return new(o||e)},e.\u0275cmp=r({type:e,selectors:[["app-side"]],inputs:{title:[1,"title"],hideProfile:[1,"hideProfile"],buttons:[1,"buttons"]},decls:2,vars:0,consts:[[3,"click"],["name","ellipsis-vertical"]],template:function(o,h){o&1&&(s(0,"ion-button",0),m("click",function(g){return h.open(g)}),p(1,"ion-icon",1),l())},dependencies:[d,c],encapsulation:2});var v=e;export{v as a}; diff --git a/.admin-app/chunk-44GEUMMJ.js b/.admin-app/chunk-44GEUMMJ.js new file mode 100644 index 00000000..9f34cfb8 --- /dev/null +++ b/.admin-app/chunk-44GEUMMJ.js @@ -0,0 +1,3 @@ +import{c as u}from"./chunk-OZ2IKH4J.js";import{M as ue,oa as de}from"./chunk-QF32E4V4.js";import{K as me,e as f,g as A,v as ce}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as R,Ba as _,Bb as U,Ca as E,Cc as ne,Eb as j,Fc as re,Ga as h,Gc as ae,H as a,Ha as g,Ia as y,Ja as k,Kc as oe,P as W,Pc as le,Uc as se,Vc as pe,Xb as Y,Y as O,Z as H,_a as D,aa as C,ba as I,ca as d,da as o,dc as G,ea as l,ec as z,fa as V,fc as J,gc as K,hc as X,jc as Z,ka as M,ma as B,mc as $,oa as v,p as b,s as c,sa as P,sc as ee,t as m,ta as S,tc as te,ua as T,ub as x,vb as F,wb as N,wc as ie,xb as Q,yb as L}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as q}from"./chunk-LNJ3S2LQ.js";var ge=["name"],ye=["email"];function fe(s,n){if(s&1&&(o(0,"ion-select-option",13),_(1),l()),s&2){let t=n.$implicit;d("value",t),a(),E(t)}}function _e(s,n){if(s&1&&(o(0,"ion-select-option",13),_(1),l()),s&2){let t=n.$implicit;d("value",t),a(),E(t)}}function we(s,n){if(s&1){let t=M();o(0,"ion-item")(1,"ion-input",18),y("ngModelChange",function(r){c(t);let p=v();return g(p.helpRequest.campOrArt,r)||(p.helpRequest.campOrArt=r),m(r)}),l()()}if(s&2){let t=v();a(),d("label",k(t.getQuestion())),h("ngModel",t.helpRequest.campOrArt)}}var w=class w{constructor(){this.api=b(me);this.alert=b(oe);this.location=b(D);this.unknown="A burn not in dust yet";this.selectBurn="";this.selectTopic="";this.sending=!1;this.reset={name:"",email:"",burn:this.selectBurn,topic:this.selectTopic,description:"",campOrArt:""};this.helpRequest=this.reset;this.categories=["Event Registration","Camp Registration","Art Registration","Access to a Camp","Using Dust","Other Enquiry"];this.burns=[this.selectBurn];de({helpOutline:ue})}ngOnInit(){return q(this,null,function*(){this.helpRequest.email=this.api.userEmail(),this.helpRequest.burn=this.api.festivalTitle(),this.burns=(yield this.api.getUnAuthedBurns()).map(n=>n.name),this.burns.push(this.unknown)})}getQuestion(){let n=this.helpRequest.topic;return n==="Art Registration"?"What art is this about?":n==="Event Registration"?"What camp or art is this about?":n?"Is this related to a camp or art? If so, please specify":""}getHelperText(){return{"Event Registration":"Important: Don't forget to mention the camp or art associated with the event.","Camp Registration":"Important: Don't forget to mention your camp name.","Art Registration":"Important: Don't forget to mention your art piece name.","Access to a Camp":"Important: Don't forget to mention the camp name you need access to.","Using Dust":"Important: Describe the specific feature or page you need help with.","Other Enquiry":"Important: Don't forget to mention your camp name if applicable."}[this.helpRequest.topic]||"Important: Don't forget to mention your camp name"}submit(){return q(this,null,function*(){if(f(this.helpRequest.name)){yield u(this.alert,"Please enter your name.","Error"),yield A(200),this.name.setFocus();return}if(f(this.helpRequest.email)||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.helpRequest.email)){yield u(this.alert,"A valid email is required.","Error"),yield A(200),this.email.setFocus();return}if(f(this.helpRequest.description)){yield u(this.alert,"Description is required. Please provide a description of your enquiry.","Error");return}if(f(this.helpRequest.burn)){yield u(this.alert,"Please select a burn.","Error");return}if(f(this.helpRequest.topic)){yield u(this.alert,"Please select a topic.","Error");return}try{if(ce(this.helpRequest),!f(this.helpRequest.campOrArt)){let n=this.helpRequest.topic,t="";n==="Art Registration"?t=`Art: ${this.helpRequest.campOrArt}`:n==="Event Registration"?t=`Camp or Art: ${this.helpRequest.campOrArt}`:t=`Camp: ${this.helpRequest.campOrArt}`,this.helpRequest.description=`${t} + +${this.helpRequest.description}`}this.sending=!0,yield this.api.submitForm(this.helpRequest),this.helpRequest=this.reset,yield u(this.alert,"Your help request has been submitted. We will get back to you via email soon.","Success"),this.location.back(),this.sending=!1}catch{yield u(this.alert,"There was an error submitting your request. Please try again.","Error")}finally{}})}};w.\u0275fac=function(t){return new(t||w)},w.\u0275cmp=W({type:w,selectors:[["app-help"]],viewQuery:function(t,e){if(t&1&&(P(ge,5),P(ye,5)),t&2){let r;S(r=T())&&(e.name=r.first),S(r=T())&&(e.email=r.first)}},decls:35,vars:9,consts:[["name",""],["email",""],["color","primary"],["slot","start"],[3,"fullscreen"],[1,"border"],[3,"ngSubmit"],["lines","none"],["label","Your Name","labelPlacement","stacked","name","name","required","",3,"ngModelChange","ngModel"],["label","Email Address","labelPlacement","stacked","name","email","type","email","required","",3,"ngModelChange","ngModel"],["lines","none",1,"app-select"],[1,"select-container"],["placeholder","Select Burn","labelPlacement","stacked","interface","popover","label","Which burn is this about?","name","burn",1,"app-select",3,"ngModelChange","ngModel"],[3,"value"],["labelPlacement","stacked","interface","popover","label","What can we help with?","placeholder","Select Topic","name","category",1,"app-select",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Describe how we can help you?","name","description","rows","6","required","",3,"ngModelChange","helperText","ngModel"],[1,"center"],["type","submit",3,"disabled"],["labelPlacement","stacked","name","campOrArt",3,"ngModelChange","label","ngModel"]],template:function(t,e){if(t&1){let r=M();o(0,"ion-header")(1,"ion-toolbar",2)(2,"ion-buttons",3),V(3,"ion-back-button"),l(),o(4,"ion-title"),_(5,"Help"),l()()(),o(6,"ion-content",4)(7,"div",5)(8,"ion-card")(9,"ion-card-header")(10,"ion-card-title"),_(11,"Need Assistance?"),l()(),o(12,"ion-card-content")(13,"form",6),B("ngSubmit",function(){return c(r),m(e.submit())}),o(14,"ion-list",7)(15,"ion-item")(16,"ion-input",8,0),y("ngModelChange",function(i){return c(r),g(e.helpRequest.name,i)||(e.helpRequest.name=i),m(i)}),l()(),o(18,"ion-item")(19,"ion-input",9,1),y("ngModelChange",function(i){return c(r),g(e.helpRequest.email,i)||(e.helpRequest.email=i),m(i)}),l()(),o(21,"ion-item",10)(22,"div",11)(23,"ion-select",12),y("ngModelChange",function(i){return c(r),g(e.helpRequest.burn,i)||(e.helpRequest.burn=i),m(i)}),C(24,fe,2,2,"ion-select-option",13,R),l(),o(26,"ion-select",14),y("ngModelChange",function(i){return c(r),g(e.helpRequest.topic,i)||(e.helpRequest.topic=i),m(i)}),C(27,_e,2,2,"ion-select-option",13,R),l()()(),O(29,we,2,3,"ion-item"),o(30,"ion-item")(31,"ion-textarea",15),y("ngModelChange",function(i){return c(r),g(e.helpRequest.description,i)||(e.helpRequest.description=i),m(i)}),l()()(),o(32,"div",16)(33,"ion-button",17),_(34,"Submit Request"),l()()()()()()()}t&2&&(a(6),d("fullscreen",!0),a(10),h("ngModel",e.helpRequest.name),a(3),h("ngModel",e.helpRequest.email),a(4),h("ngModel",e.helpRequest.burn),a(),I(e.burns),a(2),h("ngModel",e.helpRequest.topic),a(),I(e.categories),a(2),H(e.getQuestion()?29:-1),a(2),d("helperText",e.getHelperText()),h("ngModel",e.helpRequest.description),a(2),d("disabled",e.sending))},dependencies:[Z,X,j,L,x,F,U,Q,N,ee,ae,z,Y,re,G,$,J,K,ie,te,le,pe,se,ne],styles:[".required[_ngcontent-%COMP%]{color:var(--ion-color-danger)}p[_ngcontent-%COMP%]{margin-bottom:var(--spacing-1xl)}.select-container[_ngcontent-%COMP%]{display:flex;width:100%;gap:var(--spacing-lg)}@media (max-width: 500px){.select-container[_ngcontent-%COMP%]{flex-direction:column;height:200px}}ion-select[_ngcontent-%COMP%]{width:100%}"]});var he=w;export{he as HelpPage}; diff --git a/.admin-app/chunk-YJNLRALT.js b/.admin-app/chunk-4BHZ5BWI.js similarity index 92% rename from .admin-app/chunk-YJNLRALT.js rename to .admin-app/chunk-4BHZ5BWI.js index 2f6221bf..5e5b3857 100644 --- a/.admin-app/chunk-YJNLRALT.js +++ b/.admin-app/chunk-4BHZ5BWI.js @@ -1 +1 @@ -import{K as x,g as u}from"./chunk-OQVFSD37.js";import{a as h}from"./chunk-PFLI22GG.js";import{Aa as t,Dc as m,P as l,ba as c,ca as i,da as o,ea as s,jb as g,lc as f,p as r}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as p}from"./chunk-LNJ3S2LQ.js";var a=class a{constructor(){this.router=r(g);this.api=r(x)}ngOnInit(){return p(this,null,function*(){if(h.getPlatform()!=="web"){this.router.navigateByUrl("/all");return}if(window.location.search.includes("?app")){let e=navigator.userAgent.toLowerCase(),n=e.indexOf("android")>-1,d=e.indexOf("iphone")>-1;n&&(window.location.href="https://play.google.com/store/apps/details?id=nexus.concepts.dust"),d&&(window.location.href="https://apps.apple.com/us/app/dust-a-guide-for-burners/id6456943178")}yield u(500),this.edit()})}edit(){let e=this.api.isLocal()||this.api.isStaging()||this.api.isInIframe()?"/all":"https://edit.dust.events/all";document.location.href=e}};a.\u0275fac=function(n){return new(n||a)},a.\u0275cmp=l({type:a,selectors:[["app-home"]],decls:15,vars:1,consts:[["color","primary",1,"ion-text-center","ion-padding",3,"fullscreen"],[1,"pad-3"],[1,"pad-1"],[1,"ion-text-center","ion-padding",2,"padding-top","50vh"],[2,"font-size","medium","opacity","0.5"],["href","https://burningman.org/"]],template:function(n,d){n&1&&(i(0,"ion-content",0),s(1,"div",1),i(2,"h1"),t(3,"dust."),o(),i(4,"ion-text")(5,"b"),t(6,"dust"),o(),t(7," is a guide for burners to find events, camps and art."),o(),s(8,"div",2),i(9,"div",3)(10,"ion-text",4),t(11,"* This app is not affiliated with or endorsed by "),i(12,"a",5),t(13,"Burning Man Project"),o(),t(14," or Black Rock City LLC."),o()()()),n&2&&c("fullscreen",!0)},dependencies:[f,m],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-display);font-family:Nunito}h2[_ngcontent-%COMP%]{font-size:var(--font-size-large);font-family:Nunito}ion-button[_ngcontent-%COMP%]{color:var(--ion-color-primary);--background: white}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-large)}ion-text.small[_ngcontent-%COMP%]{font-size:var(--font-size-base)}.flex[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.rows[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-2xl));flex-direction:column;padding-left:10vw;padding-right:10vw;text-align:center;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.badge[_ngcontent-%COMP%]{display:inline-block;overflow:hidden;border-radius:var(--br-2xl);width:280px;height:95px;margin-top:var(--spacing-xs);padding-left:var(--spacing-base)}.badge2[_ngcontent-%COMP%]{display:inline-block;overflow:hidden;border-radius:var(--br-2xl);width:250px;height:75px;padding-right:var(--spacing-base)}a[_ngcontent-%COMP%]{color:#fff}.pad-1[_ngcontent-%COMP%]{padding:var(--spacing-base)}.pad-2[_ngcontent-%COMP%]{padding:var(--spacing-2xl)}.pad-3[_ngcontent-%COMP%]{padding:var(--spacing-3xl)}@media (max-width: 640px){.pad3[_ngcontent-%COMP%]{padding:var(--spacing-xl)}}"]});var v=a;export{v as HomePage}; +import{K as x,g as u}from"./chunk-TCALQ33I.js";import{a as h}from"./chunk-PFLI22GG.js";import{Ba as t,Ec as m,P as l,ca as c,da as i,ea as o,fa as s,kb as g,mc as f,p as r}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as p}from"./chunk-LNJ3S2LQ.js";var a=class a{constructor(){this.router=r(g);this.api=r(x)}ngOnInit(){return p(this,null,function*(){if(h.getPlatform()!=="web"){this.router.navigateByUrl("/all");return}if(window.location.search.includes("?app")){let e=navigator.userAgent.toLowerCase(),n=e.indexOf("android")>-1,d=e.indexOf("iphone")>-1;n&&(window.location.href="https://play.google.com/store/apps/details?id=nexus.concepts.dust"),d&&(window.location.href="https://apps.apple.com/us/app/dust-a-guide-for-burners/id6456943178")}yield u(500),this.edit()})}edit(){let e=this.api.isLocal()||this.api.isStaging()||this.api.isInIframe()?"/all":"https://edit.dust.events/all";document.location.href=e}};a.\u0275fac=function(n){return new(n||a)},a.\u0275cmp=l({type:a,selectors:[["app-home"]],decls:15,vars:1,consts:[["color","primary",1,"ion-text-center","ion-padding",3,"fullscreen"],[1,"pad-3"],[1,"pad-1"],[1,"ion-text-center","ion-padding",2,"padding-top","50vh"],[2,"font-size","medium","opacity","0.5"],["href","https://burningman.org/"]],template:function(n,d){n&1&&(i(0,"ion-content",0),s(1,"div",1),i(2,"h1"),t(3,"dust."),o(),i(4,"ion-text")(5,"b"),t(6,"dust"),o(),t(7," is a guide for burners to find events, camps and art."),o(),s(8,"div",2),i(9,"div",3)(10,"ion-text",4),t(11,"* This app is not affiliated with or endorsed by "),i(12,"a",5),t(13,"Burning Man Project"),o(),t(14," or Black Rock City LLC."),o()()()),n&2&&c("fullscreen",!0)},dependencies:[f,m],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-display);font-family:Nunito}h2[_ngcontent-%COMP%]{font-size:var(--font-size-large);font-family:Nunito}ion-button[_ngcontent-%COMP%]{color:var(--ion-color-primary);--background: white}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-large)}ion-text.small[_ngcontent-%COMP%]{font-size:var(--font-size-base)}.flex[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.rows[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-2xl));flex-direction:column;padding-left:10vw;padding-right:10vw;text-align:center;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.badge[_ngcontent-%COMP%]{display:inline-block;overflow:hidden;border-radius:var(--br-2xl);width:280px;height:95px;margin-top:var(--spacing-xs);padding-left:var(--spacing-base)}.badge2[_ngcontent-%COMP%]{display:inline-block;overflow:hidden;border-radius:var(--br-2xl);width:250px;height:75px;padding-right:var(--spacing-base)}a[_ngcontent-%COMP%]{color:#fff}.pad-1[_ngcontent-%COMP%]{padding:var(--spacing-base)}.pad-2[_ngcontent-%COMP%]{padding:var(--spacing-2xl)}.pad-3[_ngcontent-%COMP%]{padding:var(--spacing-3xl)}@media (max-width: 640px){.pad3[_ngcontent-%COMP%]{padding:var(--spacing-xl)}}"]});var v=a;export{v as HomePage}; diff --git a/.admin-app/chunk-4JENLKOF.js b/.admin-app/chunk-4JENLKOF.js deleted file mode 100644 index e7f9829d..00000000 --- a/.admin-app/chunk-4JENLKOF.js +++ /dev/null @@ -1 +0,0 @@ -import{a as rt}from"./chunk-YLPHNW7F.js";import{a as it}from"./chunk-KCPLCCSF.js";import{a as nt}from"./chunk-5B2MUMUK.js";import{K as et}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as E,Aa as c,Ba as g,Ca as y,Db as j,Dc as Y,E as M,Ec as Z,Fc as tt,H as o,P as V,Ua as B,Wb as D,X as _,Y as x,Za as O,aa as P,ba as A,bc as N,ca as s,cc as Q,da as l,dc as W,ea as C,ja as k,la as U,lc as z,na as u,p as F,ra as R,rc as q,s as b,sa as L,sc as H,t as S,ta as $,tc as G,uc as J,vc as K,yc as X}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";function ot(r,n){let t=["name","description","art_type","contact_email","artist","url","category","externalId"],e=[];for(let i of t){let a=at(r[i]),p=at(n[i]);a!==p&&e.push(i)}return e}function st(r,n){return n?ot(r,n).length===0?"existing":"updated":"new"}function lt(r,n){return ot(r,n)}function at(r){return r==null?"":String(r).trim()}var mt=["fileUpload"],T=(r,n)=>n.art.name;function gt(r,n){if(r&1&&(C(0,"ion-progress-bar",9),s(1,"ion-text"),c(2),l(),C(3,"app-spinner"),s(4,"div",10),C(5,"img",11),l()),r&2){let t=u();A("value",t.progress),o(2),g(t.importing),o(3),A("src",t.url,M)}}function ut(r,n){if(r&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),c(4),l(),s(5,"ion-badge",15),c(6,"New"),l()(),s(7,"p"),c(8),l()()()),r&2){let t=n.$implicit;o(4),g(t.art.name),o(4),g(t.art.description)}}function ft(r,n){if(r&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),c(3),l()()(),E(4,ut,9,2,"ion-item",null,T)),r&2){let t=u(2);o(3),y("New Art (",t.groupedArt.get("new").length,")"),o(),P(t.groupedArt.get("new"))}}function ht(r,n){if(r&1&&(s(0,"p",17),c(1),l()),r&2){let t=u().$implicit;o(),y("Changed: ",t.changedFields.join(", "))}}function _t(r,n){if(r&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),c(4),l(),s(5,"ion-badge",16),c(6,"Updated"),l()(),s(7,"p"),c(8),l(),_(9,ht,2,1,"p",17),l()()),r&2){let t=n.$implicit;o(4),g(t.art.name),o(4),g(t.art.description),o(),x(t.changedFields&&t.changedFields.length>0?9:-1)}}function xt(r,n){if(r&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),c(3),l()()(),E(4,_t,10,3,"ion-item",null,T)),r&2){let t=u(2);o(3),y("Updated Art (",t.groupedArt.get("updated").length,")"),o(),P(t.groupedArt.get("updated"))}}function At(r,n){if(r&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),c(4),l(),s(5,"ion-badge",18),c(6,"Existing"),l()(),s(7,"p"),c(8),l()()()),r&2){let t=n.$implicit;o(4),g(t.art.name),o(4),g(t.art.description)}}function vt(r,n){if(r&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),c(3),l()()(),E(4,At,9,2,"ion-item",null,T)),r&2){let t=u(2);o(3),y("Existing Art (",t.groupedArt.get("existing").length,")"),o(),P(t.groupedArt.get("existing"))}}function It(r,n){if(r&1){let t=k();s(0,"div",7)(1,"div",12)(2,"ion-button",13),U("click",function(){b(t);let i=u();return S(i.doImport())}),c(3,"Import from CSV"),l()(),s(4,"ion-list"),_(5,ft,6,1),_(6,xt,6,1),_(7,vt,6,1),l()()}if(r&2){let t=u();o(5),x(t.groupedArt.get("new")&&t.groupedArt.get("new").length>0?5:-1),o(),x(t.groupedArt.get("updated")&&t.groupedArt.get("updated").length>0?6:-1),o(),x(t.groupedArt.get("existing")&&t.groupedArt.get("existing").length>0?7:-1)}}var v=class v{constructor(){this.api=F(et);this.location=F(O);this.vanity=B("");this.isAdmin=!1;this.busy=!1;this.art=[];this.artWithIds=new Map;this.groupedArt=new Map;this.title="Import Art";this.importing="";this.progress=0;this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);this.url=""}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(n){return h(this,null,function*(){let t=n.target.files[0];if(!t)return;let e=new FileReader;e.onload=i=>h(this,null,function*(){var p;let a=(p=i.target)==null?void 0:p.result;yield this.parseCSV(a);try{this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")}catch(f){console.info(f)}}),e.readAsText(t)})}parseCSV(n){return h(this,null,function*(){let t=rt(n);console.info(t),this.art=[],this.groupedArt.clear();let e=this.mapColumns(t);if(e){let i=[];for(let d of t){let m=yield this.importArt(d,e);!!m.name&&i.push(m)}i.sort((d,m)=>d.name>m.name?1:-1);let a=yield this.api.art({cached:!1}),p=new Map,f=new Map;for(let d of a)p.set(d.name.toLowerCase(),d),d.externalId&&f.set(d.externalId.toLowerCase(),d);let I=new Map;I.set("existing",[]),I.set("new",[]),I.set("updated",[]);for(let d of i){let m=p.get(d.name.toLowerCase());!m&&d.externalId&&(m=f.get(d.externalId.toLowerCase()));let w=st(d,m),ct=w==="updated"?lt(d,m):void 0;m!=null&&m.id&&this.artWithIds.set(d.name.toLowerCase(),m.id);let pt={status:w,art:d,changedFields:ct};I.get(w).push(pt),this.art.push(d)}this.groupedArt=I,this.title=`Import ${this.art.length} art items`}})}import(){return h(this,null,function*(){this.busy=!0,this.title="Importing...";let n=0,t=0,e=this.art.length;for(;this.art.length>0;){let i;try{if(t++,i=this.art.pop(),i){let a=i.imageUrl;i.imageUrl=void 0;let p=this.artWithIds.get(i.name.toLowerCase());p&&(i.id=p),this.importing=i.name,this.progress=t/e;let f=yield this.api.addArt(i);if(n++,a&&f.id){i.id=f.id;try{yield this.importImage(a,i)}catch{console.error(`Unable to import image for art ${i.name}: ${a}`)}}}}catch{console.error(`Failed to import ${i==null?void 0:i.name}: ${i==null?void 0:i.description}`)}}this.api.sendMessage(`Imported ${n} of ${t} art items.`),this.busy=!1,this.api.clearCache(),this.location.back()})}toUrl(n){let t=!1,e="";for(let i of n)if(i=="(")t=!0;else if(i==")")if(t=!1,e.length<3)e="";else return e;else t&&(e+=i);return e}importImage(n,t){return h(this,null,function*(){let e=this.toUrl(n),a=yield(yield fetch(e)).blob(),p=yield it(a,{quality:75,width:300});this.url=URL.createObjectURL(p),t.imageUrl=yield this.api.setImage(p,t.id),yield this.api.addArt(t)})}mapColumns(n){if(n.length==0)return;let t=n[0],e={pin:"",name:"",category:"",id:void 0,art_type:"Art"};for(let i of Object.keys(t)){let a=i.toLowerCase();a.includes("name")&&!e.name&&!a.includes("artist name")&&(e.name=i),a=="title"&&!e.name&&(e.name=i),a.includes("art project")&&!e.name&&(e.name=i),a.includes("description")&&(e.description=i),a.includes("type")&&(e.art_type=i),(a.includes("web")||a.includes("url"))&&(e.url=i),a.includes("image")&&(e.image=i),a.includes("logo")&&(e.logo=i),a.includes("artist")&&(e.artist=i),a.includes("email")&&(e.contact_email=i),(a.includes("#")||a=="id")&&(e.externalId=i)}return console.log("map",e),e}importArt(n,t){return h(this,null,function*(){let e=yield this.api.getArt(void 0);e.name=n[t.name],t.description?e.description=n[t.description]:e.description=`Details on ${e.name} coming soon...`,t.externalId&&(e.externalId=n[t.externalId]),t.artist&&(e.artist=n[t.artist]),t.url&&(e.url=n[t.url]),t.art_type&&(e.art_type=n[t.art_type]),t.contact_email&&(e.contact_email=n[t.contact_email]);let i=t.image,a=t.logo;return i&&(e.imageUrl=n[i]),a&&this.isBlank(e.imageUrl)&&(e.imageUrl=n[a]),e})}isBlank(n){return!n||n.trim()==""}};v.\u0275fac=function(t){return new(t||v)},v.\u0275cmp=V({type:v,selectors:[["app-import-art"]],viewQuery:function(t,e){if(t&1&&R(mt,7),t&2){let i;L(i=$())&&(e.fileUpload=i.first)}},inputs:{vanity:[1,"vanity"]},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],["slot","end",3,"hidden"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],[3,"value"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],[3,"click"],[1,"art-header"],["color","success"],["color","warning"],[1,"changed-fields"],["color","medium"]],template:function(t,e){if(t&1){let i=k();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),C(3,"ion-back-button"),l(),s(4,"ion-title",3),c(5),l(),s(6,"ion-buttons",4)(7,"ion-button",5),U("click",function(){return b(i),S(e.import())}),c(8,"Import"),l()()()(),s(9,"ion-content",6),_(10,gt,6,3)(11,It,8,3,"div",7),s(12,"input",8,0),U("change",function(p){return b(i),S(e.onFileSelected(p))}),l()()}t&2&&(o(5),g(e.title),o(),A("hidden",e.art.length===0),o(),A("disabled",e.busy),o(2),A("fullscreen",!0),o(),x(e.busy?10:11))},dependencies:[X,Y,Q,K,J,H,D,W,z,q,Z,tt,j,nt,G,N],styles:[".art-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.art-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;flex:1}.changed-fields[_ngcontent-%COMP%]{color:#ff9500;font-size:var(--font-size-xl);margin-top:var(--spacing-base);font-weight:500}"]});var dt=v;export{dt as ImportArtPage}; diff --git a/.admin-app/chunk-4JLQIYCO.js b/.admin-app/chunk-4JLQIYCO.js new file mode 100644 index 00000000..453545ee --- /dev/null +++ b/.admin-app/chunk-4JLQIYCO.js @@ -0,0 +1 @@ +import{a as D}from"./chunk-3OSW3EO7.js";import{oa as S,r as y}from"./chunk-QF32E4V4.js";import{E as T}from"./chunk-TCALQ33I.js";import{Ba as d,Da as b,Ec as w,H as u,P as v,Sa as g,Ua as I,Va as a,Y as f,Z as h,da as n,dc as _,ea as i,fc as M,gc as k,ka as x,ma as C,oa as r,p,s,t as l}from"./chunk-LVL3PYF7.js";function P(c,t){if(c&1){let e=x();n(0,"ion-card",0)(1,"ion-card-content",1)(2,"div",2)(3,"ion-text"),d(4),i(),n(5,"ion-button",3),C("click",function(){s(e);let A=r();return l(A.onApprove())}),d(6,"Approve"),i()()()()}if(c&2){let e=r();u(4),b(" ",e.moderationText(),". Please review. ")}}var o=class o{constructor(){this.moderationService=p(D);this.visible=a(!0);this.moderationId=a(void 0);this.approve=I();this.moderationText=g(()=>this.moderationService.getModerationText(this.moderationId()));S({checkmarkOutline:y})}shouldShow(){let t=this.moderationId();return this.visible()&&!T(t)&&t!==0}onApprove(){this.approve.emit()}};o.\u0275fac=function(e){return new(e||o)},o.\u0275cmp=v({type:o,selectors:[["app-moderation-check"]],inputs:{visible:[1,"visible"],moderationId:[1,"moderationId"]},outputs:{approve:"approve"},decls:1,vars:1,consts:[["color","primary",1,"form"],[1,"form"],[1,"moderation-chip"],["color","light",3,"click"]],template:function(e,m){e&1&&f(0,P,7,1,"ion-card",0),e&2&&h(m.shouldShow()?0:-1)},dependencies:[_,w,M,k],styles:[".moderation-chip[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px}"]});var N=o;export{N as a}; diff --git a/.admin-app/chunk-4XFTJEYH.js b/.admin-app/chunk-4XFTJEYH.js deleted file mode 100644 index a18e82d7..00000000 --- a/.admin-app/chunk-4XFTJEYH.js +++ /dev/null @@ -1 +0,0 @@ -import{K as X}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as A,Aa as b,Ba as O,Ca as U,Db as F,E as C,Ec as q,Fc as J,G as k,H as r,P as I,Ua as M,Wb as N,X as v,Y as P,Za as B,_ as T,aa as E,ba as d,ca as o,cc as $,da as l,dc as H,ea as x,gb as L,ja as _,jb as D,la as g,lc as Q,na as f,p as u,pc as W,ra as S,rc as j,s as p,sa as V,t as c,ta as R,xa as w,za as z}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var ee=["map"];function te(s,t){if(s&1){let e=_();o(0,"div",12),g("click",function(){let n=p(e).$implicit,a=f();return c(a.select(n))}),o(1,"div",13),b(2),l()()}if(s&2){let e=t.$implicit;z(e.selected?"pin pin-select":"pin"),w("left",e.x+"px")("top",e.y+"px"),d("title",e.label),r(2),O(e.label)}}function ie(s,t){if(s&1&&x(0,"div",14),s&2){let e=f();w("left",e.pin.x+"px")("top",e.pin.y+"px"),d("title",e.pin.label)}}function ne(s,t){if(s&1){let e=_();o(0,"ion-footer",11)(1,"ion-button",4),g("click",function(){p(e);let n=f();return c(n.removePin())}),b(2,"Remove Pin"),l()()}if(s&2){let e=f();r(),d("disabled",e.busy)}}var h=class h{constructor(){this.api=u(X);this.router=u(D);this.sanitizer=u(L);this.location=u(B);this.vanity=M();this.id=M();this.artItem={name:"",category:"",description:"",pin:"",id:void 0,contact_email:"",art_type:""};this.mapUri="";this.pt={x:0,y:0};this.busy=!1;this.pins=[];this.art=[]}ionViewWillEnter(){return y(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.artItem=yield this.api.getArt(this.id());let t=yield this.api.getMap();t.base64?this.mapUri=this.sanitizer.bypassSecurityTrustUrl(t.base64):this.mapUri=this.api.imageURL(`${this.vanity()}/${t.filename}`),this.art=yield this.api.art({cached:!0})})}onResize(){this.pins=this.getPins(this.art,this.artItem)}onMapLoad(){this.pins=this.getPins(this.art,this.artItem)}select(t){this.selectedPin&&(this.selectedPin.selected=!1),t.selected=!0,this.artItem=t.art,this.selectedPin=t,console.log("Selected pin:",t)}mapPoint(t){let e=t.clientX,i=t.clientY,a=this.map.nativeElement.getBoundingClientRect(),m=(e-a.x)*1e4/a.width,G=(i-a.y)*1e4/a.height;this.pt={x:Math.ceil(m),y:Math.ceil(G)},this.pin={x:this.pt.x*this.width()/1e4,y:this.pt.y*this.height()/1e4,label:this.artItem.name,pt:this.pt,changed:!0};let K=this.pin.x,Z=this.pin.y;return this.selectedPin&&(this.selectedPin.selected=!1,this.selectedPin.changed=!0,this.selectedPin.pt=this.pt),setTimeout(()=>{this.selectedPin&&(this.selectedPin.x=K,this.selectedPin.y=Z)},500),!1}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}getPins(t,e){let i=[];for(let n of t)if(n.pin&&n.pin.trim()!=""){let a=JSON.parse(n.pin),m=n.id===(e==null?void 0:e.id);i.push({x:a.x*this.width()/1e4,y:a.y*this.height()/1e4,label:n.name,art:n,selected:m}),m&&(this.selectedPin=i[i.length-1])}return i}save(){return y(this,null,function*(){this.busy=!0;try{let t=0;for(let e of this.pins)if(e.changed){if(console.log(e),!e.pt){this.api.sendMessage(`Error: No position for ${e.art.name}`,0,"Error"),this.busy=!1;return}this.api.sendMessage(`Saving ${e.art.name}...`,1,"Saving"),yield this.api.placeArt(e.art.id,e.pt),t++}t||(yield this.api.placeArt(this.id(),this.pt)),this.api.clearCache(),this.location.back(),this.location.back()}finally{this.busy=!1}})}removePin(){return y(this,null,function*(){this.busy=!0;try{yield this.api.placeArt(this.id(),void 0),this.api.clearCache(),this.location.back()}finally{this.busy=!1}})}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=I({type:h,selectors:[["app-art-map"]],viewQuery:function(e,i){if(e&1&&S(ee,5),e&2){let n;V(n=R())&&(i.map=n.first)}},inputs:{vanity:[1,"vanity"],id:[1,"id"]},decls:18,vars:6,consts:[["map",""],["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"page2"],[1,"map"],[3,"title","left","top","class"],[1,"placed","pin",3,"title","left","top"],[3,"load","resize","click","src"],[1,"ion-padding","ion-text-center"],[3,"click","title"],[1,"label"],[1,"placed","pin",3,"title"]],template:function(e,i){if(e&1){let n=_();o(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),o(4,"ion-title"),b(5),l(),o(6,"ion-buttons",3)(7,"ion-button",4),g("click",function(){return p(n),c(i.save())}),b(8,"Save"),l()()()(),o(9,"ion-content",5)(10,"div",6)(11,"div",7),A(12,te,3,8,"div",8,T),v(14,ie,1,5,"div",9),l(),o(15,"img",10,0),g("load",function(){return p(n),c(i.onMapLoad())})("resize",function(){return p(n),c(i.onResize())},k)("click",function(m){return p(n),c(i.mapPoint(m))}),l()()(),v(17,ne,3,1,"ion-footer",11)}e&2&&(r(5),U("Place ",i.artItem.name," on Map"),r(2),d("disabled",i.busy),r(2),d("fullscreen",!0),r(3),E(i.pins),r(2),P(i.pin?14:-1),r(),d("src",i.mapUri,C),r(2),P(i.artItem.pin&&i.artItem.pin.length>0?17:-1))},dependencies:[W,F,j,J,H,N,q,$,Q],styles:["img[_ngcontent-%COMP%]{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.placed[_ngcontent-%COMP%]{background-color:red!important;border:2px solid white!important;width:15px;height:15px;border-radius:var(--br-2xl)}.pin[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:var(--br-xl);background-color:#fff;border:2px solid rgb(255,116,116);position:absolute}.pin-select[_ngcontent-%COMP%]{border:3px solid red!important}.pin[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{visibility:hidden;width:200px;margin-left:var(--spacing-base);margin-top:calc(-1 * var(--spacing-xs));-webkit-text-stroke-width:4px;-webkit-text-stroke-color:rgba(0,0,0,.1);text-stroke-width:4px;text-stroke-color:rgba(0,0,0,.1);color:#fff;font-weight:700}.pin[_ngcontent-%COMP%]:hover .label[_ngcontent-%COMP%]{visibility:visible}.map[_ngcontent-%COMP%]{position:absolute}"]});var Y=h;export{Y as ArtMapPage}; diff --git a/.admin-app/chunk-CJKTJYPA.js b/.admin-app/chunk-4ZMBZXZ2.js similarity index 92% rename from .admin-app/chunk-CJKTJYPA.js rename to .admin-app/chunk-4ZMBZXZ2.js index 88ab42ad..07dd0b3b 100644 --- a/.admin-app/chunk-CJKTJYPA.js +++ b/.admin-app/chunk-4ZMBZXZ2.js @@ -1 +1 @@ -import{a as et}from"./chunk-OIMHMYK4.js";import{a as tt}from"./chunk-GPVDUW6Q.js";import{c as l}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import"./chunk-DUKSTT3K.js";import{R as Q,ia as X,j as J,ja as Z}from"./chunk-LIWDDRYP.js";import{K as q,g as Y,l as j}from"./chunk-OQVFSD37.js";import{b as w}from"./chunk-PFLI22GG.js";import{Aa as u,Ba as P,Db as T,Ec as K,Fc as R,H as r,Mc as H,P as E,Wb as M,X as k,Y as C,ba as d,ca as o,cc as V,da as a,dc as $,ea as m,ec as L,fc as O,gc as z,hb as N,ic as D,ja as v,kb as A,la as f,lc as F,na as c,nb as B,nc as U,oc as W,p as _,rc as G,s as h,t as g,w as I}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as p}from"./chunk-LNJ3S2LQ.js";var x=w("Geolocation",{web:()=>import("./chunk-UUUQKWSW.js").then(i=>new i.GeolocationWeb)});var y=w("Network",{web:()=>import("./chunk-FT74B6LB.js").then(i=>new i.NetworkWeb)});var S=w("KeepAwake",{web:()=>import("./chunk-27YGL33L.js").then(i=>new i.KeepAwakeWeb)});function nt(i,t){if(i&1){let e=v();o(0,"ion-fab",9)(1,"ion-buttons")(2,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkLocation())}),m(3,"ion-icon",14),a(),o(4,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkNetwork())}),m(5,"ion-icon",15),a(),o(6,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkAwake())}),m(7,"ion-icon",16),a()()()}if(i&2){let e=c();r(2),d("disabled",!e.running)("color",e.location?"tertiary":e.running?"warning":"light"),r(2),d("disabled",!e.running)("color",e.wifi?"tertiary":e.running?"warning":"light"),r(2),d("disabled",!e.running)("color",e.awake?"tertiary":e.running?"warning":"light")}}function ot(i,t){i&1&&(o(0,"ion-button",12),u(1,"Connecting"),a())}function at(i,t){if(i&1){let e=v();o(0,"ion-button",18),f("click",function(){h(e);let s=c(2);return g(s.start())}),u(1,"Start"),a()}}function rt(i,t){if(i&1){let e=v();o(0,"ion-button",18),f("click",function(){h(e);let s=c(2);return g(s.stop())}),u(1,"Stop"),a()}}function st(i,t){if(i&1&&k(0,at,2,0,"ion-button",17)(1,rt,2,0,"ion-button",17),i&2){let e=c();C(e.running?1:0)}}var b=class b{constructor(){this.running=!1;this.processing=!1;this.wifi=!1;this.location=!1;this.apiError=!1;this.awake=!1;this.message=I("");this.route=_(N);this.api=_(q);this.alert=_(tt);Z({locationSharp:Q,wifiSharp:X,cafeSharp:J})}ngOnInit(){return p(this,null,function*(){this.artId=j(this.route.snapshot.queryParams.art),this.art=this.artId?yield this.api.getArt(this.artId):void 0,this.setMessage(),y.addListener("networkStatusChange",t=>{this.processNetwork(t)}),yield Y(500),this.start()})}start(){return p(this,null,function*(){try{this.processing=!0,this.watchId=yield x.watchPosition({},t=>{if(!t){this.location=!1,console.error("No position");return}this.processPosition(t)}),this.processPosition(yield x.getCurrentPosition()),this.running=!0,this.processNetwork(yield y.getStatus()),yield this.keepAwake(!0)}catch(t){yield l(this.alert,`Unable to start geolocation watching: ${JSON.stringify(t)}`,"Error")}finally{this.processing=!1}})}checkNetwork(){var n;if(!this.connectionStatus){l(this.alert,"Network is disabled.");return}let t="";switch(this.connectionStatus.connectionType){case"wifi":t="WiFi ";break;case"cellular":t="Cellular ";break;case"none":t="";break;default:t="";break}let e=`${t}Network is ${this.connectionStatus.connected?"connected":"disconnected"}.`;this.apiError&&this.connectionStatus.connected&&(e+=`Network appears to be connected but unable to broadcast ${(n=this.art)==null?void 0:n.name}'s location. Possible bad cell service or backend error.`),l(this.alert,e,"Network Status")}checkAwake(){return p(this,null,function*(){(yield S.isSupported()).isSupported?l(this.alert,"Your device supports keeping the screen awake.","Awake Status"):l(this.alert,"Your device does not support keeping the screen awake.","Error")})}checkLocation(){if(!this.position){l(this.alert,"Location is disabled.");return}l(this.alert,`Last location was ${this.position.coords.latitude}, ${this.position.coords.longitude} at ${this.timeStamp()}.`,"Location Status")}image(){let t=this.art;return t?t.imageUrl?this.api.imageURL(t.imageUrl):`./assets/${t.art_type?`${t.art_type}`.toLowerCase().replace(/ /g,"-"):"unknown"}.svg`:"./assets/mutant-vehicle.svg"}processPosition(t){console.log(`Processing position ${t}`),this.position=t,this.broadcast(t),this.setMessage()}processNetwork(t){this.wifi=t.connected,this.connectionStatus=t}timeStamp(){var e;return new Date(((e=this.position)==null?void 0:e.timestamp)||0).toLocaleTimeString()}setMessage(){var t,e,n;this.apiError&&this.message.set(`Error: Unable to broadcast ${(t=this.art)==null?void 0:t.name}'s location to the dust app.`),this.position?(this.message.set(`${(e=this.art)==null?void 0:e.name}'s location is being broadcast to the dust app.`),this.location=!0):(this.message.set(`This will broadcast the location of ${(n=this.art)==null?void 0:n.name} so that users of the dust app can find it on the map.`),this.location=!1)}broadcast(t){return p(this,null,function*(){if(!this.art){console.error("No art");return}try{yield this.api.broadcast(this.art,t),this.apiError=!1,this.setMessage()}catch{this.wifi=!1,this.apiError=!0,this.setMessage()}})}keepAwake(t){return p(this,null,function*(){t?(this.awake=!1,yield S.keepAwake(),this.awake=!0):this.awake&&(yield S.allowSleep(),this.awake=!1)})}stop(){return p(this,null,function*(){this.watchId&&(yield x.clearWatch({id:this.watchId})),this.position=void 0,this.running=!1,this.setMessage(),yield this.keepAwake(!1)})}};b.\u0275fac=function(e){return new(e||b)},b.\u0275cmp=E({type:b,selectors:[["app-broadcast"]],decls:22,vars:7,consts:[[3,"translucent"],["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"fullscreen"],[1,"pad-below","grid1"],[1,"grid-item"],[3,"src"],["horizontal","center",2,"margin-top","-60px"],[1,"message"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["shape","round","size","large","color","light"],[3,"click","disabled","color"],["name","location-sharp"],["name","wifi-sharp"],["name","cafe-sharp"],["shape","round","size","large","color","primary"],["shape","round","size","large","color","primary",3,"click"]],template:function(e,n){e&1&&(o(0,"ion-header",0)(1,"ion-toolbar",1)(2,"ion-buttons",2),m(3,"ion-back-button"),a(),o(4,"ion-title",3),u(5,"Broadcast Location"),a(),m(6,"ion-buttons",4),a()(),o(7,"ion-content",5)(8,"div",6)(9,"div",7)(10,"ion-card"),m(11,"app-img",8),o(12,"ion-card-header"),k(13,nt,8,6,"ion-fab",9),o(14,"ion-card-title"),u(15),a()(),o(16,"ion-card-content")(17,"div",10),u(18),a(),o(19,"div",11),k(20,ot,2,0,"ion-button",12)(21,st,2,1),a()()()()()()),e&2&&(d("translucent",!0),r(7),d("fullscreen",!0),r(4),d("src",n.image()),r(2),C((n.running,13)),r(2),P(n.art==null?null:n.art.name),r(3),P(n.message()),r(2),C(n.processing?20:21))},dependencies:[U,W,M,H,V,B,A,$,z,D,O,et,L,F,G,K,R,T],styles:[".message[_ngcontent-%COMP%]{min-height:6rem}ion-fab-button[_ngcontent-%COMP%]{margin:var(--spacing-base)}.img[_ngcontent-%COMP%]{min-height:14rem}ion-card-title[_ngcontent-%COMP%]{text-align:center;font-size:var(--font-size-large)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-medium);text-align:center}"]});var it=b;export{it as BroadcastPage}; +import{a as et}from"./chunk-RKW74V7I.js";import{a as tt}from"./chunk-M2OHFPPF.js";import{c as l}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import"./chunk-DUKSTT3K.js";import{V as Q,k as J,na as X,oa as Z}from"./chunk-QF32E4V4.js";import{K as q,g as Y,l as j}from"./chunk-TCALQ33I.js";import{b as w}from"./chunk-PFLI22GG.js";import{Ba as u,Ca as P,Eb as T,Fc as K,Gc as R,H as r,Oc as H,P as E,Xb as M,Y as k,Z as C,ca as d,da as o,dc as V,ea as a,ec as $,fa as m,fc as L,gc as O,hc as z,ib as N,jc as D,ka as v,lb as A,ma as f,mc as F,oa as c,ob as B,oc as U,p as _,pc as W,s as h,sc as G,t as g,w as I}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as p}from"./chunk-LNJ3S2LQ.js";var x=w("Geolocation",{web:()=>import("./chunk-UUUQKWSW.js").then(i=>new i.GeolocationWeb)});var y=w("Network",{web:()=>import("./chunk-FT74B6LB.js").then(i=>new i.NetworkWeb)});var S=w("KeepAwake",{web:()=>import("./chunk-27YGL33L.js").then(i=>new i.KeepAwakeWeb)});function nt(i,t){if(i&1){let e=v();o(0,"ion-fab",9)(1,"ion-buttons")(2,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkLocation())}),m(3,"ion-icon",14),a(),o(4,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkNetwork())}),m(5,"ion-icon",15),a(),o(6,"ion-fab-button",13),f("click",function(){h(e);let s=c();return g(s.checkAwake())}),m(7,"ion-icon",16),a()()()}if(i&2){let e=c();r(2),d("disabled",!e.running)("color",e.location?"tertiary":e.running?"warning":"light"),r(2),d("disabled",!e.running)("color",e.wifi?"tertiary":e.running?"warning":"light"),r(2),d("disabled",!e.running)("color",e.awake?"tertiary":e.running?"warning":"light")}}function ot(i,t){i&1&&(o(0,"ion-button",12),u(1,"Connecting"),a())}function at(i,t){if(i&1){let e=v();o(0,"ion-button",18),f("click",function(){h(e);let s=c(2);return g(s.start())}),u(1,"Start"),a()}}function rt(i,t){if(i&1){let e=v();o(0,"ion-button",18),f("click",function(){h(e);let s=c(2);return g(s.stop())}),u(1,"Stop"),a()}}function st(i,t){if(i&1&&k(0,at,2,0,"ion-button",17)(1,rt,2,0,"ion-button",17),i&2){let e=c();C(e.running?1:0)}}var b=class b{constructor(){this.running=!1;this.processing=!1;this.wifi=!1;this.location=!1;this.apiError=!1;this.awake=!1;this.message=I("");this.route=_(N);this.api=_(q);this.alert=_(tt);Z({locationSharp:Q,wifiSharp:X,cafeSharp:J})}ngOnInit(){return p(this,null,function*(){this.artId=j(this.route.snapshot.queryParams.art),this.art=this.artId?yield this.api.getArt(this.artId):void 0,this.setMessage(),y.addListener("networkStatusChange",t=>{this.processNetwork(t)}),yield Y(500),this.start()})}start(){return p(this,null,function*(){try{this.processing=!0,this.watchId=yield x.watchPosition({},t=>{if(!t){this.location=!1,console.error("No position");return}this.processPosition(t)}),this.processPosition(yield x.getCurrentPosition()),this.running=!0,this.processNetwork(yield y.getStatus()),yield this.keepAwake(!0)}catch(t){yield l(this.alert,`Unable to start geolocation watching: ${JSON.stringify(t)}`,"Error")}finally{this.processing=!1}})}checkNetwork(){var n;if(!this.connectionStatus){l(this.alert,"Network is disabled.");return}let t="";switch(this.connectionStatus.connectionType){case"wifi":t="WiFi ";break;case"cellular":t="Cellular ";break;case"none":t="";break;default:t="";break}let e=`${t}Network is ${this.connectionStatus.connected?"connected":"disconnected"}.`;this.apiError&&this.connectionStatus.connected&&(e+=`Network appears to be connected but unable to broadcast ${(n=this.art)==null?void 0:n.name}'s location. Possible bad cell service or backend error.`),l(this.alert,e,"Network Status")}checkAwake(){return p(this,null,function*(){(yield S.isSupported()).isSupported?l(this.alert,"Your device supports keeping the screen awake.","Awake Status"):l(this.alert,"Your device does not support keeping the screen awake.","Error")})}checkLocation(){if(!this.position){l(this.alert,"Location is disabled.");return}l(this.alert,`Last location was ${this.position.coords.latitude}, ${this.position.coords.longitude} at ${this.timeStamp()}.`,"Location Status")}image(){let t=this.art;return t?t.imageUrl?this.api.imageURL(t.imageUrl):`./assets/${t.art_type?`${t.art_type}`.toLowerCase().replace(/ /g,"-"):"unknown"}.svg`:"./assets/mutant-vehicle.svg"}processPosition(t){console.log(`Processing position ${t}`),this.position=t,this.broadcast(t),this.setMessage()}processNetwork(t){this.wifi=t.connected,this.connectionStatus=t}timeStamp(){var e;return new Date(((e=this.position)==null?void 0:e.timestamp)||0).toLocaleTimeString()}setMessage(){var t,e,n;this.apiError&&this.message.set(`Error: Unable to broadcast ${(t=this.art)==null?void 0:t.name}'s location to the dust app.`),this.position?(this.message.set(`${(e=this.art)==null?void 0:e.name}'s location is being broadcast to the dust app.`),this.location=!0):(this.message.set(`This will broadcast the location of ${(n=this.art)==null?void 0:n.name} so that users of the dust app can find it on the map.`),this.location=!1)}broadcast(t){return p(this,null,function*(){if(!this.art){console.error("No art");return}try{yield this.api.broadcast(this.art,t),this.apiError=!1,this.setMessage()}catch{this.wifi=!1,this.apiError=!0,this.setMessage()}})}keepAwake(t){return p(this,null,function*(){t?(this.awake=!1,yield S.keepAwake(),this.awake=!0):this.awake&&(yield S.allowSleep(),this.awake=!1)})}stop(){return p(this,null,function*(){this.watchId&&(yield x.clearWatch({id:this.watchId})),this.position=void 0,this.running=!1,this.setMessage(),yield this.keepAwake(!1)})}};b.\u0275fac=function(e){return new(e||b)},b.\u0275cmp=E({type:b,selectors:[["app-broadcast"]],decls:22,vars:7,consts:[[3,"translucent"],["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"fullscreen"],[1,"pad-below","grid1"],[1,"grid-item"],[3,"src"],["horizontal","center",2,"margin-top","-60px"],[1,"message"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["shape","round","size","large","color","light"],[3,"click","disabled","color"],["name","location-sharp"],["name","wifi-sharp"],["name","cafe-sharp"],["shape","round","size","large","color","primary"],["shape","round","size","large","color","primary",3,"click"]],template:function(e,n){e&1&&(o(0,"ion-header",0)(1,"ion-toolbar",1)(2,"ion-buttons",2),m(3,"ion-back-button"),a(),o(4,"ion-title",3),u(5,"Broadcast Location"),a(),m(6,"ion-buttons",4),a()(),o(7,"ion-content",5)(8,"div",6)(9,"div",7)(10,"ion-card"),m(11,"app-img",8),o(12,"ion-card-header"),k(13,nt,8,6,"ion-fab",9),o(14,"ion-card-title"),u(15),a()(),o(16,"ion-card-content")(17,"div",10),u(18),a(),o(19,"div",11),k(20,ot,2,0,"ion-button",12)(21,st,2,1),a()()()()()()),e&2&&(d("translucent",!0),r(7),d("fullscreen",!0),r(4),d("src",n.image()),r(2),C((n.running,13)),r(2),P(n.art==null?null:n.art.name),r(3),P(n.message()),r(2),C(n.processing?20:21))},dependencies:[U,W,M,H,V,B,A,$,z,D,O,et,L,F,G,K,R,T],styles:[".message[_ngcontent-%COMP%]{min-height:6rem}ion-fab-button[_ngcontent-%COMP%]{margin:var(--spacing-base)}.img[_ngcontent-%COMP%]{min-height:14rem}ion-card-title[_ngcontent-%COMP%]{text-align:center;font-size:var(--font-size-large)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-medium);text-align:center}"]});var it=b;export{it as BroadcastPage}; diff --git a/.admin-app/chunk-5QSNQA2B.js b/.admin-app/chunk-5QSNQA2B.js new file mode 100644 index 00000000..229c7c8e --- /dev/null +++ b/.admin-app/chunk-5QSNQA2B.js @@ -0,0 +1 @@ +import{a as z}from"./chunk-M2OHFPPF.js";import{a as ye}from"./chunk-K6ROGVP7.js";import{a as F}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{K as L,g as he}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as r,C as R,Ca as S,Cb as ee,Da as $,Dc as de,Ea as T,Eb as te,Ec as me,Fc as ge,Ga as j,Gc as pe,H as l,Ha as A,Ia as O,P as I,Pc as ue,Sa as H,Ta as G,Va as P,Vc as fe,Xb as ie,Y as x,Z as M,_a as J,aa as Q,ba as U,ca as _,da as o,dc as k,ea as s,eb as K,ec as ne,fa as y,fc as E,gc as D,hb as X,hc as oe,jc as se,ka as w,ma as h,mc as ae,oa as c,p as u,s as g,sc as re,t as p,tc as V,ub as Y,vc as le,w as f,wc as N,xb as Z,yc as ce}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as m}from"./chunk-LNJ3S2LQ.js";var ve=(a,t)=>t.date;function xe(a,t){a&1&&(o(0,"ion-card")(1,"ion-card-content",3),y(2,"ion-spinner",4),o(3,"ion-text")(4,"p"),r(5,"Loading message history..."),s()()()())}function Me(a,t){if(a&1){let e=w();o(0,"ion-card",1)(1,"ion-card-content",5)(2,"ion-text")(3,"h3"),r(4,"Error Loading History"),s(),o(5,"p"),r(6),s()(),o(7,"ion-button",6),h("click",function(){g(e);let i=c(2);return p(i.loadHistory())}),r(8," Retry "),s()()()}if(a&2){let e=c(2);l(6),S(e.error())}}function we(a,t){a&1&&(o(0,"ion-card")(1,"ion-card-content",7)(2,"ion-text")(3,"h3"),r(4,"No Message History"),s(),o(5,"p"),r(6," No messages have been sent yet. Once you send your first message, it will appear here for future reference. "),s()()()())}function Ie(a,t){if(a&1){let e=w();o(0,"ion-item")(1,"ion-label")(2,"p"),r(3),s(),o(4,"b"),r(5),s(),y(6,"br"),o(7,"p"),r(8),s()(),o(9,"ion-note")(10,"ion-button",8),h("click",function(){let i=g(e).$implicit,d=c(3);return p(d.recall(i))}),r(11,"Recall"),s()()()}if(a&2){let e=t.$implicit,n=c(3);l(3),T("",n.formatDate(e.date)," from ",e.from.name),l(2),S(e.subject),l(3),S(e.html)}}function Se(a,t){if(a&1&&(o(0,"div",2)(1,"ion-card")(2,"ion-card-header")(3,"ion-card-title"),r(4,"Message History"),s()(),o(5,"ion-card-content")(6,"ion-list"),Q(7,Ie,12,4,"ion-item",null,ve),s()()()()),a&2){let e=c(2);l(7),U(e.sortedMessages())}}function Te(a,t){if(a&1&&(o(0,"div",0),x(1,xe,6,0,"ion-card")(2,Me,9,1,"ion-card",1)(3,we,7,0,"ion-card")(4,Se,9,0,"div",2),s()),a&2){let e=c();l(),M(e.loading()?1:e.error()?2:e.isEmpty()?3:4)}}var C=class C{constructor(){this.visible=P(!1);this.messages=f([]);this.loading=f(!1);this.error=f(null);this.hasMessages=H(()=>this.messages().length>0);this.isEmpty=H(()=>!this.loading()&&this.messages().length===0);this.sortedMessages=H(()=>[...this.messages()].sort((t,e)=>new Date(e.date).getTime()-new Date(t.date).getTime()));this.api=u(L);this.sanitizer=u(X);this.alertController=u(z);G(()=>{this.visible()&&(console.log("Message history component became visible, loading history..."),this.loadHistory())})}loadHistory(){return m(this,null,function*(){try{this.loading.set(!0),this.error.set(null),console.log("Loading message history...");let t=yield this.api.getMessageHistory();console.log("Message history loaded:",t.length,"items"),this.messages.set(t)}catch(t){console.error("Failed to load message history:",t);let e="Unable to load message history. Please try again.";if(t instanceof Error){let n=t.message.toLowerCase();n.includes("network")||n.includes("fetch")?e="Unable to load message history. Check your connection.":n.includes("unauthorized")||n.includes("authentication")?e="Authentication required. Please log in again.":n.includes("server")||n.includes("500")?e="Server error occurred. Please try again later.":(n.includes("invalid")||n.includes("parse"))&&(e="Invalid message data received. Please contact support.")}this.error.set(e)}finally{this.loading.set(!1)}})}formatDate(t){try{return new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}recall(t){return m(this,null,function*(){(yield F(this.alertController,"This message will only be recalled from displaying in the messages tab of the dust app. Notifications for the message already went out.","Recall"))&&(yield this.performRecall(t))})}performRecall(t){return m(this,null,function*(){try{let n=(yield this.api.getMessageHistory()).filter(i=>!(i.subject===t.subject&&i.date===t.date&&i.from.name===t.from.name));yield this.api.setMessageHistory(n),this.messages.set(n),console.log("Message recalled successfully:",t.subject)}catch(e){console.error("Failed to recall message:",e),this.error.set("Failed to recall message. Please try again.")}})}sanitizeHtml(t){let e=this.sanitizer.sanitize(R.HTML,t)||"";return this.sanitizer.bypassSecurityTrustHtml(e)}};C.\u0275fac=function(e){return new(e||C)},C.\u0275cmp=I({type:C,selectors:[["app-message-history"]],inputs:{visible:[1,"visible"]},decls:1,vars:1,consts:[[1,"message-history-container"],["color","danger"],[1,"messages-list"],[1,"loading-content"],["name","crescent"],[1,"error-content"],["fill","outline",3,"click"],[1,"empty-content"],["color","secondary",3,"click"]],template:function(e,n){e&1&&x(0,Te,5,1,"div",0),e&2&&M(n.visible()?0:-1)},dependencies:[ce,le,V,N,K,E,D,oe,se,de,me,k],styles:["ion-note[_ngcontent-%COMP%]{margin-top:2rem}"]});var B=C;function He(a,t){if(a&1){let e=w();o(0,"div",6)(1,"ion-card",8)(2,"ion-card-content",8)(3,"ion-list",9)(4,"ion-item")(5,"ion-input",10),O("ngModelChange",function(i){g(e);let d=c();return A(d.message.title,i)||(d.message.title=i),p(i)}),s()(),o(6,"ion-item")(7,"ion-textarea",11),O("ngModelChange",function(i){g(e);let d=c();return A(d.message.description,i)||(d.message.description=i),p(i)}),s()()(),o(8,"div",12),h("click",function(){g(e);let i=c();return p(i.processQueue())}),r(9),s(),o(10,"div",13)(11,"ion-button",14),h("click",function(){g(e);let i=c();return p(i.toggleHistory())}),r(12),s(),o(13,"ion-button",15),h("click",function(){g(e);let i=c();return p(i.send())}),r(14,"Send"),s()()()(),y(15,"app-message-history",16),s()}if(a&2){let e=c();l(5),j("ngModel",e.message.title),l(2),_("counterFormatter",e.customCounterFormatter)("spellcheck",!0)("rows",6)("maxlength",178)("autoGrow",!0),j("ngModel",e.message.description),l(2),T(" This will send a notification to ",e.pushInformation.deviceCount," users who have accepted receiving notifications for ",e.festivalTitle," in the dust app. "),l(3),$(" ",e.historyVisible()?"Hide History":"History"," "),l(),_("disabled",e.busy()),l(2),_("visible",e.historyVisible())}}function Pe(a,t){if(a&1&&y(0,"app-spinner",7),a&2){let e=c();_("title",e.spinnerTitle())}}var b=class b{constructor(){this.message={title:"",description:""};this.pushInformation={deviceCount:0};this.festivalTitle="";this.busy=f(!1);this.spinnerTitle=f("Sending message...");this.historyVisible=f(!1);this.vanity=P();this.api=u(L);this.location=u(J);this.alert=u(z)}ngOnInit(){return m(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0),this.festivalTitle=this.api.festivalTitle()})}ionViewWillEnter(){return m(this,null,function*(){let t=yield this.api.getPushInformation();this.pushInformation=t.data})}customCounterFormatter(t,e){return`${e-t} characters remaining`}toggleHistory(){let t=!this.historyVisible();console.log("Toggling message history visibility from",this.historyVisible(),"to",t),this.historyVisible.set(t)}send(){return m(this,null,function*(){var t,e;try{if(this.message.title.length==0){this.api.sendMessage("Title is required");return}if(this.message.description.length==0){this.api.sendMessage("Description is required");return}if(!(yield F(this.alert,`Send message "${this.message.title}" to ${this.pushInformation.deviceCount} users ?`,"Send")))return;this.busy.set(!0),yield this.api.sendPushMessage({title:this.message.title,description:this.message.description});let i=this.pushInformation.deviceCount,d=!0,W=!0,q=0;for(;W;)try{q++,this.spinnerTitle.set(`Sending messages (${i} remaining)...`);let v=yield this.api.processMessageQueue();console.log("Message batch processed:",v.data),i=((t=v.data)==null?void 0:t.remainingTokens)||0,i>0&&(yield he(500)),(((e=v.data)==null?void 0:e.totalAttempted)==0||i==0)&&(W=!1),q>500&&(W=!1)}catch(v){console.error("Error processing message queue:",v),this.api.sendMessage("Error processing message queue. Please try again later."),d=!1;break}this.location.back(),d&&this.api.sendMessage("Message Sent")}finally{this.busy.set(!1)}})}processQueue(){return m(this,null,function*(){let t=yield this.api.processMessageQueue();console.log("Message batch processed:",t.data)})}};b.\u0275fac=function(e){return new(e||b)},b.\u0275cmp=I({type:b,selectors:[["app-message"]],inputs:{vanity:[1,"vanity"]},decls:12,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[3,"title"],[1,"form"],["lines","none"],["label","Title","labelPlacement","stacked","placeholder","Title of the message",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Description","placeholder","Description of the message",3,"ngModelChange","counterFormatter","spellcheck","rows","maxlength","autoGrow","ngModel"],[1,"padded",3,"click"],[1,"center"],["color","secondary",3,"click"],[3,"click","disabled"],[3,"visible"]],template:function(e,n){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),y(3,"ion-back-button"),s(),o(4,"ion-title",2),r(5,"Notify"),s(),o(6,"ion-buttons",3)(7,"ion-button",4),h("click",function(){return n.send()}),r(8," Send "),s()()()(),o(9,"ion-content",5),x(10,He,16,12,"div",6)(11,Pe,1,1,"app-spinner",7),s()),e&2&&(l(9),_("fullscreen",!0),l(),M(n.busy()?11:10))},dependencies:[V,N,D,E,k,ie,ue,ne,ae,re,fe,ge,pe,te,Y,ee,Z,ye,B],styles:[".padded[_ngcontent-%COMP%]{padding-left:25%;padding-right:25%;text-align:center}"]});var _e=b;export{_e as MessagePage}; diff --git a/.admin-app/chunk-YLPHNW7F.js b/.admin-app/chunk-62GZOW6G.js similarity index 93% rename from .admin-app/chunk-YLPHNW7F.js rename to .admin-app/chunk-62GZOW6G.js index b60d29f1..fad75ea2 100644 --- a/.admin-app/chunk-YLPHNW7F.js +++ b/.admin-app/chunk-62GZOW6G.js @@ -1,4 +1,4 @@ -function g(s){let c=!1,t=[],e="",f=0,l={},u=!0,r=[];for(let n of s)c?n!=='"'&&(e+=n):n==","?(u?r.push(e):l[r[f]]=e,f++,e=""):n==` +function g(s){let c=!1,t=[],e="",f=0,l={},u=!0,r=[];for(let n of s)c?n!=='"'&&(e+=n):n==","?(u?r.push(e):(e&&(e=e.trim()),l[r[f]]=e),f++,e=""):n==` `?(e&&(e=e.trim()),u?(r.push(e),u=!1):(l[r[f]]=e,t.push(l)),e="",l={},f=0):n!=='"'&&(e+=n),n=='"'&&(c=!c);return(e||Object.keys(l).length>0)&&(e&&(e=e.trim()),!u&&r.length>f&&(l[r[f]]=e),!u&&Object.keys(l).length>0&&t.push(l)),t}function h(s,c,t){if(!c||!c.length)return;let e=t!=null&&t.stripQuotes?",":'","',f=Object.keys(c[0]),l=t!=null&&t.hideHeaders?"":a(f.join(e),t==null?void 0:t.stripQuotes);for(let n of c)l+=a(f.map(d=>{let i=n[d]===null||n[d]===void 0?"":n[d];return i=i instanceof Date?i.toLocaleString():i.toString(),i=o(i),i=i.replace(/\r/g,"\\r"),i=i.replace(/\n/g,"\\n"),i=i.replace(/"/g,'""'),`${i}`}).join(e),t==null?void 0:t.stripQuotes);let u=new Blob([l],{type:"text/csv;charset=utf-8;"}),r=document.createElement("a");if(r.download!==void 0){let n=URL.createObjectURL(u);r.setAttribute("href",n),r.setAttribute("download",s),r.style.visibility="hidden",document.body.appendChild(r),r.click(),document.body.removeChild(r)}}function o(s){return s?s.replace(/\u00a0/g,""):""}function a(s,c){return c?`${s} `:`"${s}" `}export{g as a,h as b}; diff --git a/.admin-app/chunk-6CVTJBWK.js b/.admin-app/chunk-6CVTJBWK.js new file mode 100644 index 00000000..65046ab0 --- /dev/null +++ b/.admin-app/chunk-6CVTJBWK.js @@ -0,0 +1 @@ +import{a as Gt,b as jt,c as zt}from"./chunk-DGWV6NC4.js";import{a as Ut,b as Ht}from"./chunk-UDWQF54V.js";import{a as Qt,b as N}from"./chunk-AWZLS6KS.js";import{a as $t}from"./chunk-MZHM7UQO.js";import{a as Rt}from"./chunk-F5YC2F3D.js";import{a as Dt}from"./chunk-3XGYA3SU.js";import{a as Ot}from"./chunk-RKW74V7I.js";import{b as z}from"./chunk-62GZOW6G.js";import{a as Nt}from"./chunk-LKPHKBDT.js";import"./chunk-3OSW3EO7.js";import"./chunk-U3YCGDGQ.js";import{a as Vt}from"./chunk-K6ROGVP7.js";import"./chunk-OZ2IKH4J.js";import"./chunk-DUKSTT3K.js";import{I as It,K as Ft,T as Lt,V as Mt,a as wt,d as Pt,ga as kt,oa as Bt}from"./chunk-QF32E4V4.js";import{F as j,J as Et,K as O,e as Tt}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$a as et,Ba as u,Ca as K,Da as A,Eb as k,Fc as yt,Ga as J,Gc as Ct,H as r,Ha as X,Ia as Z,Na as H,Oc as At,P as F,Qc as xt,Rc as bt,Sc as St,U as q,Ua as tt,Va as M,Xb as st,Y as f,Z as h,Zb as dt,aa as E,ba as w,ca as a,da as s,dc as ct,ea as d,eb as it,ec as pt,fa as p,fc as mt,gc as ut,hc as ft,jc as ht,ka as L,kb as nt,l as Y,lb as rt,ma as y,mc as _t,oa as c,ob as ot,p as _,s as g,sc as gt,t as v,tc as V,ub as at,w as I,wc as B,xb as lt,zc as vt}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as U,b as G,h as m}from"./chunk-LNJ3S2LQ.js";var C=class C{constructor(){this.api=_(O)}exportArtToCSV(e,t){let i=[];for(let l of t)i.push({id:l.id,name:l.name,description:l.description,email:l.contact_email,placed:l.pin!=""?"Yes":"No",mvpin:l.art_type=="Mutant Vehicle"?N(`${l.id}`):""});let o=j(e.toLowerCase()," ","-");z(`${o}-art.csv`,i)}exportArtEmail(e,t){let i=[];for(let l of t)Tt(l.contact_email)||i.push({email:l.contact_email});if(i.length==0){this.api.sendMessage("No Art has email addresses to be exported.");return}let o=j(e.toLowerCase()," ","-");z(`${o}-art-email.txt`,i,{stripQuotes:!0,hideHeaders:!0})}};C.\u0275fac=function(t){return new(t||C)},C.\u0275prov=Y({token:C,factory:C.\u0275fac,providedIn:"root"});var Q=C;var Zt=(n,e)=>e.type;function te(n,e){if(n&1&&(s(0,"ion-item")(1,"ion-radio",3),u(2),d()()),n&2){let t=e.$implicit;r(),a("value",t.type),r(),A(" ",t.label," ")}}var x=class x{constructor(){this.filterState=M.required();this.filterChanged=tt()}getFilterValue(){var o,l,P,S;let e=this.filterState();if(e.unplacedOnly)return"unplaced";let t=(l=(o=e.artTypes.find(T=>T.type==="art"))==null?void 0:o.enabled)!=null?l:!1,i=(S=(P=e.artTypes.find(T=>T.type==="mutant-vehicle"))==null?void 0:P.enabled)!=null?S:!1;return t&&i||!t&&!i?"all":t?"art":i?"mutant-vehicle":"all"}onFilterChange(e){let t=this.filterState();if(e==="unplaced"){let i={artTypes:t.artTypes.map(o=>G(U({},o),{enabled:!0})),unplacedOnly:!0};this.filterChanged.emit(i)}else{let i={artTypes:t.artTypes.map(o=>G(U({},o),{enabled:e==="all"||o.type===e})),unplacedOnly:!1};this.filterChanged.emit(i)}}};x.\u0275fac=function(t){return new(t||x)},x.\u0275cmp=F({type:x,selectors:[["app-art-filter"]],inputs:{filterState:[1,"filterState"]},outputs:{filterChanged:"filterChanged"},decls:10,vars:1,consts:[[3,"ionChange","value"],["mode","ios","value","all","labelPlacement","end"],["mode","ios","value","unplaced","labelPlacement","end"],["mode","ios","labelPlacement","end",3,"value"]],template:function(t,i){t&1&&(s(0,"ion-list")(1,"ion-radio-group",0),y("ionChange",function(l){return i.onFilterChange(l.detail.value)}),s(2,"ion-item")(3,"ion-radio",1),u(4," All "),d()(),E(5,te,3,2,"ion-item",null,Zt),s(7,"ion-item")(8,"ion-radio",2),u(9," Unplaced Only "),d()()()()),t&2&&(r(),a("value",i.getFilterValue()),r(4),w(i.filterState().artTypes))},dependencies:[k,B,V,bt,xt],encapsulation:2});var R=x;var ee=n=>[n],ie=n=>({art:n}),qt=(n,e)=>e.id;function ne(n,e){if(n&1&&p(0,"app-progress-overlay",8),n&2){let t=c();a("title","Inviting...")("progress",t.progress())}}function re(n,e){if(n&1){let t=L();s(0,"app-art-filter",18),y("filterChanged",function(o){g(t);let l=c(2);return v(l.onFilterStateChange(o))}),d()}if(n&2){let t=c(2);a("filterState",t.filterState())}}function oe(n,e){if(n&1){let t=L();s(0,"ion-toolbar")(1,"ion-searchbar",12),y("ionBlur",function(){g(t);let o=c();return v(o.saveSearch())})("ionInput",function(o){g(t);let l=c();return v(l.handleSearch(o))}),Z("ngModelChange",function(o){g(t);let l=c();return X(l.searchQuery,o)||(l.searchQuery=o),v(o)}),d(),s(2,"ion-button",13),y("click",function(){g(t);let o=c();return v(o.toggleGrid())}),p(3,"ion-icon",14),d(),s(4,"ion-button",15),p(5,"ion-icon",16),d()(),s(6,"ion-popover",17),q(7,re,1,1,"ng-template"),d()}if(n&2){let t=c();r(),a("debounce",600)("placeholder","Search art at "+t.title),J("ngModel",t.searchQuery),r(2),a("name",t.isGrid?"list-outline":"grid-outline"),r(3),a("dismissOnSelect",!0)}}function ae(n,e){if(n&1&&p(0,"ion-progress-bar",9),n&2){let t=c();a("value",t.progress())}}function le(n,e){if(n&1&&p(0,"app-card",20),n&2){let t=c(3);a("title",t.hasActiveFilters?"No Art Found":"No Art")("description",t.hasActiveFilters?"No art was found matching those filters.":"There is no art registered for "+t.festivalTitle)}}function se(n,e){if(n&1&&f(0,le,1,2,"app-card",20),n&2){let t=c(2);h(t.art.length===0?0:-1)}}function de(n,e){}function ce(n,e){if(n&1){let t=L();s(0,"ion-button",34),y("click",function(){g(t);let o=c().$implicit,l=c(4);return v(l.broadcastLocation(o))}),u(1,"Broadcast GPS"),d()}if(n&2){let t=c(5);a("disabled",!t.canBroadcastLocation)}}function pe(n,e){if(n&1&&(s(0,"div",23)(1,"ion-card",24),p(2,"app-img",25),s(3,"ion-card-header",26)(4,"ion-card-title"),u(5),p(6,"app-moderation-flag",27)(7,"app-approval-status",28)(8,"app-location-status",29),d()(),s(9,"ion-card-content"),u(10),s(11,"div",30)(12,"ion-button",31),u(13,"Edit"),d(),s(14,"ion-button",32),u(15,"Events"),d(),f(16,ce,2,1,"ion-button",33),d()()()()),n&2){let t=e.$implicit,i=c(4);r(2),a("routerLink",i.editRoute(t))("src",i.image(t)),r(),a("routerLink",i.editRoute(t)),r(2),A(" ",t.name," "),r(),a("moderation",t.moderation)("isAdmin",i.isAdmin),r(),a("status",t.status)("isAdmin",i.isAdmin),r(),a("pin",t.pin),r(2),A(" ",t.description," "),r(2),a("disabled",!i.canEditArt)("routerLink","../art/"+H(16,ee,t.id)),r(2),a("disabled",!i.canEditEvent)("routerLink","../events")("queryParams",H(18,ie,t.id)),r(2),h(t.art_type==="Mutant Vehicle"?16:-1)}}function me(n,e){if(n&1&&(s(0,"div",21),E(1,pe,17,20,"div",23,qt),d()),n&2){let t=c(3);a("ngClass",t.art.length>1?"grid":"grid1"),r(),w(t.art)}}function ue(n,e){if(n&1&&(s(0,"ion-item"),p(1,"app-img",36),s(2,"ion-text",37),p(3,"app-approval-status",28)(4,"app-moderation-flag",27)(5,"app-location-status",29),u(6),d()()),n&2){let t=e.$implicit,i=c(4);r(),a("width","45px")("height","45px")("routerLink",i.editRoute(t))("src",i.image(t)),r(),a("routerLink",i.editRoute(t)),r(),a("status",t.status)("isAdmin",i.isAdmin),r(),a("moderation",t.moderation)("isAdmin",i.isAdmin),r(),a("pin",t.pin),r(),A(" ",t.name," ")}}function fe(n,e){if(n&1&&(s(0,"div",22)(1,"ion-card")(2,"ion-list"),E(3,ue,7,11,"ion-item",null,qt),d()(),p(5,"div",35)(6,"div",35),d()),n&2){let t=c(3);r(3),w(t.art)}}function he(n,e){if(n&1&&f(0,me,3,1,"div",21)(1,fe,7,0,"div",22),n&2){let t=c(2);h(t.isGrid?0:1)}}function _e(n,e){if(n&1&&(s(0,"div",10)(1,"div",19),f(2,se,1,1)(3,de,0,0),d(),f(4,he,2,1),d()),n&2){let t=c();r(),a("ngClass",t.art.length>0?"":"pad-vertical"),r(),h(t.isAdmin?2:3),r(2),h(t.art.length>0?4:-1)}}function ge(n,e){n&1&&p(0,"app-spinner")}function ve(n,e){if(n&1&&p(0,"app-footer",11),n&2){let t=c();a("routeTo",t.newRoute())}}var b=class b{constructor(){this.api=_(O);this.artService=_(Q);this.router=_(nt);this.inviteEmailService=_(Gt);this.store=_(Et);this.ApprovalStatus=Nt;this.vanity=M();this.art=[];this.busy=!0;this.isAdmin=!1;this.canEdit=!1;this.canEditArt=!1;this.canEditEvent=!1;this.canBroadcastLocation=!1;this.isGrid=!0;this.filteredBySearch=!1;this.hasActiveFilters=!1;this.buttons=[];this.title="";this.festivalTitle="";this.artTitle="Art";this.progress=I(0);this.overlayTitle=I("");this.searchQuery="";this.filterState=I({artTypes:Qt.map(e=>({type:e.toLowerCase().replace(/\s+/g,"-"),label:e,enabled:!0})),unplacedOnly:!1});Bt({add:wt,remove:kt,locationSharp:Mt,listOutline:Lt,gridOutline:Ft,alertCircleSharp:Pt,filterSharp:It})}ngOnInit(){return m(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0),this.title=`${this.api.festivalTitle()}`,this.festivalTitle=this.api.festivalTitle(),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.canEdit=this.api.getAccessInfo(void 0).hasArt||this.isAdmin,this.canEditEvent=this.api.eventEditing()||this.isAdmin,this.canEditArt=this.api.artEditing()||this.isAdmin,this.canBroadcastLocation=this.api.artEditing(),this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"},{title:"Export Email Addresses",method:this.exportEmail(),icon:"mail-outline"},{title:"Import KML",method:this.importKML(),icon:"cloud-upload-outline"},{title:"Invite All Artists",method:this.inviteAllArt(),icon:"mail-outline"}]:[]})}inviteAllArt(){return()=>m(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}yield this.inviteEmailService.inviteAllArt(this.art,this.progress)})}broadcastLocation(e){return m(this,null,function*(){let t=N(`${e.id}`);this.api.sendMessage(`Use the PIN ${t} to broadcast your mutant vehicles location. Click the link to read how.`,0,"Broadcast Location","https://dust.events/docs/Mutant%20Vehicles/broadcast-location")})}ionViewWillLeave(){document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur()}ionViewDidEnter(){return m(this,null,function*(){let e=yield this.api.art({cached:!0}),t=this.store.getMemory("artSearchQuery");t?(this.searchQuery=t,this.art=this.filterArt(e,t),this.updateFilterStatus()):(this.searchQuery="",this.art=e,this.filteredBySearch=!1,this.hasActiveFilters=!1),this.busy=!1})}filterArt(e,t){let i=t.toLowerCase(),o=this.filterState();return e.filter(l=>{var W;let P=!t||l.name.toLowerCase().includes(i)||((W=l.description)==null?void 0:W.toLowerCase().includes(i)),S=o.artTypes.filter($=>$.enabled),T=S.length===0,D=!1;T?D=!0:D=S.some($=>$.label===l.art_type);let Kt=!l.pin,Jt=!o.unplacedOnly||Kt;return P&&D&&Jt})}importCSV(){return()=>m(this,null,function*(){this.router.navigateByUrl("./import-art")})}saveSearch(){this.store.setMemory("artSearchQuery",this.searchQuery||void 0)}importKML(){return()=>m(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl(`${this.vanity()}/import-kml/art`)})}exportCSV(){return()=>m(this,null,function*(){this.artService.exportArtToCSV(this.festivalTitle,this.art)})}exportEmail(){return()=>m(this,null,function*(){this.artService.exportArtEmail(this.festivalTitle,this.art)})}message(e){setTimeout(()=>{this.api.sendMessage(e)},1)}handleSearch(e){return m(this,null,function*(){let t=e.target.value.toLowerCase();this.searchQuery=t,this.store.setMemory("artSearchQuery",t||void 0),yield this.applyFilters()})}applyFilters(){return m(this,null,function*(){let e=yield this.api.art({cached:!0});this.art=this.filterArt(e,this.searchQuery),this.updateFilterStatus()})}onFilterChange(){return m(this,null,function*(){yield this.applyFilters()})}onFilterStateChange(e){return m(this,null,function*(){this.filterState.set(e),this.updateArtTitle(e),yield this.onFilterChange()})}updateArtTitle(e){if(e.unplacedOnly)this.artTitle="Unplaced";else{let t=e.artTypes.filter(o=>o.enabled);t.length===e.artTypes.length?this.artTitle="Art":t.length===1?this.artTitle=t[0].label:t.length===0?this.artTitle="Art":this.artTitle="Art"}}updateFilterStatus(){this.filteredBySearch=this.searchQuery.length>0;let e=this.filterState(),i=e.artTypes.filter(o=>o.enabled).length===e.artTypes.length;this.hasActiveFilters=this.filteredBySearch||e.unplacedOnly||!i}toggleGrid(){this.isGrid=!this.isGrid}editRoute(e){return this.canEdit?"../art/"+e.id:void 0}image(e){return e.imageUrl?this.api.imageURL(e.imageUrl):`./assets/${e.art_type?`${e.art_type}`.toLowerCase().replace(/ /g,"-"):"unknown"}.svg`}newRoute(){return this.canEdit?"../art/new":void 0}};b.\u0275fac=function(t){return new(t||b)},b.\u0275cmp=F({type:b,selectors:[["app-art"]],inputs:{vanity:[1,"vanity"]},decls:17,vars:9,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../art/new",3,"disabled"],["name","add"],[3,"buttons"],[3,"fullscreen"],[3,"title","progress"],[3,"value"],[1,"large-border"],["title","Add Art",3,"routeTo"],["mode","ios","show-clear-button","always",1,"searchbar",3,"ionBlur","ionInput","ngModelChange","debounce","placeholder","ngModel"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],["id","filter-trigger","color","dark","fill","clear","slot","end"],["name","filter-sharp"],["trigger","filter-trigger",3,"dismissOnSelect"],[3,"filterChanged","filterState"],[1,"ion-text-center",3,"ngClass"],[3,"title","description"],[1,"pad-below",3,"ngClass"],[1,"border"],[1,"grid-item"],[1,"clickable"],[3,"routerLink","src"],[3,"routerLink"],[3,"moderation","isAdmin"],[3,"status","isAdmin"],[3,"pin"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["color","secondary",3,"disabled","routerLink"],["color","secondary",3,"disabled","routerLink","queryParams"],["color","secondary",3,"disabled"],["color","secondary",3,"click","disabled"],[1,"ion-padding"],[1,"clickable",2,"min-width","45px",3,"width","height","routerLink","src"],[1,"clickable",2,"width","100%","padding","1rem",3,"routerLink"]],template:function(t,i){t&1&&(s(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),p(3,"ion-back-button"),d(),s(4,"ion-title",2),u(5),d(),s(6,"ion-buttons",3)(7,"ion-button",4),p(8,"ion-icon",5),d(),p(9,"app-side",6),d()()(),s(10,"ion-content",7),f(11,ne,1,2,"app-progress-overlay",8),f(12,oe,8,5),f(13,ae,1,1,"ion-progress-bar",9),f(14,_e,5,3,"div",10)(15,ge,1,0,"app-spinner"),f(16,ve,1,1,"app-footer",11),d()),t&2&&(r(5),K(i.artTitle),r(2),a("disabled",!i.canEdit),r(2),a("buttons",i.buttons),r(),a("fullscreen",!0),r(),h(i.progress()>0?11:-1),r(),h(i.art.length>0||i.hasActiveFilters?12:-1),r(),h(i.progress()>0?13:-1),r(),h(i.busy?15:14),r(2),h(i.isAdmin?16:-1))},dependencies:[V,B,ut,ht,mt,ft,vt,St,At,Rt,Dt,Vt,ct,st,pt,_t,gt,yt,Ct,it,et,k,at,lt,Ut,Ot,ot,rt,$t,Ht,jt,zt,dt,R],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-content[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:var(--font-size-base)}h1[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.approval-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs));right:0}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}"]});var Yt=b;export{Yt as ArtPage}; diff --git a/.admin-app/chunk-6GYHV7VW.js b/.admin-app/chunk-6GYHV7VW.js new file mode 100644 index 00000000..51b0d7b0 --- /dev/null +++ b/.admin-app/chunk-6GYHV7VW.js @@ -0,0 +1,5 @@ +import{c as gt}from"./chunk-CMEEWD7E.js";import{a as H}from"./chunk-M2OHFPPF.js";import{a as _t,g as ht}from"./chunk-3U2X6Y6W.js";import{a as _e,c as T}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{R as ke,a as ct,ba as pt,ja as ut,oa as oe}from"./chunk-QF32E4V4.js";import{D as Ee,K as Q,e as K,i as dt,k as mt}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as Ne,$b as Ze,Ac as Xe,Ba as d,Bc as $e,Ca as ve,Cb as te,Cc as et,Da as M,E as We,Eb as N,Ec as tt,Fc as Te,Ga as _,Gc as Se,H as s,Ha as h,Ia as C,Kc as it,Ma as Oe,Mc as nt,Oc as ne,P as S,Pc as z,Qc as ot,Rc as at,Ta as qe,Tc as rt,U as Ae,Ua as q,Uc as st,Va as F,Vc as Me,Wa as ee,Wc as lt,Xa as E,Xb as je,Y as f,Yb as ye,Z as v,_a as Be,_b as Ye,aa as Ce,ba as fe,ca as g,da as a,dc as k,ea as r,ec as ie,fa as I,fc as P,gc as D,hc as R,ic as B,jc as U,ka as x,kb as ze,lb as Qe,lc as Ge,ma as u,mc as xe,oa as m,p as b,rc as Je,s as c,sa as j,sb as He,sc as we,t as p,ta as Y,tc as V,ua as Z,ub as W,va as X,vc as be,w,wa as $,wc as L,xb as A,yc as Ke}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var vt=["link"],yt=["link2"],xt=["link3"],ae=class ae{constructor(){this.api=b(Q);this.campsUrl="";this.eventsUrl="";this.artUrl="";this.vanity=F("")}ngOnInit(){this.campsUrl=`https://${this.vanity()}.dust.events/camps/`,this.eventsUrl=`https://${this.vanity()}.dust.events/events/`,this.artUrl=`https://${this.vanity()}.dust.events/art/`}message(t,e){this.api.sendMessage(e,0,t)}copyCampsUrl(){let t=this.link.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyArtUrl(){let t=this.link3.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyEventsUrl(){let t=this.link2.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}};ae.\u0275fac=function(e){return new(e||ae)},ae.\u0275cmp=S({type:ae,selectors:[["app-web-links"]],viewQuery:function(e,n){if(e&1&&(j(vt,5),j(yt,5),j(xt,5)),e&2){let i;Y(i=Z())&&(n.link=i.first),Y(i=Z())&&(n.link2=i.first),Y(i=Z())&&(n.link3=i.first)}},inputs:{vanity:[1,"vanity"]},decls:30,vars:9,consts:[["link",""],["link2",""],["link3",""],[2,"width","100%"],["color","primary","routerLink","./css",2,"margin-left","auto"],["lines","none"],["slot","start","name","information-circle-outline",3,"click"],["fill","solid","slot","end","color","primary","id","open-toast",3,"click"],["fill","solid","color","primary","id","open-toast","slot","end",3,"click"],["slot","end","fill","solid","color","primary","id","open-toast",3,"click"],["type","text",3,"hidden","value"]],template:function(e,n){if(e&1){let i=x();a(0,"ion-card-header")(1,"ion-card-title",3)(2,"ion-buttons"),d(3," Lists "),a(4,"ion-button",4),d(5,"CSS"),r()()(),a(6,"ion-card-subtitle"),d(7," These can be used on your website to display a live list of camps, events and art. "),r()(),a(8,"ion-list",5)(9,"ion-item")(10,"ion-icon",6),u("click",function(){return c(i),p(n.message("Theme Camps Web Page","This link for a web page of all theme camp can be used on your website."))}),r(),d(11),a(12,"ion-button",7),u("click",function(){return c(i),p(n.copyCampsUrl())}),d(13,"Copy"),r()(),a(14,"ion-item")(15,"ion-icon",6),u("click",function(){return c(i),p(n.message("Events Web Page","This link for a web page of all events can be used on your website."))}),r(),d(16),a(17,"ion-button",8),u("click",function(){return c(i),p(n.copyEventsUrl())}),d(18,"Copy"),r()(),a(19,"ion-item")(20,"ion-icon",6),u("click",function(){return c(i),p(n.message("Art Web Page","This link for a web page of art can be used on your website."))}),r(),d(21),a(22,"ion-button",9),u("click",function(){return c(i),p(n.copyArtUrl())}),d(23,"Copy"),r()()(),I(24,"input",10,0)(26,"input",10,1)(28,"input",10,2)}e&2&&(s(11),M(" ",n.campsUrl," "),s(5),M(" ",n.eventsUrl," "),s(5),M(" ",n.artUrl," "),s(3),g("hidden",!0)("value",n.campsUrl),s(2),g("hidden",!0)("value",n.eventsUrl),s(2),g("hidden",!0)("value",n.artUrl))},dependencies:[ie,k,L,ne,U,R,B,V,Qe],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-xl)!important}ion-icon[_ngcontent-%COMP%]{cursor:pointer}"]});var Ve=ae;var wt=["link"];function bt(l,t){if(l&1){let e=x();a(0,"ion-item",1)(1,"ion-icon",2),u("click",function(){c(e);let i=m();return p(i.message(i.title(),i.description()))}),r(),a(2,"a",3),d(3),r(),a(4,"ion-button",4),u("click",function(){c(e);let i=m();return p(i.copy())}),d(5,"Copy"),r()(),I(6,"input",5,0)}if(l&2){let e=m();s(2),g("href",e.url(),We),s(),ve(e.url()),s(3),g("hidden",!0)("value",e.url())}}var re=class re{constructor(){this.url=F();this.enabled=F(!0);this.title=F("");this.description=F("");this.link=ee("link");this.api=b(Q);oe({informationCircleOutline:ke})}message(t,e){this.api.sendMessage(e,0,t)}copy(){let t=this.link().nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}};re.\u0275fac=function(e){return new(e||re)},re.\u0275cmp=S({type:re,selectors:[["app-url-link"]],viewQuery:function(e,n){e&1&&X(n.link,wt,5),e&2&&$()},inputs:{url:[1,"url"],enabled:[1,"enabled"],title:[1,"title"],description:[1,"description"]},decls:1,vars:1,consts:[["link",""],[1,"url"],["slot","start","name","information-circle-outline",3,"click"],["target","_blank",3,"href"],["id","open-toast","slot","end",3,"click"],["type","text",3,"hidden","value"]],template:function(e,n){e&1&&f(0,bt,8,4),e&2&&v(n.enabled()?0:-1)},dependencies:[V,ne,k],styles:[".url[_ngcontent-%COMP%]{color:var(--ion-color-dark)}ion-icon[_ngcontent-%COMP%]{cursor:pointer}a[_ngcontent-%COMP%]{text-decoration:none;color:var(--ion-text-color)}"]});var Ie=re;var Tt=["link"],St=["artLink"],Mt=["eventLink"];function Et(l,t){if(l&1){let e=x();a(0,"ion-item",2)(1,"ion-input",5),C("ngModelChange",function(i){c(e);let o=m(2);return h(o.pin,i)||(o.pin=i),p(i)}),u("ionChange",function(){c(e);let i=m(2);return p(i.changed())}),r()()}if(l&2){let e=m(2);s(),_("ngModel",e.pin)}}function kt(l,t){if(l&1){let e=x();a(0,"ion-item",2)(1,"ion-textarea",6),C("ngModelChange",function(i){c(e);let o=m(2);return h(o.directionsText,i)||(o.directionsText=i),p(i)}),u("ionChange",function(){c(e);let i=m(2);return p(i.changed())}),r()()}if(l&2){let e=m(2);s(),g("spellcheck",!0)("rows",6)("autoGrow",!0),_("ngModel",e.directionsText)}}function Vt(l,t){if(l&1){let e=x();a(0,"ion-card")(1,"ion-card-header")(2,"ion-card-title"),d(3," Options "),r()(),a(4,"ion-card-content")(5,"ion-item")(6,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Camp/Art Registration","Enable if you allow new camps to be registered. Disable you are not accepting camp registration yet."))}),r(),a(7,"ion-toggle",1),u("ionChange",function(i){c(e);let o=m();return p(o.changed("camp",i))}),C("ngModelChange",function(i){c(e);let o=m();return h(o.enabled,i)||(o.enabled=i),p(i)}),d(8,"Allow Camp/Art Registration"),r()(),a(9,"ion-item")(10,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Event Registration","Choose whether event registration is allowed by users who are not theme camp leads or artists."))}),r(),a(11,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.eventRegistration,i)||(o.eventRegistration=i),p(i)}),d(12,"Allow Event Registration by the public"),r()(),a(13,"ion-item")(14,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Event Editing","Allows events or music to be edited. "))}),r(),a(15,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.eventEditing,i)||(o.eventEditing=i),p(i)}),d(16,"Allow Event/Music Editing"),r()(),a(17,"ion-item")(18,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Music Registration","Allow music to be registered at camps, art and mutant vehicles."))}),r(),a(19,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.musicRegistration,i)||(o.musicRegistration=i),p(i)}),d(20,"Allow Music Registration"),r()(),a(21,"ion-item")(22,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Art Editing","Allows art owners that have already registered to edit their art details."))}),r(),a(23,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.artEditing,i)||(o.artEditing=i),p(i)}),d(24,"Allow Art Editing"),r()(),a(25,"ion-item")(26,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Hide Camps, Art and Events","Hides camps, art, and events from the dust app."))}),r(),a(27,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.hideCampsArtEvents,i)||(o.hideCampsArtEvents=i),p(i)}),d(28,"Hide Camps, Art & Events"),r()(),a(29,"ion-item")(30,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Require PIN","Whether to require a PIN to be entered to access the event."))}),r(),a(31,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.requirePin,i)||(o.requirePin=i),p(i)}),d(32,"Require PIN"),r()(),f(33,Et,2,1,"ion-item",2),a(34,"ion-item")(35,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Directions","Whether to show text when the directions button is clicked."))}),r(),a(36,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.directions,i)||(o.directions=i),p(i)}),d(37,"Text Based Directions"),r()(),f(38,kt,2,4,"ion-item",2),r()(),a(39,"ion-card")(40,"ion-card-header")(41,"ion-card-title"),d(42," Moderation "),r(),a(43,"ion-card-subtitle"),d(44,"Choose how to moderate content. Content moderation by OpenAI detects harassment and threats, hate and hate-based violence, illicit and violent wrongdoing, self-harm, sexual content, and violence."),r()(),a(45,"ion-card-content")(46,"ion-item")(47,"ion-radio-group",3),C("ngModelChange",function(i){c(e);let o=m();return h(o.moderationType,i)||(o.moderationType=i),p(i)}),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),a(48,"ion-radio",4),d(49,"None "),I(50,"ion-note"),r(),a(51,"ion-radio",4),d(52,"Yes "),a(53,"ion-note"),d(54," - but publish in the dust app"),r()(),a(55,"ion-radio",4),d(56,"Yes "),a(57,"ion-note"),d(58," - but hide in the dust app until resolved"),r()()()()()()}if(l&2){let e=m();s(7),_("ngModel",e.enabled),s(4),_("ngModel",e.eventRegistration),s(4),_("ngModel",e.eventEditing),s(4),_("ngModel",e.musicRegistration),s(4),_("ngModel",e.artEditing),s(4),_("ngModel",e.hideCampsArtEvents),s(4),_("ngModel",e.requirePin),s(2),v(e.requirePin?33:-1),s(3),_("ngModel",e.directions),s(2),v(e.directions?38:-1),s(9),_("ngModel",e.moderationType),s(),g("value",0),s(3),g("value",1),s(4),g("value",2)}}function It(l,t){if(l&1&&(a(0,"ion-card")(1,"ion-card-content")(2,"ion-card-header")(3,"ion-card-title"),d(4," Registration "),r(),a(5,"ion-card-subtitle"),d(6,"Use this link on your website to register camps, events and art."),r()(),I(7,"app-url-link",7),a(8,"ion-accordion-group")(9,"ion-accordion",8)(10,"ion-item",9),d(11,"Advanced"),r(),a(12,"div",10)(13,"ion-list",2)(14,"ion-card-header")(15,"ion-card-subtitle"),d(16,"These can be used on your website to register camps, events and art."),r()(),I(17,"app-url-link",11)(18,"app-url-link",12)(19,"app-url-link",13)(20,"app-web-links",14),r()()()()()()),l&2){let e=m();s(7),g("url",e.burnUrl),s(10),g("url",e.url)("enabled",!!e.enabled),s(),g("url",e.eventUrl)("enabled",!!e.eventEditing),s(),g("url",e.artUrl)("enabled",!!e.enabled),s(),g("vanity",e.vanity())}}var se=class se{constructor(){this.api=b(Q);this.toastButtons=[{text:"Dismiss",role:"cancel"}];this.url="";this.burnUrl="";this.artUrl="";this.eventUrl="";this.mapDirection=F();this.directionsText=void 0;this.vanity=F("");this.mode=F("options");oe({informationCircleOutline:ke})}ngOnInit(){let t=this.api.vanity();this.burnUrl=`https://${t}.dust.events`,this.url=`${document.location.protocol}//${document.location.host}/${t}/camps`,this.artUrl=`${document.location.protocol}//${document.location.host}/${t}/art`,this.eventUrl=`${document.location.protocol}//${document.location.host}/${t}/events`}copy(){let t=this.link.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyArt(){let t=this.artLink.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyEventUrl(){let t=this.eventLink.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}changed(t,e){t=="camp"&&e.detail.checked&&(this.campEditing=!0,this.artEditing=!0,this.eventEditing=!0),this.requirePin||(this.pin=void 0),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.api.festivalId&&(this.pin>9999&&(this.pin=9999),this.api.updateFestivalSettings({id:this.api.festivalId,camp_registration:this.enabled,event_registration:this.eventRegistration,music_registration:this.musicRegistration,event_editing:this.eventEditing,camp_editing:this.campEditing,art_editing:this.artEditing,hidden_features:this.hideCampsArtEvents?1:0,map_direction:this.mapDirection(),directions:this.directions?this.directionsText:void 0,pin:this.requirePin?this.pin:void 0,moderationType:this.ensureNumber(this.moderationType)}))},3e3)}ensureNumber(t){if(t==null||t==="")return 0;let e=Number(t);return isNaN(e)?0:e}message(t,e){this.api.sendMessage(e,0,t)}};se.\u0275fac=function(e){return new(e||se)},se.\u0275cmp=S({type:se,selectors:[["app-camp-registration"]],viewQuery:function(e,n){if(e&1&&(j(Tt,5),j(St,5),j(Mt,5)),e&2){let i;Y(i=Z())&&(n.link=i.first),Y(i=Z())&&(n.artLink=i.first),Y(i=Z())&&(n.eventLink=i.first)}},inputs:{enabled:"enabled",eventRegistration:"eventRegistration",musicRegistration:"musicRegistration",eventEditing:"eventEditing",campEditing:"campEditing",artEditing:"artEditing",requirePin:"requirePin",hideCampsArtEvents:"hideCampsArtEvents",mapDirection:[1,"mapDirection"],directions:"directions",directionsText:"directionsText",pin:"pin",moderationType:"moderationType",vanity:[1,"vanity"],mode:[1,"mode"]},decls:2,vars:2,consts:[["slot","start","name","information-circle-outline",3,"click"],["labelPlacement","start",3,"ionChange","ngModelChange","ngModel"],["lines","none"],["mode","md",3,"ngModelChange","ionChange","ngModel"],["justify","start","labelPlacement","end",3,"value"],["maxlength","4","type","number","placeholder","PIN",3,"ngModelChange","ionChange","ngModel"],["labelPlacement","stacked","label","Directions","placeholder","Describe how an attendee will get to the event",3,"ngModelChange","ionChange","spellcheck","rows","autoGrow","ngModel"],["title","Burn URL","description","Copy this link and use it on your website for registration of camps, art and events",3,"url"],["value","first"],["slot","header"],["slot","content"],["title","Camp Registration URL","description","Copy this link and use it on your website to allow people to register their camp.",3,"url","enabled"],["title","Event Registration URL","description","Copy this link and use it on your website to allow people to register an event in open camping or a described location (not a theme camp or art piece).",3,"url","enabled"],["title","Art Registration URL","description","Copy this link and use it on your website to allow people to register their art.",3,"url","enabled"],[3,"vanity"]],template:function(e,n){e&1&&(f(0,Vt,59,14),f(1,It,21,8,"ion-card")),e&2&&(v(n.mode()==="options"?0:-1),s(),v(n.mode()==="registration"?1:-1))},dependencies:[Ke,Me,z,ne,lt,N,W,te,A,L,V,D,U,R,P,B,Ve,Ye,Ze,Ie,ot,at],styles:[".url[_ngcontent-%COMP%]{color:var(--ion-color-dark)}ion-icon[_ngcontent-%COMP%]{cursor:pointer}ion-card-subtitle[_ngcontent-%COMP%]{word-wrap:break-word;white-space:normal;width:95%;margin-left:1rem}"]});var Fe=se;var le=class le{constructor(){this.username=E("");this.server=E("");this.inboxEmail=E("");this.rssFeed=E("");this.primaryColor=E("");this.saved=q();this.saving=w(!1);this.alert=b(H)}save(){return y(this,null,function*(){if(this.username()==""&&this.server()==""&&this.inboxEmail()==""&&this.rssFeed()==""&&this.primaryColor()==""){this.saved.emit({mastodonHandle:"",inboxEmail:"",rssFeed:"",theme:null});return}if(this.username().length<2&&this.server().length>0){yield T(this.alert,"Your mastodon username must be specified");return}if(this.server().length<2&&this.username().length>0){yield T(this.alert,"The mastodon server must be specified");return}if(!this.server().includes(".")&&this.username().length>0){yield T(this.alert,"The mastodon server is not valid");return}if(!this.validUsername(this.username())&&this.server().length>0){yield T(this.alert,"The mastodon username is not valid");return}if(!this.validServername(this.server())&&this.username().length>0){yield T(this.alert,"The mastodon server is not valid");return}if(this.primaryColor()){let n=this.getColorValidationError(this.primaryColor());if(n){yield T(this.alert,n);return}}let t=this.username()==""?"":`@${this.username()}@${this.server()}`,e=this.primaryColor()?{primaryColor:this.primaryColor()}:null;this.saved.emit({mastodonHandle:t,inboxEmail:this.inboxEmail(),rssFeed:this.rssFeed(),theme:e}),this.saving.set(!0)})}validUsername(t){return/^[a-zA-Z0-9_]+$/.test(t)}validServername(t){return/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/.test(t)}getColorValidationError(t){let e=t.replace("#",""),n=parseInt(e.substring(0,2),16),i=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16),O=(n*299+i*587+o*114)/1e3,Le=255*.15;return O>255-Le?"The chosen color is too close to white and will clash with light text.":O{this.isOpen()&&this.initializeForm()})}initializeForm(){var e,n,i,o,O;let t=this.field();t?(this.fieldName.set(t.name),this.fieldType.set(t.type),this.maxLines.set((e=t.maxLines)!=null?e:1),this.maxLength.set((n=t.maxLength)!=null?n:1e3),this.optionsText.set((o=(i=t.values)==null?void 0:i.join(` +`))!=null?o:""),this.required.set(t.required),this.scope.set(t.scope),this.helperText.set((O=t.helperText)!=null?O:"")):(this.fieldName.set(""),this.fieldType.set("string"),this.maxLines.set(1),this.maxLength.set(1e3),this.optionsText.set(""),this.required.set(!1),this.scope.set("user"),this.helperText.set(""))}cancel(){this.modal().dismiss(null,"cancel")}save(){return y(this,null,function*(){let t=this.buildFieldDefinition();if(!t)return;let e=_t(t);if(e){yield T(this.alert,e,"Validation Error");return}this.saved.emit(t),this.modal().dismiss(t,"confirm")})}delete(){return y(this,null,function*(){(yield this.presentConfirm("Are you sure you want to delete this question?"))&&(this.deleted.emit(),this.modal().dismiss(null,"delete"))})}onWillDismiss(){this.isOpen.set(!1)}getFieldTypeTooltip(){switch(this.fieldType()){case"string":return"The question is answered by typing a text answer";case"boolean":return"The question is answered by checking a box";case"values":return"The question is answered by choosing an option";default:return""}}getScopeTooltip(){switch(this.scope()){case"user":return"User - the question will appear for the user and can be edited by them";case"admin":return"Admin Only - the question only appears for an administrator and not the camp/art owner";case"readadmin":return"Admin Can View - the question can be answered by the user but will not be able to see or edit it afterwards";default:return""}}buildFieldDefinition(){let t=this.fieldName().trim();if(!t)return T(this.alert,"Question cannot be empty","Validation Error"),null;let e=this.fieldType(),n=this.helperText().trim(),i={name:t,type:e,required:this.required(),scope:this.scope(),helperText:n===""?void 0:n};if(e==="string")i.maxLines=this.maxLines(),i.maxLength=this.maxLength();else if(e==="values"){let o=this.optionsText().split(` +`).map(O=>O.trim()).filter(O=>O!=="");if(o.length===0)return T(this.alert,"Options field must have at least one value","Validation Error"),null;i.values=o}return i}presentConfirm(t){return y(this,null,function*(){return new Promise(e=>y(this,null,function*(){yield(yield this.alert.create({header:"Confirm",message:t,buttons:[{text:"Delete",role:"delete",handler:()=>{e(!0)}},{text:"Cancel",role:"cancel",handler:()=>{e(!1)}}]})).present()}))})}};ce.\u0275fac=function(e){return new(e||ce)},ce.\u0275cmp=S({type:ce,selectors:[["app-custom-field-dialog"]],viewQuery:function(e,n){e&1&&X(n.modal,ye,5),e&2&&$()},inputs:{isOpen:[1,"isOpen"]},outputs:{isOpen:"isOpenChange",saved:"saved",deleted:"deleted"},decls:2,vars:2,consts:[[3,"willDismiss","isOpen","backdropDismiss"],["color","primary"],["slot","start"],[3,"click"],["slot","end"],[3,"click","strong"],[1,"ion-padding"],[1,"border"],[1,"form"],["lines","none"],["label","Question *","labelPlacement","stacked","placeholder","Enter question","type","text",3,"ngModelChange","appHoverTooltip","ngModel"],["label","Helper Text","labelPlacement","stacked","appHoverTooltip","Guidance that appears as a tooltip for the question. Eg 'Provide a full leave no trace plan.'","placeholder","Optional guidance on how to fill out the answer to the question.","rows","3",3,"ngModelChange","ngModel"],[1,"helper-text-counter"],[1,"app-select",3,"appHoverTooltip"],["label","Type *","labelPlacement","stacked","interface","popover","placeholder","Select type",1,"app-select",3,"ngModelChange","ngModel"],["value","string"],["value","boolean"],["value","values"],[1,"ion-padding-start"],["justify","start",3,"ngModelChange","appHoverTooltip","ngModel"],[1,"app-select"],["label","Scope *","labelPlacement","stacked","interface","popover","placeholder","Select scope",1,"app-select",3,"ngModelChange","appHoverTooltip","ngModel"],["value","user"],["value","admin"],["value","readadmin"],[1,"center"],["label","Rows of Text","labelPlacement","stacked","type","number","min","1","max","1000",3,"ngModelChange","ngModel"],["label","Maximum length of answer (characters)","labelPlacement","stacked","type","number","min","1","max","10000",3,"ngModelChange","appHoverTooltip","ngModel"],["label","Options (one per line) *","labelPlacement","stacked","placeholder",`Option 1 +Option 2 +Option 3`,"rows","5",3,"ngModelChange","ngModel"],["color","secondary",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-modal",0),u("willDismiss",function(){return n.onWillDismiss()}),Ae(1,Ut,44,16,"ng-template"),r()),e&2&&g("isOpen",n.isOpen())("backdropDismiss",!1)},dependencies:[N,W,A,ht,xe,k,ye,we,Se,ie,Te,L,V,z,Me,st,et,nt,P,D],styles:["ion-textarea[_ngcontent-%COMP%]{min-height:120px}.helper-text-counter[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-medium);padding:var(--spacing-base) var(--spacing-lg);text-align:right}@media (min-width: 801px){ion-modal[_ngcontent-%COMP%]{--width: 80vw;--min-height: 80vh}}"]});var pe=ce;function Lt(l,t){l&1&&(a(0,"div",0),d(1," These are additional questions for theme camps that are kept private between you and the theme camp owner(s) "),r())}function Wt(l,t){l&1&&(a(0,"div",0),d(1," These are additional questions for artists that are kept private between you and the art owner(s) "),r())}function At(l,t){l&1&&(a(0,"div")(1,"p"),d(2,"Loading fields..."),r()())}function Nt(l,t){if(l&1){let e=x();a(0,"ion-item",5),u("click",function(){let i=c(e).$implicit,o=m(3);return p(o.openEditDialog(i))}),a(1,"ion-label"),d(2),r()()}if(l&2){let e=t.$implicit;s(2),M(" ",e.name," ")}}function Ot(l,t){if(l&1&&(a(0,"ion-list"),Ce(1,Nt,3,1,"ion-item",4,Ne),r()),l&2){let e=m(2);s(),fe(e.schema())}}function qt(l,t){if(l&1&&(a(0,"div")(1,"p"),d(2),r()()),l&2){let e=m(2);s(2),M("You can ask for additional information when someone registers their ",e.schemaType()==="camps"?"Theme Camp":"Art"," by adding fields.")}}function Bt(l,t){if(l&1){let e=x();a(0,"div"),f(1,Ot,3,0,"ion-list"),f(2,qt,3,1,"div"),a(3,"div",2)(4,"ion-button",3),u("click",function(){c(e);let i=m();return p(i.openAddDialog())}),d(5," Add Question "),r()()()}if(l&2){let e=m();s(),v(e.schema().length>0?1:-1),s(),v(e.schema().length===0?2:-1)}}var ue=class ue{constructor(){this.schemaType=F.required();this.schemaChanged=q();this.dialog=ee(pe);this.api=b(Q);this.alert=b(it);this.schema=w([]);this.isLoading=w(!1);this.dialogOpen=w(!1);this.editingField=w(null);oe({add:ct,trash:ut,pencil:pt})}ngOnInit(){this.loadSchema()}loadSchema(){return y(this,null,function*(){this.isLoading.set(!0);try{let t=this.schemaType()==="camps"?yield this.api.getCampSchema():yield this.api.getArtSchema();t.data&&Array.isArray(t.data)?this.schema.set(t.data):this.schema.set([])}catch(t){console.error("Failed to load schema:",t),this.schema.set([])}finally{this.isLoading.set(!1)}})}openAddDialog(){let t=this.dialog();t&&(t.field.set(null),t.schemaType.set(this.schemaType())),this.editingField.set(null),this.dialogOpen.set(!0)}openEditDialog(t){let e=this.dialog();e&&(e.field.set(t),e.schemaType.set(this.schemaType())),this.editingField.set(t),this.dialogOpen.set(!0)}onFieldSaved(t){return y(this,null,function*(){let e=this.schema(),n=this.editingField(),i;n?i=e.map(o=>o.name===n.name?t:o):i=[...e,t],this.schema.set(i),this.dialogOpen.set(!1),this.editingField.set(null),yield this.saveSchema(i)})}onFieldDeleted(){return y(this,null,function*(){let t=this.editingField();if(!t)return;let e=this.schema().filter(n=>n.name!==t.name);this.schema.set(e),this.dialogOpen.set(!1),this.editingField.set(null),yield this.saveSchema(e)})}deleteField(t){return y(this,null,function*(){if(yield this.presentConfirm(`Are you sure you want to delete the field "${t.name}"?`)){let n=this.schema().filter(i=>i.name!==t.name);this.schema.set(n),yield this.saveSchema(n)}})}saveSchema(t){return y(this,null,function*(){try{let e=this.schemaType()==="camps"?yield this.api.saveCampSchema(t):yield this.api.saveArtSchema(t);e.message&&e.message.includes("error")?yield T(this.alert,e.message,"Error"):this.schemaChanged.emit(t)}catch(e){console.error("Failed to save schema:",e),yield T(this.alert,`Failed to save schema: ${e}`,"Error")}})}presentConfirm(t){return y(this,null,function*(){return new Promise(e=>y(this,null,function*(){yield(yield this.alert.create({header:"Confirm",message:t,buttons:[{text:"Delete",role:"delete",handler:()=>{e(!0)}},{text:"Cancel",role:"cancel",handler:()=>{e(!1)}}]})).present()}))})}getFieldTypeLabel(t){switch(t){case"string":return"Text";case"boolean":return"Y/N";case"values":return"Options";default:return t}}getScopeLabel(t){switch(t){case"user":return"User";case"admin":return"Admin Only";case"readadmin":return"Admin Can View";default:return t}}};ue.\u0275fac=function(e){return new(e||ue)},ue.\u0275cmp=S({type:ue,selectors:[["app-custom-fields-editor"]],viewQuery:function(e,n){e&1&&X(n.dialog,pe,5),e&2&&$()},inputs:{schemaType:[1,"schemaType"]},outputs:{schemaChanged:"schemaChanged"},decls:10,vars:6,consts:[[1,"subtitle-text"],[3,"isOpenChange","saved","deleted","isOpen"],[1,"row-center","ion-padding"],["size","small","color","primary",3,"click"],["button",""],["button","",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-card")(1,"ion-card-header")(2,"ion-card-title"),d(3),r(),f(4,Lt,2,0,"div",0),f(5,Wt,2,0,"div",0),r(),a(6,"ion-card-content"),f(7,At,3,0,"div"),f(8,Bt,6,2,"div"),r()(),a(9,"app-custom-field-dialog",1),C("isOpenChange",function(o){return h(n.dialogOpen,o)||(n.dialogOpen=o),o}),u("saved",function(o){return n.onFieldSaved(o)})("deleted",function(){return n.onFieldDeleted()}),r()),e&2&&(s(3),M(" ",n.schemaType()==="camps"?"Theme Camp Questions":"Art Questions"," "),s(),v(n.schemaType()==="camps"?4:-1),s(),v(n.schemaType()==="art"?5:-1),s(2),v(n.isLoading()?7:-1),s(),v(n.isLoading()?-1:8),s(),_("isOpen",n.dialogOpen))},dependencies:[k,L,V,be,P,D,R,U,pe],styles:["ion-card[_ngcontent-%COMP%]{margin:var(--spacing-lg) 0}ion-item[_ngcontent-%COMP%]{--padding-start: 0;--padding-end: 0}ion-button[_ngcontent-%COMP%]{margin:0 var(--spacing-sm)}p[_ngcontent-%COMP%]{margin:0;font-size:var(--font-size-xl);color:var(--ion-color-medium)}span[_ngcontent-%COMP%]{margin-left:var(--spacing-base)}.subtitle-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-medium);white-space:normal;word-wrap:break-word;overflow-wrap:break-word;line-height:1.4;margin-top:var(--spacing-base)}"]});var Ue=ue;var zt=()=>["Live Music","Bipoc","Wheelchair Accessible"],Qt=(l,t)=>t.id;function Ht(l,t){if(l&1&&(a(0,"ion-segment-button",4),d(1),r()),l&2){let e=t.$implicit;g("value",e.id),s(),M(" ",e.label," ")}}function jt(l,t){if(l&1&&I(0,"app-camp-registration",8),l&2){let e=m(2);g("enabled",e.festival.camp_registration)("eventRegistration",e.festival.event_registration)("musicRegistration",e.festival.music_registration)("eventEditing",e.festival.event_editing)("campEditing",e.festival.camp_editing)("artEditing",e.festival.art_editing)("mapDirection",e.festival.map_direction)("pin",e.festival.pin)("directionsText",e.festival.directions)("hideCampsArtEvents",e.festival.hidden_features)("directions",e.festival.directions!==null)("requirePin",e.festival.pin!==null)("vanity",e.festival.vanity)("moderationType",e.festival.moderationType)}}function Yt(l,t){if(l&1&&I(0,"app-camp-registration",9),l&2){let e=m(2);g("enabled",e.festival.camp_registration)("eventRegistration",e.festival.event_registration)("musicRegistration",e.festival.music_registration)("eventEditing",e.festival.event_editing)("campEditing",e.festival.camp_editing)("artEditing",e.festival.art_editing)("mapDirection",e.festival.map_direction)("pin",e.festival.pin)("directionsText",e.festival.directions)("directions",e.festival.directions!==null)("requirePin",e.festival.pin!==null)("vanity",e.festival.vanity)("moderationType",e.festival.moderationType)}}function Zt(l,t){var e;if(l&1){let n=x();a(0,"app-message-settings",15),u("saved",function(o){c(n);let O=m(2);return p(O.saveMessageSettings(o))}),r()}if(l&2){let n=m(2);g("server",n.mastodonServer(n.festival.mastodon_handle))("username",n.mastodonUsername(n.festival.mastodon_handle))("inboxEmail",n.festival.inbox_email)("rssFeed",n.festival.rss_feed)("primaryColor",(e=n.festival.theme==null?null:n.festival.theme.primaryColor)!=null?e:"#f61067")}}function Gt(l,t){if(l&1){let e=x();a(0,"app-placement-settings",16),u("saved",function(i){c(e);let o=m(2);return p(o.savePlacementSettings(i))}),r()}if(l&2){let e=m(2);g("campFormUrl",e.festival.placement_form_camps)("artFormUrl",e.festival.placement_form_art)("mutantVehicleFormUrl",e.festival.placement_form_cars)}}function Jt(l,t){if(l&1){let e=x();a(0,"app-volunteeripate-settings",17),u("saved",function(i){c(e);let o=m(2);return p(o.saveVoluneeripateSettings(i))}),r()}if(l&2){let e=m(2);g("identifier",e.festival.volunteeripate_identifier)("domain",e.festival.volunteeripate_domain)("uniqueId",e.festival.vanity)}}function Kt(l,t){if(l&1){let e=x();a(0,"app-event-types",18),u("eventTypesChange",function(i){c(e);let o=m(2);return p(o.saveEventTypes(i))}),r()}if(l&2){let e=m(2);g("maxTypes",e.festival.max_event_types)("eventTypes",e.festival.event_types)}}function Xt(l,t){if(l&1){let e=x();a(0,"app-event-types",19),u("eventTypesChange",function(i){c(e);let o=m(2);return p(o.saveMusicTypes(i))}),r()}if(l&2){let e=m(2);g("defaultTypes",Oe(3,zt))("maxTypes",e.festival.max_music_types)("eventTypes",e.festival.music_types)}}function $t(l,t){l&1&&I(0,"app-custom-fields-editor",20)(1,"br")(2,"app-custom-fields-editor",20),l&2&&(g("schemaType","camps"),s(2),g("schemaType","art"))}function ei(l,t){if(l&1&&d(0),l&2){let e=m(3);M(" Delete ",e.festival.name," ")}}function ti(l,t){l&1&&d(0," Delete ")}function ii(l,t){if(l&1){let e=x();a(0,"ion-row",21)(1,"ion-col")(2,"ion-text"),d(3),r()(),a(4,"ion-col",22)(5,"ion-button",23),u("click",function(){c(e);let i=m(3);return p(i.clearEvents())}),d(6,"Delete Events"),r()()()}if(l&2){let e=m(3);s(3),M("Delete all events at ",e.festival.name,"? This cannot be undone.")}}function ni(l,t){if(l&1&&d(0),l&2){let e=m(3);M(" Delete ",e.festival.name,"? This cannot be undone. ")}}function oi(l,t){if(l&1&&d(0),l&2){let e=m(3);M(" Delete all camps, events and art at ",e.festival.name,"? This cannot be undone. ")}}function ai(l,t){if(l&1){let e=x();a(0,"ion-card",0)(1,"ion-card-content")(2,"ion-card-header")(3,"ion-card-title"),f(4,ei,1,1)(5,ti,1,0),r()(),a(6,"ion-grid"),f(7,ii,7,1,"ion-row",21),a(8,"ion-row",21)(9,"ion-col")(10,"ion-text"),f(11,ni,1,1)(12,oi,1,1),r()(),a(13,"ion-col",22)(14,"ion-button",23),u("click",function(){c(e);let i=m(2);return p(i.deleteBurn())}),d(15,"Delete All"),r()()()()()()}if(l&2){let e=m(2);s(4),v(e.canDeleteBurn?4:5),s(3),v(e.canDeleteBurn?-1:7),s(4),v(e.canDeleteBurn?11:12)}}function ri(l,t){if(l&1&&(a(0,"div",7),f(1,jt,1,14,"app-camp-registration",8),f(2,Yt,1,13,"app-camp-registration",9),f(3,Zt,1,5,"app-message-settings",10),f(4,Gt,1,3,"app-placement-settings",11),f(5,Jt,1,3,"app-volunteeripate-settings",12),f(6,Kt,1,2,"app-event-types",13),f(7,Xt,1,4,"app-event-types",14),f(8,$t,3,2),f(9,ai,16,3,"ion-card",0),r()),l&2){let e=m();s(),v(e.activeSection()==="options"?1:-1),s(),v(e.activeSection()==="registration"?2:-1),s(),v(e.activeSection()==="settings"?3:-1),s(),v(e.activeSection()==="placement"?4:-1),s(),v(e.activeSection()==="volunteeripate"?5:-1),s(),v(e.activeSection()==="eventTypes"?6:-1),s(),v(e.activeSection()==="musicTypes"?7:-1),s(),v(e.activeSection()==="questions"?8:-1),s(),v(e.activeSection()==="delete"?9:-1)}}var ge=class ge{constructor(){this.vanity=F();this.api=b(Q);this.location=b(Be);this.alert=b(H);this.canDeleteBurn=!1;this.router=b(ze);this.activeSection=w("options");this.sections=[{id:"options",label:"Options"},{id:"registration",label:"Registration"},{id:"settings",label:"Settings"},{id:"placement",label:"Placement"},{id:"volunteeripate",label:"Volunteeripate"},{id:"eventTypes",label:"Event Types"},{id:"musicTypes",label:"Music Types"},{id:"questions",label:"Questions"},{id:"delete",label:"Delete"}]}ngOnInit(){return y(this,null,function*(){var e,n;let t=this.vanity();t&&(this.festival=yield this.api.getFestivalByVanity(t,!0,!1),this.festival&&!((e=this.festival)!=null&&e.max_event_types)&&(this.festival.max_event_types=2),this.festival&&!((n=this.festival)!=null&&n.max_music_types)&&(this.festival.max_music_types=2))})}saveEventTypes(t){return y(this,null,function*(){this.festival&&(this.festival.event_types=t.eventTypes,this.festival.max_event_types=t.maxTypes,yield this.api.setEventTypes(this.festival),this.location.back())})}saveMusicTypes(t){return y(this,null,function*(){this.festival&&(this.festival.music_types=t.eventTypes,this.festival.max_music_types=t.maxTypes,yield this.api.setMusicTypes(this.festival),this.location.back())})}saveVoluneeripateSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setVolunteeripateSettings(this.festival.vanity,t),this.location.back())})}savePlacementSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setPlacementSettings(this.festival.vanity,t),this.location.back())})}saveMessageSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setMessageSettings({mastodon_handle:t.mastodonHandle,inbox_email:t.inboxEmail,festival_vanity:this.festival.vanity,rss_feed:t.rssFeed,theme:t.theme}),this.location.back())})}deleteBurn(){return y(this,null,function*(){(yield this.clearData(this.canDeleteBurn))&&(this.canDeleteBurn=!0)})}clearData(t){return y(this,null,function*(){var e,n;return this.api.isAdmin(this.api.festivalId)?!(yield _e(this.alert,t?`Are you sure you want to delete ${(e=this.festival)==null?void 0:e.name}?`:"Are you sure you want to delete all camps, art and events?","Delete"))||!(yield _e(this.alert,t?`Are you super sure you want to DELETE ${(n=this.festival)==null?void 0:n.name.toUpperCase()}?`:"Are you super sure you want to DELETE ALL CAMPS, ARTS & EVENTS?","Yes"))?!1:(yield this.api.clearData(t),t||this.api.sendMessage('All camps, art and events have been deleted. Be sure to click "Publish" to apply the changes to the app.'),this.api.clearCache(),t&&(this.api.signOut(),this.router.navigateByUrl("/auth")),!0):(this.api.sendMessage("This feature is not available to you."),!1)})}mastodonUsername(t){return dt(t)}mastodonServer(t){return mt(t)}clearEvents(){return y(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield _e(this.alert,"Are you sure you want to delete all events?","Delete"))||!(yield _e(this.alert,"Are you super sure you want DELETE events?","Yes")))return;yield this.api.clearEvents(),this.api.sendMessage('All events have been deleted. Be sure to click "Publish" to apply the changes to the app.'),this.api.clearCache()}})}};ge.\u0275fac=function(e){return new(e||ge)},ge.\u0275cmp=S({type:ge,selectors:[["app-settings"]],inputs:{vanity:[1,"vanity"]},decls:13,vars:4,consts:[["color","primary"],["slot","start"],["routerLink","../"],["mode","md",3,"ngModelChange","scrollable","ngModel"],[3,"value"],[3,"fullscreen"],[1,"border"],[1,"pad-below","ion-padding-top"],["mode","options",3,"enabled","eventRegistration","musicRegistration","eventEditing","campEditing","artEditing","mapDirection","pin","directionsText","hideCampsArtEvents","directions","requirePin","vanity","moderationType"],["mode","registration",3,"enabled","eventRegistration","musicRegistration","eventEditing","campEditing","artEditing","mapDirection","pin","directionsText","directions","requirePin","vanity","moderationType"],[3,"server","username","inboxEmail","rssFeed","primaryColor"],[3,"campFormUrl","artFormUrl","mutantVehicleFormUrl"],[3,"identifier","domain","uniqueId"],[3,"maxTypes","eventTypes"],["typeTitle","Music Types",3,"defaultTypes","maxTypes","eventTypes"],[3,"saved","server","username","inboxEmail","rssFeed","primaryColor"],[3,"saved","campFormUrl","artFormUrl","mutantVehicleFormUrl"],[3,"saved","identifier","domain","uniqueId"],[3,"eventTypesChange","maxTypes","eventTypes"],["typeTitle","Music Types",3,"eventTypesChange","defaultTypes","maxTypes","eventTypes"],[3,"schemaType"],[1,"ion-align-items-center"],["size","auto",1,"ion-justify-content-end"],["color","dark",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),I(3,"ion-back-button"),r(),a(4,"ion-title",2),d(5,"Settings"),r()(),a(6,"ion-toolbar")(7,"ion-segment",3),C("ngModelChange",function(o){return h(n.activeSection,o)||(n.activeSection=o),o}),Ce(8,Ht,2,2,"ion-segment-button",4,Qt),r()()(),a(10,"ion-content",5)(11,"div",6),f(12,ri,10,9,"div",7),r()()),e&2&&(s(7),g("scrollable",!0),_("ngModel",n.activeSection),s(),fe(n.sections),s(2),g("fullscreen",!0),s(2),v(n.festival?12:-1))},dependencies:[$e,rt,Xe,Ge,Je,R,P,k,U,D,je,ie,xe,we,Te,Se,N,W,A,tt,Fe,gt,Pe,Re,De,Ue],styles:["ion-segment-button[_ngcontent-%COMP%]{font-weight:700;font-size:var(--font-size-small)}"]});var ft=ge;export{ft as SettingsPage}; diff --git a/.admin-app/chunk-7EVOL74U.js b/.admin-app/chunk-7EVOL74U.js new file mode 100644 index 00000000..feb992f8 --- /dev/null +++ b/.admin-app/chunk-7EVOL74U.js @@ -0,0 +1 @@ +import{a as ve}from"./chunk-KP53OIUL.js";import{a as Ce}from"./chunk-CBT26PAQ.js";import{a as ge}from"./chunk-KCPLCCSF.js";import{a as ue}from"./chunk-CPOGSMOE.js";import{a as he}from"./chunk-U3YCGDGQ.js";import{a as fe}from"./chunk-K6ROGVP7.js";import"./chunk-QF32E4V4.js";import{H as pe,K as _e,e as M,m as me,o as ce,u as V}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as I,Aa as U,Ba as g,Ca as P,Cc as ie,E as k,Eb as R,Fc as ne,Ga as f,Gc as ae,H as c,Ha as p,Ia as h,Mc as se,Nc as oe,P as F,Pc as le,U as T,Uc as re,Va as O,Vc as de,Xb as Z,Y as y,Yb as A,Z as x,_a as N,aa as W,ba as E,ca as _,da as s,dc as Q,ea as o,ec as Y,fa as v,fc as j,gc as H,ka as b,ma as u,mc as J,nc as K,oa as l,p as S,s as r,sa as L,sc as X,t as d,ta as B,tc as $,ua as D,ub as q,vc as ee,wc as te,xa as z,xb as G}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as w}from"./chunk-LNJ3S2LQ.js";var xe=["gps"];function be(m,a){if(m&1&&v(0,"img",12),m&2){let t=l(2);_("src",t.imageUrl,k)}}function Me(m,a){m&1&&(s(0,"p"),g(1,"Click to choose an image"),o())}function Se(m,a){if(m&1){let t=b();s(0,"ion-datetime",28),h("ngModelChange",function(e){r(t);let i=l(2);return p(i.festival.start_time,e)||(i.festival.start_time=e),d(e)}),u("ionChange",function(){r(t);let e=l(2);return d(e.startChanged())}),o()}if(m&2){let t=l(2);_("showDefaultButtons",!0),f("ngModel",t.festival.start_time)}}function Te(m,a){if(m&1){let t=b();s(0,"ion-datetime",29),h("ngModelChange",function(e){r(t);let i=l(2);return p(i.festival.end_time,e)||(i.festival.end_time=e),d(e)}),u("ionChange",function(){r(t);let e=l(2);return d(e.endChanged())}),o()}if(m&2){let t=l(2);_("showDefaultButtons",!0),f("ngModel",t.festival.end_time)}}function Pe(m,a){if(m&1&&(s(0,"ion-select-option",21),g(1),o()),m&2){let t=a.$implicit;_("value",t),c(),P(t)}}function Ve(m,a){if(m&1){let t=b();s(0,"ion-button",30),u("click",function(){r(t);let e=l(2);return d(e.delete())}),g(1,"Delete"),o()}m&2&&_("disabled",!0)}function ke(m,a){if(m&1){let t=b();s(0,"div",7)(1,"ion-card")(2,"ion-card-content")(3,"ion-list",8)(4,"ion-item")(5,"ion-input",9),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.name,e)||(i.festival.name=e),d(e)}),o()(),s(6,"ion-item")(7,"ion-textarea",10),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.description,e)||(i.festival.description=e),d(e)}),o()(),s(8,"div",11),u("click",function(){r(t);let e=z(49);return d(e.click())}),y(9,be,1,1,"img",12),y(10,Me,2,0,"p"),o(),s(11,"ion-item")(12,"app-emails",13),h("emailsChange",function(e){r(t);let i=l();return p(i.festival.admins,e)||(i.festival.admins=e),d(e)}),o()(),s(13,"ion-item")(14,"ion-input",14),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.region,e)||(i.festival.region=e),d(e)}),o()(),s(15,"app-link-input",15),h("modelChange",function(e){r(t);let i=l();return p(i.festival.website,e)||(i.festival.website=e),d(e)}),u("iconClick",function(){r(t);let e=l();return d(e.openWebsite())}),o(),s(16,"ion-item")(17,"ion-checkbox",16),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.unknown_dates,e)||(i.festival.unknown_dates=e),d(e)}),g(18,"Dates are not known yet"),o()(),s(19,"ion-item")(20,"ion-label"),g(21,"Start"),o(),v(22,"ion-datetime-button",17),o(),s(23,"ion-modal",18),T(24,Se,1,2,"ng-template"),o(),s(25,"ion-item")(26,"ion-label"),g(27,"End"),o(),v(28,"ion-datetime-button",19),o(),s(29,"ion-modal",18),T(30,Te,1,2,"ng-template"),o(),s(31,"ion-item")(32,"ion-select",20),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.timezone,e)||(i.festival.timezone=e),d(e)}),W(33,Pe,2,2,"ion-select-option",21,I),o()(),s(35,"ion-item")(36,"ion-checkbox",16),h("ngModelChange",function(e){r(t);let i=l();return p(i.festival.active,e)||(i.festival.active=e),d(e)}),g(37,"Display in the Dust app"),o()(),s(38,"ion-item")(39,"ion-label",22),u("click",function(){r(t);let e=l();return d(e.openLocation())}),s(40,"app-tooltip",23),g(41," Location "),o()(),s(42,"app-gps",24,0),h("latChange",function(e){r(t);let i=l();return p(i.festival.gpsLat,e)||(i.festival.gpsLat=e),d(e)})("lngChange",function(e){r(t);let i=l();return p(i.festival.gpsLng,e)||(i.festival.gpsLng=e),d(e)}),u("gpsChange",function(e){r(t);let i=l();return d(i.gpsChanged(e))}),o()()(),s(44,"div",25),y(45,Ve,2,1,"ion-button",26),s(46,"ion-button",5),u("click",function(){r(t);let e=l();return d(e.save())}),g(47,"Save"),o()(),s(48,"input",27,1),u("change",function(e){r(t);let i=l();return d(i.onFileSelected(e))}),o()()()()}if(m&2){let t=l();c(5),f("ngModel",t.festival.name),c(2),_("spellcheck",!0)("rows",6)("autoGrow",!0),f("ngModel",t.festival.description),c(),U(t.uploading?"disabled":""),c(),x(t.imageUrl?9:-1),c(),x(t.imageUrl?-1:10),c(2),_("isAdmin",!0)("isOwner",!0)("label","Administrator Emails")("placeholder","Comma delimited list of email addresses"),f("emails",t.festival.admins),c(2),f("ngModel",t.festival.region),c(),f("model",t.festival.website),c(2),f("ngModel",t.festival.unknown_dates),c(6),_("keepContentsMounted",!0),c(6),_("keepContentsMounted",!0),c(3),_("value",t.festival.timezone),f("ngModel",t.festival.timezone),c(),E(t.timezones),c(3),f("ngModel",t.festival.active),c(6),f("lat",t.festival.gpsLat)("lng",t.festival.gpsLng),c(3),x(t.canDelete?45:-1)}}function Fe(m,a){m&1&&v(0,"app-spinner")}var C=class C{constructor(){this.vanity=O();this.busy=!0;this.canDelete=!1;this.uploading=!1;this.endModified=!1;this.timezones=[];this.imageChanged=!1;this.location=S(N);this.api=S(_e);this.festival={name:"",vanity:"",admins:"",contact:"",description:"",mastodon_handle:"",inbox_email:"",region:"",website:"",pin_size_multiplier:1,max_music_types:2,start_time:new Date().toISOString(),end_time:new Date().toISOString(),music_registration:!1,camp_registration:!1,gpsLat:0,gpsLng:0,camp_editing:!1,music_types:"",event_registration:!1,placement_form_art:"",placement_form_camps:"",moderationType:0,approved:!1,event_editing:!1,art_editing:!1,archived:!1,map_direction:0,event_types:"",max_event_types:2,pin:void 0,directions:void 0,unknown_dates:!1,placement_form_cars:"",hidden_features:0,volunteeripate_domain:"",volunteeripate_identifier:"",rss_feed:"",theme:null,id:void 0,active:!1,timezone:this.api.currentTimeZone()}}ionViewWillEnter(){return w(this,null,function*(){let a=this.api.festivalId,t=this.vanity();t?yield this.api.setFestivalByVanity(t):a=void 0,this.festival=yield this.api.getFestival(a,{cached:!1}),this.canDelete=!!this.festival.id,this.festival.timezone||(this.festival.timezone=this.api.currentTimeZone()),this.imageUrl=this.api.imageURL(this.festival.imageUrl),this.busy=!1,this.timezones=Intl.supportedValuesOf("timeZone")})}startChanged(){this.endModified||(this.festival.end_time=ce(me(this.festival.start_time),24).toISOString())}endChanged(){this.endModified=!0}delete(){}gpsChanged(a){this.festival.gpsLat=a.lat,this.festival.gpsLng=a.lng}fixUniqueId(){this.festival.id||(this.festival.vanity=this.festival.name.toLowerCase().trim().replace(/\s+/g,"-").replace(/[.,]/g,""))}onFileSelected(a){return w(this,null,function*(){let t=a.target.files[0];if(!t)return;let n={width:0,height:0};if(this.blob=yield ge(t,{quality:90,width:500},n),n.width!==n.height){this.api.sendMessage("The image needs to be square (width and height must be equal)");return}let e=URL.createObjectURL(this.blob);this.imageUrl=e,this.imageChanged=!0})}setTime(a,t){return a.substring(0,10)+t}save(){return w(this,null,function*(){this.festival.start_time=this.setTime(this.festival.start_time,"T00:00:00"),this.festival.end_time=this.setTime(this.festival.end_time,"T23:59:59");let a=new Date(this.festival.start_time+V(this.festival.timezone)),t=new Date(this.festival.end_time+V(this.festival.timezone)),n=Math.round((t-a)/1e3/60/60);if(isNaN(n)){this.api.sendMessage("The start and end time must be set");return}if(n<0){this.api.sendMessage("The end time must be after the start time");return}if(n<24){this.api.sendMessage("The event must be at least 1 day long");return}if(n>720){this.api.sendMessage("The event cannot be longer than 30 days");return}if(this.festival.name.length<4){this.api.sendMessage("The event name must be set");return}let e=new Date().getFullYear();if((this.festival.name.includes(e.toString())||this.festival.name.includes((e+1).toString())||this.festival.name.includes((e-1).toString()))&&!this.festival.archived){this.api.sendMessage("The event name cannot include the year in it");return}if(this.fixUniqueId(),this.festival.vanity.length<4){this.api.sendMessage("The unique identifier must be set");return}if(this.festival.vanity.includes(" ")){this.api.sendMessage("The unique identifier cannot contain spaces");return}if(this.festival.description.length<20){this.api.sendMessage("The event description must be at least 20 characters long");return}if(this.festival.timezone||(this.festival.timezone=this.api.currentTimeZone()),this.festival.active){if(M(this.festival.imageUrl)&&M(this.imageUrl)){this.api.sendMessage("You need an image to display the event in the dust app");return}if(this.festival.gpsLat==0||this.festival.gpsLng==0){this.api.sendMessage("You need to set the GPS location to display the event in the dust app");return}if(M(this.festival.region)){this.api.sendMessage("You need to set the region to display the event in the dust app");return}}if(!M(this.festival.website)&&!this.festival.website.startsWith("https://")){this.api.sendMessage("The website must start with https://");return}this.busy=!0;try{let i=yield this.api.addFestival(this.festival);if(i.message&&i.message!=""){this.api.sendMessage(i.message),this.busy=!1;return}else if(i.id&&this.imageChanged){let ye=yield this.api.getFestival(i.id,{cached:!1});this.api.setFestival(ye),yield this.uploadImage(i.id)}this.api.clearCache(),this.busy=!1,this.location.back()}catch(i){console.error(i),this.busy=!1;return}})}uploadImage(a){return w(this,null,function*(){if(this.blob)try{this.uploading=!0,this.festival.imageUrl=yield this.api.setImage(this.blob,a);let t=yield this.api.addFestival(this.festival);t.message&&this.api.sendMessage(t.message),this.imageChanged=!1}finally{this.uploading=!1}})}openLocation(){let a=`https://www.google.com/maps/search/?api=1&query=${this.festival.gpsLat},${this.festival.gpsLng}`;window.open(a,"_blank")}openWebsite(){if(this.festival.website){let a=pe(this.festival.website);window.open(a,"_blank")}}};C.\u0275fac=function(t){return new(t||C)},C.\u0275cmp=F({type:C,selectors:[["app-festival"]],viewQuery:function(t,n){if(t&1&&L(xe,5),t&2){let e;B(e=D())&&(n.gps=e.first)}},inputs:{vanity:[1,"vanity"]},decls:13,vars:3,consts:[["gps",""],["fileUpload",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],["lines","none"],["label","Burn Name","labelPlacement","stacked","placeholder","Name of the burn",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Description","placeholder","Description of the burn",3,"ngModelChange","spellcheck","rows","autoGrow","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],["helperText","",1,"emails",3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["label","Region","labelPlacement","stacked","placeholder","City, State/Country",3,"ngModelChange","ngModel"],["label","Website","placeholder","eg https://myburn.com",3,"modelChange","iconClick","model"],[3,"ngModelChange","ngModel"],["datetime","datetime"],[3,"keepContentsMounted"],["datetime","datetimeEnd"],["label","Timezone","interface","popover","placeholder","Select the timezone of the event",3,"ngModelChange","value","ngModel"],[3,"value"],[2,"width","100%",3,"click"],["position","left","text","This is used for the directions button in the app. Right click in Google Maps to copy lat/long and paste here."],[3,"latChange","lngChange","gpsChange","lat","lng"],[1,"center"],["color","secondary",3,"disabled"],["type","file",1,"file-input",3,"change"],["presentation","date","minuteValues","0,15,30,45","id","datetime",3,"ngModelChange","ionChange","showDefaultButtons","ngModel"],["presentation","date","minuteValues","0,15,30,45","id","datetimeEnd",3,"ngModelChange","ionChange","showDefaultButtons","ngModel"],["color","secondary",3,"click","disabled"]],template:function(t,n){t&1&&(s(0,"ion-header")(1,"ion-toolbar",2)(2,"ion-buttons",3)(3,"ion-buttons",3),v(4,"ion-back-button"),o()(),s(5,"ion-title"),g(6),o(),s(7,"ion-buttons",4)(8,"ion-button",5),u("click",function(){return n.save()}),g(9,"Save"),o()()()(),s(10,"ion-content",6),y(11,ke,50,25,"div",7)(12,Fe,1,0,"app-spinner"),o()),t&2&&(c(6),P(n.vanity()?"Edit Burn":"New Burn"),c(4),_("fullscreen",!0),c(),x(n.busy?12:11))},dependencies:[R,q,G,X,ae,Y,Z,se,ne,J,j,H,te,$,le,de,ee,K,A,oe,he,re,ie,Q,Ce,fe,ue,ve],styles:[".emails[_ngcontent-%COMP%]{width:100%;padding-right:var(--spacing-base)}"]});var we=C;export{we as FestivalPage}; diff --git a/.admin-app/chunk-7G7LMJ5L.js b/.admin-app/chunk-7G7LMJ5L.js new file mode 100644 index 00000000..6c393379 --- /dev/null +++ b/.admin-app/chunk-7G7LMJ5L.js @@ -0,0 +1 @@ +import{a as $}from"./chunk-YVBFHLPR.js";import{a as Z}from"./chunk-KP53OIUL.js";import{a as Y}from"./chunk-U3YCGDGQ.js";import{aa as Q,h as K,oa as X}from"./chunk-QF32E4V4.js";import{H as L,K as G,l as q}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as l,Ca as I,Eb as V,Fc as z,Ga as x,Gc as R,H as s,Ha as v,Ia as w,Oc as j,P as S,Pc as H,Va as P,Xb as N,Y as g,Z as y,_a as T,ca as f,da as o,dc as O,ea as t,ec as B,fa as p,fc as U,gc as W,ka as C,ma as u,mc as J,oa as c,p as b,s as d,sc as D,t as m,tc as A,ub as E,wc as F,xb as M}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";function ie(k,a){if(k&1){let e=C();o(0,"app-tooltip",11)(1,"ion-button",12),u("click",function(){d(e);let i=c(2);return m(i.moveUp())}),p(2,"ion-icon",13),l(3,"Move Up"),t(),l(4,"\xA0 "),t(),o(5,"ion-button",14),u("click",function(){d(e);let i=c(2);return m(i.delete())}),l(6,"Delete"),t(),l(7,"\xA0 ")}if(k&2){let e=c(2);s(),f("disabled",e.busy)}}function te(k,a){if(k&1){let e=C();o(0,"div",5)(1,"ion-card")(2,"ion-card-content")(3,"ion-list")(4,"ion-item",6)(5,"ion-input",7),w("ngModelChange",function(i){d(e);let r=c();return v(r.link.title,i)||(r.link.title=i),m(i)}),t()(),o(6,"app-link-input",8),w("modelChange",function(i){d(e);let r=c();return v(r.link.url,i)||(r.link.url=i),m(i)}),u("iconClick",function(){d(e);let i=c();return m(i.openLink())}),t(),o(7,"ion-item")(8,"app-note")(9,"b"),l(10,"Examples"),t(),p(11,"br"),o(12,"code"),l(13,"tel:702100200"),t(),l(14," to call a phone number."),p(15,"br"),o(16,"code"),l(17,"mailto:address"),t(),l(18," to open an email client."),p(19,"br"),o(20,"code"),l(21,"https://google.com"),t(),l(22," to open a browser."),t()()(),o(23,"div",9),g(24,ie,8,1),o(25,"ion-button",10),u("click",function(){d(e);let i=c();return m(i.save())}),l(26,"Save"),t()()()()()}if(k&2){let e=c();s(5),x("ngModel",e.link.title),s(),x("model",e.link.url),s(18),y(e.id?24:-1),s(),f("disabled",e.busy)}}var _=class _{constructor(){this.api=b(G);this.location=b(T);this.vanity=P();this.busy=!0;this.link={id:void 0,title:"",url:""};X({arrowUpOutline:K,openOutline:Q})}ionViewWillEnter(){return h(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.id=q(this.id),this.link=yield this.api.getLink(this.id),this.busy=!1})}delete(){return h(this,null,function*(){yield this.api.deleteLink(this.link.id),this.api.clearCache(),this.location.back()})}save(){return h(this,null,function*(){if(this.link.title.length<3){this.api.sendMessage("The link title must be set");return}if(this.link.url.length<3){this.api.sendMessage("The link url must be set");return}this.link.url=L(this.link.url),this.busy=!0;try{let a=yield this.api.addLink(this.link);a.message?this.api.sendMessage(a.message):this.location.back()}finally{this.busy=!1}})}moveUp(){return h(this,null,function*(){this.busy=!0;let a=yield this.api.links(),e=a.findIndex(n=>n.id===this.link.id);if(e!==-1){if(e==0){this.api.sendMessage("The link is the first in the list"),this.busy=!1;return}let n=JSON.parse(JSON.stringify(a[e-1])),i=JSON.parse(JSON.stringify(a[e-1])),r=JSON.parse(JSON.stringify(this.link));n.title=r.title,n.url=r.url,r.title=i.title,r.url=i.url,yield this.api.addLink(r),yield this.api.addLink(n),this.busy=!1,this.location.back()}})}openLink(){if(this.link.url){let a=L(this.link.url);window.open(a,"_blank")}}};_.\u0275fac=function(e){return new(e||_)},_.\u0275cmp=S({type:_,selectors:[["app-link"]],inputs:{vanity:[1,"vanity"],id:"id"},decls:11,vars:3,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],["lines","none"],["label","Title","labelPlacement","stacked","placeholder","Text of the link",3,"ngModelChange","ngModel"],["label","URL","placeholder","URL for the link",3,"modelChange","iconClick","model"],[1,"center"],[3,"click","disabled"],["text","Move higher in the list"],["color","secondary",3,"click","disabled"],["size","small","name","arrow-up-outline"],["color","secondary",3,"click"]],template:function(e,n){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),p(3,"ion-back-button"),t(),o(4,"ion-title"),l(5),t(),o(6,"ion-buttons",2)(7,"ion-button",3),u("click",function(){return n.save()}),l(8,"Save"),t()()()(),o(9,"ion-content",4),g(10,te,27,4,"div",5),t()),e&2&&(s(5),I(n.id?"Link":"Add Link"),s(4),f("fullscreen",!0),s(),y(n.busy?-1:10))},dependencies:[j,Y,V,E,M,$,D,R,B,N,z,J,U,W,F,A,H,O,Z],styles:["code[_ngcontent-%COMP%]{color:var(--ion-color-primary)}"]});var ee=_;export{ee as LinkPage}; diff --git a/.admin-app/chunk-A6WNT7FY.js b/.admin-app/chunk-A6WNT7FY.js deleted file mode 100644 index 58872772..00000000 --- a/.admin-app/chunk-A6WNT7FY.js +++ /dev/null @@ -1 +0,0 @@ -import{a as ze}from"./chunk-VDXUCHAY.js";import{a as Oe}from"./chunk-Q7SRVC5Z.js";import{a as Le}from"./chunk-NIJZXRAZ.js";import{a as Ge}from"./chunk-MTVNVIRQ.js";import{a as Be}from"./chunk-Z5HZYXFK.js";import{a as ke}from"./chunk-GPVDUW6Q.js";import{a as we}from"./chunk-KCPLCCSF.js";import{a as Ie}from"./chunk-5B2MUMUK.js";import{a as k}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{ca as Ee,fa as Te,ja as Ve,y as Me}from"./chunk-LIWDDRYP.js";import{C as xe,K as Se}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as B,Aa as r,Ac as ue,Ba as V,Bc as ge,Ca as A,Db as ie,Dc as he,E as D,Ec as _e,Fa as S,Fc as fe,G as N,Ga as w,H as p,Ha as M,Ia as Q,La as X,Ma as x,Nc as ve,Oa as Z,Oc as ye,P as q,Pc as Pe,Rc as Ce,Sc as be,T as z,Ua as Y,Wb as ne,X as P,Xb as ae,Y as C,Za as j,_ as L,_a as J,aa as G,ba as c,ca as n,cc as oe,da as a,db as K,dc as le,ea as b,ec as re,gb as $,ja as y,la as f,lc as se,na as d,p as I,ra as O,rc as pe,s as u,sa as W,sc as ce,t as g,ta as F,tb as ee,uc as de,vc as me,w as R,wa as U,wb as te,xa as H}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as _}from"./chunk-LNJ3S2LQ.js";var Fe=["map"],Ue=["fileUpload"],Ae=o=>({title:"Upload Map Image",method:o,icon:"cloud-upload-outline"}),Re=o=>({title:"Generate Map",method:o,icon:"map-outline"}),De=o=>({title:"Settings",method:o,icon:"settings-outline"}),Ne=o=>({title:"Clear Camp Locations",method:o,icon:"trash-bin-outline"}),qe=o=>({title:"Clear Art Locations",method:o,icon:"trash-bin-outline"}),He=o=>({title:"Clear Other Locations",method:o,icon:"trash-bin-outline"}),Qe=(o,t,e,l,i,s)=>[o,t,e,l,i,s],Xe=()=>["1","2","3","4","5"];function Ze(o,t){if(o&1){let e=y();n(0,"ion-toolbar")(1,"ion-list")(2,"ion-item",18)(3,"ion-text"),r(4,"Click on the map to place a"),a(),n(5,"ion-select",19),f("ionChange",function(i){u(e);let s=d();return g(s.typeChange(i))}),M("ngModelChange",function(i){u(e);let s=d();return w(s.pinType,i)||(s.pinType=i),g(i)}),n(6,"ion-select-option",20),r(7,"Restroom"),a(),n(8,"ion-select-option",21),r(9,"Gate"),a(),n(10,"ion-select-option",22),r(11,"Greeter Station"),a(),n(12,"ion-select-option",23),r(13,"Shuttle Stop"),a(),n(14,"ion-select-option",24),r(15,"Ice"),a(),n(16,"ion-select-option",25),r(17,"Medical Station"),a(),n(18,"ion-select-option",26),r(19,"GPS"),a()()()(),n(20,"ion-buttons",5),b(21,"app-side",27),a()()}if(o&2){let e=d(),l=U(19);p(5),S("ngModel",e.pinType),c("value",e.pinType),p(16),c("hideProfile",!0)("buttons",Z(16,Qe,x(4,Ae,e.uploadMap(l)),x(6,Re,e.generateMap()),x(8,De,e.openSettings()),x(10,Ne,e.clearCamps()),x(12,qe,e.clearArt()),x(14,He,e.clearPins())))}}function Ye(o,t){o&1&&b(0,"app-spinner",8)}function je(o,t){o&1&&b(0,"app-progress-overlay",9)}function Je(o,t){if(o&1){let e=y();n(0,"ion-content",16)(1,"div",16)(2,"h1"),r(3,"Map Settings"),a(),n(4,"p"),r(5," Choose the direction that North is point on the map."),b(6,"br"),r(7,"This is used to ensure a persons pin on the map is facing the correct direction. "),a(),n(8,"ion-radio-group",28),M("ngModelChange",function(i){u(e);let s=d();return w(s.mapDirection,i)||(s.mapDirection=i),g(i)}),n(9,"div",29)(10,"ion-radio",30),r(11,"Top Left"),a(),n(12,"ion-radio",30),r(13,"Top"),a(),n(14,"ion-radio",31),r(15,"Top Right"),a()(),n(16,"div",29)(17,"ion-radio",30),r(18,"Left"),a(),b(19,"div"),n(20,"ion-radio",31),r(21,"Right"),a()(),n(22,"div",29)(23,"ion-radio",30),r(24,"Bottom Right"),a(),n(25,"ion-radio",30),r(26,"Bottom"),a(),n(27,"ion-radio",31),r(28,"Bottom Left"),a()(),n(29,"div",29)(30,"ion-input",32),M("ngModelChange",function(i){u(e);let s=d();return w(s.pinSizeMultiplier,i)||(s.pinSizeMultiplier=i),g(i)}),a()()()()(),n(31,"ion-toolbar",33)(32,"ion-button",34),f("click",function(){u(e);let i=d();return g(i.applySettings())}),r(33,"Apply"),a()()}if(o&2){let e=d();p(8),S("ngModel",e.mapDirection),p(2),c("value",270),p(2),c("value",0),p(2),c("value",45),p(3),c("value",240),p(3),c("value",90),p(3),c("value",120),p(2),c("value",180),p(2),c("value",210),p(3),S("ngModel",e.pinSizeMultiplier)}}function Ke(o,t){if(o&1&&(n(0,"ion-segment-button",42)(1,"ion-label"),r(2),a()()),o&2){let e=t.$implicit;c("value",Q(e)),p(2),V(e)}}function $e(o,t){if(o&1){let e=y();n(0,"ion-content",16)(1,"div",16)(2,"h1"),r(3,"Generate Map"),a(),n(4,"p"),r(5),a()(),n(6,"ion-list",18)(7,"ion-item"),r(8,"Map Type"),a(),n(9,"ion-segment",35),M("ngModelChange",function(i){u(e);let s=d();return w(s.mapStyle,i)||(s.mapStyle=i),g(i)}),n(10,"ion-segment-button",36)(11,"ion-label"),r(12,"Outdoors"),a()(),n(13,"ion-segment-button",37)(14,"ion-label"),r(15,"Satellite"),a()(),n(16,"ion-segment-button",38)(17,"ion-label"),r(18,"Full"),a()(),n(19,"ion-segment-button",39)(20,"ion-label"),r(21,"Street"),a()(),n(22,"ion-segment-button",40)(23,"ion-label"),r(24,"Light"),a()(),n(25,"ion-segment-button",41)(26,"ion-label"),r(27,"Dark"),a()()()(),n(28,"ion-list",18)(29,"ion-item"),r(30,"Zoom Level"),a(),n(31,"ion-segment",35),M("ngModelChange",function(i){u(e);let s=d();return w(s.zoom,i)||(s.zoom=i),g(i)}),B(32,Ke,3,3,"ion-segment-button",42,L),a()()(),n(34,"ion-toolbar",33)(35,"ion-button",34),f("click",function(){u(e);let i=d();return g(i.createMap(i.mapStyle))}),r(36,"Create"),a()()}if(o&2){let e=d();p(5),A(" Create an image of a map centered at the latitude and longitude of ",e.festivalTitle,". "),p(4),S("ngModel",e.mapStyle),c("value",e.mapStyle),p(22),S("ngModel",e.zoom),c("value",e.zoom),p(),G(X(5,Xe))}}function et(o,t){if(o&1){let e=y();n(0,"div",12)(1,"ion-button",34),f("click",function(){u(e),d();let i=U(19);return g(i.click())}),r(2,"Upload Map Image"),a()()}}function tt(o,t){if(o&1){let e=y();n(0,"div",43),f("click",function(i){u(e);let s=d();return g(s.mapPoint(i,!1))}),n(1,"div",44),r(2),a()()}if(o&2){let e=t.$implicit;H("left",e.px+"px")("top",e.py+"px"),c("title",e.label)("ngClass",e.class+" "+e.visible),p(2),V(e.label)}}function it(o,t){if(o&1&&(n(0,"app-note"),r(1),a()),o&2){let e=d();p(),V(e.mapNote)}}function nt(o,t){if(o&1){let e=y();n(0,"app-gps",46),f("gpsChange",function(i){u(e);let s=d(2);return g(s.applyGPS(i))}),a(),n(1,"app-note")(2,"b"),r(3,"Tip"),a(),r(4,": Right click in Google Maps to copy lat/long and paste here."),a()}if(o&2){let e=d(2);c("lat",e.selected.gpsLat)("lng",e.selected.gpsLng)}}function at(o,t){if(o&1){let e=y();n(0,"app-footer",17)(1,"ion-card",16)(2,"ion-title"),r(3),a(),n(4,"ion-list"),P(5,nt,5,2),a(),n(6,"ion-button",45),f("click",function(){u(e);let i=d();return g(i.delete())}),r(7,"Delete"),a()()()}if(o&2){let e=d();p(3),V(e.selected.label),p(2),C(e.selected&&e.selected.label==="GPS"?5:-1)}}var E=class E{constructor(){this.api=I(Se);this.sanitizer=I($);this.location=I(j);this.alert=I(ke);this.vanity=Y();this.mapUri="";this.pinType="Restrooms";this.pins=[];this.title="";this.busy=!1;this.showGenMap=!1;this.showSettings=!1;this.uploading=!1;this.generating=R(!1);this.zoom="1";this.mapStyle="outdoors-v12";this.mapNote="";this.hasMap=!0;this.festivalTitle="";this.mapDirection=0;this.pinSizeMultiplier=1;Ve({trashBinOutline:Te,cloudUploadOutline:Me,settingsOutline:Ee})}generateMap(){return()=>_(this,null,function*(){this.api.isAdmin(this.api.festivalId)?this.showGenMap=!0:this.api.sendMessage("This feature is not available to you.")})}openSettings(){return()=>_(this,null,function*(){this.api.isAdmin(this.api.festivalId)?(this.showSettings=!0,console.log(this.mapDirection)):this.api.sendMessage("This feature is not available to you.")})}clearCamps(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all theme camps?","Clear")))return;this.api.clearCamps(),this.api.sendMessage("Camp locations have been cleared from the map"),this.api.clearCache()}})}clearArt(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all art?","Clear")))return;this.api.clearArtLocations(),this.api.sendMessage("Art locations have been cleared from the map"),this.api.clearCache()}})}clearPins(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all other items (restrooms, gate etc)?","Clear")))return;yield this.api.clearPinLocations(),this.ionViewWillEnter(),this.api.sendMessage("Other locations have been cleared from the map"),this.api.clearCache()}})}uploadMap(t){return()=>_(null,null,function*(){console.log(t),t.click()})}onFileSelected(t){return _(this,null,function*(){let e=t.target.files[0];if(!e)return;let i=10*1024*1024;try{this.uploading=!0;let s=e;if(e.size>i){let m=[.85,.5,.3],v=!1;try{for(let T of m)if(s=yield we(e,{quality:T}),s.size<=i){v=!0;break}else console.log(`Conversion at quality ${T} resulted in size ${s.size}, still too large.`);if(!v){this.api.sendMessage("The maximum image size is 10mb. Please try uploading a smaller image size");return}}catch{this.api.sendMessage("The maximum image size is 10mb. Please try uploading a smaller image size");return}}let h=yield xe(s);yield this.api.setMap(h),this.api.sendMessage("Map was uploaded"),this.ionViewWillEnter()}catch(s){console.error("Error uploading map:",s),this.api.sendMessage("Error uploading map. Please try again.")}finally{this.uploading=!1}})}createMap(t){return _(this,null,function*(){this.showGenMap=!1,this.generating.set(!0);try{yield this.api.generateMap(t,parseInt(this.zoom)+12),this.ionViewWillEnter()}finally{this.generating.set(!1)}})}applySettings(){return _(this,null,function*(){this.showSettings=!1;let t=yield this.api.getFestival(this.api.festivalId,{cached:!1});t.map_direction=this.mapDirection,t.pin_size_multiplier=this.pinSizeMultiplier,yield this.api.addFestival(t),this.api.clearCache(),this.ionViewWillEnter()})}ionViewWillEnter(){return _(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity());let t=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.title="Map",this.festivalTitle=this.api.festivalTitle(),this.mapDirection=t.map_direction;let e=yield this.api.getMap();if(this.hasMap=!0,e.base64)this.mapUri=e?this.sanitizer.bypassSecurityTrustUrl(e.base64):"";else if(e.filename)this.mapUri=this.api.imageURL(`${this.vanity()}/${e.filename}`);else{this.hasMap=!1,this.fileUpload.click();return}this.mapDirection=t.map_direction,this.pinSizeMultiplier=t.pin_size_multiplier,this.pins=yield this.api.getPins(),this.recalculate()})}typeChange(t){this.filter(t.detail.value)}filter(t){for(let e of this.pins)e.visible=e.label==t?"":"hidden"}mapPoint(t,e){console.log("clicked",t,e);let l=t.clientX,i=t.clientY,h=this.map.nativeElement.getBoundingClientRect(),m=(l-h.x)*1e4/h.width,v=(i-h.y)*1e4/h.height;if(!(this.selectPin(m,v)||!e)){if(this.selected){this.selected=void 0;return}this.pins.push({x:Math.ceil(m),y:Math.ceil(v),px:Math.ceil(m)*this.width()/1e4,py:Math.ceil(v)*this.height()/1e4,label:this.pinType,gpsLat:void 0,gpsLng:void 0}),this.setMapNote()}}delete(){this.pins=this.pins.filter(t=>t.class!=="selected"),this.selected=void 0}applyGPS(t){this.pins.map(e=>{e.class==="selected"&&this.selected&&(e.gpsLat=t.lat,e.gpsLng=t.lng)})}recalculate(){for(let t of this.pins)t.px=Math.ceil(t.x)*this.width()/1e4,t.py=Math.ceil(t.y)*this.height()/1e4;this.setMapNote()}setMapNote(){let t=this.pins.filter(e=>e.label=="GPS").length;this.mapNote=t>=3?"":'You will need to add at least 3 Pins of type "GPS" with GPS coordinates for the dust app to show distances.'}save(){return _(this,null,function*(){try{this.busy=!0;for(let t of this.pins)t.class=void 0,t.px=void 0,t.py=void 0,t.visible=void 0,t.gpsLat==0&&t.gpsLng==0&&(t.gpsLat=void 0,t.gpsLng=void 0);yield this.api.placePins(this.pins),this.location.back()}finally{this.busy=!1}})}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}selectPin(t,e){var s,h;console.log("selectPin",t,e);let l,i=-30;for(let m of this.pins){let v=this.dist(m,t+i,e+i),T=50;console.log("d",v,T,JSON.stringify(m)),v{var i;return this.unpublished().length>0?`These changes have been made to ${(i=this.festival)==null?void 0:i.name} but have not published to dust.`:this.preparing()?"Please wait....":"Publishing will ensure that users in the dust app see these changes when they open the event next time."});ne({homeOutline:Y,calendarOutline:K,musicalNotesOutline:te,mapOutline:ie,locationOutline:ee,linkOutline:Z,createOutline:X,cloudUploadOutline:Q})}ionViewWillEnter(){return h(this,null,function*(){this.update()})}update(){return h(this,null,function*(){this.preparing.set(!0);let i=this.vanity();if(i){if(this.festival=yield this.api.getFestivalByVanity(i,!0),!this.festival)return;this.api.setFestival(this.festival),this.isAdmin.set(this.api.isAdmin(this.festival.id)),this.unpublished.set(yield this.api.getUnpublishedChanges())}this.preparing.set(!1)})}publish(){return h(this,null,function*(){try{this.busy.set(!0),this.api.setFestival(this.festival),yield this.api.publish(),this.api.sendMessage("Data has been published to the Dust app",1),this.router.navigateByUrl(`${this.api.vanity()}`)}finally{this.busy.set(!1)}})}image(i){return this.api.imageURL(i)}};p.\u0275fac=function(e){return new(e||p)},p.\u0275cmp=C({type:p,selectors:[["app-unpublished"]],inputs:{vanity:[1,"vanity"]},decls:12,vars:7,consts:[["color","primary"],["slot","start"],[3,"disabled"],[3,"routerLink"],["slot","end"],[3,"hidden"],[3,"fullscreen"],["type","indeterminate",3,"hidden"],[1,"border"],["title","Publishing...",3,"isIndeterminate"],[1,"ion-text-center"],["size","large","shape","round",3,"click","disabled"],[3,"width","height","src"]],template:function(e,s){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),l(3,"ion-back-button",2),n(),o(4,"ion-title",3),d(5),n(),o(6,"ion-buttons",4),l(7,"app-side",5),n()()(),o(8,"ion-content",6),l(9,"ion-progress-bar",7),b(10,ue,16,2,"div",8)(11,me,1,1,"app-progress-overlay",9),n()),e&2&&(t(3),r("disabled",s.busy()),t(),r("routerLink","/all"),t(),c(s.busy()?"Publishing":"dust"),t(2),r("hidden",s.busy()),t(),r("fullscreen",!0),t(),r("hidden",!s.preparing()),t(),v(s.busy()?11:10))},dependencies:[z,D,oe,re,U,T,R,G,F,O,q,k,V,N,A,W,L,B,H,j,$,ae],styles:["ion-button[_ngcontent-%COMP%]{width:10rem}app-img[_ngcontent-%COMP%]{min-width:45px}"]});var se=p;export{se as UnpublishedPage}; diff --git a/.admin-app/chunk-AWZLS6KS.js b/.admin-app/chunk-AWZLS6KS.js new file mode 100644 index 00000000..742a6278 --- /dev/null +++ b/.admin-app/chunk-AWZLS6KS.js @@ -0,0 +1 @@ +var i=["Art","Mutant Vehicle"];function a(e){let t=e.replace("u-","");return r(t)}function r(e){let t=0;for(let n=0;n{let t=this.url(),e=this.text();return t.includes("tel:")||t.includes("sms:")?"call-outline":t.includes("mailto:")?"mail-outline":t.includes("maps.")?"compass-outline":t.includes("youtu.")?"tv-outline":e.includes("ticket")?"ticket-outline":"link-outline"});this.simple=x(()=>!this.text().includes("<"));this.html=x(()=>{let t=this.text();return this.removeTagsExceptAllowed(t,["b","h1","h2","h3","h4","code","img","small","br","center","p","i","u","ul","li","ol"])});v({linkOutline:ee,compass:Y,compassOutline:Z,callOutline:X,mailOutline:te,ticketOutline:ie,tvOutline:ne})}link(t){console.log("click",t)}removeTagsExceptAllowed(t,e){let n=e.map(ce).join("|"),o=new RegExp("]+)(?:>)(?!)","gi");function ce(L){return L.replace(/([\\\/<>+\-*!(){}.^$|\[\]])/g,"\\$&")}return t.replace(o,(L,pe)=>n.includes(pe)?L:"")}};u.\u0275fac=function(e){return new(e||u)},u.\u0275cmp=k({type:u,selectors:[["app-link"]],inputs:{text:[1,"text"],url:[1,"url"]},decls:2,vars:1,consts:[["lines","none","detail","true"],[3,"innerHTML"],["lines","none","detail","true",3,"click"],["slot","start",3,"name"],[3,"click","innerHTML"]],template:function(e,n){e&1&&d(0,de,3,2,"ion-item",0)(1,fe,1,1,"div",1),e&2&&f(n.simple()?0:1)},dependencies:[C,z],encapsulation:2});var h=u;var ge=i=>[i],ae=(i,t)=>t.id;function ke(i,t){if(i&1&&s(0,"app-link",10),i&2){let e=t.$implicit;p("routerLink","../link/"+F(2,ge,e.id))("text",e.title)}}function _e(i,t){if(i&1&&(l(0,"ion-card")(1,"ion-card-content")(2,"ion-list"),T(3,ke,1,4,"app-link",10,ae),r()()()),i&2){let e=t.$implicit;a(3),w(e.links)}}function xe(i,t){if(i&1&&T(0,_e,5,0,"ion-card",null,ae),i&2){let e=c(2);w(e.groups)}}function Ce(i,t){if(i&1&&(s(0,"app-image-card",9),d(1,xe,2,0)),i&2){let e=c();p("url",e.festivalImage())("title",e.title)("description",e.noLinks?"Links are buttons that appear in the dust app that will open a browser window, call a phone number or email.":""),a(),f(e.noLinks?-1:1)}}function ve(i,t){i&1&&s(0,"app-spinner")}var m=class m{constructor(){this.api=b(K);this.router=b(S);this.vanity=g();this.title="";this.busy=!0;this.groups=[];this.noLinks=!1;v({add:Q})}ionViewWillEnter(){return E(this,null,function*(){this.busy=!0,yield this.api.setFestivalByVanity(this.vanity()),this.title=this.api.festivalTitle(),this.groups=this.group(yield this.api.links()),this.noLinks=this.groups.length===0||this.groups[0].links.length==0,this.busy=!1})}group(t){let e=[],n={id:1,links:[]};for(let o of t)o.title.startsWith("#")&&(o.title=o.title.substring(1),n.links.length>0&&(e.push(n),n={id:n.id+1,links:[]})),n.links.push(o);return e.push(n),e}festivalImage(){return this.api.imageURL(this.api.festivalImage())}};m.\u0275fac=function(e){return new(e||m)},m.\u0275cmp=k({type:m,selectors:[["app-links"]],inputs:{vanity:[1,"vanity"]},decls:14,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../link/new"],["name","add"],[3,"fullscreen"],[1,"border"],["title","Add Link","routeTo","../link/new"],["routeTo","../link/new",3,"url","title","description"],[1,"clickable",3,"routerLink","text"]],template:function(e,n){e&1&&(l(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),s(3,"ion-back-button"),r(),l(4,"ion-title",2),_(5,"Links"),r(),l(6,"ion-buttons",3)(7,"ion-button",4),s(8,"ion-icon",5),r()()()(),l(9,"ion-content",6)(10,"div",7),d(11,Ce,2,4)(12,ve,1,0,"app-spinner"),r(),s(13,"app-footer",8),r()),e&2&&(a(9),p("fullscreen",!0),a(2),f(n.busy?12:11))},dependencies:[oe,R,O,V,W,J,G,A,q,B,j,C,H,le,$,U,re,h],styles:["ion-item[_ngcontent-%COMP%]{cursor:pointer}"]});var se=m;export{se as LinksPage}; diff --git a/.admin-app/chunk-BODSD72O.js b/.admin-app/chunk-BODSD72O.js new file mode 100644 index 00000000..fc97409d --- /dev/null +++ b/.admin-app/chunk-BODSD72O.js @@ -0,0 +1 @@ +import{a as ze}from"./chunk-YVBFHLPR.js";import{a as Oe}from"./chunk-MZHM7UQO.js";import{a as Le}from"./chunk-F5YC2F3D.js";import{a as Ge}from"./chunk-3XGYA3SU.js";import{a as Be}from"./chunk-CBT26PAQ.js";import{a as ke}from"./chunk-M2OHFPPF.js";import{a as we}from"./chunk-KCPLCCSF.js";import{a as Ie}from"./chunk-K6ROGVP7.js";import{a as k}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{A as Me,ha as Ee,ka as Te,oa as Ve}from"./chunk-QF32E4V4.js";import{C as xe,K as Se}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as L,$a as J,Ba as r,Bc as ue,Ca as V,Cc as ge,Da as A,E as D,Eb as ie,Ec as he,Fc as _e,G as N,Ga as S,Gc as fe,H as p,Ha as w,Ia as M,Ja as Q,Ma as X,Na as x,P as q,Pa as Z,Pc as ve,Qc as ye,Rc as Pe,Tc as Ce,U as z,Uc as be,Va as Y,Xb as ne,Y as P,Yb as ae,Z as C,_a as j,aa as B,ba as G,ca as c,da as n,dc as oe,ea as a,eb as K,ec as le,fa as b,fc as re,hb as $,ka as y,ma as f,mc as se,oa as d,p as I,s as u,sa as O,sc as pe,t as g,ta as W,tc as ce,ua as F,ub as ee,vc as de,w as R,wc as me,xa as U,xb as te,ya as H}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as _}from"./chunk-LNJ3S2LQ.js";var Fe=["map"],Ue=["fileUpload"],Ae=o=>({title:"Upload Map Image",method:o,icon:"cloud-upload-outline"}),Re=o=>({title:"Generate Map",method:o,icon:"map-outline"}),De=o=>({title:"Settings",method:o,icon:"settings-outline"}),Ne=o=>({title:"Clear Camp Locations",method:o,icon:"trash-bin-outline"}),qe=o=>({title:"Clear Art Locations",method:o,icon:"trash-bin-outline"}),He=o=>({title:"Clear Other Locations",method:o,icon:"trash-bin-outline"}),Qe=(o,t,e,l,i,s)=>[o,t,e,l,i,s],Xe=()=>["1","2","3","4","5"];function Ze(o,t){if(o&1){let e=y();n(0,"ion-toolbar")(1,"ion-list")(2,"ion-item",18)(3,"ion-text"),r(4,"Click on the map to place a"),a(),n(5,"ion-select",19),f("ionChange",function(i){u(e);let s=d();return g(s.typeChange(i))}),M("ngModelChange",function(i){u(e);let s=d();return w(s.pinType,i)||(s.pinType=i),g(i)}),n(6,"ion-select-option",20),r(7,"Restroom"),a(),n(8,"ion-select-option",21),r(9,"Gate"),a(),n(10,"ion-select-option",22),r(11,"Greeter Station"),a(),n(12,"ion-select-option",23),r(13,"Shuttle Stop"),a(),n(14,"ion-select-option",24),r(15,"Ice"),a(),n(16,"ion-select-option",25),r(17,"Medical Station"),a(),n(18,"ion-select-option",26),r(19,"GPS"),a()()()(),n(20,"ion-buttons",5),b(21,"app-side",27),a()()}if(o&2){let e=d(),l=U(19);p(5),S("ngModel",e.pinType),c("value",e.pinType),p(16),c("hideProfile",!0)("buttons",Z(16,Qe,x(4,Ae,e.uploadMap(l)),x(6,Re,e.generateMap()),x(8,De,e.openSettings()),x(10,Ne,e.clearCamps()),x(12,qe,e.clearArt()),x(14,He,e.clearPins())))}}function Ye(o,t){o&1&&b(0,"app-spinner",8)}function je(o,t){o&1&&b(0,"app-progress-overlay",9)}function Je(o,t){if(o&1){let e=y();n(0,"ion-content",16)(1,"div",16)(2,"h1"),r(3,"Map Settings"),a(),n(4,"p"),r(5," Choose the direction that North is point on the map."),b(6,"br"),r(7,"This is used to ensure a persons pin on the map is facing the correct direction. "),a(),n(8,"ion-radio-group",28),M("ngModelChange",function(i){u(e);let s=d();return w(s.mapDirection,i)||(s.mapDirection=i),g(i)}),n(9,"div",29)(10,"ion-radio",30),r(11,"Top Left"),a(),n(12,"ion-radio",30),r(13,"Top"),a(),n(14,"ion-radio",31),r(15,"Top Right"),a()(),n(16,"div",29)(17,"ion-radio",30),r(18,"Left"),a(),b(19,"div"),n(20,"ion-radio",31),r(21,"Right"),a()(),n(22,"div",29)(23,"ion-radio",30),r(24,"Bottom Right"),a(),n(25,"ion-radio",30),r(26,"Bottom"),a(),n(27,"ion-radio",31),r(28,"Bottom Left"),a()(),n(29,"div",29)(30,"ion-input",32),M("ngModelChange",function(i){u(e);let s=d();return w(s.pinSizeMultiplier,i)||(s.pinSizeMultiplier=i),g(i)}),a()()()()(),n(31,"ion-toolbar",33)(32,"ion-button",34),f("click",function(){u(e);let i=d();return g(i.applySettings())}),r(33,"Apply"),a()()}if(o&2){let e=d();p(8),S("ngModel",e.mapDirection),p(2),c("value",270),p(2),c("value",0),p(2),c("value",45),p(3),c("value",240),p(3),c("value",90),p(3),c("value",120),p(2),c("value",180),p(2),c("value",210),p(3),S("ngModel",e.pinSizeMultiplier)}}function Ke(o,t){if(o&1&&(n(0,"ion-segment-button",42)(1,"ion-label"),r(2),a()()),o&2){let e=t.$implicit;c("value",Q(e)),p(2),V(e)}}function $e(o,t){if(o&1){let e=y();n(0,"ion-content",16)(1,"div",16)(2,"h1"),r(3,"Generate Map"),a(),n(4,"p"),r(5),a()(),n(6,"ion-list",18)(7,"ion-item"),r(8,"Map Type"),a(),n(9,"ion-segment",35),M("ngModelChange",function(i){u(e);let s=d();return w(s.mapStyle,i)||(s.mapStyle=i),g(i)}),n(10,"ion-segment-button",36)(11,"ion-label"),r(12,"Outdoors"),a()(),n(13,"ion-segment-button",37)(14,"ion-label"),r(15,"Satellite"),a()(),n(16,"ion-segment-button",38)(17,"ion-label"),r(18,"Full"),a()(),n(19,"ion-segment-button",39)(20,"ion-label"),r(21,"Street"),a()(),n(22,"ion-segment-button",40)(23,"ion-label"),r(24,"Light"),a()(),n(25,"ion-segment-button",41)(26,"ion-label"),r(27,"Dark"),a()()()(),n(28,"ion-list",18)(29,"ion-item"),r(30,"Zoom Level"),a(),n(31,"ion-segment",35),M("ngModelChange",function(i){u(e);let s=d();return w(s.zoom,i)||(s.zoom=i),g(i)}),B(32,Ke,3,3,"ion-segment-button",42,L),a()()(),n(34,"ion-toolbar",33)(35,"ion-button",34),f("click",function(){u(e);let i=d();return g(i.createMap(i.mapStyle))}),r(36,"Create"),a()()}if(o&2){let e=d();p(5),A(" Create an image of a map centered at the latitude and longitude of ",e.festivalTitle,". "),p(4),S("ngModel",e.mapStyle),c("value",e.mapStyle),p(22),S("ngModel",e.zoom),c("value",e.zoom),p(),G(X(5,Xe))}}function et(o,t){if(o&1){let e=y();n(0,"div",12)(1,"ion-button",34),f("click",function(){u(e),d();let i=U(19);return g(i.click())}),r(2,"Upload Map Image"),a()()}}function tt(o,t){if(o&1){let e=y();n(0,"div",43),f("click",function(i){u(e);let s=d();return g(s.mapPoint(i,!1))}),n(1,"div",44),r(2),a()()}if(o&2){let e=t.$implicit;H("left",e.px+"px")("top",e.py+"px"),c("title",e.label)("ngClass",e.class+" "+e.visible),p(2),V(e.label)}}function it(o,t){if(o&1&&(n(0,"app-note"),r(1),a()),o&2){let e=d();p(),V(e.mapNote)}}function nt(o,t){if(o&1){let e=y();n(0,"app-gps",46),f("gpsChange",function(i){u(e);let s=d(2);return g(s.applyGPS(i))}),a(),n(1,"app-note")(2,"b"),r(3,"Tip"),a(),r(4,": Right click in Google Maps to copy lat/long and paste here."),a()}if(o&2){let e=d(2);c("lat",e.selected.gpsLat)("lng",e.selected.gpsLng)}}function at(o,t){if(o&1){let e=y();n(0,"app-footer",17)(1,"ion-card",16)(2,"ion-title"),r(3),a(),n(4,"ion-list"),P(5,nt,5,2),a(),n(6,"ion-button",45),f("click",function(){u(e);let i=d();return g(i.delete())}),r(7,"Delete"),a()()()}if(o&2){let e=d();p(3),V(e.selected.label),p(2),C(e.selected&&e.selected.label==="GPS"?5:-1)}}var E=class E{constructor(){this.api=I(Se);this.sanitizer=I($);this.location=I(j);this.alert=I(ke);this.vanity=Y();this.mapUri="";this.pinType="Restrooms";this.pins=[];this.title="";this.busy=!1;this.showGenMap=!1;this.showSettings=!1;this.uploading=!1;this.generating=R(!1);this.zoom="1";this.mapStyle="outdoors-v12";this.mapNote="";this.hasMap=!0;this.festivalTitle="";this.mapDirection=0;this.pinSizeMultiplier=1;Ve({trashBinOutline:Te,cloudUploadOutline:Me,settingsOutline:Ee})}generateMap(){return()=>_(this,null,function*(){this.api.isAdmin(this.api.festivalId)?this.showGenMap=!0:this.api.sendMessage("This feature is not available to you.")})}openSettings(){return()=>_(this,null,function*(){this.api.isAdmin(this.api.festivalId)?(this.showSettings=!0,console.log(this.mapDirection)):this.api.sendMessage("This feature is not available to you.")})}clearCamps(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all theme camps?","Clear")))return;this.api.clearCamps(),this.api.sendMessage("Camp locations have been cleared from the map"),this.api.clearCache()}})}clearArt(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all art?","Clear")))return;this.api.clearArtLocations(),this.api.sendMessage("Art locations have been cleared from the map"),this.api.clearCache()}})}clearPins(){return()=>_(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield k(this.alert,"Are you sure you want to clear the locations of all other items (restrooms, gate etc)?","Clear")))return;yield this.api.clearPinLocations(),this.ionViewWillEnter(),this.api.sendMessage("Other locations have been cleared from the map"),this.api.clearCache()}})}uploadMap(t){return()=>_(null,null,function*(){console.log(t),t.click()})}onFileSelected(t){return _(this,null,function*(){let e=t.target.files[0];if(!e)return;let i=10*1024*1024;try{this.uploading=!0;let s=e;if(e.size>i){let m=[.85,.5,.3],v=!1;try{for(let T of m)if(s=yield we(e,{quality:T}),s.size<=i){v=!0;break}else console.log(`Conversion at quality ${T} resulted in size ${s.size}, still too large.`);if(!v){this.api.sendMessage("The maximum image size is 10mb. Please try uploading a smaller image size");return}}catch{this.api.sendMessage("The maximum image size is 10mb. Please try uploading a smaller image size");return}}let h=yield xe(s);yield this.api.setMap(h),this.api.sendMessage("Map was uploaded"),this.ionViewWillEnter()}catch(s){console.error("Error uploading map:",s),this.api.sendMessage("Error uploading map. Please try again.")}finally{this.uploading=!1}})}createMap(t){return _(this,null,function*(){this.showGenMap=!1,this.generating.set(!0);try{yield this.api.generateMap(t,parseInt(this.zoom)+12),this.ionViewWillEnter()}finally{this.generating.set(!1)}})}applySettings(){return _(this,null,function*(){this.showSettings=!1;let t=yield this.api.getFestival(this.api.festivalId,{cached:!1});t.map_direction=this.mapDirection,t.pin_size_multiplier=this.pinSizeMultiplier,yield this.api.addFestival(t),this.api.clearCache(),this.ionViewWillEnter()})}ionViewWillEnter(){return _(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity());let t=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.title="Map",this.festivalTitle=this.api.festivalTitle(),this.mapDirection=t.map_direction;let e=yield this.api.getMap();if(this.hasMap=!0,e.base64)this.mapUri=e?this.sanitizer.bypassSecurityTrustUrl(e.base64):"";else if(e.filename)this.mapUri=this.api.imageURL(`${this.vanity()}/${e.filename}`);else{this.hasMap=!1,this.fileUpload.click();return}this.mapDirection=t.map_direction,this.pinSizeMultiplier=t.pin_size_multiplier,this.pins=yield this.api.getPins(),this.recalculate()})}typeChange(t){this.filter(t.detail.value)}filter(t){for(let e of this.pins)e.visible=e.label==t?"":"hidden"}mapPoint(t,e){console.log("clicked",t,e);let l=t.clientX,i=t.clientY,h=this.map.nativeElement.getBoundingClientRect(),m=(l-h.x)*1e4/h.width,v=(i-h.y)*1e4/h.height;if(!(this.selectPin(m,v)||!e)){if(this.selected){this.selected=void 0;return}this.pins.push({x:Math.ceil(m),y:Math.ceil(v),px:Math.ceil(m)*this.width()/1e4,py:Math.ceil(v)*this.height()/1e4,label:this.pinType,gpsLat:void 0,gpsLng:void 0}),this.setMapNote()}}delete(){this.pins=this.pins.filter(t=>t.class!=="selected"),this.selected=void 0}applyGPS(t){this.pins.map(e=>{e.class==="selected"&&this.selected&&(e.gpsLat=t.lat,e.gpsLng=t.lng)})}recalculate(){for(let t of this.pins)t.px=Math.ceil(t.x)*this.width()/1e4,t.py=Math.ceil(t.y)*this.height()/1e4;this.setMapNote()}setMapNote(){let t=this.pins.filter(e=>e.label=="GPS").length;this.mapNote=t>=3?"":'You will need to add at least 3 Pins of type "GPS" with GPS coordinates for the dust app to show distances.'}save(){return _(this,null,function*(){try{this.busy=!0;for(let t of this.pins)t.class=void 0,t.px=void 0,t.py=void 0,t.visible=void 0,t.gpsLat==0&&t.gpsLng==0&&(t.gpsLat=void 0,t.gpsLng=void 0);yield this.api.placePins(this.pins),this.location.back()}finally{this.busy=!1}})}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}selectPin(t,e){var s,h;console.log("selectPin",t,e);let l,i=-30;for(let m of this.pins){let v=this.dist(m,t+i,e+i),T=50;console.log("d",v,T,JSON.stringify(m)),v{if(this.disabled){console.log("Ignore paste");return}let n=e.split(",");this.lat=this.round(n[0]),this.lng=this.round(n[1]),console.log(`Pasted GPS: ${this.lat}, ${this.lng}`),this.gpsChange.emit({lat:this.lat,lng:this.lng})},200))}dest(){setTimeout(()=>{this.cleanup()},500)}ngOnDestroy(){this.cleanup()}applyGPS(){setTimeout(()=>{this.gpsChange.emit({lat:this.lat,lng:this.lng})},1)}filterInput(r,i){let e=r.target,n=e.value,t=n.replace(/[^0-9.-]/g,"");console.log(`Filtered ${i} input: ${n} to ${t}`),n!==t&&(e.value=t,i==="lat"?this.lat=t?Number(t):void 0:this.lng=t?Number(t):void 0)}cleanup(){console.log("unlisten for paste"),this.disabled=!0,removeEventListener("paste",this._listener)}round(r){let i=Number(r.trim());return Number(i.toFixed(7))}};a.\u0275fac=function(i){return new(i||a)},a.\u0275cmp=f({type:a,selectors:[["app-gps"]],viewQuery:function(i,e){if(i&1&&w(I,5),i&2){let n;y(n=b())&&(e.container=n.first)}},inputs:{lat:"lat",lng:"lng"},outputs:{gpsChange:"gpsChange",latChange:"latChange",lngChange:"lngChange"},decls:4,vars:2,consts:[["container",""],[2,"display","flex"],["label","latitude","labelPlacement","stacked",3,"ionFocus","ionBlur","ionInput","ngModelChange","ngModel"],["label","longitude","labelPlacement","stacked",3,"ionFocus","ionBlur","ionInput","ngModelChange","ngModel"]],template:function(i,e){if(i&1){let n=C();g(0,"div",1,0)(2,"ion-input",2),m("ionFocus",function(){return s(n),l(e.init())})("ionBlur",function(){return s(n),l(e.dest())})("ionInput",function(o){return s(n),l(e.filterInput(o,"lat"))})("ngModelChange",function(){return s(n),l(e.applyGPS())}),h("ngModelChange",function(o){return s(n),c(e.lat,o)||(e.lat=o),l(o)}),d(),g(3,"ion-input",3),m("ionFocus",function(){return s(n),l(e.init())})("ionBlur",function(){return s(n),l(e.dest())})("ionInput",function(o){return s(n),l(e.filterInput(o,"lng"))})("ngModelChange",function(){return s(n),l(e.applyGPS())}),h("ngModelChange",function(o){return s(n),c(e.lng,o)||(e.lng=o),l(o)}),d()()}i&2&&(p(2),_("ngModel",e.lat),p(),_("ngModel",e.lng))},dependencies:[G,M,v,V],encapsulation:2});var T=a;export{T as a}; +import{Eb as M,Ga as _,H as p,Ha as c,Ia as h,J as u,P as f,Pc as G,da as g,ea as d,ka as C,ma as m,s,sa as w,t as l,ta as y,ua as b,ub as v,xb as V}from"./chunk-LVL3PYF7.js";var I=["container"],a=class a{constructor(){this.gpsChange=new u;this.latChange=new u;this.lngChange=new u;this.disabled=!1}init(){console.log("listen for paste"),this.disabled=!1,this._listener=this.listener.bind(this),addEventListener("paste",this._listener)}listener(r){let i=r.clipboardData;this.container.nativeElement.focus();let e=i==null?void 0:i.getData("Text");!e||!e.includes(",")||(document.activeElement.blur(),console.log("blur called"),setTimeout(()=>{if(this.disabled){console.log("Ignore paste");return}let n=e.split(",");this.lat=this.round(n[0]),this.lng=this.round(n[1]),console.log(`Pasted GPS: ${this.lat}, ${this.lng}`),this.gpsChange.emit({lat:this.lat,lng:this.lng})},200))}dest(){setTimeout(()=>{this.cleanup()},500)}ngOnDestroy(){this.cleanup()}applyGPS(){setTimeout(()=>{this.gpsChange.emit({lat:this.lat,lng:this.lng})},1)}filterInput(r,i){let e=r.target,n=e.value,t=n.replace(/[^0-9.-]/g,"");console.log(`Filtered ${i} input: ${n} to ${t}`),n!==t&&(e.value=t,i==="lat"?this.lat=t?Number(t):void 0:this.lng=t?Number(t):void 0)}cleanup(){console.log("unlisten for paste"),this.disabled=!0,removeEventListener("paste",this._listener)}round(r){let i=Number(r.trim());return Number(i.toFixed(7))}};a.\u0275fac=function(i){return new(i||a)},a.\u0275cmp=f({type:a,selectors:[["app-gps"]],viewQuery:function(i,e){if(i&1&&w(I,5),i&2){let n;y(n=b())&&(e.container=n.first)}},inputs:{lat:"lat",lng:"lng"},outputs:{gpsChange:"gpsChange",latChange:"latChange",lngChange:"lngChange"},decls:4,vars:2,consts:[["container",""],[2,"display","flex"],["label","latitude","labelPlacement","stacked",3,"ionFocus","ionBlur","ionInput","ngModelChange","ngModel"],["label","longitude","labelPlacement","stacked",3,"ionFocus","ionBlur","ionInput","ngModelChange","ngModel"]],template:function(i,e){if(i&1){let n=C();g(0,"div",1,0)(2,"ion-input",2),m("ionFocus",function(){return s(n),l(e.init())})("ionBlur",function(){return s(n),l(e.dest())})("ionInput",function(o){return s(n),l(e.filterInput(o,"lat"))})("ngModelChange",function(){return s(n),l(e.applyGPS())}),h("ngModelChange",function(o){return s(n),c(e.lat,o)||(e.lat=o),l(o)}),d(),g(3,"ion-input",3),m("ionFocus",function(){return s(n),l(e.init())})("ionBlur",function(){return s(n),l(e.dest())})("ionInput",function(o){return s(n),l(e.filterInput(o,"lng"))})("ngModelChange",function(){return s(n),l(e.applyGPS())}),h("ngModelChange",function(o){return s(n),c(e.lng,o)||(e.lng=o),l(o)}),d()()}i&2&&(p(2),_("ngModel",e.lat),p(),_("ngModel",e.lng))},dependencies:[G,M,v,V],encapsulation:2});var T=a;export{T as a}; diff --git a/.admin-app/chunk-CIYY42AF.js b/.admin-app/chunk-CIYY42AF.js new file mode 100644 index 00000000..dc925376 --- /dev/null +++ b/.admin-app/chunk-CIYY42AF.js @@ -0,0 +1 @@ +import{a as Ae,b as Oe}from"./chunk-UDWQF54V.js";import{a as De}from"./chunk-J6QP2YBJ.js";import{a as ke}from"./chunk-THH75NDP.js";import{a as Pe}from"./chunk-F5YC2F3D.js";import{a as Me}from"./chunk-3XGYA3SU.js";import{a as Ie}from"./chunk-RKW74V7I.js";import"./chunk-62GZOW6G.js";import"./chunk-3OSW3EO7.js";import"./chunk-U3YCGDGQ.js";import{a as Se}from"./chunk-K6ROGVP7.js";import"./chunk-DUKSTT3K.js";import{I as Te,a as we,fa as be,oa as Fe}from"./chunk-QF32E4V4.js";import{K as xe,a as Ce,g as ye,l as y,n as j,t as q,w as Ee}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as G,$a as ee,Ba as m,Bc as de,Ca as C,Da as A,Ea as H,Eb as U,Ec as me,Fc as pe,Ga as O,Gc as fe,H as r,Ha as k,Ia as D,Ic as $,Na as K,Oc as ve,P,Qc as he,Rc as ue,Sc as ge,Tc as _e,Va as X,Xb as ae,Y as f,Z as v,aa as F,ba as I,ca as p,da as s,dc as re,ea as l,eb as V,ec as se,fa as u,ib as te,ka as M,kb as ie,l as Y,lb as ne,ma as _,mc as le,oa as d,ob as oe,p as g,s as w,sc as ce,t as T,tc as N,ub as L,vc as R,wc as Z,xb as B}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";function Ne(i,t){i&1&&(s(0,"ion-item")(1,"ion-radio",2)(2,"ion-label"),m(3,"Flagged"),l()()())}function Re(i,t){if(i&1&&(s(0,"ion-item")(1,"ion-radio",3)(2,"ion-label"),m(3),l()()()),i&2){let e=t.$implicit;r(),p("value","type:"+e),r(2),C(e)}}function Ze(i,t){if(i&1&&F(0,Re,4,2,"ion-item",null,G),i&2){let e=d();I(e.availableEventTypes)}}var b=class b{constructor(){this.selectedFilter="all";this.availableEventTypes=[];this.isAdmin=!1;this.popoverController=g($)}onFilterChange(){let t=!1,e;this.selectedFilter==="flagged"?t=!0:this.selectedFilter.startsWith("type:")&&(e=this.selectedFilter.substring(5)),this.popoverController.dismiss({filterFlagged:t,filterEventType:e})}};b.\u0275fac=function(e){return new(e||b)},b.\u0275cmp=P({type:b,selectors:[["app-events-filter"]],decls:8,vars:3,consts:[[3,"ngModelChange","ionChange","ngModel"],["value","all","mode","ios","labelPlacement","end"],["value","flagged","mode","ios","labelPlacement","end"],["mode","ios","labelPlacement","end",3,"value"]],template:function(e,o){e&1&&(s(0,"ion-list")(1,"ion-radio-group",0),D("ngModelChange",function(a){return k(o.selectedFilter,a)||(o.selectedFilter=a),a}),_("ionChange",function(){return o.onFilterChange()}),s(2,"ion-item")(3,"ion-radio",1)(4,"ion-label"),m(5,"All Events"),l()()(),f(6,Ne,4,0,"ion-item"),f(7,Ze,2,0),l()()),e&2&&(r(),O("ngModel",o.selectedFilter),r(5),v(o.isAdmin?6:-1),r(),v(o.availableEventTypes.length>0?7:-1))},dependencies:[Z,N,R,ue,he,U,L,B,V],encapsulation:2});var Q=b;var E=class E{applyFilters(t,e){let o=[...t];if(e.searchQuery.length>0){let n=e.searchQuery.toLowerCase();o=o.filter(a=>{var c;return a.title.toLowerCase().includes(n)||((c=a.camp)==null?void 0:c.toLowerCase().includes(n))})}return e.filterFlagged&&(o=o.filter(n=>n.moderation&&n.moderation>0)),e.filterEventType&&(o=o.filter(n=>n.event_type?n.event_type.split(",").map(c=>c.trim()).includes(e.filterEventType):!1)),o}extractEventTypes(t){let e=new Set;for(let o of t)o.event_type&&o.event_type.split(",").map(a=>a.trim()).filter(a=>a).forEach(a=>e.add(a));return Array.from(e).sort()}};E.\u0275fac=function(e){return new(e||E)},E.\u0275prov=Y({token:E,factory:E.\u0275fac,providedIn:"root"});var W=E;var $e=i=>[i],Qe=(i,t)=>t.id,We=(i,t)=>t.name;function ze(i,t){if(i&1){let e=M();s(0,"ion-toolbar")(1,"ion-searchbar",11),_("ionInput",function(n){w(e);let a=d();return T(a.handleSearch(n))}),l(),s(2,"ion-button",12),_("click",function(n){w(e);let a=d();return T(a.openFilterPopover(n))}),u(3,"ion-icon",13),l()()}if(i&2){let e=d();r(),p("debounce",600)("placeholder","Search events at "+e.title)}}function Je(i,t){i&1&&u(0,"app-spinner")}function je(i,t){if(i&1&&(s(0,"div",14)(1,"app-card",16),u(2,"app-img",17),s(3,"ion-button",18),m(4," Register Event "),l()()()),i&2){let e=d(2);p("ngClass",e.events.length>0?"":"pad-vertical"),r(),p("description","You can register your event for "+e.title+"."),r(),p("width","100px")("height","100px")("src",e.imageUrl),r(),p("routerLink",e.newRoute())}}function qe(i,t){if(i&1&&(s(0,"ion-segment-button",21)(1,"ion-label"),m(2),l()()),i&2){let e=t.$implicit;p("value",e.name),r(2),C(e.title)}}function Ye(i,t){if(i&1){let e=M();s(0,"ion-toolbar")(1,"ion-buttons",1)(2,"ion-segment",20),D("ngModelChange",function(n){w(e);let a=d(3);return k(a.showing,n)||(a.showing=n),T(n)}),_("ionChange",function(){w(e);let n=d(3);return T(n.refresh())}),F(3,qe,3,2,"ion-segment-button",21,We),l()()()}if(i&2){let e=d(3);r(2),O("ngModel",e.showing),p("value",e.showing),r(),I(e.filters)}}function Ge(i,t){i&1&&(s(0,"ion-item"),m(1," There are no events matching your search. "),l())}function He(i,t){if(i&1){let e=M();s(0,"ion-item",22)(1,"h2"),m(2,"Getting Started"),l()(),s(3,"ion-item"),m(4," Click \xA0"),s(5,"a",23),_("click",function(){w(e);let n=d(5);return T(n.newEvent())}),m(6,"Add Event"),l(),m(7),l()}if(i&2){let e=d(5);r(7),A("\xA0 to create your first event at ",e.title,". ")}}function Ke(i,t){if(i&1&&f(0,He,8,1),i&2){let e=d(4);v(e.isAdmin?0:-1)}}function Xe(i,t){if(i&1&&f(0,Ge,2,0,"ion-item")(1,Ke,1,1),i&2){let e=d(3);v(e.filteredBySearch?0:1)}}function et(i,t){if(i&1&&(s(0,"ion-item")(1,"ion-text",24),m(2),l()()),i&2){let e=d(3);r(2),A("Time Zone ",e.diffTimeZone)}}function tt(i,t){if(i&1&&(s(0,"p",31),m(1),l(),s(2,"p",32),m(3),l()),i&2){let e=d().$implicit;r(),H("",e.camp,"",e.art),r(2),C(e.other_location)}}function it(i,t){if(i&1&&(s(0,"ion-item",19),u(1,"app-img",25),s(2,"ion-label",26),f(3,tt,4,3),m(4),u(5,"app-moderation-flag",27),l(),s(6,"ion-label",28)(7,"p",29),m(8),l(),s(9,"p",30),m(10),l()()()),i&2){let e=t.$implicit,o=d(3);p("routerLink","../events/"+K(10,$e,e.id)),r(),p("width","45px")("height","45px")("src",o.image(e)),r(2),v(!o.campId&&!o.artId?3:-1),r(),A(" ",e.title," "),r(),p("isAdmin",o.isAdmin)("moderation",e.moderation),r(3),C(e.event_type),r(2),C(e.timeString)}}function nt(i,t){if(i&1&&(s(0,"app-image-card",15),f(1,Ye,5,2,"ion-toolbar"),s(2,"ion-list"),f(3,Xe,2,1)(4,et,3,1,"ion-item"),F(5,it,11,12,"ion-item",19,Qe),l()()),i&2){let e=d(2);p("url",e.getImageUrl()),r(),v(!e.campId&&!e.artId?1:-1),r(2),v(e.events.length===0?3:e.diffTimeZone?4:-1),r(2),I(e.events)}}function ot(i,t){if(i&1&&f(0,je,5,6,"div",14)(1,nt,7,3,"app-image-card",15),i&2){let e=d();v(e.events.length===0&&!e.filteredBySearch&&!e.isAdmin?0:1)}}var S=class S{constructor(){this.api=g(xe);this.router=g(ie);this.eventService=g(De);this.route=g(te);this.popoverController=g($);this.eventFilterService=g(W);this.vanity=X();this.events=[];this.allEvents=[];this.title="Events";this.eventsFilterTitle="Events";this.busy=!0;this.isAdmin=!1;this.imageUrl="";this.newEventUrl="../events/new";this.description="";this.diffTimeZone="";this.showing="all";this.showSearch=!0;this.canEditEvent=!1;this.buttons=[];this.filteredBySearch=!1;this.filters=[];this.filterFlagged=!1;this.filterEventType=void 0;this.availableEventTypes=[];this.searchQuery="";Fe({add:we,printOutline:be,filterSharp:Te})}filtered(t,e,o,n,a){var x;let c=!0;return t=="mine"?(x=n.contact)!=null&&x.startsWith("***")&&(c=!1):t!=="all"&&(c=this.hasDay(n,t,a)),e&&y(n.hosted_by_camp)!==y(e)&&(c=!1),o&&y(n.located_at_art)!==y(o)&&(c=!1),c}importCSV(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl("./import-events")})}exportCSV(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.exportToCSV()})}ngOnInit(){return h(this,null,function*(){var t;try{this.busy=!0,yield this.api.setFestivalByVanity(this.vanity(),!0),this.campId=y(this.route.snapshot.queryParams.camp),this.artId=y(this.route.snapshot.queryParams.art),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.imageUrl=(t=this.api.imageURL(this.api.festivalImage()))!=null?t:"",this.camp=this.campId?yield this.api.getCamp(this.campId):void 0,this.art=this.artId?yield this.api.getArt(this.artId):void 0,this.title=this.camp?this.camp.name:this.api.festivalTitle(),this.canEditEvent=this.api.eventEditing()||this.isAdmin,this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"}]:[],this.art&&(this.title=this.art.name),this.diffTimeZone=this.api.currentTimeZone()==this.api.festivalTimeZone()?"":this.api.festivalTimeZone(),yield this.api.setFestivalByVanity(this.vanity()),yield this.refresh(),this.showSearch=this.events.length>1,this.description=this.events.length==0?`There are no events yet for ${this.title}`:`Events for ${this.title}`}finally{this.busy=!1}})}ionViewDidEnter(){return h(this,null,function*(){for(;this.busy;)yield ye(500);yield this.refresh()})}newRoute(){return this.canEditEvent?"../events/new":void 0}message(t){setTimeout(()=>{this.api.sendMessage(t)},1)}handleSearch(t){return h(this,null,function*(){this.searchQuery=t.target.value.toLowerCase().trim(),this.filteredBySearch=this.searchQuery.length>0,yield this.applyAllFilters()})}image(t){return this.api.imageURL(t.imageUrl)}newEvent(){this.router.navigate(["./new"],{queryParams:{camp:this.campId,art:this.artId},relativeTo:this.route})}festivalImage(){return this.api.imageURL(this.api.festivalImage())}refresh(){return h(this,null,function*(){this.filters=[];let t=this.cleanEvents(yield this.api.events({cached:!0}),!1);this.allEvents=[...t],this.events=[...t],this.filteredBySearch=!1,this.searchQuery="",this.filters.find(e=>e.name=="mine")||this.filters.unshift({title:"All",name:"all"},{title:"Mine",name:"mine"}),this.extractEventTypes(),yield this.applyAllFilters()})}exportToCSV(){return h(this,null,function*(){let t=this.showing!=="all",e=this.cleanEvents(yield this.api.events({cached:!0}),t);yield this.eventService.exportEventsToCSV(this.api.festivalTitle(),e,this.api.currentTimeZone(),this.showing)})}getImageUrl(){var t;return this.camp&&this.camp.imageUrl?this.api.imageURL(this.camp.imageUrl):this.art&&((t=this.art)!=null&&t.imageUrl)?this.api.imageURL(this.art.imageUrl):this.festivalImage()}addFiltersForDays(t){let e=new Date(t.start_time),o=`${e.getDate()} (${Ee[e.getDay()]})`;this.filters.find(a=>a.title==o)||(this.filters.push({title:o,name:this.nameOf(e)}),this.filters.sort((a,c)=>a.name>c.name?1:-1))}hasDay(t,e,o){let n=JSON.parse(t.occurrence_set);if(o){let a=[];for(let c of n)e==this.nameOf(new Date(c.start_time))&&a.push(c);if(a.length>0)return t.occurrence_set=JSON.stringify(a),!0}else for(let a of n)if(e==this.nameOf(new Date(a.start_time)))return!0;return!1}nameOf(t){return`${t.getDate()}-${t.getMonth()}-${t.getFullYear()}`}cleanEvents(t,e){var o;for(let n of t){let a=JSON.parse(n.occurrence_set);this.goodDates(a)||console.error(`${n.title} has bad dates`);let c=j(a[0].start_time),x=j(a[0].end_time),z=this.api.currentTimeZone();n.timeString=(o=Ce(c,x,void 0,z))==null?void 0:o.long,a.length>1&&(n.timeString+=` (+${a.length-1} other occurrence)`);for(let J of a)this.addFiltersForDays(J)}return t.sort((n,a)=>{let c=JSON.parse(n.occurrence_set),x=JSON.parse(a.occurrence_set),z=new Date(c[0].start_time),J=new Date(x[0].start_time);return z-J}),t.filter(n=>this.filtered(this.showing,this.campId,this.artId,n,e))}signOut(){return h(this,null,function*(){this.api.signOut(),this.router.navigateByUrl("/auth")})}goodDates(t){for(let e of t)if(q(e.start_time)!=e.start_time||q(e.end_time)!=e.end_time)return!1;return!0}extractEventTypes(){this.availableEventTypes=this.eventFilterService.extractEventTypes(this.allEvents)}applyAllFilters(){return h(this,null,function*(){this.events=this.eventFilterService.applyFilters(this.allEvents,{searchQuery:this.searchQuery,filterFlagged:this.filterFlagged,filterEventType:this.filterEventType})})}openFilterPopover(t){return h(this,null,function*(){let e="all";this.filterFlagged?e="flagged":this.filterEventType&&(e="type:"+this.filterEventType);let o=yield this.popoverController.create({component:Q,event:t,componentProps:{selectedFilter:e,availableEventTypes:this.availableEventTypes,isAdmin:this.isAdmin}});yield o.present();let{data:n}=yield o.onDidDismiss();n&&(this.filterFlagged=n.filterFlagged,this.filterEventType=n.filterEventType,!n.filterFlagged&&!n.filterEventType?this.eventsFilterTitle="Events":n.filterFlagged?this.eventsFilterTitle="Flagged":n.filterEventType&&(this.eventsFilterTitle=n.filterEventType),yield this.applyAllFilters())})}hasActiveFilters(){return this.filterFlagged||this.filterEventType!==void 0}};S.\u0275fac=function(e){return new(e||S)},S.\u0275cmp=P({type:S,selectors:[["app-events"]],inputs:{vanity:[1,"vanity"]},decls:18,vars:6,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../events/new"],["name","add"],[3,"buttons"],[3,"fullscreen"],[1,"border"],[1,"ion-padding"],["title","Add Event",3,"click"],["mode","ios","show-clear-button","always",1,"searchbar",3,"ionInput","debounce","placeholder"],["color","dark","fill","clear","slot","end",3,"click"],["name","filter-sharp"],[1,"ion-text-center",3,"ngClass"],["routeTo","../events/new",3,"url"],["title","Event Registration",3,"description"],["logo","",1,"logo","ion-padding",3,"width","height","src"],["shape","round",3,"routerLink"],[3,"routerLink"],["mode","ios",2,"float","right","margin-right","0.5rem","margin-top","0.5rem","width","100%",3,"ngModelChange","ionChange","ngModel","value"],[3,"value"],["lines","none"],[3,"click"],["color","medium","slot","end",2,"text-transform","uppercase","font-size","small"],[1,"clickable","pad-right",3,"width","height","src"],[1,"ion-text-wrap"],[3,"isAdmin","moderation"],[1,"ion-text-right","ion-text-wrap","last-col"],[1,"one-line","sz-large"],["color","medium",1,"time"],[1,"title"],[1,"title","highlight"]],template:function(e,o){e&1&&(s(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),u(3,"ion-back-button"),l(),s(4,"ion-title",2),m(5),l(),s(6,"ion-buttons",3)(7,"ion-button",4),u(8,"ion-icon",5),l(),u(9,"app-side",6),l()()(),s(10,"ion-content",7),f(11,ze,4,2,"ion-toolbar"),f(12,Je,1,0,"app-spinner"),s(13,"div",8),f(14,ot,2,1),u(15,"div",9)(16,"div",9),l(),s(17,"app-footer",10),_("click",function(){return o.newEvent()}),l()()),e&2&&(r(5),C(o.eventsFilterTitle),r(4),p("buttons",o.buttons),r(),p("fullscreen",!0),r(),v(o.showSearch?11:-1),r(),v(o.busy?12:-1),r(2),v(o.busy?-1:14))},dependencies:[me,ge,ke,Se,_e,de,V,ee,U,L,B,oe,ne,ce,fe,se,ae,pe,re,le,ve,Oe,Z,N,R,Me,Pe,Ie,Ae],styles:["ion-fab[_ngcontent-%COMP%]{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}ion-fab-button[_ngcontent-%COMP%]{margin-top:calc(-2 * var(--spacing-1xl));padding:var(--spacing-sm)}ion-item[_ngcontent-%COMP%]{cursor:pointer}.title[_ngcontent-%COMP%]{font-size:var(--font-size-base)}.highlight[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.one-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time[_ngcontent-%COMP%]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}.last-col[_ngcontent-%COMP%]{max-width:25%}@media (width < 500px){.sz-large[_ngcontent-%COMP%]{display:none}}.pad-right[_ngcontent-%COMP%]{width:55px}"]});var Le=S;export{Le as EventsPage}; diff --git a/.admin-app/chunk-ZOFWWE63.js b/.admin-app/chunk-CMEEWD7E.js similarity index 87% rename from .admin-app/chunk-ZOFWWE63.js rename to .admin-app/chunk-CMEEWD7E.js index 10549b26..c1e9e798 100644 --- a/.admin-app/chunk-ZOFWWE63.js +++ b/.admin-app/chunk-CMEEWD7E.js @@ -1,4 +1,4 @@ -import{a as D}from"./chunk-GPVDUW6Q.js";import{c}from"./chunk-OZ2IKH4J.js";import{Aa as p,Ca as M,Db as x,Fa as y,Ga as u,H as r,Ha as d,J as f,Nc as k,P as h,Tc as W,Ua as T,ba as C,ca as i,cc as E,da as s,ec as w,fc as I,gc as S,ic as P,la as m,p as g,tb as _,wb as b}from"./chunk-FDEJMFAU.js";import{h as v}from"./chunk-LNJ3S2LQ.js";var F=["Arts & Crafts","Class/Workshop","Diversity & Inclusion","Fire/Spectacle","Food & Drink","For Kids","Games","Gathering/Party","Live Music","Mature Audiences","Miscellaneous","Parade","Performance","Repair","Ritual/Ceremony","Self Care","Sustainability/Greening Your Burn","Yoga/Movement/Fitness"],q=["Live Music","BIPOC","Wheelchair Accessible"],a=class a{constructor(){this.typeTitle=T("Event Types");this.defaultTypes=T(F);this.eventTypesChange=new f;this.alert=g(D);(!this.eventTypes||this.eventTypes==="")&&this.reset()}reset(){this.eventTypes=this.defaultTypes().join(` +import{a as D}from"./chunk-M2OHFPPF.js";import{c}from"./chunk-OZ2IKH4J.js";import{Ba as p,Da as M,Eb as x,Ga as y,H as r,Ha as u,Ia as d,J as f,P as h,Pc as k,Va as T,Vc as W,ca as C,da as i,dc as E,ea as s,fc as w,gc as I,hc as S,jc as P,ma as m,p as g,ub as _,xb as b}from"./chunk-LVL3PYF7.js";import{h as v}from"./chunk-LNJ3S2LQ.js";var F=["Arts & Crafts","Class/Workshop","Diversity & Inclusion","Fire/Spectacle","Food & Drink","For Kids","Games","Gathering/Party","Live Music","Mature Audiences","Miscellaneous","Parade","Performance","Repair","Ritual/Ceremony","Self Care","Sustainability/Greening Your Burn","Yoga/Movement/Fitness"],q=["Live Music","BIPOC","Wheelchair Accessible"],a=class a{constructor(){this.typeTitle=T("Event Types");this.defaultTypes=T(F);this.eventTypesChange=new f;this.alert=g(D);(!this.eventTypes||this.eventTypes==="")&&this.reset()}reset(){this.eventTypes=this.defaultTypes().join(` `)}save(){return v(this,null,function*(){if(this.maxTypes<1||this.maxTypes>5){yield c(this.alert,`The maximum number of ${this.typeTitle()} must be between 1 and 5.`);return}let o=this.eventTypes.split(` `);if(o.length<3){yield c(this.alert,`You must have at least 3 ${this.typeTitle()}.`);return}this.eventTypes=o.filter(n=>n.trim()!=="").join(` `),this.eventTypesChange.emit({eventTypes:this.eventTypes,maxTypes:this.maxTypes})})}};a.\u0275fac=function(n){return new(n||a)},a.\u0275cmp=h({type:a,selectors:[["app-event-types"]],inputs:{eventTypes:"eventTypes",maxTypes:"maxTypes",typeTitle:[1,"typeTitle"],defaultTypes:[1,"defaultTypes"]},outputs:{eventTypesChange:"eventTypesChange"},decls:12,vars:4,consts:[["rows","18",3,"ngModelChange","ngModel","value"],["min","1","max","5","type","number","label","Maximum Types Selected","labelPlacement","stacked",3,"ngModelChange","ngModel"],[1,"row-center","ion-padding"],["size","small",3,"click"]],template:function(n,e){n&1&&(i(0,"ion-card")(1,"ion-card-content")(2,"ion-card-header")(3,"ion-card-title"),p(4),s()(),i(5,"ion-textarea",0),d("ngModelChange",function(t){return u(e.eventTypes,t)||(e.eventTypes=t),t}),s(),i(6,"ion-input",1),d("ngModelChange",function(t){return u(e.maxTypes,t)||(e.maxTypes=t),t}),s(),i(7,"div",2)(8,"ion-button",3),m("click",function(){return e.save()}),p(9,"Apply"),s(),i(10,"ion-button",3),m("click",function(){return e.reset()}),p(11,"Reset"),s()()()()),n&2&&(r(4),M(" ",e.typeTitle()," "),r(),y("ngModel",e.eventTypes),C("value",e.eventTypes),r(),y("ngModel",e.maxTypes))},dependencies:[k,x,_,b,W,E,I,P,S,w],encapsulation:2});var A=a;export{F as a,q as b,A as c}; diff --git a/.admin-app/chunk-CPOGSMOE.js b/.admin-app/chunk-CPOGSMOE.js new file mode 100644 index 00000000..af76205f --- /dev/null +++ b/.admin-app/chunk-CPOGSMOE.js @@ -0,0 +1,3 @@ +import{R as L,a as W,oa as K,v as F}from"./chunk-QF32E4V4.js";import{K as B,d as z}from"./chunk-TCALQ33I.js";import{$ as b,Ba as p,Da as c,Eb as N,Ga as O,H as o,Ha as T,Ia as k,Oc as A,P as v,Pc as V,Va as r,Xa as x,aa as E,ba as w,ca as y,da as l,dc as S,ea as m,fa as C,ka as M,ma as d,oa as _,p as h,s as g,t as u,ub as I,vc as P,xb as D}from"./chunk-LVL3PYF7.js";function $(f,e){if(f&1){let i=M();l(0,"ion-button",5),d("click",function(){let a=g(i).$implicit,t=_();return u(t.copy(a))}),p(1),l(2,"div",6),d("click",function(){let a=g(i).$implicit,t=_();return u(t.remove(a))}),C(3,"ion-icon",7),m()()}if(f&2){let i=e.$implicit;o(),c("",i," ")}}var s=class s{constructor(){this.isAdmin=r(!1);this.isOwner=r(!1);this.label=r("Owner");this.api=h(B);this.placeholder=r("Email address of owner");this.emails=x("");this.newEmail="";this._emails=["damian@dust.events"];this.helperText=r("The owner can login and alter details.");K({add:W,close:F,informationCircleOutline:L})}remove(e){this._emails=this._emails.filter(i=>i!==e),this.update()}onKeyUp(e){e.key===" "&&this.addEmail(),e.key===","&&this.addEmail()}copy(e){navigator.clipboard.writeText(e),this.api.sendMessage(`Copied ${e} to the clipboard`,1)}addEmail(){z(this.cleanEmail(this.newEmail.trim()))&&(this._emails.push(this.cleanEmail(this.newEmail.trim())),this.update(),this.newEmail="")}cleanEmail(e){return e.trim().toLowerCase().replace(",","")}onWillDismiss(e){e.detail.role==="confirm"&&console.log(`Hello, ${e.detail.data}!`)}update(){this.emails.set(this._emails.join(","))}ngOnInit(){let e=this.emails();if(!e)this._emails=[];else if(e.startsWith("[")&&e.endsWith("]"))try{this._emails=JSON.parse(e)}catch{this._emails=e.split(",").map(i=>i.trim()).filter(i=>i.length>0)}else this._emails=e.split(",").map(i=>i.trim()).filter(i=>i.length>0);this.newEmail=""}};s.\u0275fac=function(i){return new(i||s)},s.\u0275cmp=v({type:s,selectors:[["app-emails"]],inputs:{isAdmin:[1,"isAdmin"],isOwner:[1,"isOwner"],label:[1,"label"],placeholder:[1,"placeholder"],emails:[1,"emails"],helperText:[1,"helperText"]},outputs:{emails:"emailsChange"},decls:8,vars:5,consts:[["id","emailLabel"],[1,"row"],["size","small","color","medium","mode","ios","shape","round",1,"email"],["helperText","","aria-label","emails",3,"ionBlur","keyup.Tab","keyup","ngModelChange","disabled","readonly","ngModel"],[1,"helper","helper2"],["size","small","color","medium","mode","ios","shape","round",1,"email",3,"click"],[3,"click"],["slot","end","name","close"]],template:function(i,n){i&1&&(l(0,"ion-label",0),p(1),m(),l(2,"div",1),E(3,$,4,1,"ion-button",2,b),l(5,"ion-input",3),d("ionBlur",function(){return n.addEmail()})("keyup.Tab",function(){return n.addEmail()})("keyup",function(t){return n.onKeyUp(t)}),k("ngModelChange",function(t){return T(n.newEmail,t)||(n.newEmail=t),t}),m()(),l(6,"div",4),p(7),m()),i&2&&(o(),c("",n.label(),` +`),o(2),w(n._emails),o(2),y("disabled",!n.isAdmin&&!n.isOwner)("readonly",!n.isAdmin&&!n.isOwner),O("ngModel",n.newEmail),o(2),c(" ",n.helperText(),` +`))},dependencies:[V,N,I,D,S,A,P],styles:[".row[_ngcontent-%COMP%]{display:flex;background-color:#0000000d;border-radius:var(--br-xl);margin-left:var(--spacing-sm);align-self:center;flex-wrap:wrap}.button[_ngcontent-%COMP%]{height:40px;align-self:flex-end;margin-bottom:var(--spacing-base);margin-top:var(--spacing-base)}ion-button[_ngcontent-%COMP%]{--padding-start: var(--spacing-lg);--padding-end: var(--spacing-lg)}.helper2[_ngcontent-%COMP%]{padding-left:var(--spacing-2xl);font-size:var(--font-size-xl)}ion-icon[_ngcontent-%COMP%]{background-color:var(--ion-color-light);color:var(--ion-color-medium);border-radius:var(--br-3xl);margin-left:var(--spacing-xs);margin-right:0;padding-right:0;font-size:var(--font-size-base)}ion-label[_ngcontent-%COMP%]{margin-left:var(--spacing-lg);margin-top:var(--spacing-lg)}ion-input[_ngcontent-%COMP%]{--input-background: rgba(0, 0, 0, 0);padding-top:0!important;margin-top:calc(-1 * var(--spacing-md))!important}"]});var U=s;export{U as a}; diff --git a/.admin-app/chunk-DEECFNUR.js b/.admin-app/chunk-DEECFNUR.js deleted file mode 100644 index 841589b4..00000000 --- a/.admin-app/chunk-DEECFNUR.js +++ /dev/null @@ -1 +0,0 @@ -import{a as St}from"./chunk-GJLDF72A.js";import{a as bt}from"./chunk-3PGTX6TC.js";import{b as L}from"./chunk-YLPHNW7F.js";import{a as At}from"./chunk-Q7SRVC5Z.js";import{a as yt}from"./chunk-NIJZXRAZ.js";import{a as xt}from"./chunk-MTVNVIRQ.js";import{a as Ct}from"./chunk-OIMHMYK4.js";import{a as vt}from"./chunk-LKPHKBDT.js";import{a as gt}from"./chunk-5B2MUMUK.js";import"./chunk-OZ2IKH4J.js";import"./chunk-DUKSTT3K.js";import{G as ut,P as _t,R as ht,a as pt,c as mt,ja as ft}from"./chunk-LIWDDRYP.js";import{F as k,J as dt,K as b,e as ct}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as P,Aa as g,Ca as A,Db as q,Ec as rt,Fa as F,Fc as at,Ga as N,H as o,Ha as O,Ma as M,Mc as st,P as B,Qc as lt,Ua as Q,Wb as H,X as m,Y as u,_a as R,aa as T,ba as l,ca as s,cc as K,da as r,db as $,dc as W,ea as d,ec as Y,fc as J,gc as X,ic as Z,ja as I,jb as U,kb as D,l as V,la as x,lc as tt,na as c,nb as G,p as h,rc as it,s as v,sc as et,t as y,tb as z,vc as nt,w as E,wb as j,yc as ot}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as _}from"./chunk-LNJ3S2LQ.js";function S(i){let e=i.replace("u-","");return Pt(e)}function Pt(i){let e=0;for(let n=0;n[i],Mt=i=>({art:i}),Et=(i,e)=>e.id;function kt(i,e){if(i&1&&d(0,"app-progress-overlay",8),i&2){let t=c();l("title","Inviting...")("progress",t.progress())}}function Lt(i,e){if(i&1){let t=I();s(0,"ion-toolbar")(1,"ion-searchbar",12),x("ionInput",function(p){v(t);let a=c();return y(a.handleSearch(p))}),O("ngModelChange",function(p){v(t);let a=c();return N(a.searchQuery,p)||(a.searchQuery=p),y(p)}),r(),s(2,"ion-button",13),x("click",function(){v(t);let p=c();return y(p.toggleGrid())}),d(3,"ion-icon",14),r()()}if(i&2){let t=c();o(),l("debounce",600)("placeholder","Search art at "+t.title),F("ngModel",t.searchQuery),o(2),l("name",t.isGrid?"list-outline":"grid-outline")}}function Vt(i,e){if(i&1&&d(0,"ion-progress-bar",9),i&2){let t=c();l("value",t.progress())}}function Bt(i,e){if(i&1&&d(0,"app-card",16),i&2){let t=c(3);l("title",t.filteredBySearch?"No Art Found":"No Art")("description",t.filteredBySearch?"No art was found matching that search.":"There is no art registered for "+t.festivalTitle)}}function Ft(i,e){if(i&1&&m(0,Bt,1,2,"app-card",16),i&2){let t=c(2);u(t.art.length===0?0:-1)}}function Nt(i,e){}function Ot(i,e){i&1&&(s(0,"ion-button",23),d(1,"ion-icon",29),r())}function Qt(i,e){i&1&&(s(0,"ion-button",24),d(1,"ion-icon",30),r())}function Rt(i,e){if(i&1){let t=I();s(0,"ion-button",31),x("click",function(){v(t);let p=c().$implicit,a=c(4);return y(a.broadcastLocation(p))}),g(1,"Broadcast GPS"),r()}if(i&2){let t=c(5);l("disabled",!t.canBroadcastLocation)}}function $t(i,e){if(i&1&&(s(0,"div",19)(1,"ion-card",20),d(2,"app-img",21),s(3,"ion-card-header",22)(4,"ion-card-title"),g(5),m(6,Ot,2,0,"ion-button",23),m(7,Qt,2,0,"ion-button",24),r()(),s(8,"ion-card-content"),g(9),s(10,"div",25)(11,"ion-button",26),g(12,"Edit"),r(),s(13,"ion-button",27),g(14,"Events"),r(),m(15,Rt,2,1,"ion-button",28),r()()()()),i&2){let t=e.$implicit,n=c(4);o(2),l("routerLink",n.editRoute(t))("src",n.image(t)),o(),l("routerLink",n.editRoute(t)),o(2),A("",t.name," "),o(),u(t.pin?6:-1),o(),u(n.isAdmin&&t.status===n.ApprovalStatus.Unapproved?7:-1),o(2),A(" ",t.description," "),o(2),l("disabled",!n.canEditArt)("routerLink","../art/"+M(13,It,t.id)),o(2),l("disabled",!n.canEditEvent)("routerLink","../events")("queryParams",M(15,Mt,t.id)),o(2),u(t.art_type==="Mutant Vehicle"?15:-1)}}function Ut(i,e){if(i&1&&(s(0,"div",17),P(1,$t,16,17,"div",19,Et),r()),i&2){let t=c(3);l("ngClass",t.art.length>1?"grid":"grid1"),o(),T(t.art)}}function Dt(i,e){i&1&&d(0,"ion-icon",29)}function Gt(i,e){i&1&&d(0,"ion-icon",35)}function zt(i,e){if(i&1&&(s(0,"ion-item"),d(1,"app-img",33),s(2,"ion-text",34),g(3),m(4,Dt,1,0,"ion-icon",29),m(5,Gt,1,0,"ion-icon",35),r()()),i&2){let t=e.$implicit,n=c(4);o(),l("width","45px")("height","45px")("routerLink",n.editRoute(t))("src",n.image(t)),o(),l("routerLink",n.editRoute(t)),o(),A(" ",t.name," "),o(),u(t.pin?4:-1),o(),u(n.isAdmin&&t.status===n.ApprovalStatus.Unapproved?5:-1)}}function jt(i,e){if(i&1&&(s(0,"div",18)(1,"ion-card")(2,"ion-list"),P(3,zt,6,8,"ion-item",null,Et),r()(),d(5,"div",32)(6,"div",32),r()),i&2){let t=c(3);o(3),T(t.art)}}function qt(i,e){if(i&1&&m(0,Ut,3,1,"div",17)(1,jt,7,0,"div",18),i&2){let t=c(2);u(t.isGrid?0:1)}}function Ht(i,e){if(i&1&&(s(0,"div",10)(1,"div",15),m(2,Ft,1,1)(3,Nt,0,0),r(),m(4,qt,2,1),r()),i&2){let t=c();o(),l("ngClass",t.art.length>0?"":"pad-vertical"),o(),u(t.isAdmin?2:3),o(2),u(t.art.length>0?4:-1)}}function Kt(i,e){i&1&&d(0,"app-spinner")}function Wt(i,e){if(i&1&&d(0,"app-footer",11),i&2){let t=c();l("routeTo",t.newRoute())}}var C=class C{constructor(){this.api=h(b);this.artService=h(w);this.router=h(U);this.inviteEmailService=h(St);this.store=h(dt);this.ApprovalStatus=vt;this.vanity=Q();this.art=[];this.busy=!0;this.isAdmin=!1;this.canEdit=!1;this.canEditArt=!1;this.canEditEvent=!1;this.canBroadcastLocation=!1;this.isGrid=!0;this.filteredBySearch=!1;this.buttons=[];this.title="";this.festivalTitle="";this.progress=E(0);this.overlayTitle=E("");this.searchQuery="";ft({add:pt,locationSharp:ht,listOutline:_t,gridOutline:ut,alertCircleSharp:mt})}ngOnInit(){return _(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0),this.title=`${this.api.festivalTitle()}`,this.festivalTitle=this.api.festivalTitle(),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.canEdit=this.api.getAccessInfo(void 0).hasArt||this.isAdmin,this.canEditEvent=this.api.eventEditing()||this.isAdmin,this.canEditArt=this.api.artEditing()||this.isAdmin,this.canBroadcastLocation=this.api.artEditing(),this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"},{title:"Export Email Addresses",method:this.exportEmail(),icon:"mail-outline"},{title:"Import KML",method:this.importKML(),icon:"cloud-upload-outline"},{title:"Invite All Artists",method:this.inviteAllArt(),icon:"mail-outline"}]:[]})}inviteAllArt(){return()=>_(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}yield this.inviteEmailService.inviteAllArt(this.art,this.progress)})}broadcastLocation(e){return _(this,null,function*(){let t=S(`${e.id}`);this.api.sendMessage(`Use the PIN ${t} to broadcast your mutant vehicles location. Click the link to read how.`,0,"Broadcast Location","https://dust.events/docs/Mutant%20Vehicles/broadcast-location")})}ionViewDidEnter(){return _(this,null,function*(){let e=yield this.api.art({cached:!0}),t=this.store.get("artSearchQuery");t?(this.searchQuery=t,this.art=this.filterArt(e,t),this.filteredBySearch=t.length>0):(this.searchQuery="",this.art=e,this.filteredBySearch=!1),this.busy=!1})}filterArt(e,t){let n=t.toLowerCase();return e.filter(p=>{var a;return p.name.toLowerCase().includes(n)||((a=p.description)==null?void 0:a.toLowerCase().includes(n))})}importCSV(){return()=>_(this,null,function*(){this.router.navigateByUrl("./import-art")})}importKML(){return()=>_(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl(`${this.vanity()}/import-kml/art`)})}exportCSV(){return()=>_(this,null,function*(){this.artService.exportArtToCSV(this.festivalTitle,this.art)})}exportEmail(){return()=>_(this,null,function*(){this.artService.exportArtEmail(this.festivalTitle,this.art)})}message(e){setTimeout(()=>{this.api.sendMessage(e)},1)}handleSearch(e){return _(this,null,function*(){let t=e.target.value.toLowerCase();this.searchQuery=t,this.store.set("artSearchQuery",t||void 0);let n=yield this.api.art({cached:!0});this.art=this.filterArt(n,t),this.filteredBySearch=t.length>0})}toggleGrid(){this.isGrid=!this.isGrid}editRoute(e){return this.canEdit?"../art/"+e.id:void 0}image(e){return e.imageUrl?this.api.imageURL(e.imageUrl):`./assets/${e.art_type?`${e.art_type}`.toLowerCase().replace(/ /g,"-"):"unknown"}.svg`}newRoute(){return this.canEdit?"../art/new":void 0}};C.\u0275fac=function(t){return new(t||C)},C.\u0275cmp=B({type:C,selectors:[["app-art"]],inputs:{vanity:[1,"vanity"]},decls:17,vars:8,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../art/new",3,"disabled"],["name","add"],[3,"buttons"],[3,"fullscreen"],[3,"title","progress"],[3,"value"],[1,"large-border"],["title","Add Art",3,"routeTo"],["mode","ios","search-icon","none","show-clear-button","always",3,"ionInput","ngModelChange","debounce","placeholder","ngModel"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],[1,"ion-text-center",3,"ngClass"],[3,"title","description"],[1,"pad-below",3,"ngClass"],[1,"border"],[1,"grid-item"],[1,"clickable"],[3,"routerLink","src"],[3,"routerLink"],["fill","clear","color","light",1,"pin-button"],["fill","clear","color","warning",1,"approval-button"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["color","secondary",3,"disabled","routerLink"],["color","secondary",3,"disabled","routerLink","queryParams"],["color","secondary",3,"disabled"],["size","small","name","location-sharp",1,"pin"],["size","small","name","alert-circle-sharp"],["color","secondary",3,"click","disabled"],[1,"ion-padding"],[1,"clickable",2,"min-width","45px",3,"width","height","routerLink","src"],[1,"clickable",2,"width","100%","padding","1rem",3,"routerLink"],["size","small","color","warning","name","alert-circle-sharp"]],template:function(t,n){t&1&&(s(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),d(3,"ion-back-button"),r(),s(4,"ion-title",2),g(5,"Art"),r(),s(6,"ion-buttons",3)(7,"ion-button",4),d(8,"ion-icon",5),r(),d(9,"app-side",6),r()()(),s(10,"ion-content",7),m(11,kt,1,2,"app-progress-overlay",8),m(12,Lt,4,4,"ion-toolbar"),m(13,Vt,1,1,"ion-progress-bar",9),m(14,Ht,5,3,"div",10)(15,Kt,1,0,"app-spinner"),m(16,Wt,1,1,"app-footer",11),r()),t&2&&(o(7),l("disabled",!n.canEdit),o(2),l("buttons",n.buttons),o(),l("fullscreen",!0),o(),u(n.progress()>0?11:-1),o(),u(n.art.length>1?12:-1),o(),u(n.progress()>0?13:-1),o(),u(n.busy?15:14),o(2),u(n.isAdmin?16:-1))},dependencies:[et,nt,J,Z,Y,X,ot,lt,st,yt,xt,gt,K,H,W,tt,it,rt,at,$,R,q,z,j,bt,Ct,G,D,At],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-content[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:var(--font-size-base)}h1[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.pin[_ngcontent-%COMP%]{color:var(--ion-color-primary);opacity:.5}.pin-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs))}.approval-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs));right:0}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}"]});var wt=C;export{wt as ArtPage}; diff --git a/.admin-app/chunk-DGWV6NC4.js b/.admin-app/chunk-DGWV6NC4.js new file mode 100644 index 00000000..5fc97cc4 --- /dev/null +++ b/.admin-app/chunk-DGWV6NC4.js @@ -0,0 +1,3 @@ +import{a as T}from"./chunk-LKPHKBDT.js";import{a as A}from"./chunk-U3YCGDGQ.js";import{a as D,c as d}from"./chunk-OZ2IKH4J.js";import{V as P,c as M,oa as b}from"./chunk-QF32E4V4.js";import{I as r,K as N}from"./chunk-TCALQ33I.js";import{Kc as x,Oc as y,P as f,Va as c,Y as u,Z as v,da as h,ea as g,fa as C,l as I,p as S}from"./chunk-LVL3PYF7.js";import{h as l}from"./chunk-LNJ3S2LQ.js";var s=class s{constructor(){this.api=S(N);this.alert=S(x)}inviteAllCamps(i,e){return l(this,null,function*(){let t=i.filter(a=>a.contact_email&&a.contact_email.trim());if(t.length===0){yield d(this.alert,"No camps have email addresses to invite.","No Camps");return}(yield this.confirmAction(`Invite ${t.length} ${r(t.length,"camp")}?`,"This will send invitation emails to all camps with email addresses."))&&(yield this.inviteCampBatch(t,e))})}inviteAllArt(i,e){return l(this,null,function*(){let t=i.filter(a=>a.contact_email&&a.contact_email.trim());if(t.length===0){yield d(this.alert,"No artists have email addresses to invite.","No Art");return}(yield this.confirmAction(`Invite ${t.length} ${r(t.length,"artist")}?`,"This will send invitation emails to all artists with email addresses."))&&(yield this.inviteArtBatch(t,e))})}confirmAction(i,e){return l(this,null,function*(){return D(this.alert,`${i} + +${e}`,"Confirm")})}inviteCampBatch(i,e){return l(this,null,function*(){try{let t=0,o=0;for(let n=0;n0?"":"pad-vertical"),n(3),S(t.festivals)}}function wt(i,e){if(i&1&&(d(0,ht,4,3,"ion-toolbar"),a(1,"div",7)(2,"div",8),d(3,vt,5,0,"div",9),d(4,gt,2,0)(5,bt,5,1,"div",10),o()()),i&2){let t=s();c(t.festivals.length>1||t.filteredBySearch?0:-1),n(3),c(t.noData?3:-1),n(),c(t.isGrid?4:5)}}function Ft(i,e){i&1&&p(0,"app-footer",5)}var f=class f{constructor(){this.api=y(et);this.router=y(D);this.store=y(Z);this.publishing=!1;this.busy=!0;this.addAllowed=!1;this.noData=!1;this.isGrid=!0;this.listArchived=!1;this.buttons=[];this.isNative=tt.isNativePlatform();this.filteredBySearch=!1;this.festivals=[];st({add:it,listOutline:ot,gridOutline:at,bookOutline:nt})}ngOnInit(){this.isGrid=this.store.get("isFestivalList")!=="false"}ionViewWillEnter(){return h(this,null,function*(){if(!this.api.signedIn()){this.router.navigateByUrl("/auth");return}try{this.busy=!0;let e=sessionStorage.openburn;if(!Y(e)){this.router.navigateByUrl(`/${e}`);return}let t=this.api.getAccessInfo(void 0);this.addAllowed=!1,t.hasAdmin&&(this.addAllowed=!0),!t.hasAdmin&&!t.hasCamps&&!t.hasMusic&&!t.hasArt&&!t.hasCamps&&(this.addAllowed=!0),this.buttons=t.hasAdmin&&!this.listArchived?[{title:"Show Archived",method:this.showArchived(),icon:"book-outline"}]:[],yield this.getData(),this.sort(),this.noData=this.addAllowed&&this.festivals.length==0}finally{this.busy=!1}})}showArchived(){return()=>h(this,null,function*(){this.listArchived=!0,this.buttons=[],yield this.getData(),this.sort()})}handleSearch(e){return h(this,null,function*(){let t=e.target.value.toLowerCase();yield this.getData(t),this.filteredBySearch=t.length>0,this.sort()})}getData(e){return h(this,null,function*(){let t=!this.isGrid;this.festivals=this.asFestivalModels(yield this.api.getFestivals(t)),e&&(this.festivals=this.festivals.filter(r=>r.name.toLowerCase().includes(e))),this.listArchived||(this.festivals=this.festivals.filter(r=>!r.archived)),this.festivals.map(r=>{r.imageUrl=this.api.imageURL(r.imageUrl)}),this.addAllowed})}toggleGrid(){return h(this,null,function*(){this.isGrid=!this.isGrid,this.store.set("isFestivalList",this.isGrid.toString()),yield this.getData(),this.sort()})}open(e){if(e=="new"){this.router.navigateByUrl("../new");return}this.api.clearCache(),this.router.navigateByUrl(e)}asFestivalModels(e){return e.map(t=>A(P({},t),{daysUntil:w(t.start_time),start:this.niceFormat(t.start_time),end:this.niceFormat(t.end_time),note:w(t.start_time)>0?w(t.start_time)+" days":t.archived?"Archived":"Past"}))}niceFormat(e){return new Date(e).toLocaleDateString()}classFor(e){return e.active?"":e.daysUntil<0?"past":"hidden"}sort(){this.isGrid?this.filteredBySearch?this.festivals.sort((e,t)=>e.name.localeCompare(t.name)):this.festivals.sort((e,t)=>e.distance-t.distance):this.festivals.sort((e,t)=>new Date(e.start_time)>new Date(t.start_time)?-1:1)}};f.\u0275fac=function(t){return new(t||f)},f.\u0275cmp=M({type:f,selectors:[["app-festivals"]],decls:11,vars:5,consts:[["color","primary"],["slot","end"],["routerLink","../new"],[3,"buttons"],[3,"fullscreen"],["title","New Regional Burn","routeTo","../new"],["name","add"],[1,"large-border"],[1,"container"],[2,"display","flex","align-items","center","flex-direction","column","justify-content","center","height","70vh"],[1,"ion-text-center",3,"ngClass"],["mode","ios","search-icon","none","show-clear-button","always",3,"ionInput","debounce","placeholder"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],[1,"ion-padding","ion-text-center"],[1,"ion-text-center","ion-padding"],["color","light",1,"card",3,"click"],[3,"height","src"],[1,"xcenter"],["color","medium"],[1,"clickable","hoverable",3,"ngClass"],[1,"clickable","hoverable",3,"click","ngClass"],[2,"min-width","45px",3,"width","height","src"]],template:function(t,r){t&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-title"),l(3,"dust"),o(),a(4,"ion-buttons",1),d(5,pt,2,0,"ion-button",2),p(6,"app-side",3),o()()(),a(7,"ion-content",4),d(8,_t,1,0,"app-spinner")(9,wt,6,3),d(10,Ft,1,0,"app-footer",5),o()),t&2&&(n(5),c(r.isNative?-1:5),n(),m("buttons",r.buttons),n(),m("fullscreen",!0),n(),c(r.busy?8:9),n(2),c(r.addAllowed?10:-1))},dependencies:[X,H,W,j,z,q,E,k,ct,rt,lt,U,O,B,R,K,J,V,G,$,Q,L,N,dt],styles:[".container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:center;flex-wrap:wrap}.card[_ngcontent-%COMP%]{width:300px;height:300px;border-radius:var(--br-xl);flex-basis:40%;cursor:pointer}.hoverable[_ngcontent-%COMP%]:hover{--background: var(--ion-color-light)}.xcenter[_ngcontent-%COMP%]{text-align:center;display:flex;justify-content:center;align-items:center;height:300px}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl);padding-right:var(--spacing-lg);width:60px}ion-item[_ngcontent-%COMP%]{width:600px;max-width:100vw}.hidden[_ngcontent-%COMP%]{opacity:.5}.past[_ngcontent-%COMP%]{opacity:.75}app-footer[_ngcontent-%COMP%]{--footer-width: 130px}"]});var mt=f;export{mt as FestivalsPage}; diff --git a/.admin-app/chunk-G7X5MIYJ.js b/.admin-app/chunk-DRE5OMWI.js similarity index 85% rename from .admin-app/chunk-G7X5MIYJ.js rename to .admin-app/chunk-DRE5OMWI.js index 0d239c20..76ad25d5 100644 --- a/.admin-app/chunk-G7X5MIYJ.js +++ b/.admin-app/chunk-DRE5OMWI.js @@ -1 +1 @@ -import{K as T}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{Aa as r,Db as w,Ec as P,Fa as g,Fc as B,Ga as y,H as a,Ha as b,P as m,Wb as M,Za as h,ba as o,ca as e,cc as _,da as t,dc as E,ea as u,la as f,lc as k,p,rb as S,rc as I,tb as C,wb as v}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as d}from"./chunk-LNJ3S2LQ.js";var i=class i{constructor(){this.api=p(T);this.location=p(h);this.busy=!1;this.css=""}ionViewWillEnter(){return d(this,null,function*(){let l=yield this.api.getCSS();this.css=l.message})}save(){return d(this,null,function*(){this.busy=!0;try{yield this.api.saveCSS(this.css),this.location.back()}finally{this.busy=!1}})}};i.\u0275fac=function(s){return new(s||i)},i.\u0275cmp=m({type:i,selectors:[["app-css-edit"]],decls:15,vars:5,consts:[[3,"translucent"],["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],["collapse","condense"],["size","large"],["autoGrow","true","placeholder","CSS used for the camps and events pages",3,"ngModelChange","rows","ngModel"]],template:function(s,n){s&1&&(e(0,"ion-header",0)(1,"ion-toolbar",1)(2,"ion-buttons",2),u(3,"ion-back-button"),t(),e(4,"ion-title",3),r(5,"CSS"),t(),e(6,"ion-buttons",4)(7,"ion-button",5),f("click",function(){return n.save()}),r(8,"Save"),t()()()(),e(9,"ion-content",6)(10,"ion-header",7)(11,"ion-toolbar")(12,"ion-title",8),r(13,"css-edit"),t()()(),e(14,"textarea",9),b("ngModelChange",function(c){return y(n.css,c)||(n.css=c),c}),t()()),s&2&&(o("translucent",!0),a(7),o("disabled",n.busy),a(2),o("fullscreen",!0),a(5),o("rows",30),g("ngModel",n.css))},dependencies:[_,M,E,k,I,P,B,w,S,C,v],styles:["textarea[_ngcontent-%COMP%]{height:calc(100% - 20px);width:100%;font-family:courier new;border:unset;background-color:transparent}"]});var x=i;export{x as CssEditPage}; +import{K as T}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as r,Eb as w,Fc as P,Ga as g,Gc as B,H as a,Ha as y,Ia as b,P as m,Xb as M,_a as h,ca as o,da as e,dc as _,ea as t,ec as E,fa as u,ma as f,mc as k,p,sb as S,sc as I,ub as C,xb as v}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as d}from"./chunk-LNJ3S2LQ.js";var i=class i{constructor(){this.api=p(T);this.location=p(h);this.busy=!1;this.css=""}ionViewWillEnter(){return d(this,null,function*(){let l=yield this.api.getCSS();this.css=l.message})}save(){return d(this,null,function*(){this.busy=!0;try{yield this.api.saveCSS(this.css),this.location.back()}finally{this.busy=!1}})}};i.\u0275fac=function(s){return new(s||i)},i.\u0275cmp=m({type:i,selectors:[["app-css-edit"]],decls:15,vars:5,consts:[[3,"translucent"],["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],["collapse","condense"],["size","large"],["autoGrow","true","placeholder","CSS used for the camps and events pages",3,"ngModelChange","rows","ngModel"]],template:function(s,n){s&1&&(e(0,"ion-header",0)(1,"ion-toolbar",1)(2,"ion-buttons",2),u(3,"ion-back-button"),t(),e(4,"ion-title",3),r(5,"CSS"),t(),e(6,"ion-buttons",4)(7,"ion-button",5),f("click",function(){return n.save()}),r(8,"Save"),t()()()(),e(9,"ion-content",6)(10,"ion-header",7)(11,"ion-toolbar")(12,"ion-title",8),r(13,"css-edit"),t()()(),e(14,"textarea",9),b("ngModelChange",function(c){return y(n.css,c)||(n.css=c),c}),t()()),s&2&&(o("translucent",!0),a(7),o("disabled",n.busy),a(2),o("fullscreen",!0),a(5),o("rows",30),g("ngModel",n.css))},dependencies:[_,M,E,k,I,P,B,w,S,C,v],styles:["textarea[_ngcontent-%COMP%]{height:calc(100% - 20px);width:100%;font-family:courier new;border:unset;background-color:transparent}"]});var x=i;export{x as CssEditPage}; diff --git a/.admin-app/chunk-DRQ6S3EF.js b/.admin-app/chunk-DRQ6S3EF.js new file mode 100644 index 00000000..b86b9865 --- /dev/null +++ b/.admin-app/chunk-DRQ6S3EF.js @@ -0,0 +1 @@ +import{K as X}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as T,Aa as z,Ba as b,Ca as O,Da as U,E as C,Eb as F,Fc as q,G as k,Gc as J,H as r,P as I,Va as M,Xb as N,Y as v,Z as P,_a as B,aa as A,ba as E,ca as d,da as o,dc as $,ea as l,ec as H,fa as x,hb as L,ka as _,kb as D,ma as g,mc as Q,oa as f,p as u,qc as W,s as p,sa as S,sc as j,t as c,ta as V,ua as R,ya as w}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var ee=["map"];function te(s,t){if(s&1){let e=_();o(0,"div",12),g("click",function(){let n=p(e).$implicit,a=f();return c(a.select(n))}),o(1,"div",13),b(2),l()()}if(s&2){let e=t.$implicit;z(e.selected?"pin pin-select":"pin"),w("left",e.x+"px")("top",e.y+"px"),d("title",e.label),r(2),O(e.label)}}function ie(s,t){if(s&1&&x(0,"div",14),s&2){let e=f();w("left",e.pin.x+"px")("top",e.pin.y+"px"),d("title",e.pin.label)}}function ne(s,t){if(s&1){let e=_();o(0,"ion-footer",11)(1,"ion-button",4),g("click",function(){p(e);let n=f();return c(n.removePin())}),b(2,"Remove Pin"),l()()}if(s&2){let e=f();r(),d("disabled",e.busy)}}var h=class h{constructor(){this.api=u(X);this.router=u(D);this.sanitizer=u(L);this.location=u(B);this.vanity=M();this.id=M();this.artItem={name:"",category:"",description:"",pin:"",id:void 0,contact_email:"",art_type:""};this.mapUri="";this.pt={x:0,y:0};this.busy=!1;this.pins=[];this.art=[]}ionViewWillEnter(){return y(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.artItem=yield this.api.getArt(this.id());let t=yield this.api.getMap();t.base64?this.mapUri=this.sanitizer.bypassSecurityTrustUrl(t.base64):this.mapUri=this.api.imageURL(`${this.vanity()}/${t.filename}`),this.art=yield this.api.art({cached:!0})})}onResize(){this.pins=this.getPins(this.art,this.artItem)}onMapLoad(){this.pins=this.getPins(this.art,this.artItem)}select(t){this.selectedPin&&(this.selectedPin.selected=!1),t.selected=!0,this.artItem=t.art,this.selectedPin=t,console.log("Selected pin:",t)}mapPoint(t){let e=t.clientX,i=t.clientY,a=this.map.nativeElement.getBoundingClientRect(),m=(e-a.x)*1e4/a.width,G=(i-a.y)*1e4/a.height;this.pt={x:Math.ceil(m),y:Math.ceil(G)},this.pin={x:this.pt.x*this.width()/1e4,y:this.pt.y*this.height()/1e4,label:this.artItem.name,pt:this.pt,changed:!0};let K=this.pin.x,Z=this.pin.y;return this.selectedPin&&(this.selectedPin.selected=!1,this.selectedPin.changed=!0,this.selectedPin.pt=this.pt),setTimeout(()=>{this.selectedPin&&(this.selectedPin.x=K,this.selectedPin.y=Z)},500),!1}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}getPins(t,e){let i=[];for(let n of t)if(n.pin&&n.pin.trim()!=""){let a=JSON.parse(n.pin),m=n.id===(e==null?void 0:e.id);i.push({x:a.x*this.width()/1e4,y:a.y*this.height()/1e4,label:n.name,art:n,selected:m}),m&&(this.selectedPin=i[i.length-1])}return i}save(){return y(this,null,function*(){this.busy=!0;try{let t=0;for(let e of this.pins)if(e.changed){if(console.log(e),!e.pt){this.api.sendMessage(`Error: No position for ${e.art.name}`,0,"Error"),this.busy=!1;return}this.api.sendMessage(`Saving ${e.art.name}...`,1,"Saving"),yield this.api.placeArt(e.art.id,e.pt),t++}t||(yield this.api.placeArt(this.id(),this.pt)),this.api.clearCache(),this.location.back(),this.location.back()}finally{this.busy=!1}})}removePin(){return y(this,null,function*(){this.busy=!0;try{yield this.api.placeArt(this.id(),void 0),this.api.clearCache(),this.location.back()}finally{this.busy=!1}})}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=I({type:h,selectors:[["app-art-map"]],viewQuery:function(e,i){if(e&1&&S(ee,5),e&2){let n;V(n=R())&&(i.map=n.first)}},inputs:{vanity:[1,"vanity"],id:[1,"id"]},decls:18,vars:6,consts:[["map",""],["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"page2"],[1,"map"],[3,"title","left","top","class"],[1,"placed","pin",3,"title","left","top"],[3,"load","resize","click","src"],[1,"ion-padding","ion-text-center"],[3,"click","title"],[1,"label"],[1,"placed","pin",3,"title"]],template:function(e,i){if(e&1){let n=_();o(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),o(4,"ion-title"),b(5),l(),o(6,"ion-buttons",3)(7,"ion-button",4),g("click",function(){return p(n),c(i.save())}),b(8,"Save"),l()()()(),o(9,"ion-content",5)(10,"div",6)(11,"div",7),A(12,te,3,8,"div",8,T),v(14,ie,1,5,"div",9),l(),o(15,"img",10,0),g("load",function(){return p(n),c(i.onMapLoad())})("resize",function(){return p(n),c(i.onResize())},k)("click",function(m){return p(n),c(i.mapPoint(m))}),l()()(),v(17,ne,3,1,"ion-footer",11)}e&2&&(r(5),U("Place ",i.artItem.name," on Map"),r(2),d("disabled",i.busy),r(2),d("fullscreen",!0),r(3),E(i.pins),r(2),P(i.pin?14:-1),r(),d("src",i.mapUri,C),r(2),P(i.artItem.pin&&i.artItem.pin.length>0?17:-1))},dependencies:[W,F,j,J,H,N,q,$,Q],styles:["img[_ngcontent-%COMP%]{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.placed[_ngcontent-%COMP%]{background-color:red!important;border:2px solid white!important;width:15px;height:15px;border-radius:var(--br-2xl)}.pin[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:var(--br-xl);background-color:#fff;border:2px solid rgb(255,116,116);position:absolute}.pin-select[_ngcontent-%COMP%]{border:3px solid red!important}.pin[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{visibility:hidden;width:200px;margin-left:var(--spacing-base);margin-top:calc(-1 * var(--spacing-xs));-webkit-text-stroke-width:4px;-webkit-text-stroke-color:rgba(0,0,0,.1);text-stroke-width:4px;text-stroke-color:rgba(0,0,0,.1);color:#fff;font-weight:700}.pin[_ngcontent-%COMP%]:hover .label[_ngcontent-%COMP%]{visibility:visible}.map[_ngcontent-%COMP%]{position:absolute}"]});var Y=h;export{Y as ArtMapPage}; diff --git a/.admin-app/chunk-ECI4ULYX.js b/.admin-app/chunk-ECI4ULYX.js new file mode 100644 index 00000000..d304cab6 --- /dev/null +++ b/.admin-app/chunk-ECI4ULYX.js @@ -0,0 +1 @@ +import{a as Wt}from"./chunk-AWZLS6KS.js";import{a as Ft}from"./chunk-KP53OIUL.js";import{a as M,b as D,c as Dt,d as Ut}from"./chunk-PXGOJK3Q.js";import"./chunk-3U2X6Y6W.js";import"./chunk-LKPHKBDT.js";import{a as Et}from"./chunk-4JLQIYCO.js";import{a as Vt}from"./chunk-3OSW3EO7.js";import"./chunk-KCPLCCSF.js";import{a as Mt}from"./chunk-CPOGSMOE.js";import{a as St}from"./chunk-U3YCGDGQ.js";import{a as Tt}from"./chunk-K6ROGVP7.js";import{c as w}from"./chunk-OZ2IKH4J.js";import{Y as At,Z as Pt,oa as kt,q as bt,w as It}from"./chunk-QF32E4V4.js";import{E as vt,H as xt,K as wt,l as Ct,v as yt}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as B,Aa as Q,Ba as _,Ca as E,Cb as X,Cc as pt,Da as P,E as L,Eb as Z,Fc as ct,Ga as y,Gc as mt,H as o,Ha as v,Ia as x,Ka as T,Kc as _t,Na as q,Oc as ut,P as O,Pc as ht,Uc as gt,Va as j,Vc as ft,Xb as $,Y as u,Z as h,_a as z,aa as N,ac as tt,ba as R,ca as p,da as l,dc as et,ea as s,ec as it,fa as C,fc as nt,gc as at,ib as G,ka as I,kc as ot,lb as J,ma as g,mc as rt,oa as r,ob as Y,p as b,s as c,sa as k,sc as lt,t as m,ta as S,tc as st,ua as V,ub as H,w as W,wc as dt,xb as K}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as U,b as F,h as f}from"./chunk-LNJ3S2LQ.js";var Ot=i=>[i];function Bt(i,n){if(i&1&&(l(0,"ion-select-option",14),_(1),s()),i&2){let t=n.$implicit;p("value",t),o(),E(t)}}function Nt(i,n){if(i&1&&C(0,"img",17),i&2){let t=r(2);p("src",t.imageUrl,L)}}function Rt(i,n){if(i&1&&(l(0,"p"),_(1),s()),i&2){let t=r(2);o(),P("Click to choose an optional image for your ",t.title())}}function Qt(i,n){if(i&1){let t=I();l(0,"ion-item")(1,"app-emails",22),x("emailsChange",function(e){c(t);let d=r(2);return v(d.art.contact_email,e)||(d.art.contact_email=e),m(e)}),s()()}if(i&2){let t=r(2);o(),p("isAdmin",t.isAdmin)("isOwner",!1)("label","Art Owner(s)")("placeholder","Email address of Art owner"),y("emails",t.art.contact_email)}}function qt(i,n){if(i&1&&(l(0,"app-tooltip",23)(1,"ion-chip",25),C(2,"ion-icon",26),_(3),s()()),i&2){let t=r(3);o(3),P("\xA0 This ",t.title()," is approved ")}}function jt(i,n){if(i&1&&(l(0,"app-tooltip",24)(1,"ion-chip",27),C(2,"ion-icon",28),_(3),s()()),i&2){let t=r(3);p("text",T("This ",t.title()," will not appear in the dust app until approved")),o(3),P("\xA0 This ",t.title()," is not yet approved ")}}function zt(i,n){if(i&1&&u(0,qt,4,1,"app-tooltip",23)(1,jt,4,3,"app-tooltip",24),i&2){let t=r(2);h(t.isApproved()?0:1)}}function Gt(i,n){if(i&1){let t=I();l(0,"app-tooltip",20)(1,"ion-button",29),g("click",function(){c(t);let e=r(2);return m(e.invite())}),_(2,"Invite"),s()()}if(i&2){let t=r(2);o(),p("disabled",t.inviting)}}function Jt(i,n){if(i&1){let t=I();l(0,"app-tooltip",24)(1,"ion-button",29),g("click",function(){c(t);let e=r(3);return m(e.approve(!1))}),_(2,"Unapprove"),s()()}if(i&2){let t=r(3);p("text",T("Mark this ",t.title()," as unapproved so that it does not appear in the dust app")),o(),p("disabled",t.busy)}}function Yt(i,n){if(i&1){let t=I();l(0,"app-tooltip",24)(1,"ion-button",30),g("click",function(){c(t);let e=r(3);return m(e.approve(!0))}),_(2,"Approve"),s()()}if(i&2){let t=r(3);p("text",T("Approve the ",t.title()," to allow it to be visible in the dust app")),o(),p("disabled",t.busy)}}function Ht(i,n){if(i&1&&u(0,Jt,3,3,"app-tooltip",24)(1,Yt,3,3,"app-tooltip",24),i&2){let t=r(2);h(t.isApproved()?0:1)}}function Kt(i,n){if(i&1&&(l(0,"app-tooltip",31)(1,"ion-button",32),_(2," Place "),s()(),l(3,"ion-button",33),_(4," Delete "),s(),_(5,"\xA0 "),C(6,"ion-alert",34)),i&2){let t=r(2);o(),p("routerLink","../../map/art/"+q(2,Ot,t.art.id)),o(5),p("buttons",t.deleteButtons)}}function Xt(i,n){if(i&1){let t=I();l(0,"div",5)(1,"app-moderation-check",6),g("approve",function(){c(t);let e=r();return m(e.approveModerations())}),s(),l(2,"ion-card",7)(3,"ion-card-content",7)(4,"ion-list",8)(5,"ion-item")(6,"ion-input",9),x("ngModelChange",function(e){c(t);let d=r();return v(d.art.name,e)||(d.art.name=e),m(e)}),s()(),l(7,"ion-item")(8,"ion-input",10),x("ngModelChange",function(e){c(t);let d=r();return v(d.art.artist,e)||(d.art.artist=e),m(e)}),s()(),l(9,"app-link-input",11),x("modelChange",function(e){c(t);let d=r();return v(d.art.url,e)||(d.art.url=e),m(e)}),g("iconClick",function(){c(t);let e=r();return m(e.openUrl())}),s(),l(10,"ion-item",12)(11,"ion-select",13),g("ngModelChange",function(){c(t);let e=r();return m(e.artTypeChanged())}),x("ngModelChange",function(e){c(t);let d=r();return v(d.art.art_type,e)||(d.art.art_type=e),m(e)}),N(12,Bt,2,2,"ion-select-option",14,B),s()(),l(14,"ion-item")(15,"ion-textarea",15),x("ngModelChange",function(e){c(t);let d=r();return v(d.art.description,e)||(d.art.description=e),m(e)}),s()(),l(16,"div",16),g("click",function(){c(t);let e=r();return m(e.upload.click())}),u(17,Nt,1,1,"img",17),u(18,Rt,2,1,"p"),s(),u(19,Qt,2,5,"ion-item"),C(20,"app-internal-fields",18),s(),l(21,"div",19),u(22,zt,2,1),s(),l(23,"div",19),u(24,Gt,3,1,"app-tooltip",20),u(25,Ht,2,1),u(26,Kt,7,4),l(27,"ion-button",3),g("click",function(){c(t);let e=r();return m(e.save())}),_(28,"Save"),s()(),l(29,"app-upload",21),g("upload",function(e){c(t);let d=r();return m(d.uploaded(e))}),s()()()()}if(i&2){let t=r();o(),p("visible",!0)("moderationId",t.art.moderation),o(5),p("label",t.title()+" Title")("placeholder","Title of the "+t.title()),y("ngModel",t.art.name),o(2),y("ngModel",t.art.artist),o(),p("placeholder","URL for the "+t.art.art_type+" project"),y("model",t.art.url),o(2),p("value",t.art.art_type),y("ngModel",t.art.art_type),o(),R(t.artTypes),o(3),p("spellcheck",!0)("rows",6)("autoGrow",!0)("maxlength",1e3),y("ngModel",t.art.description),o(),Q(t.uploading?"disabled":""),o(),h(t.imageUrl?17:-1),o(),h(t.imageUrl?-1:18),o(),h(t.isAdmin||t.isOwner?19:-1),o(),p("schemaType","art")("entityId",t.art.id||0)("currentData",t.internalFieldData),o(2),h(t.id&&!t.isAdmin?22:-1),o(2),h(t.id&&t.isAdmin?24:-1),o(),h(t.id&&t.isAdmin?25:-1),o(),h(t.id&&t.canPlace?26:-1),o(),p("disabled",t.busy)}}function Zt(i,n){i&1&&C(0,"app-spinner")}var A=class A{constructor(){this.api=b(wt);this.alert=b(_t);this.location=b(z);this.moderation=b(Vt);this.vanity=j();this.busy=!0;this.uploading=!1;this.imageChanged=!1;this.isAdmin=!1;this.inviting=!1;this.canPlace=!1;this.isOwner=!1;this.title=W("Art");this.artTypes=Wt;this.route=b(G);this.internalFieldData=[];this.previousContactEmail="";this.art={name:"",pin:"",description:"",category:"Open Playa Art",id:void 0,contact_email:"",art_type:this.artTypes[0],url:""};this.deleteButtons=[{text:"Delete",role:"destructive",handler:()=>{this.delete()}},{text:"Cancel",role:"cancel",handler:()=>{}}];kt({mapOutline:Pt,mailOutline:At,checkmarkCircleOutline:bt,closeCircleOutline:It})}uploaded(n){this.imageUrl=n.url,this.imageChanged=!0,this.blob=n.blob}ionViewWillEnter(){return f(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.id=Ct(this.id),this.art=yield this.api.getArt(this.id),this.art.url||(this.art.url=""),this.previousContactEmail=this.art.contact_email||"",this.canPlace=this.api.getAccessInfo(this.api.festivalId).hasAdmin,this.isAdmin=this.api.lastRoleResponse=="festival",this.isOwner=!!this.id&&this.api.getAccessInfo(this.api.festivalId).art.includes(this.id),this.imageUrl=this.api.imageURL(this.art.imageUrl);let n=this.route.snapshot.queryParams.type;if(!this.art.id&&n&&(this.art.art_type=n,this.title.set(n)),this.art.internalData)try{this.internalFieldData=JSON.parse(this.art.internalData)}catch(t){console.error("Failed to parse internal data:",t),this.internalFieldData=[]}this.busy=!1})}artTypeChanged(){setTimeout(()=>{this.title.set(this.art.art_type)},10)}presentAlert(n){return f(this,null,function*(){yield(yield this.alert.create({header:"Message",message:n,buttons:["OK"]})).present()})}delete(){return f(this,null,function*(){this.busy=!0,yield this.api.deleteArt(this.art),this.api.clearCache(),this.busy=!1,this.location.back()})}save(n=!0){return f(this,null,function*(){var t;this.busy=!0,yt(this.art);try{if(this.internalFields){if(!this.internalFields.validate()){this.api.sendMessage("Please fill in all required fields"),this.busy=!1;return}this.internalFieldData=this.internalFields.fieldValues(),this.internalFieldData.length>0&&(this.art.internalData=JSON.stringify(this.internalFieldData))}let a=yield this.api.addArt(this.art);if(this.busy=!1,a.message)this.presentAlert(a.message);else{if(a.id&&this.imageChanged){console.log(`Uploaded image for art ${a.id}`),this.busy=!0;try{yield this.uploadImage(a.id)}finally{this.busy=!1,this.imageChanged=!1}}this.art.id||(yield this.presentAlert("Thank you for your Art submission.")),this.api.clearCache();let e=Dt(this.previousContactEmail,this.art.contact_email||"");e.length>0&&(yield Ut(this.alert,e,d=>this.inviteWithEmails(d))),n&&this.location.back()}yield this.moderation.moderateIfNeeded(this.art.name,this.art.moderation,[this.art.name,(t=this.art.description)!=null?t:""])}finally{this.busy=!1}})}uploadImage(n){return f(this,null,function*(){if(this.blob)try{this.uploading=!0,this.art.imageUrl=yield this.api.setImage(this.blob,n);let t=yield this.api.addArt(this.art);t.message&&this.presentAlert(t.message)}finally{this.uploading=!1}})}invite(){return f(this,null,function*(){if(!this.art.contact_email){yield w(this.alert,"You must specify an email address","Error");return}this.inviting=!0,yield this.save(!1);let n=yield this.api.inviteArt(this.art);n.message?w(this.alert,n.message):w(this.alert,"The art owner has been invited to manage their art.","Invitation")})}openUrl(){if(this.art.url){let n=xt(this.art.url);window.open(n,"_blank")}}approve(n){return f(this,null,function*(){this.busy=!0,this.art.status=n?2:1;let t=yield this.api.approveArt(this.art);t.message&&w(this.alert,t.message),this.api.clearCache(),this.busy=!1})}isApproved(){return this.art.status===2||this.art.status===0||vt(this.art.status)}inviteWithEmails(n){return f(this,null,function*(){this.inviting=!0;try{for(let t of n){let a=F(U({},this.art),{email:t}),e=yield this.api.inviteArt(a);e.message?yield w(this.alert,e.message,"Error"):yield w(this.alert,`Invitation sent to ${t}`,"Success")}}finally{this.inviting=!1}})}approveModerations(){return f(this,null,function*(){this.art.moderation=0,yield this.save()})}};A.\u0275fac=function(t){return new(t||A)},A.\u0275cmp=O({type:A,selectors:[["app-art"]],viewQuery:function(t,a){if(t&1&&(k(M,5),k(D,5)),t&2){let e;S(e=V())&&(a.upload=e.first),S(e=V())&&(a.internalFields=e.first)}},inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:4,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],[3,"approve","visible","moderationId"],[1,"form"],["lines","none"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],["label","Artist","labelPlacement","stacked","placeholder","Name of the artist",3,"ngModelChange","ngModel"],["label","URL",3,"modelChange","iconClick","placeholder","model"],["lines","none",1,"app-select"],["labelPlacement","stacked","label","Type","interface","popover","placeholder","Select the type of art",1,"app-select",3,"ngModelChange","value","ngModel"],[3,"value"],["labelPlacement","stacked","label","Description","placeholder","Description of the art",3,"ngModelChange","spellcheck","rows","autoGrow","maxlength","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],[3,"schemaType","entityId","currentData"],[1,"center"],["text","Invite art owner via email to manage their art"],[3,"upload"],["helperText","The art owner(s) can login and alter the description and events at the art. This is a list of email addresses.",3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["text","It will be displayed in the dust app"],[3,"text"],["color","secondary"],["name","checkmark-circle-outline"],["color","danger"],["name","close-circle-outline"],["color","secondary",3,"click","disabled"],["color","primary",3,"click","disabled"],["text","Place the art on the map"],["color","secondary",3,"routerLink"],["id","deleteArt","color","secondary"],["trigger","deleteArt","header","Delete Art?",3,"buttons"]],template:function(t,a){t&1&&(l(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),C(3,"ion-back-button"),s(),l(4,"ion-title"),_(5),s(),l(6,"ion-buttons",2)(7,"ion-button",3),g("click",function(){return a.save()}),_(8,"Save"),s()()()(),l(9,"ion-content",4),u(10,Xt,30,28,"div",5)(11,Zt,1,0,"app-spinner"),s()),t&2&&(o(5),E(a.id||a.art.id?"Edit "+a.title():"Add "+a.title()),o(2),p("disabled",a.busy),o(2),p("fullscreen",!0),o(),h(a.busy?11:10))},dependencies:[tt,St,M,Z,H,X,K,Tt,Y,J,lt,mt,it,$,ct,et,rt,nt,at,dt,Mt,st,ht,ft,gt,pt,Ft,D,Et,ot,ut],encapsulation:2});var Lt=A;export{Lt as ArtItemPage}; diff --git a/.admin-app/chunk-NIJZXRAZ.js b/.admin-app/chunk-F5YC2F3D.js similarity index 84% rename from .admin-app/chunk-NIJZXRAZ.js rename to .admin-app/chunk-F5YC2F3D.js index d021659a..4bb3eb4c 100644 --- a/.admin-app/chunk-NIJZXRAZ.js +++ b/.admin-app/chunk-F5YC2F3D.js @@ -1 +1 @@ -import{f as N,ja as R}from"./chunk-LIWDDRYP.js";import{Aa as d,Ca as l,H as i,J as b,Mc as L,P as w,Ua as p,X as a,Y as c,ba as m,ca as u,cc as E,da as f,ea as _,ja as h,jb as I,kb as M,la as T,na as n,nb as D,oa as y,p as C,pa as k,s as x,t as v,xa as F}from"./chunk-FDEJMFAU.js";var O=["*"];function P(e,o){if(e&1&&(d(0),_(1,"ion-icon",4)),e&2){let t=n(2);l(" Review\xA0",t.badge,"\xA0Changes\xA0")}}function j(e,o){if(e&1&&d(0),e&2){let t=n(3);l(" ",t.badge," Changes ")}}function S(e,o){if(e&1&&_(0,"ion-icon",5),e&2){let t=n(3);m("name",t.icon())}}function V(e,o){if(e&1&&(d(0),a(1,j,1,1),a(2,S,1,1,"ion-icon",5)),e&2){let t=n(2);l(" ",t.title,"\xA0 "),i(),c(t.badge?1:-1),i(),c(t.icon()?2:-1)}}function z(e,o){if(e&1){let t=h();u(0,"ion-button",3),T("click",function(){x(t);let g=n();return v(g.navTo(g.routeTo()))}),a(1,P,2,1)(2,V,3,3),f()}if(e&2){let t=n();m("routerLink",t.routeTo()),i(),c(t.badge&&t.title==="publish"?1:2)}}var r=class r{constructor(){this.router=C(I);this.title="";this.width=p("150px");this.routeTo=p();this.icon=p();this.press=new b;R({arrowForwardOutline:N})}navTo(o){o||this.press.emit()}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=w({type:r,selectors:[["app-footer"]],inputs:{title:"title",width:[1,"width"],badge:"badge",routeTo:[1,"routeTo"],icon:[1,"icon"]},outputs:{press:"press"},ngContentSelectors:O,decls:4,vars:3,consts:[[1,"footer"],[1,"container"],["size","large","shape","round","color","primary","mode","md",3,"routerLink"],["size","large","shape","round","color","primary","mode","md",3,"click","routerLink"],["name","arrow-forward-outline"],[3,"name"]],template:function(t,s){t&1&&(y(),u(0,"div",0)(1,"div",1),k(2),a(3,z,3,2,"ion-button",2),f()()),t&2&&(i(),F("width",s.width()),i(2),c(s.title!==""?3:-1))},dependencies:[E,L,D,M],styles:[".footer[_ngcontent-%COMP%]{position:fixed;margin-left:calc(50% - var(--footer-width));left:0;bottom:0;background-color:transparent;color:#fff;text-align:center;padding-top:var(--spacing-1xl);padding-bottom:var(--spacing-1xl)}.container[_ngcontent-%COMP%]{margin-left:auto;margin-right:auto}"]});var A=r;export{A as a}; +import{g as N,oa as R}from"./chunk-QF32E4V4.js";import{Ba as d,Da as l,H as i,J as b,Oc as L,P as w,Va as p,Y as a,Z as c,ca as m,da as u,dc as E,ea as f,fa as _,ka as h,kb as I,lb as M,ma as T,oa as n,ob as D,p as C,pa as y,qa as k,s as x,t as v,ya as F}from"./chunk-LVL3PYF7.js";var O=["*"];function P(e,o){if(e&1&&(d(0),_(1,"ion-icon",4)),e&2){let t=n(2);l(" Review\xA0",t.badge,"\xA0Changes\xA0")}}function j(e,o){if(e&1&&d(0),e&2){let t=n(3);l(" ",t.badge," Changes ")}}function S(e,o){if(e&1&&_(0,"ion-icon",5),e&2){let t=n(3);m("name",t.icon())}}function V(e,o){if(e&1&&(d(0),a(1,j,1,1),a(2,S,1,1,"ion-icon",5)),e&2){let t=n(2);l(" ",t.title,"\xA0 "),i(),c(t.badge?1:-1),i(),c(t.icon()?2:-1)}}function z(e,o){if(e&1){let t=h();u(0,"ion-button",3),T("click",function(){x(t);let g=n();return v(g.navTo(g.routeTo()))}),a(1,P,2,1)(2,V,3,3),f()}if(e&2){let t=n();m("routerLink",t.routeTo()),i(),c(t.badge&&t.title==="publish"?1:2)}}var r=class r{constructor(){this.router=C(I);this.title="";this.width=p("150px");this.routeTo=p();this.icon=p();this.press=new b;R({arrowForwardOutline:N})}navTo(o){o||this.press.emit()}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=w({type:r,selectors:[["app-footer"]],inputs:{title:"title",width:[1,"width"],badge:"badge",routeTo:[1,"routeTo"],icon:[1,"icon"]},outputs:{press:"press"},ngContentSelectors:O,decls:4,vars:3,consts:[[1,"footer"],[1,"container"],["size","large","shape","round","color","primary","mode","md",3,"routerLink"],["size","large","shape","round","color","primary","mode","md",3,"click","routerLink"],["name","arrow-forward-outline"],[3,"name"]],template:function(t,s){t&1&&(y(),u(0,"div",0)(1,"div",1),k(2),a(3,z,3,2,"ion-button",2),f()()),t&2&&(i(),F("width",s.width()),i(2),c(s.title!==""?3:-1))},dependencies:[E,L,D,M],styles:[".footer[_ngcontent-%COMP%]{position:fixed;margin-left:calc(50% - var(--footer-width));left:0;bottom:0;background-color:transparent;color:#fff;text-align:center;padding-top:var(--spacing-1xl);padding-bottom:var(--spacing-1xl)}.container[_ngcontent-%COMP%]{margin-left:auto;margin-right:auto}"]});var A=r;export{A as a}; diff --git a/.admin-app/chunk-NOXTHIT5.js b/.admin-app/chunk-FXBXBRQ3.js similarity index 63% rename from .admin-app/chunk-NOXTHIT5.js rename to .admin-app/chunk-FXBXBRQ3.js index 58ad42c9..12fb81fd 100644 --- a/.admin-app/chunk-NOXTHIT5.js +++ b/.admin-app/chunk-FXBXBRQ3.js @@ -1,4 +1,4 @@ -import{a as z}from"./chunk-DUYAUKPA.js";import"./chunk-YLPHNW7F.js";import{a as xe}from"./chunk-ZOFWWE63.js";import"./chunk-GPVDUW6Q.js";import{a as ye}from"./chunk-5B2MUMUK.js";import"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{a as _e,ba as ve,ja as Ce}from"./chunk-LIWDDRYP.js";import{K as V,e as he}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as P,Aa as a,Ba as f,Bc as de,Ca as D,Db as oe,E as O,Ec as ce,Fa as C,Fc as ge,Ga as x,H as r,Ha as I,Kc as fe,P as S,Ra as K,Sa as $,Sc as ue,Ua as R,Wa as F,Wb as re,X as h,Y as _,_ as Z,_a as ee,aa as E,ba as y,ca as o,cc as le,da as l,db as te,dc as se,ea as T,fa as u,ga as v,ha as W,ja as A,ka as k,la as M,lc as me,na as d,nb as ie,p as b,ra as q,rc as pe,s as c,sa as Y,t as g,ta as J,tb as ne,wb as ae}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as w}from"./chunk-LNJ3S2LQ.js";function we(n,i){return` +import{a as z}from"./chunk-J6QP2YBJ.js";import{a as xe}from"./chunk-CMEEWD7E.js";import"./chunk-M2OHFPPF.js";import"./chunk-62GZOW6G.js";import{a as ye}from"./chunk-K6ROGVP7.js";import"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{a as _e,fa as ve,oa as Ce}from"./chunk-QF32E4V4.js";import{K as V,e as he}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as Z,$a as ee,Ba as a,Ca as f,Cc as de,Da as D,E as O,Eb as oe,Fc as ce,Ga as C,Gc as ge,H as r,Ha as x,Ia as I,Mc as fe,P as S,Sa as K,Ta as $,Uc as ue,Va as R,Xa as F,Xb as re,Y as h,Z as _,aa as P,ba as E,ca as y,da as o,dc as le,ea as l,eb as te,ec as se,fa as T,ga as u,ha as v,ia as W,ka as A,la as k,ma as M,mc as me,oa as d,ob as ie,p as b,s as c,sa as q,sc as pe,t as g,ta as Y,ua as J,ub as ne,xb as ae}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as w}from"./chunk-LNJ3S2LQ.js";function we(n,i){return` `}var Ie=(n,i)=>i.id;function Pe(n,i){if(n&1&&(u(0,"h2",0),a(1),v()),n&2){let e=d().$implicit;r(),f(e.heading)}}function Ee(n,i){if(n&1&&W(0,"img",3),n&2){let e=d().$implicit;k("src",e.image,O)}}function Se(n,i){if(n&1&&(h(0,Pe,2,1,"h2",0),u(1,"div",1)(2,"div",2),h(3,Ee,1,1,"img",3),u(4,"div")(5,"h3"),a(6),v(),u(7,"p",4),a(8),v(),u(9,"a",5)(10,"p",6),a(11),v()()()(),u(12,"p",7),a(13),v()()),n&2){let e=i.$implicit,t=d();_(e.heading?0:-1),r(3),_(e.image&&!t.hideImages()?3:-1),r(3),f(e.title),r(2),D(" ",e.timeString," "),r(),k("href",e.campUrl,O),r(2),f(t.eventLocation(e)),r(2),f(e.description)}}var B=class B{constructor(){this.events=[];this.day=R("day");this.excluded=R("");this.hideImages=F(!1);this.pbOnDay=F(!0);this.inited=!1;this.done=K(()=>console.log(this.hideImages()));this.eventService=b(z);this.api=b(V);$(()=>{let i=this.excluded();this.ngOnInit()})}ngOnInit(){return w(this,null,function*(){this.inited||(this.inited=!0,this.events=yield this.eventService.getPrintableEvents(this.api.vanity(),yield this.api.events({cached:!0}),this.day(),this.excluded()))})}eventLocation(i){var e,t;return he(i.camp)?(e=i.other_location)!=null?e:"":(t=i.camp)!=null?t:""}};B.\u0275fac=function(e){return new(e||B)},B.\u0275cmp=S({type:B,selectors:[["app-print-events"]],inputs:{day:[1,"day"],excluded:[1,"excluded"],hideImages:[1,"hideImages"],pbOnDay:[1,"pbOnDay"]},outputs:{hideImages:"hideImagesChange",pbOnDay:"pbOnDayChange"},decls:2,vars:0,consts:[[1,"title"],[1,"event"],[1,"event-header"],[3,"src"],[1,"time"],[3,"href"],[1,"camp"],[1,"desc"]],template:function(e,t){e&1&&P(0,Se,14,7,null,null,Ie),e&2&&E(t.events)},encapsulation:2});var H=B;var Te=(n,i)=>i.id;function Me(n,i){if(n&1&&W(0,"img",2),n&2){let e=d().$implicit;k("src",e.imageUrl,O)}}function De(n,i){if(n&1&&(u(0,"div",0)(1,"div",1)(2,"h3"),a(3),v()(),u(4,"p"),h(5,Me,1,1,"img",2),a(6),v()()),n&2){let e=i.$implicit,t=d();r(3),f(e.name),r(2),_(e.imageUrl&&!t.hideImages()?5:-1),r(),D(" ",e.description," ")}}var N=class N{constructor(){this.api=b(V);this.camps=[];this.hideImages=F(!1)}ngOnInit(){return w(this,null,function*(){this.camps=yield this.api.camps({cached:!1}),this.camps.map(i=>{i.imageUrl&&(i.imageUrl=this.api.imageURL(i.imageUrl))})})}};N.\u0275fac=function(e){return new(e||N)},N.\u0275cmp=S({type:N,selectors:[["app-print-camps"]],inputs:{hideImages:[1,"hideImages"]},outputs:{hideImages:"hideImagesChange"},decls:2,vars:0,consts:[[1,"event"],[1,"camp-header"],[1,"camp",3,"src"]],template:function(e,t){e&1&&P(0,De,7,3,"div",0,Te),e&2&&E(t.camps)},encapsulation:2});var j=N;var Ve=(n,i)=>i.id;function Oe(n,i){if(n&1&&W(0,"img",2),n&2){let e=d().$implicit;k("src",e.imageUrl,O)}}function ke(n,i){if(n&1&&(u(0,"div",0)(1,"div",1)(2,"h3"),a(3),v()(),u(4,"p"),h(5,Oe,1,1,"img",2),a(6),v()()),n&2){let e=i.$implicit,t=d();r(3),f(e.name),r(2),_(e.imageUrl&&!t.hideImages()?5:-1),r(),D(" ",e.description," ")}}var U=class U{constructor(){this.api=b(V);this.art=[];this.hideImages=F(!1)}ngOnInit(){return w(this,null,function*(){this.art=yield this.api.art({cached:!1}),this.art.map(i=>{i.imageUrl&&(i.imageUrl=this.api.imageURL(i.imageUrl))})})}};U.\u0275fac=function(e){return new(e||U)},U.\u0275cmp=S({type:U,selectors:[["app-print-art"]],inputs:{hideImages:[1,"hideImages"]},outputs:{hideImages:"hideImagesChange"},decls:2,vars:0,consts:[[1,"event"],[1,"camp-header"],[1,"camp",3,"src"]],template:function(e,t){e&1&&P(0,ke,7,3,"div",0,Ve),e&2&&E(t.art)},encapsulation:2});var G=U;var Fe=["frame"];function We(n,i){if(n&1&&(o(0,"ion-select-option",23),a(1),l()),n&2){let e=i.$implicit;y("value",e),r(),f(e)}}function Be(n,i){n&1&&T(0,"app-spinner")}function Ne(n,i){if(n&1){let e=A();o(0,"header",28)(1,"h1"),a(2),l(),o(3,"h2"),a(4),l()(),o(5,"div",29)(6,"div",30)(7,"app-print-events",31),I("pbOnDayChange",function(s){c(e);let m=d(2);return x(m.pbOnDay,s)||(m.pbOnDay=s),g(s)})("hideImagesChange",function(s){c(e);let m=d(2);return x(m.hideImages,s)||(m.hideImages=s),g(s)}),l()()()}if(n&2){let e=i.$implicit,t=d(2);y("ngClass",t.pbOnDay?"page-break":""),r(2),f(t.title),r(2),D("",e," Events"),r(3),C("pbOnDay",t.pbOnDay),y("excluded",t.excluded),C("hideImages",t.hideImages),y("day",e)}}function Ue(n,i){if(n&1&&P(0,Ne,8,7,null,null,Z),n&2){let e=d();E(e.days)}}function Le(n,i){if(n&1){let e=A();o(0,"header",32)(1,"h1"),a(2),l(),o(3,"h2"),a(4,"Theme Camps"),l()(),o(5,"div",29)(6,"div",30)(7,"app-print-camps",33),I("hideImagesChange",function(s){c(e);let m=d();return x(m.hideImages,s)||(m.hideImages=s),g(s)}),l()()()}if(n&2){let e=d();r(2),f(e.title),r(5),C("hideImages",e.hideImages)}}function Ae(n,i){if(n&1){let e=A();o(0,"header",32)(1,"h1"),a(2),l(),o(3,"h2"),a(4,"Art"),l()(),o(5,"div",29)(6,"div",30)(7,"app-print-art",33),I("hideImagesChange",function(s){c(e);let m=d();return x(m.hideImages,s)||(m.hideImages=s),g(s)}),l()()()}if(n&2){let e=d();r(2),f(e.title),r(5),C("hideImages",e.hideImages)}}var L=class L{constructor(){this.vanity=R();this.title="";this.busy=!0;this.diffTimeZone="";this.showing="all";this.imageUrl="";this.pbOnDay=!0;this.hideImages=!1;this.filter="all";this.excludedTypes=[];this.excluded="";this.eventTypes=[];this.columns="3";this.lines="6";this.days=[];this.eventService=b(z);this.api=b(V);Ce({add:_e,printOutline:ve})}ngOnInit(){return w(this,null,function*(){var e;this.title=this.api.festivalTitle(),this.diffTimeZone=this.api.currentTimeZone()==this.api.festivalTimeZone()?"":this.api.festivalTimeZone(),yield this.api.setFestivalByVanity(this.vanity()),this.imageUrl=(e=this.api.imageURL(this.api.festivalImage()))!=null?e:"";let i=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.eventTypes=i.event_types?i.event_types.split(` -`):xe})}print(){this.iFrame.nativeElement.contentWindow.focus(),this.iFrame.nativeElement.contentWindow.print()}ionViewDidEnter(){return w(this,null,function*(){yield this.refresh(),setTimeout(()=>{this.busy=!1,this.copyToIFrame()},4e3)})}hasEvents(){return this.filter=="all"||this.filter=="events"}hasCamps(){return this.filter=="all"||this.filter=="camps"}hasArt(){return this.filter=="all"||this.filter=="art"}update(){this.excluded=this.excludedTypes.join(","),this.busy=!0,setTimeout(()=>{this.busy=!1,this.copyToIFrame()},4e3)}copyToIFrame(){let i=document.getElementById("page"),e=this.iFrame.nativeElement.contentDocument;e.open(),e.write(we(parseInt(this.columns),parseInt(this.lines))),e.write(i==null?void 0:i.innerHTML),e.close()}festivalImage(){return this.api.imageURL(this.api.festivalImage())}refresh(){return w(this,null,function*(){this.days=yield this.eventService.getEventDays(this.api.vanity(),yield this.api.events({cached:!1}))})}};L.\u0275fac=function(e){return new(e||L)},L.\u0275cmp=S({type:L,selectors:[["app-print"]],viewQuery:function(e,t){if(e&1&&q(Fe,5),e&2){let s;Y(s=J())&&(t.iFrame=s.first)}},inputs:{vanity:[1,"vanity"]},decls:71,vars:18,consts:[["frame",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],["labelPlacement","end",3,"ionChange","ngModelChange","ngModel"],[2,"padding","1rem"],["slot","end","label","COLUMNS","aria-label","Columns","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","1"],["value","2"],["value","3"],["value","4"],["value","5"],["slot","end","label","MAX LINES","aria-label","Maximum Lines","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","0"],["value","6"],["value","10"],["slot","end","label","FILTER","aria-label","Filter by Type","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","all"],["value","camps"],["value","events"],["value","art"],["label","EXCLUDE TYPES","interface","popover","placeholder","Select event types to exclude",2,"max-width","200px",3,"ionChange","ngModelChange","multiple","value","ngModel"],[3,"value"],[3,"fullscreen"],[3,"scrolling","frameBorder"],["id","page",2,"display","none"],["id","pageFooter"],["id","pageHeader",3,"ngClass"],[1,"container"],[1,"columns-container"],[3,"pbOnDayChange","hideImagesChange","pbOnDay","excluded","hideImages","day"],["id","pageHeader",1,"page-break"],[3,"hideImagesChange","hideImages"]],template:function(e,t){if(e&1){let s=A();o(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),T(3,"ion-back-button"),l(),o(4,"ion-title"),a(5,"Print Preview"),l(),o(6,"ion-buttons",3)(7,"ion-button",4),M("click",function(){return c(s),g(t.print())}),a(8,"Print"),l()()(),o(9,"ion-toolbar",1)(10,"ion-buttons")(11,"ion-button")(12,"ion-checkbox",5),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.hideImages,p)||(t.hideImages=p),g(p)}),a(13,"Hide Images"),l()(),T(14,"div",6),o(15,"ion-select",7),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.columns,p)||(t.columns=p),g(p)}),o(16,"ion-select-option",8),a(17,"1"),l(),o(18,"ion-select-option",9),a(19,"2"),l(),o(20,"ion-select-option",10),a(21,"3"),l(),o(22,"ion-select-option",11),a(23,"4"),l(),o(24,"ion-select-option",12),a(25,"5"),l()(),T(26,"div",6),o(27,"ion-select",13),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.lines,p)||(t.lines=p),g(p)}),o(28,"ion-select-option",14),a(29,"0"),l(),o(30,"ion-select-option",8),a(31,"1"),l(),o(32,"ion-select-option",9),a(33,"2"),l(),o(34,"ion-select-option",10),a(35,"3"),l(),o(36,"ion-select-option",11),a(37,"4"),l(),o(38,"ion-select-option",12),a(39,"5"),l(),o(40,"ion-select-option",15),a(41,"6"),l(),o(42,"ion-select-option",16),a(43,"10"),l()(),T(44,"div",6),o(45,"ion-select",17),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.filter,p)||(t.filter=p),g(p)}),o(46,"ion-select-option",18),a(47,"All"),l(),o(48,"ion-select-option",19),a(49,"Camps"),l(),o(50,"ion-select-option",20),a(51,"Events"),l(),o(52,"ion-select-option",21),a(53,"Art"),l()(),T(54,"div",6),o(55,"ion-select",22),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.excludedTypes,p)||(t.excludedTypes=p),g(p)}),P(56,We,2,2,"ion-select-option",23,Z),l(),o(58,"ion-button")(59,"ion-checkbox",5),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.pbOnDay,p)||(t.pbOnDay=p),g(p)}),a(60,"Page Break on Day"),l()()()()(),o(61,"ion-content",24),h(62,Be,1,0,"app-spinner"),T(63,"iframe",25,0),o(65,"div",26),h(66,Ue,2,0),h(67,Le,8,2),h(68,Ae,8,2),o(69,"footer",27),a(70,"-"),l()()()}e&2&&(r(12),C("ngModel",t.hideImages),r(3),C("ngModel",t.columns),y("value",t.columns),r(12),C("ngModel",t.lines),y("value",t.lines),r(18),C("ngModel",t.filter),y("value",t.filter),r(10),y("multiple",!0)("value",t.excludedTypes),C("ngModel",t.excludedTypes),r(),E(t.eventTypes),r(3),C("ngModel",t.pbOnDay),r(2),y("fullscreen",!0),r(),_(t.busy?62:-1),r(),y("scrolling","no")("frameBorder",0),r(3),_(t.hasEvents()?66:-1),r(),_(t.hasCamps()?67:-1),r(),_(t.hasArt()?68:-1))},dependencies:[fe,ye,te,ee,oe,ne,ae,ie,pe,ge,se,re,ce,le,me,H,j,G,ue,de],styles:["iframe[_ngcontent-%COMP%]{height:100%;width:100%}ion-checkbox[_ngcontent-%COMP%]{font-family:Gelion Regular;font-size:medium}ion-select[_ngcontent-%COMP%]{font-size:medium}ion-select[_ngcontent-%COMP%]::part(icon){color:#fff!important}"]});var be=L;export{be as PrintPage}; +`):xe})}print(){this.iFrame.nativeElement.contentWindow.focus(),this.iFrame.nativeElement.contentWindow.print()}ionViewDidEnter(){return w(this,null,function*(){yield this.refresh(),setTimeout(()=>{this.busy=!1,this.copyToIFrame()},4e3)})}hasEvents(){return this.filter=="all"||this.filter=="events"}hasCamps(){return this.filter=="all"||this.filter=="camps"}hasArt(){return this.filter=="all"||this.filter=="art"}update(){this.excluded=this.excludedTypes.join(","),this.busy=!0,setTimeout(()=>{this.busy=!1,this.copyToIFrame()},4e3)}copyToIFrame(){let i=document.getElementById("page"),e=this.iFrame.nativeElement.contentDocument;e.open(),e.write(we(parseInt(this.columns),parseInt(this.lines))),e.write(i==null?void 0:i.innerHTML),e.close()}festivalImage(){return this.api.imageURL(this.api.festivalImage())}refresh(){return w(this,null,function*(){this.days=yield this.eventService.getEventDays(this.api.vanity(),yield this.api.events({cached:!1}))})}};L.\u0275fac=function(e){return new(e||L)},L.\u0275cmp=S({type:L,selectors:[["app-print"]],viewQuery:function(e,t){if(e&1&&q(Fe,5),e&2){let s;Y(s=J())&&(t.iFrame=s.first)}},inputs:{vanity:[1,"vanity"]},decls:71,vars:18,consts:[["frame",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"ionChange","ngModelChange","ngModel"],[2,"padding","1rem"],["slot","end","label","COLUMNS","aria-label","Columns","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","1"],["value","2"],["value","3"],["value","4"],["value","5"],["slot","end","label","MAX LINES","aria-label","Maximum Lines","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","0"],["value","6"],["value","10"],["slot","end","label","FILTER","aria-label","Filter by Type","interface","popover",3,"ionChange","ngModelChange","ngModel","value"],["value","all"],["value","camps"],["value","events"],["value","art"],["label","EXCLUDE TYPES","interface","popover","placeholder","Select event types to exclude",2,"max-width","200px",3,"ionChange","ngModelChange","multiple","value","ngModel"],[3,"value"],[3,"fullscreen"],[3,"scrolling","frameBorder"],["id","page",2,"display","none"],["id","pageFooter"],["id","pageHeader",3,"ngClass"],[1,"container"],[1,"columns-container"],[3,"pbOnDayChange","hideImagesChange","pbOnDay","excluded","hideImages","day"],["id","pageHeader",1,"page-break"],[3,"hideImagesChange","hideImages"]],template:function(e,t){if(e&1){let s=A();o(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),T(3,"ion-back-button"),l(),o(4,"ion-title"),a(5,"Print Preview"),l(),o(6,"ion-buttons",3)(7,"ion-button",4),M("click",function(){return c(s),g(t.print())}),a(8,"Print"),l()()(),o(9,"ion-toolbar",1)(10,"ion-buttons")(11,"ion-button")(12,"ion-checkbox",5),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.hideImages,p)||(t.hideImages=p),g(p)}),a(13,"Hide Images"),l()(),T(14,"div",6),o(15,"ion-select",7),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.columns,p)||(t.columns=p),g(p)}),o(16,"ion-select-option",8),a(17,"1"),l(),o(18,"ion-select-option",9),a(19,"2"),l(),o(20,"ion-select-option",10),a(21,"3"),l(),o(22,"ion-select-option",11),a(23,"4"),l(),o(24,"ion-select-option",12),a(25,"5"),l()(),T(26,"div",6),o(27,"ion-select",13),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.lines,p)||(t.lines=p),g(p)}),o(28,"ion-select-option",14),a(29,"0"),l(),o(30,"ion-select-option",8),a(31,"1"),l(),o(32,"ion-select-option",9),a(33,"2"),l(),o(34,"ion-select-option",10),a(35,"3"),l(),o(36,"ion-select-option",11),a(37,"4"),l(),o(38,"ion-select-option",12),a(39,"5"),l(),o(40,"ion-select-option",15),a(41,"6"),l(),o(42,"ion-select-option",16),a(43,"10"),l()(),T(44,"div",6),o(45,"ion-select",17),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.filter,p)||(t.filter=p),g(p)}),o(46,"ion-select-option",18),a(47,"All"),l(),o(48,"ion-select-option",19),a(49,"Camps"),l(),o(50,"ion-select-option",20),a(51,"Events"),l(),o(52,"ion-select-option",21),a(53,"Art"),l()(),T(54,"div",6),o(55,"ion-select",22),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.excludedTypes,p)||(t.excludedTypes=p),g(p)}),P(56,We,2,2,"ion-select-option",23,Z),l(),o(58,"ion-button")(59,"ion-checkbox",5),M("ionChange",function(){return c(s),g(t.update())}),I("ngModelChange",function(p){return c(s),x(t.pbOnDay,p)||(t.pbOnDay=p),g(p)}),a(60,"Page Break on Day"),l()()()()(),o(61,"ion-content",24),h(62,Be,1,0,"app-spinner"),T(63,"iframe",25,0),o(65,"div",26),h(66,Ue,2,0),h(67,Le,8,2),h(68,Ae,8,2),o(69,"footer",27),a(70,"-"),l()()()}e&2&&(r(12),C("ngModel",t.hideImages),r(3),C("ngModel",t.columns),y("value",t.columns),r(12),C("ngModel",t.lines),y("value",t.lines),r(18),C("ngModel",t.filter),y("value",t.filter),r(10),y("multiple",!0)("value",t.excludedTypes),C("ngModel",t.excludedTypes),r(),E(t.eventTypes),r(3),C("ngModel",t.pbOnDay),r(2),y("fullscreen",!0),r(),_(t.busy?62:-1),r(),y("scrolling","no")("frameBorder",0),r(3),_(t.hasEvents()?66:-1),r(),_(t.hasCamps()?67:-1),r(),_(t.hasArt()?68:-1))},dependencies:[fe,ye,te,ee,oe,ne,ae,ie,pe,ge,se,re,ce,le,me,H,j,G,ue,de],styles:["iframe[_ngcontent-%COMP%]{height:100%;width:100%}ion-checkbox[_ngcontent-%COMP%]{font-family:Gelion Regular;font-size:medium}ion-select[_ngcontent-%COMP%]{font-size:medium}ion-select[_ngcontent-%COMP%]::part(icon){color:#fff!important}"]});var be=L;export{be as PrintPage}; diff --git a/.admin-app/chunk-GJLDF72A.js b/.admin-app/chunk-GJLDF72A.js deleted file mode 100644 index bd989ac4..00000000 --- a/.admin-app/chunk-GJLDF72A.js +++ /dev/null @@ -1,3 +0,0 @@ -import{a as p,c}from"./chunk-OZ2IKH4J.js";import{I as l,K as d}from"./chunk-OQVFSD37.js";import{Ic as v,l as h,p as f}from"./chunk-FDEJMFAU.js";import{h as o}from"./chunk-LNJ3S2LQ.js";var s=class s{constructor(){this.api=f(d);this.alert=f(v)}inviteAllCamps(i,e){return o(this,null,function*(){let t=i.filter(n=>n.contact_email&&n.contact_email.trim());if(t.length===0){yield c(this.alert,"No camps have email addresses to invite.","No Camps");return}(yield this.confirmAction(`Invite ${t.length} ${l(t.length,"camp")}?`,"This will send invitation emails to all camps with email addresses."))&&(yield this.inviteCampBatch(t,e))})}inviteAllArt(i,e){return o(this,null,function*(){let t=i.filter(n=>n.contact_email&&n.contact_email.trim());if(t.length===0){yield c(this.alert,"No artists have email addresses to invite.","No Art");return}(yield this.confirmAction(`Invite ${t.length} ${l(t.length,"artist")}?`,"This will send invitation emails to all artists with email addresses."))&&(yield this.inviteArtBatch(t,e))})}confirmAction(i,e){return o(this,null,function*(){return p(this.alert,`${i} - -${e}`,"Confirm")})}inviteCampBatch(i,e){return o(this,null,function*(){try{let t=0,r=0;for(let a=0;a");return this.sanitizer.bypassSecurityTrustHtml(e)}};k.\u0275fac=function(e){return new(e||k)},k.\u0275pipe=ne({name:"lineBreak",type:k,pure:!0});var Y=k;function Be(l,t){if(l&1&&(a(0,"ion-item")(1,"ion-label")(2,"h1"),m(3,"Before"),n(),d(4,"span",6),K(5,"lineBreak"),n()()),l&2){let e,i=p();o(4),s("innerHTML",Q(5,1,(e=i.change())==null?null:e.beforeText),G)}}var O=class O{constructor(){this.change=v();this.exit=z();E({close:R})}close(){this.exit.emit()}};O.\u0275fac=function(e){return new(e||O)},O.\u0275cmp=C({type:O,selectors:[["app-unpublished-change"]],inputs:{change:[1,"change"]},outputs:{exit:"exit"},decls:19,vars:8,consts:[["color","primary"],["slot","end"],[3,"click"],["slot","icon-only",3,"icon"],[1,"modal-content"],[1,"full-height"],[3,"innerHTML"]],template:function(e,i){if(e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1)(3,"ion-button",2),c("click",function(){return i.close()}),d(4,"ion-icon",3),n()(),a(5,"ion-title"),m(6),n()()(),a(7,"ion-content",4)(8,"ion-list",5)(9,"ion-item")(10,"h3"),m(11),n()(),B(12,Be,6,3,"ion-item"),a(13,"ion-item")(14,"ion-label")(15,"h1"),m(16),n(),d(17,"span",6),K(18,"lineBreak"),n()()()()),e&2){let r,g,h,ee,te;o(4),s("icon","close"),o(2),F("Change ",(r=i.change())==null?null:r.property),o(5),f((g=i.change())==null?null:g.type),o(),V((h=i.change())!=null&&h.beforeText?12:-1),o(4),f((ee=i.change())!=null&&ee.beforeText?"After":""),o(),s("innerHTML",Q(18,6,(te=i.change())==null?null:te.afterText),G)}},dependencies:[L,$,A,H,P,T,M,I,x,w,S,Y],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.modal-content[_ngcontent-%COMP%]{--padding-bottom: 0;--padding-end: 0;--padding-start: 0;--padding-top: 0;flex:1}.full-height[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column}"]});var q=O;function Ve(l,t){if(l&1){let e=y();a(0,"div",18),c("click",function(r){_(e);let g=p().$implicit,h=p(2);return h.openImagePreview(h.image(g.image)),b(r.stopPropagation())}),d(1,"app-img",19),n()}if(l&2){let e=p().$implicit,i=p(2);o(),s("width",i.imageSize())("height",i.imageSize())("src",i.image(e.image))}}function We(l,t){if(l&1){let e=y();a(0,"ion-item",15),c("click",function(){let r=_(e).$implicit,g=p(2);return b(g.edit(r))}),a(1,"ion-label"),m(2),a(3,"ion-icon",16),c("click",function(r){let g=_(e).$implicit,h=p(2);return b(h.openChangeModal(g,r))}),n(),a(4,"p"),m(5),n()(),B(6,Ve,2,3,"div",17),n()}if(l&2){let e=t.$implicit;o(2),F(" ",e.type,"\xA0"),o(3),f(e.text),o(),V(e.image?6:-1)}}function Fe(l,t){if(l&1){let e=y();a(0,"div",8)(1,"ion-card")(2,"ion-card-header")(3,"ion-card-title"),m(4,"Review Changes"),n(),d(5,"ion-card-subtitle"),n(),a(6,"ion-card-content")(7,"ion-list")(8,"ion-item")(9,"ion-label"),m(10),n()(),ae(11,We,7,3,"ion-item",12,oe),n(),a(13,"div",13)(14,"ion-button",14),c("click",function(){_(e);let r=p();return b(r.publish())}),m(15,"\xA0Publish"),n()()()()()}if(l&2){let e=p();o(10),f(e.title()),o(),re(e.unpublished()),o(3),s("disabled",e.preparing()||!e.isAdmin())}}function ze(l,t){l&1&&d(0,"app-progress-overlay",9),l&2&&s("isIndeterminate",!0)}function He(l,t){if(l&1){let e=y();a(0,"app-image-preview",20),c("exit",function(){_(e);let r=p();return b(r.closeImagePreview())}),n()}if(l&2){let e=p();s("src",e.selectedImageUrl())}}function $e(l,t){if(l&1){let e=y();a(0,"app-unpublished-change",21),c("exit",function(){_(e);let r=p();return b(r.closeChangeModal())}),n()}if(l&2){let e=p();s("change",e.selectedChange())}}var U=class U{constructor(){this.api=N(Ce);this.router=N(se);this.vanity=v();this.isAdmin=u(!1);this.busy=u(!1);this.preparing=u(!1);this.unpublished=u([]);this.showImagePreview=u(!1);this.selectedImageUrl=u("");this.showChangeModal=u(!1);this.selectedChange=u({type:"",text:"",property:""});this.windowWidth=u(typeof window<"u"?window.innerWidth:1024);this.imageSize=X(()=>this.windowWidth()<430?"45px":"90px");this.title=X(()=>{var t;return this.unpublished().length>0?`These changes have been made to ${(t=this.festival)==null?void 0:t.name} but have not published to dust.`:this.preparing()?"Please wait....":"Publishing will ensure that users in the dust app see these changes when they open the event next time."});E({homeOutline:Ie,createOutline:xe,calendarOutline:ye,musicalNotesOutline:Ee,mapOutline:Se,locationOutline:Te,linkOutline:Me,cloudUploadOutline:we,informationCircleOutline:Pe}),typeof window<"u"&&window.addEventListener("resize",()=>{this.windowWidth.set(window.innerWidth)})}ionViewWillEnter(){return W(this,null,function*(){this.update()})}update(){return W(this,null,function*(){this.preparing.set(!0);let t=this.vanity();if(t){if(this.festival=yield this.api.getFestivalByVanity(t,!0),!this.festival)return;this.api.setFestival(this.festival),this.isAdmin.set(this.api.isAdmin(this.festival.id)),this.unpublished.set(yield this.api.getUnpublishedChanges())}this.preparing.set(!1)})}publish(){return W(this,null,function*(){try{this.busy.set(!0),this.api.setFestival(this.festival),yield this.api.publish(),this.api.sendMessage("Data has been published to the Dust app",1),this.router.navigateByUrl(`${this.api.vanity()}`)}finally{this.busy.set(!1)}})}image(t){return this.api.imageURL(t)}openImagePreview(t){this.selectedImageUrl.set(t),this.showImagePreview.set(!0)}closeImagePreview(){this.showImagePreview.set(!1)}edit(t){console.log(t),!(!t.id||!t.itemType)&&this.navigateToEditItem(t.id,t.itemType)}openChangeModal(t,e){var i,r;if(e.stopPropagation(),(i=t.type)!=null&&i.includes("Moderation blocked")&&t.id!==void 0&&t.itemType&&this.vanity()){this.navigateToEditItem(t.id,t.itemType);return}if((r=t.type)!=null&&r.startsWith("Hide")&&t.id!==void 0&&t.itemType&&this.vanity()){this.navigateToEditItem(t.id,t.itemType);return}this.selectedChange.set(t),this.showChangeModal.set(!0)}navigateToEditItem(t,e){let i=this.vanity();switch(e){case"event":this.router.navigateByUrl(`${i}/events/${t}`);break;case"camp":this.router.navigateByUrl(`${i}/camp/${t}`);break;case"art":this.router.navigateByUrl(`${i}/art/${t}`);break}}closeChangeModal(){this.showChangeModal.set(!1)}};U.\u0275fac=function(e){return new(e||U)},U.\u0275cmp=C({type:U,selectors:[["app-unpublished"]],inputs:{vanity:[1,"vanity"]},decls:16,vars:9,consts:[["color","primary"],["slot","start"],[3,"disabled"],[3,"routerLink"],["slot","end"],[3,"hidden"],[3,"fullscreen"],["type","indeterminate",3,"hidden"],[1,"border"],["title","Publishing...",3,"isIndeterminate"],["cssClass","auto-height",3,"willDismiss","isOpen"],[3,"willDismiss","isOpen"],["button","true"],[1,"ion-text-center"],["size","large","shape","round",3,"click","disabled"],["button","true",3,"click"],["color","medium","size","small","name","information-circle-outline",3,"click"],[1,"thumbnail-wrapper"],[1,"thumbnail-wrapper",3,"click"],[3,"width","height","src"],[3,"exit","src"],[3,"exit","change"]],template:function(e,i){e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),d(3,"ion-back-button",2),n(),a(4,"ion-title",3),m(5),n(),a(6,"ion-buttons",4),d(7,"app-side",5),n()()(),a(8,"ion-content",6),d(9,"ion-progress-bar",7),B(10,Fe,16,2,"div",8)(11,ze,1,1,"app-progress-overlay",9),n(),a(12,"ion-modal",10),c("willDismiss",function(){return i.closeImagePreview()}),J(13,He,1,1,"ng-template"),n(),a(14,"ion-modal",11),c("willDismiss",function(){return i.closeChangeModal()}),J(15,$e,1,1,"ng-template"),n()),e&2&&(o(3),s("disabled",i.busy()),o(),s("routerLink","/all"),o(),f(i.busy()?"Publishing":"dust"),o(2),s("hidden",i.busy()),o(),s("fullscreen",!0),o(),s("hidden",!i.preparing()),o(),V(i.busy()?11:10),o(2),s("isOpen",i.showImagePreview()),o(2),s("isOpen",i.showChangeModal()))},dependencies:[S,ve,me,ke,Oe,de,pe,P,T,x,ce,M,w,I,ge,_e,fe,be,he,L,A,$,De,ue,j,q],styles:["ion-button[_ngcontent-%COMP%]{width:10rem}app-img[_ngcontent-%COMP%]{min-width:45px}ion-icon[_ngcontent-%COMP%]{cursor:pointer}.thumbnail-wrapper[_ngcontent-%COMP%]{cursor:pointer;padding:5px;margin:10px;box-shadow:0 1px 6px #00000040}.thumbnail-wrapper[_ngcontent-%COMP%]:hover{background-color:var(--ion-color-primary);transform:scale(1.05)}@media (max-width: 390px){.thumbnail-wrapper[_ngcontent-%COMP%]{margin:5px;padding:2px;box-shadow:0 1px 2px #00000040}}"]});var Ne=U;export{Ne as UnpublishedPage}; diff --git a/.admin-app/chunk-GZDIRLGC.js b/.admin-app/chunk-GZDIRLGC.js deleted file mode 100644 index 2f352cee..00000000 --- a/.admin-app/chunk-GZDIRLGC.js +++ /dev/null @@ -1,3 +0,0 @@ -import{c as u}from"./chunk-OZ2IKH4J.js";import{I as ue,ja as de}from"./chunk-LIWDDRYP.js";import{K as me,e as f,g as A,v as ce}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as C,Aa as _,Ab as U,Ba as E,Bc as ne,Db as j,Ec as re,Fa as h,Fc as ae,Ga as g,H as a,Ha as y,Ia as k,Ic as oe,Nc as le,P as W,Sc as se,Tc as pe,Wb as Y,X as O,Y as H,Za as D,_ as R,aa as I,ba as d,ca as o,cc as G,da as l,dc as z,ea as V,ec as J,fc as K,gc as X,ic as Z,ja as M,la as B,lc as $,na as v,p as b,ra as P,rc as ee,s as c,sa as S,sc as te,t as m,ta as T,tb as x,ub as F,vb as N,vc as ie,wb as Q,xb as L}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as q}from"./chunk-LNJ3S2LQ.js";var ge=["name"],ye=["email"];function fe(s,n){if(s&1&&(o(0,"ion-select-option",13),_(1),l()),s&2){let t=n.$implicit;d("value",t),a(),E(t)}}function _e(s,n){if(s&1&&(o(0,"ion-select-option",13),_(1),l()),s&2){let t=n.$implicit;d("value",t),a(),E(t)}}function we(s,n){if(s&1){let t=M();o(0,"ion-item")(1,"ion-input",18),y("ngModelChange",function(r){c(t);let p=v();return g(p.helpRequest.campOrArt,r)||(p.helpRequest.campOrArt=r),m(r)}),l()()}if(s&2){let t=v();a(),d("label",k(t.getQuestion())),h("ngModel",t.helpRequest.campOrArt)}}var w=class w{constructor(){this.api=b(me);this.alert=b(oe);this.location=b(D);this.unknown="A burn not in dust yet";this.selectBurn="";this.selectTopic="";this.sending=!1;this.reset={name:"",email:"",burn:this.selectBurn,topic:this.selectTopic,description:"",campOrArt:""};this.helpRequest=this.reset;this.categories=["Event Registration","Camp Registration","Art Registration","Access to a Camp","Using Dust","Other Enquiry"];this.burns=[this.selectBurn];de({helpOutline:ue})}ngOnInit(){return q(this,null,function*(){this.helpRequest.email=this.api.userEmail(),this.helpRequest.burn=this.api.festivalTitle(),this.burns=(yield this.api.getUnAuthedBurns()).map(n=>n.name),this.burns.push(this.unknown)})}getQuestion(){let n=this.helpRequest.topic;return n==="Art Registration"?"What art is this about?":n==="Event Registration"?"What camp or art is this about?":n?"Is this related to a camp or art? If so, please specify":""}getHelperText(){return{"Event Registration":"Important: Don't forget to mention the camp or art associated with the event.","Camp Registration":"Important: Don't forget to mention your camp name.","Art Registration":"Important: Don't forget to mention your art piece name.","Access to a Camp":"Important: Don't forget to mention the camp name you need access to.","Using Dust":"Important: Describe the specific feature or page you need help with.","Other Enquiry":"Important: Don't forget to mention your camp name if applicable."}[this.helpRequest.topic]||"Important: Don't forget to mention your camp name"}submit(){return q(this,null,function*(){if(f(this.helpRequest.name)){yield u(this.alert,"Please enter your name.","Error"),yield A(200),this.name.setFocus();return}if(f(this.helpRequest.email)||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.helpRequest.email)){yield u(this.alert,"A valid email is required.","Error"),yield A(200),this.email.setFocus();return}if(f(this.helpRequest.description)){yield u(this.alert,"Description is required. Please provide a description of your enquiry.","Error");return}if(f(this.helpRequest.burn)){yield u(this.alert,"Please select a burn.","Error");return}if(f(this.helpRequest.topic)){yield u(this.alert,"Please select a topic.","Error");return}try{if(ce(this.helpRequest),!f(this.helpRequest.campOrArt)){let n=this.helpRequest.topic,t="";n==="Art Registration"?t=`Art: ${this.helpRequest.campOrArt}`:n==="Event Registration"?t=`Camp or Art: ${this.helpRequest.campOrArt}`:t=`Camp: ${this.helpRequest.campOrArt}`,this.helpRequest.description=`${t} - -${this.helpRequest.description}`}this.sending=!0,yield this.api.submitForm(this.helpRequest),this.helpRequest=this.reset,yield u(this.alert,"Your help request has been submitted. We will get back to you via email soon.","Success"),this.location.back(),this.sending=!1}catch{yield u(this.alert,"There was an error submitting your request. Please try again.","Error")}finally{}})}};w.\u0275fac=function(t){return new(t||w)},w.\u0275cmp=W({type:w,selectors:[["app-help"]],viewQuery:function(t,e){if(t&1&&(P(ge,5),P(ye,5)),t&2){let r;S(r=T())&&(e.name=r.first),S(r=T())&&(e.email=r.first)}},decls:35,vars:9,consts:[["name",""],["email",""],["color","primary"],["slot","start"],[3,"fullscreen"],[1,"border"],[3,"ngSubmit"],["lines","none"],["label","Your Name","labelPlacement","stacked","name","name","required","",3,"ngModelChange","ngModel"],["label","Email Address","labelPlacement","stacked","name","email","type","email","required","",3,"ngModelChange","ngModel"],["lines","none",1,"app-select"],[1,"select-container"],["placeholder","Select Burn","labelPlacement","stacked","interface","popover","label","Which burn is this about?","name","burn",1,"app-select",3,"ngModelChange","ngModel"],[3,"value"],["labelPlacement","stacked","interface","popover","label","What can we help with?","placeholder","Select Topic","name","category",1,"app-select",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Describe how we can help you?","name","description","rows","6","required","",3,"ngModelChange","helperText","ngModel"],[1,"center"],["type","submit",3,"disabled"],["labelPlacement","stacked","name","campOrArt",3,"ngModelChange","label","ngModel"]],template:function(t,e){if(t&1){let r=M();o(0,"ion-header")(1,"ion-toolbar",2)(2,"ion-buttons",3),V(3,"ion-back-button"),l(),o(4,"ion-title"),_(5,"Help"),l()()(),o(6,"ion-content",4)(7,"div",5)(8,"ion-card")(9,"ion-card-header")(10,"ion-card-title"),_(11,"Need Assistance?"),l()(),o(12,"ion-card-content")(13,"form",6),B("ngSubmit",function(){return c(r),m(e.submit())}),o(14,"ion-list",7)(15,"ion-item")(16,"ion-input",8,0),y("ngModelChange",function(i){return c(r),g(e.helpRequest.name,i)||(e.helpRequest.name=i),m(i)}),l()(),o(18,"ion-item")(19,"ion-input",9,1),y("ngModelChange",function(i){return c(r),g(e.helpRequest.email,i)||(e.helpRequest.email=i),m(i)}),l()(),o(21,"ion-item",10)(22,"div",11)(23,"ion-select",12),y("ngModelChange",function(i){return c(r),g(e.helpRequest.burn,i)||(e.helpRequest.burn=i),m(i)}),C(24,fe,2,2,"ion-select-option",13,R),l(),o(26,"ion-select",14),y("ngModelChange",function(i){return c(r),g(e.helpRequest.topic,i)||(e.helpRequest.topic=i),m(i)}),C(27,_e,2,2,"ion-select-option",13,R),l()()(),O(29,we,2,3,"ion-item"),o(30,"ion-item")(31,"ion-textarea",15),y("ngModelChange",function(i){return c(r),g(e.helpRequest.description,i)||(e.helpRequest.description=i),m(i)}),l()()(),o(32,"div",16)(33,"ion-button",17),_(34,"Submit Request"),l()()()()()()()}t&2&&(a(6),d("fullscreen",!0),a(10),h("ngModel",e.helpRequest.name),a(3),h("ngModel",e.helpRequest.email),a(4),h("ngModel",e.helpRequest.burn),a(),I(e.burns),a(2),h("ngModel",e.helpRequest.topic),a(),I(e.categories),a(2),H(e.getQuestion()?29:-1),a(2),d("helperText",e.getHelperText()),h("ngModel",e.helpRequest.description),a(2),d("disabled",e.sending))},dependencies:[Z,X,j,L,x,F,U,Q,N,ee,ae,z,Y,re,G,$,J,K,ie,te,le,pe,se,ne],styles:[".required[_ngcontent-%COMP%]{color:var(--ion-color-danger)}p[_ngcontent-%COMP%]{margin-bottom:var(--spacing-1xl)}.select-container[_ngcontent-%COMP%]{display:flex;width:100%;gap:var(--spacing-lg)}@media (max-width: 500px){.select-container[_ngcontent-%COMP%]{flex-direction:column;height:200px}}ion-select[_ngcontent-%COMP%]{width:100%}"]});var he=w;export{he as HelpPage}; diff --git a/.admin-app/chunk-NNHLV5B3.js b/.admin-app/chunk-HDYNKZSZ.js similarity index 77% rename from .admin-app/chunk-NNHLV5B3.js rename to .admin-app/chunk-HDYNKZSZ.js index 764a523d..bea91b6d 100644 --- a/.admin-app/chunk-NNHLV5B3.js +++ b/.admin-app/chunk-HDYNKZSZ.js @@ -1,3 +1,3 @@ -import{a as lt}from"./chunk-BFGT5WRV.js";import{a as st}from"./chunk-STDSP4D6.js";import{a as _e}from"./chunk-GPVDUW6Q.js";import{a as ct}from"./chunk-SVNDKX5K.js";import{a as rt}from"./chunk-WRLAXAJB.js";import{a as ot}from"./chunk-5B2MUMUK.js";import{a as at,c as B}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{M as it,N as nt,b as Xe,ja as ge,q as et,v as tt}from"./chunk-LIWDDRYP.js";import{K as he,a as Ye,b as Ie,e as pe,l as Se,m as A,o as Pe,p as Le,q as Ke,r as $e,t as b,v as Ge,y as q}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as V,Aa as u,Ac as Ue,Ba as S,Bb as Re,Bc as se,Db as N,Ec as ce,Fa as M,Fc as le,Ga as C,H as c,Ha as y,Kc as Qe,Mc as me,Nc as de,P as L,Ra as E,Rc as Ze,Sa as X,Sc as ue,T as Ee,Ta as R,Tc as He,Ua as D,Va as Be,Wa as F,Wb as ze,X as w,Xb as ee,Y as T,Za as Fe,_ as $,aa as k,ba as g,ca as s,cc as te,da as r,dc as ie,ea as v,ec as Je,fc as qe,hb as Ae,ja as _,la as h,lc as ne,na as l,nb as je,p as I,ra as Me,rc as oe,s as m,sa as xe,sc as W,t as d,ta as be,tb as z,ua as Oe,uc as ae,va as Ve,vc as re,w as x,wb as J,xa as ke,ya as Ne,za as We}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as P}from"./chunk-LNJ3S2LQ.js";function pt(a,t){if(a&1){let e=_();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2)(3,"ion-button",3),h("click",function(){m(e);let i=l();return d(i.cancel())}),u(4,"Cancel"),r()(),s(5,"ion-title"),u(6,"Import"),r(),s(7,"ion-buttons",4)(8,"ion-button",5),h("click",function(){m(e);let i=l();return d(i.confirm())}),u(9,"Convert"),r()()()(),s(10,"ion-content",6)(11,"ion-item")(12,"ion-textarea",7),y("ngModelChange",function(i){m(e);let o=l();return C(o.text,i)||(o.text=i),d(i)}),r()(),s(13,"ion-item"),v(14,"ion-textarea",8),r()()}if(a&2){let e=l();c(8),g("strong",!0),c(4),M("ngModel",e.text),c(2),g("value",e.prompt)}}var U=class U{constructor(){this.text="";this.modal=Be.required(ee);this.isOpen=F(!1);this.occurrences=x([]);this.imported=R();this.alert=I(_e);this.prompt="Convert this to a JSON array an artist, startDate in iso date format, endDate in iso date format where endDate is 1 hour after startDate if the endDate is missing. Thursday is February 13 2025. Also convert the artist to title case. Finally, only list items that are on thursday"}cancel(){this.modal().dismiss(null,"cancel")}confirm(){this.validate(this.text)&&this.modal().dismiss(this.text,"confirm")}onWillDismiss(t){t.detail.role==="confirm"&&this.imported.emit(this.occurrences()),this.isOpen.set(!1)}validate(t){let e=JSON.parse(t);if(!Array.isArray(e))return B(this.alert,"Data is not an array"),!1;if(e.length===0)return B(this.alert,"Data is empty"),!1;let n=[],i=1;for(let o of e){if(pe(o.artist))return B(this.alert,"Artist is required"),!1;if(pe(o.startDate))return B(this.alert,"Start date is required"),!1;if(!Ie(o.startDate))return B(this.alert,`Invalid start date "${o.startDate}"`),!1;if(pe(o.endDate))return B(this.alert,"End date is required"),!1;if(!Ie(o.endDate))return B(this.alert,`Invalid end date "${o.endDate}"`),!1;n.push({id:i.toString(),who:o.artist,startTime:b(o.startDate),endTime:b(o.endDate)}),i++}return this.occurrences.set(n),!0}};U.\u0275fac=function(e){return new(e||U)},U.\u0275cmp=L({type:U,selectors:[["app-music-import"]],viewQuery:function(e,n){e&1&&Oe(n.modal,ee,5),e&2&&Ve()},inputs:{isOpen:[1,"isOpen"]},outputs:{isOpen:"isOpenChange",imported:"imported"},decls:2,vars:1,consts:[[3,"willDismiss","isOpen"],["color","primary"],["slot","start"],[3,"click"],["slot","end"],[3,"click","strong"],[1,"ion-padding"],["rows","15","placeholder","",3,"ngModelChange","ngModel"],["rows","4",3,"value"]],template:function(e,n){e&1&&(s(0,"ion-modal",0),h("willDismiss",function(o){return n.onWillDismiss(o)}),Ee(1,pt,15,3,"ng-template"),r()),e&2&&g("isOpen",n.isOpen())},dependencies:[ne,te,ee,oe,ie,ce,le,He,W,N,z,J],encapsulation:2});var fe=U;var ht=(a,t)=>t.uid;function gt(a,t){if(a&1){let e=_();s(0,"ion-item",2),h("click",function(){let i=m(e).$implicit,o=l();return d(o.onEntryClick(i))}),s(1,"ion-label"),u(2),r()()}if(a&2){let e=t.$implicit;c(2),S(e.name)}}function _t(a,t){a&1&&(s(0,"ion-item")(1,"ion-label",3),u(2,"No entries found"),r()())}var Q=class Q{constructor(){this.searchText=D("");this.entries=D([]);this.entrySelected=R();this.show=F(!1);this.filteredEntries=E(()=>{let t=this.searchText().toLowerCase().trim();if(!t)return this.entries().slice(0,10);let e=this.entries(),n=[];for(let i=0;i{this.show.set(!1)},100)}};Q.\u0275fac=function(e){return new(e||Q)},Q.\u0275cmp=L({type:Q,selectors:[["app-auto-complete"]],inputs:{searchText:[1,"searchText"],entries:[1,"entries"],show:[1,"show"]},outputs:{entrySelected:"entrySelected",show:"showChange"},decls:5,vars:3,consts:[[1,"wrap"],["button",""],["button","",3,"click"],["color","medium"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"ion-list"),V(2,gt,3,1,"ion-item",1,ht,!1,_t,3,0,"ion-item"),r()()),e&2&&(ke("display",n.show()?"block":"none"),c(2),k(n.filteredEntries()))},dependencies:[re,ae,W,N],styles:[".wrap[_ngcontent-%COMP%]{border:1px solid var(--ion-color-dark-contrast);box-shadow:#0000003d 0 3px 8px;padding:0;margin:var(--spacing-base);width:400px;position:absolute;z-index:1001}"],changeDetection:0});var we=Q;var Z=class Z{constructor(){this.position=D("left");this.title=D("message");this.short=D("title");this.url=D(void 0);this.api=I(he);ge({informationCircle:it,informationCircleOutline:nt})}showMessage(){this.api.sendMessage(this.title(),0,this.short(),this.url())}};Z.\u0275fac=function(e){return new(e||Z)},Z.\u0275cmp=L({type:Z,selectors:[["app-tip-button"]],inputs:{position:[1,"position"],title:[1,"title"],short:[1,"short"],url:[1,"url"]},decls:1,vars:2,consts:[["color","tertiary","name","information-circle",3,"click"]],template:function(e,n){e&1&&(s(0,"ion-icon",0),h("click",function(){return n.showMessage()}),r()),e&2&&We(n.position())},dependencies:[me],styles:["ion-icon[_ngcontent-%COMP%]{position:absolute;font-size:var(--font-size-medium);margin-left:calc(-1 * var(--spacing-2xl));z-index:1000;cursor:pointer}.bottom[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-xl));margin-top:var(--spacing-sm)}.middle[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-xl));margin-top:calc(-1 * var(--spacing-sm))}"]});var H=Z;function ft(a,t){if(a&1){let e=_();s(0,"ion-item",7)(1,"ion-input",10),h("keypress",function(){m(e);let i=l();return d(i.onKeyPress())})("ionBlur",function(){m(e);let i=l();return d(i.onBlur())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.location,i)||(o.location=i),d(i)}),r(),v(2,"app-tip-button",11),r()}if(a&2){let e=l();c(),g("placeholder",e.placeholder())("value",e.location()),M("ngModel",e.location)}}function Ct(a,t){if(a&1&&(s(0,"ion-item",9)(1,"p",12),u(2),r()()),a&2){let e=l();c(),Ne("error",e.locationProblem()),c(),S(e.locationTip())}}function yt(a,t){if(a&1&&(s(0,"ion-select-option",14),u(1),r()),a&2){let e=t.$implicit;g("value",e),c(),S(e)}}function wt(a,t){if(a&1){let e=_();s(0,"ion-select",13),h("ionChange",function(){m(e);let i=l();return d(i.onBlur())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.location,i)||(o.location=i),d(i)}),V(1,yt,2,2,"ion-select-option",14,$),r(),s(3,"p",15),u(4,` "Roaming" is used for mutant vehicles or events not located at a camp or art. +import{a as lt}from"./chunk-R77PAFDI.js";import{a as st}from"./chunk-2H3447NQ.js";import{a as _e}from"./chunk-M2OHFPPF.js";import{a as ct}from"./chunk-CPOGSMOE.js";import{a as rt}from"./chunk-U3YCGDGQ.js";import{a as ot}from"./chunk-K6ROGVP7.js";import{a as at,c as B}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{Q as it,R as nt,b as Xe,oa as ge,s as et,x as tt}from"./chunk-QF32E4V4.js";import{K as he,a as Ye,b as Ie,e as pe,l as Se,m as A,o as Pe,p as Le,q as Ke,r as $e,t as b,v as Ge,y as q}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$,Aa as We,Ba as u,Bc as Ue,Ca as S,Cb as Re,Cc as se,Eb as N,Fc as ce,Ga as M,Gc as le,H as c,Ha as C,Ia as y,Mc as Qe,Oc as me,P as L,Pc as de,Sa as E,Ta as X,Tc as Ze,U as Ee,Ua as R,Uc as ue,Va as D,Vc as He,Wa as Be,Xa as F,Xb as ze,Y as w,Yb as ee,Z as T,_a as Fe,aa as V,ba as k,ca as g,da as s,dc as te,ea as r,ec as ie,fa as v,fc as Je,gc as qe,ib as Ae,ka as _,ma as h,mc as ne,oa as l,ob as je,p as I,s as m,sa as Me,sc as oe,t as d,ta as xe,tc as W,ua as be,ub as z,va as Oe,vc as ae,w as x,wa as Ve,wc as re,xb as J,ya as ke,za as Ne}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as P}from"./chunk-LNJ3S2LQ.js";function pt(a,t){if(a&1){let e=_();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2)(3,"ion-button",3),h("click",function(){m(e);let i=l();return d(i.cancel())}),u(4,"Cancel"),r()(),s(5,"ion-title"),u(6,"Import"),r(),s(7,"ion-buttons",4)(8,"ion-button",5),h("click",function(){m(e);let i=l();return d(i.confirm())}),u(9,"Convert"),r()()()(),s(10,"ion-content",6)(11,"ion-item")(12,"ion-textarea",7),y("ngModelChange",function(i){m(e);let o=l();return C(o.text,i)||(o.text=i),d(i)}),r()(),s(13,"ion-item"),v(14,"ion-textarea",8),r()()}if(a&2){let e=l();c(8),g("strong",!0),c(4),M("ngModel",e.text),c(2),g("value",e.prompt)}}var U=class U{constructor(){this.text="";this.modal=Be.required(ee);this.isOpen=F(!1);this.occurrences=x([]);this.imported=R();this.alert=I(_e);this.prompt="Convert this to a JSON array an artist, startDate in iso date format, endDate in iso date format where endDate is 1 hour after startDate if the endDate is missing. Thursday is February 13 2025. Also convert the artist to title case. Finally, only list items that are on thursday"}cancel(){this.modal().dismiss(null,"cancel")}confirm(){this.validate(this.text)&&this.modal().dismiss(this.text,"confirm")}onWillDismiss(t){t.detail.role==="confirm"&&this.imported.emit(this.occurrences()),this.isOpen.set(!1)}validate(t){let e=JSON.parse(t);if(!Array.isArray(e))return B(this.alert,"Data is not an array"),!1;if(e.length===0)return B(this.alert,"Data is empty"),!1;let n=[],i=1;for(let o of e){if(pe(o.artist))return B(this.alert,"Artist is required"),!1;if(pe(o.startDate))return B(this.alert,"Start date is required"),!1;if(!Ie(o.startDate))return B(this.alert,`Invalid start date "${o.startDate}"`),!1;if(pe(o.endDate))return B(this.alert,"End date is required"),!1;if(!Ie(o.endDate))return B(this.alert,`Invalid end date "${o.endDate}"`),!1;n.push({id:i.toString(),who:o.artist,startTime:b(o.startDate),endTime:b(o.endDate)}),i++}return this.occurrences.set(n),!0}};U.\u0275fac=function(e){return new(e||U)},U.\u0275cmp=L({type:U,selectors:[["app-music-import"]],viewQuery:function(e,n){e&1&&Oe(n.modal,ee,5),e&2&&Ve()},inputs:{isOpen:[1,"isOpen"]},outputs:{isOpen:"isOpenChange",imported:"imported"},decls:2,vars:1,consts:[[3,"willDismiss","isOpen"],["color","primary"],["slot","start"],[3,"click"],["slot","end"],[3,"click","strong"],[1,"ion-padding"],["rows","15","placeholder","",3,"ngModelChange","ngModel"],["rows","4",3,"value"]],template:function(e,n){e&1&&(s(0,"ion-modal",0),h("willDismiss",function(o){return n.onWillDismiss(o)}),Ee(1,pt,15,3,"ng-template"),r()),e&2&&g("isOpen",n.isOpen())},dependencies:[ne,te,ee,oe,ie,ce,le,He,W,N,z,J],encapsulation:2});var fe=U;var ht=(a,t)=>t.uid;function gt(a,t){if(a&1){let e=_();s(0,"ion-item",2),h("click",function(){let i=m(e).$implicit,o=l();return d(o.onEntryClick(i))}),s(1,"ion-label"),u(2),r()()}if(a&2){let e=t.$implicit;c(2),S(e.name)}}function _t(a,t){a&1&&(s(0,"ion-item")(1,"ion-label",3),u(2,"No entries found"),r()())}var Q=class Q{constructor(){this.searchText=D("");this.entries=D([]);this.entrySelected=R();this.show=F(!1);this.filteredEntries=E(()=>{let t=this.searchText().toLowerCase().trim();if(!t)return this.entries().slice(0,10);let e=this.entries(),n=[];for(let i=0;i{this.show.set(!1)},100)}};Q.\u0275fac=function(e){return new(e||Q)},Q.\u0275cmp=L({type:Q,selectors:[["app-auto-complete"]],inputs:{searchText:[1,"searchText"],entries:[1,"entries"],show:[1,"show"]},outputs:{entrySelected:"entrySelected",show:"showChange"},decls:5,vars:3,consts:[[1,"wrap"],["button",""],["button","",3,"click"],["color","medium"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"ion-list"),V(2,gt,3,1,"ion-item",1,ht,!1,_t,3,0,"ion-item"),r()()),e&2&&(ke("display",n.show()?"block":"none"),c(2),k(n.filteredEntries()))},dependencies:[re,ae,W,N],styles:[".wrap[_ngcontent-%COMP%]{border:1px solid var(--ion-color-dark-contrast);box-shadow:#0000003d 0 3px 8px;padding:0;margin:var(--spacing-base);width:400px;position:absolute;z-index:1001}"],changeDetection:0});var we=Q;var Z=class Z{constructor(){this.position=D("left");this.title=D("message");this.short=D("title");this.url=D(void 0);this.api=I(he);ge({informationCircle:it,informationCircleOutline:nt})}showMessage(){this.api.sendMessage(this.title(),0,this.short(),this.url())}};Z.\u0275fac=function(e){return new(e||Z)},Z.\u0275cmp=L({type:Z,selectors:[["app-tip-button"]],inputs:{position:[1,"position"],title:[1,"title"],short:[1,"short"],url:[1,"url"]},decls:1,vars:2,consts:[["color","tertiary","name","information-circle",3,"click"]],template:function(e,n){e&1&&(s(0,"ion-icon",0),h("click",function(){return n.showMessage()}),r()),e&2&&We(n.position())},dependencies:[me],styles:["ion-icon[_ngcontent-%COMP%]{position:absolute;font-size:var(--font-size-medium);margin-left:calc(-1 * var(--spacing-2xl));z-index:1000;cursor:pointer}.bottom[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-xl));margin-top:var(--spacing-sm)}.middle[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-xl));margin-top:calc(-1 * var(--spacing-sm))}"]});var H=Z;function ft(a,t){if(a&1){let e=_();s(0,"ion-item",7)(1,"ion-input",10),h("keypress",function(){m(e);let i=l();return d(i.onKeyPress())})("ionBlur",function(){m(e);let i=l();return d(i.onBlur())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.location,i)||(o.location=i),d(i)}),r(),v(2,"app-tip-button",11),r()}if(a&2){let e=l();c(),g("placeholder",e.placeholder())("value",e.location()),M("ngModel",e.location)}}function Ct(a,t){if(a&1&&(s(0,"ion-item",9)(1,"p",12),u(2),r()()),a&2){let e=l();c(),Ne("error",e.locationProblem()),c(),S(e.locationTip())}}function yt(a,t){if(a&1&&(s(0,"ion-select-option",14),u(1),r()),a&2){let e=t.$implicit;g("value",e),c(),S(e)}}function wt(a,t){if(a&1){let e=_();s(0,"ion-select",13),h("ionChange",function(){m(e);let i=l();return d(i.onBlur())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.location,i)||(o.location=i),d(i)}),V(1,yt,2,2,"ion-select-option",14,$),r(),s(3,"p",15),u(4,` "Roaming" is used for mutant vehicles or events not located at a camp or art. `),r()}if(a&2){let e=l();g("value",e.location),M("ngModel",e.location),c(),k(e.altLocations)}}function Tt(a,t){if(a&1&&(s(0,"ion-item",0)(1,"ion-label",1),u(2),r()()),a&2){let e,n=l();c(2),S(((e=n.rslLocation())==null?null:e.type)==="mutant"?"Mutant Vehicle":"Mutant Vehicle / Name")}}function vt(a,t){if(a&1){let e=_();s(0,"ion-item",0)(1,"ion-checkbox",16),h("ngModelChange",function(){m(e);let i=l();return d(i.emit())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.mutantVehicle,i)||(o.mutantVehicle=i),d(i)}),u(2,"Mutant Vehicle"),r()()}if(a&2){let e=l();c(),M("ngModel",e.mutantVehicle)}}function Mt(a,t){if(a&1){let e=_();s(0,"ion-item",7)(1,"ion-input",17),h("ionBlur",function(){m(e);let i=l();return d(i.onBlur())}),y("ngModelChange",function(i){m(e);let o=l();return C(o.artCar,i)||(o.artCar=i),d(i)}),r()()}if(a&2){let e=l();c(),M("ngModel",e.artCar)}}var Y=class Y{constructor(){this.ttitdService=I(lt);this.locationType=x("");this.showAutoComplete=!1;this.altLocations=["On The Playa","Deep Playa","Center Camp","Gate","DMZ","Airport","The Man","The Temple","Trash Fence","Inner Playa @ 10:15","Inner Playa @ 10:30","Inner Playa @ 10:45","Inner Playa @ 11:00","Inner Playa @ 11:15","Inner Playa @ 11:30","Inner Playa @ 11:45","Inner Playa @ 12:00","Inner Playa @ 12:15","Inner Playa @ 12:30","Inner Playa @ 12:45","Inner Playa @ 1:00","Inner Playa @ 1:15","Inner Playa @ 1:30","Inner Playa @ 1:45","Outer Playa @ 10:15","Outer Playa @ 10:30","Outer Playa @ 10:45","Outer Playa @ 11:00","Outer Playa @ 11:15","Outer Playa @ 11:30","Outer Playa @ 11:45","Outer Playa @ 12:00","Outer Playa @ 12:15","Outer Playa @ 12:30","Outer Playa @ 12:45","Outer Playa @ 1:00","Outer Playa @ 1:15","Outer Playa @ 1:30","Outer Playa @ 1:45","Trash Fence @ 10:15","Trash Fence @ 10:30","Trash Fence @ 10:45","Trash Fence @ 11:00","Trash Fence @ 11:15","Trash Fence @ 11:30","Trash Fence @ 11:45","Trash Fence @ 12:00","Trash Fence @ 12:15","Trash Fence @ 12:30","Trash Fence @ 12:45","Trash Fence @ 1:00","Trash Fence @ 1:15","Trash Fence @ 1:30","Trash Fence @ 1:45"];this.rslLocation=F(void 0);this.placeholder=E(()=>{switch(this.locationType()){case"camp":return"Enter camp name";case"art":return"Enter art name";case"mutant":return"Enter mutant vehicle name";default:return"Enter location"}});this.location=x("");this.artCar=x("");this.mutantVehicle=x(!1);this.locationUid=x("");this.locationError=F("");this.locationProblem=x(!1);this.locationSelected=R();this.ready=!1;this.locationTip=E(()=>this.locationProblem()?`A ${this.locationType()} has not been selected from the list.`:"Begin typing a name then select from the list (sourced from Burning Man).");this.lastType="";this.entries=E(()=>{if(!this.ttitdService.initialized())return[];let e=this.locationType();return e==="camp"?this.ttitdService.camps.map(n=>({uid:n.uid,name:n.name})):e==="art"?this.ttitdService.art.map(n=>({uid:n.uid,name:n.name})):[]});X(()=>{let t=this.locationType();this.ready&&t!==""&&(this.lastType!==t&&(this.location.set(""),this.locationUid.set(""),this.lastType=t),t=="mutant"?this.mutantVehicle.set(!0):this.artCar()===""&&this.mutantVehicle.set(!1))}),X(()=>{let t=this.rslLocation();t&&(this.ready=!1,this.locationType.set(t.type),setTimeout(()=>{if(!t||(t.name==""&&this.location()?(t.name=this.location(),this.rslLocation.set(t),t=this.rslLocation()):this.location.set(t.name),!t))return;console.log(`Location "${this.location()}" ${JSON.stringify(t)} id set to ${this.locationUid()}`),this.locationUid.set(t.uid);let e=t.artCar!==""&&t.artCar!==void 0||t.type==="mutant";this.mutantVehicle.set(e),this.artCar.set(t.artCar||""),this.ready=!0},10))}),X(()=>{let t=this.locationType();this.locationError.set(""),t==="camp"&&this.locationUid()===""&&this.locationError.set("You must select a camp from the list."),t==="art"&&this.locationUid()===""&&this.locationError.set("You must select art from the list."),t==="mutant"&&this.artCar()===""&&this.locationError.set("You must enter a mutant vehicle name."),this.mutantVehicle()&&this.artCar()===""&&this.locationError.set("You must enter a mutant vehicle name.")})}ngOnInit(){return P(this,null,function*(){yield this.ttitdService.init(),this.locationType()===""&&(this.locationType.set("camp"),this.ready=!0)})}onKeyPress(){this.showAutoComplete=!0}selectItem(t){this.location.set(t.name),this.locationUid.set(t.uid),this.locationError.set(""),this.emit()}onBlur(){setTimeout(()=>{this.showAutoComplete=!1},200),this.emit(),this.locationType()!=="mutant"&&setTimeout(()=>{this.locationProblem.set(this.locationUid()===""&&this.location()!=="")},200)}emit(){this.locationSelected.emit({uid:this.locationUid(),name:this.location(),type:this.locationType(),artCar:this.artCar()})}};Y.\u0275fac=function(e){return new(e||Y)},Y.\u0275cmp=L({type:Y,selectors:[["app-music-location"]],inputs:{rslLocation:[1,"rslLocation"],locationError:[1,"locationError"]},outputs:{rslLocation:"rslLocationChange",locationError:"locationErrorChange",locationSelected:"locationSelected"},decls:22,vars:10,consts:[["lines","none",1,"loc2"],[1,"lab-loc"],["mode","ios","value","camp",3,"ngModelChange","ngModel"],["value","camp"],["value","art"],["value","mutant"],[1,"w"],["lines","none",1,"loc3"],[3,"entrySelected","show","entries","searchText"],["lines","none",1,"tip","loc3"],["labelPlacement","stacked",1,"loc",3,"keypress","ionBlur","ngModelChange","placeholder","value","ngModel"],["short","Location","title","As you type a name be sure to select the name of the camp/art from the list of registered Burning Man camps and art. Clock locations will be added by us. The names of camps and art are set when registering with Burning Man (contact campsupport@burningman.org for changes)","position","middle"],[1,"pad-left"],["labelPlacement","stacked","interface","popover","placeholder","Select the location",1,"app-select",3,"ionChange","ngModelChange","value","ngModel"],[3,"value"],[1,"m-t","pad-left"],["justify","start",3,"ngModelChange","ngModel"],["labelPlacement","stacked","placeholder","Enter mutant vehicle name",1,"loc",3,"ionBlur","ngModelChange","ngModel"]],template:function(e,n){e&1&&(s(0,"ion-item",0)(1,"ion-label",1),u(2,"Location"),r()(),s(3,"ion-item",0)(4,"ion-segment",2),y("ngModelChange",function(o){return C(n.locationType,o)||(n.locationType=o),o}),s(5,"ion-segment-button",3)(6,"ion-label"),u(7,"Camp"),r()(),s(8,"ion-segment-button",4)(9,"ion-label"),u(10,"Art"),r()(),s(11,"ion-segment-button",5)(12,"ion-label"),u(13,"Roaming"),r()()(),v(14,"div",6),r(),w(15,ft,3,3,"ion-item",7),s(16,"app-auto-complete",8),h("entrySelected",function(o){return n.selectItem(o)}),r(),w(17,Ct,3,3,"ion-item",9),w(18,wt,5,2),w(19,Tt,3,1,"ion-item",0),w(20,vt,3,1,"ion-item",0),w(21,Mt,2,1,"ion-item",7)),e&2&&(c(4),M("ngModel",n.locationType),c(11),T(n.locationType()!=="mutant"?15:-1),c(),g("show",n.showAutoComplete)("entries",n.entries())("searchText",n.location()),c(),T(n.locationType()!=="mutant"?17:-1),c(),T(n.locationType()==="mutant"?18:-1),c(),T(n.locationType()==="mutant"?19:-1),c(),T(n.locationType()!=="mutant"?20:-1),c(),T(n.mutantVehicle()?21:-1))},dependencies:[Qe,W,de,ae,Ue,Ze,ue,se,N,z,J,we,H],styles:[".pad[_ngcontent-%COMP%]{padding:var(--spacing-lg)}.pad-left[_ngcontent-%COMP%]{padding-left:var(--spacing-lg)}@media screen and (min-width: 800px){.w[_ngcontent-%COMP%]{width:100%}}.loc[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-lg))}.lab-loc[_ngcontent-%COMP%]{margin-bottom:-var(--spacing-base)}.error[_ngcontent-%COMP%]{color:red}.loc2[_ngcontent-%COMP%]{margin-left:-var(--spacing-base)}.loc3[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-lg))}.tip[_ngcontent-%COMP%]{opacity:.6;margin-top:calc(-1 * var(--spacing-sm))}.m-t[_ngcontent-%COMP%]{margin-top:var(--spacing-base)}"]});var Te=Y;var xt=["musicContent"],bt=["musician"],It=(a,t)=>t.id;function St(a,t){if(a&1){let e=_();s(0,"ion-button",9),h("click",function(){m(e);let i=l();return d(i.showImport.set(!0))}),v(1,"ion-icon",10),r()}}function Pt(a,t){if(a&1){let e=_();s(0,"app-music-location",25),y("rslLocationChange",function(i){m(e);let o=l(2);return C(o.rslLocation,i)||(o.rslLocation=i),d(i)}),h("locationSelected",function(i){m(e);let o=l(2);return d(o.locationSelected(i))}),y("locationErrorChange",function(i){m(e);let o=l(2);return C(o.locationError,i)||(o.locationError=i),d(i)}),r()}if(a&2){let e=l(2);M("rslLocation",e.rslLocation)("locationError",e.locationError)}}function Lt(a,t){if(a&1&&(s(0,"ion-select-option",27),u(1),r()),a&2){let e=t.$implicit;g("value",e.id),c(),S(e.name)}}function Dt(a,t){if(a&1){let e=_();s(0,"ion-item",13)(1,"ion-select",26),y("ngModelChange",function(i){m(e);let o=l(2);return C(o.music.campId,i)||(o.music.campId=i),d(i)}),V(2,Lt,2,2,"ion-select-option",27,$),r()()}if(a&2){let e=l(2);c(),g("value",e.music.campId),M("ngModel",e.music.campId),c(),k(e.camps)}}function Et(a,t){if(a&1&&(s(0,"ion-select-option",27),u(1),r()),a&2){let e=l().$implicit;g("value",e),c(),S(e)}}function Ot(a,t){if(a&1&&w(0,Et,2,2,"ion-select-option",27),a&2){let e=t.$implicit,n=l(3);T(n.categoryHidden(e)?-1:0)}}function Vt(a,t){if(a&1){let e=_();s(0,"ion-item",13)(1,"ion-select",28),y("ngModelChange",function(i){m(e);let o=l(2);return C(o.music.musicType,i)||(o.music.musicType=i),d(i)}),h("ionChange",function(i){m(e);let o=l(2);return d(o.musicTypeChanged(i))}),V(2,Ot,1,1,null,null,$),r(),v(4,"app-tip-button",29),r(),s(5,"ion-item",13)(6,"p",17),u(7),r()()}if(a&2){let e=l(2);c(),g("multiple",!0)("value",e.music.musicType),M("ngModel",e.music.musicType),c(),k(e.musicTypes),c(5),S(e.categoryWarning())}}function kt(a,t){if(a&1){let e=_();s(0,"ion-item",14)(1,"app-emails",30),y("emailsChange",function(i){m(e);let o=l(2);return C(o.music.contact,i)||(o.music.contact=i),d(i)}),r(),v(2,"app-tip-button",31),r()}if(a&2){let e=l(2);c(),g("isAdmin",e.isAdmin)("isOwner",e.isOwner)("label","Owners")("placeholder","Email address"),M("emails",e.music.contact)}}function Nt(a,t){if(a&1){let e=_();s(0,"div",18)(1,"div",32)(2,"ion-input",33,1),y("ngModelChange",function(i){let o=m(e).$implicit;return C(o.who,i)||(o.who=i),d(i)}),r(),v(4,"app-tooltip",34),r(),s(5,"app-date-range",35),h("endChanged",function(i){let o=m(e).$implicit,p=l(2);return d(p.endChanged(o,i))})("startChanged",function(i){let o=m(e).$implicit,p=l(2);return d(p.startChanged(o,i))}),r(),s(6,"div",36)(7,"ion-button",37),h("click",function(){let i=m(e).$implicit,o=l(2);return d(o.deleteItem(i))}),v(8,"ion-icon",38),r()()()}if(a&2){let e=t.$implicit,n=l(2);c(2),g("label",n.musicianLabel()),M("ngModel",e.who),c(3),g("longDurations",!0)("minTime",n.minTime)("maxTime",n.maxTime)("id",e.id)("startTime",e.startTime)("endTime",e.endTime),c(2),g("hidden",n.occurrences.length===1)}}function Wt(a,t){if(a&1){let e=_();s(0,"ion-button",39),h("click",function(){m(e);let i=l(2);return d(i.deleteParty())}),u(1,"Delete"),r()}}function Bt(a,t){a&1&&(s(0,"ion-button",5),u(1,"\xA0"),r())}function Ft(a,t){if(a&1){let e=_();s(0,"div",8)(1,"app-music-import",11),h("imported",function(i){m(e);let o=l();return d(o.imported(i))}),r(),s(2,"ion-card")(3,"ion-card-content")(4,"ion-list"),w(5,Pt,1,2,"app-music-location",12)(6,Dt,4,2,"ion-item",13),w(7,Vt,8,4),s(8,"ion-item",14)(9,"ion-input",15),y("ngModelChange",function(i){m(e);let o=l();return C(o.music.title,i)||(o.music.title=i),d(i)}),r(),v(10,"app-tip-button",16),r(),s(11,"ion-item",13)(12,"p",17),u(13," Only provide a theme if applicable (do not use no day or date). "),r()(),w(14,kt,3,5,"ion-item",14),V(15,Nt,9,9,"div",18,It),r(),s(17,"div",19),w(18,Wt,2,0,"ion-button",20)(19,Bt,2,0,"ion-button",5),s(20,"ion-button",21),h("click",function(){m(e);let i=l();return d(i.save())}),u(21,"Save"),r(),s(22,"app-tooltip",22)(23,"ion-button",23),h("click",function(){m(e);let i=l();return d(i.addItem())}),u(24,"Add time slot"),r()()()()(),v(25,"div",24),r()}if(a&2){let e=l();c(),g("isOpen",e.showImport()),c(4),T(e.ttitd?5:6),c(2),T(e.ttitd?7:-1),c(2),M("ngModel",e.music.title),c(5),T(e.isAdmin?14:-1),c(),k(e.occurrences),c(3),T((e.isAdmin||e.isOwner)&&e.music.id?18:19),c(2),g("disabled",e.saving),c(3),g("disabled",e.saving)}}function At(a,t){a&1&&v(0,"app-spinner")}var K=class K{constructor(){this.api=I(he);this.route=I(Ae);this.alert=I(_e);this.location=I(Fe);this.busy=!0;this.ttitd=!1;this.vanity=D();this.showImport=x(!1);this.camps=[];this.minTime=new Date().toISOString();this.maxTime=new Date().toISOString();this.isOwner=!1;this.isAdmin=!1;this.saving=!1;this.musicTypes=[];this.timezone=this.api.currentTimeZone();this.music={id:void 0,camp:"",location:"",day:"",occurrences:"[]"};this.occurrences=[];this.locationError=x("");this.isNew=!1;this.categoryWarning=E(()=>this.liveMusic()?"Note: A DJ with or without vocals is not considered Live Music.":"Leave categories blank if none are applicable.");this.musicianLabel=E(()=>this.liveMusic()?"Musician / Band":"DJ / Musician");this.liveMusic=x(!1);ge({closeOutline:tt,addOutline:Xe,chevronDown:et})}ionViewWillEnter(){return P(this,null,function*(){var n,i;yield this.api.setFestivalByVanity(this.vanity()),this.id=Se(this.id),this.isNew=!this.id;let t=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.ttitd=t.music_registration&&this.hasMusicRegistration(t.vanity)&&this.isRSLOrTest(t.name),this.musicTypes=((n=t.music_types)==null?void 0:n.split(` `))||[],this.isNew?(this.music=yield this.api.newMusic(),console.log("new music with camp",this.route.snapshot.queryParams.camp),this.music.campId=Se(this.route.snapshot.queryParams.camp)):(this.music=yield this.api.getMusic(this.id),this.music.musicType=this.music.musicType?this.music.musicType.split(","):"",this.ttitd&&this.extractLocation(this.music));let e=this.api.getAccessInfo(t.id);if(this.liveMusic.set(!!((i=this.music.musicType)!=null&&i.includes("Live Music"))),this.isOwner=this.music&&e.music.includes(this.music.id)||this.isNew,this.isAdmin=this.api.isAdmin(t.id),this.timezone=t.timezone,this.timezone||(this.timezone=this.api.currentTimeZone()),this.minTime=t.start_time,this.maxTime=b(Pe(A(t.end_time),12).toISOString()),this.occurrences=JSON.parse(this.music.occurrences),this.occurrences.length==0){let o=this.defaultDay();this.occurrences.push({who:"",id:"1",startTime:o,endTime:b(Pe(A(o),1).toISOString())})}for(let o of this.occurrences)o.startTime=b(o.startTime),o.endTime=b(o.endTime);this.busy=!1})}isRSLOrTest(t){return t.toLowerCase().includes("librarian")||t.toLowerCase().includes("electrk")}defaultDay(){try{let t=this.route.snapshot.queryParams.nextDay;if(t){let e=new Date(t+"T00:00:00"),n=b(e.toISOString()),i=new Date(this.minTime),o=new Date(this.maxTime);if(e>=i&&e<=o)return n}return this.minTime}catch{return this.minTime}}musicTypeChanged(t){this.liveMusic.set(t.detail.value.includes("Live Music")),t.detail.value.includes("Mutant Vehicle")&&this.rslLocation&&this.locationSelected(this.rslLocation)}hasMusicRegistration(t){return!!(t.toLowerCase().includes("librarian")||t.toLowerCase().includes("forest"))}ngOnInit(){return P(this,null,function*(){this.camps=yield this.api.camps({cached:!0})})}categoryHidden(t){return this.isAdmin?!1:t.startsWith("_")}lastTime(){let t=this.minTime;for(let e of this.occurrences)t=e.endTime;return t}deleteParty(){return P(this,null,function*(){(yield at(this.alert,"Are you sure you want to delete this party?"))&&(yield this.api.deleteParty(this.music.id),this.api.clearCache(),this.location.back())})}deleteItem(t){this.occurrences.length!=1&&(this.occurrences=this.occurrences.filter(e=>e.id!==t.id))}addItem(){return P(this,null,function*(){let t=yield this.badTimeSlot(this.music,this.occurrences,!1);if(t){this.api.sendMessage(t);return}let e=this.lastTime(),n=this.occurrences.length>0?this.getDuration(this.occurrences[this.occurrences.length-1]):60;this.occurrences.push({who:"",id:(this.occurrences.length+1).toString(),startTime:e,endTime:b(Le(A(e),n).toISOString())}),setTimeout(()=>{this.musicContent.scrollToBottom(200),this.focusMusician()},100)})}focusMusician(){var t;(t=this.musicians.get(this.musicians.length-1))==null||t.setFocus()}getDuration(t){let e=A(t.startTime),n=A(t.endTime);return Math.round((n.getTime()-e.getTime())/6e4)}getDayName(t){return new Date(t).toLocaleDateString(void 0,{weekday:"long"})}sortableTime(t){return new Date(t).getTime()}extractLocation(t){try{this.rslLocation=JSON.parse(t.location)}catch{this.rslLocation=void 0}}save(){return P(this,null,function*(){var o;this.music.title||(this.music.title="");let t=this.validateTitle();if(t){this.api.sendMessage(t);return}if(this.ttitd&&this.locationError()!=""){this.api.sendMessage(this.locationError());return}this.saving=!0,this.music.title=$e(this.music.title);let e=this.camps.find(p=>p.id==this.music.campId);this.music.camp=e?e.name:"Unknown";let n;for(let p of this.occurrences){if(p.who.trim()==""){this.api.sendMessage("The DJ/Musician must be set"),this.saving=!1;return}p.startTime=b(p.startTime),p.endTime=b(p.endTime),p.who=p.who.trim();let O=new Date(p.startTime),j=new Date(p.endTime);p.timeRange=(o=Ye(O,j,void 0,this.api.currentTimeZone()))==null?void 0:o.brief,p.who.trim()==this.music.title.trim()&&(n=p.who)}if(this.occurrences=this.occurrences.sort((p,O)=>this.sortableTime(p.startTime)-this.sortableTime(O.startTime)),n){this.api.sendMessage("The name of the party should not be the same as a DJ/Musician."),this.saving=!1;return}let i=yield this.badTimeSlot(this.music,this.occurrences);if(i){this.api.sendMessage(i),this.saving=!1;return}Ge(this.music);try{this.music.musicType=this.music.musicType.join(",")}catch{}try{this.saving=!0,this.busy=!0,yield this.api.addMusic(this.music,this.occurrences),this.location.back()}finally{this.saving=!1,this.busy=!1}})}startChanged(t,e){t.startTime=e,t.endTime=Ke(Le(A(e),60))}endChanged(t,e){t.endTime=e}locationSelected(t){this.music.location=JSON.stringify(t)}validateTitle(){var t,e,n;if(this.extractLocation(this.music),this.music.title||(this.music.title=""),this.rslLocation&&this.music.title.toLowerCase().trim()==((t=this.rslLocation)==null?void 0:t.name.toLowerCase()))return`The theme should not be the location "${this.rslLocation.name}".`;if(this.rslLocation&&this.isDay(this.music.title))return"The theme should not include the day of the week (this is already captured with the events you enter)";if(this.rslLocation&&this.isDateStyle(this.music.title))return"The theme should not include the day or month (this is already captured with the events you enter)";if(this.rslLocation&&this.music.title.toLowerCase().trim()==((n=(e=this.rslLocation)==null?void 0:e.artCar)==null?void 0:n.toLowerCase()))return console.log(this.music.title),""}isDay(t){for(let e of["sunday","monday","tuesday","wednesday","thursday","friday","saturday"," mon"," tue"," wed"," thur"," fri","(mon)","(tue)","(wed)","(thur)","(fri)","(sat)","(sun)"])if(t.toLowerCase().includes(e))return!0;return!1}badTimeSlot(t,e,n=!0){return P(this,null,function*(){let i=n?(yield this.api.music()).filter(f=>f.campId==t.campId):[];if(this.ttitd){if(!t.location)return console.log(t),"The party needs a location selected"}else if(!t.campId&&!t.artCar)return"The party needs a location selected";let o=new Set;for(let f of e){if(o.has(f.startTime))return`${f.who} is at a duplicate time of ${q(new Date(f.startTime),this.api.currentTimeZone())}`;o.add(f.startTime)}let p=this.checkForOverlappingOccurrences(e);if(p)return p;let O=e.map(f=>new Date(f.startTime)),j=e.map(f=>new Date(f.endTime)),G=new Date(Math.min(...O.map(f=>f.getTime())));if((new Date(Math.max(...j.map(f=>f.getTime()))).getTime()-G.getTime())/(1e3*60*60)>24)return"The time span exceeds 24 hours. Keep length less than 24 hours (one day/night at a time).";for(let f of i){let De=JSON.parse(f.occurrences),ve=De[De.length-1],ut=e[e.length-1];if(this.music.id!=f.id&&this.music.id!=null&&this.isEqual(ve==null?void 0:ve.endTime,ut.startTime)&&(console.log("this.music.id",this.music.id),this.isNew))return`It looks like you are creating a party for a DJ timeslot instead of adding another timeslot to "${f.title}". Please add your DJ to the other party`}})}imported(t){return P(this,null,function*(){this.occurrences=t})}isEqual(t,e){return t.replace(".000","")==e.replace(".000","")}checkForOverlappingOccurrences(t){for(let e=0;e0?new Date(t[0].startTime).getTime():0}dayTitle(e){let t=this.occurrences(e);return t.length>0&&t[0].timeRange?`${t[0].time} ${t[0].timeRange} ${t[0].startTime}`:""}};M.\u0275fac=function(t){return new(t||M)},M.\u0275prov=O({token:M,factory:M.\u0275fac,providedIn:"root"});var v=M;function Nt(r,e){if(r&1&&(c(0,"ion-item")(1,"ion-label"),p(2),u(),c(3,"ion-note",1),p(4),u()()),r&2){let t=e.$implicit;a(2),P(" ",t.who," "),a(2),tt(" ",t.time," ",t.startTime,"-",t.endTime," ")}}var T=class T{constructor(){this.music=F();this.party=d(v);this.occurrences=rt(()=>{var e;return this.party.occurrences((e=this.music())==null?void 0:e.occurrences)})}};T.\u0275fac=function(t){return new(t||T)},T.\u0275cmp=N({type:T,selectors:[["app-party-list"]],inputs:{music:[1,"music"]},decls:3,vars:0,consts:[["lines","inset"],["slot","end"]],template:function(t,i){t&1&&(c(0,"ion-list",0),R(1,Nt,5,4,"ion-item",null,E),u()),t&2&&(a(),A(i.occurrences()))},dependencies:[k,$,G,J],styles:["@media (max-width: 391px){ion-note[_ngcontent-%COMP%]{width:100px}}"]});var W=T;var C=class C{constructor(){this.ttitdService=d(Y);this.partyService=d(v)}exportMusicJSON(e){return l(this,null,function*(){let t=yield this.exportMusic(e);this.exportJSON("rsl.json",t)})}exportMusicRSL(e){return l(this,null,function*(){let t=yield this.exportRSLStyle(e);this.sortByDayAndName(t),this.exportJSON("raw-event-data.json",t)})}sortByDayAndName(e){e.sort((t,i)=>{let n=new Date(`${t.start_date}`).getTime()-new Date(`${i.start_date}`).getTime();return n!==0?n:t.location_name.localeCompare(i.location_name)})}exportMusicDetails(e){return l(this,null,function*(){let t=yield this.exportRSLStyle(e);this.sortByDayAndName(t);let i=[];for(let n of t){i.push(`${n.location_name} ${n.address} ${n.start_date} ${n.start_time}`);for(let o of n.performances)i.push(` ${o.time} - ${o.artists.map(s=>s.name).join(", ")}`);i.push("")}this.exportCSV("details.txt",i.join(` +import{a as It}from"./chunk-THH75NDP.js";import{a as wt}from"./chunk-F5YC2F3D.js";import{a as Lt}from"./chunk-3XGYA3SU.js";import"./chunk-RKW74V7I.js";import{a as Y}from"./chunk-R77PAFDI.js";import"./chunk-DUKSTT3K.js";import{a as Tt,oa as bt}from"./chunk-QF32E4V4.js";import{K as U,e as j,x as Ct,y as K,z as V}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as E,Ba as p,Bc as vt,Ca as B,Da as P,Eb as dt,Fa as tt,Fc as xt,Ga as et,Gc as _t,H as a,Ha as it,Ia as nt,Na as ot,Oc as St,P as N,Sa as rt,Tc as Mt,Va as F,Xb as pt,Y as x,Z as _,aa as R,ba as A,ca as S,da as c,dc as ft,ea as u,ec as ht,fa as y,ib as st,ka as X,kb as at,l as O,lb as ct,ma as z,mc as gt,oa as h,ob as ut,p as d,s as Z,sc as yt,t as H,tc as G,ub as mt,vc as J,wc as $,xb as lt,yc as k}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as l}from"./chunk-LNJ3S2LQ.js";var M=class M{constructor(){this.api=d(U)}occurrences(e){let t=JSON.parse(e!=null?e:"[]");for(let i of t)i.timeRange=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(new Date(i.startTime)),i.time=Ct[new Date(i.startTime).getDay()],i.startTime=K(new Date(i.startTime),this.api.currentTimeZone()),i.endTime=K(new Date(i.endTime),this.api.currentTimeZone());return t}occurrencesRSL(e){let t=JSON.parse(e!=null?e:"[]");return{date:V(new Date(t[0].startTime)),start_date:V(new Date(t[0].startTime)),end_date:V(new Date(t[t.length-1].endTime)),start_time:new Date(t[0].startTime).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}),end_time:new Date(t[t.length-1].endTime).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}}dayNumber(e){let t=JSON.parse(e!=null?e:"[]");return t.length>0?new Date(t[0].startTime).getTime():0}dayTitle(e){let t=this.occurrences(e);return t.length>0&&t[0].timeRange?`${t[0].time} ${t[0].timeRange} ${t[0].startTime}`:""}};M.\u0275fac=function(t){return new(t||M)},M.\u0275prov=O({token:M,factory:M.\u0275fac,providedIn:"root"});var v=M;function Nt(r,e){if(r&1&&(c(0,"ion-item")(1,"ion-label"),p(2),u(),c(3,"ion-note",1),p(4),u()()),r&2){let t=e.$implicit;a(2),P(" ",t.who," "),a(2),tt(" ",t.time," ",t.startTime,"-",t.endTime," ")}}var T=class T{constructor(){this.music=F();this.party=d(v);this.occurrences=rt(()=>{var e;return this.party.occurrences((e=this.music())==null?void 0:e.occurrences)})}};T.\u0275fac=function(t){return new(t||T)},T.\u0275cmp=N({type:T,selectors:[["app-party-list"]],inputs:{music:[1,"music"]},decls:3,vars:0,consts:[["lines","inset"],["slot","end"]],template:function(t,i){t&1&&(c(0,"ion-list",0),R(1,Nt,5,4,"ion-item",null,E),u()),t&2&&(a(),A(i.occurrences()))},dependencies:[k,$,G,J],styles:["@media (max-width: 391px){ion-note[_ngcontent-%COMP%]{width:100px}}"]});var W=T;var C=class C{constructor(){this.ttitdService=d(Y);this.partyService=d(v)}exportMusicJSON(e){return l(this,null,function*(){let t=yield this.exportMusic(e);this.exportJSON("rsl.json",t)})}exportMusicRSL(e){return l(this,null,function*(){let t=yield this.exportRSLStyle(e);this.sortByDayAndName(t),this.exportJSON("raw-event-data.json",t)})}sortByDayAndName(e){e.sort((t,i)=>{let n=new Date(`${t.start_date}`).getTime()-new Date(`${i.start_date}`).getTime();return n!==0?n:t.location_name.localeCompare(i.location_name)})}exportMusicDetails(e){return l(this,null,function*(){let t=yield this.exportRSLStyle(e);this.sortByDayAndName(t);let i=[];for(let n of t){i.push(`${n.location_name} ${n.address} ${n.start_date} ${n.start_time}`);for(let o of n.performances)i.push(` ${o.time} - ${o.artists.map(s=>s.name).join(", ")}`);i.push("")}this.exportCSV("details.txt",i.join(` `))})}exportMusicians(e){return l(this,null,function*(){var i;let t=[];for(let n of e){let o=JSON.parse((i=n.occurrences)!=null?i:[]);for(let s of o)s.who&&(t.includes(s.who.trim())||t.push(s.who.trim()))}t.sort((n,o)=>n.localeCompare(o)),this.exportCSV("musicians.csv",t.join(` `))})}exportEmailList(e){return l(this,null,function*(){var i;let t=[];for(let n of e){let o=(i=n.contact)!=null?i:"";for(let s of o.split(",")){let m=s.trim();m&&!t.includes(m)&&t.push(m)}}t.sort((n,o)=>n.localeCompare(o)),this.exportCSV("email-list.csv",t.join(` `))})}exportCSV(e,t,i="text/csv"){let n=new Blob([t],{type:`${i};charset=utf-8;`}),o=document.createElement("a");if(o.download!==void 0){let s=URL.createObjectURL(n);o.setAttribute("href",s),o.setAttribute("download",e),o.style.visibility="hidden",document.body.appendChild(o),o.click(),document.body.removeChild(o)}}exportJSON(e,t){let i=JSON.stringify(t,null,2),n=new Blob([i],{type:"text/json;charset=utf-8;"}),o=document.createElement("a");if(o.download!==void 0){let s=URL.createObjectURL(n);o.setAttribute("href",s),o.setAttribute("download",e),o.style.visibility="hidden",document.body.appendChild(o),o.click(),document.body.removeChild(o)}}isMutantVehicle(e){var t,i;return(i=(t=e.musicType)==null?void 0:t.includes("Mutant Vehicle"))!=null?i:!1}exportRSLStyle(e){return l(this,null,function*(){return yield this.ttitdService.init(),e.map(t=>{var i,n,o,s,m,g,w,L,I,D;return{location_name:this.extractTitle(t),address:this.extractLocation(t),attributes:{wcf:(n=(i=t.musicType)==null?void 0:i.includes("Wheelchair Accessible"))!=null?n:!1,mv:this.isMutantVehicle(t),bpal:(s=(o=t.musicType)==null?void 0:o.includes("_BIPOC"))!=null?s:!1,lm:(g=(m=t.musicType)==null?void 0:m.includes("Live Music"))!=null?g:!1,rr:(L=(w=t.musicType)==null?void 0:w.includes("_Recommended"))!=null?L:!1},camp_uuid:this.extractLocationUid(t),theme:(I=t.title)!=null?I:"",date:this.extractDates(t).date,start_date:this.extractDates(t).start_date,end_date:this.extractDates(t).end_date,start_time:this.extractDates(t).start_time,end_time:this.extractDates(t).end_time,performances:JSON.parse((D=t.occurrences)!=null?D:[]).map(f=>({time:f.time,artists:[{name:f.who||""}]}))||[]}})})}exportMusic(e){return l(this,null,function*(){yield this.ttitdService.init();let t="-07:00";return e.map((i,n)=>{var o,s,m,g,w,L,I,D;return{id:`rsl-${n+1}`,uid:`rsl-${n+1}`,title:(o=i.title)!=null?o:`${i.camp} (${new Date(i.day).toLocaleDateString("en-US",{weekday:"short"})})`,camp:this.extractTitle(i),day:i.day||"",location:this.extractLocation(i),wa:(m=(s=i.musicType)==null?void 0:s.includes("Wheelchair Friendly"))!=null?m:!1,lm:(w=(g=i.musicType)==null?void 0:g.includes("Live Music"))!=null?w:!1,rr:(I=(L=i.musicType)==null?void 0:L.includes("_Recommended"))!=null?I:!1,waNotes:i.waNotes||void 0,distance:0,distanceInfo:"",artCar:this.extractLocationArtCar(i),campId:this.extractLocationUid(i),occurrences:JSON.parse((D=i.occurrences)!=null?D:[]).map((f,Pt)=>({who:f.who||"",startTime:f.startTime+t||"",endTime:f.endTime+t||"",timeRange:f.timeRange||f.time||"",time:f.time||f.timeRange||"",id:Pt.toString()}))||[]}})})}extractLocationArtCar(e){try{let t=JSON.parse(e.location);return t.type==="mutant"?t.artCar:void 0}catch{return}}extractDates(e){return this.partyService.occurrencesRSL(e.occurrences)}extractTitle(e){let t=JSON.parse(e.location);return t.type==="mutant"||this.isMutantVehicle(e)||!j(t.artCar)?t.artCar.trim():t.name.trim()}extractLocation(e){var t,i;try{let n=JSON.parse(e.location),o=this.ttitdService.camps.find(m=>m.uid==n.uid);if(o)return(t=o.location)!=null?t:"";let s=this.ttitdService.art.find(m=>m.uid==n.uid);return s?(i=s.name)!=null?i:"":n.type==="mutant"?n.name:""}catch{return""}}extractLocationUid(e){try{let t=JSON.parse(e.location);return t.type!=="mutant"?t.uid:void 0}catch{return}}};C.\u0275fac=function(t){return new(t||C)},C.\u0275prov=O({token:C,factory:C.\u0275fac,providedIn:"root"});var q=C;var Et=r=>[r];function Rt(r,e){if(r&1&&(y(0,"ion-item"),c(1,"ion-item",19)(2,"h3"),p(3),u()()),r&2){let t=h().$implicit;a(3),B(t.group)}}function At(r,e){if(r&1&&p(0),r&2){let t=h().$implicit;P(" ",t.dayTitle,"\xA0 ")}}function Bt(r,e){if(r&1&&(c(0,"div",17)(1,"ion-note",3),p(2),u()()),r&2){let t=h().$implicit;a(2),B(t.dayTitle)}}function Ft(r,e){if(r&1&&(c(0,"div",18),y(1,"app-party-list",20),u()),r&2){let t=h().$implicit;a(),S("music",t)}}function Gt(r,e){if(r&1&&(x(0,Rt,4,1),c(1,"ion-item",16)(2,"ion-label"),p(3),c(4,"p"),x(5,At,1,1),c(6,"i"),p(7),u()()(),x(8,Bt,3,1,"div",17),u(),x(9,Ft,2,1,"div",18)),r&2){let t=e.$implicit,i=h(3);_(t.group?0:-1),a(),S("routerLink","../music/"+ot(7,Et,t.id)),a(2),P("",t.viewTitle," "),a(2),_(i.groupBy==="location"?5:-1),a(2),B(t.title),a(),_(i.groupBy!=="location"?8:-1),a(),_(i.groupBy==="location"?9:-1)}}function Jt(r,e){if(r&1&&(c(0,"ion-list"),R(1,Gt,10,9,null,null,E),u()),r&2){let t=h(2);a(),A(t.music)}}function $t(r,e){r&1&&y(0,"ion-item")}function kt(r,e){if(r&1){let t=X();c(0,"div",9)(1,"ion-buttons",10)(2,"ion-segment",11),nt("ngModelChange",function(n){Z(t);let o=h();return it(o.groupBy,n)||(o.groupBy=n),H(n)}),z("ionChange",function(){Z(t);let n=h();return H(n.refresh())}),c(3,"ion-segment-button",12)(4,"ion-label"),p(5,"Summary"),u()(),c(6,"ion-segment-button",13)(7,"ion-label"),p(8,"Details"),u()()()(),c(9,"app-image-card",14),x(10,Jt,3,0,"ion-list")(11,$t,1,0,"ion-item"),u()(),y(12,"div",15)}if(r&2){let t=h();a(2),et("ngModel",t.groupBy),S("value",t.groupBy),a(7),S("url",t.camp?t.image(t.camp):t.festivalImage())("title",t.title)("description",t.description),a(),_(t.music.length>0?10:11)}}var b=class b{constructor(){this.router=d(at);this.route=d(st);this.vanity=F();this.music=[];this.busy=!0;this.groupBy="title";this.title="";this.description="";this.isAdmin=!1;this.buttons=[];this.ttitdService=d(Y);this.rslService=d(q);this.partyService=d(v);this.api=d(U);bt({add:Tt})}image(e){return this.api.imageURL(e.imageUrl)}festivalImage(){return this.api.imageURL(this.api.festivalImage())}getTitle(e,t){let i=t.length>0?t[0].location:"",n=!0;for(let o of t)if(o.location!=i){n=!1;break}if(n)try{return JSON.parse(i).name}catch{return e}return e}ionViewWillEnter(){return l(this,null,function*(){var e;yield this.api.setFestivalByVanity(this.vanity()),this.campId=this.route.snapshot.queryParams.camp,this.camp=this.campId?yield this.api.getCamp(this.campId):void 0,this.title=this.camp?`${this.camp.name}`:`${this.api.festivalTitle()}`,this.music=this.filter(yield this.api.music()),this.title=this.getTitle(this.title,this.music),this.music.map(t=>{t.camp=="Unknown"?t.viewTitle=this.extractLocation(t):t.viewTitle=t.camp}),this.festival=yield this.api.getFestivalByVanity(this.vanity(),!0,!1),this.access=this.api.getAccessInfo((e=this.festival)==null?void 0:e.id),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.description=this.music.length>0?"":`There are no parties for ${this.title}.`,this.buttons=this.isAdmin||this.access.hasFestivals?[{title:"Export JSON",method:this.exportJSON(),icon:"cloud-download-outline"},{title:"Export RSL JSON",method:this.exportRSLStyle(),icon:"cloud-download-outline"},{title:"Export Musician List",method:this.exportMusicians(),icon:"cloud-download-outline"},{title:"Export Email List",method:this.exportEmailList(),icon:"cloud-download-outline"},{title:"Export Detailed List",method:this.exportDetailedList(),icon:"cloud-download-outline"}]:[],this.refresh(),this.busy=!1})}sortIndex(e){return this.partyService.dayNumber(e.occurrences)}sortMusic(){for(let e of this.music)e.index=this.sortIndex(e);this.music.sort((e,t)=>{let i=this.extractLocation(e,!1),n=this.extractLocation(t,!1),o=i.localeCompare(n);return o===0&&e.index&&t.index?e.index-t.index:o})}refresh(){if(console.time("MusicPage.refresh"),this.groupBy=="location"){this.sortMusic();let e="";for(let t of this.music)this.extractLocation(t,!1)!=e&&(t.group=this.extractLocation(t,!1),e=this.extractLocation(t,!1)),t.dayTitle=this.partyService.dayTitle(t.occurrences)}else{this.sortMusic();for(let e of this.music)e.group=void 0,e.dayTitle=this.partyService.dayTitle(e.occurrences)}console.timeEnd("MusicPage.refresh")}filter(e){return this.campId?e.filter(t=>t.campId==this.campId):e}extractLocation(e,t=!0){try{let i=JSON.parse(e.location);return j(i.artCar)||(i.type="mutant"),i.type=="mutant"?`${i.artCar}`+(t?`(@ ${i.name})`:""):i.name}catch{return"Unknown"}}exportJSON(){return()=>l(this,null,function*(){var e;if(!this.isAdmin&&!((e=this.access)!=null&&e.hasFestivals)){this.message("You do not have access rights to this feature.");return}this.rslService.exportMusicJSON(this.exportPrep(this.music))})}exportPrep(e){return JSON.parse(JSON.stringify(e))}exportRSLStyle(){return()=>l(this,null,function*(){var e;if(!this.isAdmin&&!((e=this.access)!=null&&e.hasFestivals)){this.message("You do not have access rights to this feature.");return}this.rslService.exportMusicRSL(this.exportPrep(this.music))})}exportDetailedList(){return()=>l(this,null,function*(){var e;if(!this.isAdmin&&!((e=this.access)!=null&&e.hasFestivals)){this.message("You do not have access rights to this feature.");return}this.rslService.exportMusicDetails(this.exportPrep(this.music))})}exportMusicians(){return()=>l(this,null,function*(){var e;if(!this.isAdmin&&!((e=this.access)!=null&&e.hasFestivals)){this.message("You do not have access rights to this feature.");return}this.rslService.exportMusicians(this.exportPrep(this.music))})}exportEmailList(){return()=>l(this,null,function*(){var e;if(!this.isAdmin&&!((e=this.access)!=null&&e.hasFestivals)){this.message("You do not have access rights to this feature.");return}this.rslService.exportEmailList(this.exportPrep(this.music))})}message(e){setTimeout(()=>{this.api.sendMessage(e)},1)}newMusic(){this.router.navigate(["./new"],{queryParams:{camp:this.campId,nextDay:this.nextDay(this.music)},relativeTo:this.route})}nextDay(e){try{if(e.length==0)return;let t;for(let o of e){let s=JSON.parse(o.occurrences);for(let m of s){let g=new Date(m.startTime);(!t||g>t)&&(t=g)}}if(!t)return;let i=new Date(t);i.setDate(i.getDate()+1);let n=i.toISOString().split("T")[0];return console.log(n),n}catch{return}}};b.\u0275fac=function(t){return new(t||b)},b.\u0275cmp=N({type:b,selectors:[["app-music"]],inputs:{vanity:[1,"vanity"]},decls:13,vars:3,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../music/new"],["name","add"],[3,"buttons"],[3,"fullscreen"],["title","Add Party",3,"press"],[1,"border"],["slot","start",1,"segment"],["mode","ios",3,"ngModelChange","ionChange","ngModel","value"],["value","title"],["value","location"],["routeTo","../music/new",3,"url","title","description"],[1,"ion-padding"],["lines","none",3,"routerLink"],[1,"indent1"],[1,"indent2"],["lines","none"],[3,"music"]],template:function(t,i){t&1&&(c(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),y(3,"ion-back-button"),u(),c(4,"ion-title",2),p(5,"Music"),u(),c(6,"ion-buttons",3)(7,"ion-button",4),y(8,"ion-icon",5),u(),y(9,"app-side",6),u()()(),c(10,"ion-content",7),x(11,kt,13,6),c(12,"app-footer",8),z("press",function(){return i.newMusic()}),u()()),t&2&&(a(9),S("buttons",i.buttons),a(),S("fullscreen",!0),a(),_(i.busy?-1:11))},dependencies:[It,dt,mt,lt,ut,ct,yt,_t,ht,J,k,pt,xt,ft,gt,St,$,G,wt,Mt,vt,W,Lt],styles:["ion-fab[_ngcontent-%COMP%]{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}ion-fab-button[_ngcontent-%COMP%]{margin-top:calc(-2 * var(--spacing-1xl));padding:var(--spacing-sm)}ion-item[_ngcontent-%COMP%]{cursor:pointer}.indent1[_ngcontent-%COMP%]{margin-left:var(--spacing-lg)}.indent2[_ngcontent-%COMP%]{margin-left:var(--spacing-2xl)}.segment[_ngcontent-%COMP%]{position:absolute;margin-left:var(--spacing-2xl);margin-top:var(--spacing-2xl)}h3[_ngcontent-%COMP%]{font-family:Gelion Bold}@media (max-width: 391px){.segment[_ngcontent-%COMP%]{position:relative;margin-left:0;margin-top:0}}"]});var Dt=b;export{Dt as MusicPage}; diff --git a/.admin-app/chunk-HPON5CAB.js b/.admin-app/chunk-HPON5CAB.js new file mode 100644 index 00000000..ccb031f1 --- /dev/null +++ b/.admin-app/chunk-HPON5CAB.js @@ -0,0 +1,2 @@ +import{a as Oe}from"./chunk-LZ3XWWPZ.js";import"./chunk-62GZOW6G.js";import{a as D,b as F,c as We,d as Ne}from"./chunk-PXGOJK3Q.js";import"./chunk-3U2X6Y6W.js";import"./chunk-LKPHKBDT.js";import{a as Fe}from"./chunk-4JLQIYCO.js";import{a as De}from"./chunk-3OSW3EO7.js";import"./chunk-KCPLCCSF.js";import{a as Ue}from"./chunk-CPOGSMOE.js";import{a as Ae}from"./chunk-U3YCGDGQ.js";import{a as Ve}from"./chunk-K6ROGVP7.js";import{c as f}from"./chunk-OZ2IKH4J.js";import{Y as Se,Z as Ee,oa as Me,q as Pe,w as ke}from"./chunk-QF32E4V4.js";import{E as Te,K as Ie,e as A,l as xe,r as we,v as be}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as Q,Aa as z,Ba as m,Ca as M,Cb as $,Cc as de,E as L,Eb as ee,Fc as _e,Ga as w,Gc as he,H as a,Ha as b,Ia as T,Kc as ue,Mc as Ce,Na as G,Oc as fe,P as R,Pc as ge,Uc as ve,Va as J,Vc as ye,Xb as ie,Y as h,Z as u,_a as H,aa as j,ac as te,ba as q,ca as c,da as l,dc as ne,ea as r,ec as ae,fa as v,fc as oe,gc as le,ka as y,kc as re,lb as K,ma as C,mc as se,oa as s,ob as Y,p as x,s as d,sa as S,sc as pe,t as _,ta as E,tc as ce,ua as V,ub as X,wc as me,xb as Z}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as O,b as B,h as g}from"./chunk-LNJ3S2LQ.js";var Le=t=>[t];function Re(t,n){if(t&1&&(l(0,"ion-select-option",12),m(1),r()),t&2){let e=n.$implicit;c("value",e),a(),M(e)}}function Qe(t,n){if(t&1){let e=y();l(0,"ion-item",13)(1,"ion-checkbox",22),T("ngModelChange",function(i){d(e);let p=s(2);return b(p.camp.publicEvents,i)||(p.camp.publicEvents=i),_(i)}),m(2,"Accept event submissions from the public"),r()()}if(t&2){let e=s(2);a(),w("ngModel",e.camp.publicEvents)}}function je(t,n){if(t&1&&v(0,"img",17),t&2){let e=s(2);c("src",e.imageUrl,L)}}function qe(t,n){t&1&&(l(0,"p"),m(1,"Click to choose an optional image for your camp"),r())}function ze(t,n){if(t&1){let e=y();l(0,"ion-item",8)(1,"app-emails",23),T("emailsChange",function(i){d(e);let p=s(2);return b(p.camp.contact_email,i)||(p.camp.contact_email=i),_(i)}),r()()}if(t&2){let e=s(2);a(),c("isAdmin",e.isAdmin)("isOwner",e.isOwner)("label","Camp Owner(s)")("placeholder","Email address of camp owner"),w("emails",e.camp.contact_email)}}function Ge(t,n){t&1&&(l(0,"app-tooltip",24)(1,"ion-chip",26),v(2,"ion-icon",27),m(3,"\xA0 This theme camp is approved "),r()())}function Je(t,n){t&1&&(l(0,"app-tooltip",25)(1,"ion-chip",0),v(2,"ion-icon",28),m(3,"\xA0 This theme camp is not yet approved "),r()())}function He(t,n){if(t&1&&h(0,Ge,4,0,"app-tooltip",24)(1,Je,4,0,"app-tooltip",25),t&2){let e=s(2);u(e.isApproved()?0:1)}}function Ke(t,n){if(t&1){let e=y();l(0,"app-tooltip",20)(1,"ion-button",29),C("click",function(){d(e);let i=s(2);return _(i.invite())}),m(2,"Invite"),r()()}if(t&2){let e=s(2);a(),c("disabled",e.inviting)}}function Ye(t,n){if(t&1){let e=y();l(0,"app-tooltip",30)(1,"ion-button",29),C("click",function(){d(e);let i=s(3);return _(i.approve(!1))}),m(2,"Unapprove"),r()()}if(t&2){let e=s(3);a(),c("disabled",e.busy)}}function Xe(t,n){if(t&1){let e=y();l(0,"app-tooltip",31)(1,"ion-button",32),C("click",function(){d(e);let i=s(3);return _(i.approve(!0))}),m(2,"Approve"),r()()}if(t&2){let e=s(3);a(),c("disabled",e.busy)}}function Ze(t,n){if(t&1&&h(0,Ye,3,1,"app-tooltip",30)(1,Xe,3,1,"app-tooltip",31),t&2){let e=s(2);u(e.isApproved()?0:1)}}function $e(t,n){if(t&1&&(l(0,"app-tooltip",33)(1,"ion-button",34),m(2," Place "),r()(),l(3,"ion-button",35),m(4," Delete "),r(),m(5,"\xA0 "),v(6,"ion-alert",36)),t&2){let e=s(2);a(),c("routerLink","../../map/"+G(2,Le,e.camp.id)),a(5),c("buttons",e.deleteButtons)}}function ei(t,n){if(t&1){let e=y();l(0,"div",5)(1,"app-moderation-check",6),C("approve",function(){d(e);let i=s();return _(i.approveModerations())}),r(),l(2,"ion-card",7)(3,"ion-card-content",7)(4,"ion-list",8)(5,"ion-item")(6,"ion-input",9),T("ngModelChange",function(i){d(e);let p=s();return b(p.camp.name,i)||(p.camp.name=i),_(i)}),r()(),l(7,"ion-item",10)(8,"ion-select",11),T("ngModelChange",function(i){d(e);let p=s();return b(p.camp.camp_type,i)||(p.camp.camp_type=i),_(i)}),j(9,Re,2,2,"ion-select-option",12,Q),r()(),h(11,Qe,3,1,"ion-item",13),l(12,"ion-item",14),C("dblclick",function(){d(e);let i=s();return _(i.fillDescription())}),l(13,"ion-textarea",15),T("ngModelChange",function(i){d(e);let p=s();return b(p.camp.description,i)||(p.camp.description=i),_(i)}),r()(),l(14,"div",16),C("click",function(){d(e);let i=s();return _(i.upload.click())}),h(15,je,1,1,"img",17),h(16,qe,2,0,"p"),r(),h(17,ze,2,5,"ion-item",8),v(18,"app-internal-fields",18),r(),h(19,He,2,1),l(20,"div",19),h(21,Ke,3,1,"app-tooltip",20),h(22,Ze,2,1),h(23,$e,7,4),l(24,"ion-button",3),C("click",function(){d(e);let i=s();return _(i.save())}),m(25,"Save"),r()(),l(26,"app-upload",21),C("upload",function(i){d(e);let p=s();return _(p.uploaded(i))}),r()()()()}if(t&2){let e=s();a(),c("visible",!0)("moderationId",e.camp.moderation),a(5),w("ngModel",e.camp.name),a(2),c("value",e.camp.camp_type),w("ngModel",e.camp.camp_type),a(),q(e.campTypes),a(2),u(e.isAdmin||e.isOwner?11:-1),a(2),c("spellcheck",!0)("rows",6)("maxlength",1e3)("autoGrow",!0),w("ngModel",e.camp.description),a(),z(e.uploading?"disabled":""),a(),u(e.imageUrl?15:-1),a(),u(e.imageUrl?-1:16),a(),u(e.isAdmin||e.isOwner?17:-1),a(),c("schemaType","camps")("entityId",e.camp.id||0)("currentData",e.internalFieldData),a(),u(e.id&&!e.isAdmin?19:-1),a(2),u(e.id&&e.isAdmin?21:-1),a(),u(e.id&&e.isAdmin?22:-1),a(),u(e.id&&e.canPlace?23:-1),a(),c("disabled",e.busy)}}function ii(t,n){t&1&&v(0,"app-spinner")}var I=class I{constructor(){this.api=x(Ie);this.alert=x(ue);this.location=x(H);this.moderation=x(De);this.campService=x(Oe);this.vanity=J();this.busy=!0;this.uploading=!1;this.imageChanged=!1;this.isAdmin=!1;this.isOwner=!1;this.canPlace=!1;this.isNew=!1;this.inviting=!1;this.internalFieldData=[];this.previousContactEmail="";this.camp={name:"",pin:"",description:"",id:void 0,contact_email:"",camp_type:this.campService.campTypes[0],publicEvents:!1};this.deleteButtons=[{text:"Delete",role:"destructive",handler:()=>{this.delete()}},{text:"Cancel",role:"cancel",handler:()=>{}}];Me({mapOutline:Ee,mailOutline:Se,checkmarkCircleOutline:Pe,closeCircleOutline:ke})}get campTypes(){return this.campService.campTypes}uploaded(n){console.log(n),this.imageUrl=n.url,this.imageChanged=!0,this.blob=n.blob}ionViewWillEnter(){return g(this,null,function*(){if(yield this.api.setFestivalByVanity(this.vanity()),this.id=xe(this.id),this.isNew=!this.id,this.camp=yield this.api.getCamp(this.id),this.previousContactEmail=this.camp.contact_email||"",this.canPlace=this.api.getAccessInfo(this.api.festivalId).hasAdmin,this.isAdmin=this.api.lastRoleResponse=="festival",this.isOwner=!!this.id&&this.api.getAccessInfo(this.api.festivalId).camps.includes(this.id),this.imageUrl=this.api.imageURL(this.camp.imageUrl),this.camp.internalData)try{this.internalFieldData=JSON.parse(this.camp.internalData)}catch(n){console.error("Failed to parse internal data:",n),this.internalFieldData=[]}this.busy=!1})}delete(){return g(this,null,function*(){this.busy=!0,yield this.api.deleteCamp(this.camp),this.api.clearCache(),this.busy=!1,this.location.back()})}fillDescription(){console.log("fillDescription"),A(this.camp.description)&&!A(this.camp.name)&&(this.camp.description=`${this.camp.name} does not have a description yet.`)}save(n=!0){return g(this,null,function*(){var e,o,i;this.busy=!0,be(this.camp);try{if(this.internalFields){if(!this.internalFields.validate()){this.api.sendMessage("Please fill in all required fields"),this.busy=!1;return}this.internalFieldData=this.internalFields.fieldValues(),this.internalFieldData.length>0&&(this.camp.internalData=JSON.stringify(this.internalFieldData))}this.camp.description=we(this.camp.description);let p=yield this.api.addCamp(this.camp);if(this.busy=!1,p.message)f(this.alert,p.message);else{let k=(o=p.id)!=null?o:(e=p.data)==null?void 0:e.id,U=(i=p.data)==null?void 0:i.placement_form_url;if(k&&this.imageChanged){console.log(`Uploaded image for camp ${k}`),this.busy=!0;try{yield this.uploadImage(k)}finally{this.busy=!1,this.imageChanged=!1}}if(!this.isAdmin){let P=this.isNew?`Thank you for registering your camp at ${this.api.festivalTitle()}.`:`The changes you have made will be reviewed by ${this.api.festivalTitle()} prior to publishing in the app.`;if(this.isNew&&U){P+=" To register for placement please fill the following form.";let N=yield this.alert.create({header:"Note",message:P,buttons:[{text:"Continue",handler:()=>{window.open(U,"_blank")}}]});yield N.present(),yield N.onDidDismiss()}else f(this.alert,P,"Note");yield this.api.setKey()}this.api.clearCache();let W=We(this.previousContactEmail,this.camp.contact_email||"");W.length>0&&(yield Ne(this.alert,W,P=>this.inviteWithEmails(P))),this.previousContactEmail=this.camp.contact_email||"",n&&this.location.back()}yield this.moderation.moderateIfNeeded(this.camp.name,this.camp.moderation,[this.camp.name,this.camp.description])}finally{this.busy=!1}})}invite(){return g(this,null,function*(){if(!this.camp.contact_email){yield f(this.alert,"You must specify an email address","Error");return}this.inviting=!0,yield this.save(!1);let n=yield this.api.inviteCamp(this.camp);n.message?f(this.alert,n.message):f(this.alert,"The camp owner has been invited to manage their camp.","Invitation")})}uploadImage(n){return g(this,null,function*(){if(this.blob)try{this.uploading=!0,this.camp.imageUrl=yield this.api.setImage(this.blob,n);let e=yield this.api.addCamp(this.camp,!0);e.message&&f(this.alert,e.message)}finally{this.uploading=!1}})}approve(n){return g(this,null,function*(){this.busy=!0,this.camp.status=n?2:1;let e=yield this.api.approveCamp(this.camp);e.message&&f(this.alert,e.message),this.api.clearCache(),this.busy=!1})}isApproved(){return this.camp.status===2||this.camp.status===0||Te(this.camp.status)}inviteWithEmails(n){return g(this,null,function*(){this.inviting=!0;try{for(let e of n){let o=B(O({},this.camp),{email:e}),i=yield this.api.inviteCamp(o);i.message?yield f(this.alert,i.message,"Error"):yield f(this.alert,`Invitation sent to ${e}`,"Success")}}finally{this.inviting=!1}})}approveModerations(){return g(this,null,function*(){this.camp.moderation=0,yield this.save()})}};I.\u0275fac=function(e){return new(e||I)},I.\u0275cmp=R({type:I,selectors:[["app-camp"]],viewQuery:function(e,o){if(e&1&&(S(D,5),S(F,5)),e&2){let i;E(i=V())&&(o.upload=i.first),E(i=V())&&(o.internalFields=i.first)}},inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:4,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],[3,"approve","visible","moderationId"],[1,"form"],["lines","none"],["label","Camp Name","labelPlacement","stacked","placeholder","Name of the theme camp",3,"ngModelChange","ngModel"],["lines","none",1,"app-select"],["label","Type","labelPlacement","stacked","interface","popover","placeholder","Select the type of camp",1,"app-select",3,"ngModelChange","value","ngModel"],[3,"value"],["lines","none",1,"ion-padding-start"],[3,"dblclick"],["labelPlacement","stacked","label","Description","placeholder","Description of the theme camp",3,"ngModelChange","spellcheck","rows","maxlength","autoGrow","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],[3,"schemaType","entityId","currentData"],[1,"center"],["text","Invite camp owner via email to manage their camp"],[3,"upload"],["justify","start",3,"ngModelChange","ngModel"],["helperText",`The camp owner(s) can login and alter their camp + events and details. This is a list of email addresses.`,3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["text","It will be displayed in the dust app"],["text","This theme camp will not appear in the dust app until approved"],["color","secondary"],["name","checkmark-circle-outline"],["name","close-circle-outline"],["color","secondary",3,"click","disabled"],["text","Mark this theme camp as unapproved so that it does not appear in the dust app"],["text","Approve the theme camp to allow it to be visible in the dust app"],["color","primary",3,"click","disabled"],["text","Place the camp on the map"],["color","secondary",3,"routerLink"],["id","deleteCamp","color","secondary"],["trigger","deleteCamp","header","Delete Camp?",3,"buttons"]],template:function(e,o){e&1&&(l(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),v(3,"ion-back-button"),r(),l(4,"ion-title"),m(5),r(),l(6,"ion-buttons",2)(7,"ion-button",3),C("click",function(){return o.save()}),m(8,"Save"),r()()()(),l(9,"ion-content",4),h(10,ei,27,24,"div",5)(11,ii,1,0,"app-spinner"),r()),e&2&&(a(5),M(o.id||o.camp.id?"Edit Camp":o.isAdmin?"Add Camp":"Register Camp"),a(2),c("disabled",o.busy),a(2),c("fullscreen",!0),a(),u(o.busy?11:10))},dependencies:[te,Ae,D,ee,X,$,Z,Ve,Y,K,pe,he,ae,ie,_e,ne,se,oe,le,me,ce,ge,ye,ve,de,Ue,Ce,F,Fe,re,fe],encapsulation:2});var Be=I;export{Be as CampPage}; diff --git a/.admin-app/chunk-IARXEYOV.js b/.admin-app/chunk-IARXEYOV.js deleted file mode 100644 index d9cecfbe..00000000 --- a/.admin-app/chunk-IARXEYOV.js +++ /dev/null @@ -1 +0,0 @@ -import{K as X}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as S,Aa as b,Ba as U,Ca as B,Db as N,E as C,Ec as A,Fc as J,G as k,H as o,P as E,Ua as M,Wb as $,X as v,Y as P,Za as L,_ as T,aa as V,ba as d,ca as s,cc as H,da as l,dc as Q,ea as x,gb as D,ja as _,jb as F,la as f,lc as W,na as g,p as u,pc as j,ra as I,rc as q,s as p,sa as R,t as c,ta as z,xa as w,za as O}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var ee=["map"];function ie(r,i){if(r&1){let e=_();s(0,"div",12),f("click",function(){let n=p(e).$implicit,a=g();return c(a.select(n))}),s(1,"div",13),b(2),l()()}if(r&2){let e=i.$implicit;O(e.selected?"pin pin-select":"pin"),w("left",e.x+"px")("top",e.y+"px"),d("title",e.label),o(2),U(e.label)}}function te(r,i){if(r&1&&x(0,"div",14),r&2){let e=g();w("left",e.pin.x+"px")("top",e.pin.y+"px"),d("title",e.pin.label)}}function ne(r,i){if(r&1){let e=_();s(0,"ion-footer",11)(1,"ion-button",4),f("click",function(){p(e);let n=g();return c(n.removePin())}),b(2,"Remove Pin"),l()()}if(r&2){let e=g();o(),d("disabled",e.busy)}}var h=class h{constructor(){this.api=u(X);this.router=u(F);this.sanitizer=u(D);this.location=u(L);this.vanity=M();this.id=M();this.camp={name:"",description:"",pin:"",id:void 0,contact_email:"",camp_type:"",publicEvents:!1};this.mapUri="";this.pt={x:0,y:0};this.busy=!1;this.pins=[];this.camps=[]}ionViewWillEnter(){return y(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.camp=yield this.api.getCamp(this.id());let i=yield this.api.getMap();i.base64?this.mapUri=this.sanitizer.bypassSecurityTrustUrl(i.base64):this.mapUri=this.api.imageURL(`${this.vanity()}/${i.filename}`),this.camps=yield this.api.camps({cached:!0})})}onResize(){this.pins=this.getPins(this.camps,this.camp)}onMapLoad(){this.pins=this.getPins(this.camps,this.camp)}select(i){this.selectedPin&&(this.selectedPin.selected=!1),i.selected=!0,this.camp=i.camp,this.selectedPin=i,console.log("Selected pin:",i)}mapPoint(i){let e=i.clientX,t=i.clientY,a=this.map.nativeElement.getBoundingClientRect(),m=(e-a.x)*1e4/a.width,G=(t-a.y)*1e4/a.height;this.pt={x:Math.ceil(m),y:Math.ceil(G)},this.pin={x:this.pt.x*this.width()/1e4,y:this.pt.y*this.height()/1e4,label:this.camp.name,pt:this.pt,changed:!0};let K=this.pin.x,Z=this.pin.y;return this.selectedPin&&(this.selectedPin.selected=!1,this.selectedPin.changed=!0,this.selectedPin.pt=this.pt),setTimeout(()=>{this.selectedPin&&(this.selectedPin.x=K,this.selectedPin.y=Z)},500),!1}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}getPins(i,e){let t=[];for(let n of i)if(n.pin&&n.pin.trim()!=""){let a=JSON.parse(n.pin),m=n.id===(e==null?void 0:e.id);t.push({x:a.x*this.width()/1e4,y:a.y*this.height()/1e4,label:n.name,camp:n,selected:m}),m&&(this.selectedPin=t[t.length-1])}return t}save(){return y(this,null,function*(){this.busy=!0;try{let i=0;for(let e of this.pins)if(e.changed){if(console.log(e),!e.pt){this.api.sendMessage(`Error: No position for ${e.camp.name}`,0,"Error"),this.busy=!1;return}this.api.sendMessage(`Saving ${e.camp.name}...`,1,"Saving"),yield this.api.placeCamp(e.camp.id,e.pt),i++}i||(yield this.api.placeCamp(this.id(),this.pt)),this.api.clearCache(),this.location.back(),this.location.back()}finally{this.busy=!1}})}removePin(){return y(this,null,function*(){this.busy=!0;try{yield this.api.placeCamp(this.id(),void 0),this.api.clearCache(),this.location.back()}finally{this.busy=!1}})}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=E({type:h,selectors:[["app-map"]],viewQuery:function(e,t){if(e&1&&I(ee,5),e&2){let n;R(n=z())&&(t.map=n.first)}},inputs:{vanity:[1,"vanity"],id:[1,"id"]},decls:18,vars:6,consts:[["map",""],["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"page2"],[1,"map"],[3,"title","left","top","class"],[1,"placed","pin",3,"title","left","top"],[3,"load","resize","click","src"],[1,"ion-padding","ion-text-center"],[3,"click","title"],[1,"label"],[1,"placed","pin",3,"title"]],template:function(e,t){if(e&1){let n=_();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),s(4,"ion-title"),b(5),l(),s(6,"ion-buttons",3)(7,"ion-button",4),f("click",function(){return p(n),c(t.save())}),b(8,"Save"),l()()()(),s(9,"ion-content",5)(10,"div",6)(11,"div",7),S(12,ie,3,8,"div",8,T),v(14,te,1,5,"div",9),l(),s(15,"img",10,0),f("load",function(){return p(n),c(t.onMapLoad())})("resize",function(){return p(n),c(t.onResize())},k)("click",function(m){return p(n),c(t.mapPoint(m))}),l()()(),v(17,ne,3,1,"ion-footer",11)}e&2&&(o(5),B("Place ",t.camp.name," on Map"),o(2),d("disabled",t.busy),o(2),d("fullscreen",!0),o(3),V(t.pins),o(2),P(t.pin?14:-1),o(),d("src",t.mapUri,C),o(2),P(t.camp.pin&&t.camp.pin.length>0?17:-1))},dependencies:[j,N,q,J,Q,$,A,H,W],styles:["img[_ngcontent-%COMP%]{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.placed[_ngcontent-%COMP%]{background-color:red!important;border:2px solid white!important;width:15px;height:15px;border-radius:var(--br-2xl)}.pin[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:var(--br-xl);background-color:#fff;border:2px solid rgb(255,116,116);position:absolute}.pin-select[_ngcontent-%COMP%]{border:3px solid red!important}.pin[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{visibility:hidden;width:200px;margin-left:var(--spacing-base);margin-top:calc(-1 * var(--spacing-xs));-webkit-text-stroke-width:4px;-webkit-text-stroke-color:rgba(0,0,0,.1);text-stroke-width:4px;text-stroke-color:rgba(0,0,0,.1);color:#fff;font-weight:700}.pin[_ngcontent-%COMP%]:hover .label[_ngcontent-%COMP%]{visibility:visible}.map[_ngcontent-%COMP%]{position:absolute}"]});var Y=h;export{Y as MapPage}; diff --git a/.admin-app/chunk-7CFKHTZL.js b/.admin-app/chunk-IDAHFRDO.js similarity index 84% rename from .admin-app/chunk-7CFKHTZL.js rename to .admin-app/chunk-IDAHFRDO.js index 71c76c6c..4a443ca5 100644 --- a/.admin-app/chunk-7CFKHTZL.js +++ b/.admin-app/chunk-IDAHFRDO.js @@ -1 +1 @@ -import{a as _}from"./chunk-5B2MUMUK.js";import{K as S}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{Aa as g,Ec as P,F as c,Fc as I,H as o,P as d,Ua as y,Wb as w,X as v,Y as u,ba as l,ca as i,da as n,dc as b,ea as a,gb as h,lc as x,na as f,p,rc as C}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as m}from"./chunk-LNJ3S2LQ.js";function D(r,s){if(r&1&&(i(0,"div",4),a(1,"iframe",5),n()),r&2){let e=f();o(),l("frameBorder",0)("src",e.src,c)}}function M(r,s){r&1&&a(0,"app-spinner")}var t=class t{constructor(){this.api=p(S);this._sanitizer=p(h);this.ready=!1;this.vanity=y("")}ngOnInit(){return m(this,null,function*(){yield this.api.preview(),this.src=this._sanitizer.bypassSecurityTrustResourceUrl("https://preview.dust.events?preview="+this.vanity()),console.warn("url is",this.src),this.ready=!0})}};t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=d({type:t,selectors:[["app-preview"]],inputs:{vanity:[1,"vanity"]},decls:9,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],[3,"fullscreen"],[1,"phone"],["seamless","",3,"frameBorder","src"]],template:function(e,B){e&1&&(i(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),a(3,"ion-back-button"),n(),i(4,"ion-title",2),g(5,"Preview"),n()()(),i(6,"ion-content",3),v(7,D,2,2,"div",4)(8,M,1,0,"app-spinner"),n()),e&2&&(o(6),l("fullscreen",!0),o(),u(B.ready?7:8))},dependencies:[w,b,x,C,P,I,_],styles:["iframe[_ngcontent-%COMP%]{width:375px;height:667px;border-radius:var(--br-lg)}.phone[_ngcontent-%COMP%]{max-width:409px;margin-left:auto;margin-right:auto;border:2px solid lightgray;border-radius:var(--br-lg);padding:var(--spacing-md);margin-top:10vh}"]});var T=t;export{T as PreviewPage}; +import{a as _}from"./chunk-K6ROGVP7.js";import{K as S}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as g,F as c,Fc as P,Gc as I,H as o,P as d,Va as y,Xb as w,Y as v,Z as u,ca as l,da as i,ea as n,ec as b,fa as a,hb as h,mc as x,oa as f,p,sc as C}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as m}from"./chunk-LNJ3S2LQ.js";function D(r,s){if(r&1&&(i(0,"div",4),a(1,"iframe",5),n()),r&2){let e=f();o(),l("frameBorder",0)("src",e.src,c)}}function M(r,s){r&1&&a(0,"app-spinner")}var t=class t{constructor(){this.api=p(S);this._sanitizer=p(h);this.ready=!1;this.vanity=y("")}ngOnInit(){return m(this,null,function*(){yield this.api.preview(),this.src=this._sanitizer.bypassSecurityTrustResourceUrl("https://preview.dust.events?preview="+this.vanity()),console.warn("url is",this.src),this.ready=!0})}};t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=d({type:t,selectors:[["app-preview"]],inputs:{vanity:[1,"vanity"]},decls:9,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],[3,"fullscreen"],[1,"phone"],["seamless","",3,"frameBorder","src"]],template:function(e,B){e&1&&(i(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),a(3,"ion-back-button"),n(),i(4,"ion-title",2),g(5,"Preview"),n()()(),i(6,"ion-content",3),v(7,D,2,2,"div",4)(8,M,1,0,"app-spinner"),n()),e&2&&(o(6),l("fullscreen",!0),o(),u(B.ready?7:8))},dependencies:[w,b,x,C,P,I,_],styles:["iframe[_ngcontent-%COMP%]{width:375px;height:667px;border-radius:var(--br-lg)}.phone[_ngcontent-%COMP%]{max-width:409px;margin-left:auto;margin-right:auto;border:2px solid lightgray;border-radius:var(--br-lg);padding:var(--spacing-md);margin-top:10vh}"]});var T=t;export{T as PreviewPage}; diff --git a/.admin-app/chunk-IIYH37ST.js b/.admin-app/chunk-IIYH37ST.js new file mode 100644 index 00000000..1dc351c3 --- /dev/null +++ b/.admin-app/chunk-IIYH37ST.js @@ -0,0 +1,8 @@ +import{a as Qn}from"./chunk-VVDGH6ZT.js";import{a as $n}from"./chunk-F5YC2F3D.js";import{a as Wn}from"./chunk-3XGYA3SU.js";import"./chunk-RKW74V7I.js";import{a as Yn}from"./chunk-M2OHFPPF.js";import{a as ot}from"./chunk-U3YCGDGQ.js";import{a as Jn}from"./chunk-K6ROGVP7.js";import{a as Kn,c as Mt}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import"./chunk-DUKSTT3K.js";import{A as Je,B as Ke,F as Ye,H as Qe,N as Un,O as Hn,P as $e,S as We,U as Ge,W as Ze,Y as Xe,Z as et,_ as tt,e as Ln,ea as nt,fa as jn,ha as it,l as Le,n as ze,o as zn,oa as O,t as Ue,u as He,v as re,y as je}from"./chunk-QF32E4V4.js";import{J as On,K as oe,e as Rn,j as Dn}from"./chunk-TCALQ33I.js";import{a as qn}from"./chunk-PFLI22GG.js";import{$ as Et,Aa as dn,Ba as P,Ca as J,Cc as Fn,D as tn,Da as Se,Dc as An,Eb as ke,Ec as Nn,F as nn,Fc as De,Ga as un,Gb as bn,Gc as Oe,H as u,Ha as pn,Hc as qe,Ia as fn,J as on,Ka as gn,Ma as mn,N as rn,Na as Tt,O as an,Oc as D,P as N,Q as sn,R as ln,Sa as R,Sc as Vn,U as cn,Uc as Bn,Va as z,Xb as En,Y as E,Ya as hn,Yb as Tn,Z as T,aa as ne,ba as ie,bb as _n,ca as f,da as c,dc as K,ea as d,eb as Ce,ec as Fe,fa as b,fc as Mn,gc as In,hb as Cn,ka as F,kb as vn,kc as Sn,lb as Pe,m as Xt,ma as h,mc as Ae,oa as p,ob as wn,oc as Ne,p as A,pc as Ve,s as C,sc as Be,t as v,tc as Pn,ub as xn,vc as Re,w as V,wc as kn,x as en,xb as yn}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{e as x,f as ro,h as k}from"./chunk-LNJ3S2LQ.js";var Zn=x((Or,Gn)=>{"use strict";Gn.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var Y=x(G=>{"use strict";var It,ao=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];G.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return t*4+17};G.getSymbolTotalCodewords=function(t){return ao[t]};G.getBCHDigit=function(n){let t=0;for(;n!==0;)t++,n>>>=1;return t};G.setToSJISFunction=function(t){if(typeof t!="function")throw new Error('"toSJISFunc" is not a valid function.');It=t};G.isKanjiModeEnabled=function(){return typeof It<"u"};G.toSJIS=function(t){return It(t)}});var rt=x(B=>{"use strict";B.L={bit:1};B.M={bit:0};B.Q={bit:3};B.H={bit:2};function so(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return B.L;case"m":case"medium":return B.M;case"q":case"quartile":return B.Q;case"h":case"high":return B.H;default:throw new Error("Unknown EC Level: "+n)}}B.isValid=function(t){return t&&typeof t.bit<"u"&&t.bit>=0&&t.bit<4};B.from=function(t,e){if(B.isValid(t))return t;try{return so(t)}catch{return e}}});var ti=x((zr,ei)=>{"use strict";function Xn(){this.buffer=[],this.length=0}Xn.prototype={get:function(n){let t=Math.floor(n/8);return(this.buffer[t]>>>7-n%8&1)===1},put:function(n,t){for(let e=0;e>>t-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(n){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),n&&(this.buffer[t]|=128>>>this.length%8),this.length++}};ei.exports=Xn});var ii=x((Ur,ni)=>{"use strict";function ve(n){if(!n||n<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=n,this.data=new Uint8Array(n*n),this.reservedBit=new Uint8Array(n*n)}ve.prototype.set=function(n,t,e,i){let o=n*this.size+t;this.data[o]=e,i&&(this.reservedBit[o]=!0)};ve.prototype.get=function(n,t){return this.data[n*this.size+t]};ve.prototype.xor=function(n,t,e){this.data[n*this.size+t]^=e};ve.prototype.isReserved=function(n,t){return this.reservedBit[n*this.size+t]};ni.exports=ve});var oi=x(at=>{"use strict";var lo=Y().getSymbolSize;at.getRowColCoords=function(t){if(t===1)return[];let e=Math.floor(t/7)+2,i=lo(t),o=i===145?26:Math.ceil((i-13)/(2*e-2))*2,r=[i-7];for(let a=1;a{"use strict";var co=Y().getSymbolSize,ri=7;ai.getPositions=function(t){let e=co(t);return[[0,0],[e-ri,0],[0,e-ri]]}});var li=x(y=>{"use strict";y.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var Z={N1:3,N2:3,N3:40,N4:10};y.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7};y.from=function(t){return y.isValid(t)?parseInt(t,10):void 0};y.getPenaltyN1=function(t){let e=t.size,i=0,o=0,r=0,a=null,s=null;for(let l=0;l=5&&(i+=Z.N1+(o-5)),a=m,o=1),m=t.get(g,l),m===s?r++:(r>=5&&(i+=Z.N1+(r-5)),s=m,r=1)}o>=5&&(i+=Z.N1+(o-5)),r>=5&&(i+=Z.N1+(r-5))}return i};y.getPenaltyN2=function(t){let e=t.size,i=0;for(let o=0;o=10&&(o===1488||o===93)&&i++,r=r<<1&2047|t.get(s,a),s>=10&&(r===1488||r===93)&&i++}return i*Z.N3};y.getPenaltyN4=function(t){let e=0,i=t.data.length;for(let r=0;r{"use strict";var Q=rt(),st=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],lt=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];St.getBlocksCount=function(t,e){switch(e){case Q.L:return st[(t-1)*4+0];case Q.M:return st[(t-1)*4+1];case Q.Q:return st[(t-1)*4+2];case Q.H:return st[(t-1)*4+3];default:return}};St.getTotalCodewordsCount=function(t,e){switch(e){case Q.L:return lt[(t-1)*4+0];case Q.M:return lt[(t-1)*4+1];case Q.Q:return lt[(t-1)*4+2];case Q.H:return lt[(t-1)*4+3];default:return}}});var ci=x(dt=>{"use strict";var we=new Uint8Array(512),ct=new Uint8Array(256);(function(){let t=1;for(let e=0;e<255;e++)we[e]=t,ct[t]=e,t<<=1,t&256&&(t^=285);for(let e=255;e<512;e++)we[e]=we[e-255]})();dt.log=function(t){if(t<1)throw new Error("log("+t+")");return ct[t]};dt.exp=function(t){return we[t]};dt.mul=function(t,e){return t===0||e===0?0:we[ct[t]+ct[e]]}});var di=x(xe=>{"use strict";var kt=ci();xe.mul=function(t,e){let i=new Uint8Array(t.length+e.length-1);for(let o=0;o=0;){let o=i[0];for(let a=0;a{"use strict";var ui=di();function Ft(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}Ft.prototype.initialize=function(t){this.degree=t,this.genPoly=ui.generateECPolynomial(this.degree)};Ft.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");let e=new Uint8Array(t.length+this.degree);e.set(t);let i=ui.mod(e,this.genPoly),o=this.degree-i.length;if(o>0){let r=new Uint8Array(this.degree);return r.set(i,o),r}return i};pi.exports=Ft});var At=x(gi=>{"use strict";gi.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}});var Nt=x(U=>{"use strict";var mi="[0-9]+",po="[A-Z $%*+\\-./:]+",ye="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";ye=ye.replace(/u/g,"\\u");var fo="(?:(?![A-Z0-9 $%*+\\-./:]|"+ye+`)(?:.|[\r +]))+`;U.KANJI=new RegExp(ye,"g");U.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");U.BYTE=new RegExp(fo,"g");U.NUMERIC=new RegExp(mi,"g");U.ALPHANUMERIC=new RegExp(po,"g");var go=new RegExp("^"+ye+"$"),mo=new RegExp("^"+mi+"$"),ho=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");U.testKanji=function(t){return go.test(t)};U.testNumeric=function(t){return mo.test(t)};U.testAlphanumeric=function(t){return ho.test(t)}});var $=x(S=>{"use strict";var _o=At(),Vt=Nt();S.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};S.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};S.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};S.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};S.MIXED={bit:-1};S.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!_o.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]};S.getBestModeForData=function(t){return Vt.testNumeric(t)?S.NUMERIC:Vt.testAlphanumeric(t)?S.ALPHANUMERIC:Vt.testKanji(t)?S.KANJI:S.BYTE};S.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")};S.isValid=function(t){return t&&t.bit&&t.ccBits};function Co(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"numeric":return S.NUMERIC;case"alphanumeric":return S.ALPHANUMERIC;case"kanji":return S.KANJI;case"byte":return S.BYTE;default:throw new Error("Unknown mode: "+n)}}S.from=function(t,e){if(S.isValid(t))return t;try{return Co(t)}catch{return e}}});var wi=x(X=>{"use strict";var ut=Y(),vo=Pt(),hi=rt(),W=$(),Bt=At(),Ci=7973,_i=ut.getBCHDigit(Ci);function wo(n,t,e){for(let i=1;i<=40;i++)if(t<=X.getCapacity(i,e,n))return i}function vi(n,t){return W.getCharCountIndicator(n,t)+4}function xo(n,t){let e=0;return n.forEach(function(i){let o=vi(i.mode,t);e+=o+i.getBitsLength()}),e}function yo(n,t){for(let e=1;e<=40;e++)if(xo(n,e)<=X.getCapacity(e,t,W.MIXED))return e}X.from=function(t,e){return Bt.isValid(t)?parseInt(t,10):e};X.getCapacity=function(t,e,i){if(!Bt.isValid(t))throw new Error("Invalid QR Code version");typeof i>"u"&&(i=W.BYTE);let o=ut.getSymbolTotalCodewords(t),r=vo.getTotalCodewordsCount(t,e),a=(o-r)*8;if(i===W.MIXED)return a;let s=a-vi(i,t);switch(i){case W.NUMERIC:return Math.floor(s/10*3);case W.ALPHANUMERIC:return Math.floor(s/11*2);case W.KANJI:return Math.floor(s/13);case W.BYTE:default:return Math.floor(s/8)}};X.getBestVersionForData=function(t,e){let i,o=hi.from(e,hi.M);if(Array.isArray(t)){if(t.length>1)return yo(t,o);if(t.length===0)return 1;i=t[0]}else i=t;return wo(i.mode,i.getLength(),o)};X.getEncodedBits=function(t){if(!Bt.isValid(t)||t<7)throw new Error("Invalid QR Code version");let e=t<<12;for(;ut.getBCHDigit(e)-_i>=0;)e^=Ci<{"use strict";var Rt=Y(),yi=1335,bo=21522,xi=Rt.getBCHDigit(yi);bi.getEncodedBits=function(t,e){let i=t.bit<<3|e,o=i<<10;for(;Rt.getBCHDigit(o)-xi>=0;)o^=yi<{"use strict";var Eo=$();function ae(n){this.mode=Eo.NUMERIC,this.data=n.toString()}ae.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)};ae.prototype.getLength=function(){return this.data.length};ae.prototype.getBitsLength=function(){return ae.getBitsLength(this.data.length)};ae.prototype.write=function(t){let e,i,o;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),o=parseInt(i,10),t.put(o,10);let r=this.data.length-e;r>0&&(i=this.data.substr(e),o=parseInt(i,10),t.put(o,r*3+1))};Ti.exports=ae});var Si=x((na,Ii)=>{"use strict";var To=$(),Dt=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function se(n){this.mode=To.ALPHANUMERIC,this.data=n}se.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)};se.prototype.getLength=function(){return this.data.length};se.prototype.getBitsLength=function(){return se.getBitsLength(this.data.length)};se.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let i=Dt.indexOf(this.data[e])*45;i+=Dt.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(Dt.indexOf(this.data[e]),6)};Ii.exports=se});var ki=x((ia,Pi)=>{"use strict";Pi.exports=function(t){for(var e=[],i=t.length,o=0;o=55296&&r<=56319&&i>o+1){var a=t.charCodeAt(o+1);a>=56320&&a<=57343&&(r=(r-55296)*1024+a-56320+65536,o+=1)}if(r<128){e.push(r);continue}if(r<2048){e.push(r>>6|192),e.push(r&63|128);continue}if(r<55296||r>=57344&&r<65536){e.push(r>>12|224),e.push(r>>6&63|128),e.push(r&63|128);continue}if(r>=65536&&r<=1114111){e.push(r>>18|240),e.push(r>>12&63|128),e.push(r>>6&63|128),e.push(r&63|128);continue}e.push(239,191,189)}return new Uint8Array(e).buffer}});var Ai=x((oa,Fi)=>{"use strict";var Mo=ki(),Io=$();function le(n){this.mode=Io.BYTE,typeof n=="string"&&(n=Mo(n)),this.data=new Uint8Array(n)}le.getBitsLength=function(t){return t*8};le.prototype.getLength=function(){return this.data.length};le.prototype.getBitsLength=function(){return le.getBitsLength(this.data.length)};le.prototype.write=function(n){for(let t=0,e=this.data.length;t{"use strict";var So=$(),Po=Y();function ce(n){this.mode=So.KANJI,this.data=n}ce.getBitsLength=function(t){return t*13};ce.prototype.getLength=function(){return this.data.length};ce.prototype.getBitsLength=function(){return ce.getBitsLength(this.data.length)};ce.prototype.write=function(n){let t;for(t=0;t=33088&&e<=40956)e-=33088;else if(e>=57408&&e<=60351)e-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+` +Make sure your charset is UTF-8`);e=(e>>>8&255)*192+(e&255),n.put(e,13)}};Ni.exports=ce});var Bi=x((aa,Ot)=>{"use strict";var be={single_source_shortest_paths:function(n,t,e){var i={},o={};o[t]=0;var r=be.PriorityQueue.make();r.push(t,0);for(var a,s,l,g,m,M,_,I,H;!r.empty();){a=r.pop(),s=a.value,g=a.cost,m=n[s]||{};for(l in m)m.hasOwnProperty(l)&&(M=m[l],_=g+M,I=o[l],H=typeof o[l]>"u",(H||I>_)&&(o[l]=_,r.push(l,_),i[l]=s))}if(typeof e<"u"&&typeof o[e]>"u"){var j=["Could not find a path from ",t," to ",e,"."].join("");throw new Error(j)}return i},extract_shortest_path_from_predecessor_list:function(n,t){for(var e=[],i=t,o;i;)e.push(i),o=n[i],i=n[i];return e.reverse(),e},find_path:function(n,t,e){var i=be.single_source_shortest_paths(n,t,e);return be.extract_shortest_path_from_predecessor_list(i,e)},PriorityQueue:{make:function(n){var t=be.PriorityQueue,e={},i;n=n||{};for(i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e.queue=[],e.sorter=n.sorter||t.default_sorter,e},default_sorter:function(n,t){return n.cost-t.cost},push:function(n,t){var e={value:n,cost:t};this.queue.push(e),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof Ot<"u"&&(Ot.exports=be)});var Hi=x(de=>{"use strict";var w=$(),Oi=Mi(),qi=Si(),Li=Ai(),zi=Vi(),Ee=Nt(),pt=Y(),ko=Bi();function Ri(n){return unescape(encodeURIComponent(n)).length}function Te(n,t,e){let i=[],o;for(;(o=n.exec(e))!==null;)i.push({data:o[0],index:o.index,mode:t,length:o[0].length});return i}function Ui(n){let t=Te(Ee.NUMERIC,w.NUMERIC,n),e=Te(Ee.ALPHANUMERIC,w.ALPHANUMERIC,n),i,o;return pt.isKanjiModeEnabled()?(i=Te(Ee.BYTE,w.BYTE,n),o=Te(Ee.KANJI,w.KANJI,n)):(i=Te(Ee.BYTE_KANJI,w.BYTE,n),o=[]),t.concat(e,i,o).sort(function(a,s){return a.index-s.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function qt(n,t){switch(t){case w.NUMERIC:return Oi.getBitsLength(n);case w.ALPHANUMERIC:return qi.getBitsLength(n);case w.KANJI:return zi.getBitsLength(n);case w.BYTE:return Li.getBitsLength(n)}}function Fo(n){return n.reduce(function(t,e){let i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[])}function Ao(n){let t=[];for(let e=0;e{"use strict";var gt=Y(),Lt=rt(),Vo=ti(),Bo=ii(),Ro=oi(),Do=si(),Ht=li(),jt=Pt(),Oo=fi(),ft=wi(),qo=Ei(),Lo=$(),zt=Hi();function zo(n,t){let e=n.size,i=Do.getPositions(t);for(let o=0;o=0&&s<=6&&(l===0||l===6)||l>=0&&l<=6&&(s===0||s===6)||s>=2&&s<=4&&l>=2&&l<=4?n.set(r+s,a+l,!0,!0):n.set(r+s,a+l,!1,!0))}}function Uo(n){let t=n.size;for(let e=8;e>s&1)===1,n.set(o,r,a,!0),n.set(r,o,a,!0)}function Ut(n,t,e){let i=n.size,o=qo.getEncodedBits(t,e),r,a;for(r=0;r<15;r++)a=(o>>r&1)===1,r<6?n.set(r,8,a,!0):r<8?n.set(r+1,8,a,!0):n.set(i-15+r,8,a,!0),r<8?n.set(8,i-r-1,a,!0):r<9?n.set(8,15-r-1+1,a,!0):n.set(8,15-r-1,a,!0);n.set(i-8,8,1,!0)}function Jo(n,t){let e=n.size,i=-1,o=e-1,r=7,a=0;for(let s=e-1;s>0;s-=2)for(s===6&&s--;;){for(let l=0;l<2;l++)if(!n.isReserved(o,s-l)){let g=!1;a>>r&1)===1),n.set(o,s-l,g),r--,r===-1&&(a++,r=7)}if(o+=i,o<0||e<=o){o-=i,i=-i;break}}}function Ko(n,t,e){let i=new Vo;e.forEach(function(l){i.put(l.mode.bit,4),i.put(l.getLength(),Lo.getCharCountIndicator(l.mode,n)),l.write(i)});let o=gt.getSymbolTotalCodewords(n),r=jt.getTotalCodewordsCount(n,t),a=(o-r)*8;for(i.getLengthInBits()+4<=a&&i.put(0,4);i.getLengthInBits()%8!==0;)i.putBit(0);let s=(a-i.getLengthInBits())/8;for(let l=0;l=7&&jo(l,t),Jo(l,a),isNaN(i)&&(i=Ht.getBestMask(l,Ut.bind(null,l,e))),Ht.applyMask(i,l),Ut(l,e,i),{modules:l,version:t,errorCorrectionLevel:e,maskPattern:i,segments:o}}ji.create=function(t,e){if(typeof t>"u"||t==="")throw new Error("No input text");let i=Lt.M,o,r;return typeof e<"u"&&(i=Lt.from(e.errorCorrectionLevel,Lt.M),o=ft.from(e.version),r=Ht.from(e.maskPattern),e.toSJISFunc&>.setToSJISFunction(e.toSJISFunc)),Qo(t,o,i,r)}});var Jt=x(ee=>{"use strict";function Ki(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let t=n.slice().replace("#","").split("");if(t.length<3||t.length===5||t.length>8)throw new Error("Invalid hex color: "+n);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(i){return[i,i]}))),t.length===6&&t.push("F","F");let e=parseInt(t.join(""),16);return{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:e&255,hex:"#"+t.slice(0,6).join("")}}ee.getOptions=function(t){t||(t={}),t.color||(t.color={});let e=typeof t.margin>"u"||t.margin===null||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,o=t.scale||4;return{width:i,scale:i?4:o,margin:e,color:{dark:Ki(t.color.dark||"#000000ff"),light:Ki(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}};ee.getScale=function(t,e){return e.width&&e.width>=t+e.margin*2?e.width/(t+e.margin*2):e.scale};ee.getImageWidth=function(t,e){let i=ee.getScale(t,e);return Math.floor((t+e.margin*2)*i)};ee.qrToImageData=function(t,e,i){let o=e.modules.size,r=e.modules.data,a=ee.getScale(o,i),s=Math.floor((o+i.margin*2)*a),l=i.margin*a,g=[i.color.light,i.color.dark];for(let m=0;m=l&&M>=l&&m{"use strict";var Kt=Jt();function $o(n,t,e){n.clearRect(0,0,t.width,t.height),t.style||(t.style={}),t.height=e,t.width=e,t.style.height=e+"px",t.style.width=e+"px"}function Wo(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}mt.render=function(t,e,i){let o=i,r=e;typeof o>"u"&&(!e||!e.getContext)&&(o=e,e=void 0),e||(r=Wo()),o=Kt.getOptions(o);let a=Kt.getImageWidth(t.modules.size,o),s=r.getContext("2d"),l=s.createImageData(a,a);return Kt.qrToImageData(l.data,t,o),$o(s,r,a),s.putImageData(l,0,0),r};mt.renderToDataURL=function(t,e,i){let o=i;typeof o>"u"&&(!e||!e.getContext)&&(o=e,e=void 0),o||(o={});let r=mt.render(t,e,o),a=o.type||"image/png",s=o.rendererOpts||{};return r.toDataURL(a,s.quality)}});var Wi=x($i=>{"use strict";var Go=Jt();function Qi(n,t){let e=n.a/255,i=t+'="'+n.hex+'"';return e<1?i+" "+t+'-opacity="'+e.toFixed(2).slice(1)+'"':i}function Yt(n,t,e){let i=n+t;return typeof e<"u"&&(i+=" "+e),i}function Zo(n,t,e){let i="",o=0,r=!1,a=0;for(let s=0;s0&&l>0&&n[s-1]||(i+=r?Yt("M",l+e,.5+g+e):Yt("m",o,0),o=0,r=!1),l+1':"",g="',m='viewBox="0 0 '+s+" "+s+'"',_=''+l+g+` +`;return typeof i=="function"&&i(null,_),_}});var Zi=x(Me=>{"use strict";var Xo=Zn(),Qt=Ji(),Gi=Yi(),er=Wi();function $t(n,t,e,i,o){let r=[].slice.call(arguments,1),a=r.length,s=typeof r[a-1]=="function";if(!s&&!Xo())throw new Error("Callback required as last argument");if(s){if(a<2)throw new Error("Too few arguments provided");a===2?(o=e,e=t,t=i=void 0):a===3&&(t.getContext&&typeof o>"u"?(o=i,i=void 0):(o=i,i=e,e=t,t=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(e=t,t=i=void 0):a===2&&!t.getContext&&(i=e,e=t,t=void 0),new Promise(function(l,g){try{let m=Qt.create(e,i);l(n(m,t,i))}catch(m){g(m)}})}try{let l=Qt.create(e,i);o(null,n(l,t,i))}catch(l){o(l)}}Me.create=Qt.create;Me.toCanvas=$t.bind(null,Gi.render);Me.toDataURL=$t.bind(null,Gi.renderToDataURL);Me.toString=$t.bind(null,function(n,t,e){return er.render(n,e)})});var to=ro(Zi(),1);function tr(n,t){if(n&1&&b(0,"canvas",1),n&2){let e=p();dn(e.styleClass),f("qrCode",e.value)("qrCodeErrorCorrectionLevel",e.errorCorrectionLevel)("qrCodeCenterImageSrc",e.centerImageSrc)("qrCodeCenterImageWidth",e.centerImageSize)("qrCodeCenterImageHeight",e.centerImageSize)("qrCodeMargin",e.margin)("width",e.size)("height",e.size)("ngStyle",e.style)("darkColor",e.darkColor)("lightColor",e.lightColor)}}var Xi=/^#(?:[0-9a-fA-F]{3,4}){1,2}$/,nr=(()=>{let t=class t{constructor(i){this.viewContainerRef=i,this.errorCorrectionLevel=t.DEFAULT_ERROR_CORRECTION_LEVEL,this.darkColor="#000000FF",this.lightColor="#FFFFFFFF",this.margin=16}ngOnChanges(){return k(this,null,function*(){var M;if(!this.value)return;this.version&&this.version>40?(console.warn("[qrCode] max version is 40, clamping"),this.version=40):this.version&&this.version<1?(console.warn("[qrCode] min version is 1, clamping"),this.version=1):this.version!==void 0&&isNaN(this.version)&&(console.warn("[qrCode] version should be set to a number, defaulting to auto"),this.version=void 0);let i=this.viewContainerRef.element.nativeElement;if(!i)return;let o=i.getContext("2d");o&&o.clearRect(0,0,o.canvas.width,o.canvas.height);let r=(M=this.errorCorrectionLevel)!=null?M:t.DEFAULT_ERROR_CORRECTION_LEVEL,a=Xi.test(this.darkColor)?this.darkColor:void 0,s=Xi.test(this.lightColor)?this.lightColor:void 0;hn()&&(!a&&this.darkColor&&console.error("[ng-qrcode] darkColor set to invalid value, must be RGBA hex color string, eg: #3050A1FF"),!s&&this.lightColor&&console.error("[ng-qrcode] lightColor set to invalid value, must be RGBA hex color string, eg: #3050A130")),yield to.default.toCanvas(i,this.value,{version:this.version,errorCorrectionLevel:r,width:this.width,margin:this.margin,color:{dark:a,light:s}});let l=this.centerImageSrc,g=eo(this.centerImageWidth,t.DEFAULT_CENTER_IMAGE_SIZE),m=eo(this.centerImageHeight,t.DEFAULT_CENTER_IMAGE_SIZE);if(l&&o){this.centerImage||(this.centerImage=new Image(g,m));let _=this.centerImage;l!==this.centerImage.src&&(_.src=l),g!==this.centerImage.width&&(_.width=g),m!==this.centerImage.height&&(_.height=m);let I=()=>{o.drawImage(_,i.width/2-g/2,i.height/2-m/2,g,m)};_.onload=I,_.complete&&I()}})}};t.DEFAULT_ERROR_CORRECTION_LEVEL="M",t.DEFAULT_CENTER_IMAGE_SIZE=40,t.\u0275fac=function(o){return new(o||t)(rn(an))},t.\u0275dir=ln({type:t,selectors:[["canvas","qrCode",""]],inputs:{value:[0,"qrCode","value"],version:[0,"qrCodeVersion","version"],errorCorrectionLevel:[0,"qrCodeErrorCorrectionLevel","errorCorrectionLevel"],width:"width",height:"height",darkColor:"darkColor",lightColor:"lightColor",centerImageSrc:[0,"qrCodeCenterImageSrc","centerImageSrc"],centerImageWidth:[0,"qrCodeCenterImageWidth","centerImageWidth"],centerImageHeight:[0,"qrCodeCenterImageHeight","centerImageHeight"],margin:[0,"qrCodeMargin","margin"]},features:[en]});let n=t;return n})();function eo(n,t){return n===void 0||n===""?t:typeof n=="string"?parseInt(n,10):n}var Wt=(()=>{let t=class t{};t.\u0275fac=function(o){return new(o||t)},t.\u0275cmp=N({type:t,selectors:[["qr-code"]],inputs:{value:"value",size:"size",style:"style",styleClass:"styleClass",darkColor:"darkColor",lightColor:"lightColor",errorCorrectionLevel:"errorCorrectionLevel",centerImageSrc:"centerImageSrc",centerImageSize:"centerImageSize",margin:"margin"},decls:1,vars:1,consts:[[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","class","ngStyle","darkColor","lightColor"],[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","ngStyle","darkColor","lightColor"]],template:function(o,r){o&1&&E(0,tr,1,13,"canvas",0),o&2&&T(r.value?0:-1)},dependencies:[nr,Ce,_n],encapsulation:2});let n=t;return n})(),no=(()=>{let t=class t{};t.\u0275fac=function(o){return new(o||t)},t.\u0275mod=sn({type:t}),t.\u0275inj=Xt({imports:[Ce,Wt]});let n=t;return n})();function or(n,t){if(n&1){let e=F();c(0,"div",1),b(1,"qr-code",3),c(2,"ion-text",4),P(3,"Scan to preview in the dust app."),d(),c(4,"ion-button",5),h("click",function(){C(e);let o=p();return v(o.exit.emit())}),P(5,"Close"),d()()}if(n&2){let e=p();u(),f("value",e.qrcode())}}function rr(n,t){n&1&&(c(0,"div",2),b(1,"ion-spinner",6),c(2,"ion-text",7),P(3,"Please Wait..."),d()())}var pe=class pe{constructor(){this.api=A(oe);this.platform=A(bn);this.vanity=z("");this.exit=new on;this.qrcode=V("")}ngOnInit(){return k(this,null,function*(){if(!this.vanity()){console.error("invalid vanity");return}yield this.api.preview();let t=`https://dust.events?preview=${this.vanity()}`;this.platform.is("desktop")?this.qrcode.set(t):(window.open(t),this.exit.emit())})}};pe.\u0275fac=function(e){return new(e||pe)},pe.\u0275cmp=N({type:pe,selectors:[["app-preview-qr"]],inputs:{vanity:[1,"vanity"]},outputs:{exit:"exit"},decls:3,vars:1,consts:[[1,"ion-text-center"],[1,"flex","ion-padding-top"],[1,"flex","ion-padding"],["size","300","errorCorrectionLevel","M",3,"value"],[1,"ion-padding-bottom"],["expand","false",3,"click"],["name","circular",1,"ion-padding"],[1,"ion-padding"]],template:function(e,i){e&1&&(c(0,"div",0),E(1,or,6,1,"div",1)(2,rr,4,0,"div",2),d()),e&2&&(u(),T(i.qrcode()!==""?1:2))},dependencies:[An,K,Nn,no,Wt],styles:[".flex[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;align-content:center;justify-content:center}"]});var ht=pe;function ar(n,t){if(n&1&&(c(0,"ion-button",6),P(1),d()),n&2){let e=p(3);u(),J(e.button())}}function sr(n,t){if(n&1&&(c(0,"div",1)(1,"div",2),b(2,"ion-icon",3),d(),c(3,"div",4)(4,"h2"),P(5),d()(),c(6,"div",5)(7,"p"),P(8),d()()(),c(9,"div",2),E(10,ar,2,1,"ion-button",6),d()),n&2){let e=p(2);u(2),f("name",e.icon()),u(3),J(e.title()),u(3),J(e.description()),u(2),T(e.button()!==""?10:-1)}}function lr(n,t){if(n&1&&(c(0,"div",0),b(1,"ion-icon",7),c(2,"ion-label"),P(3),d()()),n&2){let e=p(2);u(),f("name",e.icon()),u(2),J(e.title())}}function cr(n,t){if(n&1&&E(0,sr,11,4)(1,lr,4,2,"div",0),n&2){let e=p();T(e.isLarge()?0:1)}}var fe=class fe{constructor(){this.enabled=z(!0);this.size=z("regular");this.isLarge=R(()=>this.size()=="large");this.title=z("title");this.button=z("Register");this.description=z("tba");this.icon=z("home-outline");O({homeOutline:$e,calendarOutline:Le,close:re,closeSharp:je,home:Hn,colorPaletteOutline:Ke,musicalNotesOutline:tt,locationOutline:Ge,linkOutline:We,mailOutline:Xe,createOutline:Ye,phonePortraitOutline:nt,settingsOutline:it,lockOpenOutline:Ze,fileTrayFullOutline:Qe,mapOutline:et,cloudUploadOutline:Je,chevronDownOutline:Ue,chevronUpOutline:He,carOutline:ze})}};fe.\u0275fac=function(e){return new(e||fe)},fe.\u0275cmp=N({type:fe,selectors:[["app-launch-card"]],inputs:{enabled:[1,"enabled"],size:[1,"size"],title:[1,"title"],button:[1,"button"],description:[1,"description"],icon:[1,"icon"]},decls:1,vars:1,consts:[[1,"top-button"],[1,"card"],[1,"center"],["color","light","aria-hidden","true",1,"fab",3,"name"],[1,"cols"],[1,"rows"],["shape","round"],["aria-hidden","true",1,"tile",3,"name"]],template:function(e,i){e&1&&E(0,cr,2,1),e&2&&T(i.enabled()?0:-1)},dependencies:[D,Re,K],styles:[".top-button[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);width:6rem}.top-button[_ngcontent-%COMP%]:hover{cursor:pointer}.tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;margin:0;padding:var(--spacing-md);border-radius:1rem;height:3rem;width:3rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1)}@media (prefers-color-scheme: dark){.tile[_ngcontent-%COMP%]{background-color:#ffffff26}.tile[_ngcontent-%COMP%]:hover{background-color:#ffffff40}}.cols[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:var(--spacing-lg);align-items:center;justify-content:center}p[_ngcontent-%COMP%]{width:200px;font-size:var(--font-size-xl);text-align:center}h2[_ngcontent-%COMP%]{padding-top:var(--spacing-lg);font-size:var(--font-size-xl);color:var(--ion-color-dark)}.rows[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:start;min-height:150px;padding-left:var(--spacing-base);padding-right:var(--spacing-base);justify-content:space-between}ion-button[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-3xl));margin-left:var(--spacing-lg)}.fab[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-3xl));background-color:var(--ion-color-dark);box-shadow:#63636333 0 2px 8px;border-radius:var(--br-full);padding:var(--spacing-lg)}.center[_ngcontent-%COMP%]{display:flex;align-items:center}.card[_ngcontent-%COMP%]{border-radius:1rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1);padding:var(--spacing-md);margin:var(--spacing-lg);height:calc(100% - 5rem);width:calc(100% - 1rem)}.card[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#0000001a}.tile[_ngcontent-%COMP%]:hover{background-color:#0000001a}@media (prefers-color-scheme: dark){.card[_ngcontent-%COMP%]{border:2px solid rgba(255,255,255,.1)}.card[_ngcontent-%COMP%]:hover{background-color:#ffffff0d}}ion-icon[_ngcontent-%COMP%]{font-size:var(--font-size-4xl);color:var(--ion-color-dark)}ion-label[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-dark);text-align:center}"]});var _t=fe;var dr=(n,t)=>t.title;function ur(n,t){if(n&1){let e=F();c(0,"ion-button",3),h("click",function(){C(e);let o=p();return v(o.backToTopics())}),b(1,"ion-icon",6),d()}}function pr(n,t){if(n&1&&(c(0,"ion-select-option",13),P(1),d()),n&2){let e=t.$implicit;f("value",e),u(),J(e)}}function fr(n,t){if(n&1){let e=F();c(0,"ion-select",12),fn("ngModelChange",function(o){C(e);let r=p(2);return pn(r.selectedRole,o)||(r.selectedRole=o),v(o)}),c(1,"ion-select-option",13),P(2,"All"),d(),ne(3,pr,2,2,"ion-select-option",13,Et),d()}if(n&2){let e=p(2);un("ngModel",e.selectedRole),u(),f("value",void 0),u(2),ie(e.allRoles())}}function gr(n,t){if(n&1){let e=F();c(0,"ion-chip",15),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.toggleTag(o))}),P(1),d()}if(n&2){let e=t.$implicit,i=p(3);f("outline",!i.isTagSelected(e)),u(),Se(" ",e," ")}}function mr(n,t){if(n&1&&(c(0,"div",10),ne(1,gr,2,2,"ion-chip",14,Et),d()),n&2){let e=p(2);u(),ie(e.allTags())}}function hr(n,t){if(n&1){let e=F();c(0,"ion-item",17),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.selectTopic(o))}),c(1,"ion-label"),P(2),d()()}if(n&2){let e=t.$implicit;u(2),Se(" ",e.title," ")}}function _r(n,t){if(n&1&&(c(0,"ion-list"),ne(1,hr,3,1,"ion-item",16,dr),d()),n&2){let e=p(2);u(),ie(e.filteredTopics())}}function Cr(n,t){if(n&1&&(c(0,"div",11)(1,"p"),P(2),d()()),n&2){let e=p(2);u(2),Se('No topics found matching "',e.searchQuery(),'"')}}function vr(n,t){if(n&1){let e=F();c(0,"ion-toolbar")(1,"div",7)(2,"ion-searchbar",8),h("ionInput",function(o){C(e);let r=p();return v(r.handleSearch(o))}),d(),E(3,fr,5,2,"ion-select",9),d()(),E(4,mr,3,0,"div",10),E(5,_r,3,0,"ion-list")(6,Cr,3,1,"div",11)}if(n&2){let e=p();u(2),f("debounce",600),u(),T(e.isAdmin()?3:-1),u(),T(e.allTags().length>0?4:-1),u(),T(e.filteredTopics().length>0?5:6)}}function wr(n,t){var e;if(n&1&&b(0,"iframe",5),n&2){let i,o=p();f("frameBorder",0)("src",o.getSafeUrl((e=(i=o.currentTopic())==null?null:i.html)!=null?e:""),nn)}}var ge=class ge{constructor(){this.modalController=A(qe);this.sanitizer=A(Cn);this.api=A(oe);this.topics=V([]);this.searchQuery=V("");this.selectedTags=V(new Set);this.selectedRole=V(void 0);this.currentTopic=V(void 0);this.showingTopic=R(()=>this.currentTopic()!==void 0);this.isAdmin=R(()=>this.api.getAccessInfo(void 0).hasAdmin);this.allTags=R(()=>{let t=new Set;return this.topics().forEach(e=>{var i;(i=e.tags)==null||i.forEach(o=>t.add(o))}),Array.from(t).sort()});this.allRoles=R(()=>{let t=new Set;return this.topics().forEach(e=>{e.roles.forEach(i=>t.add(i))}),Array.from(t).sort()});this.filteredTopics=R(()=>{let t=this.searchQuery().toLowerCase(),e=this.selectedTags(),i=this.selectedRole(),o=this.api.getAccessInfo(void 0);return this.topics().filter(a=>{var M,_;let s=a.title.toLowerCase().includes(t),l=e.size===0||((_=(M=a.tags)==null?void 0:M.some(I=>e.has(I)))!=null?_:!1),g=!i||a.roles.includes(i),m=a.roles.some(I=>I==="admin"?o.hasAdmin:I==="camp"?o.hasCamps:I==="artist"?o.hasArt:I==="music"?o.hasMusic:!1);return s&&l&&g&&m}).sort((a,s)=>a.title.localeCompare(s.title))});O({arrowBack:Ln,close:re}),this.loadTopics()}loadTopics(){return k(this,null,function*(){try{let e=yield(yield fetch("assets/faq.json")).json();this.topics.set(e),this.topics.set(this.topics().sort((i,o)=>i.title.localeCompare(o.title)))}catch(t){console.error("Error loading FAQ topics:",t),this.topics.set([])}})}selectTopic(t){this.currentTopic.set(t)}backToTopics(){this.currentTopic.set(void 0),this.searchQuery.set("")}clearRoleFilter(){this.selectedRole.set(void 0)}toggleTag(t){this.selectedTags().has(t)?this.selectedTags.set(new Set):this.selectedTags.set(new Set([t]))}isTagSelected(t){return this.selectedTags().has(t)}handleSearch(t){return k(this,null,function*(){let e=t.target.value.toLowerCase();this.searchQuery.set(e)})}dismiss(){return k(this,null,function*(){yield this.modalController.dismiss()})}getSafeUrl(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)}};ge.\u0275fac=function(e){return new(e||ge)},ge.\u0275cmp=N({type:ge,selectors:[["app-faq-dialog"]],decls:12,vars:3,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click"],["name","close"],[1,"topic-content",3,"frameBorder","src"],["name","arrow-back"],[2,"display","flex"],["mode","ios","show-clear-button","always","placeholder","Search topics...",1,"searchbar",3,"ionInput","debounce"],["interface","popover",3,"ngModel"],[1,"tag-chips"],[1,"no-results"],["interface","popover",3,"ngModelChange","ngModel"],[3,"value"],[3,"outline"],[3,"click","outline"],["button",""],["button","",3,"click"]],template:function(e,i){if(e&1&&(c(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),E(3,ur,2,0,"ion-button"),d(),c(4,"ion-title"),P(5),d(),c(6,"ion-buttons",2)(7,"ion-button",3),h("click",function(){return i.dismiss()}),b(8,"ion-icon",4),d()()()(),c(9,"ion-content"),E(10,vr,7,4)(11,wr,1,2,"iframe",5),d()),e&2){let o;u(3),T(i.showingTopic()?3:-1),u(2),J(i.showingTopic()?(o=i.currentTopic())==null?null:o.title:"Tutorials"),u(5),T(i.showingTopic()?11:10)}},dependencies:[Be,Oe,De,Ae,Fe,K,D,kn,Pn,Re,Vn,Sn,Bn,Fn,ke,xn,yn,Ce],styles:[".faq-search[_ngcontent-%COMP%]{padding:var(--spacing-lg);border-bottom:1px solid var(--ion-border-color)}.search-input[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-base) var(--spacing-md);border:1px solid var(--ion-border-color);border-radius:var(--br-md);font-size:var(--font-size-base);font-family:inherit}.search-input[_ngcontent-%COMP%]::placeholder{color:var(--ion-placeholder-color)}.tag-chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:0 var(--spacing-lg) 0 var(--spacing-lg)}ion-chip[_ngcontent-%COMP%]{margin:var(--spacing-sm) var(--spacing-sm) 0 0;border:2px solid var(--ion-color-light-shade)}ion-select[_ngcontent-%COMP%]{width:20px;margin-top:var(--spacing-base);margin-right:var(--spacing-base)}ion-select[_ngcontent-%COMP%]::part(text){font-size:var(--font-size-base)}.no-results[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--ion-text-color-secondary);text-align:center;padding:var(--spacing-1xl)}.topic-content[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;padding:var(--spacing-lg);background-color:var(--ion-color-light)}.topic-content[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{width:100%;height:100%}"]});var Ct=ge;var me=class me{constructor(){this.modalController=A(qe);O({helpSharp:Un})}openFaq(){return k(this,null,function*(){yield(yield this.modalController.create({component:Ct,cssClass:"faq-modal"})).present()})}};me.\u0275fac=function(e){return new(e||me)},me.\u0275cmp=N({type:me,selectors:[["app-faq-fab"]],decls:4,vars:0,consts:[["position","aside","text","How To Tutorials"],["vertical","bottom","horizontal","start","slot","fixed"],[3,"click"],["name","help-sharp"]],template:function(e,i){e&1&&(c(0,"app-tooltip",0)(1,"ion-fab",1)(2,"ion-fab-button",2),h("click",function(){return i.openFaq()}),b(3,"ion-icon",3),d()()())},dependencies:[Ne,ot,Ve,D],styles:[".faq-modal{--width: 100%;--max-width: 100%;--height: auto}@media (min-width: 768px){ .faq-modal{--width: 80%;--max-width: 80%;--height: 80%;--max-height: 80%}}@media (min-width: 1024px){ .faq-modal{--width: 70%;--max-width: 70%;--height: 80%;--max-height: 80%}}"]});var vt=me;var he=class he{constructor(){O({chatboxEllipses:zn})}};he.\u0275fac=function(e){return new(e||he)},he.\u0275cmp=N({type:he,selectors:[["app-help-fab"]],decls:4,vars:0,consts:[["vertical","bottom","horizontal","end","slot","fixed"],["text","Get help from a human","position","left-aside"],["routerLink","/help","routerDirection","forward"],["name","chatbox-ellipses"]],template:function(e,i){e&1&&(c(0,"ion-fab",0)(1,"app-tooltip",1)(2,"ion-fab-button",2),b(3,"ion-icon",3),d()()())},dependencies:[Ne,Ve,D,Pe,ot],encapsulation:2});var wt=he;var xr=n=>({title:"Print Preview",method:n,icon:"print-outline"}),yr=n=>[n],br=()=>[],Er=(n,t)=>t.id;function Tr(n,t){if(n&1&&b(0,"app-side",4),n&2){let e=p();f("buttons",e.access!=null&&e.access.hasAdmin?Tt(3,yr,Tt(1,xr,e.print())):mn(5,br))}}function Mr(n,t){if(n&1){let e=F();c(0,"ion-button",10),h("click",function(){C(e);let o=p();return v(o.close())}),b(1,"ion-icon",11),d()}}function Ir(n,t){n&1&&b(0,"app-spinner")}function Sr(n,t){if(n&1){let e=F();c(0,"app-preview-qr",31),h("exit",function(){C(e);let o=p(2);return v(o.showPreview=!1)}),d()}if(n&2){let e=p(2);f("vanity",e.festival.vanity)}}function Pr(n,t){if(n&1){let e=F();c(0,"app-launch-card",39),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.link(r.festival,"/events/new?camp="+o.id))}),d()}if(n&2){let e=t.$implicit,i=p(3);f("description",gn("Register an event at ",e.name,"."))("enabled",i.festival.event_registration&&i.festival.event_editing)("title",e.name)}}function kr(n,t){if(n&1&&(c(0,"div",38),b(1,"p",40),d()),n&2){let e=p(3);u(),f("innerHTML",e.message(),tn)}}function Fr(n,t){if(n&1){let e=F();c(0,"ion-card-content")(1,"div",14)(2,"app-launch-card",32),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/camp/new"))}),d(),c(3,"app-launch-card",33),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/art/new?type=Art"))}),d(),c(4,"app-launch-card",34),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/music/new"))}),d(),c(5,"app-launch-card",35),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/art/new?type=Mutant%20Vehicle"))}),d(),c(6,"app-launch-card",36),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/events/new?location=other"))}),d(),ne(7,Pr,1,4,"app-launch-card",37,Er),d(),E(9,kr,2,1,"div",38),d()}if(n&2){let e=p(2);u(2),f("enabled",e.festival.camp_registration&&!(e.access!=null&&e.access.hasCamps)&&!e.mutantOnly),u(),f("enabled",e.festival.camp_registration&&e.festival.art_editing&&!(e.access!=null&&e.access.hasArt)&&!e.mutantOnly),u(),f("enabled",e.festival.music_registration),u(),f("enabled",e.mutantOnly||e.festival.camp_registration&&e.festival.art_editing&&!(e.access!=null&&e.access.hasArt)),u(),f("enabled",e.festival.event_registration&&e.festival.event_editing),u(),ie(e.publicCamps()),u(2),T(e.message()?9:-1)}}function Ar(n,t){if(n&1){let e=F();c(0,"div",30)(1,"ion-button",41),h("click",function(){C(e);let o=p(2);return v(o.signOut())}),P(2," Sign Out "),d()()}}function Nr(n,t){if(n&1){let e=F();c(0,"div",6)(1,"ion-modal",12),cn(2,Sr,1,1,"ng-template"),d(),c(3,"ion-card"),b(4,"app-festival-header",13),c(5,"ion-card-content")(6,"div",14)(7,"app-launch-card",15),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/camps"))}),d(),c(8,"app-launch-card",16),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/events"))}),d(),c(9,"app-launch-card",17),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/art"))}),d(),c(10,"app-launch-card",18),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/music"))}),d(),c(11,"app-launch-card",19),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/music"))}),d(),c(12,"app-launch-card",20),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/pins"))}),d(),c(13,"app-launch-card",21),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/links"))}),d(),c(14,"app-launch-card",22),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/message"))}),d(),c(15,"app-launch-card",23),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/message-triggers"))}),d(),c(16,"app-launch-card",24),h("click",function(){C(e);let o=p();return v(o._print())}),d(),c(17,"app-launch-card",25),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/edit"))}),d(),c(18,"app-launch-card",26),h("click",function(){C(e);let o=p();return v(o.showPreview=!o.showPreview)}),d(),c(19,"app-launch-card",27),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/settings"))}),d(),c(20,"app-launch-card",28),h("click",function(){C(e);let o=p();return v(o.approve(o.festival))}),d(),c(21,"app-launch-card",29),h("click",function(){C(e);let o=p();return v(o.archive(o.festival))}),d()()(),E(22,Fr,10,6,"ion-card-content"),d(),E(23,Ar,3,0,"div",30),d()}if(n&2){let e=p();u(),f("isOpen",e.showPreview),u(3),f("festival",e.festival),u(3),f("size",e.cardSize())("enabled",e.access==null?null:e.access.hasCamps),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)||(e.access==null?null:e.access.hasEvents))("size",e.cardSize()),u(),f("enabled",e.access==null?null:e.access.hasArt)("size",e.cardSize())("title",e.mutantOnly?"Mutant Vehicle":"Art")("description",e.mutantOnly?"Edit my Mutant Vehicle details":"My registered art piece or mutant vehicle."),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",!(e.access!=null&&e.access.hasAdmin)&&(e.access==null?null:e.access.hasMusic))("size",e.cardSize()),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&(e.access==null?null:e.access.approver)),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.archived),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.approved&&(e.access==null?null:e.access.approver)&&!e.festival.archived),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.archived&&(e.access==null?null:e.access.approver)),u(),T(e.showRegistration()?22:-1),u(),T(e.showSignOut?23:-1)}}function Vr(n,t){if(n&1){let e=F();c(0,"app-footer",42),h("press",function(){C(e);let o=p();return v(o.link(o.festival,"/unpublished"))}),d()}if(n&2){let e=p();f("badge",e.pending.toString())}}function Br(n,t){if(n&1){let e=F();c(0,"app-footer",43),h("press",function(){C(e);let o=p();return v(o.close())}),d()}n&2&&f("width","240px")}function Rr(n,t){}function Dr(n,t){n&1&&b(0,"app-help-fab")(1,"app-faq-fab")}var _e=class _e{constructor(){this.api=A(oe);this.router=A(vn);this.pending=0;this.isNative=qn.isNativePlatform();this.busy=V(!1);this.showRegistration=V(!1);this.cardSize=R(()=>this.showRegistration()?"large":"regular");this.message=V(void 0);this.publicCamps=V([]);this.showPreview=!1;this.openingBurn=!1;this.showSignOut=!1;this.mutantOnly=!1;this.imageUrl="";this.alert=A(Yn);this.store=A(On);O({homeOutline:$e,calendarOutline:Le,close:re,closeSharp:je,printOutline:jn,colorPaletteOutline:Ke,musicalNotesOutline:tt,locationOutline:Ge,linkOutline:We,mailOutline:Xe,createOutline:Ye,phonePortraitOutline:nt,settingsOutline:it,lockOpenOutline:Ze,fileTrayFullOutline:Qe,mapOutline:et,cloudUploadOutline:Je,chevronDownOutline:Ue,chevronUpOutline:He,carOutline:ze})}close(){return k(this,null,function*(){document.location.href="index.html"})}ionViewWillEnter(){return k(this,null,function*(){var e,i;let t=sessionStorage.openburn;Rn(t)||(sessionStorage.removeItem("openburn"),this.vanity=t,this.openingBurn=!0),(e=this.vanity)!=null&&e.endsWith(".html")&&(console.error(`Unexpected vanity ${this.vanity}`),this.vanity=this.store.get("festivalVanity")),yield this.update(),this.festival&&!this.showRegistration()&&((i=this.access)==null?void 0:i.camps.length)==1&&this.api.firstUse&&(this.api.firstUse=!1,this.link(this.festival,"/camps"))})}ionViewWillLeave(){document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur()}update(){return k(this,null,function*(){var t,e,i,o,r;if(this.vanity){this.festival=yield this.api.getFestivalByVanity(this.vanity,!0,!1),this.pending=0,this.access=this.api.getAccessInfo((t=this.festival)==null?void 0:t.id),(i=(e=this.festival)==null?void 0:e.music_types)!=null&&i.includes("mutantvehicle")&&(this.access.hasCamps=!1,this.mutantOnly=!0),this.showRegistration.set(!this.access.hasFestivals&&!this.access.approver),this.imageUrl=(r=this.api.imageURL((o=this.festival)==null?void 0:o.imageUrl))!=null?r:"";let a=this.festival.pendingCount;if(this.festival&&a&&(this.pending=parseInt(a)),!this.festival)return;this.festival.event_registration&&this.festival.active&&(this.access.isEventRegistrationOpen=!0);let s=yield this.api.camps({cached:!0},!0);this.publicCamps.set(s.filter(l=>l.publicEvents)),this.api.setFestival(this.festival),this.setMessage()}})}setMessage(){var t,e,i,o,r;if((t=this.festival)!=null&&t.active&&((e=this.access)==null?void 0:e.hasAdmin)===!1){let a=[],s="";this.festival.camp_registration||a.push("Theme Camp"),this.festival.event_editing||a.push("Event"),this.festival.art_editing||a.push("Art"),a.length>0&&(s+=`
New ${a.join(" & ")} registration is closed.
`),!this.festival.event_registration&&this.festival.event_editing&&!this.access.hasEvents&&(s+=" You can contact a theme camp or art lead to register an event on your behalf.
"),!this.access.hasArt&&!this.access.hasEvents&&!this.access.hasCamps&&!this.access.hasMusic&&(s+='
Want access to a theme camp, art or mutant vehicle? Please contact support@dust.events or DM us and provide your camp/art name to request access.',this.showSignOut=!0),s!=""&&this.message.set(s);return}if(((i=this.festival)==null?void 0:i.active)==!1&&((o=this.access)==null?void 0:o.hasAdmin)===!1){this.message.set(`Note: ${(r=this.festival)==null?void 0:r.name} is not published in dust yet.`);return}this.message.set(void 0)}signOut(){this.api.signOut(),this.close()}link(t,e,i){if(i===!1){this.api.sendMessage("This option is not available.");return}if(t.archived&&!["/links","/edit"].includes(e)){this.api.sendMessage("Archived events do not have access to this information.");return}this.api.setFestival(t),this.router.navigateByUrl(this.vanity+e)}approve(t){return k(this,null,function*(){yield this.api.approve(t),this.api.clearCache(),yield this.update()})}print(){return()=>k(this,null,function*(){this._print()})}_print(){this.api.isAdmin(this.api.festivalId)?this.router.navigateByUrl(`${this.vanity}/print`):this.api.sendMessage("This feature is not available to you.")}nice(t){return new Date(t).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})}niceTime(t){return new Date(t).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})+" "+new Date(t).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}archive(t){return k(this,null,function*(){if(Dn(t.start_time)>0){yield Mt(this.alert,"This event has not started so it cannot be archived");return}(yield Kn(this.alert,"Are you sure you want to archive this burn?","Archive"))&&(this.busy.set(!0),this.api.setFestival(t),yield this.api.archive(t),this.api.clearCache(),this.busy.set(!1),yield Mt(this.alert,`${t.name} has been archived and a copy has been created`),this.router.navigateByUrl("/all"))})}};_e.\u0275fac=function(e){return new(e||_e)},_e.\u0275cmp=N({type:_e,selectors:[["app-festival-view"]],inputs:{vanity:"vanity"},decls:17,vars:7,consts:[["color","primary"],["slot","start"],[3,"routerLink"],["slot","end"],[3,"buttons"],[3,"fullscreen"],[1,"border"],[2,"height","100px"],["title","publish",1,"footer-wide",3,"badge"],["title","Back to dust",1,"footer-wide",3,"width"],[3,"click"],["size","small","name","close",1,"close"],[3,"isOpen"],[3,"festival"],[1,"container"],["title","Camps","description","View and manage my theme camp / music.","icon","home-outline","button","",3,"click","size","enabled"],["title","Events","icon","calendar-outline","description","Events at my theme camp / art piece.","button","",3,"click","enabled","size"],["icon","color-palette-outline","button","",3,"click","enabled","size","title","description"],["title","Music","icon","musical-notes-outline",3,"click","enabled"],["title","Music","description","DJ Sets / Parties I manage","icon","musical-notes-outline","button","",3,"click","enabled","size"],["title","Map","icon","location-outline",3,"click","enabled"],["title","Links","icon","link-outline",3,"click","enabled"],["title","Notify","icon","mail-outline",3,"click","enabled"],["title","Messages","icon","mail-outline",3,"click","enabled"],["title","Print","icon","print-outline",3,"click","enabled"],["title","Edit","icon","create-outline",3,"click","enabled"],["title","Preview","icon","phone-portrait-outline",3,"click","enabled"],["title","Settings","icon","settings-outline",3,"click","enabled"],["title","Approve","icon","lock-open-outline",3,"click","enabled"],["title","Archive","icon","file-tray-full-outline",3,"click","enabled"],[1,"center"],[3,"exit","vanity"],["size","large","title","Theme Camp","description","Registration for Theme camps is open.","icon","home","button","Register Camp",3,"click","enabled"],["size","large","title","Art","icon","color-palette-outline","description","Register your art piece.","button","Register Art",3,"click","enabled"],["size","large","title","Music","icon","musical-notes-outline","description","Register your party / DJ Set list / Live Music.","button","Register Music",3,"click","enabled"],["size","large","title","Mutant Vehicle","icon","car-outline","description","Register your mutant vehicle or art car.","button","Register Car",3,"click","enabled"],["size","large","title","Open Camping Event","icon","calendar-outline","description","Register an event that is not located at a camp (describing the location).","button","Register Event",3,"click","enabled"],["size","large","icon","calendar-outline","button","Register Event",3,"enabled","title","description"],[1,"row"],["size","large","icon","calendar-outline","button","Register Event",3,"click","enabled","title","description"],[1,"row-center",3,"innerHTML"],["shape","round","fill","outline","color","primary","mode","md",3,"click"],["title","publish",1,"footer-wide",3,"press","badge"],["title","Back to dust",1,"footer-wide",3,"press","width"]],template:function(e,i){e&1&&(c(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),b(3,"ion-back-button"),d(),c(4,"ion-title",2),P(5,"Home"),d(),c(6,"ion-buttons",3),E(7,Tr,1,6,"app-side",4)(8,Mr,2,0,"ion-button"),d()()(),c(9,"ion-content",5),E(10,Ir,1,0,"app-spinner"),E(11,Nr,24,25,"div",6),b(12,"div",7),E(13,Vr,1,1,"app-footer",8)(14,Br,1,1,"app-footer",9),d(),E(15,Rr,0,0)(16,Dr,2,0)),e&2&&(u(4),f("routerLink","/all"),u(3),T(i.isNative?8:7),u(2),f("fullscreen",!0),u(),T(i.busy()?10:-1),u(),T(i.festival&&!i.busy()?11:-1),u(2),T(i.access!=null&&i.access.hasAdmin&&i.pending>0&&i.festival?13:i.isNative?14:-1),u(2),T(i.access!=null&&i.access.hasAdmin&&i.pending>0?15:16))},dependencies:[Tn,ke,Wn,wn,Pe,Be,Oe,Fe,En,De,Ae,Mn,In,D,Jn,K,Qn,$n,ht,_t,vt,wt],styles:["ion-title[_ngcontent-%COMP%]{cursor:pointer}.container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:center;max-width:600px;margin-left:auto;margin-right:auto}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;gap:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.row[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{width:200px}.row[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}h1[_ngcontent-%COMP%]{text-align:center;padding-bottom:var(--spacing-lg)}.end[_ngcontent-%COMP%]{float:right}p[_ngcontent-%COMP%]{font-size:var(--font-size-base);padding-left:10%;padding-right:10%}@media (max-width: 500px){.row[_ngcontent-%COMP%]{flex-direction:column;align-items:center;gap:0;padding-bottom:var(--spacing-1xl);padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl);text-align:center}p[_ngcontent-%COMP%]{padding-left:unset;padding-right:unset}}ion-text[_ngcontent-%COMP%]{align-self:center}a[_ngcontent-%COMP%]{text-decoration:none;font-weight:700}.small-icon[_ngcontent-%COMP%]{font-size:var(--font-size-2xl);color:var(--ion-color-primary)}.disabled[_ngcontent-%COMP%]{opacity:.5}.close[_ngcontent-%COMP%]{color:#fff!important}.badge[_ngcontent-%COMP%]{font-weight:700;position:absolute;font-size:var(--font-size-2xl)}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl)}.img[_ngcontent-%COMP%]{width:100%;height:100px;display:flex;justify-content:center}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl);--app-object-fit: contain}app-footer[_ngcontent-%COMP%]{--footer-width: 120px}"]});var io=_e;export{io as FestivalViewPage}; diff --git a/.admin-app/chunk-DUYAUKPA.js b/.admin-app/chunk-J6QP2YBJ.js similarity index 92% rename from .admin-app/chunk-DUYAUKPA.js rename to .admin-app/chunk-J6QP2YBJ.js index eff52c06..655e8928 100644 --- a/.admin-app/chunk-DUYAUKPA.js +++ b/.admin-app/chunk-J6QP2YBJ.js @@ -1 +1 @@ -import{b as D}from"./chunk-YLPHNW7F.js";import{A as O,F as T,K as P,a as S,n as b}from"./chunk-OQVFSD37.js";import{l as w,p as E}from"./chunk-FDEJMFAU.js";import{h as _}from"./chunk-LNJ3S2LQ.js";var f=class f{constructor(){this.api=E(P)}exportEventsToCSV(d,l,o,a){return _(this,null,function*(){var h,v,t,s;let m=[],u=yield this.api.camps({cached:!1}),r=yield this.api.art({cached:!1});for(let n of l){let i="",p=JSON.parse(n.occurrence_set);if(n.hosted_by_camp!==null){let e=u.find(c=>c.id==n.hosted_by_camp);i=e?e.name:""}else if(n.located_at_art!==null){let e=r.find(c=>c.id==n.located_at_art);i=(h=e==null?void 0:e.name)!=null?h:""}else i=(v=n.other_location)!=null?v:"";for(let e of p){let c=new Date(e.start_time),y=new Date(e.end_time),N=(t=S(c,y,void 0,o))==null?void 0:t.long,U=c.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"}),x=(s=S(c,y,void 0,o))==null?void 0:s.short,L=O(c,o),$=O(y,o);m.push({id:n.id,title:n.title,description:n.description,type:n.event_type,location:i,startTime:e.start_time,endTime:e.end_time,time:N,shortDay:U,shortTime:x,start24:L,end24:$})}}m.sort((n,i)=>new Date(n.startTime).getTime()-new Date(i.startTime).getTime());let g=T(d.toLowerCase()," ","-");D(`${g}-${a}.csv`,m)})}getPrintableEvents(d,l,o,a){return _(this,null,function*(){var h,v;let m=yield this.api.camps({cached:!1}),u=a?a.split(","):[],r=[];for(let t of l){let s=JSON.parse(t.occurrence_set);for(let n of s){let i=JSON.parse(JSON.stringify(t));i.occurrence_set=JSON.stringify([n]);let p=i.event_type.split(","),e=!1;for(let c of u)p.includes(c)&&(e=!0);e||r.push(i)}}for(let t of r){let s=JSON.parse(t.occurrence_set),n=b(s[0].start_time),i=b(s[0].end_time),p=this.api.currentTimeZone();t.image=void 0;let e=m.find(c=>c.id==t.hosted_by_camp);t.imageUrl?t.image=this.api.imageURL(t.imageUrl):e&&e.imageUrl&&(t.image=this.api.imageURL(e.imageUrl)),t.campUrl=e?`https://${d}.dust.events/camp/u-${e.id}`:"",t.timeString=(h=S(n,i,void 0,p))==null?void 0:h.long}r.sort((t,s)=>{let n=JSON.parse(t.occurrence_set),i=JSON.parse(s.occurrence_set),p=new Date(n[0].start_time),e=new Date(i[0].start_time);return p-e});let g;if(!o)for(let t of r){let s=(v=t.timeString)==null?void 0:v.split(" ");s&&s[0]!==g&&(g=s[0],t.heading=g)}return o?r.filter(t=>{var s;return(s=t.timeString)==null?void 0:s.startsWith(o+" ")}):r})}getEventDays(d,l){return _(this,null,function*(){var m;let o=yield this.getPrintableEvents(d,l),a=[];for(let u of o){let r=(m=u.timeString)==null?void 0:m.split(" ");r&&r[0]&&!a.includes(r[0])&&a.push(r[0])}return a})}};f.\u0275fac=function(l){return new(l||f)},f.\u0275prov=w({token:f,factory:f.\u0275fac,providedIn:"root"});var J=f;export{J as a}; +import{b as D}from"./chunk-62GZOW6G.js";import{A as O,F as T,K as P,a as S,n as b}from"./chunk-TCALQ33I.js";import{l as w,p as E}from"./chunk-LVL3PYF7.js";import{h as _}from"./chunk-LNJ3S2LQ.js";var f=class f{constructor(){this.api=E(P)}exportEventsToCSV(d,l,o,a){return _(this,null,function*(){var h,v,t,s;let m=[],u=yield this.api.camps({cached:!1}),r=yield this.api.art({cached:!1});for(let n of l){let i="",p=JSON.parse(n.occurrence_set);if(n.hosted_by_camp!==null){let e=u.find(c=>c.id==n.hosted_by_camp);i=e?e.name:""}else if(n.located_at_art!==null){let e=r.find(c=>c.id==n.located_at_art);i=(h=e==null?void 0:e.name)!=null?h:""}else i=(v=n.other_location)!=null?v:"";for(let e of p){let c=new Date(e.start_time),y=new Date(e.end_time),N=(t=S(c,y,void 0,o))==null?void 0:t.long,U=c.toLocaleDateString([],{weekday:"short",month:"short",day:"numeric"}),x=(s=S(c,y,void 0,o))==null?void 0:s.short,L=O(c,o),$=O(y,o);m.push({id:n.id,title:n.title,description:n.description,type:n.event_type,location:i,startTime:e.start_time,endTime:e.end_time,time:N,shortDay:U,shortTime:x,start24:L,end24:$})}}m.sort((n,i)=>new Date(n.startTime).getTime()-new Date(i.startTime).getTime());let g=T(d.toLowerCase()," ","-");D(`${g}-${a}.csv`,m)})}getPrintableEvents(d,l,o,a){return _(this,null,function*(){var h,v;let m=yield this.api.camps({cached:!1}),u=a?a.split(","):[],r=[];for(let t of l){let s=JSON.parse(t.occurrence_set);for(let n of s){let i=JSON.parse(JSON.stringify(t));i.occurrence_set=JSON.stringify([n]);let p=i.event_type.split(","),e=!1;for(let c of u)p.includes(c)&&(e=!0);e||r.push(i)}}for(let t of r){let s=JSON.parse(t.occurrence_set),n=b(s[0].start_time),i=b(s[0].end_time),p=this.api.currentTimeZone();t.image=void 0;let e=m.find(c=>c.id==t.hosted_by_camp);t.imageUrl?t.image=this.api.imageURL(t.imageUrl):e&&e.imageUrl&&(t.image=this.api.imageURL(e.imageUrl)),t.campUrl=e?`https://${d}.dust.events/camp/u-${e.id}`:"",t.timeString=(h=S(n,i,void 0,p))==null?void 0:h.long}r.sort((t,s)=>{let n=JSON.parse(t.occurrence_set),i=JSON.parse(s.occurrence_set),p=new Date(n[0].start_time),e=new Date(i[0].start_time);return p-e});let g;if(!o)for(let t of r){let s=(v=t.timeString)==null?void 0:v.split(" ");s&&s[0]!==g&&(g=s[0],t.heading=g)}return o?r.filter(t=>{var s;return(s=t.timeString)==null?void 0:s.startsWith(o+" ")}):r})}getEventDays(d,l){return _(this,null,function*(){var m;let o=yield this.getPrintableEvents(d,l),a=[];for(let u of o){let r=(m=u.timeString)==null?void 0:m.split(" ");r&&r[0]&&!a.includes(r[0])&&a.push(r[0])}return a})}};f.\u0275fac=function(l){return new(l||f)},f.\u0275prov=w({token:f,factory:f.\u0275fac,providedIn:"root"});var J=f;export{J as a}; diff --git a/.admin-app/chunk-K3RLIGGM.js b/.admin-app/chunk-K3RLIGGM.js deleted file mode 100644 index 0f2fa4ac..00000000 --- a/.admin-app/chunk-K3RLIGGM.js +++ /dev/null @@ -1 +0,0 @@ -import{a as ve}from"./chunk-VVJA7NBV.js";import{a as Ce}from"./chunk-Z5HZYXFK.js";import{a as ge}from"./chunk-KCPLCCSF.js";import{a as he}from"./chunk-SVNDKX5K.js";import{a as ue}from"./chunk-WRLAXAJB.js";import{a as fe}from"./chunk-5B2MUMUK.js";import"./chunk-LIWDDRYP.js";import{H as pe,K as _e,e as M,m as me,o as ce,u as V}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as W,Aa as g,Ba as P,Bc as ie,Db as R,E as k,Ec as ne,Fa as f,Fc as ae,Ga as p,H as c,Ha as u,Kc as se,Lc as oe,Nc as le,P as F,Sc as re,T,Tc as de,Ua as O,Wb as Z,X as y,Xb as A,Y as x,Za as N,_ as I,aa as E,ba as _,ca as a,cc as Q,da as s,dc as Y,ea as v,ec as j,fc as H,ja as b,la as h,lc as J,mc as K,na as l,p as S,ra as L,rc as X,s as r,sa as B,sc as $,t as d,ta as D,tb as q,uc as ee,vc as te,wa as z,wb as G,za as U}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as w}from"./chunk-LNJ3S2LQ.js";var xe=["gps"];function be(m,o){if(m&1&&v(0,"img",12),m&2){let t=l(2);_("src",t.imageUrl,k)}}function Me(m,o){m&1&&(a(0,"p"),g(1,"Click to choose an image"),s())}function Se(m,o){if(m&1){let t=b();a(0,"ion-datetime",29),u("ngModelChange",function(e){r(t);let i=l(2);return p(i.festival.start_time,e)||(i.festival.start_time=e),d(e)}),h("ionChange",function(){r(t);let e=l(2);return d(e.startChanged())}),s()}if(m&2){let t=l(2);_("showDefaultButtons",!0),f("ngModel",t.festival.start_time)}}function Te(m,o){if(m&1){let t=b();a(0,"ion-datetime",30),u("ngModelChange",function(e){r(t);let i=l(2);return p(i.festival.end_time,e)||(i.festival.end_time=e),d(e)}),h("ionChange",function(){r(t);let e=l(2);return d(e.endChanged())}),s()}if(m&2){let t=l(2);_("showDefaultButtons",!0),f("ngModel",t.festival.end_time)}}function Pe(m,o){if(m&1&&(a(0,"ion-select-option",22),g(1),s()),m&2){let t=o.$implicit;_("value",t),c(),P(t)}}function Ve(m,o){if(m&1){let t=b();a(0,"ion-button",31),h("click",function(){r(t);let e=l(2);return d(e.delete())}),g(1,"Delete"),s()}m&2&&_("disabled",!0)}function ke(m,o){if(m&1){let t=b();a(0,"div",7)(1,"ion-card")(2,"ion-card-content")(3,"ion-list",8)(4,"ion-item")(5,"ion-input",9),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.name,e)||(i.festival.name=e),d(e)}),s()(),a(6,"ion-item")(7,"ion-textarea",10),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.description,e)||(i.festival.description=e),d(e)}),s()(),a(8,"div",11),h("click",function(){r(t);let e=z(51);return d(e.click())}),y(9,be,1,1,"img",12),y(10,Me,2,0,"p"),s(),a(11,"ion-item")(12,"app-emails",13),u("emailsChange",function(e){r(t);let i=l();return p(i.festival.admins,e)||(i.festival.admins=e),d(e)}),s()(),a(13,"ion-item")(14,"ion-input",14),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.region,e)||(i.festival.region=e),d(e)}),s()(),a(15,"app-link-input",15),u("modelChange",function(e){r(t);let i=l();return p(i.festival.website,e)||(i.festival.website=e),d(e)}),h("iconClick",function(){r(t);let e=l();return d(e.openWebsite())}),s(),a(16,"ion-item")(17,"ion-checkbox",16),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.unknown_dates,e)||(i.festival.unknown_dates=e),d(e)}),s(),a(18,"ion-label",17),g(19,"Dates are not known yet"),s()(),a(20,"ion-item")(21,"ion-label"),g(22,"Start"),s(),v(23,"ion-datetime-button",18),s(),a(24,"ion-modal",19),T(25,Se,1,2,"ng-template"),s(),a(26,"ion-item")(27,"ion-label"),g(28,"End"),s(),v(29,"ion-datetime-button",20),s(),a(30,"ion-modal",19),T(31,Te,1,2,"ng-template"),s(),a(32,"ion-item")(33,"ion-select",21),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.timezone,e)||(i.festival.timezone=e),d(e)}),W(34,Pe,2,2,"ion-select-option",22,I),s()(),a(36,"ion-item")(37,"ion-checkbox",16),u("ngModelChange",function(e){r(t);let i=l();return p(i.festival.active,e)||(i.festival.active=e),d(e)}),s(),a(38,"ion-label",17),g(39,"Display in the Dust app"),s()(),a(40,"ion-item")(41,"ion-label",23),h("click",function(){r(t);let e=l();return d(e.openLocation())}),a(42,"app-tooltip",24),g(43," Location "),s()(),a(44,"app-gps",25,0),u("latChange",function(e){r(t);let i=l();return p(i.festival.gpsLat,e)||(i.festival.gpsLat=e),d(e)})("lngChange",function(e){r(t);let i=l();return p(i.festival.gpsLng,e)||(i.festival.gpsLng=e),d(e)}),h("gpsChange",function(e){r(t);let i=l();return d(i.gpsChanged(e))}),s()()(),a(46,"div",26),y(47,Ve,2,1,"ion-button",27),a(48,"ion-button",5),h("click",function(){r(t);let e=l();return d(e.save())}),g(49,"Save"),s()(),a(50,"input",28,1),h("change",function(e){r(t);let i=l();return d(i.onFileSelected(e))}),s()()()()}if(m&2){let t=l();c(5),f("ngModel",t.festival.name),c(2),_("spellcheck",!0)("rows",6)("autoGrow",!0),f("ngModel",t.festival.description),c(),U(t.uploading?"disabled":""),c(),x(t.imageUrl?9:-1),c(),x(t.imageUrl?-1:10),c(2),_("isAdmin",!0)("isOwner",!0)("label","Administrator Emails")("placeholder","Comma delimited list of email addresses"),f("emails",t.festival.admins),c(2),f("ngModel",t.festival.region),c(),f("model",t.festival.website),c(2),f("ngModel",t.festival.unknown_dates),c(7),_("keepContentsMounted",!0),c(6),_("keepContentsMounted",!0),c(3),_("value",t.festival.timezone),f("ngModel",t.festival.timezone),c(),E(t.timezones),c(3),f("ngModel",t.festival.active),c(7),f("lat",t.festival.gpsLat)("lng",t.festival.gpsLng),c(3),x(t.canDelete?47:-1)}}function Fe(m,o){m&1&&v(0,"app-spinner")}var C=class C{constructor(){this.vanity=O();this.busy=!0;this.canDelete=!1;this.uploading=!1;this.endModified=!1;this.timezones=[];this.imageChanged=!1;this.location=S(N);this.api=S(_e);this.festival={name:"",vanity:"",admins:"",contact:"",description:"",mastodon_handle:"",inbox_email:"",region:"",website:"",pin_size_multiplier:1,max_music_types:2,start_time:new Date().toISOString(),end_time:new Date().toISOString(),music_registration:!1,camp_registration:!1,gpsLat:0,gpsLng:0,camp_editing:!1,music_types:"",event_registration:!1,placement_form_art:"",placement_form_camps:"",approved:!1,event_editing:!1,art_editing:!1,archived:!1,map_direction:0,event_types:"",max_event_types:2,pin:void 0,directions:void 0,unknown_dates:!1,placement_form_cars:"",hidden_features:0,volunteeripate_domain:"",volunteeripate_identifier:"",rss_feed:"",theme:null,id:void 0,active:!1,timezone:this.api.currentTimeZone()}}ionViewWillEnter(){return w(this,null,function*(){let o=this.api.festivalId,t=this.vanity();t?yield this.api.setFestivalByVanity(t):o=void 0,this.festival=yield this.api.getFestival(o,{cached:!1}),this.canDelete=!!this.festival.id,this.festival.timezone||(this.festival.timezone=this.api.currentTimeZone()),this.imageUrl=this.api.imageURL(this.festival.imageUrl),this.busy=!1,this.timezones=Intl.supportedValuesOf("timeZone")})}startChanged(){this.endModified||(this.festival.end_time=ce(me(this.festival.start_time),24).toISOString())}endChanged(){this.endModified=!0}delete(){}gpsChanged(o){this.festival.gpsLat=o.lat,this.festival.gpsLng=o.lng}fixUniqueId(){this.festival.id||(this.festival.vanity=this.festival.name.toLowerCase().trim().replace(/\s+/g,"-").replace(/[.,]/g,""))}onFileSelected(o){return w(this,null,function*(){let t=o.target.files[0];if(!t)return;let n={width:0,height:0};if(this.blob=yield ge(t,{quality:90,width:500},n),n.width!==n.height){this.api.sendMessage("The image needs to be square (width and height must be equal)");return}let e=URL.createObjectURL(this.blob);this.imageUrl=e,this.imageChanged=!0})}setTime(o,t){return o.substring(0,10)+t}save(){return w(this,null,function*(){this.festival.start_time=this.setTime(this.festival.start_time,"T00:00:00"),this.festival.end_time=this.setTime(this.festival.end_time,"T23:59:59");let o=new Date(this.festival.start_time+V(this.festival.timezone)),t=new Date(this.festival.end_time+V(this.festival.timezone)),n=Math.round((t-o)/1e3/60/60);if(isNaN(n)){this.api.sendMessage("The start and end time must be set");return}if(n<0){this.api.sendMessage("The end time must be after the start time");return}if(n<24){this.api.sendMessage("The event must be at least 1 day long");return}if(n>720){this.api.sendMessage("The event cannot be longer than 30 days");return}if(this.festival.name.length<4){this.api.sendMessage("The event name must be set");return}let e=new Date().getFullYear();if((this.festival.name.includes(e.toString())||this.festival.name.includes((e+1).toString())||this.festival.name.includes((e-1).toString()))&&!this.festival.archived){this.api.sendMessage("The event name cannot include the year in it");return}if(this.fixUniqueId(),this.festival.vanity.length<4){this.api.sendMessage("The unique identifier must be set");return}if(this.festival.vanity.includes(" ")){this.api.sendMessage("The unique identifier cannot contain spaces");return}if(this.festival.description.length<4){this.api.sendMessage("The event description must be set");return}if(this.festival.timezone||(this.festival.timezone=this.api.currentTimeZone()),this.festival.active){if(M(this.festival.imageUrl)&&M(this.imageUrl)){this.api.sendMessage("You need an image to display the event in the dust app");return}if(this.festival.gpsLat==0||this.festival.gpsLng==0){this.api.sendMessage("You need to set the GPS location to display the event in the dust app");return}if(M(this.festival.region)){this.api.sendMessage("You need to set the region to display the event in the dust app");return}}if(!M(this.festival.website)&&!this.festival.website.startsWith("https://")){this.api.sendMessage("The website must start with https://");return}this.busy=!0;try{let i=yield this.api.addFestival(this.festival);if(i.message&&i.message!=""){this.api.sendMessage(i.message),this.busy=!1;return}else if(i.id&&this.imageChanged){let ye=yield this.api.getFestival(i.id,{cached:!1});this.api.setFestival(ye),yield this.uploadImage(i.id)}this.api.clearCache(),this.busy=!1,this.location.back()}catch(i){console.error(i),this.busy=!1;return}})}uploadImage(o){return w(this,null,function*(){if(this.blob)try{this.uploading=!0,this.festival.imageUrl=yield this.api.setImage(this.blob,o);let t=yield this.api.addFestival(this.festival);t.message&&this.api.sendMessage(t.message),this.imageChanged=!1}finally{this.uploading=!1}})}openLocation(){let o=`https://www.google.com/maps/search/?api=1&query=${this.festival.gpsLat},${this.festival.gpsLng}`;window.open(o,"_blank")}openWebsite(){if(this.festival.website){let o=pe(this.festival.website);window.open(o,"_blank")}}};C.\u0275fac=function(t){return new(t||C)},C.\u0275cmp=F({type:C,selectors:[["app-festival"]],viewQuery:function(t,n){if(t&1&&L(xe,5),t&2){let e;B(e=D())&&(n.gps=e.first)}},inputs:{vanity:[1,"vanity"]},decls:13,vars:3,consts:[["gps",""],["fileUpload",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],["lines","none"],["label","Burn Name","labelPlacement","stacked","placeholder","Name of the burn",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Description","placeholder","Description of the burn",3,"ngModelChange","spellcheck","rows","autoGrow","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],["helperText","",1,"emails",3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["label","Region","labelPlacement","stacked","placeholder","City, State/Country",3,"ngModelChange","ngModel"],["label","Website","placeholder","eg https://myburn.com",3,"modelChange","iconClick","model"],[3,"ngModelChange","ngModel"],[1,"label-padding-left"],["datetime","datetime"],[3,"keepContentsMounted"],["datetime","datetimeEnd"],["label","Timezone","interface","popover","placeholder","Select the timezone of the event",3,"ngModelChange","value","ngModel"],[3,"value"],[2,"width","100%",3,"click"],["position","left","text","This is used for the directions button in the app. Right click in Google Maps to copy lat/long and paste here."],[3,"latChange","lngChange","gpsChange","lat","lng"],[1,"center"],["color","secondary",3,"disabled"],["type","file",1,"file-input",3,"change"],["presentation","date","minuteValues","0,15,30,45","id","datetime",3,"ngModelChange","ionChange","showDefaultButtons","ngModel"],["presentation","date","minuteValues","0,15,30,45","id","datetimeEnd",3,"ngModelChange","ionChange","showDefaultButtons","ngModel"],["color","secondary",3,"click","disabled"]],template:function(t,n){t&1&&(a(0,"ion-header")(1,"ion-toolbar",2)(2,"ion-buttons",3)(3,"ion-buttons",3),v(4,"ion-back-button"),s()(),a(5,"ion-title"),g(6),s(),a(7,"ion-buttons",4)(8,"ion-button",5),h("click",function(){return n.save()}),g(9,"Save"),s()()()(),a(10,"ion-content",6),y(11,ke,52,25,"div",7)(12,Fe,1,0,"app-spinner"),s()),t&2&&(c(6),P(n.vanity()?"Edit Burn":"New Burn"),c(4),_("fullscreen",!0),c(),x(n.busy?12:11))},dependencies:[R,q,G,X,ae,Y,Z,se,ne,J,j,H,te,$,le,de,ee,K,A,oe,ue,re,ie,Q,Ce,fe,he,ve],styles:[".emails[_ngcontent-%COMP%]{width:100%;padding-right:var(--spacing-base)}"]});var we=C;export{we as FestivalPage}; diff --git a/.admin-app/chunk-5B2MUMUK.js b/.admin-app/chunk-K6ROGVP7.js similarity index 87% rename from .admin-app/chunk-5B2MUMUK.js rename to .admin-app/chunk-K6ROGVP7.js index b917112b..e9856845 100644 --- a/.admin-app/chunk-5B2MUMUK.js +++ b/.admin-app/chunk-K6ROGVP7.js @@ -1 +1 @@ -import{Aa as d,Ba as f,Cc as u,H as t,P as p,X as s,Y as l,ca as i,da as o,ea as c,na as m,xc as g}from"./chunk-FDEJMFAU.js";function C(r,a){if(r&1&&(i(0,"ion-note",3),d(1),o(),c(2,"br")),r&2){let e=m();t(),f(e.title)}}var n=class n{constructor(){}};n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=p({type:n,selectors:[["app-spinner"]],inputs:{title:"title"},decls:4,vars:1,consts:[[1,"page-center"],[1,"spin","ion-text-center"],["name","crescent","color","primary"],[1,"ion-padding"]],template:function(e,x){e&1&&(i(0,"div",0)(1,"div",1),s(2,C,3,1),c(3,"ion-spinner",2),o()()),e&2&&(t(2),l(x.title?2:-1))},dependencies:[g,u],styles:[".page-center[_ngcontent-%COMP%]{position:fixed;width:100vw;height:100vh}.spin[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;flex-direction:column;width:100vw;height:100vh}ion-note[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-5xl));padding:var(--spacing-lg)}ion-spinner[_ngcontent-%COMP%]{transform:scale(3)}"]});var v=n;export{v as a}; +import{Ba as d,Ca as f,Dc as u,H as t,P as p,Y as s,Z as l,da as i,ea as o,fa as c,oa as m,yc as g}from"./chunk-LVL3PYF7.js";function C(r,a){if(r&1&&(i(0,"ion-note",3),d(1),o(),c(2,"br")),r&2){let e=m();t(),f(e.title)}}var n=class n{constructor(){}};n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=p({type:n,selectors:[["app-spinner"]],inputs:{title:"title"},decls:4,vars:1,consts:[[1,"page-center"],[1,"spin","ion-text-center"],["name","crescent","color","primary"],[1,"ion-padding"]],template:function(e,x){e&1&&(i(0,"div",0)(1,"div",1),s(2,C,3,1),c(3,"ion-spinner",2),o()()),e&2&&(t(2),l(x.title?2:-1))},dependencies:[g,u],styles:[".page-center[_ngcontent-%COMP%]{position:fixed;width:100vw;height:100vh}.spin[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;flex-direction:column;width:100vw;height:100vh}ion-note[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-5xl));padding:var(--spacing-lg)}ion-spinner[_ngcontent-%COMP%]{transform:scale(3)}"]});var v=n;export{v as a}; diff --git a/.admin-app/chunk-KP53OIUL.js b/.admin-app/chunk-KP53OIUL.js new file mode 100644 index 00000000..ec078a47 --- /dev/null +++ b/.admin-app/chunk-KP53OIUL.js @@ -0,0 +1 @@ +import{aa as y,oa as v}from"./chunk-QF32E4V4.js";import{Eb as h,Ga as s,H as l,Ha as u,Ia as g,Oc as I,P as p,Pc as _,Ua as k,Va as a,Xa as C,ca as c,da as t,ea as d,ma as r,tc as M,ub as f,xb as b,za as m}from"./chunk-LVL3PYF7.js";var n=class n{constructor(){this.label=a("");this.placeholder=a("");this.model=C("");this.iconClick=k();v({openOutline:y})}onIconClick(){this.iconClick.emit()}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=p({type:n,selectors:[["app-link-input"]],inputs:{label:[1,"label"],placeholder:[1,"placeholder"],model:[1,"model"]},outputs:{model:"modelChange",iconClick:"iconClick"},decls:3,vars:5,consts:[["lines","none"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],["slot","end","name","open-outline","size","small",1,"link-icon",3,"click"]],template:function(o,e){o&1&&(t(0,"ion-item",0)(1,"ion-input",1),g("ngModelChange",function(i){return u(e.model,i)||(e.model=i),i}),t(2,"ion-icon",2),r("click",function(){return e.onIconClick()}),d()()()),o&2&&(l(),c("label",e.label())("placeholder",e.placeholder()),s("ngModel",e.model),l(),m("disabled",!e.model()))},dependencies:[M,_,I,h,f,b],styles:[".link-icon[_ngcontent-%COMP%]{position:absolute;margin-top:var(--spacing-md);right:.5rem;z-index:1000;cursor:pointer}.link-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}"]});var N=n;export{N as a}; diff --git a/.admin-app/chunk-LIWDDRYP.js b/.admin-app/chunk-LIWDDRYP.js deleted file mode 100644 index 0b899929..00000000 --- a/.admin-app/chunk-LIWDDRYP.js +++ /dev/null @@ -1 +0,0 @@ -var e="data:image/svg+xml;utf8,";var r="data:image/svg+xml;utf8,";var v="data:image/svg+xml;utf8,";var g="data:image/svg+xml;utf8,";var w="data:image/svg+xml;utf8,";var h="data:image/svg+xml;utf8,";var d="data:image/svg+xml;utf8,";var p="data:image/svg+xml;utf8,";var x="data:image/svg+xml;utf8,";var m="data:image/svg+xml;utf8,";var u="data:image/svg+xml;utf8,";var M="data:image/svg+xml;utf8,";var z="data:image/svg+xml;utf8,";var k="data:image/svg+xml;utf8,",f="data:image/svg+xml;utf8,";var B="data:image/svg+xml;utf8,";var L="data:image/svg+xml;utf8,";var H="data:image/svg+xml;utf8,";var V="data:image/svg+xml;utf8,";var C="data:image/svg+xml;utf8,";var A="data:image/svg+xml;utf8,";var y="data:image/svg+xml;utf8,",S="data:image/svg+xml;utf8,";var j="data:image/svg+xml;utf8,";var O="data:image/svg+xml;utf8,";var b="data:image/svg+xml;utf8,";var q="data:image/svg+xml;utf8,",D="data:image/svg+xml;utf8,";var F="data:image/svg+xml;utf8,";var U="data:image/svg+xml;utf8,";var R="data:image/svg+xml;utf8,";var P="data:image/svg+xml;utf8,";var T="data:image/svg+xml;utf8,";var N="data:image/svg+xml;utf8,";var I="data:image/svg+xml;utf8,",E="data:image/svg+xml;utf8,",W="data:image/svg+xml;utf8,",G="data:image/svg+xml;utf8,";var X="data:image/svg+xml;utf8,",Q="data:image/svg+xml;utf8,";var Y="data:image/svg+xml;utf8,";var Z="data:image/svg+xml;utf8,";var $="data:image/svg+xml;utf8,",J="data:image/svg+xml;utf8,";var _="data:image/svg+xml;utf8,";var K="data:image/svg+xml;utf8,";var o1="data:image/svg+xml;utf8,";var s1="data:image/svg+xml;utf8,";var a1="data:image/svg+xml;utf8,";var t1="data:image/svg+xml;utf8,";var i1="data:image/svg+xml;utf8,";var n1="data:image/svg+xml;utf8,";var l1="data:image/svg+xml;utf8,",c1="data:image/svg+xml;utf8,";var e1="data:image/svg+xml;utf8,";var r1="data:image/svg+xml;utf8,";var v1="data:image/svg+xml;utf8,";var g1="data:image/svg+xml;utf8,";var w1="data:image/svg+xml;utf8,";var h1="data:image/svg+xml;utf8,";var d1="data:image/svg+xml;utf8,";var p1="data:image/svg+xml;utf8,";var x1="data:image/svg+xml;utf8,";var t,l=function(){if(typeof window>"u")return new Map;if(!t){var o=window;o.Ionicons=o.Ionicons||{},t=o.Ionicons.map=o.Ionicons.map||new Map}return t},c=function(o){Object.keys(o).forEach(function(s){n(s,o[s]);var a=s.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g,"$1-$2").toLowerCase();s!==a&&n(a,o[s])})},n=function(o,s){var a=l(),i=a.get(o);i===void 0?a.set(o,s):i!==s&&console.warn('[Ionicons Warning]: Multiple icons were mapped to name "'.concat(o,'". Ensure that multiple icons are not mapped to the same icon name.'))};export{e as a,r as b,v as c,g as d,w as e,h as f,d as g,p as h,x as i,m as j,u as k,M as l,z as m,k as n,f as o,B as p,L as q,H as r,V as s,C as t,A as u,y as v,S as w,j as x,O as y,b as z,q as A,D as B,F as C,U as D,R as E,P as F,T as G,N as H,I,E as J,W as K,G as L,X as M,Q as N,Y as O,Z as P,$ as Q,J as R,_ as S,K as T,o1 as U,s1 as V,a1 as W,t1 as X,i1 as Y,n1 as Z,l1 as _,c1 as $,e1 as aa,r1 as ba,v1 as ca,g1 as da,w1 as ea,h1 as fa,d1 as ga,p1 as ha,x1 as ia,c as ja}; diff --git a/.admin-app/chunk-LLQZQ6ZK.js b/.admin-app/chunk-LLQZQ6ZK.js new file mode 100644 index 00000000..a6360bc0 --- /dev/null +++ b/.admin-app/chunk-LLQZQ6ZK.js @@ -0,0 +1 @@ +import{K as Z}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as g,Bc as V,Cc as G,Da as T,Eb as k,Fc as H,Gc as q,H as l,Mc as J,P as S,Pc as K,Tc as Q,Uc as U,Va as I,Vc as X,Xb as B,_a as w,aa as h,ba as y,ca as o,da as a,dc as R,ea as r,ec as W,fa as N,fc as x,gc as F,ma as d,mc as A,p as b,sc as $,tc as z,ub as P,vc as L,w as u,wc as Y,xb as D}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as M,b as j,d as E,h as f}from"./chunk-LNJ3S2LQ.js";var te=(m,i)=>i.id,ie=(m,i)=>i.value;function ne(m,i){if(m&1&&(a(0,"ion-select-option",12),g(1),r()),m&2){let e=i.$implicit;o("value",e.id),l(),T(" ",e.label," ")}}function se(m,i){if(m&1&&(a(0,"ion-select-option",12),g(1),r()),m&2){let e=i.$implicit;o("value",e.value),l(),T(" ",e.label," ")}}var c=class c{constructor(){this.vanity=I();this.api=b(Z);this.location=b(w);this.triggerOptions=[{id:"camp-register",label:"When a Camp is Registered",helper:"Sent when a camp is registered"},{id:"art-register",label:"When Art is Registered",helper:"Sent when art is registered"},{id:"music-register",label:"When Music is Registered",helper:"Sent when music is registered"},{id:"burn-register",label:"When a Burn is Registered",helper:"Sent when a burn is registered"},{id:"camp-event-register",label:"When a Camp Event is Registered",helper:"Sent when a camp event is registered"},{id:"art-event-register",label:"When an Art Event is Registered",helper:"Sent when an art event is registered"},{id:"start-burn-time",label:"When a Burn Starts",helper:"Sent at a specified time after the burn starts",afterOnly:!0},{id:"end-burn-time",label:"When a Burn Ends",helper:"Sent at a specified time after the burn ends",afterOnly:!0},{id:"manual",label:"Manual",helper:"Sent manually by an administrator"}];this.selectedTrigger=u("camp-register");this.selectedType=u("email");this.selectedOffset=u("15m");this.templates=u([]);this.timingOptions=[{label:"7 days before",value:"-7d"},{label:"3 days before",value:"-3d"},{label:"2 days before",value:"-2d"},{label:"1 day before",value:"-1d"},{label:"15 minutes after",value:"15m"},{label:"30 minutes after",value:"30m"},{label:"1 hour after",value:"1h"},{label:"2 hours after",value:"2h"},{label:"5 hours after",value:"5h"},{label:"12 hours after",value:"12h"},{label:"1 day after",value:"1d"},{label:"2 days after",value:"2d"},{label:"3 days after",value:"3d"},{label:"7 days after",value:"7d"}]}ngOnInit(){this.loadTemplates()}ionViewWillEnter(){return f(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0)})}getDefaultData(i,e){var n;return((n={"camp-register":{email:{subject:"Camp Registration Confirmation",body:`Your camp "{{campName}}" has been registered successfully. We'll review your submission.`},notification:{subject:"Camp Registered",body:'Camp "{{campName}}" registered successfully!'}},"art-register":{email:{subject:"Art Registration Confirmation",body:'Your art piece "{{artName}}" has been registered for {{burn}}.'},notification:{subject:"Art Registered",body:'"{{artName}}" registration complete!'}},"music-register":{email:{subject:"Music Registration Confirmation",body:'Thank you for registering "{{musicName}}".'},notification:{subject:"Music Registered",body:'Music "{{musicName}}" registered successfully!'}},"burn-register":{email:{subject:"Burn Registration Confirmation",body:'Your burn event "{{burnName}}" has been registered.'},notification:{subject:"Burn Registered",body:'Burn "{{burnName}}" registration submitted!'}},"camp-event-register":{email:{subject:"Event Registration Confirmation",body:'Your event "{{eventName}}" hosted by {{campName}} has been added to the schedule.'},notification:{subject:"Event Added",body:'Event "{{eventName}}" added to schedule!'}},"art-event-register":{email:{subject:"Art Event Registration Confirmation",body:'The event "{{eventName}}" has been registered.'},notification:{subject:"Art Event Registered",body:'Art event "{{eventName}}" registered!'}},"start-burn-time":{email:{subject:"Burn Starting Soon",body:'The burn "{{burnName}}" is starting.'},notification:{subject:"Burn Starting",body:'"{{burnName}}" starting!'}},"end-burn-time":{email:{subject:"Burn Completed",body:'"{{burnName}}" has concluded.'},notification:{subject:"Burn Ended",body:'"{{burnName}}" burn has ended.'}},manual:{email:{subject:"Manual Notification",body:"Welcome to {{burnName}}."},notification:{subject:"Manual Notification",body:"Welcome to {{burnName}}."}}}[i])==null?void 0:n[e])||{subject:`${i} ${e}`,body:`Template for ${i} (${e})`}}loadTemplates(){return f(this,null,function*(){try{let i=yield this.api.getTemplates();if(i&&i.length>0){let e=i.map(t=>{var O,_,C;let v=t,{["trigger-offset"]:n}=v,s=E(v,["trigger-offset"]),p=(_=(O=t.timeOffset)!=null?O:n)!=null?_:"15m";return j(M({},s),{timeOffset:p,enabled:(C=t.enabled)!=null?C:!0})});this.templates.set(e)}else{let e=[];this.triggerOptions.forEach(t=>{let n=this.getDefaultData(t.id,"email"),s=this.getDefaultData(t.id,"notification");e.push({trigger:t.id,type:"email",timeOffset:"15m",subject:n.subject,body:n.body,from:"[burn]",enabled:!0}),e.push({trigger:t.id,type:"notification",timeOffset:"15m",subject:s.subject,body:s.body,from:"[burn]",enabled:!0})}),this.templates.set(e)}}catch(i){console.error("Failed to load templates:",i);let e=[];this.triggerOptions.forEach(t=>{let n=this.getDefaultData(t.id,"email"),s=this.getDefaultData(t.id,"notification");e.push({trigger:t.id,type:"email",timeOffset:"15m",subject:n.subject,body:n.body,from:"[burn]",enabled:!0}),e.push({trigger:t.id,type:"notification",timeOffset:"15m",subject:s.subject,body:s.body,from:"[burn]",enabled:!0})}),this.templates.set(e)}})}get currentTemplate(){let i=this.templates().find(e=>e.trigger===this.selectedTrigger()&&e.type===this.selectedType());return i||{trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:"",from:"[burn]",enabled:!0}}get currentTriggerLabel(){var e;let i=this.triggerOptions.find(t=>t.id===this.selectedTrigger());return(e=i==null?void 0:i.label)!=null?e:""}get currentTypeLabel(){return this.selectedType()==="email"?"Email":"Notification"}get currentTriggerHelper(){var e;let i=this.triggerOptions.find(t=>t.id===this.selectedTrigger());return(e=i==null?void 0:i.helper)!=null?e:""}selectTrigger(i,e){this.selectedTrigger.set(i),this.selectedType.set(e)}onSelectChange(i){let e=i.detail.value;this.selectedTrigger.set(e);let t=this.templates().find(s=>s.trigger===e&&s.type===this.selectedType());if(!t){let s={trigger:e,type:this.selectedType(),timeOffset:"15m",subject:"",body:"",from:"[burn]",enabled:!0};this.templates.update(p=>[...p,s]),t=s}let n=this.normalizeOffsetForTrigger(e,t.timeOffset);t.timeOffset!==n&&(t.timeOffset=n),this.selectedOffset.set(n)}getTimingOptionsForCurrentTrigger(){let i=this.triggerOptions.find(e=>e.id===this.selectedTrigger());return i?i.afterOnly?this.timingOptions:this.timingOptions.filter(e=>!e.value.startsWith("-")):this.timingOptions}isTriggerWithTiming(){let i=this.triggerOptions.find(e=>e.id===this.selectedTrigger());return(i==null?void 0:i.afterOnly)===!0}onTypeChange(i){let e=i.detail.value;this.selectedType.set(e);let t=this.templates().find(s=>s.trigger===this.selectedTrigger()&&s.type===e);if(!t){let s={trigger:this.selectedTrigger(),type:e,timeOffset:"15m",subject:"",body:"",from:"[burn]",enabled:!0};this.templates.update(p=>[...p,s]),t=s}let n=this.normalizeOffsetForTrigger(this.selectedTrigger(),t.timeOffset);t.timeOffset!==n&&(t.timeOffset=n),this.selectedOffset.set(n)}updateSubject(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:i,body:"",from:"[burn]",enabled:!0};this.templates.update(s=>[...s,n])}else e[t].subject=i,this.templates.set([...e])}updateBody(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:i,from:"[burn]",enabled:!0};this.templates.update(s=>[...s,n])}else e[t].body=i,this.templates.set([...e])}updateEnabled(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:"",from:"[burn]",enabled:i};this.templates.update(s=>[...s,n])}else e[t].enabled=i,this.templates.set([...e])}updateOffset(i){let e=this.normalizeOffsetForTrigger(this.selectedTrigger(),i);this.selectedOffset.set(e);let t=this.templates(),n=t.findIndex(s=>s.trigger===this.selectedTrigger()&&s.type===this.selectedType());n!==-1&&t[n].timeOffset!==e&&(t[n].timeOffset=e,this.templates.set([...t]))}save(){return f(this,null,function*(){try{yield this.api.saveTemplates(this.templates()),this.location.back()}catch(i){console.error("Failed to save templates:",i),this.api.sendMessage("Failed to save messages")}})}normalizeOffsetForTrigger(i,e){let n=this.triggerOptions.find(s=>s.id===i);return!e||n!=null&&n.afterOnly&&e.startsWith("-")?"15m":e}};c.\u0275fac=function(e){return new(e||c)},c.\u0275cmp=S({type:c,selectors:[["app-message-triggers"]],inputs:{vanity:[1,"vanity"]},decls:38,vars:14,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[1,"form"],["lines","none"],[1,"trigger-type-row"],["lines","none",1,"app-select","trigger-select"],["label","","labelPlacement","stacked","interface","popover",1,"app-select","no-label",3,"ionChange","value"],[3,"value"],[1,"type-segment"],["mode","ios",3,"ionChange","value"],["value","email"],["value","notification"],["lines","none",1,"app-select"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],[3,"ionChange","checked"],["labelPlacement","stacked",3,"ngModelChange","spellcheck","rows","autoGrow","label","placeholder","ngModel"]],template:function(e,t){e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),N(3,"ion-back-button"),r(),a(4,"ion-title",2),g(5,"Messages"),r(),a(6,"ion-buttons",3)(7,"ion-button",4),d("click",function(){return t.save()}),g(8,"Save"),r()()()(),a(9,"ion-content",5)(10,"div",6)(11,"ion-card",7)(12,"ion-card-content",7)(13,"ion-list",8)(14,"div",9)(15,"ion-item",10)(16,"ion-select",11),d("ionChange",function(s){return t.onSelectChange(s)}),h(17,ne,2,2,"ion-select-option",12,te),r()(),a(19,"ion-item",13)(20,"ion-segment",14),d("ionChange",function(s){return t.onTypeChange(s)}),a(21,"ion-segment-button",15)(22,"ion-label"),g(23,"Email"),r()(),a(24,"ion-segment-button",16)(25,"ion-label"),g(26,"Notification"),r()()()()(),a(27,"ion-item",17)(28,"ion-select",11),d("ionChange",function(s){return t.updateOffset(s.detail.value)}),h(29,se,2,2,"ion-select-option",12,ie),r()(),a(31,"ion-item")(32,"ion-input",18),d("ngModelChange",function(s){return t.updateSubject(s)}),r()(),a(33,"ion-item",8)(34,"ion-checkbox",19),d("ionChange",function(s){return t.updateEnabled(s.detail.checked)}),g(35,"Enabled"),r()(),a(36,"ion-item")(37,"ion-textarea",20),d("ngModelChange",function(s){return t.updateBody(s)}),r()()()()()()()),e&2&&(l(9),o("fullscreen",!0),l(7),o("value",t.selectedTrigger()),l(),y(t.triggerOptions),l(3),o("value",t.selectedType()),l(8),o("value",t.currentTemplate.timeOffset||t.selectedOffset()),l(),y(t.getTimingOptionsForCurrentTrigger()),l(3),o("label",t.selectedType()==="email"?"Subject":"Title")("placeholder",t.selectedType()==="email"?"Email subject":"Notification message")("ngModel",t.currentTemplate.subject),l(2),o("checked",t.currentTemplate.enabled),l(3),o("spellcheck",!0)("rows",10)("autoGrow",!0)("label",t.selectedType()==="email"?"Body":"Message")("placeholder",t.selectedType()==="email"?"Email body":"Notification body")("ngModel",t.currentTemplate.body))},dependencies:[F,x,z,Y,R,B,K,W,A,$,X,H,q,U,G,Q,V,L,J,k,P,D],styles:[".trigger-type-row[_ngcontent-%COMP%]{display:flex;gap:var(--spacing-lg);align-items:flex-start}.trigger-select-wrapper[_ngcontent-%COMP%], .trigger-select[_ngcontent-%COMP%]{flex:1}.type-segment[_ngcontent-%COMP%]{flex:0 0 auto}ion-segment[_ngcontent-%COMP%]{margin-top:var(--spacing-lg);width:250px}ion-segment-button[_ngcontent-%COMP%]{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}"]});var ee=c;export{ee as MessageTriggersPage}; diff --git a/.admin-app/chunk-LT7OOBRG.js b/.admin-app/chunk-LT7OOBRG.js deleted file mode 100644 index d8a24175..00000000 --- a/.admin-app/chunk-LT7OOBRG.js +++ /dev/null @@ -1 +0,0 @@ -import{a as ae}from"./chunk-YLPHNW7F.js";import{a as ie}from"./chunk-KCPLCCSF.js";import{a as ne}from"./chunk-5B2MUMUK.js";import{K as te}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as P,Aa as m,Ba as g,Ca as w,Db as D,Dc as Y,E as L,Ec as Z,Fc as ee,H as r,P as R,Ua as O,Wb as N,X as h,Y as _,Za as A,aa as U,ba as x,bc as j,ca as s,cc as Q,da as l,dc as W,ea as y,ja as T,la as F,lc as z,na as u,p as k,ra as V,rc as q,s as S,sa as B,sc as H,t as E,ta as $,tc as G,uc as J,vc as K,yc as X}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as C}from"./chunk-LNJ3S2LQ.js";var de=["name","description","camp_type","contact_email","imageUrl","externalId"];function oe(a){return a==null?"":String(a).trim()}function re(a,n){let e=[];for(let t of de){let i=oe(a[t]),o=oe(n[t]);i!==o&&e.push(t)}return e}function se(a,n){return n?re(a,n).length===0?"existing":"updated":"new"}function le(a,n){return re(a,n)}var ge=["fileUpload"],M=(a,n)=>n.camp.name;function ue(a,n){if(a&1&&(y(0,"ion-progress-bar",9),s(1,"ion-text"),m(2),l(),y(3,"app-spinner"),s(4,"div",10),y(5,"img",11),l()),a&2){let e=u();x("value",e.progress),r(2),g(e.importing),r(3),x("src",e.url,L)}}function fe(a,n){if(a&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),m(4),l(),s(5,"ion-badge",15),m(6,"New"),l()(),s(7,"p"),m(8),l()()()),a&2){let e=n.$implicit;r(4),g(e.camp.name),r(4),g(e.camp.description)}}function Ce(a,n){if(a&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),m(3),l()()(),P(4,fe,9,2,"ion-item",null,M)),a&2){let e=u(2);r(3),w("New Camps (",e.groupedCamps.get("new").length,")"),r(),U(e.groupedCamps.get("new"))}}function he(a,n){if(a&1&&(s(0,"p",17),m(1),l()),a&2){let e=u().$implicit;r(),w("Changed: ",e.changedFields.join(", "))}}function _e(a,n){if(a&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),m(4),l(),s(5,"ion-badge",16),m(6,"Updated"),l()(),s(7,"p"),m(8),l(),h(9,he,2,1,"p",17),l()()),a&2){let e=n.$implicit;r(4),g(e.camp.name),r(4),g(e.camp.description),r(),_(e.changedFields&&e.changedFields.length>0?9:-1)}}function xe(a,n){if(a&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),m(3),l()()(),P(4,_e,10,3,"ion-item",null,M)),a&2){let e=u(2);r(3),w("Updated Camps (",e.groupedCamps.get("updated").length,")"),r(),U(e.groupedCamps.get("updated"))}}function ve(a,n){if(a&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",14)(3,"h3"),m(4),l(),s(5,"ion-badge",18),m(6,"Existing"),l()(),s(7,"p"),m(8),l()()()),a&2){let e=n.$implicit;r(4),g(e.camp.name),r(4),g(e.camp.description)}}function Ie(a,n){if(a&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),m(3),l()()(),P(4,ve,9,2,"ion-item",null,M)),a&2){let e=u(2);r(3),w("Existing Camps (",e.groupedCamps.get("existing").length,")"),r(),U(e.groupedCamps.get("existing"))}}function ye(a,n){if(a&1){let e=T();s(0,"div",7)(1,"div",12)(2,"ion-button",13),F("click",function(){S(e);let i=u();return E(i.doImport())}),m(3,"Import from CSV"),l()(),s(4,"ion-list"),h(5,Ce,6,1),h(6,xe,6,1),h(7,Ie,6,1),l()()}if(a&2){let e=u();r(5),_(e.groupedCamps.get("new")&&e.groupedCamps.get("new").length>0?5:-1),r(),_(e.groupedCamps.get("updated")&&e.groupedCamps.get("updated").length>0?6:-1),r(),_(e.groupedCamps.get("existing")&&e.groupedCamps.get("existing").length>0?7:-1)}}var v=class v{constructor(){this.api=k(te);this.location=k(A);this.vanity=O("");this.isAdmin=!1;this.busy=!1;this.camps=[];this.campsWithIds=new Map;this.groupedCamps=new Map;this.title="Import";this.importing="";this.progress=0;this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);this.url=""}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(n){return C(this,null,function*(){let e=n.target.files[0];if(!e)return;let t=new FileReader;t.onload=i=>C(this,null,function*(){var c;let o=(c=i.target)==null?void 0:c.result;yield this.parseCSV(o);try{this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")}catch(f){console.info(f)}}),t.readAsText(e)})}parseCSV(n){return C(this,null,function*(){let e=ae(n);console.info("items parsed from csv",e),this.camps=[],this.groupedCamps.clear();let t=this.mapColumns(e);if(t){let i=[];for(let p of e){let d=yield this.importCamp(p,t);!!d.name&&i.push(d)}i.sort((p,d)=>p.name>d.name?1:-1);let o=yield this.api.camps({cached:!1}),c=new Map,f=new Map;for(let p of o)c.set(p.name.toLowerCase(),p),p.externalId&&f.set(p.externalId.toLowerCase(),p);let I=new Map;I.set("existing",[]),I.set("new",[]),I.set("updated",[]);for(let p of i){let d=c.get(p.name.toLowerCase());!d&&p.externalId&&(d=f.get(p.externalId.toLowerCase()));let b=se(p,d),me=b==="updated"?le(p,d):void 0;d!=null&&d.id&&this.campsWithIds.set(p.name.toLowerCase(),d.id);let ce={status:b,camp:p,changedFields:me};I.get(b).push(ce),this.camps.push(p)}this.groupedCamps=I,this.title=`Import ${this.camps.length} camps`}})}import(){return C(this,null,function*(){this.busy=!0,this.title="Importing...";let n=0,e=0,t=this.camps.length;for(;this.camps.length>0;){let i;try{if(e++,i=this.camps.pop(),i){let o=i.imageUrl;i.imageUrl=void 0;let c=this.campsWithIds.get(i.name.toLowerCase());c&&(i.id=c),this.importing=i.name,this.progress=e/t;let f=yield this.api.addCamp(i,!0);if(n++,o&&f.id){i.id=f.id;try{yield this.importImage(o,i)}catch{console.error(`Unable to import image for camp ${i.name}: ${o}`)}}}}catch{console.error(`Failed to import ${i==null?void 0:i.name}: ${i==null?void 0:i.description}`)}}this.api.sendMessage(`Imported ${n} of ${e} camps.`),this.busy=!1,this.api.clearCache(),this.location.back()})}toUrl(n){let e=!1,t="";for(let i of n)if(i=="(")e=!0;else if(i==")")if(e=!1,t.length<3)t="";else return t;else e&&(t+=i);return t}importImage(n,e){return C(this,null,function*(){let t=this.toUrl(n),o=yield(yield fetch(t)).blob(),c=yield ie(o,{quality:75,width:300});this.url=URL.createObjectURL(c),e.imageUrl=yield this.api.setImage(c,e.id),yield this.api.addCamp(e,!0)})}mapColumns(n){if(n.length==0)return;let e=n[0],t={pin:"",name:"",id:void 0,camp_type:"Theme Camp",publicEvents:!1};for(let i of Object.keys(e)){let o=i.toLowerCase();o.includes("name")&&!t.name&&(t.name=i),o.includes("description")&&(t.description=i),(o=="type"||o=="camp type"||o=="camptype")&&(t.camp_type=i),o.includes("image")&&(t.image=i),o.includes("logo")&&(t.logo=i),o.includes("email")&&(t.contact_email=i),(o.includes("#")||o=="id")&&(t.externalId=i)}return console.log("map",t),t}importCamp(n,e){return C(this,null,function*(){let t=yield this.api.getCamp(void 0);t.name=n[e.name],e.description?t.description=n[e.description]:t.description=`Details on ${t.name} coming soon...`,e.externalId&&(t.externalId=n[e.externalId]),e.camp_type&&(t.camp_type=n[e.camp_type]),e.contact_email&&(t.contact_email=n[e.contact_email]);let i=e.image,o=e.logo;return i&&(t.imageUrl=n[i]),o&&this.isBlank(t.imageUrl)&&(t.imageUrl=n[o]),t})}isBlank(n){return!n||n.trim()==""}};v.\u0275fac=function(e){return new(e||v)},v.\u0275cmp=R({type:v,selectors:[["app-import"]],viewQuery:function(e,t){if(e&1&&V(ge,7),e&2){let i;B(i=$())&&(t.fileUpload=i.first)}},inputs:{vanity:[1,"vanity"]},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],["slot","end",3,"hidden"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],[3,"value"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],[3,"click"],[1,"camp-header"],["color","success"],["color","warning"],[1,"changed-fields"],["color","medium"]],template:function(e,t){if(e&1){let i=T();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),y(3,"ion-back-button"),l(),s(4,"ion-title",3),m(5),l(),s(6,"ion-buttons",4)(7,"ion-button",5),F("click",function(){return S(i),E(t.import())}),m(8,"Import"),l()()()(),s(9,"ion-content",6),h(10,ue,6,3)(11,ye,8,3,"div",7),s(12,"input",8,0),F("change",function(c){return S(i),E(t.onFileSelected(c))}),l()()}e&2&&(r(5),g(t.title),r(),x("hidden",t.camps.length===0),r(),x("disabled",t.busy),r(2),x("fullscreen",!0),r(),_(t.busy?10:11))},dependencies:[X,Y,Q,K,J,H,N,W,z,q,Z,ee,D,ne,G,j],styles:[".camp-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.camp-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;flex:1}.changed-fields[_ngcontent-%COMP%]{color:#ff9500;font-size:var(--font-size-xl);margin-top:var(--spacing-base);font-weight:500}"]});var pe=v;export{pe as ImportPage}; diff --git a/.admin-app/chunk-FDEJMFAU.js b/.admin-app/chunk-LVL3PYF7.js similarity index 99% rename from .admin-app/chunk-FDEJMFAU.js rename to .admin-app/chunk-LVL3PYF7.js index 6d6623ec..c553ab18 100644 --- a/.admin-app/chunk-FDEJMFAU.js +++ b/.admin-app/chunk-LVL3PYF7.js @@ -79,4 +79,4 @@ Example with aria-label: Developers can use the "legacy" property to continue using the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.`,this.el),this.legacy&&z(`ion-toggle is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup. -Developers can dismiss this warning by removing their usage of the "legacy" property and using the new toggle syntax.`,this.el),this.hasLoggedDeprecationWarning=!0);let{activated:e,color:n,checked:o,disabled:i,el:r,inputId:s,name:a}=this,l=k(this),{label:c,labelId:d,labelText:u}=mo(r,s),p=this.getValue(),f=et(r)?"rtl":"ltr";return Bt(!0,r,a,o?p:"",i),h(I,{onClick:this.onClick,"aria-labelledby":c?d:null,"aria-checked":`${o}`,"aria-hidden":i?"true":null,role:"switch",class:P(n,{[l]:!0,"in-item":oe("ion-item",r),"toggle-activated":e,"toggle-checked":o,"toggle-disabled":i,"legacy-toggle":!0,interactive:!0,[`toggle-${f}`]:!0})},this.renderToggleControl(),h("label",{htmlFor:s},u),h("input",{type:"checkbox",role:"switch","aria-checked":`${o}`,disabled:i,id:s,onFocus:()=>this.onFocus(),onBlur:()=>this.onBlur(),ref:g=>this.focusEl=g}))}get el(){return this}static get watchers(){return{disabled:["disabledChanged"]}}static get style(){return{ios:tB,md:oB}}},[33,"ion-toggle",{color:[513],name:[1],checked:[1028],disabled:[4],value:[1],enableOnOffLabels:[4,"enable-on-off-labels"],labelPlacement:[1,"label-placement"],legacy:[4],justify:[1],alignment:[1],activated:[32]},void 0,{disabled:["disabledChanged"]}]),rB=(t,e,n,o)=>e?!t&&o>n||t&&-on,sB=0;function aB(){if(typeof customElements>"u")return;["ion-toggle","ion-icon"].forEach(e=>{switch(e){case"ion-toggle":customElements.get(e)||customElements.define(e,iB);break;case"ion-icon":customElements.get(e)||Be();break}})}var YI=aB;var ie=["*"];function lB(t,e){if(t&1&&(Na(0,"div",1),La(1,2),Fa()),t&2){let n=Od();Sm(),Ji("ngTemplateOutlet",n.template)}}function cB(t,e){if(t&1&&La(0,1),t&2){let n=Od();Ji("ngTemplateOutlet",n.template)}}var dB=(()=>{let t=class extends Eb{constructor(n,o,i,r,s,a,l,c){super(n,o,i,r,s,a,l,c),this.parentOutlet=c}};return t.\u0275fac=function(n){return new(n||t)(Dn("name"),Dn("tabs"),b(Yt),b(O),b(rt),b(A),b(bt),b(t,12))},t.\u0275dir=ue({type:t,selectors:[["ion-router-outlet"]],features:[ye]}),t=U([Ro({defineCustomElementFn:R1})],t),t})(),xfe=(()=>{let t=class extends y1{constructor(n,o,i,r,s,a){super(n,o,i,r,s,a)}};return t.\u0275fac=function(n){return new(n||t)(b(dB,8),b(hi),b(El),b(O),b(A),b(B))},t.\u0275cmp=q({type:t,selectors:[["ion-back-button"]],features:[ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:A1})],t),t})(),kfe=(()=>{let t=class extends u1{};return t.\u0275fac=(()=>{let e;return function(o){return(e||(e=Tt(t)))(o||t)}})(),t.\u0275cmp=q({type:t,selectors:[["ion-modal"]],features:[ye],decls:1,vars:1,consts:[["class","ion-delegate-host ion-page",4,"ngIf"],[1,"ion-delegate-host","ion-page"],[3,"ngTemplateOutlet"]],template:function(n,o){n&1&&Aa(0,lB,2,1,"div",0),n&2&&Ji("ngIf",o.isCmpOpen||o.keepContentsMounted)},dependencies:[Ha,Wd,Gd],encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:Rb})],t),t})(),Efe=(()=>{let t=class extends d1{};return t.\u0275fac=(()=>{let e;return function(o){return(e||(e=Tt(t)))(o||t)}})(),t.\u0275cmp=q({type:t,selectors:[["ion-popover"]],features:[ye],decls:1,vars:1,consts:[[3,"ngTemplateOutlet",4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(n,o){n&1&&Aa(0,cB,1,1,"ng-container",0),n&2&&Ji("ngIf",o.isCmpOpen||o.keepContentsMounted)},dependencies:[Ha,Wd,Gd],encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:Ob})],t),t})();var uB=(t,e)=>{let n=t.prototype;e.forEach(o=>{Object.defineProperty(n,o,{get(){return this.el[o]},set(i){this.z.runOutsideAngular(()=>this.el[o]=i)},configurable:!0})})},hB=(t,e)=>{let n=t.prototype;e.forEach(o=>{n[o]=function(){let i=arguments;return this.z.runOutsideAngular(()=>this.el[o].apply(this.el,i))}})},At=(t,e,n)=>{n.forEach(o=>t[o]=Ai(e,o))};function re(t){return function(n){let{defineCustomElementFn:o,inputs:i,methods:r}=t;return o!==void 0&&o(),i&&uB(n,i),r&&hB(n,r),n}}var Ife=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-accordion"]],inputs:{disabled:"disabled",mode:"mode",readonly:"readonly",toggleIcon:"toggleIcon",toggleIconSlot:"toggleIconSlot",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:G1,inputs:["disabled","mode","readonly","toggleIcon","toggleIconSlot","value"]})],t),t})(),Tfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-accordion-group"]],inputs:{animated:"animated",disabled:"disabled",expand:"expand",mode:"mode",multiple:"multiple",readonly:"readonly",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:q1,inputs:["animated","disabled","expand","mode","multiple","readonly","value"]})],t),t})();var Mfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionAlertDidPresent","ionAlertWillPresent","ionAlertWillDismiss","ionAlertDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-alert"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",inputs:"inputs",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:Nb,inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","inputs","isOpen","keyboardClose","leaveAnimation","message","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],t),t})(),Rfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-app"]],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:eE})],t),t})();var Nfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-badge"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:tE,inputs:["color","mode"]})],t),t})();var Lfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-button"]],inputs:{buttonType:"buttonType",color:"color",disabled:"disabled",download:"download",expand:"expand",fill:"fill",form:"form",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",size:"size",strong:"strong",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:oE,inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]})],t),t})(),$fe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-buttons"]],inputs:{collapse:"collapse"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:rE,inputs:["collapse"]})],t),t})(),Bfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card"]],inputs:{button:"button",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:sE,inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]})],t),t})(),Vfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-content"]],inputs:{mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:aE,inputs:["mode"]})],t),t})(),Ufe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-header"]],inputs:{color:"color",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:lE,inputs:["color","mode","translucent"]})],t),t})(),Gfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-subtitle"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:cE,inputs:["color","mode"]})],t),t})(),Yfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-title"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:dE,inputs:["color","mode"]})],t),t})(),Xfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-chip"]],inputs:{color:"color",disabled:"disabled",mode:"mode",outline:"outline"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:uE,inputs:["color","disabled","mode","outline"]})],t),t})(),Qfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-col"]],inputs:{offset:"offset",offsetLg:"offsetLg",offsetMd:"offsetMd",offsetSm:"offsetSm",offsetXl:"offsetXl",offsetXs:"offsetXs",pull:"pull",pullLg:"pullLg",pullMd:"pullMd",pullSm:"pullSm",pullXl:"pullXl",pullXs:"pullXs",push:"push",pushLg:"pushLg",pushMd:"pushMd",pushSm:"pushSm",pushXl:"pushXl",pushXs:"pushXs",size:"size",sizeLg:"sizeLg",sizeMd:"sizeMd",sizeSm:"sizeSm",sizeXl:"sizeXl",sizeXs:"sizeXs"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:pE,inputs:["offset","offsetLg","offsetMd","offsetSm","offsetXl","offsetXs","pull","pullLg","pullMd","pullSm","pullXl","pullXs","push","pushLg","pushMd","pushSm","pushXl","pushXs","size","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs"]})],t),t})(),eme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionScrollStart","ionScroll","ionScrollEnd"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-content"]],inputs:{color:"color",forceOverscroll:"forceOverscroll",fullscreen:"fullscreen",scrollEvents:"scrollEvents",scrollX:"scrollX",scrollY:"scrollY"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:fE,inputs:["color","forceOverscroll","fullscreen","scrollEvents","scrollX","scrollY"],methods:["getScrollElement","scrollToTop","scrollToBottom","scrollByPoint","scrollToPoint"]})],t),t})(),nme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-datetime-button"]],inputs:{color:"color",datetime:"datetime",disabled:"disabled",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:YE,inputs:["color","datetime","disabled","mode"]})],t),t})(),ime=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-fab"]],inputs:{activated:"activated",edge:"edge",horizontal:"horizontal",vertical:"vertical"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ZE,inputs:["activated","edge","horizontal","vertical"],methods:["close"]})],t),t})(),sme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-fab-button"]],inputs:{activated:"activated",closeIcon:"closeIcon",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",show:"show",size:"size",target:"target",translucent:"translucent",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:XE,inputs:["activated","closeIcon","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","show","size","target","translucent","type"]})],t),t})();var lme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-footer"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:tD,inputs:["collapse","mode","translucent"]})],t),t})(),dme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-grid"]],inputs:{fixed:"fixed"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:nD,inputs:["fixed"]})],t),t})(),hme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-header"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:sD,inputs:["collapse","mode","translucent"]})],t),t})();var fme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-item"]],inputs:{button:"button",color:"color",counter:"counter",counterFormatter:"counterFormatter",detail:"detail",detailIcon:"detailIcon",disabled:"disabled",download:"download",fill:"fill",href:"href",lines:"lines",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:hD,inputs:["button","color","counter","counterFormatter","detail","detailIcon","disabled","download","fill","href","lines","mode","rel","routerAnimation","routerDirection","shape","target","type"]})],t),t})(),gme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-item-divider"]],inputs:{color:"color",mode:"mode",sticky:"sticky"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:pD,inputs:["color","mode","sticky"]})],t),t})();var vme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-label"]],inputs:{color:"color",mode:"mode",position:"position"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:gD,inputs:["color","mode","position"]})],t),t})(),xme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-list"]],inputs:{inset:"inset",lines:"lines",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:vD,inputs:["inset","lines","mode"],methods:["closeSlidingItems"]})],t),t})(),kme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-list-header"]],inputs:{color:"color",lines:"lines",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:xD,inputs:["color","lines","mode"]})],t),t})();var Eme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-note"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:wD,inputs:["color","mode"]})],t),t})();var Ime=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-progress-bar"]],inputs:{buffer:"buffer",color:"color",mode:"mode",reversed:"reversed",type:"type",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:kD,inputs:["buffer","color","mode","reversed","type","value"]})],t),t})();var Tme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-row"]],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:CD})],t),t})(),Mme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-segment-button"]],inputs:{disabled:"disabled",layout:"layout",mode:"mode",type:"type",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ED,inputs:["disabled","layout","mode","type","value"]})],t),t})(),Rme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-select-option"]],inputs:{disabled:"disabled",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:DD,inputs:["disabled","value"]})],t),t})();var Nme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-spinner"]],inputs:{color:"color",duration:"duration",name:"name",paused:"paused"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ID,inputs:["color","duration","name","paused"]})],t),t})();var Lme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-text"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:SD,inputs:["color","mode"]})],t),t})();var $me=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-title"]],inputs:{color:"color",size:"size"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:TD,inputs:["color","size"]})],t),t})();var Bme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-toolbar"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:MD,inputs:["color","mode"]})],t),t})();var pB=(()=>{class t extends cr{constructor(){super(pb),this.angularDelegate=D(Cs),this.injector=D(me),this.environmentInjector=D(Se),Rb()}create(n){return super.create(X(_({},n),{delegate:this.angularDelegate.create(this.environmentInjector,this.injector,"modal")}))}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac}),t})(),vv=class extends cr{constructor(){super(kl),this.angularDelegate=D(Cs),this.injector=D(me),this.environmentInjector=D(Se),Ob()}create(e){return super.create(X(_({},e),{delegate:this.angularDelegate.create(this.environmentInjector,this.injector,"popover")}))}},Vme=t=>[{provide:kb,useValue:t},{provide:Ra,useFactory:fB,multi:!0,deps:[kb,Fe]},v1(),Cs,pB,vv],fB=(t,e)=>()=>{e.documentElement.classList.add("ion-ce"),Ph(t)};var Hme=(()=>{class t extends cr{constructor(){super(wl),Nb()}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Ume=(()=>{class t extends cr{constructor(){super(fb),_D()}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var mB=["checked","color","disabled","indeterminate","justify","labelPlacement","legacy","mode","name","value"],gB={provide:jt,useExisting:Oe(()=>bB),multi:!0},bB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionFocus","ionBlur"])}writeValue(n){this.elementRef.nativeElement.checked=this.lastValue=n,ui(this.elementRef)}handleIonChange(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-checkbox"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{checked:"checked",color:"color",disabled:"disabled",indeterminate:"indeterminate",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([gB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:RD,inputs:mB})],t),t})(),vB=["cancelText","clearText","color","dayValues","disabled","doneText","firstDayOfWeek","highlightedDates","hourCycle","hourValues","isDateEnabled","locale","max","min","minuteValues","mode","monthValues","multiple","name","preferWheel","presentation","readonly","showClearButton","showDefaultButtons","showDefaultTimeLabel","showDefaultTitle","size","titleSelectedDatesFormatter","value","yearValues"],yB={provide:jt,useExisting:Oe(()=>xB),multi:!0},xB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionCancel","ionChange","ionFocus","ionBlur"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-datetime"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{cancelText:"cancelText",clearText:"clearText",color:"color",dayValues:"dayValues",disabled:"disabled",doneText:"doneText",firstDayOfWeek:"firstDayOfWeek",highlightedDates:"highlightedDates",hourCycle:"hourCycle",hourValues:"hourValues",isDateEnabled:"isDateEnabled",locale:"locale",max:"max",min:"min",minuteValues:"minuteValues",mode:"mode",monthValues:"monthValues",multiple:"multiple",name:"name",preferWheel:"preferWheel",presentation:"presentation",readonly:"readonly",showClearButton:"showClearButton",showDefaultButtons:"showDefaultButtons",showDefaultTimeLabel:"showDefaultTimeLabel",showDefaultTitle:"showDefaultTitle",size:"size",titleSelectedDatesFormatter:"titleSelectedDatesFormatter",value:"value",yearValues:"yearValues"},features:[Ue([yB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:$D,inputs:vB,methods:["confirm","reset","cancel"]})],t),t})(),qme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-icon"]],inputs:{color:"color",flipRtl:"flipRtl",icon:"icon",ios:"ios",lazy:"lazy",md:"md",mode:"mode",name:"name",sanitize:"sanitize",size:"size",src:"src"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:FI,inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]})],t),t})(),wB=["accept","autocapitalize","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","color","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","max","maxlength","min","minlength","mode","multiple","name","pattern","placeholder","readonly","required","shape","size","spellcheck","step","type","value"],kB={provide:jt,useExisting:Oe(()=>CB),multi:!0},CB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionInput","ionChange","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}registerOnChange(n){super.registerOnChange(o=>{this.type==="number"?n(o===""?null:parseFloat(o)):n(o)})}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-input"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{accept:"accept",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",autofocus:"autofocus",clearInput:"clearInput",clearOnEdit:"clearOnEdit",color:"color",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",maxlength:"maxlength",min:"min",minlength:"minlength",mode:"mode",multiple:"multiple",name:"name",pattern:"pattern",placeholder:"placeholder",readonly:"readonly",required:"required",shape:"shape",size:"size",spellcheck:"spellcheck",step:"step",type:"type",value:"value"},features:[Ue([kB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:LI,inputs:wB,methods:["setFocus","getInputElement"]})],t),t})(),EB=["allowEmptySelection","name","value"],DB={provide:jt,useExisting:Oe(()=>IB),multi:!0},IB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-radio-group"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{allowEmptySelection:"allowEmptySelection",name:"name",value:"value"},features:[Ue([DB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:$I,inputs:EB})],t),t})(),SB=["color","disabled","justify","labelPlacement","legacy","mode","name","value"],TB={provide:jt,useExisting:Oe(()=>_B),multi:!0},_B=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}handleIonSelect(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-radio"]],hostBindings:function(n,o){n&1&&Le("ionSelect",function(r){return o.handleIonSelect(r.target)})},inputs:{color:"color",disabled:"disabled",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([TB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:BI,inputs:SB})],t),t})();var MB=["animated","autocomplete","autocorrect","cancelButtonIcon","cancelButtonText","clearIcon","color","debounce","disabled","enterkeyhint","inputmode","mode","name","placeholder","searchIcon","showCancelButton","showClearButton","spellcheck","type","value"],AB={provide:jt,useExisting:Oe(()=>RB),multi:!0},RB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionInput","ionChange","ionCancel","ionClear","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-searchbar"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{animated:"animated",autocomplete:"autocomplete",autocorrect:"autocorrect",cancelButtonIcon:"cancelButtonIcon",cancelButtonText:"cancelButtonText",clearIcon:"clearIcon",color:"color",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",inputmode:"inputmode",mode:"mode",name:"name",placeholder:"placeholder",searchIcon:"searchIcon",showCancelButton:"showCancelButton",showClearButton:"showClearButton",spellcheck:"spellcheck",type:"type",value:"value"},features:[Ue([AB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:zI,inputs:MB,methods:["setFocus","getInputElement"]})],t),t})(),OB=["color","disabled","mode","scrollable","selectOnFocus","swipeGesture","value"],NB={provide:jt,useExisting:Oe(()=>FB),multi:!0},FB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-segment"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{color:"color",disabled:"disabled",mode:"mode",scrollable:"scrollable",selectOnFocus:"selectOnFocus",swipeGesture:"swipeGesture",value:"value"},features:[Ue([NB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:VI,inputs:OB})],t),t})(),LB=["cancelText","color","compareWith","disabled","expandedIcon","fill","interface","interfaceOptions","justify","label","labelPlacement","legacy","mode","multiple","name","okText","placeholder","selectedText","shape","toggleIcon","value"],PB={provide:jt,useExisting:Oe(()=>$B),multi:!0},$B=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionCancel","ionDismiss","ionFocus","ionBlur"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-select"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{cancelText:"cancelText",color:"color",compareWith:"compareWith",disabled:"disabled",expandedIcon:"expandedIcon",fill:"fill",interface:"interface",interfaceOptions:"interfaceOptions",justify:"justify",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",multiple:"multiple",name:"name",okText:"okText",placeholder:"placeholder",selectedText:"selectedText",shape:"shape",toggleIcon:"toggleIcon",value:"value"},features:[Ue([PB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:GI,inputs:LB,methods:["open"]})],t),t})(),jB=["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"],BB={provide:jt,useExisting:Oe(()=>zB),multi:!0},zB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionInput","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-textarea"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{autoGrow:"autoGrow",autocapitalize:"autocapitalize",autofocus:"autofocus",clearOnEdit:"clearOnEdit",color:"color",cols:"cols",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",readonly:"readonly",required:"required",rows:"rows",shape:"shape",spellcheck:"spellcheck",value:"value",wrap:"wrap"},features:[Ue([BB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:qI,inputs:jB,methods:["setFocus","getInputElement"]})],t),t})(),VB=["checked","color","disabled","enableOnOffLabels","justify","labelPlacement","legacy","mode","name","value"],HB={provide:jt,useExisting:Oe(()=>UB),multi:!0},UB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionFocus","ionBlur"])}writeValue(n){this.elementRef.nativeElement.checked=this.lastValue=n,ui(this.elementRef)}handleIonChange(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-toggle"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{checked:"checked",color:"color",disabled:"disabled",enableOnOffLabels:"enableOnOffLabels",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([HB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:YI,inputs:VB})],t),t})();export{le as a,ke as b,fe as c,Ai as d,SS as e,mt as f,vo as g,nt as h,F as i,bn as j,Oe as k,L as l,en as m,$ as n,H as o,D as p,Lr as q,Se as r,tf as s,nf as t,me as u,Fe as v,Wt as w,Gt as x,Tt as y,Dn as z,O as A,RT as B,ln as C,t_ as D,gx as E,bx as F,a_ as G,Sm as H,Wn as I,Te as J,A as K,Zi as L,Gn as M,b as N,In as O,q as P,Sn as Q,ue as R,ye as S,Aa as T,Ad as U,Tn as V,qn as W,OA as X,NA as Y,FA as Z,LA as _,PA as $,$A as aa,Ji as ba,Na as ca,Fa as da,Rd as ea,Jm as fa,eg as ga,Sw as ha,La as ia,_w as ja,Mw as ka,Le as la,Rw as ma,Od as na,Q as oa,J as pa,es as qa,Nd as ra,er as sa,tr as ta,qA as ua,YA as va,ZA as wa,Lw as xa,$a as ya,s2 as za,b2 as Aa,Hw as Ba,og as Ca,Uw as Da,Ww as Ea,Gw as Fa,w2 as Ga,qw as Ha,k2 as Ia,C2 as Ja,Ue as Ka,T2 as La,_2 as Ma,M2 as Na,A2 as Oa,O2 as Pa,F2 as Qa,ts as Ra,B2 as Sa,CQ as Ta,dk as Ua,EQ as Va,DQ as Wa,IQ as Xa,B as Ya,Yt as Za,xR as _a,Wd as $a,wR as ab,Gd as bb,CR as cb,Ha as db,Tg as eb,$R as fb,WR as gb,bt as hb,mC as ib,rt as jb,ul as kb,CN as lb,IC as mb,EN as nb,U as ob,jt as pb,AN as qb,jC as rb,ar as sb,nne as tb,one as ub,aF as vb,dF as wb,rne as xb,fF as yb,gF as zb,vF as Ab,xF as Bb,kF as Cb,sne as Db,ane as Eb,l1 as Fb,hi as Gb,El as Hb,Cs as Ib,d1 as Jb,u1 as Kb,Eb as Lb,y1 as Mb,pL as Nb,fL as Ob,bL as Pb,vL as Qb,Rn as Rb,ui as Sb,wb as Tb,cr as Ub,dB as Vb,xfe as Wb,kfe as Xb,Efe as Yb,Ife as Zb,Tfe as _b,Mfe as $b,Rfe as ac,Nfe as bc,Lfe as cc,$fe as dc,Bfe as ec,Vfe as fc,Ufe as gc,Gfe as hc,Yfe as ic,Xfe as jc,Qfe as kc,eme as lc,nme as mc,ime as nc,sme as oc,lme as pc,dme as qc,hme as rc,fme as sc,gme as tc,vme as uc,xme as vc,kme as wc,Eme as xc,Ime as yc,Tme as zc,Mme as Ac,Rme as Bc,Nme as Cc,Lme as Dc,$me as Ec,Bme as Fc,pB as Gc,Vme as Hc,Hme as Ic,Ume as Jc,bB as Kc,xB as Lc,qme as Mc,CB as Nc,IB as Oc,_B as Pc,RB as Qc,FB as Rc,$B as Sc,zB as Tc,UB as Uc}; +Developers can dismiss this warning by removing their usage of the "legacy" property and using the new toggle syntax.`,this.el),this.hasLoggedDeprecationWarning=!0);let{activated:e,color:n,checked:o,disabled:i,el:r,inputId:s,name:a}=this,l=k(this),{label:c,labelId:d,labelText:u}=mo(r,s),p=this.getValue(),f=et(r)?"rtl":"ltr";return Bt(!0,r,a,o?p:"",i),h(I,{onClick:this.onClick,"aria-labelledby":c?d:null,"aria-checked":`${o}`,"aria-hidden":i?"true":null,role:"switch",class:P(n,{[l]:!0,"in-item":oe("ion-item",r),"toggle-activated":e,"toggle-checked":o,"toggle-disabled":i,"legacy-toggle":!0,interactive:!0,[`toggle-${f}`]:!0})},this.renderToggleControl(),h("label",{htmlFor:s},u),h("input",{type:"checkbox",role:"switch","aria-checked":`${o}`,disabled:i,id:s,onFocus:()=>this.onFocus(),onBlur:()=>this.onBlur(),ref:g=>this.focusEl=g}))}get el(){return this}static get watchers(){return{disabled:["disabledChanged"]}}static get style(){return{ios:tB,md:oB}}},[33,"ion-toggle",{color:[513],name:[1],checked:[1028],disabled:[4],value:[1],enableOnOffLabels:[4,"enable-on-off-labels"],labelPlacement:[1,"label-placement"],legacy:[4],justify:[1],alignment:[1],activated:[32]},void 0,{disabled:["disabledChanged"]}]),rB=(t,e,n,o)=>e?!t&&o>n||t&&-on,sB=0;function aB(){if(typeof customElements>"u")return;["ion-toggle","ion-icon"].forEach(e=>{switch(e){case"ion-toggle":customElements.get(e)||customElements.define(e,iB);break;case"ion-icon":customElements.get(e)||Be();break}})}var YI=aB;var ie=["*"];function lB(t,e){if(t&1&&(Na(0,"div",1),La(1,2),Fa()),t&2){let n=Od();Sm(),Ji("ngTemplateOutlet",n.template)}}function cB(t,e){if(t&1&&La(0,1),t&2){let n=Od();Ji("ngTemplateOutlet",n.template)}}var dB=(()=>{let t=class extends Eb{constructor(n,o,i,r,s,a,l,c){super(n,o,i,r,s,a,l,c),this.parentOutlet=c}};return t.\u0275fac=function(n){return new(n||t)(Dn("name"),Dn("tabs"),b(Yt),b(O),b(rt),b(A),b(bt),b(t,12))},t.\u0275dir=ue({type:t,selectors:[["ion-router-outlet"]],features:[ye]}),t=U([Ro({defineCustomElementFn:R1})],t),t})(),xfe=(()=>{let t=class extends y1{constructor(n,o,i,r,s,a){super(n,o,i,r,s,a)}};return t.\u0275fac=function(n){return new(n||t)(b(dB,8),b(hi),b(El),b(O),b(A),b(B))},t.\u0275cmp=q({type:t,selectors:[["ion-back-button"]],features:[ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:A1})],t),t})(),kfe=(()=>{let t=class extends u1{};return t.\u0275fac=(()=>{let e;return function(o){return(e||(e=Tt(t)))(o||t)}})(),t.\u0275cmp=q({type:t,selectors:[["ion-modal"]],features:[ye],decls:1,vars:1,consts:[["class","ion-delegate-host ion-page",4,"ngIf"],[1,"ion-delegate-host","ion-page"],[3,"ngTemplateOutlet"]],template:function(n,o){n&1&&Aa(0,lB,2,1,"div",0),n&2&&Ji("ngIf",o.isCmpOpen||o.keepContentsMounted)},dependencies:[Ha,Wd,Gd],encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:Rb})],t),t})(),Efe=(()=>{let t=class extends d1{};return t.\u0275fac=(()=>{let e;return function(o){return(e||(e=Tt(t)))(o||t)}})(),t.\u0275cmp=q({type:t,selectors:[["ion-popover"]],features:[ye],decls:1,vars:1,consts:[[3,"ngTemplateOutlet",4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(n,o){n&1&&Aa(0,cB,1,1,"ng-container",0),n&2&&Ji("ngIf",o.isCmpOpen||o.keepContentsMounted)},dependencies:[Ha,Wd,Gd],encapsulation:2,changeDetection:0}),t=U([Ro({defineCustomElementFn:Ob})],t),t})();var uB=(t,e)=>{let n=t.prototype;e.forEach(o=>{Object.defineProperty(n,o,{get(){return this.el[o]},set(i){this.z.runOutsideAngular(()=>this.el[o]=i)},configurable:!0})})},hB=(t,e)=>{let n=t.prototype;e.forEach(o=>{n[o]=function(){let i=arguments;return this.z.runOutsideAngular(()=>this.el[o].apply(this.el,i))}})},At=(t,e,n)=>{n.forEach(o=>t[o]=Ai(e,o))};function re(t){return function(n){let{defineCustomElementFn:o,inputs:i,methods:r}=t;return o!==void 0&&o(),i&&uB(n,i),r&&hB(n,r),n}}var Ife=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-accordion"]],inputs:{disabled:"disabled",mode:"mode",readonly:"readonly",toggleIcon:"toggleIcon",toggleIconSlot:"toggleIconSlot",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:G1,inputs:["disabled","mode","readonly","toggleIcon","toggleIconSlot","value"]})],t),t})(),Tfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-accordion-group"]],inputs:{animated:"animated",disabled:"disabled",expand:"expand",mode:"mode",multiple:"multiple",readonly:"readonly",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:q1,inputs:["animated","disabled","expand","mode","multiple","readonly","value"]})],t),t})();var Mfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionAlertDidPresent","ionAlertWillPresent","ionAlertWillDismiss","ionAlertDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-alert"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",inputs:"inputs",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:Nb,inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","inputs","isOpen","keyboardClose","leaveAnimation","message","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],t),t})(),Rfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-app"]],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:eE})],t),t})();var Nfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-badge"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:tE,inputs:["color","mode"]})],t),t})();var Lfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-button"]],inputs:{buttonType:"buttonType",color:"color",disabled:"disabled",download:"download",expand:"expand",fill:"fill",form:"form",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",size:"size",strong:"strong",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:oE,inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]})],t),t})(),$fe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-buttons"]],inputs:{collapse:"collapse"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:rE,inputs:["collapse"]})],t),t})(),Bfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card"]],inputs:{button:"button",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:sE,inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]})],t),t})(),Vfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-content"]],inputs:{mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:aE,inputs:["mode"]})],t),t})(),Ufe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-header"]],inputs:{color:"color",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:lE,inputs:["color","mode","translucent"]})],t),t})(),Gfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-subtitle"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:cE,inputs:["color","mode"]})],t),t})(),Yfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-card-title"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:dE,inputs:["color","mode"]})],t),t})(),Xfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-chip"]],inputs:{color:"color",disabled:"disabled",mode:"mode",outline:"outline"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:uE,inputs:["color","disabled","mode","outline"]})],t),t})(),Qfe=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-col"]],inputs:{offset:"offset",offsetLg:"offsetLg",offsetMd:"offsetMd",offsetSm:"offsetSm",offsetXl:"offsetXl",offsetXs:"offsetXs",pull:"pull",pullLg:"pullLg",pullMd:"pullMd",pullSm:"pullSm",pullXl:"pullXl",pullXs:"pullXs",push:"push",pushLg:"pushLg",pushMd:"pushMd",pushSm:"pushSm",pushXl:"pushXl",pushXs:"pushXs",size:"size",sizeLg:"sizeLg",sizeMd:"sizeMd",sizeSm:"sizeSm",sizeXl:"sizeXl",sizeXs:"sizeXs"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:pE,inputs:["offset","offsetLg","offsetMd","offsetSm","offsetXl","offsetXs","pull","pullLg","pullMd","pullSm","pullXl","pullXs","push","pushLg","pushMd","pushSm","pushXl","pushXs","size","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs"]})],t),t})(),eme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionScrollStart","ionScroll","ionScrollEnd"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-content"]],inputs:{color:"color",forceOverscroll:"forceOverscroll",fullscreen:"fullscreen",scrollEvents:"scrollEvents",scrollX:"scrollX",scrollY:"scrollY"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:fE,inputs:["color","forceOverscroll","fullscreen","scrollEvents","scrollX","scrollY"],methods:["getScrollElement","scrollToTop","scrollToBottom","scrollByPoint","scrollToPoint"]})],t),t})(),nme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-datetime-button"]],inputs:{color:"color",datetime:"datetime",disabled:"disabled",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:YE,inputs:["color","datetime","disabled","mode"]})],t),t})(),ime=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-fab"]],inputs:{activated:"activated",edge:"edge",horizontal:"horizontal",vertical:"vertical"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ZE,inputs:["activated","edge","horizontal","vertical"],methods:["close"]})],t),t})(),sme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-fab-button"]],inputs:{activated:"activated",closeIcon:"closeIcon",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",show:"show",size:"size",target:"target",translucent:"translucent",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:XE,inputs:["activated","closeIcon","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","show","size","target","translucent","type"]})],t),t})();var lme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-footer"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:tD,inputs:["collapse","mode","translucent"]})],t),t})(),dme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-grid"]],inputs:{fixed:"fixed"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:nD,inputs:["fixed"]})],t),t})(),hme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-header"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:sD,inputs:["collapse","mode","translucent"]})],t),t})();var fme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-item"]],inputs:{button:"button",color:"color",counter:"counter",counterFormatter:"counterFormatter",detail:"detail",detailIcon:"detailIcon",disabled:"disabled",download:"download",fill:"fill",href:"href",lines:"lines",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",target:"target",type:"type"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:hD,inputs:["button","color","counter","counterFormatter","detail","detailIcon","disabled","download","fill","href","lines","mode","rel","routerAnimation","routerDirection","shape","target","type"]})],t),t})(),gme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-item-divider"]],inputs:{color:"color",mode:"mode",sticky:"sticky"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:pD,inputs:["color","mode","sticky"]})],t),t})();var vme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-label"]],inputs:{color:"color",mode:"mode",position:"position"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:gD,inputs:["color","mode","position"]})],t),t})(),xme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-list"]],inputs:{inset:"inset",lines:"lines",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:vD,inputs:["inset","lines","mode"],methods:["closeSlidingItems"]})],t),t})(),kme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-list-header"]],inputs:{color:"color",lines:"lines",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:xD,inputs:["color","lines","mode"]})],t),t})();var Eme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-note"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:wD,inputs:["color","mode"]})],t),t})();var Ime=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-progress-bar"]],inputs:{buffer:"buffer",color:"color",mode:"mode",reversed:"reversed",type:"type",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:kD,inputs:["buffer","color","mode","reversed","type","value"]})],t),t})();var Tme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-row"]],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:CD})],t),t})(),Mme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-segment-button"]],inputs:{disabled:"disabled",layout:"layout",mode:"mode",type:"type",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ED,inputs:["disabled","layout","mode","type","value"]})],t),t})(),Rme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-select-option"]],inputs:{disabled:"disabled",value:"value"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:DD,inputs:["disabled","value"]})],t),t})();var Nme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-spinner"]],inputs:{color:"color",duration:"duration",name:"name",paused:"paused"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:ID,inputs:["color","duration","name","paused"]})],t),t})();var Lme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-text"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:SD,inputs:["color","mode"]})],t),t})();var $me=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-title"]],inputs:{color:"color",size:"size"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:TD,inputs:["color","size"]})],t),t})();var Bme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-toolbar"]],inputs:{color:"color",mode:"mode"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:MD,inputs:["color","mode"]})],t),t})();var pB=(()=>{class t extends cr{constructor(){super(pb),this.angularDelegate=D(Cs),this.injector=D(me),this.environmentInjector=D(Se),Rb()}create(n){return super.create(X(_({},n),{delegate:this.angularDelegate.create(this.environmentInjector,this.injector,"modal")}))}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac}),t})(),vv=class extends cr{constructor(){super(kl),this.angularDelegate=D(Cs),this.injector=D(me),this.environmentInjector=D(Se),Ob()}create(e){return super.create(X(_({},e),{delegate:this.angularDelegate.create(this.environmentInjector,this.injector,"popover")}))}},Vme=t=>[{provide:kb,useValue:t},{provide:Ra,useFactory:fB,multi:!0,deps:[kb,Fe]},v1(),Cs,pB,vv],fB=(t,e)=>()=>{e.documentElement.classList.add("ion-ce"),Ph(t)};var Hme=(()=>{class t extends cr{constructor(){super(wl),Nb()}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var Ume=(()=>{class t extends cr{constructor(){super(fb),_D()}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();var mB=["checked","color","disabled","indeterminate","justify","labelPlacement","legacy","mode","name","value"],gB={provide:jt,useExisting:Oe(()=>bB),multi:!0},bB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionFocus","ionBlur"])}writeValue(n){this.elementRef.nativeElement.checked=this.lastValue=n,ui(this.elementRef)}handleIonChange(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-checkbox"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{checked:"checked",color:"color",disabled:"disabled",indeterminate:"indeterminate",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([gB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:RD,inputs:mB})],t),t})(),vB=["cancelText","clearText","color","dayValues","disabled","doneText","firstDayOfWeek","highlightedDates","hourCycle","hourValues","isDateEnabled","locale","max","min","minuteValues","mode","monthValues","multiple","name","preferWheel","presentation","readonly","showClearButton","showDefaultButtons","showDefaultTimeLabel","showDefaultTitle","size","titleSelectedDatesFormatter","value","yearValues"],yB={provide:jt,useExisting:Oe(()=>xB),multi:!0},xB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionCancel","ionChange","ionFocus","ionBlur"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-datetime"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{cancelText:"cancelText",clearText:"clearText",color:"color",dayValues:"dayValues",disabled:"disabled",doneText:"doneText",firstDayOfWeek:"firstDayOfWeek",highlightedDates:"highlightedDates",hourCycle:"hourCycle",hourValues:"hourValues",isDateEnabled:"isDateEnabled",locale:"locale",max:"max",min:"min",minuteValues:"minuteValues",mode:"mode",monthValues:"monthValues",multiple:"multiple",name:"name",preferWheel:"preferWheel",presentation:"presentation",readonly:"readonly",showClearButton:"showClearButton",showDefaultButtons:"showDefaultButtons",showDefaultTimeLabel:"showDefaultTimeLabel",showDefaultTitle:"showDefaultTitle",size:"size",titleSelectedDatesFormatter:"titleSelectedDatesFormatter",value:"value",yearValues:"yearValues"},features:[Ue([yB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:$D,inputs:vB,methods:["confirm","reset","cancel"]})],t),t})(),qme=(()=>{let t=class{constructor(n,o,i){this.z=i,n.detach(),this.el=o.nativeElement}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A))},t.\u0275cmp=q({type:t,selectors:[["ion-icon"]],inputs:{color:"color",flipRtl:"flipRtl",icon:"icon",ios:"ios",lazy:"lazy",md:"md",mode:"mode",name:"name",sanitize:"sanitize",size:"size",src:"src"},ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:FI,inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]})],t),t})(),wB=["accept","autocapitalize","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","color","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","max","maxlength","min","minlength","mode","multiple","name","pattern","placeholder","readonly","required","shape","size","spellcheck","step","type","value"],kB={provide:jt,useExisting:Oe(()=>CB),multi:!0},CB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionInput","ionChange","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}registerOnChange(n){super.registerOnChange(o=>{this.type==="number"?n(o===""?null:parseFloat(o)):n(o)})}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-input"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{accept:"accept",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",autofocus:"autofocus",clearInput:"clearInput",clearOnEdit:"clearOnEdit",color:"color",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",maxlength:"maxlength",min:"min",minlength:"minlength",mode:"mode",multiple:"multiple",name:"name",pattern:"pattern",placeholder:"placeholder",readonly:"readonly",required:"required",shape:"shape",size:"size",spellcheck:"spellcheck",step:"step",type:"type",value:"value"},features:[Ue([kB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:LI,inputs:wB,methods:["setFocus","getInputElement"]})],t),t})(),EB=["allowEmptySelection","name","value"],DB={provide:jt,useExisting:Oe(()=>IB),multi:!0},IB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-radio-group"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{allowEmptySelection:"allowEmptySelection",name:"name",value:"value"},features:[Ue([DB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:$I,inputs:EB})],t),t})(),SB=["color","disabled","justify","labelPlacement","legacy","mode","name","value"],TB={provide:jt,useExisting:Oe(()=>_B),multi:!0},_B=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionFocus","ionBlur"])}handleIonSelect(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-radio"]],hostBindings:function(n,o){n&1&&Le("ionSelect",function(r){return o.handleIonSelect(r.target)})},inputs:{color:"color",disabled:"disabled",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([TB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:BI,inputs:SB})],t),t})();var MB=["animated","autocomplete","autocorrect","cancelButtonIcon","cancelButtonText","clearIcon","color","debounce","disabled","enterkeyhint","inputmode","mode","name","placeholder","searchIcon","showCancelButton","showClearButton","spellcheck","type","value"],AB={provide:jt,useExisting:Oe(()=>RB),multi:!0},RB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionInput","ionChange","ionCancel","ionClear","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-searchbar"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{animated:"animated",autocomplete:"autocomplete",autocorrect:"autocorrect",cancelButtonIcon:"cancelButtonIcon",cancelButtonText:"cancelButtonText",clearIcon:"clearIcon",color:"color",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",inputmode:"inputmode",mode:"mode",name:"name",placeholder:"placeholder",searchIcon:"searchIcon",showCancelButton:"showCancelButton",showClearButton:"showClearButton",spellcheck:"spellcheck",type:"type",value:"value"},features:[Ue([AB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:zI,inputs:MB,methods:["setFocus","getInputElement"]})],t),t})(),OB=["color","disabled","mode","scrollable","selectOnFocus","swipeGesture","value"],NB={provide:jt,useExisting:Oe(()=>FB),multi:!0},FB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-segment"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{color:"color",disabled:"disabled",mode:"mode",scrollable:"scrollable",selectOnFocus:"selectOnFocus",swipeGesture:"swipeGesture",value:"value"},features:[Ue([NB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:VI,inputs:OB})],t),t})(),LB=["cancelText","color","compareWith","disabled","expandedIcon","fill","interface","interfaceOptions","justify","label","labelPlacement","legacy","mode","multiple","name","okText","placeholder","selectedText","shape","toggleIcon","value"],PB={provide:jt,useExisting:Oe(()=>$B),multi:!0},$B=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionCancel","ionDismiss","ionFocus","ionBlur"])}handleIonChange(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-select"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{cancelText:"cancelText",color:"color",compareWith:"compareWith",disabled:"disabled",expandedIcon:"expandedIcon",fill:"fill",interface:"interface",interfaceOptions:"interfaceOptions",justify:"justify",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",multiple:"multiple",name:"name",okText:"okText",placeholder:"placeholder",selectedText:"selectedText",shape:"shape",toggleIcon:"toggleIcon",value:"value"},features:[Ue([PB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:GI,inputs:LB,methods:["open"]})],t),t})(),jB=["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"],BB={provide:jt,useExisting:Oe(()=>zB),multi:!0},zB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionInput","ionBlur","ionFocus"])}handleIonInput(n){this.handleValueChange(n,n.value)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-textarea"]],hostBindings:function(n,o){n&1&&Le("ionInput",function(r){return o.handleIonInput(r.target)})},inputs:{autoGrow:"autoGrow",autocapitalize:"autocapitalize",autofocus:"autofocus",clearOnEdit:"clearOnEdit",color:"color",cols:"cols",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",readonly:"readonly",required:"required",rows:"rows",shape:"shape",spellcheck:"spellcheck",value:"value",wrap:"wrap"},features:[Ue([BB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:qI,inputs:jB,methods:["setFocus","getInputElement"]})],t),t})(),VB=["checked","color","disabled","enableOnOffLabels","justify","labelPlacement","legacy","mode","name","value"],HB={provide:jt,useExisting:Oe(()=>UB),multi:!0},UB=(()=>{let t=class extends Rn{constructor(n,o,i,r){super(r,o),this.z=i,n.detach(),this.el=o.nativeElement,At(this,this.el,["ionChange","ionFocus","ionBlur"])}writeValue(n){this.elementRef.nativeElement.checked=this.lastValue=n,ui(this.elementRef)}handleIonChange(n){this.handleValueChange(n,n.checked)}};return t.\u0275fac=function(n){return new(n||t)(b(B),b(O),b(A),b(me))},t.\u0275cmp=q({type:t,selectors:[["ion-toggle"]],hostBindings:function(n,o){n&1&&Le("ionChange",function(r){return o.handleIonChange(r.target)})},inputs:{checked:"checked",color:"color",disabled:"disabled",enableOnOffLabels:"enableOnOffLabels",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},features:[Ue([HB]),ye],ngContentSelectors:ie,decls:1,vars:0,template:function(n,o){n&1&&(Q(),J(0))},encapsulation:2,changeDetection:0}),t=U([re({defineCustomElementFn:YI,inputs:VB})],t),t})();export{le as a,ke as b,fe as c,Ai as d,SS as e,mt as f,vo as g,nt as h,F as i,bn as j,Oe as k,L as l,en as m,$ as n,H as o,D as p,Lr as q,Se as r,tf as s,nf as t,me as u,Fe as v,Wt as w,Gt as x,Tt as y,Dn as z,O as A,RT as B,ln as C,t_ as D,gx as E,bx as F,a_ as G,Sm as H,Wn as I,Te as J,A as K,Zi as L,Gn as M,b as N,In as O,q as P,Sn as Q,ue as R,Ym as S,ye as T,Aa as U,Ad as V,Tn as W,qn as X,OA as Y,NA as Z,FA as _,LA as $,PA as aa,$A as ba,Ji as ca,Na as da,Fa as ea,Rd as fa,Jm as ga,eg as ha,Sw as ia,La as ja,_w as ka,Mw as la,Le as ma,Rw as na,Od as oa,Q as pa,J as qa,es as ra,Nd as sa,er as ta,tr as ua,qA as va,YA as wa,ZA as xa,Lw as ya,$a as za,s2 as Aa,b2 as Ba,Hw as Ca,og as Da,Uw as Ea,Ww as Fa,Gw as Ga,w2 as Ha,qw as Ia,k2 as Ja,C2 as Ka,Ue as La,T2 as Ma,_2 as Na,M2 as Oa,A2 as Pa,O2 as Qa,F2 as Ra,ts as Sa,B2 as Ta,CQ as Ua,dk as Va,EQ as Wa,DQ as Xa,IQ as Ya,B as Za,Yt as _a,xR as $a,Wd as ab,wR as bb,Gd as cb,CR as db,Ha as eb,Tg as fb,$R as gb,WR as hb,bt as ib,mC as jb,rt as kb,ul as lb,CN as mb,IC as nb,EN as ob,U as pb,jt as qb,AN as rb,jC as sb,ar as tb,nne as ub,one as vb,aF as wb,dF as xb,rne as yb,fF as zb,gF as Ab,vF as Bb,xF as Cb,kF as Db,sne as Eb,ane as Fb,l1 as Gb,hi as Hb,El as Ib,Cs as Jb,d1 as Kb,u1 as Lb,Eb as Mb,y1 as Nb,pL as Ob,fL as Pb,bL as Qb,vL as Rb,Rn as Sb,ui as Tb,wb as Ub,cr as Vb,dB as Wb,xfe as Xb,kfe as Yb,Efe as Zb,Ife as _b,Tfe as $b,Mfe as ac,Rfe as bc,Nfe as cc,Lfe as dc,$fe as ec,Bfe as fc,Vfe as gc,Ufe as hc,Gfe as ic,Yfe as jc,Xfe as kc,Qfe as lc,eme as mc,nme as nc,ime as oc,sme as pc,lme as qc,dme as rc,hme as sc,fme as tc,gme as uc,vme as vc,xme as wc,kme as xc,Eme as yc,Ime as zc,Tme as Ac,Mme as Bc,Rme as Cc,Nme as Dc,Lme as Ec,$me as Fc,Bme as Gc,pB as Hc,vv as Ic,Vme as Jc,Hme as Kc,Ume as Lc,bB as Mc,xB as Nc,qme as Oc,CB as Pc,IB as Qc,_B as Rc,RB as Sc,FB as Tc,$B as Uc,zB as Vc,UB as Wc}; diff --git a/.admin-app/chunk-LWEHEVWG.js b/.admin-app/chunk-LWEHEVWG.js deleted file mode 100644 index 94729d7a..00000000 --- a/.admin-app/chunk-LWEHEVWG.js +++ /dev/null @@ -1 +0,0 @@ -import{a as Vt}from"./chunk-VVJA7NBV.js";import{a as E,b as U}from"./chunk-V6XBM4R7.js";import"./chunk-WHEYUZEY.js";import"./chunk-LKPHKBDT.js";import"./chunk-KCPLCCSF.js";import{a as kt}from"./chunk-SVNDKX5K.js";import{a as Tt}from"./chunk-WRLAXAJB.js";import{a as At}from"./chunk-5B2MUMUK.js";import{c as A}from"./chunk-OZ2IKH4J.js";import{U as wt,V as It,ja as Pt,p as vt,u as bt}from"./chunk-LIWDDRYP.js";import{E as ft,H as yt,K as xt,l as gt,v as Ct}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as B,$b as Z,Aa as _,Ba as M,Bb as K,Bc as st,Ca as P,Db as Y,E as F,Ec as dt,Fa as y,Fc as pt,Ga as x,H as a,Ha as v,Ic as ct,Ja as T,Ma as N,Mc as mt,Nc as _t,P as W,Sc as ut,Tc as ht,Ua as Q,Wb as X,X as u,Y as h,Za as j,_ as L,aa as O,ba as d,ca as l,cc as $,da as s,dc as tt,ea as f,ec as et,fc as it,hb as q,ja as b,jc as nt,kb as z,la as g,lc as at,na as o,nb as G,p as I,ra as k,rc as ot,s as c,sa as V,sc as rt,t as m,ta as S,tb as J,vc as lt,w as D,wb as H,za as R}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as C}from"./chunk-LNJ3S2LQ.js";var Mt=i=>[i];function Et(i,n){if(i&1&&(l(0,"ion-select-option",13),_(1),s()),i&2){let t=n.$implicit;d("value",t),a(),M(t)}}function Ut(i,n){if(i&1&&f(0,"img",16),i&2){let t=o(2);d("src",t.imageUrl,F)}}function Dt(i,n){if(i&1&&(l(0,"p"),_(1),s()),i&2){let t=o(2);a(),P("Click to choose an optional image for your ",t.title())}}function Ft(i,n){if(i&1){let t=b();l(0,"ion-item")(1,"app-emails",21),v("emailsChange",function(e){c(t);let p=o(2);return x(p.art.contact_email,e)||(p.art.contact_email=e),m(e)}),s()()}if(i&2){let t=o(2);a(),d("isAdmin",t.isAdmin)("isOwner",!1)("label","Art Owner(s)")("placeholder","Email address of Art owner"),y("emails",t.art.contact_email)}}function Wt(i,n){if(i&1&&(l(0,"app-tooltip",22)(1,"ion-chip",24),f(2,"ion-icon",25),_(3),s()()),i&2){let t=o(3);a(3),P(" This ",t.title()," is approved ")}}function Lt(i,n){if(i&1&&(l(0,"app-tooltip",23)(1,"ion-chip",0),f(2,"ion-icon",26),_(3),s()()),i&2){let t=o(3);d("text",T("This ",t.title()," will not appear in the dust app until approved")),a(3),P(" This ",t.title()," is not yet approved ")}}function Bt(i,n){if(i&1&&u(0,Wt,4,1,"app-tooltip",22)(1,Lt,4,3,"app-tooltip",23),i&2){let t=o(2);h(t.isApproved()?0:1)}}function Ot(i,n){if(i&1){let t=b();l(0,"app-tooltip",19)(1,"ion-button",27),g("click",function(){c(t);let e=o(2);return m(e.invite())}),_(2,"Invite"),s()()}if(i&2){let t=o(2);a(),d("disabled",t.inviting)}}function Rt(i,n){if(i&1){let t=b();l(0,"app-tooltip",23)(1,"ion-button",27),g("click",function(){c(t);let e=o(3);return m(e.approve(!1))}),_(2,"Unapprove"),s()()}if(i&2){let t=o(3);d("text",T("Mark this ",t.title()," as unapproved so that it does not appear in the dust app")),a(),d("disabled",t.busy)}}function Nt(i,n){if(i&1){let t=b();l(0,"app-tooltip",23)(1,"ion-button",28),g("click",function(){c(t);let e=o(3);return m(e.approve(!0))}),_(2,"Approve"),s()()}if(i&2){let t=o(3);d("text",T("Approve the ",t.title()," to allow it to be visible in the dust app")),a(),d("disabled",t.busy)}}function Qt(i,n){if(i&1&&u(0,Rt,3,3,"app-tooltip",23)(1,Nt,3,3,"app-tooltip",23),i&2){let t=o(2);h(t.isApproved()?0:1)}}function jt(i,n){if(i&1&&(l(0,"app-tooltip",29)(1,"ion-button",30),_(2," Place "),s()(),l(3,"ion-button",31),_(4," Delete "),s(),_(5,"\xA0 "),f(6,"ion-alert",32)),i&2){let t=o(2);a(),d("routerLink","../../map/art/"+N(2,Mt,t.art.id)),a(5),d("buttons",t.deleteButtons)}}function qt(i,n){if(i&1){let t=b();l(0,"div",5)(1,"ion-card",6)(2,"ion-card-content",6)(3,"ion-list",7)(4,"ion-item")(5,"ion-input",8),v("ngModelChange",function(e){c(t);let p=o();return x(p.art.name,e)||(p.art.name=e),m(e)}),s()(),l(6,"ion-item")(7,"ion-input",9),v("ngModelChange",function(e){c(t);let p=o();return x(p.art.artist,e)||(p.art.artist=e),m(e)}),s()(),l(8,"app-link-input",10),v("modelChange",function(e){c(t);let p=o();return x(p.art.url,e)||(p.art.url=e),m(e)}),g("iconClick",function(){c(t);let e=o();return m(e.openUrl())}),s(),l(9,"ion-item",11)(10,"ion-select",12),g("ngModelChange",function(){c(t);let e=o();return m(e.artTypeChanged())}),v("ngModelChange",function(e){c(t);let p=o();return x(p.art.art_type,e)||(p.art.art_type=e),m(e)}),B(11,Et,2,2,"ion-select-option",13,L),s()(),l(13,"ion-item")(14,"ion-textarea",14),v("ngModelChange",function(e){c(t);let p=o();return x(p.art.description,e)||(p.art.description=e),m(e)}),s()(),l(15,"div",15),g("click",function(){c(t);let e=o();return m(e.upload.click())}),u(16,Ut,1,1,"img",16),u(17,Dt,2,1,"p"),s(),u(18,Ft,2,5,"ion-item"),f(19,"app-internal-fields",17),s(),u(20,Bt,2,1),l(21,"div",18),u(22,Ot,3,1,"app-tooltip",19),u(23,Qt,2,1),u(24,jt,7,4),l(25,"ion-button",3),g("click",function(){c(t);let e=o();return m(e.save())}),_(26,"Save"),s()(),l(27,"app-upload",20),g("upload",function(e){c(t);let p=o();return m(p.uploaded(e))}),s()()()()}if(i&2){let t=o();a(5),d("label",t.title()+" Title")("placeholder","Title of the "+t.title()),y("ngModel",t.art.name),a(2),y("ngModel",t.art.artist),a(),d("placeholder","URL for the "+t.art.art_type+" project"),y("model",t.art.url),a(2),d("value",t.art.art_type),y("ngModel",t.art.art_type),a(),O(t.artTypes),a(3),d("spellcheck",!0)("rows",6)("autoGrow",!0)("maxlength",1e3),y("ngModel",t.art.description),a(),R(t.uploading?"disabled":""),a(),h(t.imageUrl?16:-1),a(),h(t.imageUrl?-1:17),a(),h(t.isAdmin?18:-1),a(),d("schemaType","art")("entityId",t.art.id||0)("currentData",t.internalFieldData),a(),h(t.id&&!t.isAdmin?20:-1),a(2),h(t.id&&t.isAdmin?22:-1),a(),h(t.id&&t.isAdmin?23:-1),a(),h(t.id&&t.canPlace?24:-1),a(),d("disabled",t.busy)}}function zt(i,n){i&1&&f(0,"app-spinner")}var w=class w{constructor(){this.api=I(xt);this.alert=I(ct);this.location=I(j);this.vanity=Q();this.busy=!0;this.uploading=!1;this.imageChanged=!1;this.isAdmin=!1;this.inviting=!1;this.canPlace=!1;this.title=D("Art");this.artTypes=["Art","Mutant Vehicle"];this.route=I(q);this.internalFieldData=[];this.art={name:"",pin:"",description:"",category:"Open Playa Art",id:void 0,contact_email:"",art_type:this.artTypes[0],url:""};this.deleteButtons=[{text:"Delete",role:"destructive",handler:()=>{this.delete()}},{text:"Cancel",role:"cancel",handler:()=>{}}];Pt({mapOutline:It,mailOutline:wt,checkmarkCircleOutline:vt,closeCircleOutline:bt})}uploaded(n){this.imageUrl=n.url,this.imageChanged=!0,this.blob=n.blob}ionViewWillEnter(){return C(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.id=gt(this.id),this.art=yield this.api.getArt(this.id),this.art.url||(this.art.url=""),this.canPlace=this.api.getAccessInfo(this.api.festivalId).hasAdmin,this.isAdmin=this.api.lastRoleResponse=="festival",this.imageUrl=this.api.imageURL(this.art.imageUrl);let n=this.route.snapshot.queryParams.type;if(!this.art.id&&n&&(this.art.art_type=n,this.title.set(n)),this.art.internalData)try{this.internalFieldData=JSON.parse(this.art.internalData)}catch(t){console.error("Failed to parse internal data:",t),this.internalFieldData=[]}this.busy=!1})}artTypeChanged(){setTimeout(()=>{this.title.set(this.art.art_type)},10)}presentAlert(n){return C(this,null,function*(){yield(yield this.alert.create({header:"Message",message:n,buttons:["OK"]})).present()})}delete(){return C(this,null,function*(){this.busy=!0,yield this.api.deleteArt(this.art),this.api.clearCache(),this.busy=!1,this.location.back()})}save(n=!0){return C(this,null,function*(){this.busy=!0,Ct(this.art);try{if(this.internalFields){if(!this.internalFields.validate()){this.busy=!1;return}this.internalFieldData=this.internalFields.fieldValues(),this.internalFieldData.length>0&&(this.art.internalData=JSON.stringify(this.internalFieldData))}let t=yield this.api.addArt(this.art);if(this.busy=!1,t.message)this.presentAlert(t.message);else{if(t.id&&this.imageChanged){console.log(`Uploaded image for art ${t.id}`),this.busy=!0;try{yield this.uploadImage(t.id)}finally{this.busy=!1,this.imageChanged=!1}}this.art.id||(yield this.presentAlert("Thank you for your Art submission.")),this.api.clearCache(),n&&this.location.back()}}finally{this.busy=!1}})}uploadImage(n){return C(this,null,function*(){if(this.blob)try{this.uploading=!0,this.art.imageUrl=yield this.api.setImage(this.blob,n);let t=yield this.api.addArt(this.art);t.message&&this.presentAlert(t.message)}finally{this.uploading=!1}})}invite(){return C(this,null,function*(){if(!this.art.contact_email){yield A(this.alert,"You must specify an email address","Error");return}this.inviting=!0,yield this.save(!1);let n=yield this.api.inviteArt(this.art);n.message?A(this.alert,n.message):A(this.alert,"The art owner has been invited to manage their art.","Invitation")})}openUrl(){if(this.art.url){let n=yt(this.art.url);window.open(n,"_blank")}}approve(n){return C(this,null,function*(){this.busy=!0,this.art.status=n?2:1;let t=yield this.api.approveArt(this.art);t.message&&A(this.alert,t.message),this.api.clearCache(),this.busy=!1})}isApproved(){return this.art.status===2||this.art.status===0||ft(this.art.status)}};w.\u0275fac=function(t){return new(t||w)},w.\u0275cmp=W({type:w,selectors:[["app-art"]],viewQuery:function(t,r){if(t&1&&(k(E,5),k(U,5)),t&2){let e;V(e=S())&&(r.upload=e.first),V(e=S())&&(r.internalFields=e.first)}},inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:4,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],[1,"form"],["lines","none"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],["label","Artist","labelPlacement","stacked","placeholder","Name of the artist",3,"ngModelChange","ngModel"],["label","URL",3,"modelChange","iconClick","placeholder","model"],["lines","none",1,"app-select"],["labelPlacement","stacked","label","Type","interface","popover","placeholder","Select the type of art",1,"app-select",3,"ngModelChange","value","ngModel"],[3,"value"],["labelPlacement","stacked","label","Description","placeholder","Description of the art",3,"ngModelChange","spellcheck","rows","autoGrow","maxlength","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],[3,"schemaType","entityId","currentData"],[1,"center"],["text","Invite art owner via email to manage their art"],[3,"upload"],["helperText","The art owner(s) can login and alter the description and events at the art. This is a list of email addresses.",3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["text","It will be displayed in the dust app"],[3,"text"],["color","secondary"],["name","checkmark-circle-outline"],["name","close-circle-outline"],["color","secondary",3,"click","disabled"],["color","primary",3,"click","disabled"],["text","Place the art on the map"],["color","secondary",3,"routerLink"],["id","deleteArt","color","secondary"],["trigger","deleteArt","header","Delete Art?",3,"buttons"]],template:function(t,r){t&1&&(l(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),f(3,"ion-back-button"),s(),l(4,"ion-title"),_(5),s(),l(6,"ion-buttons",2)(7,"ion-button",3),g("click",function(){return r.save()}),_(8,"Save"),s()()()(),l(9,"ion-content",4),u(10,qt,28,26,"div",5)(11,zt,1,0,"app-spinner"),s()),t&2&&(a(5),M(r.id||r.art.id?"Edit "+r.title():"Add "+r.title()),a(2),d("disabled",r.busy),a(2),d("fullscreen",!0),a(),h(r.busy?11:10))},dependencies:[Z,Tt,E,Y,J,K,H,At,G,z,ot,pt,tt,X,dt,$,at,et,it,lt,kt,rt,_t,ht,ut,st,Vt,U,nt,mt],encapsulation:2});var St=w;export{St as ArtItemPage}; diff --git a/.admin-app/chunk-LZ3XWWPZ.js b/.admin-app/chunk-LZ3XWWPZ.js new file mode 100644 index 00000000..aa438075 --- /dev/null +++ b/.admin-app/chunk-LZ3XWWPZ.js @@ -0,0 +1 @@ +import{b as m}from"./chunk-62GZOW6G.js";import{F as p,K as f,e as l}from"./chunk-TCALQ33I.js";import{l as n,p as s}from"./chunk-LVL3PYF7.js";var o=class o{constructor(){this.api=s(f);this.campTypes=["Theme Camp","Sound Camp","Art Support Camp","Village Camp","Infrastructure"]}exportCampsToCSV(t,e){let a=[];for(let i of e)a.push({id:i.id,name:i.name,description:i.description,email:i.contact_email,placed:i.pin!=""?"Yes":"No"});let r=p(t.toLowerCase()," ","-");m(`${r}-camps.csv`,a)}exportCampsEmail(t,e){let a=[];for(let i of e)l(i.contact_email)||a.push({email:i.contact_email});if(a.length==0){this.api.sendMessage("No Camps have email addresses to be exported.");return}let r=p(t.toLowerCase()," ","-");m(`${r}-camp-email.txt`,a,{stripQuotes:!0,hideHeaders:!0})}filterCampsBySearch(t,e){let a=e.toLowerCase();return t.filter(r=>r.name.toLowerCase().includes(a))}filterCampsByCategory(t,e){return!e||e==="All"?t:t.filter(a=>a.camp_type===e)}filterCampsByFlagged(t){return t.filter(e=>e.moderation!==void 0&&e.moderation>0)}filterCampsByUnplaced(t){return t.filter(e=>!e.pin||e.pin==="")}filterCamps(t,e,a){let r=this.filterCampsBySearch(t,e);return a==="Flagged"?r=this.filterCampsByFlagged(r):a==="Unplaced"?r=this.filterCampsByUnplaced(r):a&&a!=="All"&&(r=this.filterCampsByCategory(r,a)),r}};o.\u0275fac=function(e){return new(e||o)},o.\u0275prov=n({token:o,factory:o.\u0275fac,providedIn:"root"});var C=o;export{C as a}; diff --git a/.admin-app/chunk-GPVDUW6Q.js b/.admin-app/chunk-M2OHFPPF.js similarity index 99% rename from .admin-app/chunk-GPVDUW6Q.js rename to .admin-app/chunk-M2OHFPPF.js index adda175f..1b6154de 100644 --- a/.admin-app/chunk-GPVDUW6Q.js +++ b/.admin-app/chunk-M2OHFPPF.js @@ -1 +1 @@ -import{a as K}from"./chunk-L4IPHJNS.js";import{$a as H,A as a,Gb as $,H as ee,Hb as q,Ib as R,Jb as ce,K as c,Ka as C,Kb as se,Lb as de,Mb as ue,N as i,Nb as pe,Ob as me,P as l,Pb as fe,Qb as ge,R as I,Rb as M,S as v,Sb as he,T as P,Ub as ve,W as O,Ya as u,Za as oe,ba as T,bb as W,ca as N,d as U,da as L,hb as ie,ia as V,ja as te,jb as re,k,l as J,la as j,na as Z,oa as d,ob as m,pa as s,pb as x,qa as G,r as A,ra as ne,s as F,sa as w,sb as X,t as B,ta as S,u as b,y,yb as ae,z,zb as le}from"./chunk-FDEJMFAU.js";var p=["*"],Le=["outlet"],Ve=[[["","slot","top"]],"*"],Ze=["[slot=top]","*"];function Ge(e,o){if(e&1&&(N(0,"div",1),V(1,2),L()),e&2){let t=Z();ee(),T("ngTemplateOutlet",t.template)}}function He(e,o){if(e&1&&V(0,1),e&2){let t=Z();T("ngTemplateOutlet",t.template)}}var We=(()=>{class e extends M{constructor(t,n){super(t,n)}writeValue(t){this.elementRef.nativeElement.checked=this.lastValue=t,he(this.elementRef)}_handleIonChange(t){this.handleValueChange(t,t.checked)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-checkbox"],["ion-toggle"]],hostBindings:function(t,n){t&1&&j("ionChange",function(h){return n._handleIonChange(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Xe=(()=>{class e extends M{constructor(t,n){super(t,n)}handleInputEvent(t){this.handleValueChange(t,t.value)}registerOnChange(t){super.registerOnChange(n=>{t(n===""?null:parseFloat(n))})}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-input","type","number"]],hostBindings:function(t,n){t&1&&j("ionInput",function(h){return n.handleInputEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),$e=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleIonSelect(t){this.handleValueChange(t,t.checked)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-radio"]],hostBindings:function(t,n){t&1&&j("ionSelect",function(h){return n._handleIonSelect(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),qe=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleChangeEvent(t){this.handleValueChange(t,t.value)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-select"],["ion-radio-group"],["ion-segment"],["ion-datetime"]],hostBindings:function(t,n){t&1&&j("ionChange",function(h){return n._handleChangeEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Ke=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleInputEvent(t){this.handleValueChange(t,t.value)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-input",3,"type","number"],["ion-textarea"],["ion-searchbar"],["ion-range"]],hostBindings:function(t,n){t&1&&j("ionInput",function(h){return n._handleInputEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Qe=(e,o)=>{let t=e.prototype;o.forEach(n=>{Object.defineProperty(t,n,{get(){return this.el[n]},set(r){this.z.runOutsideAngular(()=>this.el[n]=r)},configurable:!0})})},Ye=(e,o)=>{let t=e.prototype;o.forEach(n=>{t[n]=function(){let r=arguments;return this.z.runOutsideAngular(()=>this.el[n].apply(this.el,r))}})},g=(e,o,t)=>{t.forEach(n=>e[n]=U(o,n))};function f(e){return function(t){let{defineCustomElementFn:n,inputs:r,methods:h}=e;return n!==void 0&&n(),r&&Qe(t,r),h&&Ye(t,h),t}}var Ue=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-accordion"]],inputs:{disabled:"disabled",mode:"mode",readonly:"readonly",toggleIcon:"toggleIcon",toggleIconSlot:"toggleIconSlot",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","mode","readonly","toggleIcon","toggleIconSlot","value"]})],e),e})(),Je=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-accordion-group"]],inputs:{animated:"animated",disabled:"disabled",expand:"expand",mode:"mode",multiple:"multiple",readonly:"readonly",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","disabled","expand","mode","multiple","readonly","value"]})],e),e})(),et=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionActionSheetDidPresent","ionActionSheetWillPresent","ionActionSheetWillDismiss","ionActionSheetDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-action-sheet"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","isOpen","keyboardClose","leaveAnimation","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),tt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionAlertDidPresent","ionAlertWillPresent","ionAlertWillDismiss","ionAlertDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-alert"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",inputs:"inputs",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","inputs","isOpen","keyboardClose","leaveAnimation","message","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),nt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-app"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),ot=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-avatar"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),it=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionBackdropTap"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-backdrop"]],inputs:{stopPropagation:"stopPropagation",tappable:"tappable",visible:"visible"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["stopPropagation","tappable","visible"]})],e),e})(),rt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-badge"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),at=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-breadcrumb"]],inputs:{active:"active",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",separator:"separator",target:"target"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["active","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","separator","target"]})],e),e})(),lt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionCollapsedClick"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-breadcrumbs"]],inputs:{color:"color",itemsAfterCollapse:"itemsAfterCollapse",itemsBeforeCollapse:"itemsBeforeCollapse",maxItems:"maxItems",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","itemsAfterCollapse","itemsBeforeCollapse","maxItems","mode"]})],e),e})(),ct=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-button"]],inputs:{buttonType:"buttonType",color:"color",disabled:"disabled",download:"download",expand:"expand",fill:"fill",form:"form",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",size:"size",strong:"strong",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]})],e),e})(),st=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-buttons"]],inputs:{collapse:"collapse"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse"]})],e),e})(),dt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card"]],inputs:{button:"button",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]})],e),e})(),ut=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-content"]],inputs:{mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["mode"]})],e),e})(),pt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-header"]],inputs:{color:"color",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","translucent"]})],e),e})(),mt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-subtitle"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),ft=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-title"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),gt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-checkbox"]],inputs:{alignment:"alignment",checked:"checked",color:"color",disabled:"disabled",indeterminate:"indeterminate",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","checked","color","disabled","indeterminate","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),ht=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-chip"]],inputs:{color:"color",disabled:"disabled",mode:"mode",outline:"outline"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","mode","outline"]})],e),e})(),vt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-col"]],inputs:{offset:"offset",offsetLg:"offsetLg",offsetMd:"offsetMd",offsetSm:"offsetSm",offsetXl:"offsetXl",offsetXs:"offsetXs",pull:"pull",pullLg:"pullLg",pullMd:"pullMd",pullSm:"pullSm",pullXl:"pullXl",pullXs:"pullXs",push:"push",pushLg:"pushLg",pushMd:"pushMd",pushSm:"pushSm",pushXl:"pushXl",pushXs:"pushXs",size:"size",sizeLg:"sizeLg",sizeMd:"sizeMd",sizeSm:"sizeSm",sizeXl:"sizeXl",sizeXs:"sizeXs"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["offset","offsetLg","offsetMd","offsetSm","offsetXl","offsetXs","pull","pullLg","pullMd","pullSm","pullXl","pullXs","push","pushLg","pushMd","pushSm","pushXl","pushXs","size","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs"]})],e),e})(),It=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionScrollStart","ionScroll","ionScrollEnd"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-content"]],inputs:{color:"color",forceOverscroll:"forceOverscroll",fullscreen:"fullscreen",scrollEvents:"scrollEvents",scrollX:"scrollX",scrollY:"scrollY"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","forceOverscroll","fullscreen","scrollEvents","scrollX","scrollY"],methods:["getScrollElement","scrollToTop","scrollToBottom","scrollByPoint","scrollToPoint"]})],e),e})(),Dt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionCancel","ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-datetime"]],inputs:{cancelText:"cancelText",clearText:"clearText",color:"color",dayValues:"dayValues",disabled:"disabled",doneText:"doneText",firstDayOfWeek:"firstDayOfWeek",formatOptions:"formatOptions",highlightedDates:"highlightedDates",hourCycle:"hourCycle",hourValues:"hourValues",isDateEnabled:"isDateEnabled",locale:"locale",max:"max",min:"min",minuteValues:"minuteValues",mode:"mode",monthValues:"monthValues",multiple:"multiple",name:"name",preferWheel:"preferWheel",presentation:"presentation",readonly:"readonly",showClearButton:"showClearButton",showDefaultButtons:"showDefaultButtons",showDefaultTimeLabel:"showDefaultTimeLabel",showDefaultTitle:"showDefaultTitle",size:"size",titleSelectedDatesFormatter:"titleSelectedDatesFormatter",value:"value",yearValues:"yearValues"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["cancelText","clearText","color","dayValues","disabled","doneText","firstDayOfWeek","formatOptions","highlightedDates","hourCycle","hourValues","isDateEnabled","locale","max","min","minuteValues","mode","monthValues","multiple","name","preferWheel","presentation","readonly","showClearButton","showDefaultButtons","showDefaultTimeLabel","showDefaultTitle","size","titleSelectedDatesFormatter","value","yearValues"],methods:["confirm","reset","cancel"]})],e),e})(),bt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-datetime-button"]],inputs:{color:"color",datetime:"datetime",disabled:"disabled",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","datetime","disabled","mode"]})],e),e})(),yt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab"]],inputs:{activated:"activated",edge:"edge",horizontal:"horizontal",vertical:"vertical"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","edge","horizontal","vertical"],methods:["close"]})],e),e})(),Ct=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab-button"]],inputs:{activated:"activated",closeIcon:"closeIcon",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",show:"show",size:"size",target:"target",translucent:"translucent",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","closeIcon","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","show","size","target","translucent","type"]})],e),e})(),jt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab-list"]],inputs:{activated:"activated",side:"side"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","side"]})],e),e})(),xt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-footer"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse","mode","translucent"]})],e),e})(),Mt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-grid"]],inputs:{fixed:"fixed"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["fixed"]})],e),e})(),_t=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-header"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse","mode","translucent"]})],e),e})(),Tt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-icon"]],inputs:{color:"color",flipRtl:"flipRtl",icon:"icon",ios:"ios",lazy:"lazy",md:"md",mode:"mode",name:"name",sanitize:"sanitize",size:"size",src:"src"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]})],e),e})(),wt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionImgWillLoad","ionImgDidLoad","ionError"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-img"]],inputs:{alt:"alt",src:"src"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alt","src"]})],e),e})(),St=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInfinite"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-infinite-scroll"]],inputs:{disabled:"disabled",position:"position",threshold:"threshold"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","position","threshold"],methods:["complete"]})],e),e})(),Rt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-infinite-scroll-content"]],inputs:{loadingSpinner:"loadingSpinner",loadingText:"loadingText"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["loadingSpinner","loadingText"]})],e),e})(),Et=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInput","ionChange","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-input"]],inputs:{accept:"accept",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",autofocus:"autofocus",clearInput:"clearInput",clearOnEdit:"clearOnEdit",color:"color",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",maxlength:"maxlength",min:"min",minlength:"minlength",mode:"mode",multiple:"multiple",name:"name",pattern:"pattern",placeholder:"placeholder",readonly:"readonly",required:"required",shape:"shape",size:"size",spellcheck:"spellcheck",step:"step",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["accept","autocapitalize","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","color","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","max","maxlength","min","minlength","mode","multiple","name","pattern","placeholder","readonly","required","shape","size","spellcheck","step","type","value"],methods:["setFocus","getInputElement"]})],e),e})(),kt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item"]],inputs:{button:"button",color:"color",counter:"counter",counterFormatter:"counterFormatter",detail:"detail",detailIcon:"detailIcon",disabled:"disabled",download:"download",fill:"fill",href:"href",lines:"lines",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["button","color","counter","counterFormatter","detail","detailIcon","disabled","download","fill","href","lines","mode","rel","routerAnimation","routerDirection","shape","target","type"]})],e),e})(),At=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-divider"]],inputs:{color:"color",mode:"mode",sticky:"sticky"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","sticky"]})],e),e})(),Ft=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-group"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),Bt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-option"]],inputs:{color:"color",disabled:"disabled",download:"download",expandable:"expandable",href:"href",mode:"mode",rel:"rel",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","download","expandable","href","mode","rel","target","type"]})],e),e})(),zt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionSwipe"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-options"]],inputs:{side:"side"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["side"]})],e),e})(),Pt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionDrag"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-sliding"]],inputs:{disabled:"disabled"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled"],methods:["getOpenAmount","getSlidingRatio","open","close","closeOpened"]})],e),e})(),Ot=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-label"]],inputs:{color:"color",mode:"mode",position:"position"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","position"]})],e),e})(),Nt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-list"]],inputs:{inset:"inset",lines:"lines",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["inset","lines","mode"],methods:["closeSlidingItems"]})],e),e})(),Lt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-list-header"]],inputs:{color:"color",lines:"lines",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","lines","mode"]})],e),e})(),Vt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionLoadingDidPresent","ionLoadingWillPresent","ionLoadingWillDismiss","ionLoadingDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-loading"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",showBackdrop:"showBackdrop",spinner:"spinner",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","cssClass","duration","enterAnimation","htmlAttributes","isOpen","keyboardClose","leaveAnimation","message","mode","showBackdrop","spinner","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),Zt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionWillOpen","ionWillClose","ionDidOpen","ionDidClose"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu"]],inputs:{contentId:"contentId",disabled:"disabled",maxEdgeStart:"maxEdgeStart",menuId:"menuId",side:"side",swipeGesture:"swipeGesture",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["contentId","disabled","maxEdgeStart","menuId","side","swipeGesture","type"],methods:["isOpen","isActive","open","close","toggle","setOpen"]})],e),e})(),Gt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu-button"]],inputs:{autoHide:"autoHide",color:"color",disabled:"disabled",menu:"menu",mode:"mode",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoHide","color","disabled","menu","mode","type"]})],e),e})(),Ht=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu-toggle"]],inputs:{autoHide:"autoHide",menu:"menu"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoHide","menu"]})],e),e})(),Wt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-nav-link"]],inputs:{component:"component",componentProps:"componentProps",routerAnimation:"routerAnimation",routerDirection:"routerDirection"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["component","componentProps","routerAnimation","routerDirection"]})],e),e})(),Xt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-note"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),$t=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionPickerDidPresent","ionPickerWillPresent","ionPickerWillDismiss","ionPickerDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-picker"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",columns:"columns",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",mode:"mode",showBackdrop:"showBackdrop",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","columns","cssClass","duration","enterAnimation","htmlAttributes","isOpen","keyboardClose","leaveAnimation","mode","showBackdrop","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss","getColumn"]})],e),e})(),qt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-progress-bar"]],inputs:{buffer:"buffer",color:"color",mode:"mode",reversed:"reversed",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["buffer","color","mode","reversed","type","value"]})],e),e})(),Kt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-radio"]],inputs:{alignment:"alignment",color:"color",disabled:"disabled",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","color","disabled","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),Qt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-radio-group"]],inputs:{allowEmptySelection:"allowEmptySelection",compareWith:"compareWith",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["allowEmptySelection","compareWith","name","value"]})],e),e})(),Yt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionInput","ionFocus","ionBlur","ionKnobMoveStart","ionKnobMoveEnd"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-range"]],inputs:{activeBarStart:"activeBarStart",color:"color",debounce:"debounce",disabled:"disabled",dualKnobs:"dualKnobs",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",min:"min",mode:"mode",name:"name",pin:"pin",pinFormatter:"pinFormatter",snaps:"snaps",step:"step",ticks:"ticks",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activeBarStart","color","debounce","disabled","dualKnobs","label","labelPlacement","legacy","max","min","mode","name","pin","pinFormatter","snaps","step","ticks","value"]})],e),e})(),Ut=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionRefresh","ionPull","ionStart"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-refresher"]],inputs:{closeDuration:"closeDuration",disabled:"disabled",mode:"mode",pullFactor:"pullFactor",pullMax:"pullMax",pullMin:"pullMin",snapbackDuration:"snapbackDuration"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["closeDuration","disabled","mode","pullFactor","pullMax","pullMin","snapbackDuration"],methods:["complete","cancel","getProgress"]})],e),e})(),Jt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-refresher-content"]],inputs:{pullingIcon:"pullingIcon",pullingText:"pullingText",refreshingSpinner:"refreshingSpinner",refreshingText:"refreshingText"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["pullingIcon","pullingText","refreshingSpinner","refreshingText"]})],e),e})(),en=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-reorder"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),tn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionItemReorder"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-reorder-group"]],inputs:{disabled:"disabled"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled"],methods:["complete"]})],e),e})(),nn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-ripple-effect"]],inputs:{type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["type"],methods:["addRipple"]})],e),e})(),on=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-row"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),rn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInput","ionChange","ionCancel","ionClear","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-searchbar"]],inputs:{animated:"animated",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",cancelButtonIcon:"cancelButtonIcon",cancelButtonText:"cancelButtonText",clearIcon:"clearIcon",color:"color",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",inputmode:"inputmode",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",searchIcon:"searchIcon",showCancelButton:"showCancelButton",showClearButton:"showClearButton",spellcheck:"spellcheck",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","autocapitalize","autocomplete","autocorrect","cancelButtonIcon","cancelButtonText","clearIcon","color","debounce","disabled","enterkeyhint","inputmode","maxlength","minlength","mode","name","placeholder","searchIcon","showCancelButton","showClearButton","spellcheck","type","value"],methods:["setFocus","getInputElement"]})],e),e})(),an=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-segment"]],inputs:{color:"color",disabled:"disabled",mode:"mode",scrollable:"scrollable",selectOnFocus:"selectOnFocus",swipeGesture:"swipeGesture",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","mode","scrollable","selectOnFocus","swipeGesture","value"]})],e),e})(),ln=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-segment-button"]],inputs:{disabled:"disabled",layout:"layout",mode:"mode",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","layout","mode","type","value"]})],e),e})(),cn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionCancel","ionDismiss","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-select"]],inputs:{cancelText:"cancelText",color:"color",compareWith:"compareWith",disabled:"disabled",expandedIcon:"expandedIcon",fill:"fill",interface:"interface",interfaceOptions:"interfaceOptions",justify:"justify",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",multiple:"multiple",name:"name",okText:"okText",placeholder:"placeholder",selectedText:"selectedText",shape:"shape",toggleIcon:"toggleIcon",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["cancelText","color","compareWith","disabled","expandedIcon","fill","interface","interfaceOptions","justify","label","labelPlacement","legacy","mode","multiple","name","okText","placeholder","selectedText","shape","toggleIcon","value"],methods:["open"]})],e),e})(),sn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-select-option"]],inputs:{disabled:"disabled",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","value"]})],e),e})(),dn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-skeleton-text"]],inputs:{animated:"animated"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated"]})],e),e})(),un=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-spinner"]],inputs:{color:"color",duration:"duration",name:"name",paused:"paused"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","duration","name","paused"]})],e),e})(),pn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionSplitPaneVisible"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-split-pane"]],inputs:{contentId:"contentId",disabled:"disabled",when:"when"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["contentId","disabled","when"]})],e),e})(),Q=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-tab-bar"]],inputs:{color:"color",mode:"mode",selectedTab:"selectedTab",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","selectedTab","translucent"]})],e),e})(),mn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-tab-button"]],inputs:{disabled:"disabled",download:"download",href:"href",layout:"layout",mode:"mode",rel:"rel",selected:"selected",tab:"tab",target:"target"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","download","href","layout","mode","rel","selected","tab","target"]})],e),e})(),fn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-text"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),gn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionInput","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-textarea"]],inputs:{autoGrow:"autoGrow",autocapitalize:"autocapitalize",autofocus:"autofocus",clearOnEdit:"clearOnEdit",color:"color",cols:"cols",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",readonly:"readonly",required:"required",rows:"rows",shape:"shape",spellcheck:"spellcheck",value:"value",wrap:"wrap"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"],methods:["setFocus","getInputElement"]})],e),e})(),hn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-thumbnail"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),vn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-title"]],inputs:{color:"color",size:"size"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","size"]})],e),e})(),In=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionToastDidPresent","ionToastWillPresent","ionToastWillDismiss","ionToastDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toast"]],inputs:{animated:"animated",buttons:"buttons",color:"color",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",icon:"icon",isOpen:"isOpen",keyboardClose:"keyboardClose",layout:"layout",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",position:"position",positionAnchor:"positionAnchor",swipeGesture:"swipeGesture",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","buttons","color","cssClass","duration","enterAnimation","header","htmlAttributes","icon","isOpen","keyboardClose","layout","leaveAnimation","message","mode","position","positionAnchor","swipeGesture","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),Dn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toggle"]],inputs:{alignment:"alignment",checked:"checked",color:"color",disabled:"disabled",enableOnOffLabels:"enableOnOffLabels",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","checked","color","disabled","enableOnOffLabels","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),bn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toolbar"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),E=(()=>{class e extends de{constructor(t,n,r,h,D,_,je,Y){super(t,n,r,h,D,_,je,Y),this.parentOutlet=Y}}return e.\u0275fac=function(t){return new(t||e)(z("name"),z("tabs"),i(oe),i(a),i(re),i(c),i(ie),i(e,12))},e.\u0275dir=I({type:e,selectors:[["ion-router-outlet"]],standalone:!1,features:[v]}),e})(),yn=(()=>{class e extends ge{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-tabs"]],contentQueries:function(t,n,r){if(t&1&&(G(r,Q,5),G(r,Q,4)),t&2){let h;w(h=S())&&(n.tabBar=h.first),w(h=S())&&(n.tabBars=h)}},viewQuery:function(t,n){if(t&1&&ne(Le,5,E),t&2){let r;w(r=S())&&(n.outlet=r.first)}},standalone:!1,features:[v],ngContentSelectors:Ze,decls:6,vars:0,consts:[["tabsInner",""],["outlet",""],[1,"tabs-inner"],["tabs","true",3,"stackWillChange","stackDidChange"]],template:function(t,n){if(t&1){let r=te();d(Ve),s(0),N(1,"div",2,0)(3,"ion-router-outlet",3,1),j("stackWillChange",function(D){return F(r),B(n.onStackWillChange(D))})("stackDidChange",function(D){return F(r),B(n.onStackDidChange(D))}),L()(),s(5,1)}},dependencies:[E],styles:["[_nghost-%COMP%]{display:flex;position:absolute;inset:0;flex-direction:column;width:100%;height:100%;contain:layout size style}.tabs-inner[_ngcontent-%COMP%]{position:relative;flex:1;contain:layout size style}"]}),e})(),Cn=(()=>{class e extends ue{constructor(t,n,r,h,D,_){super(t,n,r,h,D,_)}}return e.\u0275fac=function(t){return new(t||e)(i(E,8),i($),i(q),i(a),i(c),i(u))},e.\u0275cmp=l({type:e,selectors:[["ion-back-button"]],standalone:!1,features:[v],ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e})(),jn=(()=>{class e extends fe{constructor(t,n,r,h,D,_){super(t,n,r,h,D,_)}}return e.\u0275fac=function(t){return new(t||e)(i(a),i(A),i(b),i(R),i(c),i(u))},e.\u0275cmp=l({type:e,selectors:[["ion-nav"]],standalone:!1,features:[v],ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e})(),xn=(()=>{class e extends pe{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["","routerLink","",5,"a",5,"area"]],standalone:!1,features:[v]}),e})(),Mn=(()=>{class e extends me{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["a","routerLink",""],["area","routerLink",""]],standalone:!1,features:[v]}),e})(),_n=(()=>{class e extends se{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-modal"]],standalone:!1,features:[v],decls:1,vars:1,consts:[["class","ion-delegate-host ion-page",4,"ngIf"],[1,"ion-delegate-host","ion-page"],[3,"ngTemplateOutlet"]],template:function(t,n){t&1&&P(0,Ge,2,1,"div",0),t&2&&T("ngIf",n.isCmpOpen||n.keepContentsMounted)},dependencies:[H,W],encapsulation:2,changeDetection:0}),e})(),Tn=(()=>{class e extends ce{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-popover"]],standalone:!1,features:[v],decls:1,vars:1,consts:[[3,"ngTemplateOutlet",4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(t,n){t&1&&P(0,He,1,1,"ng-container",0),t&2&&T("ngIf",n.isCmpOpen||n.keepContentsMounted)},dependencies:[H,W],encapsulation:2,changeDetection:0}),e})(),wn={provide:X,useExisting:k(()=>ye),multi:!0},ye=(()=>{class e extends ae{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["ion-input","type","number","max","","formControlName",""],["ion-input","type","number","max","","formControl",""],["ion-input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(t,n){t&2&&O("max",n._enabled?n.max:null)},standalone:!1,features:[C([wn]),v]}),e})(),Sn={provide:X,useExisting:k(()=>Ce),multi:!0},Ce=(()=>{class e extends le{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["ion-input","type","number","min","","formControlName",""],["ion-input","type","number","min","","formControl",""],["ion-input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(t,n){t&2&&O("min",n._enabled?n.min:null)},standalone:!1,features:[C([Sn]),v]}),e})(),Rr=(()=>{class e extends ve{constructor(){super(K)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=J({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();var Rn=[Ue,Je,et,tt,nt,ot,it,rt,at,lt,ct,st,dt,ut,pt,mt,ft,gt,ht,vt,It,Dt,bt,yt,Ct,jt,xt,Mt,_t,Tt,wt,St,Rt,Et,kt,At,Ft,Bt,zt,Pt,Ot,Nt,Lt,Vt,Zt,Gt,Ht,Wt,Xt,$t,qt,Kt,Qt,Yt,Ut,Jt,en,tn,nn,on,rn,an,ln,cn,sn,dn,un,pn,Q,mn,fn,gn,hn,vn,In,Dn,bn],Er=[...Rn,_n,Tn,We,Xe,$e,qe,Ke,yn,E,Cn,jn,xn,Mn,Ce,ye];export{Rr as a}; +import{a as K}from"./chunk-L4IPHJNS.js";import{A as a,Ab as le,H as ee,Hb as $,Ib as q,Jb as R,K as c,Kb as ce,La as C,Lb as se,Mb as de,N as i,Nb as ue,Ob as pe,P as l,Pb as me,Qb as fe,R as I,Rb as ge,Sb as M,T as v,Tb as he,U as P,Vb as ve,X as O,Za as u,_a as oe,ab as H,ca as T,cb as W,d as U,da as N,ea as L,ib as ie,ja as V,k,ka as te,kb as re,l as J,ma as j,oa as Z,pa as d,pb as m,qa as s,qb as x,r as A,ra as G,s as F,sa as ne,t as B,ta as w,tb as X,u as b,ua as S,y,z,zb as ae}from"./chunk-LVL3PYF7.js";var p=["*"],Le=["outlet"],Ve=[[["","slot","top"]],"*"],Ze=["[slot=top]","*"];function Ge(e,o){if(e&1&&(N(0,"div",1),V(1,2),L()),e&2){let t=Z();ee(),T("ngTemplateOutlet",t.template)}}function He(e,o){if(e&1&&V(0,1),e&2){let t=Z();T("ngTemplateOutlet",t.template)}}var We=(()=>{class e extends M{constructor(t,n){super(t,n)}writeValue(t){this.elementRef.nativeElement.checked=this.lastValue=t,he(this.elementRef)}_handleIonChange(t){this.handleValueChange(t,t.checked)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-checkbox"],["ion-toggle"]],hostBindings:function(t,n){t&1&&j("ionChange",function(h){return n._handleIonChange(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Xe=(()=>{class e extends M{constructor(t,n){super(t,n)}handleInputEvent(t){this.handleValueChange(t,t.value)}registerOnChange(t){super.registerOnChange(n=>{t(n===""?null:parseFloat(n))})}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-input","type","number"]],hostBindings:function(t,n){t&1&&j("ionInput",function(h){return n.handleInputEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),$e=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleIonSelect(t){this.handleValueChange(t,t.checked)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-radio"]],hostBindings:function(t,n){t&1&&j("ionSelect",function(h){return n._handleIonSelect(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),qe=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleChangeEvent(t){this.handleValueChange(t,t.value)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-select"],["ion-radio-group"],["ion-segment"],["ion-datetime"]],hostBindings:function(t,n){t&1&&j("ionChange",function(h){return n._handleChangeEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Ke=(()=>{class e extends M{constructor(t,n){super(t,n)}_handleInputEvent(t){this.handleValueChange(t,t.value)}}return e.\u0275fac=function(t){return new(t||e)(i(b),i(a))},e.\u0275dir=I({type:e,selectors:[["ion-input",3,"type","number"],["ion-textarea"],["ion-searchbar"],["ion-range"]],hostBindings:function(t,n){t&1&&j("ionInput",function(h){return n._handleInputEvent(h.target)})},standalone:!1,features:[C([{provide:x,useExisting:e,multi:!0}]),v]}),e})(),Qe=(e,o)=>{let t=e.prototype;o.forEach(n=>{Object.defineProperty(t,n,{get(){return this.el[n]},set(r){this.z.runOutsideAngular(()=>this.el[n]=r)},configurable:!0})})},Ye=(e,o)=>{let t=e.prototype;o.forEach(n=>{t[n]=function(){let r=arguments;return this.z.runOutsideAngular(()=>this.el[n].apply(this.el,r))}})},g=(e,o,t)=>{t.forEach(n=>e[n]=U(o,n))};function f(e){return function(t){let{defineCustomElementFn:n,inputs:r,methods:h}=e;return n!==void 0&&n(),r&&Qe(t,r),h&&Ye(t,h),t}}var Ue=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-accordion"]],inputs:{disabled:"disabled",mode:"mode",readonly:"readonly",toggleIcon:"toggleIcon",toggleIconSlot:"toggleIconSlot",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","mode","readonly","toggleIcon","toggleIconSlot","value"]})],e),e})(),Je=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-accordion-group"]],inputs:{animated:"animated",disabled:"disabled",expand:"expand",mode:"mode",multiple:"multiple",readonly:"readonly",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","disabled","expand","mode","multiple","readonly","value"]})],e),e})(),et=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionActionSheetDidPresent","ionActionSheetWillPresent","ionActionSheetWillDismiss","ionActionSheetDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-action-sheet"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","isOpen","keyboardClose","leaveAnimation","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),tt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionAlertDidPresent","ionAlertWillPresent","ionAlertWillDismiss","ionAlertDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-alert"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",cssClass:"cssClass",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",inputs:"inputs",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",subHeader:"subHeader",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","cssClass","enterAnimation","header","htmlAttributes","inputs","isOpen","keyboardClose","leaveAnimation","message","mode","subHeader","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),nt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-app"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),ot=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-avatar"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),it=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionBackdropTap"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-backdrop"]],inputs:{stopPropagation:"stopPropagation",tappable:"tappable",visible:"visible"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["stopPropagation","tappable","visible"]})],e),e})(),rt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-badge"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),at=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-breadcrumb"]],inputs:{active:"active",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",separator:"separator",target:"target"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["active","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","separator","target"]})],e),e})(),lt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionCollapsedClick"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-breadcrumbs"]],inputs:{color:"color",itemsAfterCollapse:"itemsAfterCollapse",itemsBeforeCollapse:"itemsBeforeCollapse",maxItems:"maxItems",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","itemsAfterCollapse","itemsBeforeCollapse","maxItems","mode"]})],e),e})(),ct=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-button"]],inputs:{buttonType:"buttonType",color:"color",disabled:"disabled",download:"download",expand:"expand",fill:"fill",form:"form",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",size:"size",strong:"strong",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]})],e),e})(),st=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-buttons"]],inputs:{collapse:"collapse"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse"]})],e),e})(),dt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card"]],inputs:{button:"button",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]})],e),e})(),ut=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-content"]],inputs:{mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["mode"]})],e),e})(),pt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-header"]],inputs:{color:"color",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","translucent"]})],e),e})(),mt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-subtitle"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),ft=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-card-title"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),gt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-checkbox"]],inputs:{alignment:"alignment",checked:"checked",color:"color",disabled:"disabled",indeterminate:"indeterminate",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","checked","color","disabled","indeterminate","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),ht=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-chip"]],inputs:{color:"color",disabled:"disabled",mode:"mode",outline:"outline"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","mode","outline"]})],e),e})(),vt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-col"]],inputs:{offset:"offset",offsetLg:"offsetLg",offsetMd:"offsetMd",offsetSm:"offsetSm",offsetXl:"offsetXl",offsetXs:"offsetXs",pull:"pull",pullLg:"pullLg",pullMd:"pullMd",pullSm:"pullSm",pullXl:"pullXl",pullXs:"pullXs",push:"push",pushLg:"pushLg",pushMd:"pushMd",pushSm:"pushSm",pushXl:"pushXl",pushXs:"pushXs",size:"size",sizeLg:"sizeLg",sizeMd:"sizeMd",sizeSm:"sizeSm",sizeXl:"sizeXl",sizeXs:"sizeXs"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["offset","offsetLg","offsetMd","offsetSm","offsetXl","offsetXs","pull","pullLg","pullMd","pullSm","pullXl","pullXs","push","pushLg","pushMd","pushSm","pushXl","pushXs","size","sizeLg","sizeMd","sizeSm","sizeXl","sizeXs"]})],e),e})(),It=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionScrollStart","ionScroll","ionScrollEnd"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-content"]],inputs:{color:"color",forceOverscroll:"forceOverscroll",fullscreen:"fullscreen",scrollEvents:"scrollEvents",scrollX:"scrollX",scrollY:"scrollY"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","forceOverscroll","fullscreen","scrollEvents","scrollX","scrollY"],methods:["getScrollElement","scrollToTop","scrollToBottom","scrollByPoint","scrollToPoint"]})],e),e})(),Dt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionCancel","ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-datetime"]],inputs:{cancelText:"cancelText",clearText:"clearText",color:"color",dayValues:"dayValues",disabled:"disabled",doneText:"doneText",firstDayOfWeek:"firstDayOfWeek",formatOptions:"formatOptions",highlightedDates:"highlightedDates",hourCycle:"hourCycle",hourValues:"hourValues",isDateEnabled:"isDateEnabled",locale:"locale",max:"max",min:"min",minuteValues:"minuteValues",mode:"mode",monthValues:"monthValues",multiple:"multiple",name:"name",preferWheel:"preferWheel",presentation:"presentation",readonly:"readonly",showClearButton:"showClearButton",showDefaultButtons:"showDefaultButtons",showDefaultTimeLabel:"showDefaultTimeLabel",showDefaultTitle:"showDefaultTitle",size:"size",titleSelectedDatesFormatter:"titleSelectedDatesFormatter",value:"value",yearValues:"yearValues"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["cancelText","clearText","color","dayValues","disabled","doneText","firstDayOfWeek","formatOptions","highlightedDates","hourCycle","hourValues","isDateEnabled","locale","max","min","minuteValues","mode","monthValues","multiple","name","preferWheel","presentation","readonly","showClearButton","showDefaultButtons","showDefaultTimeLabel","showDefaultTitle","size","titleSelectedDatesFormatter","value","yearValues"],methods:["confirm","reset","cancel"]})],e),e})(),bt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-datetime-button"]],inputs:{color:"color",datetime:"datetime",disabled:"disabled",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","datetime","disabled","mode"]})],e),e})(),yt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab"]],inputs:{activated:"activated",edge:"edge",horizontal:"horizontal",vertical:"vertical"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","edge","horizontal","vertical"],methods:["close"]})],e),e})(),Ct=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab-button"]],inputs:{activated:"activated",closeIcon:"closeIcon",color:"color",disabled:"disabled",download:"download",href:"href",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",show:"show",size:"size",target:"target",translucent:"translucent",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","closeIcon","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","show","size","target","translucent","type"]})],e),e})(),jt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-fab-list"]],inputs:{activated:"activated",side:"side"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activated","side"]})],e),e})(),xt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-footer"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse","mode","translucent"]})],e),e})(),Mt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-grid"]],inputs:{fixed:"fixed"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["fixed"]})],e),e})(),_t=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-header"]],inputs:{collapse:"collapse",mode:"mode",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["collapse","mode","translucent"]})],e),e})(),Tt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-icon"]],inputs:{color:"color",flipRtl:"flipRtl",icon:"icon",ios:"ios",lazy:"lazy",md:"md",mode:"mode",name:"name",sanitize:"sanitize",size:"size",src:"src"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]})],e),e})(),wt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionImgWillLoad","ionImgDidLoad","ionError"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-img"]],inputs:{alt:"alt",src:"src"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alt","src"]})],e),e})(),St=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInfinite"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-infinite-scroll"]],inputs:{disabled:"disabled",position:"position",threshold:"threshold"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","position","threshold"],methods:["complete"]})],e),e})(),Rt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-infinite-scroll-content"]],inputs:{loadingSpinner:"loadingSpinner",loadingText:"loadingText"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["loadingSpinner","loadingText"]})],e),e})(),Et=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInput","ionChange","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-input"]],inputs:{accept:"accept",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",autofocus:"autofocus",clearInput:"clearInput",clearOnEdit:"clearOnEdit",color:"color",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",maxlength:"maxlength",min:"min",minlength:"minlength",mode:"mode",multiple:"multiple",name:"name",pattern:"pattern",placeholder:"placeholder",readonly:"readonly",required:"required",shape:"shape",size:"size",spellcheck:"spellcheck",step:"step",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["accept","autocapitalize","autocomplete","autocorrect","autofocus","clearInput","clearOnEdit","color","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","max","maxlength","min","minlength","mode","multiple","name","pattern","placeholder","readonly","required","shape","size","spellcheck","step","type","value"],methods:["setFocus","getInputElement"]})],e),e})(),kt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item"]],inputs:{button:"button",color:"color",counter:"counter",counterFormatter:"counterFormatter",detail:"detail",detailIcon:"detailIcon",disabled:"disabled",download:"download",fill:"fill",href:"href",lines:"lines",mode:"mode",rel:"rel",routerAnimation:"routerAnimation",routerDirection:"routerDirection",shape:"shape",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["button","color","counter","counterFormatter","detail","detailIcon","disabled","download","fill","href","lines","mode","rel","routerAnimation","routerDirection","shape","target","type"]})],e),e})(),At=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-divider"]],inputs:{color:"color",mode:"mode",sticky:"sticky"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","sticky"]})],e),e})(),Ft=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-group"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),Bt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-option"]],inputs:{color:"color",disabled:"disabled",download:"download",expandable:"expandable",href:"href",mode:"mode",rel:"rel",target:"target",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","download","expandable","href","mode","rel","target","type"]})],e),e})(),zt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionSwipe"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-options"]],inputs:{side:"side"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["side"]})],e),e})(),Pt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionDrag"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-item-sliding"]],inputs:{disabled:"disabled"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled"],methods:["getOpenAmount","getSlidingRatio","open","close","closeOpened"]})],e),e})(),Ot=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-label"]],inputs:{color:"color",mode:"mode",position:"position"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","position"]})],e),e})(),Nt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-list"]],inputs:{inset:"inset",lines:"lines",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["inset","lines","mode"],methods:["closeSlidingItems"]})],e),e})(),Lt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-list-header"]],inputs:{color:"color",lines:"lines",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","lines","mode"]})],e),e})(),Vt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionLoadingDidPresent","ionLoadingWillPresent","ionLoadingWillDismiss","ionLoadingDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-loading"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",showBackdrop:"showBackdrop",spinner:"spinner",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","cssClass","duration","enterAnimation","htmlAttributes","isOpen","keyboardClose","leaveAnimation","message","mode","showBackdrop","spinner","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),Zt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionWillOpen","ionWillClose","ionDidOpen","ionDidClose"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu"]],inputs:{contentId:"contentId",disabled:"disabled",maxEdgeStart:"maxEdgeStart",menuId:"menuId",side:"side",swipeGesture:"swipeGesture",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["contentId","disabled","maxEdgeStart","menuId","side","swipeGesture","type"],methods:["isOpen","isActive","open","close","toggle","setOpen"]})],e),e})(),Gt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu-button"]],inputs:{autoHide:"autoHide",color:"color",disabled:"disabled",menu:"menu",mode:"mode",type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoHide","color","disabled","menu","mode","type"]})],e),e})(),Ht=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-menu-toggle"]],inputs:{autoHide:"autoHide",menu:"menu"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoHide","menu"]})],e),e})(),Wt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-nav-link"]],inputs:{component:"component",componentProps:"componentProps",routerAnimation:"routerAnimation",routerDirection:"routerDirection"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["component","componentProps","routerAnimation","routerDirection"]})],e),e})(),Xt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-note"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),$t=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionPickerDidPresent","ionPickerWillPresent","ionPickerWillDismiss","ionPickerDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-picker"]],inputs:{animated:"animated",backdropDismiss:"backdropDismiss",buttons:"buttons",columns:"columns",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",htmlAttributes:"htmlAttributes",isOpen:"isOpen",keyboardClose:"keyboardClose",leaveAnimation:"leaveAnimation",mode:"mode",showBackdrop:"showBackdrop",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","backdropDismiss","buttons","columns","cssClass","duration","enterAnimation","htmlAttributes","isOpen","keyboardClose","leaveAnimation","mode","showBackdrop","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss","getColumn"]})],e),e})(),qt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-progress-bar"]],inputs:{buffer:"buffer",color:"color",mode:"mode",reversed:"reversed",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["buffer","color","mode","reversed","type","value"]})],e),e})(),Kt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-radio"]],inputs:{alignment:"alignment",color:"color",disabled:"disabled",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","color","disabled","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),Qt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-radio-group"]],inputs:{allowEmptySelection:"allowEmptySelection",compareWith:"compareWith",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["allowEmptySelection","compareWith","name","value"]})],e),e})(),Yt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionInput","ionFocus","ionBlur","ionKnobMoveStart","ionKnobMoveEnd"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-range"]],inputs:{activeBarStart:"activeBarStart",color:"color",debounce:"debounce",disabled:"disabled",dualKnobs:"dualKnobs",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",max:"max",min:"min",mode:"mode",name:"name",pin:"pin",pinFormatter:"pinFormatter",snaps:"snaps",step:"step",ticks:"ticks",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["activeBarStart","color","debounce","disabled","dualKnobs","label","labelPlacement","legacy","max","min","mode","name","pin","pinFormatter","snaps","step","ticks","value"]})],e),e})(),Ut=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionRefresh","ionPull","ionStart"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-refresher"]],inputs:{closeDuration:"closeDuration",disabled:"disabled",mode:"mode",pullFactor:"pullFactor",pullMax:"pullMax",pullMin:"pullMin",snapbackDuration:"snapbackDuration"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["closeDuration","disabled","mode","pullFactor","pullMax","pullMin","snapbackDuration"],methods:["complete","cancel","getProgress"]})],e),e})(),Jt=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-refresher-content"]],inputs:{pullingIcon:"pullingIcon",pullingText:"pullingText",refreshingSpinner:"refreshingSpinner",refreshingText:"refreshingText"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["pullingIcon","pullingText","refreshingSpinner","refreshingText"]})],e),e})(),en=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-reorder"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),tn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionItemReorder"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-reorder-group"]],inputs:{disabled:"disabled"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled"],methods:["complete"]})],e),e})(),nn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-ripple-effect"]],inputs:{type:"type"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["type"],methods:["addRipple"]})],e),e})(),on=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-row"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),rn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionInput","ionChange","ionCancel","ionClear","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-searchbar"]],inputs:{animated:"animated",autocapitalize:"autocapitalize",autocomplete:"autocomplete",autocorrect:"autocorrect",cancelButtonIcon:"cancelButtonIcon",cancelButtonText:"cancelButtonText",clearIcon:"clearIcon",color:"color",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",inputmode:"inputmode",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",searchIcon:"searchIcon",showCancelButton:"showCancelButton",showClearButton:"showClearButton",spellcheck:"spellcheck",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","autocapitalize","autocomplete","autocorrect","cancelButtonIcon","cancelButtonText","clearIcon","color","debounce","disabled","enterkeyhint","inputmode","maxlength","minlength","mode","name","placeholder","searchIcon","showCancelButton","showClearButton","spellcheck","type","value"],methods:["setFocus","getInputElement"]})],e),e})(),an=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-segment"]],inputs:{color:"color",disabled:"disabled",mode:"mode",scrollable:"scrollable",selectOnFocus:"selectOnFocus",swipeGesture:"swipeGesture",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","disabled","mode","scrollable","selectOnFocus","swipeGesture","value"]})],e),e})(),ln=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-segment-button"]],inputs:{disabled:"disabled",layout:"layout",mode:"mode",type:"type",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","layout","mode","type","value"]})],e),e})(),cn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionCancel","ionDismiss","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-select"]],inputs:{cancelText:"cancelText",color:"color",compareWith:"compareWith",disabled:"disabled",expandedIcon:"expandedIcon",fill:"fill",interface:"interface",interfaceOptions:"interfaceOptions",justify:"justify",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",multiple:"multiple",name:"name",okText:"okText",placeholder:"placeholder",selectedText:"selectedText",shape:"shape",toggleIcon:"toggleIcon",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["cancelText","color","compareWith","disabled","expandedIcon","fill","interface","interfaceOptions","justify","label","labelPlacement","legacy","mode","multiple","name","okText","placeholder","selectedText","shape","toggleIcon","value"],methods:["open"]})],e),e})(),sn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-select-option"]],inputs:{disabled:"disabled",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","value"]})],e),e})(),dn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-skeleton-text"]],inputs:{animated:"animated"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated"]})],e),e})(),un=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-spinner"]],inputs:{color:"color",duration:"duration",name:"name",paused:"paused"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","duration","name","paused"]})],e),e})(),pn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionSplitPaneVisible"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-split-pane"]],inputs:{contentId:"contentId",disabled:"disabled",when:"when"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["contentId","disabled","when"]})],e),e})(),Q=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-tab-bar"]],inputs:{color:"color",mode:"mode",selectedTab:"selectedTab",translucent:"translucent"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode","selectedTab","translucent"]})],e),e})(),mn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-tab-button"]],inputs:{disabled:"disabled",download:"download",href:"href",layout:"layout",mode:"mode",rel:"rel",selected:"selected",tab:"tab",target:"target"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["disabled","download","href","layout","mode","rel","selected","tab","target"]})],e),e})(),fn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-text"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),gn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionInput","ionBlur","ionFocus"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-textarea"]],inputs:{autoGrow:"autoGrow",autocapitalize:"autocapitalize",autofocus:"autofocus",clearOnEdit:"clearOnEdit",color:"color",cols:"cols",counter:"counter",counterFormatter:"counterFormatter",debounce:"debounce",disabled:"disabled",enterkeyhint:"enterkeyhint",errorText:"errorText",fill:"fill",helperText:"helperText",inputmode:"inputmode",label:"label",labelPlacement:"labelPlacement",legacy:"legacy",maxlength:"maxlength",minlength:"minlength",mode:"mode",name:"name",placeholder:"placeholder",readonly:"readonly",required:"required",rows:"rows",shape:"shape",spellcheck:"spellcheck",value:"value",wrap:"wrap"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","legacy","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"],methods:["setFocus","getInputElement"]})],e),e})(),hn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-thumbnail"]],standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({})],e),e})(),vn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-title"]],inputs:{color:"color",size:"size"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","size"]})],e),e})(),In=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionToastDidPresent","ionToastWillPresent","ionToastWillDismiss","ionToastDidDismiss","didPresent","willPresent","willDismiss","didDismiss"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toast"]],inputs:{animated:"animated",buttons:"buttons",color:"color",cssClass:"cssClass",duration:"duration",enterAnimation:"enterAnimation",header:"header",htmlAttributes:"htmlAttributes",icon:"icon",isOpen:"isOpen",keyboardClose:"keyboardClose",layout:"layout",leaveAnimation:"leaveAnimation",message:"message",mode:"mode",position:"position",positionAnchor:"positionAnchor",swipeGesture:"swipeGesture",translucent:"translucent",trigger:"trigger"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["animated","buttons","color","cssClass","duration","enterAnimation","header","htmlAttributes","icon","isOpen","keyboardClose","layout","leaveAnimation","message","mode","position","positionAnchor","swipeGesture","translucent","trigger"],methods:["present","dismiss","onDidDismiss","onWillDismiss"]})],e),e})(),Dn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement,g(this,this.el,["ionChange","ionFocus","ionBlur"])}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toggle"]],inputs:{alignment:"alignment",checked:"checked",color:"color",disabled:"disabled",enableOnOffLabels:"enableOnOffLabels",justify:"justify",labelPlacement:"labelPlacement",legacy:"legacy",mode:"mode",name:"name",value:"value"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["alignment","checked","color","disabled","enableOnOffLabels","justify","labelPlacement","legacy","mode","name","value"]})],e),e})(),bn=(()=>{let e=class{constructor(t,n,r){this.z=r,t.detach(),this.el=n.nativeElement}};return e.\u0275fac=function(t){return new(t||e)(i(u),i(a),i(c))},e.\u0275cmp=l({type:e,selectors:[["ion-toolbar"]],inputs:{color:"color",mode:"mode"},standalone:!1,ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e=m([f({inputs:["color","mode"]})],e),e})(),E=(()=>{class e extends de{constructor(t,n,r,h,D,_,je,Y){super(t,n,r,h,D,_,je,Y),this.parentOutlet=Y}}return e.\u0275fac=function(t){return new(t||e)(z("name"),z("tabs"),i(oe),i(a),i(re),i(c),i(ie),i(e,12))},e.\u0275dir=I({type:e,selectors:[["ion-router-outlet"]],standalone:!1,features:[v]}),e})(),yn=(()=>{class e extends ge{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-tabs"]],contentQueries:function(t,n,r){if(t&1&&(G(r,Q,5),G(r,Q,4)),t&2){let h;w(h=S())&&(n.tabBar=h.first),w(h=S())&&(n.tabBars=h)}},viewQuery:function(t,n){if(t&1&&ne(Le,5,E),t&2){let r;w(r=S())&&(n.outlet=r.first)}},standalone:!1,features:[v],ngContentSelectors:Ze,decls:6,vars:0,consts:[["tabsInner",""],["outlet",""],[1,"tabs-inner"],["tabs","true",3,"stackWillChange","stackDidChange"]],template:function(t,n){if(t&1){let r=te();d(Ve),s(0),N(1,"div",2,0)(3,"ion-router-outlet",3,1),j("stackWillChange",function(D){return F(r),B(n.onStackWillChange(D))})("stackDidChange",function(D){return F(r),B(n.onStackDidChange(D))}),L()(),s(5,1)}},dependencies:[E],styles:["[_nghost-%COMP%]{display:flex;position:absolute;inset:0;flex-direction:column;width:100%;height:100%;contain:layout size style}.tabs-inner[_ngcontent-%COMP%]{position:relative;flex:1;contain:layout size style}"]}),e})(),Cn=(()=>{class e extends ue{constructor(t,n,r,h,D,_){super(t,n,r,h,D,_)}}return e.\u0275fac=function(t){return new(t||e)(i(E,8),i($),i(q),i(a),i(c),i(u))},e.\u0275cmp=l({type:e,selectors:[["ion-back-button"]],standalone:!1,features:[v],ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e})(),jn=(()=>{class e extends fe{constructor(t,n,r,h,D,_){super(t,n,r,h,D,_)}}return e.\u0275fac=function(t){return new(t||e)(i(a),i(A),i(b),i(R),i(c),i(u))},e.\u0275cmp=l({type:e,selectors:[["ion-nav"]],standalone:!1,features:[v],ngContentSelectors:p,decls:1,vars:0,template:function(t,n){t&1&&(d(),s(0))},encapsulation:2,changeDetection:0}),e})(),xn=(()=>{class e extends pe{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["","routerLink","",5,"a",5,"area"]],standalone:!1,features:[v]}),e})(),Mn=(()=>{class e extends me{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["a","routerLink",""],["area","routerLink",""]],standalone:!1,features:[v]}),e})(),_n=(()=>{class e extends se{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-modal"]],standalone:!1,features:[v],decls:1,vars:1,consts:[["class","ion-delegate-host ion-page",4,"ngIf"],[1,"ion-delegate-host","ion-page"],[3,"ngTemplateOutlet"]],template:function(t,n){t&1&&P(0,Ge,2,1,"div",0),t&2&&T("ngIf",n.isCmpOpen||n.keepContentsMounted)},dependencies:[H,W],encapsulation:2,changeDetection:0}),e})(),Tn=(()=>{class e extends ce{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275cmp=l({type:e,selectors:[["ion-popover"]],standalone:!1,features:[v],decls:1,vars:1,consts:[[3,"ngTemplateOutlet",4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(t,n){t&1&&P(0,He,1,1,"ng-container",0),t&2&&T("ngIf",n.isCmpOpen||n.keepContentsMounted)},dependencies:[H,W],encapsulation:2,changeDetection:0}),e})(),wn={provide:X,useExisting:k(()=>ye),multi:!0},ye=(()=>{class e extends ae{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["ion-input","type","number","max","","formControlName",""],["ion-input","type","number","max","","formControl",""],["ion-input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(t,n){t&2&&O("max",n._enabled?n.max:null)},standalone:!1,features:[C([wn]),v]}),e})(),Sn={provide:X,useExisting:k(()=>Ce),multi:!0},Ce=(()=>{class e extends le{}return e.\u0275fac=(()=>{let o;return function(n){return(o||(o=y(e)))(n||e)}})(),e.\u0275dir=I({type:e,selectors:[["ion-input","type","number","min","","formControlName",""],["ion-input","type","number","min","","formControl",""],["ion-input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(t,n){t&2&&O("min",n._enabled?n.min:null)},standalone:!1,features:[C([Sn]),v]}),e})(),Rr=(()=>{class e extends ve{constructor(){super(K)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=J({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();var Rn=[Ue,Je,et,tt,nt,ot,it,rt,at,lt,ct,st,dt,ut,pt,mt,ft,gt,ht,vt,It,Dt,bt,yt,Ct,jt,xt,Mt,_t,Tt,wt,St,Rt,Et,kt,At,Ft,Bt,zt,Pt,Ot,Nt,Lt,Vt,Zt,Gt,Ht,Wt,Xt,$t,qt,Kt,Qt,Yt,Ut,Jt,en,tn,nn,on,rn,an,ln,cn,sn,dn,un,pn,Q,mn,fn,gn,hn,vn,In,Dn,bn],Er=[...Rn,_n,Tn,We,Xe,$e,qe,Ke,yn,E,Cn,jn,xn,Mn,Ce,ye];export{Rr as a}; diff --git a/.admin-app/chunk-5W2DI6KX.js b/.admin-app/chunk-MEJFUTEJ.js similarity index 65% rename from .admin-app/chunk-5W2DI6KX.js rename to .admin-app/chunk-MEJFUTEJ.js index 65d13bb5..6255e98a 100644 --- a/.admin-app/chunk-5W2DI6KX.js +++ b/.admin-app/chunk-MEJFUTEJ.js @@ -1,2 +1,2 @@ -import{a as De}from"./chunk-YLPHNW7F.js";import{a as Me}from"./chunk-NIJZXRAZ.js";import{a as Pe}from"./chunk-KCPLCCSF.js";import{a as Le}from"./chunk-5B2MUMUK.js";import"./chunk-LIWDDRYP.js";import{B as ke,F as j,K as Te,a as Se,h as G,s as O}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as F,Aa as p,Ba as I,Bc as ye,Ca as A,Da as X,Db as ie,Dc as Ce,E as Z,Eb as oe,Ec as we,Fa as U,Fc as Ie,Ga as B,H as d,Ha as R,Oc as xe,P as Q,Pc as be,Sc as Ee,T as Y,Wb as re,X as M,Xb as ae,Y as D,Z as q,Za as ee,_ as z,aa as $,ba as w,ca as c,cc as se,da as s,dc as le,ea as b,ec as ce,fc as de,gc as pe,hc as me,ic as ue,ja as V,la as E,lc as fe,na as f,p as N,ra as H,rc as he,s as y,sa as J,sc as ge,t as C,ta as K,tb as te,vc as _e,wb as ne,yc as ve}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as S}from"./chunk-LNJ3S2LQ.js";var $e=["fileUpload"];function Ve(a,i){if(a&1&&(c(0,"ion-select-option",13),p(1),s()),a&2){let e=i.$implicit;w("value",e.id),d(),I(e.name)}}function Ae(a,i){if(a&1&&(c(0,"ion-select-option",13),p(1),s()),a&2){let e=i.$implicit;w("value",e.id),d(),I(e.name)}}function Ue(a,i){if(a&1){let e=V();c(0,"ion-content",9)(1,"div",9)(2,"h1"),p(3,"Unknown Location"),s(),c(4,"p"),p(5),s(),c(6,"p"),p(7),s(),c(8,"ion-radio-group",10),R("ngModelChange",function(n){y(e);let o=f();return B(o.locationType,n)||(o.locationType=n),C(n)}),c(9,"ion-radio",11),p(10,"Camp"),s(),c(11,"ion-select",12),E("ionChange",function(){y(e);let n=f();return C(n.locationType="camp")}),R("ngModelChange",function(n){y(e);let o=f();return B(o.selectedCamp,n)||(o.selectedCamp=n),C(n)}),F(12,Ve,2,2,"ion-select-option",13,z),s(),c(14,"ion-radio",14),p(15,"Art"),s(),c(16,"ion-select",15),E("ionChange",function(){y(e);let n=f();return C(n.locationType="art")}),R("ngModelChange",function(n){y(e);let o=f();return B(o.selectedArt,n)||(o.selectedArt=n),C(n)}),F(17,Ae,2,2,"ion-select-option",13,z),s(),c(19,"ion-radio",16),p(20,"Open Camping / Other"),s(),b(21,"br"),s()()(),c(22,"ion-toolbar",17)(23,"ion-button",18),E("click",function(){y(e);let n=f();return C(n.applyTransform(n.selectedCamp,n.selectedArt,n.locationType,n.unknownLocation))}),p(24,"Apply"),s()()}if(a&2){let e=f();d(5),A('Choose the camp or art that matches the location "',e.unknownLocation,'"'),d(2),I(e.eventInfo),d(),U("ngModel",e.locationType),d(3),w("value",e.selectedCamp),U("ngModel",e.selectedCamp),d(),$(e.camps),d(4),w("value",e.selectedArt),U("ngModel",e.selectedArt),d(),$(e.art)}}function Be(a,i){if(a&1&&(b(0,"ion-progress-bar",13),c(1,"ion-text"),p(2),s(),b(3,"app-spinner"),c(4,"div",19),b(5,"img",20),s()),a&2){let e=f();w("value",e.progress),d(2),I(e.importing),d(3),w("src",e.url,Z)}}function Re(a,i){if(a&1&&(c(0,"p",22),p(1),s()),a&2){let e=f(3);d(),X("There are ",e.errors.length," problems found in the CSV. You can choose to import but it is preferable to fix the errors in red below before importing. ",e.otherErrors)}}function Ne(a,i){a&1&&(c(0,"p",22),p(1,'Click "Complete Import" to perform the import'),s())}function ze(a,i){if(a&1&&(c(0,"ion-card-subtitle",25),p(1),s()),a&2){let e=f().$implicit;d(),I(e.error)}}function Ge(a,i){var e;if(a&1&&(c(0,"ion-card-subtitle"),p(1),s()),a&2){let t=f().$implicit;d(),A("",(e=t.timeString)!=null?e:"BAD TIME"," ")}}function je(a,i){if(a&1&&(c(0,"ion-item",23)(1,"ion-card",24)(2,"ion-card-header")(3,"ion-card-title"),p(4),s(),M(5,ze,2,1,"ion-card-subtitle",25)(6,Ge,2,1,"ion-card-subtitle"),s(),c(7,"ion-card-content"),p(8),b(9,"br"),c(10,"b"),p(11),s()()()()),a&2){let e=i.$implicit;d(4),I(e.title),d(),D(!e.hosted_by_camp||e.error?5:6),d(3),I(e.description),d(3),I(e.event_type)}}function Ze(a,i){if(a&1&&(c(0,"ion-list")(1,"h1"),p(2),s(),M(3,Re,2,2,"p",22)(4,Ne,2,0,"p",22),F(5,je,12,4,"ion-item",23,q),s()),a&2){let e=f(2);d(2),A("",e.events.length," Events can be imported"),d(),D(e.errors.length>0?3:4),d(2),$(e.events)}}function Qe(a,i){if(a&1){let e=V();c(0,"div",6)(1,"div",21)(2,"ion-button",18),E("click",function(){y(e);let n=f();return C(n.doImport())}),p(3,"Import from CSV"),s()(),M(4,Ze,7,2,"ion-list"),s()}if(a&2){let e=f();d(4),D(e.events.length>0||e.errors.length>0?4:-1)}}var k=class k{constructor(){this.api=N(Te);this.location=N(ee);this.busy=!1;this.isAdmin=!1;this.importing="";this.title="Import";this.otherErrors="";this.locationType="camp";this.progress=0;this.url="";this.events=[];this.camps=[];this.art=[];this.errors=[];this.showSelectCamp=!1;this.unknownLocation="";this.eventInfo="";this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(i){return S(this,null,function*(){let e=i.target.files[0];if(!e)return;let t=new FileReader;t.onload=n=>S(this,null,function*(){var r;let o=(r=n.target)==null?void 0:r.result;this.parseCSV(o)}),t.readAsText(e)})}applyTransform(i,e,t,n){this.showSelectCamp=!1,t=="other"&&(i=void 0,e=void 0),t=="art"&&(i=void 0),t=="camp"&&(e=void 0),n&&(localStorage.setItem(`match-camp-${n}`,i),localStorage.setItem(`match-art-${n}`,e),localStorage.setItem(`match-type-${n}`,t),setTimeout(()=>{this.fixUnknownLocations()},1e3))}parseCSV(i){return S(this,null,function*(){let e=De(i+` -`);this.events=[];let t=this.mapColumns(e);this.camps=yield this.api.camps({cached:!1}),this.art=yield this.api.art({cached:!1}),this.errors=[],this.otherErrors="";let n=yield this.api.events({cached:!1}),o=0;if(t){for(let r of e)if(this.isBlankLine(r))console.log("Ignored blank line");else{let l=this.importEvent(r,t);this.isDuplicate(l,n)?(l.error="This event already exists and wont be imported",o++):this.events.push(l)}this.events=this.events.sort((r,l)=>r.title>l.title?1:-1),this.title=`Import ${this.events.length} events`,o>0&&(this.otherErrors=` There are ${o} duplicate events already imported that will be skipped.`)}this.fixUnknownLocations(),this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")})}fixUnknownLocations(){for(let i of this.events)if(i.unknownLocation){let e=localStorage[`match-camp-${i.unknownLocation}`],t=localStorage[`match-art-${i.unknownLocation}`],n=localStorage[`match-type-${i.unknownLocation}`];if(n=="camp")i.hosted_by_camp=parseInt(e),i.unknownLocation=void 0,i.other_location=void 0;else if(n=="art")i.located_at_art=t,i.unknownLocation=void 0,i.other_location=void 0;else if(n=="other")i.other_location=i.unknownLocation,i.hosted_by_camp=void 0,i.located_at_art=void 0;else if(e)i.hosted_by_camp=parseInt(e),i.unknownLocation=void 0;else{this.showSelectCamp=!0,this.unknownLocation=i.unknownLocation,this.eventInfo=`${i.title}. ${i.description}`,console.log("unknown location is",i.unknownLocation);return}}}isDuplicate(i,e){for(let t of e)if(t.occurrence_set==i.occurrence_set&&t.title==i.title&&t.description==i.description)return!0;return!1}import(){return S(this,null,function*(){this.busy=!0,this.title="Importing...";let i=0,e=0,t=this.events.length;for(;this.events.length>0;){let n;try{if(e++,n=this.events.pop(),n){let o=n.imageUrl;n.imageUrl=void 0,this.importing=n.title,this.progress=e/t;let r=yield this.api.addEvent(n);if(i++,o&&r.id){n.id=r.id;try{yield this.importImage(o,n)}catch{console.error(`Unable to import image for event ${n.title}: ${o}`)}}}}catch{console.error(`Failed to import ${n==null?void 0:n.title}: ${n==null?void 0:n.description}`)}}this.api.sendMessage(`Imported ${i} of ${e} events.`),this.busy=!1,this.api.clearCache(),this.location.back()})}isBlankLine(i){for(let e of Object.keys(i))if(i[e]&&i[e]!="")return!1;return!0}toUrl(i){let e=!1,t="";for(let n of i)if(n=="(")e=!0;else if(n==")")if(e=!1,t.length<3)t="";else return t;else e&&(t+=n);return t}importImage(i,e){return S(this,null,function*(){let t=this.toUrl(i),o=yield(yield fetch(t)).blob(),r=yield Pe(o,{quality:75,width:300});this.url=URL.createObjectURL(r),e.imageUrl=yield this.api.setImage(r,e.id),yield this.api.addEvent(e)})}importEvent(i,e){var L,x;let t={description:"",title:"",hosted_by_camp:void 0,occurrence_set:"[]",id:void 0,event_type:"Event",error:void 0,unknownLocation:void 0};t.title=i[e.title],t.description=i[e.description],t.event_type=i[e.event_type],t.event_type||(t.event_type=this.guessEventType(t.title,t.description)),t.event_type=="Yes"&&(t.event_type="Class/Workshop");let n=e.image,o=e.logo,r=e.startDay,l=e.endDay,g=e.start_time,_=e.end_time,m=i[e.location],v,h=!1;for(let u of this.camps)u.name.toLowerCase()=="unknown"&&(v=u),(m==null?void 0:m.toLowerCase().trim())==((L=u.name)==null?void 0:L.toLowerCase().trim())&&(t.hosted_by_camp=u.id,h=!0);let T=localStorage[`match-camp-${m}`],P=localStorage[`match-art-${m}`],W=localStorage[`match-type-${m}`];h||(T&&!t.hosted_by_camp?(t.hosted_by_camp=parseInt(T),h=!0):P&&!t.located_at_art&&(t.located_at_art=P,h=!0)),W=="other"&&(t.other_location=m,h=!0),h||(this.errors.push(`Location of event ${t.title} has an unknown location "${m}"`),t.error=`Unknown Location "${m}"`,t.unknownLocation=m,t.hosted_by_camp=v?v.id:void 0),n&&(t.imageUrl=i[n]),o&&this.isBlank(t.imageUrl)&&(t.imageUrl=i[o]);try{let u=this.multiOccurenceSet(i[r],i[l],i[g],i[_]);if(u.length>=1){let We=new Date(u[0].start_time),Fe=new Date(u[0].end_time);t.timeString=(x=Se(We,Fe,void 0,this.api.currentTimeZone()))==null?void 0:x.long}t.occurrence_set=JSON.stringify(u)}catch(u){this.errors.push(`There is an error with the event ${t.title}: ${u}`),t.error=`${u}`,console.error(u)}return t}multiOccurenceSet(i,e,t,n){let o=this.multiDay(i),r=[];for(let l of o){let g=this.convertToOccurrenceSet(l,e,t,n);(g.start_time.includes("NaN")||g.end_time.includes("NaN"))&&this.errors.push("The event times are invalid"),r.push(g)}return r}multiDay(i){let e=/\b(?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?),\s+[A-Z][a-z]+\s+\d{1,2}(?:st|nd|rd|th)?/g;return i.match(e)||[i]}guessEventType(i,e){let t=i?i.toLowerCase().trim():"",n=e?e.toLowerCase().trim():"",o={yoga:"Yoga/Movement/Fitness",class:"Class/Workshop",workshop:"Class/Workshop",conversation:"Class/Workshop",101:"Class/Workshop","learn to":"Class/Workshop","talk about":"Class/Workshop",relax:"Self Care","to play":"Games",films:"Performance","make a":"Arts & Crafts",meditation:"Ritual/Ceremony",ceremony:"Ritual/Ceremony",live:"Live Music",tasting:"Food/Drink",shibari:"Class/Workshop",karaoke:"Performance","happy hour":"Food/Drink",party:"Gathering/Party",spins:"Gathering/Party",djs:"Gathering/Party",dancing:"Gathering/Party",dance:"Gathering/Party",music:"Gathering/Party",movie:"Performance",pizza:"Food/Drink","fire spin":"Fire/Spectacle",session:"Class/Workshop",beginners:"Class/Workshop","safety meeting":"Class/Workshop",dungeon:"Mature Audiences",sex:"Mature Audiences",orgy:"Mature Audiences",tea:"Food/Drink",games:"Games","photo booth":"Games",cacao:"Food/Drink","bloody mary":"Food/Drink",homebrew:"Food/Drink","bring your cup":"Food/Drink",cookies:"Food/Drink",eating:"Food/Drink","drum circle":"Live Music",perform:"Performance",stroll:"Parade",acoustic:"Live Music","bar crawl":"Parade"};for(let r of Object.keys(o))if(t.includes(r)||n.includes(r))return o[r];return"Miscellaneous"}convertToOccurrenceSet(i,e,t,n){var l;if(i=(l=j(i,'"',""))==null?void 0:l.trim(),e=j(e,'"',""),e||(e=i),t.length>=19&&n.length>=19)return{start_time:t,end_time:n};t==""&&n==""&&(t="00:00am",n="11:59:59pm"),G(":",t)==2&&(t=t.replace(":00 ","")),G(":",n)==2&&(n=n.replace(":00 ",""));let o=this.toISODate(i+" "+t,void 0),r=this.toISODate(e+" "+n,o);return{start_time:o,end_time:r}}toIsoDateSlash(i,e){let t=i.split(" "),n=new Date(t[0]).toISOString().split("T")[0].split("-"),o=parseInt(n[0],10),r=parseInt(n[1],10)-1,l=parseInt(n[2],10),g=t[1].split(":"),_=parseInt(g[0],10),m=parseInt(g[1],10);i.toLowerCase().includes("pm")&&_!=12&&(_+=12);let v=O(o,r,l,_,m).replace("Z","");return e&&new Date(v).getTime()-new Date(e).getTime()<0&&(l=l+1,l>this.daysInMonth(r,o)&&(l=1,r++,r>12&&(r=0,o++)),v=O(o,r,l,_,m).replace("Z","")),v}toISODate(i,e){if(i.includes(" AM")&&(i=i.replace(" AM","am")),i.includes(" PM")&&(i=i.replace(" PM","pm")),i.includes("/"))return this.toIsoDateSlash(i,e);let t=i.split(" "),n,o=ke(void 0,"short"),r,l,g=0;for(let h of t){let T=Number.parseInt(h,10);!Number.isNaN(T)&&!n&&(n=T);let P=o.find(x=>h.toLowerCase().startsWith(x.toLowerCase()));P&&(r=P),h.toLowerCase()=="midnight"&&(l=23,g=59);let W=h.toLowerCase().endsWith("pm"),L=h.toLowerCase().endsWith("am");if(L||W||h.includes(":")){let x=h.toLowerCase().replace("pm","").replace("am","");if(x.includes(":")){let u=x.split(":");x=u[0],g=Number.parseInt(u[1])}l=Number.parseInt(x),W&&l<=11&&(l+=12),L&&l==12&&(l=0)}}if(l==null)throw new Error(`'${i}' is missing the time`);if(r==null)throw new Error(`'${i}' is missing the month`);if(n==null)throw new Error(`'${i}' is missing the day`);let _=o.indexOf(r),m=new Date().getFullYear(),v=O(m,_,n,l,g).replace("Z","");return e&&new Date(v).getTime()-new Date(e).getTime()<0&&(n=n+1,n>this.daysInMonth(_,m)&&(n=1,_++,_>12&&(_=0,m++)),v=O(m,_,n,l,g).replace("Z","")),v}daysInMonth(i,e){return new Date(e,i+1,0).getDate()}isBlank(i){return!i||i.trim()==""}mapColumns(i){if(i.length==0)return;let e=i[0],t={title:"",description:"",event_type:"",hosted_by_camp:void 0,occurrence_set:"",id:void 0};for(let n of Object.keys(e)){let o=n.toLowerCase();o.includes("event name")&&(t.title=n),o.includes("name")&&!o.includes("camp name")&&(t.title=n),o.includes("title")&&(t.title=n),o.includes("description")&&(t.description=n),o.includes("day")&&!t.startDay&&(t.startDay=n),o.includes("date")&&!t.startDay&&(t.startDay=n),o.includes("start date")&&(t.startDay=n),o.includes("end date")&&(t.endDay=n),o.includes("image")&&(t.image=n),o.includes("logo")&&(t.logo=n),o.includes("type")&&(t.event_type=n),(o.includes("start time")||o.includes("starttime"))&&(t.start_time=n),(o.includes("end time")||o.includes("endtime"))&&(t.end_time=n),o.includes("location")&&(t.location=n)}return t}};k.\u0275fac=function(e){return new(e||k)},k.\u0275cmp=Q({type:k,selectors:[["app-import-events"]],viewQuery:function(e,t){if(e&1&&H($e,7),e&2){let n;J(n=K())&&(t.fileUpload=n.first)}},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],[3,"fullscreen"],[3,"isOpen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],["title","Complete Import",3,"press","hidden"],[1,"ion-padding"],[3,"ngModelChange","ngModel"],["labelPlacement","end","value","camp"],["label"," ","interface","popover","placeholder","Select camp for event",3,"ionChange","ngModelChange","value","ngModel"],[3,"value"],["labelPlacement","end","value","art"],["label"," ","interface","popover","placeholder","Select art for event",3,"ionChange","ngModelChange","value","ngModel"],["labelPlacement","end","value","other"],[1,"ion-text-center","ion-padding"],[3,"click"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],[1,"error","ion-padding-left","ion-padding-right"],["lines","none"],["mode","ios"],[1,"error"]],template:function(e,t){if(e&1){let n=V();c(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),b(3,"ion-back-button"),s(),c(4,"ion-title",3),p(5),s()()(),c(6,"ion-content",4)(7,"ion-modal",5),Y(8,Ue,25,7,"ng-template"),s(),M(9,Be,6,3)(10,Qe,5,1,"div",6),c(11,"input",7,0),E("change",function(r){return y(n),C(t.onFileSelected(r))}),s(),c(13,"app-footer",8),E("press",function(){return y(n),C(t.import())}),s()()}e&2&&(d(5),I(t.title),d(),w("fullscreen",!0),d(),w("isOpen",t.showSelectCamp),d(2),D(t.busy?9:10),d(4),w("hidden",t.busy||t.events.length===0))},dependencies:[xe,be,ae,pe,de,me,ue,ce,re,ge,_e,Ce,ve,se,le,fe,he,we,Ie,ie,te,ne,Le,Me,oe,ye,Ee],styles:[".error[_ngcontent-%COMP%]{color:red;font-weight:700}ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-subtitle[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-select[_ngcontent-%COMP%]{width:50%;margin-left:50%}ion-radio[_ngcontent-%COMP%]{float:left;margin-top:var(--spacing-base)}"]});var Oe=k;export{Oe as ImportEventsPage}; +import{a as De}from"./chunk-F5YC2F3D.js";import{a as Me}from"./chunk-62GZOW6G.js";import{a as Pe}from"./chunk-KCPLCCSF.js";import{a as Le}from"./chunk-K6ROGVP7.js";import"./chunk-QF32E4V4.js";import{B as ke,F as j,K as Te,a as Se,h as G,s as O}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as z,Ba as p,Ca as I,Cc as ye,Da as A,E as Z,Ea as X,Eb as ie,Ec as Ce,Fb as oe,Fc as we,Ga as U,Gc as Ie,H as d,Ha as B,Ia as R,P as Q,Qc as xe,Rc as be,U as Y,Uc as Ee,Xb as re,Y as M,Yb as ae,Z as D,_ as q,_a as ee,aa as F,ba as $,ca as w,da as c,dc as se,ea as s,ec as le,fa as b,fc as ce,gc as de,hc as pe,ic as me,jc as ue,ka as V,ma as E,mc as fe,oa as f,p as N,s as y,sa as H,sc as he,t as C,ta as J,tc as ge,ua as K,ub as te,wc as _e,xb as ne,zc as ve}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as S}from"./chunk-LNJ3S2LQ.js";var $e=["fileUpload"];function Ve(a,i){if(a&1&&(c(0,"ion-select-option",13),p(1),s()),a&2){let e=i.$implicit;w("value",e.id),d(),I(e.name)}}function Ae(a,i){if(a&1&&(c(0,"ion-select-option",13),p(1),s()),a&2){let e=i.$implicit;w("value",e.id),d(),I(e.name)}}function Ue(a,i){if(a&1){let e=V();c(0,"ion-content",9)(1,"div",9)(2,"h1"),p(3,"Unknown Location"),s(),c(4,"p"),p(5),s(),c(6,"p"),p(7),s(),c(8,"ion-radio-group",10),R("ngModelChange",function(n){y(e);let o=f();return B(o.locationType,n)||(o.locationType=n),C(n)}),c(9,"ion-radio",11),p(10,"Camp"),s(),c(11,"ion-select",12),E("ionChange",function(){y(e);let n=f();return C(n.locationType="camp")}),R("ngModelChange",function(n){y(e);let o=f();return B(o.selectedCamp,n)||(o.selectedCamp=n),C(n)}),F(12,Ve,2,2,"ion-select-option",13,z),s(),c(14,"ion-radio",14),p(15,"Art"),s(),c(16,"ion-select",15),E("ionChange",function(){y(e);let n=f();return C(n.locationType="art")}),R("ngModelChange",function(n){y(e);let o=f();return B(o.selectedArt,n)||(o.selectedArt=n),C(n)}),F(17,Ae,2,2,"ion-select-option",13,z),s(),c(19,"ion-radio",16),p(20,"Open Camping / Other"),s(),b(21,"br"),s()()(),c(22,"ion-toolbar",17)(23,"ion-button",18),E("click",function(){y(e);let n=f();return C(n.applyTransform(n.selectedCamp,n.selectedArt,n.locationType,n.unknownLocation))}),p(24,"Apply"),s()()}if(a&2){let e=f();d(5),A('Choose the camp or art that matches the location "',e.unknownLocation,'"'),d(2),I(e.eventInfo),d(),U("ngModel",e.locationType),d(3),w("value",e.selectedCamp),U("ngModel",e.selectedCamp),d(),$(e.camps),d(4),w("value",e.selectedArt),U("ngModel",e.selectedArt),d(),$(e.art)}}function Be(a,i){if(a&1&&(b(0,"ion-progress-bar",13),c(1,"ion-text"),p(2),s(),b(3,"app-spinner"),c(4,"div",19),b(5,"img",20),s()),a&2){let e=f();w("value",e.progress),d(2),I(e.importing),d(3),w("src",e.url,Z)}}function Re(a,i){if(a&1&&(c(0,"p",22),p(1),s()),a&2){let e=f(3);d(),X("There are ",e.errors.length," problems found in the CSV. You can choose to import but it is preferable to fix the errors in red below before importing. ",e.otherErrors)}}function Ne(a,i){a&1&&(c(0,"p",22),p(1,'Click "Complete Import" to perform the import'),s())}function ze(a,i){if(a&1&&(c(0,"ion-card-subtitle",25),p(1),s()),a&2){let e=f().$implicit;d(),I(e.error)}}function Ge(a,i){var e;if(a&1&&(c(0,"ion-card-subtitle"),p(1),s()),a&2){let t=f().$implicit;d(),A("",(e=t.timeString)!=null?e:"BAD TIME"," ")}}function je(a,i){if(a&1&&(c(0,"ion-item",23)(1,"ion-card",24)(2,"ion-card-header")(3,"ion-card-title"),p(4),s(),M(5,ze,2,1,"ion-card-subtitle",25)(6,Ge,2,1,"ion-card-subtitle"),s(),c(7,"ion-card-content"),p(8),b(9,"br"),c(10,"b"),p(11),s()()()()),a&2){let e=i.$implicit;d(4),I(e.title),d(),D(!e.hosted_by_camp||e.error?5:6),d(3),I(e.description),d(3),I(e.event_type)}}function Ze(a,i){if(a&1&&(c(0,"ion-list")(1,"h1"),p(2),s(),M(3,Re,2,2,"p",22)(4,Ne,2,0,"p",22),F(5,je,12,4,"ion-item",23,q),s()),a&2){let e=f(2);d(2),A("",e.events.length," Events can be imported"),d(),D(e.errors.length>0?3:4),d(2),$(e.events)}}function Qe(a,i){if(a&1){let e=V();c(0,"div",6)(1,"div",21)(2,"ion-button",18),E("click",function(){y(e);let n=f();return C(n.doImport())}),p(3,"Import from CSV"),s()(),M(4,Ze,7,2,"ion-list"),s()}if(a&2){let e=f();d(4),D(e.events.length>0||e.errors.length>0?4:-1)}}var k=class k{constructor(){this.api=N(Te);this.location=N(ee);this.busy=!1;this.isAdmin=!1;this.importing="";this.title="Import";this.otherErrors="";this.locationType="camp";this.progress=0;this.url="";this.events=[];this.camps=[];this.art=[];this.errors=[];this.showSelectCamp=!1;this.unknownLocation="";this.eventInfo="";this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(i){return S(this,null,function*(){let e=i.target.files[0];if(!e)return;let t=new FileReader;t.onload=n=>S(this,null,function*(){var r;let o=(r=n.target)==null?void 0:r.result;this.parseCSV(o)}),t.readAsText(e)})}applyTransform(i,e,t,n){this.showSelectCamp=!1,t=="other"&&(i=void 0,e=void 0),t=="art"&&(i=void 0),t=="camp"&&(e=void 0),n&&(localStorage.setItem(`match-camp-${n}`,i),localStorage.setItem(`match-art-${n}`,e),localStorage.setItem(`match-type-${n}`,t),setTimeout(()=>{this.fixUnknownLocations()},1e3))}parseCSV(i){return S(this,null,function*(){let e=Me(i+` +`);this.events=[];let t=this.mapColumns(e);this.camps=yield this.api.camps({cached:!1}),this.art=yield this.api.art({cached:!1}),this.errors=[],this.otherErrors="";let n=yield this.api.events({cached:!1}),o=0;if(t){for(let r of e)if(this.isBlankLine(r))console.log("Ignored blank line");else{let l=this.importEvent(r,t);this.isDuplicate(l,n)?(l.error="This event already exists and wont be imported",o++):this.events.push(l)}this.events=this.events.sort((r,l)=>r.title>l.title?1:-1),this.title=`Import ${this.events.length} events`,o>0&&(this.otherErrors=` There are ${o} duplicate events already imported that will be skipped.`)}this.fixUnknownLocations(),this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")})}fixUnknownLocations(){for(let i of this.events)if(i.unknownLocation){let e=localStorage[`match-camp-${i.unknownLocation}`],t=localStorage[`match-art-${i.unknownLocation}`],n=localStorage[`match-type-${i.unknownLocation}`];if(n=="camp")i.hosted_by_camp=parseInt(e),i.unknownLocation=void 0,i.other_location=void 0;else if(n=="art")i.located_at_art=t,i.unknownLocation=void 0,i.other_location=void 0;else if(n=="other")i.other_location=i.unknownLocation,i.hosted_by_camp=void 0,i.located_at_art=void 0;else if(e)i.hosted_by_camp=parseInt(e),i.unknownLocation=void 0;else{this.showSelectCamp=!0,this.unknownLocation=i.unknownLocation,this.eventInfo=`${i.title}. ${i.description}`,console.log("unknown location is",i.unknownLocation);return}}}isDuplicate(i,e){for(let t of e)if(t.occurrence_set==i.occurrence_set&&t.title==i.title&&t.description==i.description)return!0;return!1}import(){return S(this,null,function*(){this.busy=!0,this.title="Importing...";let i=0,e=0,t=this.events.length;for(;this.events.length>0;){let n;try{if(e++,n=this.events.pop(),n){let o=n.imageUrl;n.imageUrl=void 0,this.importing=n.title,this.progress=e/t;let r=yield this.api.addEvent(n);if(i++,o&&r.id){n.id=r.id;try{yield this.importImage(o,n)}catch{console.error(`Unable to import image for event ${n.title}: ${o}`)}}}}catch{console.error(`Failed to import ${n==null?void 0:n.title}: ${n==null?void 0:n.description}`)}}this.api.sendMessage(`Imported ${i} of ${e} events.`),this.busy=!1,this.api.clearCache(),this.location.back()})}isBlankLine(i){for(let e of Object.keys(i))if(i[e]&&i[e]!="")return!1;return!0}toUrl(i){let e=!1,t="";for(let n of i)if(n=="(")e=!0;else if(n==")")if(e=!1,t.length<3)t="";else return t;else e&&(t+=n);return t}importImage(i,e){return S(this,null,function*(){let t=this.toUrl(i),o=yield(yield fetch(t)).blob(),r=yield Pe(o,{quality:75,width:300});this.url=URL.createObjectURL(r),e.imageUrl=yield this.api.setImage(r,e.id),yield this.api.addEvent(e)})}importEvent(i,e){var L,x;let t={description:"",title:"",hosted_by_camp:void 0,occurrence_set:"[]",id:void 0,event_type:"Event",error:void 0,unknownLocation:void 0};t.title=i[e.title],t.description=i[e.description],t.event_type=i[e.event_type],t.event_type||(t.event_type=this.guessEventType(t.title,t.description)),t.event_type=="Yes"&&(t.event_type="Class/Workshop");let n=e.image,o=e.logo,r=e.startDay,l=e.endDay,g=e.start_time,_=e.end_time,m=i[e.location],v,h=!1;for(let u of this.camps)u.name.toLowerCase()=="unknown"&&(v=u),(m==null?void 0:m.toLowerCase().trim())==((L=u.name)==null?void 0:L.toLowerCase().trim())&&(t.hosted_by_camp=u.id,h=!0);let T=localStorage[`match-camp-${m}`],P=localStorage[`match-art-${m}`],W=localStorage[`match-type-${m}`];h||(T&&!t.hosted_by_camp?(t.hosted_by_camp=parseInt(T),h=!0):P&&!t.located_at_art&&(t.located_at_art=P,h=!0)),W=="other"&&(t.other_location=m,h=!0),h||(this.errors.push(`Location of event ${t.title} has an unknown location "${m}"`),t.error=`Unknown Location "${m}"`,t.unknownLocation=m,t.hosted_by_camp=v?v.id:void 0),n&&(t.imageUrl=i[n]),o&&this.isBlank(t.imageUrl)&&(t.imageUrl=i[o]);try{let u=this.multiOccurenceSet(i[r],i[l],i[g],i[_]);if(u.length>=1){let We=new Date(u[0].start_time),Fe=new Date(u[0].end_time);t.timeString=(x=Se(We,Fe,void 0,this.api.currentTimeZone()))==null?void 0:x.long}t.occurrence_set=JSON.stringify(u)}catch(u){this.errors.push(`There is an error with the event ${t.title}: ${u}`),t.error=`${u}`,console.error(u)}return t}multiOccurenceSet(i,e,t,n){let o=this.multiDay(i),r=[];for(let l of o){let g=this.convertToOccurrenceSet(l,e,t,n);(g.start_time.includes("NaN")||g.end_time.includes("NaN"))&&this.errors.push("The event times are invalid"),r.push(g)}return r}multiDay(i){let e=/\b(?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?),\s+[A-Z][a-z]+\s+\d{1,2}(?:st|nd|rd|th)?/g;return i.match(e)||[i]}guessEventType(i,e){let t=i?i.toLowerCase().trim():"",n=e?e.toLowerCase().trim():"",o={yoga:"Yoga/Movement/Fitness",class:"Class/Workshop",workshop:"Class/Workshop",conversation:"Class/Workshop",101:"Class/Workshop","learn to":"Class/Workshop","talk about":"Class/Workshop",relax:"Self Care","to play":"Games",films:"Performance","make a":"Arts & Crafts",meditation:"Ritual/Ceremony",ceremony:"Ritual/Ceremony",live:"Live Music",tasting:"Food/Drink",shibari:"Class/Workshop",karaoke:"Performance","happy hour":"Food/Drink",party:"Gathering/Party",spins:"Gathering/Party",djs:"Gathering/Party",dancing:"Gathering/Party",dance:"Gathering/Party",music:"Gathering/Party",movie:"Performance",pizza:"Food/Drink","fire spin":"Fire/Spectacle",session:"Class/Workshop",beginners:"Class/Workshop","safety meeting":"Class/Workshop",dungeon:"Mature Audiences",sex:"Mature Audiences",orgy:"Mature Audiences",tea:"Food/Drink",games:"Games","photo booth":"Games",cacao:"Food/Drink","bloody mary":"Food/Drink",homebrew:"Food/Drink","bring your cup":"Food/Drink",cookies:"Food/Drink",eating:"Food/Drink","drum circle":"Live Music",perform:"Performance",stroll:"Parade",acoustic:"Live Music","bar crawl":"Parade"};for(let r of Object.keys(o))if(t.includes(r)||n.includes(r))return o[r];return"Miscellaneous"}convertToOccurrenceSet(i,e,t,n){var l;if(i=(l=j(i,'"',""))==null?void 0:l.trim(),e=j(e,'"',""),e||(e=i),t.length>=19&&n.length>=19)return{start_time:t,end_time:n};t==""&&n==""&&(t="00:00am",n="11:59:59pm"),G(":",t)==2&&(t=t.replace(":00 ","")),G(":",n)==2&&(n=n.replace(":00 ",""));let o=this.toISODate(i+" "+t,void 0),r=this.toISODate(e+" "+n,o);return{start_time:o,end_time:r}}toIsoDateSlash(i,e){let t=i.split(" "),n=new Date(t[0]).toISOString().split("T")[0].split("-"),o=parseInt(n[0],10),r=parseInt(n[1],10)-1,l=parseInt(n[2],10),g=t[1].split(":"),_=parseInt(g[0],10),m=parseInt(g[1],10);i.toLowerCase().includes("pm")&&_!=12&&(_+=12);let v=O(o,r,l,_,m).replace("Z","");return e&&new Date(v).getTime()-new Date(e).getTime()<0&&(l=l+1,l>this.daysInMonth(r,o)&&(l=1,r++,r>12&&(r=0,o++)),v=O(o,r,l,_,m).replace("Z","")),v}toISODate(i,e){if(i.includes(" AM")&&(i=i.replace(" AM","am")),i.includes(" PM")&&(i=i.replace(" PM","pm")),i.includes("/"))return this.toIsoDateSlash(i,e);let t=i.split(" "),n,o=ke(void 0,"short"),r,l,g=0;for(let h of t){let T=Number.parseInt(h,10);!Number.isNaN(T)&&!n&&(n=T);let P=o.find(x=>h.toLowerCase().startsWith(x.toLowerCase()));P&&(r=P),h.toLowerCase()=="midnight"&&(l=23,g=59);let W=h.toLowerCase().endsWith("pm"),L=h.toLowerCase().endsWith("am");if(L||W||h.includes(":")){let x=h.toLowerCase().replace("pm","").replace("am","");if(x.includes(":")){let u=x.split(":");x=u[0],g=Number.parseInt(u[1])}l=Number.parseInt(x),W&&l<=11&&(l+=12),L&&l==12&&(l=0)}}if(l==null)throw new Error(`'${i}' is missing the time`);if(r==null)throw new Error(`'${i}' is missing the month`);if(n==null)throw new Error(`'${i}' is missing the day`);let _=o.indexOf(r),m=new Date().getFullYear(),v=O(m,_,n,l,g).replace("Z","");return e&&new Date(v).getTime()-new Date(e).getTime()<0&&(n=n+1,n>this.daysInMonth(_,m)&&(n=1,_++,_>12&&(_=0,m++)),v=O(m,_,n,l,g).replace("Z","")),v}daysInMonth(i,e){return new Date(e,i+1,0).getDate()}isBlank(i){return!i||i.trim()==""}mapColumns(i){if(i.length==0)return;let e=i[0],t={title:"",description:"",event_type:"",hosted_by_camp:void 0,occurrence_set:"",id:void 0};for(let n of Object.keys(e)){let o=n.toLowerCase();o.includes("event name")&&(t.title=n),o.includes("name")&&!o.includes("camp name")&&(t.title=n),o.includes("title")&&(t.title=n),o.includes("description")&&(t.description=n),o.includes("day")&&!t.startDay&&(t.startDay=n),o.includes("date")&&!t.startDay&&(t.startDay=n),o.includes("start date")&&(t.startDay=n),o.includes("end date")&&(t.endDay=n),o.includes("image")&&(t.image=n),o.includes("logo")&&(t.logo=n),o.includes("type")&&(t.event_type=n),(o.includes("start time")||o.includes("starttime"))&&(t.start_time=n),(o.includes("end time")||o.includes("endtime"))&&(t.end_time=n),o.includes("location")&&(t.location=n)}return t}};k.\u0275fac=function(e){return new(e||k)},k.\u0275cmp=Q({type:k,selectors:[["app-import-events"]],viewQuery:function(e,t){if(e&1&&H($e,7),e&2){let n;J(n=K())&&(t.fileUpload=n.first)}},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],[3,"fullscreen"],[3,"isOpen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],["title","Complete Import",3,"press","hidden"],[1,"ion-padding"],[3,"ngModelChange","ngModel"],["labelPlacement","end","value","camp"],["label"," ","interface","popover","placeholder","Select camp for event",3,"ionChange","ngModelChange","value","ngModel"],[3,"value"],["labelPlacement","end","value","art"],["label"," ","interface","popover","placeholder","Select art for event",3,"ionChange","ngModelChange","value","ngModel"],["labelPlacement","end","value","other"],[1,"ion-text-center","ion-padding"],[3,"click"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],[1,"error","ion-padding-left","ion-padding-right"],["lines","none"],["mode","ios"],[1,"error"]],template:function(e,t){if(e&1){let n=V();c(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),b(3,"ion-back-button"),s(),c(4,"ion-title",3),p(5),s()()(),c(6,"ion-content",4)(7,"ion-modal",5),Y(8,Ue,25,7,"ng-template"),s(),M(9,Be,6,3)(10,Qe,5,1,"div",6),c(11,"input",7,0),E("change",function(r){return y(n),C(t.onFileSelected(r))}),s(),c(13,"app-footer",8),E("press",function(){return y(n),C(t.import())}),s()()}e&2&&(d(5),I(t.title),d(),w("fullscreen",!0),d(),w("isOpen",t.showSelectCamp),d(2),D(t.busy?9:10),d(4),w("hidden",t.busy||t.events.length===0))},dependencies:[xe,be,ae,pe,de,me,ue,ce,re,ge,_e,Ce,ve,se,le,fe,he,we,Ie,ie,te,ne,Le,De,oe,ye,Ee],styles:[".error[_ngcontent-%COMP%]{color:red;font-weight:700}ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-subtitle[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-select[_ngcontent-%COMP%]{width:50%;margin-left:50%}ion-radio[_ngcontent-%COMP%]{float:left;margin-top:var(--spacing-base)}"]});var Oe=k;export{Oe as ImportEventsPage}; diff --git a/.admin-app/chunk-Q7SRVC5Z.js b/.admin-app/chunk-MZHM7UQO.js similarity index 91% rename from .admin-app/chunk-Q7SRVC5Z.js rename to .admin-app/chunk-MZHM7UQO.js index 4293a821..93618cc7 100644 --- a/.admin-app/chunk-Q7SRVC5Z.js +++ b/.admin-app/chunk-MZHM7UQO.js @@ -1 +1 @@ -import{Aa as m,Ba as u,Ca as b,Cc as y,Dc as h,H as t,P as c,Ua as s,X as p,Y as l,ba as v,ca as o,da as a,db as C,ea as g,na as f,yc as x}from"./chunk-FDEJMFAU.js";function M(i,d){i&1&&g(0,"ion-spinner",2)}function P(i,d){if(i&1&&(o(0,"ion-text",5)(1,"small"),m(2),a()()),i&2){let e=f();t(2),b("",(e.progress()*100).toFixed(0),"% Complete")}}var r=class r{constructor(){this.title=s("Processing...");this.progress=s(0);this.isIndeterminate=s(!1)}};r.\u0275fac=function(e){return new(e||r)},r.\u0275cmp=c({type:r,selectors:[["app-progress-overlay"]],inputs:{title:[1,"title"],progress:[1,"progress"],isIndeterminate:[1,"isIndeterminate"]},decls:8,vars:5,consts:[[1,"progress-overlay"],[1,"progress-container"],["name","crescent"],["color","light"],[3,"type","value"],["color","medium"]],template:function(e,n){e&1&&(o(0,"div",0)(1,"div",1),p(2,M,1,0,"ion-spinner",2),o(3,"ion-text",3)(4,"h2"),m(5),a()(),g(6,"ion-progress-bar",4),p(7,P,3,1,"ion-text",5),a()()),e&2&&(t(2),l(n.isIndeterminate()?-1:2),t(3),u(n.title()),t(),v("type",n.isIndeterminate()?"indeterminate":"determinate")("value",n.isIndeterminate()?void 0:n.progress()),t(),l(n.isIndeterminate()?-1:7))},dependencies:[C,y,h,x],styles:[".progress-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.progress-container[_ngcontent-%COMP%]{background:var(--ion-color-dark);border-radius:var(--spacing-md);padding:var(--spacing-2xl);text-align:center;min-width:250px;box-shadow:0 4px 16px #0000004d}.progress-container[_ngcontent-%COMP%] ion-spinner[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg);--color: var(--ion-color-primary)}.progress-container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:var(--spacing-base) 0 var(--spacing-lg);font-size:var(--font-size-base)}.progress-bar-container[_ngcontent-%COMP%]{width:100%;height:6px;background:#fff3;border-radius:var(--br-sm);overflow:hidden;margin:var(--spacing-lg) 0}.progress-bar[_ngcontent-%COMP%]{height:100%;background:linear-gradient(90deg,var(--ion-color-primary),var(--ion-color-primary-shade));transition:width .3s ease;border-radius:var(--br-sm)}"]});var I=r;export{I as a}; +import{Ba as m,Ca as u,Da as b,Dc as y,Ec as h,H as t,P as c,Va as s,Y as p,Z as l,ca as v,da as o,ea as a,eb as C,fa as g,oa as f,zc as x}from"./chunk-LVL3PYF7.js";function M(i,d){i&1&&g(0,"ion-spinner",2)}function P(i,d){if(i&1&&(o(0,"ion-text",5)(1,"small"),m(2),a()()),i&2){let e=f();t(2),b("",(e.progress()*100).toFixed(0),"% Complete")}}var r=class r{constructor(){this.title=s("Processing...");this.progress=s(0);this.isIndeterminate=s(!1)}};r.\u0275fac=function(e){return new(e||r)},r.\u0275cmp=c({type:r,selectors:[["app-progress-overlay"]],inputs:{title:[1,"title"],progress:[1,"progress"],isIndeterminate:[1,"isIndeterminate"]},decls:8,vars:5,consts:[[1,"progress-overlay"],[1,"progress-container"],["name","crescent"],["color","light"],[3,"type","value"],["color","medium"]],template:function(e,n){e&1&&(o(0,"div",0)(1,"div",1),p(2,M,1,0,"ion-spinner",2),o(3,"ion-text",3)(4,"h2"),m(5),a()(),g(6,"ion-progress-bar",4),p(7,P,3,1,"ion-text",5),a()()),e&2&&(t(2),l(n.isIndeterminate()?-1:2),t(3),u(n.title()),t(),v("type",n.isIndeterminate()?"indeterminate":"determinate")("value",n.isIndeterminate()?void 0:n.progress()),t(),l(n.isIndeterminate()?-1:7))},dependencies:[C,y,h,x],styles:[".progress-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.progress-container[_ngcontent-%COMP%]{background:var(--ion-color-dark);border-radius:var(--spacing-md);padding:var(--spacing-2xl);text-align:center;min-width:250px;box-shadow:0 4px 16px #0000004d}.progress-container[_ngcontent-%COMP%] ion-spinner[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg);--color: var(--ion-color-primary)}.progress-container[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:var(--spacing-base) 0 var(--spacing-lg);font-size:var(--font-size-base)}.progress-bar-container[_ngcontent-%COMP%]{width:100%;height:6px;background:#fff3;border-radius:var(--br-sm);overflow:hidden;margin:var(--spacing-lg) 0}.progress-bar[_ngcontent-%COMP%]{height:100%;background:linear-gradient(90deg,var(--ion-color-primary),var(--ion-color-primary-shade));transition:width .3s ease;border-radius:var(--br-sm)}"]});var I=r;export{I as a}; diff --git a/.admin-app/chunk-N5F4Z23V.js b/.admin-app/chunk-N5F4Z23V.js deleted file mode 100644 index 66978942..00000000 --- a/.admin-app/chunk-N5F4Z23V.js +++ /dev/null @@ -1 +0,0 @@ -import{a as Ti}from"./chunk-GJLDF72A.js";import{a as Ei}from"./chunk-3PGTX6TC.js";import{b as A}from"./chunk-YLPHNW7F.js";import{a as Si}from"./chunk-Q7SRVC5Z.js";import{a as yi}from"./chunk-NIJZXRAZ.js";import{a as bi}from"./chunk-MTVNVIRQ.js";import{a as vi}from"./chunk-OIMHMYK4.js";import{a as xi}from"./chunk-LKPHKBDT.js";import{a as gi}from"./chunk-5B2MUMUK.js";import"./chunk-OZ2IKH4J.js";import"./chunk-DUKSTT3K.js";import{G as Ci,P as hi,R as _i,a as mi,c as ui,ja as fi}from"./chunk-LIWDDRYP.js";import{F as L,J as di,K as S,e as pi}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as w,Aa as C,Ca as b,Db as $,Dc as ai,Ec as ri,Fa as B,Fc as si,Ga as F,H as o,Ha as O,Ma as f,Mc as li,P as R,Qc as ci,Ua as N,Wb as j,X as p,Y as d,_a as Q,aa as I,ba as a,ca as r,cc as H,da as s,db as U,dc as K,ea as l,ec as W,fc as J,gc as X,ic as Z,ja as V,jb as z,kb as G,l as M,la as k,lc as ii,na as c,nb as D,p as _,rc as ti,s as x,sc as ei,t as y,tb as Y,vc as ni,w as P,wb as q,yc as oi}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";var g=class g{constructor(){this.api=_(S)}exportCampsToCSV(e,i){let n=[];for(let u of i)n.push({id:u.id,name:u.name,description:u.description,email:u.contact_email,placed:u.pin!=""?"Yes":"No"});let m=L(e.toLowerCase()," ","-");A(`${m}-camps.csv`,n)}exportCampsEmail(e,i){let n=[];for(let u of i)pi(u.contact_email)||n.push({email:u.contact_email});if(n.length==0){this.api.sendMessage("No Camps have email addresses to be exported.");return}let m=L(e.toLowerCase()," ","-");A(`${m}-camp-email.txt`,n,{stripQuotes:!0,hideHeaders:!0})}};g.\u0275fac=function(i){return new(i||g)},g.\u0275prov=M({token:g,factory:g.\u0275fac,providedIn:"root"});var E=g;var ki=t=>[t],T=t=>({camp:t}),wi=(t,e)=>e.id;function Li(t,e){if(t&1&&l(0,"app-progress-overlay",8),t&2){let i=c();a("title","Inviting...")("progress",i.progress())}}function Ai(t,e){if(t&1){let i=V();r(0,"ion-toolbar")(1,"ion-searchbar",12),k("ionInput",function(m){x(i);let u=c();return y(u.handleSearch(m))}),O("ngModelChange",function(m){x(i);let u=c();return F(u.searchQuery,m)||(u.searchQuery=m),y(m)}),s(),r(2,"ion-button",13),k("click",function(){x(i);let m=c();return y(m.toggleGrid())}),l(3,"ion-icon",14),s()()}if(t&2){let i=c();o(),a("debounce",600)("placeholder","Search camps at "+i.title),B("ngModel",i.searchQuery),o(2),a("name",i.isGrid?"list-outline":"grid-outline")}}function Mi(t,e){if(t&1&&l(0,"ion-progress-bar",9),t&2){let i=c();a("value",i.progress())}}function Ri(t,e){if(t&1&&l(0,"app-card",16),t&2){let i=c(3);a("title",i.filteredBySearch?"No Camps Found":"No Camps")("description",i.filteredBySearch?"No camps found matching that search":"There are no theme camps registered for "+i.festivalTitle)}}function Vi(t,e){if(t&1&&p(0,Ri,1,2,"app-card",16),t&2){let i=c(2);d(i.camps.length===0?0:-1)}}function Bi(t,e){if(t&1&&(r(0,"app-card",17),l(1,"app-img",19),r(2,"ion-button",20),C(3," Register Camp "),s()()),t&2){let i=c(3);a("description","Camp registration for "+i.festivalTitle+" is open."),o(),a("width","100px")("height","100px")("src",i.imageUrl),o(),a("routerLink",i.newRoute())}}function Fi(t,e){if(t&1&&l(0,"app-card",18),t&2){let i=c(3);a("description",i.camps.length===0?"Registration for camps at "+i.festivalTitle+" have been disabled. You cannot register a camp at this time.":"Changes to camps at "+i.festivalTitle+" have been disabled. You cannot make any changes at this time.")}}function Oi(t,e){if(t&1&&p(0,Bi,4,5,"app-card",17)(1,Fi,1,1,"app-card",18),t&2){let i=c(2);d(i.camps.length===0&&i.api.campRegistration()?0:!i.api.campRegistration()&&!i.api.campEditing()?1:-1)}}function Ni(t,e){t&1&&(r(0,"ion-button",26),l(1,"ion-icon",31),s())}function Qi(t,e){t&1&&(r(0,"ion-button",27),l(1,"ion-icon",32),s())}function Ui(t,e){if(t&1&&(r(0,"div",22)(1,"ion-card",23),l(2,"app-img",24),r(3,"ion-card-header",25)(4,"ion-card-title"),C(5),p(6,Ni,2,0,"ion-button",26),p(7,Qi,2,0,"ion-button",27),s()(),r(8,"ion-card-content"),C(9),r(10,"div",28)(11,"ion-button",29),C(12,"Edit"),s(),r(13,"ion-button",30),C(14,"Events"),s(),r(15,"ion-button",30),C(16,"Music"),s()()()()()),t&2){let i=e.$implicit,n=c(4);o(2),a("routerLink",n.editRoute(i))("src",n.image(i)),o(),a("routerLink",n.editRoute(i)),o(2),b("",i.name," "),o(),d(i.pin?6:-1),o(),d(n.isAdmin&&i.status===n.ApprovalStatus.Unapproved?7:-1),o(2),b(" ",i.description," "),o(2),a("disabled",!n.canEditCamp)("routerLink","../camp/"+f(15,ki,i.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../events")("queryParams",f(17,T,i.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../music")("queryParams",f(19,T,i.id))}}function zi(t,e){if(t&1&&(r(0,"div",21),w(1,Ui,17,21,"div",22,wi),s()),t&2){let i=c(3);a("ngClass",i.camps.length>1?"grid":"grid1"),o(),I(i.camps)}}function Gi(t,e){t&1&&l(0,"ion-icon",31)}function Di(t,e){t&1&&l(0,"ion-icon",37)}function Yi(t,e){if(t&1&&(r(0,"ion-item"),l(1,"app-img",35),r(2,"ion-text",36),C(3),p(4,Gi,1,0,"ion-icon",31),p(5,Di,1,0,"ion-icon",37),s(),r(6,"div",3)(7,"ion-button",30),C(8,"Events"),s(),r(9,"ion-button",30),C(10,"Music"),s()()()),t&2){let i=e.$implicit,n=c(4);o(),a("width","45px")("height","45px")("routerLink",n.editRoute(i))("src",n.image(i)),o(),a("routerLink",n.editRoute(i)),o(),b(" ",i.name," "),o(),d(i.pin?4:-1),o(),d(n.isAdmin&&i.status===n.ApprovalStatus.Unapproved?5:-1),o(2),a("disabled",!n.canEditEvent)("routerLink","../events")("queryParams",f(14,T,i.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../music")("queryParams",f(16,T,i.id))}}function qi(t,e){if(t&1&&(r(0,"div",33)(1,"ion-card")(2,"ion-list"),w(3,Yi,11,18,"ion-item",null,wi),s()()(),l(5,"div",34)(6,"div",34)),t&2){let i=c(3);o(3),I(i.camps)}}function $i(t,e){if(t&1&&p(0,zi,3,1,"div",21)(1,qi,7,0),t&2){let i=c(2);d(i.isGrid?0:1)}}function ji(t,e){if(t&1&&(r(0,"div",10)(1,"div",15),p(2,Vi,1,1)(3,Oi,2,1),s(),p(4,$i,2,1),s()),t&2){let i=c();o(),a("ngClass",i.camps.length>0?"":"pad-vertical"),o(),d(i.isAdmin?2:3),o(2),d(i.camps.length>0?4:-1)}}function Hi(t,e){t&1&&l(0,"app-spinner")}function Ki(t,e){if(t&1&&l(0,"app-footer",11),t&2){let i=c();a("routeTo",i.newRoute())}}var v=class v{constructor(){this.api=_(S);this.router=_(z);this.campService=_(E);this.store=_(di);this.inviteEmailService=_(Ti);this.ApprovalStatus=xi;this.vanity=N();this.camps=[];this.busy=!0;this.isAdmin=!1;this.title="";this.festivalTitle="";this.canRegister=!1;this.canEditCamp=!1;this.canAddCamp=!1;this.canEditEvent=!1;this.filteredBySearch=!1;this.imageUrl="";this.isGrid=!1;this.buttons=[];this.progress=P(0);this.overlayTitle=P("");this.searchQuery="";fi({add:mi,locationSharp:_i,listOutline:hi,gridOutline:Ci,alertCircleSharp:ui})}message(e){setTimeout(()=>{this.api.sendMessage(e)},1)}importCSV(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl("./import")})}importKML(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl(`${this.vanity()}/import-kml/camps`)})}exportCSV(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.exportToCSV()})}toggleGrid(){this.isGrid=!this.isGrid,this.store.set("isGrid",`${!this.isGrid}`)}ngOnInit(){return h(this,null,function*(){var e;yield this.api.setFestivalByVanity(this.vanity(),!0),this.title=`${this.api.festivalTitle()}`,this.festivalTitle=this.api.festivalTitle(),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.imageUrl=(e=this.api.imageURL(this.api.festivalImage()))!=null?e:"",this.canAddCamp=this.api.campRegistration()||this.isAdmin,this.canEditCamp=this.api.campRegistration()||this.api.campEditing()||this.isAdmin,this.canEditEvent=this.api.campRegistration()||this.api.eventEditing()||this.isAdmin,this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"},{title:"Export Email Addresses",method:this.exportEmail(),icon:"mail-outline"},{title:"Import KML",method:this.importKML(),icon:"cloud-upload-outline"},{title:"Invite All Theme Camps",method:this.inviteAllCamps(),icon:"mail-outline"}]:[],this.isGrid=this.store.get("isGrid")!=="true"})}inviteAllCamps(){return()=>h(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}yield this.inviteEmailService.inviteAllCamps(this.camps,this.progress)})}exportEmail(){return()=>h(this,null,function*(){this.campService.exportCampsEmail(this.festivalTitle,this.camps)})}ionViewDidEnter(){return h(this,null,function*(){let e=yield this.api.camps({cached:!0}),i=this.store.get("campsSearchQuery");i?(this.searchQuery=i,this.camps=this.filterCamps(e,i),this.filteredBySearch=i.length>0):(this.searchQuery="",this.camps=e,this.filteredBySearch=!1),this.busy=!1})}filterCamps(e,i){let n=i.toLowerCase();return e.filter(m=>m.name.toLowerCase().includes(n))}handleSearch(e){return h(this,null,function*(){let i=e.target.value.toLowerCase();this.searchQuery=i,this.store.set("campsSearchQuery",i||void 0);let n=yield this.api.camps({cached:!0});this.camps=this.filterCamps(n,i),this.filteredBySearch=i.length>0})}editRoute(e){return this.canEditCamp?"../camp/"+e.id:void 0}newRoute(){return this.canEditCamp?"../camp/new":void 0}image(e){return e.imageUrl?this.api.imageURL(e.imageUrl):"./assets/camp.svg"}exportToCSV(){this.campService.exportCampsToCSV(this.festivalTitle,this.camps)}};v.\u0275fac=function(i){return new(i||v)},v.\u0275cmp=R({type:v,selectors:[["app-camps"]],inputs:{vanity:[1,"vanity"]},decls:17,vars:8,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../camp/new",3,"hidden"],["name","add"],[3,"buttons"],[3,"fullscreen"],[3,"title","progress"],[3,"value"],[1,"large-border"],["title","Add Camp",3,"routeTo"],["mode","ios","search-icon","none","show-clear-button","always",3,"ionInput","ngModelChange","debounce","placeholder","ngModel"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],[1,"ion-text-center",3,"ngClass"],[3,"title","description"],["title","Registration",3,"description"],["title","Camp Registration",3,"description"],["logo","",1,"logo","ion-padding",3,"width","height","src"],["shape","round",3,"routerLink"],[1,"pad-below",3,"ngClass"],[1,"grid-item"],[1,"clickable"],[3,"routerLink","src"],[3,"routerLink"],["fill","clear","color","light",1,"pin-button"],["fill","clear","color","warning",1,"approval-button"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["color","secondary",3,"disabled","routerLink"],["color","secondary",3,"disabled","routerLink","queryParams"],["size","small","name","location-sharp",1,"pin"],["size","small","name","alert-circle-sharp"],[1,"border"],[1,"ion-padding"],[1,"clickable",2,"min-width","45px",3,"width","height","routerLink","src"],[1,"clickable",2,"width","100%","padding","1rem",3,"routerLink"],["size","small","color","warning","name","alert-circle-sharp"]],template:function(i,n){i&1&&(r(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),l(3,"ion-back-button"),s(),r(4,"ion-title",2),C(5,"Camps"),s(),r(6,"ion-buttons",3)(7,"ion-button",4),l(8,"ion-icon",5),s(),l(9,"app-side",6),s()()(),r(10,"ion-content",7),p(11,Li,1,2,"app-progress-overlay",8),p(12,Ai,4,4,"ion-toolbar"),p(13,Mi,1,1,"ion-progress-bar",9),p(14,ji,5,3,"div",10)(15,Hi,1,0,"app-spinner"),p(16,Ki,1,1,"app-footer",11),s()),i&2&&(o(7),a("hidden",!n.canAddCamp),o(2),a("buttons",n.buttons),o(),a("fullscreen",!0),o(),d(n.progress()>0?11:-1),o(),d(n.camps.length>1||n.filteredBySearch?12:-1),o(),d(n.progress()>0?13:-1),o(),d(n.busy?15:14),o(2),d(n.isAdmin?16:-1))},dependencies:[ai,ci,oi,vi,U,Q,$,Y,q,D,G,ti,si,K,j,ri,H,ii,li,W,X,Z,J,Ei,ni,ei,gi,bi,yi,Si],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-content[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:var(--font-size-base)}h1[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.pin[_ngcontent-%COMP%]{color:var(--ion-color-primary);opacity:.5}.pin-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs))}.approval-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs));right:0}.logo[_ngcontent-%COMP%]{--app-background-color: transparent;--border-radius: .5rem}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-base)}"]});var Pi=v;export{Pi as CampsPage}; diff --git a/.admin-app/chunk-NMYQM7YV.js b/.admin-app/chunk-NMYQM7YV.js new file mode 100644 index 00000000..e66faef9 --- /dev/null +++ b/.admin-app/chunk-NMYQM7YV.js @@ -0,0 +1 @@ +import{a as ke,b as Re,c as Be}from"./chunk-DGWV6NC4.js";import{a as Le,b as Ve}from"./chunk-UDWQF54V.js";import{a as Me}from"./chunk-MZHM7UQO.js";import{a as Fe}from"./chunk-F5YC2F3D.js";import{a as Ae}from"./chunk-3XGYA3SU.js";import{a as Pe}from"./chunk-RKW74V7I.js";import{a as we}from"./chunk-LZ3XWWPZ.js";import"./chunk-62GZOW6G.js";import{a as Ie}from"./chunk-LKPHKBDT.js";import"./chunk-3OSW3EO7.js";import"./chunk-U3YCGDGQ.js";import{a as Te}from"./chunk-K6ROGVP7.js";import"./chunk-OZ2IKH4J.js";import"./chunk-DUKSTT3K.js";import{I as ye,K as xe,T as Se,V as be,a as _e,d as fe,oa as Ee}from"./chunk-QF32E4V4.js";import{J as Ce,K as ve}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as G,$a as H,Ba as d,Ca as I,Da as w,Eb as V,Ec as pe,Fc as me,Ga as F,Gc as de,H as o,Ha as A,Ia as M,Na as y,Oc as ce,P,Qc as ue,Rc as he,Sc as ge,U,Ua as Y,Va as E,Xb as X,Y as u,Z as h,Zb as Z,aa as b,ba as T,ca as a,da as r,dc as ee,ea as s,eb as K,ec as te,fa as m,fc as ie,gc as ne,hc as oe,jc as ae,ka as D,kb as $,lb as j,ma as _,mc as re,oa as l,ob as J,p as f,s as C,sa as q,sc as se,t as v,ta as W,tc as R,ua as z,ub as L,w as Q,wc as B,xb as k,zc as le}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as g}from"./chunk-LNJ3S2LQ.js";function Ge(t,i){if(t&1&&(r(0,"ion-item")(1,"ion-radio",4),d(2),s()()),t&2){let e=i.$implicit;o(),a("value",e),o(),I(e)}}var x=class x{constructor(){this.campTypes=E.required();this.selectedFilter=E("All");this.filterChange=Y();this.selectedValue=""}ngOnInit(){this.selectedValue=this.selectedFilter()||"All"}onFilterChange(i){this.filterChange.emit(i)}};x.\u0275fac=function(e){return new(e||x)},x.\u0275cmp=P({type:x,selectors:[["app-camp-filter"]],inputs:{campTypes:[1,"campTypes"],selectedFilter:[1,"selectedFilter"]},outputs:{filterChange:"filterChange"},decls:13,vars:1,consts:[[3,"ngModelChange","ionChange","ngModel"],["mode","ios","value","All","labelPlacement","end"],["mode","ios","value","Flagged","labelPlacement","end"],["mode","ios","value","Unplaced","labelPlacement","end"],["mode","ios","labelPlacement","end",3,"value"]],template:function(e,n){e&1&&(r(0,"ion-list")(1,"ion-radio-group",0),M("ngModelChange",function(c){return A(n.selectedValue,c)||(n.selectedValue=c),c}),_("ionChange",function(){return n.onFilterChange(n.selectedValue)}),r(2,"ion-item")(3,"ion-radio",1),d(4,"All"),s()(),r(5,"ion-item")(6,"ion-radio",2),d(7,"Flagged"),s()(),r(8,"ion-item")(9,"ion-radio",3),d(10,"Unplaced"),s()(),b(11,Ge,3,2,"ion-item",null,G),s()()),e&2&&(o(),F("ngModel",n.selectedValue),o(10),T(n.campTypes()))},dependencies:[B,R,ue,he,V,L,k],encapsulation:2});var O=x;var qe=["filterPopover"],We=t=>[t],N=t=>({camp:t}),Ne=(t,i)=>i.id;function ze(t,i){if(t&1&&m(0,"app-progress-overlay",9),t&2){let e=l();a("title","Inviting...")("progress",e.progress())}}function Ye(t,i){if(t&1){let e=D();r(0,"ion-toolbar")(1,"ion-searchbar",14),_("ionBlur",function(){C(e);let p=l();return v(p.saveSearch())})("ionInput",function(p){C(e);let c=l();return v(c.handleSearch(p))}),M("ngModelChange",function(p){C(e);let c=l();return A(c.searchQuery,p)||(c.searchQuery=p),v(p)}),s(),r(2,"ion-button",15),_("click",function(){C(e);let p=l();return v(p.toggleGrid())}),m(3,"ion-icon",16),s(),r(4,"ion-button",15),_("click",function(p){C(e);let c=l();return v(c.openFilterPopover(p))}),m(5,"ion-icon",17),s()()}if(t&2){let e=l();o(),a("debounce",600)("placeholder","Search camps at "+e.title),F("ngModel",e.searchQuery),o(2),a("name",e.isGrid?"list-outline":"grid-outline")}}function He(t,i){if(t&1&&m(0,"ion-progress-bar",10),t&2){let e=l();a("value",e.progress())}}function Ke(t,i){if(t&1&&m(0,"app-card",19),t&2){let e=l(3);a("title",e.filteredBySearch?"No Camps Found":"No Camps")("description",e.filteredBySearch?"No camps found matching that search":"There are no theme camps registered for "+e.festivalTitle)}}function $e(t,i){if(t&1&&u(0,Ke,1,2,"app-card",19),t&2){let e=l(2);h(e.camps.length===0?0:-1)}}function je(t,i){if(t&1&&(r(0,"app-card",20),m(1,"app-img",22),r(2,"ion-button",23),d(3," Register Camp "),s()()),t&2){let e=l(3);a("description","Camp registration for "+e.festivalTitle+" is open."),o(),a("width","100px")("height","100px")("src",e.imageUrl),o(),a("routerLink",e.newRoute())}}function Je(t,i){if(t&1&&m(0,"app-card",21),t&2){let e=l(3);a("description",e.camps.length===0?"Registration for camps at "+e.festivalTitle+" have been disabled. You cannot register a camp at this time.":"Changes to camps at "+e.festivalTitle+" have been disabled. You cannot make any changes at this time.")}}function Xe(t,i){if(t&1&&u(0,je,4,5,"app-card",20)(1,Je,1,1,"app-card",21),t&2){let e=l(2);h(e.camps.length===0&&e.api.campRegistration()?0:!e.api.campRegistration()&&!e.api.campEditing()?1:-1)}}function Ze(t,i){if(t&1&&(r(0,"div",25)(1,"ion-card",26),m(2,"app-img",27),r(3,"ion-card-header",28)(4,"ion-card-title"),d(5),m(6,"app-moderation-flag",29)(7,"app-location-status",30)(8,"app-approval-status",31),s()(),r(9,"ion-card-content"),d(10),r(11,"div",32)(12,"ion-button",33),d(13,"Edit"),s(),r(14,"ion-button",34),d(15,"Events"),s(),r(16,"ion-button",34),d(17,"Music"),s()()()()()),t&2){let e=i.$implicit,n=l(4);o(2),a("routerLink",n.editRoute(e))("src",n.image(e)),o(),a("routerLink",n.editRoute(e)),o(2),w(" ",e.name," "),o(),a("moderation",e.moderation)("isAdmin",n.isAdmin),o(),a("pin",e.pin),o(),a("status",e.status)("isAdmin",n.isAdmin),o(2),w(" ",e.description," "),o(2),a("disabled",!n.canEditCamp)("routerLink","../camp/"+y(18,We,e.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../events")("queryParams",y(20,N,e.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../music")("queryParams",y(22,N,e.id))}}function et(t,i){if(t&1&&(r(0,"div",24),b(1,Ze,18,24,"div",25,Ne),s()),t&2){let e=l(3);a("ngClass",e.camps.length>1?"grid":"grid1"),o(),T(e.camps)}}function tt(t,i){if(t&1&&(r(0,"ion-item"),m(1,"app-img",37),r(2,"ion-text",38),m(3,"app-moderation-flag",29)(4,"app-location-status",30)(5,"app-approval-status",31),d(6),s(),r(7,"div",4)(8,"ion-button",34),d(9,"Events"),s(),r(10,"ion-button",34),d(11,"Music"),s()()()),t&2){let e=i.$implicit,n=l(4);o(),a("width","45px")("height","45px")("routerLink",n.editRoute(e))("src",n.image(e)),o(),a("routerLink",n.editRoute(e)),o(),a("moderation",e.moderation)("isAdmin",n.isAdmin),o(),a("pin",e.pin),o(),a("status",e.status)("isAdmin",n.isAdmin),o(),w(" ",e.name," "),o(2),a("disabled",!n.canEditEvent)("routerLink","../events")("queryParams",y(17,N,e.id)),o(2),a("disabled",!n.canEditEvent)("routerLink","../music")("queryParams",y(19,N,e.id))}}function it(t,i){if(t&1&&(r(0,"div",35)(1,"ion-card")(2,"ion-list"),b(3,tt,12,21,"ion-item",null,Ne),s()()(),m(5,"div",36)(6,"div",36)),t&2){let e=l(3);o(3),T(e.camps)}}function nt(t,i){if(t&1&&u(0,et,3,1,"div",24)(1,it,7,0),t&2){let e=l(2);h(e.isGrid?0:1)}}function ot(t,i){if(t&1&&(r(0,"div",11)(1,"div",18),u(2,$e,1,1)(3,Xe,2,1),s(),u(4,nt,2,1),s()),t&2){let e=l();o(),a("ngClass",e.camps.length>0?"":"pad-vertical"),o(),h(e.isAdmin?2:3),o(2),h(e.camps.length>0?4:-1)}}function at(t,i){t&1&&m(0,"app-spinner")}function rt(t,i){if(t&1&&m(0,"app-footer",12),t&2){let e=l();a("routeTo",e.newRoute())}}function st(t,i){if(t&1){let e=D();r(0,"app-camp-filter",39),_("filterChange",function(p){C(e);let c=l();return v(c.onFilterChange(p))}),s()}if(t&2){let e=l();a("campTypes",e.campTypes)("selectedFilter",e.selectedFilter)}}var S=class S{constructor(){this.api=f(ve);this.router=f($);this.campService=f(we);this.store=f(Ce);this.inviteEmailService=f(ke);this.ApprovalStatus=Ie;this.vanity=E();this.camps=[];this.busy=!0;this.isAdmin=!1;this.title="";this.campsTitle="Camps";this.festivalTitle="";this.canRegister=!1;this.canEditCamp=!1;this.canAddCamp=!1;this.canEditEvent=!1;this.filteredBySearch=!1;this.imageUrl="";this.isGrid=!1;this.buttons=[];this.progress=Q(0);this.overlayTitle=Q("");this.searchQuery="";this.selectedFilter="All";this.allCamps=[];Ee({add:_e,locationSharp:be,listOutline:Se,gridOutline:xe,alertCircleSharp:fe,filterSharp:ye})}get campTypes(){return this.campService.campTypes}get shouldShowSearchBar(){return this.allCamps.length>1||this.filteredBySearch||this.selectedFilter!=="All"}message(i){setTimeout(()=>{this.api.sendMessage(i)},1)}importCSV(){return()=>g(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl("./import")})}importKML(){return()=>g(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl(`${this.vanity()}/import-kml/camps`)})}exportCSV(){return()=>g(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.exportToCSV()})}toggleGrid(){this.isGrid=!this.isGrid,this.store.set("isGrid",`${!this.isGrid}`)}ngOnInit(){return g(this,null,function*(){var i;yield this.api.setFestivalByVanity(this.vanity(),!0),this.title=`${this.api.festivalTitle()}`,this.festivalTitle=this.api.festivalTitle(),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.imageUrl=(i=this.api.imageURL(this.api.festivalImage()))!=null?i:"",this.canAddCamp=this.api.campRegistration()||this.isAdmin,this.canEditCamp=this.api.campRegistration()||this.api.campEditing()||this.isAdmin,this.canEditEvent=this.api.campRegistration()||this.api.eventEditing()||this.isAdmin,this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"},{title:"Export Email Addresses",method:this.exportEmail(),icon:"mail-outline"},{title:"Import KML",method:this.importKML(),icon:"cloud-upload-outline"},{title:"Invite All Theme Camps",method:this.inviteAllCamps(),icon:"mail-outline"}]:[],this.isGrid=this.store.get("isGrid")!=="true"})}inviteAllCamps(){return()=>g(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}yield this.inviteEmailService.inviteAllCamps(this.camps,this.progress)})}exportEmail(){return()=>g(this,null,function*(){this.campService.exportCampsEmail(this.festivalTitle,this.camps)})}ionViewWillLeave(){document.activeElement&&document.activeElement!==document.body&&document.activeElement.blur()}ionViewDidEnter(){return g(this,null,function*(){this.allCamps=yield this.api.camps({cached:!0});let i=this.store.getMemory("campsSearchQuery"),e=this.store.getMemory("campsFilter")||"All";i?(this.searchQuery=i,this.camps=this.campService.filterCamps(this.allCamps,i,e),this.filteredBySearch=i.length>0):(this.searchQuery="",this.camps=this.allCamps,this.filteredBySearch=!1),this.selectedFilter=e,this.applyFilters(),this.busy=!1})}applyFilters(){this.camps=this.campService.filterCamps(this.allCamps,this.searchQuery,this.selectedFilter)}onFilterChange(i){this.selectedFilter=i,i==="All"?this.campsTitle="Camps":i==="Flagged"?this.campsTitle="Flagged":this.campsTitle=i.endsWith("Camp")?i+"s":i,this.store.setMemory("campsFilter",i),this.applyFilters()}openFilterPopover(i){this.filterPopover.event=i,this.filterPopover.present()}handleSearch(i){return g(this,null,function*(){var n,p,c;let e=(c=(p=(n=i.target)==null?void 0:n.value)==null?void 0:p.toLowerCase())!=null?c:"";this.searchQuery=e,this.store.setMemory("campsSearchQuery",e||void 0),this.camps=this.campService.filterCamps(this.allCamps,e,this.selectedFilter),this.filteredBySearch=e.length>0})}saveSearch(){this.store.setMemory("campsSearchQuery",this.searchQuery||void 0)}editRoute(i){return this.canEditCamp?"../camp/"+i.id:void 0}newRoute(){return this.canEditCamp?"../camp/new":void 0}image(i){return i.imageUrl?this.api.imageURL(i.imageUrl):"./assets/camp.svg"}exportToCSV(){this.campService.exportCampsToCSV(this.festivalTitle,this.camps)}};S.\u0275fac=function(e){return new(e||S)},S.\u0275cmp=P({type:S,selectors:[["app-camps"]],viewQuery:function(e,n){if(e&1&&q(qe,5),e&2){let p;W(p=z())&&(n.filterPopover=p.first)}},inputs:{vanity:[1,"vanity"]},decls:20,vars:10,consts:[["filterPopover",""],["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../camp/new",3,"hidden"],["name","add"],[3,"buttons"],[3,"fullscreen"],[3,"title","progress"],[3,"value"],[1,"large-border"],["title","Add Camp",3,"routeTo"],[3,"dismissOnSelect"],["mode","ios","show-clear-button","always",1,"searchbar",3,"ionBlur","ionInput","ngModelChange","debounce","placeholder","ngModel"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],["name","filter-sharp"],[1,"ion-text-center",3,"ngClass"],[3,"title","description"],["title","Registration",3,"description"],["title","Camp Registration",3,"description"],["logo","",1,"logo","ion-padding",3,"width","height","src"],["shape","round",3,"routerLink"],[1,"pad-below",3,"ngClass"],[1,"grid-item"],[1,"clickable"],[3,"routerLink","src"],[3,"routerLink"],[3,"moderation","isAdmin"],[3,"pin"],[3,"status","isAdmin"],[1,"dim",2,"text-align","center","padding-top","0.5rem"],["color","secondary",3,"disabled","routerLink"],["color","secondary",3,"disabled","routerLink","queryParams"],[1,"border"],[1,"ion-padding"],[1,"clickable",2,"min-width","45px",3,"width","height","routerLink","src"],[1,"clickable",2,"width","100%","padding","1rem",3,"routerLink"],[3,"filterChange","campTypes","selectedFilter"]],template:function(e,n){e&1&&(r(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),m(3,"ion-back-button"),s(),r(4,"ion-title",3),d(5),s(),r(6,"ion-buttons",4)(7,"ion-button",5),m(8,"ion-icon",6),s(),m(9,"app-side",7),s()()(),r(10,"ion-content",8),u(11,ze,1,2,"app-progress-overlay",9),u(12,Ye,6,4,"ion-toolbar"),u(13,He,1,1,"ion-progress-bar",10),u(14,ot,5,3,"div",11)(15,at,1,0,"app-spinner"),u(16,rt,1,1,"app-footer",12),r(17,"ion-popover",13,0),U(19,st,1,2,"ng-template"),s()()),e&2&&(o(5),I(n.campsTitle),o(2),a("hidden",!n.canAddCamp),o(2),a("buttons",n.buttons),o(),a("fullscreen",!0),o(),h(n.progress()>0?11:-1),o(),h(n.shouldShowSearchBar?12:-1),o(),h(n.progress()>0?13:-1),o(),h(n.busy?15:14),o(2),h(n.isAdmin?16:-1),o(),a("dismissOnSelect",!0))},dependencies:[pe,ge,le,Pe,K,H,V,L,k,J,j,se,de,te,X,me,ee,re,ce,ie,oe,ae,ne,Le,B,R,Te,Ve,Re,Be,Ae,Fe,Me,Z,O],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-content[_ngcontent-%COMP%]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:var(--font-size-base)}h1[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.approval-button[_ngcontent-%COMP%]{position:absolute;margin-top:calc(-1 * var(--spacing-xs));right:0}.logo[_ngcontent-%COMP%]{--app-background-color: transparent;--border-radius: .5rem}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-base)}"]});var Oe=S;export{Oe as CampsPage}; diff --git a/.admin-app/chunk-NPFSKFGI.js b/.admin-app/chunk-NPFSKFGI.js new file mode 100644 index 00000000..c52c6789 --- /dev/null +++ b/.admin-app/chunk-NPFSKFGI.js @@ -0,0 +1 @@ +import{a as mt}from"./chunk-62GZOW6G.js";import{a as ct}from"./chunk-KCPLCCSF.js";import{a as pt}from"./chunk-K6ROGVP7.js";import{K as dt}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as d,Ca as g,Da as S,E as M,Eb as z,Ec as ot,Fc as at,Ga as O,Gc as st,H as a,Ha as $,Ia as N,Mc as lt,P as V,Va as W,Xb as q,Y as v,Z as C,_a as j,aa as E,ba as P,ca as x,cc as H,da as s,dc as G,ea as l,ec as J,fa as w,fc as K,gc as X,ka as U,ma as b,mc as Y,oa as u,p as T,s as A,sa as L,sc as Z,t as I,ta as R,tc as tt,ua as B,ub as D,uc as et,vc as it,wc as nt,xb as Q,zc as rt}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as _}from"./chunk-LNJ3S2LQ.js";function gt(o,i){let t=["name","description","art_type","contact_email","artist","url","category","externalId"],e=[];for(let r of t){let n=ut(o[r]),p=ut(i[r]);n!==p&&e.push(r)}return e}function ft(o,i){return i?gt(o,i).length===0?"existing":"updated":"new"}function ht(o,i){return gt(o,i)}function ut(o){return o==null?"":String(o).trim()}var It=["fileUpload"],F=(o,i)=>i.art.name;function vt(o,i){if(o&1&&(w(0,"ion-progress-bar",9),s(1,"ion-text"),d(2),l(),w(3,"app-spinner"),s(4,"div",10),w(5,"img",11),l()),o&2){let t=u();x("value",t.progress),a(2),g(t.importing),a(3),x("src",t.url,M)}}function Ct(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),d(4),l(),s(5,"ion-badge",19),d(6,"New"),l()(),s(7,"p"),d(8),l()()()),o&2){let t=i.$implicit;a(4),g(t.art.name),a(4),g(t.art.description)}}function yt(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),d(3),l()()(),E(4,Ct,9,2,"ion-item",null,F)),o&2){let t=u(2);a(3),S("New Art (",t.groupedArt.get("new").length,")"),a(),P(t.groupedArt.get("new"))}}function wt(o,i){if(o&1&&(s(0,"p",21),d(1),l()),o&2){let t=u().$implicit;a(),S(" Changed: ",t.changedFields.join(", ")," ")}}function bt(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),d(4),l(),s(5,"ion-badge",20),d(6,"Updated"),l()(),s(7,"p"),d(8),l(),v(9,wt,2,1,"p",21),l()()),o&2){let t=i.$implicit;a(4),g(t.art.name),a(4),g(t.art.description),a(),C(t.changedFields&&t.changedFields.length>0?9:-1)}}function St(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),d(3),l()()(),E(4,bt,10,3,"ion-item",null,F)),o&2){let t=u(2);a(3),S("Updated Art (",t.groupedArt.get("updated").length,")"),a(),P(t.groupedArt.get("updated"))}}function kt(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),d(4),l(),s(5,"ion-badge",22),d(6,"Existing"),l()(),s(7,"p"),d(8),l()()()),o&2){let t=i.$implicit;a(4),g(t.art.name),a(4),g(t.art.description)}}function Et(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),d(3),l()()(),E(4,kt,9,2,"ion-item",null,F)),o&2){let t=u(2);a(3),S("Existing Art (",t.groupedArt.get("existing").length,")"),a(),P(t.groupedArt.get("existing"))}}function Pt(o,i){if(o&1){let t=U();s(0,"div",7)(1,"div",12)(2,"ion-button",13),b("click",function(){A(t);let r=u();return I(r.doImport())}),d(3,"Import from CSV"),l()(),s(4,"ion-card",14)(5,"ion-card-content",14)(6,"ion-list"),v(7,yt,6,1),v(8,St,6,1),v(9,Et,6,1),l(),s(10,"div",15)(11,"ion-checkbox",16),N("ngModelChange",function(r){A(t);let n=u();return $(n.skipUpdatedArt,r)||(n.skipUpdatedArt=r),I(r)}),d(12,"Skip updated art"),l(),s(13,"ion-button",17),b("click",function(){A(t);let r=u();return I(r.import())}),d(14,"Import"),l()()()()()}if(o&2){let t=u();a(7),C(t.groupedArt.get("new")&&t.groupedArt.get("new").length>0?7:-1),a(),C(!t.skipUpdatedArt&&t.groupedArt.get("updated")&&t.groupedArt.get("updated").length>0?8:-1),a(),C(t.groupedArt.get("existing")&&t.groupedArt.get("existing").length>0?9:-1),a(2),O("ngModel",t.skipUpdatedArt),a(2),x("disabled",t.busy)}}var y=class y{constructor(){this.api=T(dt);this.location=T(j);this.vanity=W("");this.isAdmin=!1;this.busy=!1;this.art=[];this.artWithIds=new Map;this.groupedArt=new Map;this.title="Import Art";this.importing="";this.progress=0;this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);this.url="";this.skipUpdatedArt=!1}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(i){return _(this,null,function*(){let t=i.target.files[0];if(!t)return;let e=new FileReader;e.onload=r=>_(this,null,function*(){var p;let n=(p=r.target)==null?void 0:p.result;yield this.parseCSV(n);try{this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")}catch(h){console.info(h)}}),e.readAsText(t)})}parseCSV(i){return _(this,null,function*(){let t=mt(i);console.info(t),this.art=[],this.groupedArt.clear();let e=this.mapColumns(t);if(e){let r=[];for(let c of t){let m=yield this.importArt(c,e);!!m.name&&r.push(m)}r.sort((c,m)=>c.name>m.name?1:-1);let n=yield this.api.art({cached:!1}),p=new Map,h=new Map;for(let c of n)p.set(this.safeTrimLower(c.name),c),c.externalId&&h.set(this.safeTrimLower(c.externalId),c);let f=new Map;f.set("existing",[]),f.set("new",[]),f.set("updated",[]);for(let c of r){let m=p.get(this.safeTrimLower(c.name));!m&&c.externalId&&(m=h.get(this.safeTrimLower(c.externalId)));let k=ft(c,m),xt=k==="updated"?ht(c,m):void 0;m!=null&&m.id&&this.artWithIds.set(this.safeTrimLower(c.name),m.id);let At={status:k,art:c,changedFields:xt};f.get(k).push(At),this.art.push(c)}this.groupedArt=f,this.title=`Import ${this.art.length} art items`}})}import(){return _(this,null,function*(){this.busy=!0,this.title="Importing...";let i=0,t=0,e=this.art;this.skipUpdatedArt&&(e=this.art.filter(n=>this.getArtStatusForImport(n)!=="updated"));let r=e.length;for(;e.length>0;){let n;try{if(t++,n=e.pop(),n){let p=n.imageUrl;n.imageUrl=void 0;let h=this.artWithIds.get(this.safeTrimLower(n.name));h&&(n.id=h),this.importing=n.name,this.progress=t/r;let f=yield this.api.addArt(n);if(i++,p&&f.id){n.id=f.id;try{yield this.importImage(p,n)}catch{console.error(`Unable to import image for art ${n.name}: ${p}`)}}}}catch{console.error(`Failed to import ${n==null?void 0:n.name}: ${n==null?void 0:n.description}`)}}this.api.sendMessage(`Imported ${i} of ${t} art items.`),this.busy=!1,this.api.clearCache(),this.location.back()})}toUrl(i){let t=!1,e="";for(let r of i)if(r=="(")t=!0;else if(r==")")if(t=!1,e.length<3)e="";else return e;else t&&(e+=r);return e}importImage(i,t){return _(this,null,function*(){let e=this.toUrl(i),n=yield(yield fetch(e)).blob(),p=yield ct(n,{quality:75,width:300});this.url=URL.createObjectURL(p),t.imageUrl=yield this.api.setImage(p,t.id),yield this.api.addArt(t)})}mapColumns(i){if(i.length==0)return;let t=i[0],e={pin:"",name:"",category:"",id:void 0,art_type:"Art"};for(let r of Object.keys(t)){let n=r.toLowerCase();n.includes("name")&&!e.name&&!n.includes("artist name")&&(e.name=r),n=="title"&&!e.name&&(e.name=r),n.includes("art project")&&!e.name&&(e.name=r),n.includes("description")&&(e.description=r),n.includes("type")&&(e.art_type=r),(n.includes("web")||n.includes("url"))&&(e.url=r),n.includes("image")&&(e.image=r),n.includes("logo")&&(e.logo=r),n.includes("artist")&&(e.artist=r),n.includes("email")&&(e.contact_email=r),(n.includes("#")||n=="id")&&(e.externalId=r)}return console.log("map",e),e}importArt(i,t){return _(this,null,function*(){let e=yield this.api.getArt(void 0);e.name=i[t.name].trim(),t.description?e.description=i[t.description]:e.description=`Details on ${e.name} coming soon...`,t.externalId&&(e.externalId=i[t.externalId]),t.artist&&(e.artist=i[t.artist]),t.url&&(e.url=i[t.url]),t.art_type&&(e.art_type=i[t.art_type]),t.contact_email&&(e.contact_email=i[t.contact_email]);let r=t.image,n=t.logo;return r&&(e.imageUrl=i[r]),n&&this.isBlank(e.imageUrl)&&(e.imageUrl=i[n]),e})}isBlank(i){return!i||i.trim()==""}safeTrimLower(i){return i?i.trim().toLowerCase():""}getArtStatusForImport(i){for(let[t,e]of this.groupedArt)for(let r of e)if(r.art.name===i.name)return t;return"new"}};y.\u0275fac=function(t){return new(t||y)},y.\u0275cmp=V({type:y,selectors:[["app-import-art"]],viewQuery:function(t,e){if(t&1&&L(It,7),t&2){let r;R(r=B())&&(e.fileUpload=r.first)}},inputs:{vanity:[1,"vanity"]},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],["slot","end",3,"hidden"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],[3,"value"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],["fill","clear",3,"click"],[1,"form"],[2,"display","flex","width","100%","justify-content","space-between","align-items","center"],["labelPlacement","end","slot","start",3,"ngModelChange","ngModel"],["fill","solid","color","primary",3,"click","disabled"],[1,"art-header"],["color","success"],["color","warning"],[1,"changed-fields"],["color","medium"]],template:function(t,e){if(t&1){let r=U();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),w(3,"ion-back-button"),l(),s(4,"ion-title",3),d(5),l(),s(6,"ion-buttons",4)(7,"ion-button",5),b("click",function(){return A(r),I(e.import())}),d(8,"Import"),l()()()(),s(9,"ion-content",6),v(10,vt,6,3)(11,Pt,15,5,"div",7),s(12,"input",8,0),b("change",function(p){return A(r),I(e.onFileSelected(p))}),l()()}t&2&&(a(5),g(e.title),a(),x("hidden",e.art.length===0),a(),x("disabled",e.busy),a(2),x("fullscreen",!0),a(),C(e.busy?10:11))},dependencies:[K,X,rt,ot,G,nt,it,tt,q,J,Y,Z,at,st,z,D,Q,pt,et,H,lt],styles:[".art-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.art-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;flex:1}.changed-fields[_ngcontent-%COMP%]{color:#ff9500;font-size:var(--font-size-xl);margin-top:var(--spacing-base);font-weight:500}"]});var _t=y;export{_t as ImportArtPage}; diff --git a/.admin-app/chunk-IBTHO3RH.js b/.admin-app/chunk-OO337WBA.js similarity index 95% rename from .admin-app/chunk-IBTHO3RH.js rename to .admin-app/chunk-OO337WBA.js index 20a23d04..27790ed6 100644 --- a/.admin-app/chunk-IBTHO3RH.js +++ b/.admin-app/chunk-OO337WBA.js @@ -1 +1 @@ -import{Aa as e,P as r,ba as a,ca as t,da as n,lc as s}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import"./chunk-LNJ3S2LQ.js";var o=class o{constructor(){}};o.\u0275fac=function(i){return new(i||o)},o.\u0275cmp=r({type:o,selectors:[["app-privacy"]],decls:29,vars:1,consts:[["color","primary",3,"fullscreen"],[1,"vcenter","rows"],["href","mailto:damian@dust.events"]],template:function(i,l){i&1&&(t(0,"ion-content",0)(1,"div",1)(2,"h1"),e(3,"Privacy Policy"),n(),t(4,"p"),e(5,"Nexus Concepts (The company providing the Dust App and this Website) values your personal privacy rights. Our privacy policy is therefore adopted with a commitment to safeguarding these rights:"),n(),t(6,"h2"),e(7,"No Sharing of Information"),n(),t(8,"p"),e(9,"Nexus Concepts does share information anout the use of the Dust App or Website. Nexus Concepts does not sell or rent user information to anyone. Nexus Concepts does not share or cross-reference personal information gathered through Website usage with any other databases or third parties."),n(),t(10,"h2"),e(11,"Gathering of Information"),n(),t(12,"p"),e(13,"Nexus Concepts does not gather or store any information about usage of the Dust App or information about usage of this Website."),n(),t(14,"h2"),e(15,"Use of Cookies"),n(),t(16,"p"),e(17,"As part of the Dust App there is no use of cookies."),n(),t(18,"h2"),e(19,"Security of Service"),n(),t(20,"p"),e(21,"We protect your privacy using standard encryption techniques as well as providing the Dust Website via HTTPS. However, no data transmission over the Internet can be guaranteed to be 100% secure. As a result, while we do our utmost to protect your information, we cannot ensure or warrant the security of any information you transmit using the service, and you do so at your own risk."),n(),t(22,"h2"),e(23,"Comments"),n(),t(24,"p"),e(25,"We make every effort to maximize your privacy rights while you use the Dust App. If you have any questions, concerns or comments, regarding our privacy policy or any other aspect of our service, please "),t(26,"a",2),e(27,"e-mail us"),n(),e(28,"."),n()()()),i&2&&a("fullscreen",!0)},dependencies:[s],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-display);font-family:Nunito}a[_ngcontent-%COMP%]{color:#fff}ion-button[_ngcontent-%COMP%]{color:var(--ion-color-primary)}ion-text[_ngcontent-%COMP%]{font-size:xx-large}.rows[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-2xl));flex-direction:column;padding-left:10vw;padding-right:10vw;text-align:center;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.vcenter[_ngcontent-%COMP%]{max-width:1200px;margin-left:auto;margin-right:auto}"]});var c=o;export{c as PrivacyPage}; +import{Ba as e,P as r,ca as a,da as t,ea as n,mc as s}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import"./chunk-LNJ3S2LQ.js";var o=class o{constructor(){}};o.\u0275fac=function(i){return new(i||o)},o.\u0275cmp=r({type:o,selectors:[["app-privacy"]],decls:29,vars:1,consts:[["color","primary",3,"fullscreen"],[1,"vcenter","rows"],["href","mailto:damian@dust.events"]],template:function(i,l){i&1&&(t(0,"ion-content",0)(1,"div",1)(2,"h1"),e(3,"Privacy Policy"),n(),t(4,"p"),e(5,"Nexus Concepts (The company providing the Dust App and this Website) values your personal privacy rights. Our privacy policy is therefore adopted with a commitment to safeguarding these rights:"),n(),t(6,"h2"),e(7,"No Sharing of Information"),n(),t(8,"p"),e(9,"Nexus Concepts does share information anout the use of the Dust App or Website. Nexus Concepts does not sell or rent user information to anyone. Nexus Concepts does not share or cross-reference personal information gathered through Website usage with any other databases or third parties."),n(),t(10,"h2"),e(11,"Gathering of Information"),n(),t(12,"p"),e(13,"Nexus Concepts does not gather or store any information about usage of the Dust App or information about usage of this Website."),n(),t(14,"h2"),e(15,"Use of Cookies"),n(),t(16,"p"),e(17,"As part of the Dust App there is no use of cookies."),n(),t(18,"h2"),e(19,"Security of Service"),n(),t(20,"p"),e(21,"We protect your privacy using standard encryption techniques as well as providing the Dust Website via HTTPS. However, no data transmission over the Internet can be guaranteed to be 100% secure. As a result, while we do our utmost to protect your information, we cannot ensure or warrant the security of any information you transmit using the service, and you do so at your own risk."),n(),t(22,"h2"),e(23,"Comments"),n(),t(24,"p"),e(25,"We make every effort to maximize your privacy rights while you use the Dust App. If you have any questions, concerns or comments, regarding our privacy policy or any other aspect of our service, please "),t(26,"a",2),e(27,"e-mail us"),n(),e(28,"."),n()()()),i&2&&a("fullscreen",!0)},dependencies:[s],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-display);font-family:Nunito}a[_ngcontent-%COMP%]{color:#fff}ion-button[_ngcontent-%COMP%]{color:var(--ion-color-primary)}ion-text[_ngcontent-%COMP%]{font-size:xx-large}.rows[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-2xl));flex-direction:column;padding-left:10vw;padding-right:10vw;text-align:center;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.vcenter[_ngcontent-%COMP%]{max-width:1200px;margin-left:auto;margin-right:auto}"]});var c=o;export{c as PrivacyPage}; diff --git a/.admin-app/chunk-OQVFSD37.js b/.admin-app/chunk-OQVFSD37.js deleted file mode 100644 index bf76d15e..00000000 --- a/.admin-app/chunk-OQVFSD37.js +++ /dev/null @@ -1 +0,0 @@ -import{a as P}from"./chunk-PFLI22GG.js";import{l as f,p as I,w as c}from"./chunk-FDEJMFAU.js";import{h as i}from"./chunk-LNJ3S2LQ.js";function E(s,e,t,n){let r=t&&A(s,t),a=t&&A(e,t);if(!t||r||a){let o=s.toLocaleDateString([],{weekday:"long"}),l=a&&!r?`Until ${h(e,n)} (${w(e,s)})`:`${h(s,n)} (${w(e,s)})`,y=`${h(s,n)}`,d=`${o} ${h(s,n)}-${h(e,n)} (${w(e,s)})`;return d.endsWith("(24hrs)")&&(d=`${o} - All Day`),{long:d,short:l,brief:y}}}function k(s){let e=new Date(s);return!isNaN(e.getTime())}function _(s,e){return s===null||!s?e:s}function L(s){return!!String(s).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|.(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}function v(s){return!s||s.trim()==""}function O(s,e){return new URLSearchParams(new URL(s).search).get(e)}function S(s){return s.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}function U(s){return new Promise(e=>setTimeout(e,s))}function N(s,e){return(e.match(new RegExp(s,"g"))||[]).length}function W(s){if(!s)return"";let e=s.split("@");return e.length==3?e[1]:e.length==2?e[0]:""}function J(s){let e=new Date(s);return Math.ceil((e.getTime()-new Date().getTime())/(1e3*60*60*24))}function Z(s){if(!s)return"";let e=s.split("@");return e.length==3?e[2]:e.length==2?e[1]:""}function R(s){if(!(s=="new"||!s))return parseInt(s,10)}function u(s,e){let t=""+s;for(;t.length5){if(s.includes("."))return s;s=s.toLowerCase().replace(/^\S|\.\s*\S/g,e=>e.toUpperCase())}return s}function G(s,e,t,n,r){return`${u(s,4)}-${u(e+1,2)}-${u(t,2)}T${u(n,2)}:${u(r,2)}:00.000Z`}function Q(s){return s.endsWith("Z")?s.replace("Z",""):s}function K(s){let e=D(s);return(e<0?"+":"-")+u(parseInt(Math.abs(e/60)),2)+u(Math.abs(e%60),2)}function D(s){let e=new Date,t=new Date(e.toLocaleString("en-US",{timeZone:"UTC"}));return(new Date(e.toLocaleString("en-US",{timeZone:s}))-t)/(60*1e3)}function q(s){for(let[e,t]of Object.entries(s))(typeof t=="string"||t instanceof String)&&t&&t!==t.trim()&&(console.info(`${e} was trimmed of extra spaces.`),s[e]=t.trim())}var X=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ee=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function h(s,e){let t=s.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",timeZone:e}).toLowerCase().replace(" ","").replace(":00","");return t=="12am"?"Midnight":t=="12pm"?"Noon":t}function te(s){let e=String(s.getMonth()+1).padStart(2,"0"),t=String(s.getDate()).padStart(2,"0"),n=s.getFullYear();return`${e}-${t}-${n}`}function se(s,e){return s.toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",timeZone:e}).toLowerCase()}function A(s,e){return s.getDate()===e.getDate()&&s.getMonth()===e.getMonth()&&s.getFullYear()===e.getFullYear()}function ne(s,e="long"){let t=new Date().getFullYear(),n=[...Array(12).keys()],r=new Intl.DateTimeFormat(s,{month:e}),a=o=>r.format(new Date(t,o));return n.map(a)}function ie(s){return new Promise((e,t)=>{try{let n=new FileReader;n.onloadend=()=>{let r=n.result;r?e(r):t()},n.onerror=t,n.readAsDataURL(s)}catch(n){t(n)}})}function re(s,e){try{return e&&v(s)||new URL(s),!0}catch{return!1}}function w(s,e){let t=Math.round(Math.abs(s-e)/36e5*10)/10,n=Math.floor(Math.abs(s-e)/1e3/60),r=t<1.1?"1hr":`${t}hrs`;return n<60?`${n}mins`:r}function T(s){let e=s.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}return decodeURIComponent(window.escape(window.atob(e)))}function ae(s){return!s||s==null}function x(s=""){if(s===null||s==="")return{upn:""};let e=s.split(".");if(e.length!==3)throw new Error("JWT must have 3 parts");let t=T(e[1]);if(!t)throw new Error("Cannot decode the token");return JSON.parse(t)}function C(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function oe(s,e,t){return s&&s.replace(new RegExp(C(e),"g"),t)}function ce(s){return s.replace(/\n([a-z])/g," $1")}function le(s){if(!s||s.trim()==="")return"";let e=s.trim();return["https://","http://","tel:","mailto:","sms:"].some(a=>e.toLowerCase().startsWith(a))?e:e.includes("@")?`mailto:${e}`:/^[\d\s+\-()]+$/.test(e)?`tel:${e.replace(/[\s\-()]/g,"")}`:e.toLowerCase().startsWith("www.")?`https://${e}`:e}function ue(s,e,t){return s===1?e:t||`${e}s`}var m=class m{constructor(){this.mem={}}get(e){return this.mem[e]?this.mem[e]:localStorage[this.key(e)]}key(e){return e=="token"?e:`admin-${e}`}set(e,t){if(t==null){delete this.mem[e],localStorage.removeItem(e.toString());return}this.mem[e]=t,localStorage[this.key(e)]=t}clear(){this.mem={},console.log("storage.clear"),localStorage.clear()}};m.\u0275fac=function(t){return new(t||m)},m.\u0275prov=f({token:m,factory:m.\u0275fac,providedIn:"root"});var b=m;var M=8787;var p=class p{constructor(){this.lastRoleResponse=null;this.changesMade=!1;this.firstUse=!0;this.user=c("");this.userEmail=c("");this.moreButton=c({buttons:[],event:void 0,hideProfile:!1});this.campRegistration=c(!1);this.campEditing=c(!1);this.eventEditing=c(!1);this.artEditing=c(!1);this.openedUrl=c("");this.errorStream=c({status:200,text:"",url:""});this.messageStream=c({id:0,message:"",type:0});this.store=I(b);this.initialized=!1;this.cache={}}get festivalId(){return this.store.get("festivalId")}isLocal(){return location.href.includes("localhost:")&&this.useStagingForDev()||location.protocol==="capacitor:"?!1:location.href.includes("localhost:")||location.href.includes("ngrok")}useStagingForDev(){return!0}isStaging(){return location.href.includes(".dust.events")?!1:location.hostname.startsWith("localhost")&&location.port=="8100"?!0:location.href.includes(".pages.dev")}isInIframe(){return window.self!==window.top}init(){this.initialized=!0}checkInit(){if(!this.initialized){if(!P.isNativePlatform()){this.initialized=!0;return}console.warn("restarting..."),document.location.href="./index.html"}}url(e){return this.isLocal()?`http://${location.hostname}:${M}/${e}`:this.isStaging()?`https://staging-api.dust.events/${e}`:`https://api.dust.events/${e}`}imageURL(e){return e=="null"?"":this.isLocal()?e?`http://localhost:${M}/images/${e}`:"":this.isStaging()?e?`https://data-staging.dust.events/${e}`:"":e?`https://data.dust.events/${e}`:""}setFestival(e){this.campRegistration.set(e.camp_registration),this.campEditing.set(e.camp_editing),this.eventEditing.set(e.event_editing),this.artEditing.set(e.art_editing),this.store.set("festivalId",e.id),this.store.set("festivalTitle",e.name),this.store.set("festivalVanity",e.vanity),this.store.set("festivalImage",e.imageUrl),this.store.set("festivalTimeZone",e.timezone),this.clearCache()}archive(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/archive`,e)})}approve(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/approve`,{})})}setEventTypes(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/event-types`,e)})}setMusicTypes(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/music-types`,e)})}setMessageSettings(e){return i(this,null,function*(){return yield this.post(`festivals/${e.festival_vanity}/message-settings`,e)})}setVolunteeripateSettings(e,t){return i(this,null,function*(){return yield this.post(`festivals/${e}/volunteeripate-settings`,t)})}setPlacementSettings(e,t){return i(this,null,function*(){return yield this.post(`festivals/${e}/placement-settings`,t)})}getCampSchema(){return i(this,null,function*(){return yield this.get("schema/camps",{cached:!1})})}saveCampSchema(e){return i(this,null,function*(){return yield this.post("schema/camps",e)})}getArtSchema(){return i(this,null,function*(){return yield this.get("schema/art",{cached:!1})})}saveArtSchema(e){return i(this,null,function*(){return yield this.post("schema/art",e)})}vanity(){return this.store.get("festivalVanity")}produceError(e,t,n){this.errorStream.set({status:e,text:t,url:n})}getFestivalByVanity(e,t=!1,n=!0){return i(this,null,function*(){return this.fixTheme((yield this.get(`festivals/${e}?by=vanity&pending=${t}`,{cached:n})).data)})}fixTheme(e){return e.theme&&typeof e.theme=="string"&&(e.theme=JSON.parse(e.theme)),e}getUnAuthedBurns(){return i(this,null,function*(){let e=yield this.do("GET","data/festivals.json");for(let n of e.data)n.name=n.title,n.start_time=n.start,n.end_time=n.end;let t=e.data.filter(n=>n.active).filter(n=>new Date(n.end)>new Date);return t.sort((n,r)=>n.name.localeCompare(r.name)),console.log(t),t})}submitForm(e){return i(this,null,function*(){yield this.do("POST","help",e)})}getUnAuthedFestivalByVanity(e){return i(this,null,function*(){let n=(yield this.do("GET","data/festivals.json")).data.find(r=>r.name==e);if(!n)throw new Error(`Festival ${e} not found`);return n.vanity=e,n.name=n.title,n.start_time=n.start,n.end_time=n.end,n.gpsLat=n.lat,n.gpsLng=n.lng,n})}isAdmin(e){return this.getAccessInfo(e).hasAdmin}isCampOwner(e,t){return this.getAccessInfo(e).camps.includes(t)}isArtOwner(e,t){return t?this.getAccessInfo(e).art.includes(t):!1}isEventOwner(e){return i(this,null,function*(){return e?!!(yield this.get(`events/${e}`,{cached:!1})):!1})}setFestivalByVanity(e,t=!1){return i(this,null,function*(){let n=!this.festivalId;if(this.vanity()==e&&!t&&!n)return;let r=yield this.getFestivalByVanity(e);if(!r)throw new Error(`Festival ${e} not found`);this.setFestival(r)})}sendPushMessage(e){return i(this,null,function*(){return yield this.post("messages",e)})}getMessageHistory(){return i(this,null,function*(){return(yield this.get("message-history",{cached:!1})).data})}setMessageHistory(e){return i(this,null,function*(){return(yield this.post("message-history",e)).data})}processMessageQueue(){return i(this,null,function*(){return yield this.get("messages")})}getPushInformation(){return i(this,null,function*(){return yield this.get("pushtokens")})}festivalTitle(){return this.store.get("festivalTitle")}festivalImage(){return this.store.get("festivalImage")}festivalTimeZone(){return this.store.get("festivalTimeZone")}addEvent(e){return i(this,null,function*(){return this.changesMade=!0,this.post("events",e)})}addMusic(e,t){return i(this,null,function*(){return e.occurrences=JSON.stringify(t),this.changesMade=!0,this.post("music",e)})}addLink(e){return i(this,null,function*(){return this.post("links",e)})}generateMap(e,t){return i(this,null,function*(){return yield this.post("map/create",{style:e,zoom:t})})}sendMessage(e,t,n,r){let a=this.messageStream();this.messageStream.set({id:a.id++,message:e,type:t!=null?t:0,title:n,url:r})}getCamp(e){return i(this,null,function*(){if(!e)return this.emptyCamp();let t=yield this.camp(e);return t||this.emptyCamp()})}getArt(e){return i(this,null,function*(){if(!e)return this.emptyArt();let t=yield this.artItem(e);return t||this.emptyArt()})}broadcast(e,t){return i(this,null,function*(){yield this.post("live",{festivalId:this.festivalId,lng:t.coords.longitude,lat:t.coords.latitude,id:e.id})})}emptyCamp(){return{name:"",description:"",pin:"",id:void 0,contact_email:"",camp_type:"",publicEvents:!1}}emptyArt(){return{name:"",description:"",pin:"",category:"Open Playa Art",id:void 0,contact_email:"",art_type:""}}addFestival(e){return i(this,null,function*(){return yield this.post("festivals",e)})}updateFestivalSettings(e){return i(this,null,function*(){return yield this.post("festivals/registration",e)})}getFestivals(e){return i(this,null,function*(){return(yield this.get(e?"festivals?details=false":"festivals")).data})}getFestival(e,t){return i(this,null,function*(){let n=e?yield this.festival(e,t):void 0;return n||{name:"",contact:"",vanity:"",admins:"",description:"",mastodon_handle:"",inbox_email:"",start_time:new Date().toISOString(),end_time:new Date().toISOString(),id:void 0,active:!1,timezone:this.currentTimeZone(),gpsLat:0,gpsLng:0,approved:!1,camp_registration:!1,event_registration:!1,music_registration:!1,event_editing:!1,camp_editing:!1,art_editing:!1,max_event_types:2,max_music_types:2,map_direction:0,directions:void 0,pin:void 0,archived:!1,unknown_dates:!1,pin_size_multiplier:1,hidden_features:0,event_types:"",music_types:"",region:"",website:"",volunteeripate_domain:"",volunteeripate_identifier:"",placement_form_camps:"",placement_form_art:"",placement_form_cars:"",rss_feed:"",theme:null}})}currentTimeZone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}placeCamp(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post("place",{id:e,pt:t})})}saveCSS(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("css",{css:e})})}getCSS(){return i(this,null,function*(){return yield this.get("css",{cached:!1,asText:!0})})}placeArt(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post("place/art",{id:e,pt:t})})}placePins(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("pins",e)})}getPins(){return i(this,null,function*(){return(yield this.get("pins",{cached:!1})).data})}getTemplates(){return i(this,null,function*(){let t=(yield this.get("templates",{cached:!1})).data;if(t&&t.payload)try{return JSON.parse(t.payload)}catch(n){return console.error("Failed to parse template payload:",n),[]}return[]})}saveTemplates(e){return i(this,null,function*(){return yield this.post("templates",{payload:JSON.stringify(e)})})}newEvent(){return i(this,null,function*(){let e=yield this.defaultCamp();return{description:"",title:"",hosted_by_camp:e?e.id:void 0,occurrence_set:"[]",id:void 0,event_type:"Event"}})}newMusic(){return i(this,null,function*(){var n;let e=yield this.defaultCamp();return{title:"",id:void 0,campId:e?e.id:void 0,occurrences:"[]",camp:(n=e==null?void 0:e.name)!=null?n:"",location:"",day:""}})}getLink(e){return i(this,null,function*(){let t=yield this.links();for(let n of t)if(n.id==e)return n;return{title:"",id:void 0,url:""}})}camps(e,t){return i(this,null,function*(){let n="camps";return t&&(n+="?publicEvents=true"),(yield this.get(n,e)).data.sort((a,o)=>a.name.localeCompare(o.name))})}art(e){return i(this,null,function*(){return(yield this.get("art",e)).data.sort((n,r)=>n.name.localeCompare(r.name))})}music(){return i(this,null,function*(){return(yield this.get("music")).data})}getMusic(e){return i(this,null,function*(){return(yield this.get(`music/${e}`)).data})}getUnpublishedChanges(){return i(this,null,function*(){return(yield this.get("publish",{cached:!1})).data})}camp(e){return i(this,null,function*(){return(yield this.get(`camps/${e}`)).data})}artItem(e){return i(this,null,function*(){return(yield this.get(`art/${e}`)).data})}festival(e,t){return i(this,null,function*(){return(yield this.get(`festivals/${e}`,t)).data})}defaultCamp(){return i(this,null,function*(){return(yield this.get("camp")).data})}events(e){return i(this,null,function*(){return(yield this.get("events",e)).data})}getEvent(e){return i(this,null,function*(){return(yield this.get(`events/${e}`)).data})}getRedirect(e){return i(this,null,function*(){let t=yield this.post("redirect",{code:e});console.log("getRedirect",t);let n=t.message.split("+");if(n)return v(n[0])?void 0:(this.store.set("token",n[0]),n[1])})}links(){return i(this,null,function*(){return(yield this.get("links")).data})}signIn(e){return i(this,null,function*(){e=e.toLowerCase().trim();let t=P.getPlatform();return yield this.post("signin",{email:e,platform:t})})}deleteEvent(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("events",{id:e})})}clearCamps(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("camps/locations",{})})}clearData(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete(e?"everything":"all",{})})}clearEvents(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("all/events",{})})}clearArtLocations(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("art/locations",{})})}clearPinLocations(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("pins/locations",{})})}deleteParty(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("music",{id:e})})}deleteLink(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("links",{id:e})})}verify(e){return i(this,null,function*(){let n=(yield this.post("verify",{code:e})).message;return n.length>0?(this.store.set("token",n),!0):!1})}publish(){return i(this,null,function*(){return yield this.post("publish",{})})}preview(){return i(this,null,function*(){return yield this.post("preview",{})})}setMap(e){return i(this,null,function*(){return yield this.post("map",{base64:e})})}setImage(e,t){return i(this,null,function*(){this.changesMade=!0;let n=yield fetch(this.url("images"),{method:"POST",headers:{"Content-Type":"text/plain","Festival-Id":this.festivalId?this.festivalId.toString():"","Image-Id":t.toString(),Authorization:this.bearer()},body:e}),r=yield n.text();if(n.status!==200)throw this.errorStream.set({status:n.status,text:"",url:this.url("images")}),new Error(r);return r})}getMap(){return i(this,null,function*(){return(yield this.get("map",{cached:!1})).data})}addCamp(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post(t?"camps?import=true":"camps",e)})}addArt(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("art",e)})}inviteCamp(e){return i(this,null,function*(){return yield this.post("camps/invite",e)})}approveCamp(e){return i(this,null,function*(){return yield this.post("camps/approve",e)})}inviteArt(e){return i(this,null,function*(){return yield this.post("art/invite",e)})}approveArt(e){return i(this,null,function*(){return yield this.post("art/approve",e)})}deleteCamp(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("camps",e)})}deleteArt(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("art",e)})}handleNewItem(e,t){return e&&e.id&&!t.id&&(t.id=e.id,t.revision_id=1),e}clearToken(){this.store.set("token",void 0),this.store.clear()}getAccessInfo(e){let t=x(this.store.get("token"));return t.festivals||(t.festivals=[]),t.camps||(t.camps=[]),t.music||(t.music=[]),t.art||(t.art=[]),t.events||(t.events=[]),t.approver=["damiantarnawsky@gmail.com","damian@dust.events"].includes(t.email),t.hasAdmin=!!(e&&t.festivals.includes(e))||t.approver,t.hasCamps=t.hasAdmin||t.camps.length>0,t.hasFestivals=t.hasAdmin||t.festivals.length>0,t.hasMusic=t.hasAdmin||t.hasCamps||t.music.length>0,t.hasArt=t.hasAdmin||t.art.length>0,t.isEventRegistrationOpen=!1,t.hasEvents=t.hasAdmin,t.events&&t.events.length>0&&(t.hasEvents=!0),t}signedIn(){let e=this.store.get("token");if(e&&e.length>0){let t=this.parseJwt(e);if(t.email){let n=S(t.email.split("@")[0]);return this.user.set(n),this.userEmail.set(t.email),!0}}return!1}setRedirection(e){this.store.set("redirectionUrl",e)}setKey(){return i(this,null,function*(){let e=sessionStorage.getItem("key");e&&(yield this.post("one-time-key",{key:e}),sessionStorage.removeItem("key"))})}getRedirectionUrl(){let e=this.store.get("redirectionUrl");return new URLSearchParams(window.location.search).get("redirect"),e}parseJwt(e){let n=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(window.atob(n).split("").map(function(a){return"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(r)}signOut(){this.store.set("token",void 0),this.store.clear()}bearer(){let e=this.store.get("token");return e?`bearer ${e}`:""}post(e,t){return i(this,null,function*(){return this.handleNewItem(yield this.do("POST",e,t),t)})}delete(e,t){return i(this,null,function*(){return this.do("DELETE",e,t)})}apiResponse(e,t){return i(this,null,function*(){this.lastRoleResponse=e.headers.get("Role");let n=e.headers.get("NewToken");n&&!v(n)&&(console.log("Token was refreshed"),this.store.set("token",n));let r,a="";if(t)try{let o=yield e.text();r=o?JSON.parse(o):[]}catch(o){console.error("Failed to parse JSON response:",o),r=[]}else a=yield e.text();return{message:a,id:R(e.headers.get("Id")),role:e.headers.get("Role"),data:r}})}do(e,t,n,r){return i(this,null,function*(){let a=!1,o=e=="GET"&&!r;try{let l=yield fetch(this.url(t),{method:e,headers:{"Content-Type":"application/json","Festival-Id":this.festivalId?this.festivalId.toString():"",Authorization:this.bearer()},body:JSON.stringify(n)});if(l.status!=200){a=!0;let y=l.headers.get("Message");this.handleError(e,t,y,l.status);let d=yield l.text();throw new Error(d)}return this.apiResponse(l,o)}catch(l){throw a||this.handleError(e,t,`${l}`),new Error("API Failure")}})}handleError(e,t,n,r){if(`${n}`.startsWith("Festival-Id was not set")&&(r=2,t="all",n="You need to select an event."),console.error(`[error][app] "${n}"`),`${n}`=="code is invalid")throw new Error("code is invalid");this.errorStream.set({status:r||500,text:`${n}`,url:r!=2?this.url(t):t}),this.isLocal()&&console.error(`${e} ${this.url(t)} failed. Did you start up the cloudflare worker?`)}clearCache(){this.cache={}}get(e,t){return i(this,null,function*(){if(!t||!t.cached)return yield this.do("GET",e,void 0,t==null?void 0:t.asText);if(!this.cache[e]){let n=yield this.do("GET",e);return this.cache[e]=JSON.parse(JSON.stringify(n.data)),n}return{message:"",data:this.cache[e]}})}};p.\u0275fac=function(t){return new(t||p)},p.\u0275prov=f({token:p,factory:p.\u0275fac,providedIn:"root"});var F=p;export{E as a,k as b,_ as c,L as d,v as e,O as f,U as g,N as h,W as i,J as j,Z as k,R as l,z as m,V as n,B as o,j as p,H as q,Y as r,G as s,Q as t,K as u,q as v,X as w,ee as x,h as y,te as z,se as A,ne as B,ie as C,re as D,ae as E,oe as F,ce as G,le as H,ue as I,b as J,F as K}; diff --git a/.admin-app/chunk-HF225NWQ.js b/.admin-app/chunk-PGJWKH5Y.js similarity index 84% rename from .admin-app/chunk-HF225NWQ.js rename to .admin-app/chunk-PGJWKH5Y.js index 73dd0c85..390a3f34 100644 --- a/.admin-app/chunk-HF225NWQ.js +++ b/.admin-app/chunk-PGJWKH5Y.js @@ -1 +1 @@ -import{a as I}from"./chunk-5B2MUMUK.js";import{K as v,f as h,g}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{Db as f,P as a,ba as p,ca as d,da as l,ea as m,lc as u,p as c}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as s}from"./chunk-LNJ3S2LQ.js";var t=class t{constructor(){this.api=c(v)}ngOnInit(){return s(this,null,function*(){if(this.id){let n=function(){document.location.href=o?`https://${o}.dust.events`:e};var r=n;let e=this.api.isLocal()||this.api.isStaging()||this.api.isInIframe()?`${document.location.protocol}//${document.location.hostname}:${document.location.port}/all`:"https://edit.dust.events/all",o=h(document.location.href,"burn");try{this.id.includes("?")&&(this.id=this.id.split("?")[0]),yield g(1e3),this.api.signedIn()&&n();let i=yield this.api.getRedirect(this.id);i?(console.log("getRedirect",i),document.location.href=`${i}`):n()}catch(i){console.error("Redirect failure",i),n()}}})}};t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=a({type:t,selectors:[["app-redirect"]],inputs:{id:"id"},decls:2,vars:1,consts:[[3,"fullscreen"]],template:function(e,o){e&1&&(d(0,"ion-content",0),m(1,"app-spinner"),l()),e&2&&p("fullscreen",!0)},dependencies:[u,f,I],encapsulation:2});var y=t;export{y as RedirectPage}; +import{a as I}from"./chunk-K6ROGVP7.js";import{K as v,f as h,g}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Eb as f,P as a,ca as p,da as d,ea as l,fa as m,mc as u,p as c}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as s}from"./chunk-LNJ3S2LQ.js";var t=class t{constructor(){this.api=c(v)}ngOnInit(){return s(this,null,function*(){if(this.id){let n=function(){document.location.href=o?`https://${o}.dust.events`:e};var r=n;let e=this.api.isLocal()||this.api.isStaging()||this.api.isInIframe()?`${document.location.protocol}//${document.location.hostname}:${document.location.port}/all`:"https://edit.dust.events/all",o=h(document.location.href,"burn");try{this.id.includes("?")&&(this.id=this.id.split("?")[0]),yield g(1e3),this.api.signedIn()&&n();let i=yield this.api.getRedirect(this.id);i?(console.log("getRedirect",i),document.location.href=`${i}`):n()}catch(i){console.error("Redirect failure",i),n()}}})}};t.\u0275fac=function(e){return new(e||t)},t.\u0275cmp=a({type:t,selectors:[["app-redirect"]],inputs:{id:"id"},decls:2,vars:1,consts:[[3,"fullscreen"]],template:function(e,o){e&1&&(d(0,"ion-content",0),m(1,"app-spinner"),l()),e&2&&p("fullscreen",!0)},dependencies:[u,f,I],encapsulation:2});var y=t;export{y as RedirectPage}; diff --git a/.admin-app/chunk-PXGOJK3Q.js b/.admin-app/chunk-PXGOJK3Q.js new file mode 100644 index 00000000..fc5264f4 --- /dev/null +++ b/.admin-app/chunk-PXGOJK3Q.js @@ -0,0 +1,2 @@ +import{b as ne,c as oe,d as ae,e as le,f as re,g as se}from"./chunk-3U2X6Y6W.js";import{a as Z}from"./chunk-KCPLCCSF.js";import{a as te,c as T}from"./chunk-OZ2IKH4J.js";import{Q as ee,oa as ie}from"./chunk-QF32E4V4.js";import{K as Y,d as X}from"./chunk-TCALQ33I.js";import{$ as L,Ba as y,Ca as A,Cc as Q,Da as q,Ea as O,Eb as z,H as r,J as M,Kc as B,Mc as G,P as V,Pc as W,Ua as H,Uc as J,Va as I,Vc as K,Y as d,Z as c,aa as D,ba as E,ca as C,da as _,ea as f,ga as $,ha as P,ka as g,ma as F,na as k,oa as a,p as w,s as m,sa as N,t as u,ta as R,tc as j,ua as U,w as v}from"./chunk-LVL3PYF7.js";import{h as p}from"./chunk-LNJ3S2LQ.js";var _e=["fileUpload"],h=class h{constructor(){this.upload=new M}click(){this.fileUpload.nativeElement.click()}onFileSelected(t){return p(this,null,function*(){let e=t.target.files[0];if(!e)return;let i=yield Z(e,{quality:85,width:400}),o=URL.createObjectURL(i);this.upload.emit({blob:i,url:o})})}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=V({type:h,selectors:[["app-upload"]],viewQuery:function(e,i){if(e&1&&N(_e,5),e&2){let o;R(o=U())&&(i.fileUpload=o.first)}},outputs:{upload:"upload"},decls:2,vars:0,consts:[["fileUpload",""],["type","file",1,"is-hidden",3,"change"]],template:function(e,i){if(e&1){let o=g();$(0,"input",1,0),k("change",function(l){return m(o),u(i.onFileSelected(l))}),P()}},styles:[".is-hidden[_ngcontent-%COMP%]{display:none}"]});var de=h;var fe=(n,t)=>t.name;function ge(n,t){var e;if(n&1){let i=g();_(0,"ion-item")(1,"ion-input",3),F("ionChange",function(s){var S;m(i);let l=a(2).$implicit,b=a(2);return u(b.updateFieldValue(l.name,(S=s.detail.value)!=null?S:""))}),f()()}if(n&2){let i=a(2).$implicit,o=a(2);r(),C("helperText",o.getScopeMessage(i))("label",i.name+(o.isFieldRequired(i)?" *":""))("value",o.getFieldValue(i.name))("maxlength",o.getMaxLength(i))("appHoverTooltip",(e=i.helperText)!=null?e:"")("placeholder",i.helperText)}}function Ce(n,t){if(n&1){let e=g();_(0,"ion-item")(1,"ion-textarea",4),F("ionChange",function(o){var b;m(e);let s=a(2).$implicit,l=a(2);return u(l.updateFieldValue(s.name,(b=o.detail.value)!=null?b:""))}),f()()}if(n&2){let e=a(2).$implicit,i=a(2);r(),C("label",e.name+(i.isFieldRequired(e)?" *":""))("value",i.getFieldValue(e.name))("rows",i.getTextAreaRows(e))("maxlength",i.getMaxLength(e))("placeholder",e.helperText)("appHoverTooltip",i.getScopeMessage(e))("autoGrow",!0)}}function he(n,t){if(n&1){let e=g();_(0,"ion-item",0)(1,"ion-checkbox",5),F("ionChange",function(o){m(e);let s=a(2).$implicit,l=a(2);return u(l.updateFieldValue(s.name,o.detail.checked))}),y(2),f()()}if(n&2){let e=a(2).$implicit,i=a(2);r(),C("checked",i.getFieldValue(e.name)===!0)("appHoverTooltip",i.getScopeMessage(e)),r(),O("",e.name,"",i.isFieldRequired(e)?" *":"")}}function xe(n,t){if(n&1&&(_(0,"ion-select-option",7),y(1),f()),n&2){let e=t.$implicit;C("value",e),r(),A(e)}}function ve(n,t){if(n&1){let e=g();_(0,"ion-item",1)(1,"ion-select",6),F("ionChange",function(o){m(e);let s=a(2).$implicit,l=a(2);return u(l.updateFieldValue(s.name,o.detail.value))}),D(2,xe,2,2,"ion-select-option",7,L),f()()}if(n&2){let e=a(2).$implicit,i=a(2);r(),C("label",e.name+(i.isFieldRequired(e)?" *":""))("value",i.getFieldValue(e.name))("placeholder","Select an option")("appHoverTooltip",i.getScopeMessage(e)),r(),E(e.values)}}function Fe(n,t){if(n&1&&(_(0,"div",2),y(1),f()),n&2){let e=a(2).$implicit,i=a(2);r(),q(" ",i.getFieldError(e.name),` +`)}}function be(n,t){var e;if(n&1&&(d(0,ge,2,6,"ion-item"),d(1,Ce,2,7,"ion-item"),d(2,he,3,4,"ion-item",0),d(3,ve,4,4,"ion-item",1),d(4,Fe,2,1,"div",2)),n&2){let i=a().$implicit,o=a(2);c(i.type==="string"&&i.maxLines===1?0:-1),r(),c(i.type==="string"&&((e=i.maxLines)!=null?e:1)>1?1:-1),r(),c(i.type==="boolean"?2:-1),r(),c(i.type==="values"?3:-1),r(),c(o.getFieldError(i.name)?4:-1)}}function Ve(n,t){if(n&1&&d(0,be,5,5),n&2){let e=a(2);c(e.isFieldVisible()?0:-1)}}function ye(n,t){if(n&1&&D(0,Ve,1,1,null,null,fe),n&2){let e=a();E(e.schema())}}var x=class x{constructor(){this.schemaType=I.required();this.entityId=I.required();this.currentData=I(null);this.dataSaved=H();this.api=w(Y);this.alert=w(B);this.schema=v([]);this.fieldValues=v([]);this.validationErrors=v([]);this.isLoading=v(!1);ie({informationCircle:ee})}ngOnInit(){this.loadSchema()}loadSchema(){return p(this,null,function*(){this.isLoading.set(!0);try{let t=this.schemaType()==="camps"?yield this.api.getCampSchema():yield this.api.getArtSchema();if(t.data&&Array.isArray(t.data)){this.schema.set(t.data);let e=this.currentData()||oe(null),i=re(t.data,e);this.fieldValues.set(i)}else this.schema.set([]),this.fieldValues.set([])}catch(t){console.error("Failed to load schema:",t),this.schema.set([]),this.fieldValues.set([])}finally{this.isLoading.set(!1)}})}validate(){let t=ne(this.fieldValues(),this.schema());return this.validationErrors.set(t),t.length===0}save(){return p(this,null,function*(){if(!this.validate())return!1;try{let t=this.fieldValues();return this.dataSaved.emit(t),!0}catch(t){return console.error("Failed to save field values:",t),yield T(this.alert,`Failed to save field values: ${t}`,"Error"),!1}})}updateFieldValue(t,e){let i=le(this.fieldValues(),t,e);this.fieldValues.set(i);let s=this.validationErrors().filter(l=>l.fieldName!==t);this.validationErrors.set(s)}getFieldError(t){let e=this.validationErrors().find(i=>i.fieldName===t);return e?e.message:null}getScopeMessage(t){var e;return`${(e=t.helperText)!=null?e:""} (${ae(t.scope,t.name)})`}getFieldValue(t){let e=this.fieldValues().find(i=>i.name===t);return e?e.value:null}isFieldVisible(){return!0}getTextAreaRows(t){return t.maxLines||1}isFieldRequired(t){return t.required}getMaxLength(t){return t.maxLength||1e3}};x.\u0275fac=function(e){return new(e||x)},x.\u0275cmp=V({type:x,selectors:[["app-internal-fields"]],inputs:{schemaType:[1,"schemaType"],entityId:[1,"entityId"],currentData:[1,"currentData"]},outputs:{dataSaved:"dataSaved"},decls:1,vars:1,consts:[[1,"ion-padding-start"],["lines","none",1,"app-select"],[1,"error-message"],["labelPlacement","stacked",3,"ionChange","helperText","label","value","maxlength","appHoverTooltip","placeholder"],["labelPlacement","stacked",3,"ionChange","label","value","rows","maxlength","placeholder","appHoverTooltip","autoGrow"],["justify","start",3,"ionChange","checked","appHoverTooltip"],["labelPlacement","stacked","interface","popover",1,"app-select",3,"ionChange","label","value","placeholder","appHoverTooltip"],[3,"value"]],template:function(e,i){e&1&&d(0,ye,2,0),e&2&&c(i.schema().length>0?0:-1)},dependencies:[z,se,j,W,K,G,J,Q],styles:[".field-container[_ngcontent-%COMP%]{position:relative;margin-bottom:0}.helper-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-step-500, #808080);padding:var(--spacing-base) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);margin-top:-var(--spacing-base);line-height:1.4}.error-message[_ngcontent-%COMP%]{color:var(--ion-color-danger, #eb445a);font-size:var(--font-size-xl);padding:var(--spacing-base) var(--spacing-lg);margin-top:var(--spacing-sm)}"]});var ce=x;function pe(n){return n?n.split(",").map(t=>t.trim()).filter(t=>t.length>0):[]}function We(n,t){let e=pe(n);return pe(t).filter(o=>!e.includes(o))}function Je(n,t,e){return p(this,null,function*(){let i=t.filter(l=>!X(l));if(i.length>0){yield T(n,`Invalid email address(es): ${i.join(", ")}`,"Error");return}let o=t.join(", ");(yield te(n,`Send invitation to ${t.length} new manager${t.length>1?"s":""} (${o})?`,"Invite"))&&(yield e(t))})}export{de as a,ce as b,We as c,Je as d}; diff --git a/.admin-app/chunk-QF32E4V4.js b/.admin-app/chunk-QF32E4V4.js new file mode 100644 index 00000000..f1f525c8 --- /dev/null +++ b/.admin-app/chunk-QF32E4V4.js @@ -0,0 +1 @@ +var e="data:image/svg+xml;utf8,";var r="data:image/svg+xml;utf8,";var v="data:image/svg+xml;utf8,";var g="data:image/svg+xml;utf8,";var w="data:image/svg+xml;utf8,";var h="data:image/svg+xml;utf8,";var d="data:image/svg+xml;utf8,";var p="data:image/svg+xml;utf8,";var x="data:image/svg+xml;utf8,";var m="data:image/svg+xml;utf8,";var u="data:image/svg+xml;utf8,";var M="data:image/svg+xml;utf8,";var z="data:image/svg+xml;utf8,";var k="data:image/svg+xml;utf8,";var f="data:image/svg+xml;utf8,",B="data:image/svg+xml;utf8,";var L="data:image/svg+xml;utf8,";var H="data:image/svg+xml;utf8,";var V="data:image/svg+xml;utf8,";var C="data:image/svg+xml;utf8,";var A="data:image/svg+xml;utf8,";var y="data:image/svg+xml;utf8,";var S="data:image/svg+xml;utf8,";var j="data:image/svg+xml;utf8,",O="data:image/svg+xml;utf8,";var b="data:image/svg+xml;utf8,";var q="data:image/svg+xml;utf8,";var D="data:image/svg+xml;utf8,";var F="data:image/svg+xml;utf8,",U="data:image/svg+xml;utf8,";var R="data:image/svg+xml;utf8,";var P="data:image/svg+xml;utf8,";var T="data:image/svg+xml;utf8,";var N="data:image/svg+xml;utf8,";var I="data:image/svg+xml;utf8,";var E="data:image/svg+xml;utf8,";var W="data:image/svg+xml;utf8,";var G="data:image/svg+xml;utf8,";var X="data:image/svg+xml;utf8,",Q="data:image/svg+xml;utf8,",Y="data:image/svg+xml;utf8,",Z="data:image/svg+xml;utf8,";var $="data:image/svg+xml;utf8,",J="data:image/svg+xml;utf8,";var _="data:image/svg+xml;utf8,";var K="data:image/svg+xml;utf8,";var o1="data:image/svg+xml;utf8,",s1="data:image/svg+xml;utf8,";var a1="data:image/svg+xml;utf8,";var t1="data:image/svg+xml;utf8,";var i1="data:image/svg+xml;utf8,";var n1="data:image/svg+xml;utf8,";var l1="data:image/svg+xml;utf8,";var c1="data:image/svg+xml;utf8,";var e1="data:image/svg+xml;utf8,";var r1="data:image/svg+xml;utf8,";var v1="data:image/svg+xml;utf8,",g1="data:image/svg+xml;utf8,";var w1="data:image/svg+xml;utf8,";var h1="data:image/svg+xml;utf8,";var d1="data:image/svg+xml;utf8,";var p1="data:image/svg+xml;utf8,";var x1="data:image/svg+xml;utf8,";var m1="data:image/svg+xml;utf8,";var u1="data:image/svg+xml;utf8,";var M1="data:image/svg+xml;utf8,";var z1="data:image/svg+xml;utf8,";var k1="data:image/svg+xml;utf8,";var t,l=function(){if(typeof window>"u")return new Map;if(!t){var o=window;o.Ionicons=o.Ionicons||{},t=o.Ionicons.map=o.Ionicons.map||new Map}return t},c=function(o){Object.keys(o).forEach(function(s){n(s,o[s]);var a=s.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g,"$1-$2").toLowerCase();s!==a&&n(a,o[s])})},n=function(o,s){var a=l(),i=a.get(o);i===void 0?a.set(o,s):i!==s&&console.warn('[Ionicons Warning]: Multiple icons were mapped to name "'.concat(o,'". Ensure that multiple icons are not mapped to the same icon name.'))};export{e as a,r as b,v as c,g as d,w as e,h as f,d as g,p as h,x as i,m as j,u as k,M as l,z as m,k as n,f as o,B as p,L as q,H as r,V as s,C as t,A as u,y as v,S as w,j as x,O as y,b as z,q as A,D as B,F as C,U as D,R as E,P as F,T as G,N as H,I,E as J,W as K,G as L,X as M,Q as N,Y as O,Z as P,$ as Q,J as R,_ as S,K as T,o1 as U,s1 as V,a1 as W,t1 as X,i1 as Y,n1 as Z,l1 as _,c1 as $,e1 as aa,r1 as ba,v1 as ca,g1 as da,w1 as ea,h1 as fa,d1 as ga,p1 as ha,x1 as ia,m1 as ja,u1 as ka,M1 as la,z1 as ma,k1 as na,c as oa}; diff --git a/.admin-app/chunk-BFGT5WRV.js b/.admin-app/chunk-R77PAFDI.js similarity index 92% rename from .admin-app/chunk-BFGT5WRV.js rename to .admin-app/chunk-R77PAFDI.js index 23117d02..fe573f23 100644 --- a/.admin-app/chunk-BFGT5WRV.js +++ b/.admin-app/chunk-R77PAFDI.js @@ -1 +1 @@ -import{l as o,w as r}from"./chunk-FDEJMFAU.js";import{h as e}from"./chunk-LNJ3S2LQ.js";var a=class a{constructor(){this.camps=[];this.art=[];this.initialized=r(!1)}init(){return e(this,null,function*(){if(this.camps.length>0&&this.art.length>0)return;this.initialized.set(!1);let i=`${new Date().getFullYear()}`,n="10",s=`https://api.dust.events/static/ttitd-${i}/camps.json?revision=${n}`,t=`https://api.dust.events/static/ttitd-${i}/art.json?revision=${n}`;this.camps=yield this.getData(s),this.art=yield this.getData(t),this.initialized.set(!0)})}getData(i){return e(this,null,function*(){return(yield(yield fetch(i)).json()).map(t=>({uid:t.uid,name:t.name,location:t.location_string})).sort((t,l)=>t.name.localeCompare(l.name))})}};a.\u0275fac=function(n){return new(n||a)},a.\u0275prov=o({token:a,factory:a.\u0275fac,providedIn:"root"});var c=a;export{c as a}; +import{l as o,w as r}from"./chunk-LVL3PYF7.js";import{h as e}from"./chunk-LNJ3S2LQ.js";var a=class a{constructor(){this.camps=[];this.art=[];this.initialized=r(!1)}init(){return e(this,null,function*(){if(this.camps.length>0&&this.art.length>0)return;this.initialized.set(!1);let i=`${new Date().getFullYear()}`,n="10",s=`https://api.dust.events/static/ttitd-${i}/camps.json?revision=${n}`,t=`https://api.dust.events/static/ttitd-${i}/art.json?revision=${n}`;this.camps=yield this.getData(s),this.art=yield this.getData(t),this.initialized.set(!0)})}getData(i){return e(this,null,function*(){return(yield(yield fetch(i)).json()).map(t=>({uid:t.uid,name:t.name,location:t.location_string})).sort((t,l)=>t.name.localeCompare(l.name))})}};a.\u0275fac=function(n){return new(n||a)},a.\u0275prov=o({token:a,factory:a.\u0275fac,providedIn:"root"});var c=a;export{c as a}; diff --git a/.admin-app/chunk-RJKKC3S6.js b/.admin-app/chunk-RJKKC3S6.js deleted file mode 100644 index d6db2556..00000000 --- a/.admin-app/chunk-RJKKC3S6.js +++ /dev/null @@ -1 +0,0 @@ -import{a as ye}from"./chunk-3PGTX6TC.js";import{a as Ee}from"./chunk-DUYAUKPA.js";import"./chunk-YLPHNW7F.js";import{a as we}from"./chunk-36OD2M2C.js";import{a as Ce}from"./chunk-NIJZXRAZ.js";import{a as xe}from"./chunk-MTVNVIRQ.js";import{a as ve}from"./chunk-OIMHMYK4.js";import{a as fe}from"./chunk-5B2MUMUK.js";import"./chunk-DUKSTT3K.js";import{a as ue,ba as _e,ja as ge}from"./chunk-LIWDDRYP.js";import{K as he,a as de,g as me,l as g,n as V,t as k,w as pe}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as O,Aa as d,Ac as ne,Ba as b,Ca as I,Da as D,Db as j,Dc as oe,Ec as ae,Fa as U,Fc as re,Ga as B,H as r,Ha as L,Ma as F,Mc as se,P as A,Qc as le,Rc as ce,Ua as R,Wb as G,X as h,Y as u,_a as Z,aa as M,ba as p,ca as s,cc as H,da as l,db as $,dc as K,ea as f,hb as N,ja as S,jb as z,kb as J,la as y,lc as Q,na as c,nb as q,p as E,rc as X,s as C,sc as ee,t as x,tb as W,uc as te,vc as ie,wb as Y}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as _}from"./chunk-LNJ3S2LQ.js";var be=i=>[i],Ie=(i,t)=>t.id,Te=(i,t)=>t.name;function Pe(i,t){if(i&1){let e=S();s(0,"ion-toolbar")(1,"ion-searchbar",11),y("ionInput",function(n){C(e);let a=c();return x(a.handleSearch(n))}),l()()}if(i&2){let e=c();r(),p("debounce",600)("placeholder","Search events at "+e.title)}}function Oe(i,t){i&1&&f(0,"app-spinner")}function Me(i,t){if(i&1&&(s(0,"div",12)(1,"app-card",15),f(2,"app-img",16),s(3,"ion-button",17),d(4," Register Event "),l()()()),i&2){let e=c(2);p("ngClass",e.events.length>0?"":"pad-vertical"),r(),p("description","You can register your event for "+e.title+"."),r(),p("width","100px")("height","100px")("src",e.imageUrl),r(),p("routerLink",e.newRoute())}}function Ve(i,t){if(i&1&&(s(0,"ion-segment-button",20)(1,"ion-label"),d(2),l()()),i&2){let e=t.$implicit;p("value",e.name),r(2),b(e.title)}}function ke(i,t){if(i&1){let e=S();s(0,"ion-toolbar")(1,"ion-buttons",1)(2,"ion-segment",19),L("ngModelChange",function(n){C(e);let a=c(3);return B(a.showing,n)||(a.showing=n),x(n)}),y("ionChange",function(){C(e);let n=c(3);return x(n.refresh())}),O(3,Ve,3,2,"ion-segment-button",20,Te),l()()()}if(i&2){let e=c(3);r(2),U("ngModel",e.showing),p("value",e.showing),r(),M(e.filters)}}function Ae(i,t){i&1&&(s(0,"ion-item"),d(1," There are no events matching your search. "),l())}function De(i,t){if(i&1){let e=S();s(0,"ion-item",21)(1,"h2"),d(2,"Getting Started"),l()(),s(3,"ion-item"),d(4," Click \xA0"),s(5,"a",22),y("click",function(){C(e);let n=c(5);return x(n.newEvent())}),d(6,"Add Event"),l(),d(7),l()}if(i&2){let e=c(5);r(7),I("\xA0 to create your first event at ",e.title,". ")}}function Ue(i,t){if(i&1&&h(0,De,8,1),i&2){let e=c(4);u(e.isAdmin?0:-1)}}function Be(i,t){if(i&1&&h(0,Ae,2,0,"ion-item")(1,Ue,1,1),i&2){let e=c(3);u(e.filteredBySearch?0:1)}}function Le(i,t){if(i&1&&(s(0,"ion-item")(1,"ion-text",23),d(2),l()()),i&2){let e=c(3);r(2),I("Time Zone ",e.diffTimeZone)}}function Fe(i,t){if(i&1&&(s(0,"p",29),d(1),l(),s(2,"p",30),d(3),l()),i&2){let e=c().$implicit;r(),D("",e.camp,"",e.art),r(2),b(e.other_location)}}function Re(i,t){if(i&1&&(s(0,"ion-item",18),f(1,"app-img",24),s(2,"ion-label",25),h(3,Fe,4,3),d(4),l(),s(5,"ion-label",26)(6,"p",27),d(7),l(),s(8,"p",28),d(9),l()()()),i&2){let e=t.$implicit,o=c(3);p("routerLink","../events/"+F(8,be,e.id)),r(),p("width","45px")("height","45px")("src",o.image(e)),r(2),u(!o.campId&&!o.artId?3:-1),r(),I(" ",e.title," "),r(3),b(e.event_type),r(2),b(e.timeString)}}function Ze(i,t){if(i&1&&(s(0,"app-image-card",13),h(1,ke,5,2,"ion-toolbar"),s(2,"ion-list"),h(3,Be,2,1)(4,Le,3,1,"ion-item"),O(5,Re,10,10,"ion-item",18,Ie),l()()),i&2){let e=c(2);p("url",e.getImageUrl()),r(),u(!e.campId&&!e.artId?1:-1),r(2),u(e.events.length===0?3:e.diffTimeZone?4:-1),r(2),M(e.events)}}function $e(i,t){if(i&1&&(h(0,Me,5,6,"div",12)(1,Ze,7,3,"app-image-card",13),f(2,"div",14)(3,"div",14)),i&2){let e=c();u(e.events.length===0&&!e.filteredBySearch&&!e.isAdmin?0:1)}}function Ne(i,t){if(i&1){let e=S();s(0,"app-footer",31),y("press",function(){C(e);let n=c();return x(n.newEvent())}),l()}}var w=class w{constructor(){this.api=E(he);this.router=E(z);this.eventService=E(Ee);this.route=E(N);this.vanity=R();this.events=[];this.title="Events";this.busy=!0;this.isAdmin=!1;this.imageUrl="";this.newEventUrl="../events/new";this.description="";this.diffTimeZone="";this.showing="all";this.showSearch=!0;this.canEditEvent=!1;this.buttons=[];this.filteredBySearch=!1;this.filters=[];ge({add:ue,printOutline:_e})}filtered(t,e,o,n,a){var v;let m=!0;return t=="mine"?(v=n.contact)!=null&&v.startsWith("***")&&(m=!1):t!=="all"&&(m=this.hasDay(n,t,a)),e&&g(n.hosted_by_camp)!==g(e)&&(m=!1),o&&g(n.located_at_art)!==g(o)&&(m=!1),m}importCSV(){return()=>_(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.router.navigateByUrl("./import-events")})}exportCSV(){return()=>_(this,null,function*(){if(!this.isAdmin){this.message("You do not have access rights to this feature.");return}this.exportToCSV()})}ngOnInit(){return _(this,null,function*(){var t;try{this.busy=!0,yield this.api.setFestivalByVanity(this.vanity(),!0),this.campId=g(this.route.snapshot.queryParams.camp),this.artId=g(this.route.snapshot.queryParams.art),this.isAdmin=this.api.isAdmin(this.api.festivalId),this.imageUrl=(t=this.api.imageURL(this.api.festivalImage()))!=null?t:"",this.camp=this.campId?yield this.api.getCamp(this.campId):void 0,this.art=this.artId?yield this.api.getArt(this.artId):void 0,this.title=this.camp?this.camp.name:this.api.festivalTitle(),this.canEditEvent=this.api.eventEditing()||this.isAdmin,this.buttons=this.isAdmin?[{title:"Import CSV",method:this.importCSV(),icon:"cloud-upload-outline"},{title:"Export CSV",method:this.exportCSV(),icon:"cloud-download-outline"}]:[],this.art&&(this.title=this.art.name),this.diffTimeZone=this.api.currentTimeZone()==this.api.festivalTimeZone()?"":this.api.festivalTimeZone(),yield this.api.setFestivalByVanity(this.vanity()),yield this.refresh(),this.showSearch=this.events.length>1,this.description=this.events.length==0?`There are no events yet for ${this.title}`:`Events for ${this.title}`}finally{this.busy=!1}})}ionViewDidEnter(){return _(this,null,function*(){for(;this.busy;)yield me(500);yield this.refresh()})}newRoute(){return this.canEditEvent?"../events/new":void 0}message(t){setTimeout(()=>{this.api.sendMessage(t)},1)}handleSearch(t){return _(this,null,function*(){let e=t.target.value.toLowerCase().trim(),o=this.cleanEvents(yield this.api.events({cached:!0}),!1);this.events=o.filter(n=>{var a;return n.title.toLowerCase().includes(e)||((a=n.camp)==null?void 0:a.toLowerCase().includes(e))}),this.filteredBySearch=e.length>0})}image(t){return this.api.imageURL(t.imageUrl)}newEvent(){this.router.navigate(["./new"],{queryParams:{camp:this.campId,art:this.artId},relativeTo:this.route})}festivalImage(){return this.api.imageURL(this.api.festivalImage())}refresh(){return _(this,null,function*(){this.filters=[],this.events=this.cleanEvents(yield this.api.events({cached:!0}),!1),this.filteredBySearch=!1,this.filters.find(t=>t.name=="mine")||this.filters.unshift({title:"All",name:"all"},{title:"Mine",name:"mine"})})}exportToCSV(){return _(this,null,function*(){let t=this.showing!=="all",e=this.cleanEvents(yield this.api.events({cached:!0}),t);yield this.eventService.exportEventsToCSV(this.api.festivalTitle(),e,this.api.currentTimeZone(),this.showing)})}getImageUrl(){var t;return this.camp&&this.camp.imageUrl?this.api.imageURL(this.camp.imageUrl):this.art&&((t=this.art)!=null&&t.imageUrl)?this.api.imageURL(this.art.imageUrl):this.festivalImage()}addFiltersForDays(t){let e=new Date(t.start_time),o=`${e.getDate()} (${pe[e.getDay()]})`;this.filters.find(a=>a.title==o)||(this.filters.push({title:o,name:this.nameOf(e)}),this.filters.sort((a,m)=>a.name>m.name?1:-1))}hasDay(t,e,o){let n=JSON.parse(t.occurrence_set);if(o){let a=[];for(let m of n)e==this.nameOf(new Date(m.start_time))&&a.push(m);if(a.length>0)return t.occurrence_set=JSON.stringify(a),!0}else for(let a of n)if(e==this.nameOf(new Date(a.start_time)))return!0;return!1}nameOf(t){return`${t.getDate()}-${t.getMonth()}-${t.getFullYear()}`}cleanEvents(t,e){var o;for(let n of t){let a=JSON.parse(n.occurrence_set);this.goodDates(a)||console.error(`${n.title} has bad dates`);let m=V(a[0].start_time),v=V(a[0].end_time),T=this.api.currentTimeZone();n.timeString=(o=de(m,v,void 0,T))==null?void 0:o.long,a.length>1&&(n.timeString+=` (+${a.length-1} other occurrence)`);for(let P of a)this.addFiltersForDays(P)}return t.sort((n,a)=>{let m=JSON.parse(n.occurrence_set),v=JSON.parse(a.occurrence_set),T=new Date(m[0].start_time),P=new Date(v[0].start_time);return T-P}),t.filter(n=>this.filtered(this.showing,this.campId,this.artId,n,e))}signOut(){return _(this,null,function*(){this.api.signOut(),this.router.navigateByUrl("/auth")})}goodDates(t){for(let e of t)if(k(e.start_time)!=e.start_time||k(e.end_time)!=e.end_time)return!1;return!0}};w.\u0275fac=function(e){return new(e||w)},w.\u0275cmp=A({type:w,selectors:[["app-events"]],inputs:{vanity:[1,"vanity"]},decls:17,vars:7,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../events/new"],["name","add"],[3,"buttons"],[3,"fullscreen"],[1,"border"],["title","Add Event"],["title","Add Event",3,"click"],["mode","ios","search-icon","none","show-clear-button","always",3,"ionInput","debounce","placeholder"],[1,"ion-text-center",3,"ngClass"],["routeTo","../events/new",3,"url"],[1,"ion-padding"],["title","Event Registration",3,"description"],["logo","",1,"logo","ion-padding",3,"width","height","src"],["shape","round",3,"routerLink"],[3,"routerLink"],["mode","ios",2,"float","right","margin-right","0.5rem","margin-top","0.5rem","width","100%",3,"ngModelChange","ionChange","ngModel","value"],[3,"value"],["lines","none"],[3,"click"],["color","medium","slot","end",2,"text-transform","uppercase","font-size","small"],[1,"clickable","pad-right",3,"width","height","src"],[1,"ion-text-wrap"],[1,"ion-text-right","ion-text-wrap","last-col"],[1,"one-line","sz-large"],["color","medium",1,"time"],[1,"title"],[1,"title","highlight"],["title","Add Event",3,"press"]],template:function(e,o){e&1&&(s(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),f(3,"ion-back-button"),l(),s(4,"ion-title",2),d(5),l(),s(6,"ion-buttons",3)(7,"ion-button",4),f(8,"ion-icon",5),l(),f(9,"app-side",6),l()()(),s(10,"ion-content",7),h(11,Pe,2,2,"ion-toolbar"),h(12,Oe,1,0,"app-spinner"),s(13,"div",8),h(14,$e,4,1),h(15,Ne,1,0,"app-footer",9),l(),s(16,"app-footer",10),y("click",function(){return o.newEvent()}),l()()),e&2&&(r(5),I("Events at ",o.title),r(4),p("buttons",o.buttons),r(),p("fullscreen",!0),r(),u(o.showSearch?11:-1),r(),u(o.busy?12:-1),r(2),u(o.busy?-1:14),r(),u(o.events.length!==0&&!o.filteredBySearch?15:-1))},dependencies:[oe,le,we,fe,ce,ne,$,Z,j,W,Y,q,J,X,re,K,G,ae,H,Q,se,ie,ee,te,xe,Ce,ve,ye],styles:["ion-fab[_ngcontent-%COMP%]{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}ion-fab-button[_ngcontent-%COMP%]{margin-top:calc(-2 * var(--spacing-1xl));padding:var(--spacing-sm)}ion-item[_ngcontent-%COMP%]{cursor:pointer}.title[_ngcontent-%COMP%]{font-size:var(--font-size-base)}.highlight[_ngcontent-%COMP%]{color:var(--ion-color-primary)}.one-line[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time[_ngcontent-%COMP%]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl)}.last-col[_ngcontent-%COMP%]{max-width:25%}@media (width < 500px){.sz-large[_ngcontent-%COMP%]{display:none}}.pad-right[_ngcontent-%COMP%]{width:55px}"]});var Se=w;export{Se as EventsPage}; diff --git a/.admin-app/chunk-RJUAL4VO.js b/.admin-app/chunk-RJUAL4VO.js deleted file mode 100644 index 24129a8f..00000000 --- a/.admin-app/chunk-RJUAL4VO.js +++ /dev/null @@ -1,8 +0,0 @@ -import{a as Qn}from"./chunk-BWGKDW4H.js";import{a as $n}from"./chunk-NIJZXRAZ.js";import{a as Gn}from"./chunk-MTVNVIRQ.js";import"./chunk-OIMHMYK4.js";import{a as Yn}from"./chunk-GPVDUW6Q.js";import{a as ot}from"./chunk-WRLAXAJB.js";import{a as Jn}from"./chunk-5B2MUMUK.js";import{a as Kn,c as Mt}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import"./chunk-DUKSTT3K.js";import{D as Ye,F as Qe,J as Un,K as Hn,L as $e,O as Ge,Q as We,S as Ze,U as Xe,V as et,W as tt,aa as nt,ba as jn,ca as it,d as Ln,ja as O,k as Le,m as ze,n as zn,r as Ue,s as He,t as re,w as je,y as Je,z as Ke}from"./chunk-LIWDDRYP.js";import{J as On,K as oe,e as Rn,j as Dn}from"./chunk-OQVFSD37.js";import{a as qn}from"./chunk-PFLI22GG.js";import{$ as ne,Aa as P,Ba as J,Bc as Fn,Ca as Se,Cc as An,D as tn,Db as ke,Dc as Nn,Ec as De,F as nn,Fa as un,Fb as bn,Fc as Oe,Ga as pn,Gc as qe,H as u,Ha as fn,J as on,Ja as gn,La as mn,Ma as Tt,Mc as D,N as rn,O as an,P as N,Q as sn,Qc as Vn,R as ln,Ra as R,Sc as Bn,T as cn,Ua as z,Wb as En,X as E,Xa as hn,Xb as Tn,Y as T,_ as Et,aa as ie,ab as _n,ba as f,ca as c,cc as K,da as d,db as Ce,dc as Fe,ea as b,ec as Mn,fc as In,gb as Cn,ja as F,jb as vn,jc as Sn,kb as Pe,la as h,lc as Ae,m as Xt,na as p,nb as wn,nc as Ne,oc as Ve,p as A,rc as Be,s as C,sc as Pn,t as v,tb as xn,uc as Re,vc as kn,w as V,wb as yn,x as en,za as dn}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{e as x,f as ro,h as k}from"./chunk-LNJ3S2LQ.js";var Zn=x((Or,Wn)=>{"use strict";Wn.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var Y=x(W=>{"use strict";var It,ao=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];W.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return t*4+17};W.getSymbolTotalCodewords=function(t){return ao[t]};W.getBCHDigit=function(n){let t=0;for(;n!==0;)t++,n>>>=1;return t};W.setToSJISFunction=function(t){if(typeof t!="function")throw new Error('"toSJISFunc" is not a valid function.');It=t};W.isKanjiModeEnabled=function(){return typeof It<"u"};W.toSJIS=function(t){return It(t)}});var rt=x(B=>{"use strict";B.L={bit:1};B.M={bit:0};B.Q={bit:3};B.H={bit:2};function so(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return B.L;case"m":case"medium":return B.M;case"q":case"quartile":return B.Q;case"h":case"high":return B.H;default:throw new Error("Unknown EC Level: "+n)}}B.isValid=function(t){return t&&typeof t.bit<"u"&&t.bit>=0&&t.bit<4};B.from=function(t,e){if(B.isValid(t))return t;try{return so(t)}catch{return e}}});var ti=x((zr,ei)=>{"use strict";function Xn(){this.buffer=[],this.length=0}Xn.prototype={get:function(n){let t=Math.floor(n/8);return(this.buffer[t]>>>7-n%8&1)===1},put:function(n,t){for(let e=0;e>>t-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(n){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),n&&(this.buffer[t]|=128>>>this.length%8),this.length++}};ei.exports=Xn});var ii=x((Ur,ni)=>{"use strict";function ve(n){if(!n||n<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=n,this.data=new Uint8Array(n*n),this.reservedBit=new Uint8Array(n*n)}ve.prototype.set=function(n,t,e,i){let o=n*this.size+t;this.data[o]=e,i&&(this.reservedBit[o]=!0)};ve.prototype.get=function(n,t){return this.data[n*this.size+t]};ve.prototype.xor=function(n,t,e){this.data[n*this.size+t]^=e};ve.prototype.isReserved=function(n,t){return this.reservedBit[n*this.size+t]};ni.exports=ve});var oi=x(at=>{"use strict";var lo=Y().getSymbolSize;at.getRowColCoords=function(t){if(t===1)return[];let e=Math.floor(t/7)+2,i=lo(t),o=i===145?26:Math.ceil((i-13)/(2*e-2))*2,r=[i-7];for(let a=1;a{"use strict";var co=Y().getSymbolSize,ri=7;ai.getPositions=function(t){let e=co(t);return[[0,0],[e-ri,0],[0,e-ri]]}});var li=x(y=>{"use strict";y.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var Z={N1:3,N2:3,N3:40,N4:10};y.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7};y.from=function(t){return y.isValid(t)?parseInt(t,10):void 0};y.getPenaltyN1=function(t){let e=t.size,i=0,o=0,r=0,a=null,s=null;for(let l=0;l=5&&(i+=Z.N1+(o-5)),a=m,o=1),m=t.get(g,l),m===s?r++:(r>=5&&(i+=Z.N1+(r-5)),s=m,r=1)}o>=5&&(i+=Z.N1+(o-5)),r>=5&&(i+=Z.N1+(r-5))}return i};y.getPenaltyN2=function(t){let e=t.size,i=0;for(let o=0;o=10&&(o===1488||o===93)&&i++,r=r<<1&2047|t.get(s,a),s>=10&&(r===1488||r===93)&&i++}return i*Z.N3};y.getPenaltyN4=function(t){let e=0,i=t.data.length;for(let r=0;r{"use strict";var Q=rt(),st=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],lt=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];St.getBlocksCount=function(t,e){switch(e){case Q.L:return st[(t-1)*4+0];case Q.M:return st[(t-1)*4+1];case Q.Q:return st[(t-1)*4+2];case Q.H:return st[(t-1)*4+3];default:return}};St.getTotalCodewordsCount=function(t,e){switch(e){case Q.L:return lt[(t-1)*4+0];case Q.M:return lt[(t-1)*4+1];case Q.Q:return lt[(t-1)*4+2];case Q.H:return lt[(t-1)*4+3];default:return}}});var ci=x(dt=>{"use strict";var we=new Uint8Array(512),ct=new Uint8Array(256);(function(){let t=1;for(let e=0;e<255;e++)we[e]=t,ct[t]=e,t<<=1,t&256&&(t^=285);for(let e=255;e<512;e++)we[e]=we[e-255]})();dt.log=function(t){if(t<1)throw new Error("log("+t+")");return ct[t]};dt.exp=function(t){return we[t]};dt.mul=function(t,e){return t===0||e===0?0:we[ct[t]+ct[e]]}});var di=x(xe=>{"use strict";var kt=ci();xe.mul=function(t,e){let i=new Uint8Array(t.length+e.length-1);for(let o=0;o=0;){let o=i[0];for(let a=0;a{"use strict";var ui=di();function Ft(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}Ft.prototype.initialize=function(t){this.degree=t,this.genPoly=ui.generateECPolynomial(this.degree)};Ft.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");let e=new Uint8Array(t.length+this.degree);e.set(t);let i=ui.mod(e,this.genPoly),o=this.degree-i.length;if(o>0){let r=new Uint8Array(this.degree);return r.set(i,o),r}return i};pi.exports=Ft});var At=x(gi=>{"use strict";gi.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}});var Nt=x(U=>{"use strict";var mi="[0-9]+",po="[A-Z $%*+\\-./:]+",ye="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";ye=ye.replace(/u/g,"\\u");var fo="(?:(?![A-Z0-9 $%*+\\-./:]|"+ye+`)(?:.|[\r -]))+`;U.KANJI=new RegExp(ye,"g");U.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");U.BYTE=new RegExp(fo,"g");U.NUMERIC=new RegExp(mi,"g");U.ALPHANUMERIC=new RegExp(po,"g");var go=new RegExp("^"+ye+"$"),mo=new RegExp("^"+mi+"$"),ho=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");U.testKanji=function(t){return go.test(t)};U.testNumeric=function(t){return mo.test(t)};U.testAlphanumeric=function(t){return ho.test(t)}});var $=x(S=>{"use strict";var _o=At(),Vt=Nt();S.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};S.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};S.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};S.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};S.MIXED={bit:-1};S.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!_o.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]};S.getBestModeForData=function(t){return Vt.testNumeric(t)?S.NUMERIC:Vt.testAlphanumeric(t)?S.ALPHANUMERIC:Vt.testKanji(t)?S.KANJI:S.BYTE};S.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")};S.isValid=function(t){return t&&t.bit&&t.ccBits};function Co(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"numeric":return S.NUMERIC;case"alphanumeric":return S.ALPHANUMERIC;case"kanji":return S.KANJI;case"byte":return S.BYTE;default:throw new Error("Unknown mode: "+n)}}S.from=function(t,e){if(S.isValid(t))return t;try{return Co(t)}catch{return e}}});var wi=x(X=>{"use strict";var ut=Y(),vo=Pt(),hi=rt(),G=$(),Bt=At(),Ci=7973,_i=ut.getBCHDigit(Ci);function wo(n,t,e){for(let i=1;i<=40;i++)if(t<=X.getCapacity(i,e,n))return i}function vi(n,t){return G.getCharCountIndicator(n,t)+4}function xo(n,t){let e=0;return n.forEach(function(i){let o=vi(i.mode,t);e+=o+i.getBitsLength()}),e}function yo(n,t){for(let e=1;e<=40;e++)if(xo(n,e)<=X.getCapacity(e,t,G.MIXED))return e}X.from=function(t,e){return Bt.isValid(t)?parseInt(t,10):e};X.getCapacity=function(t,e,i){if(!Bt.isValid(t))throw new Error("Invalid QR Code version");typeof i>"u"&&(i=G.BYTE);let o=ut.getSymbolTotalCodewords(t),r=vo.getTotalCodewordsCount(t,e),a=(o-r)*8;if(i===G.MIXED)return a;let s=a-vi(i,t);switch(i){case G.NUMERIC:return Math.floor(s/10*3);case G.ALPHANUMERIC:return Math.floor(s/11*2);case G.KANJI:return Math.floor(s/13);case G.BYTE:default:return Math.floor(s/8)}};X.getBestVersionForData=function(t,e){let i,o=hi.from(e,hi.M);if(Array.isArray(t)){if(t.length>1)return yo(t,o);if(t.length===0)return 1;i=t[0]}else i=t;return wo(i.mode,i.getLength(),o)};X.getEncodedBits=function(t){if(!Bt.isValid(t)||t<7)throw new Error("Invalid QR Code version");let e=t<<12;for(;ut.getBCHDigit(e)-_i>=0;)e^=Ci<{"use strict";var Rt=Y(),yi=1335,bo=21522,xi=Rt.getBCHDigit(yi);bi.getEncodedBits=function(t,e){let i=t.bit<<3|e,o=i<<10;for(;Rt.getBCHDigit(o)-xi>=0;)o^=yi<{"use strict";var Eo=$();function ae(n){this.mode=Eo.NUMERIC,this.data=n.toString()}ae.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)};ae.prototype.getLength=function(){return this.data.length};ae.prototype.getBitsLength=function(){return ae.getBitsLength(this.data.length)};ae.prototype.write=function(t){let e,i,o;for(e=0;e+3<=this.data.length;e+=3)i=this.data.substr(e,3),o=parseInt(i,10),t.put(o,10);let r=this.data.length-e;r>0&&(i=this.data.substr(e),o=parseInt(i,10),t.put(o,r*3+1))};Ti.exports=ae});var Si=x((na,Ii)=>{"use strict";var To=$(),Dt=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function se(n){this.mode=To.ALPHANUMERIC,this.data=n}se.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)};se.prototype.getLength=function(){return this.data.length};se.prototype.getBitsLength=function(){return se.getBitsLength(this.data.length)};se.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let i=Dt.indexOf(this.data[e])*45;i+=Dt.indexOf(this.data[e+1]),t.put(i,11)}this.data.length%2&&t.put(Dt.indexOf(this.data[e]),6)};Ii.exports=se});var ki=x((ia,Pi)=>{"use strict";Pi.exports=function(t){for(var e=[],i=t.length,o=0;o=55296&&r<=56319&&i>o+1){var a=t.charCodeAt(o+1);a>=56320&&a<=57343&&(r=(r-55296)*1024+a-56320+65536,o+=1)}if(r<128){e.push(r);continue}if(r<2048){e.push(r>>6|192),e.push(r&63|128);continue}if(r<55296||r>=57344&&r<65536){e.push(r>>12|224),e.push(r>>6&63|128),e.push(r&63|128);continue}if(r>=65536&&r<=1114111){e.push(r>>18|240),e.push(r>>12&63|128),e.push(r>>6&63|128),e.push(r&63|128);continue}e.push(239,191,189)}return new Uint8Array(e).buffer}});var Ai=x((oa,Fi)=>{"use strict";var Mo=ki(),Io=$();function le(n){this.mode=Io.BYTE,typeof n=="string"&&(n=Mo(n)),this.data=new Uint8Array(n)}le.getBitsLength=function(t){return t*8};le.prototype.getLength=function(){return this.data.length};le.prototype.getBitsLength=function(){return le.getBitsLength(this.data.length)};le.prototype.write=function(n){for(let t=0,e=this.data.length;t{"use strict";var So=$(),Po=Y();function ce(n){this.mode=So.KANJI,this.data=n}ce.getBitsLength=function(t){return t*13};ce.prototype.getLength=function(){return this.data.length};ce.prototype.getBitsLength=function(){return ce.getBitsLength(this.data.length)};ce.prototype.write=function(n){let t;for(t=0;t=33088&&e<=40956)e-=33088;else if(e>=57408&&e<=60351)e-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+` -Make sure your charset is UTF-8`);e=(e>>>8&255)*192+(e&255),n.put(e,13)}};Ni.exports=ce});var Bi=x((aa,Ot)=>{"use strict";var be={single_source_shortest_paths:function(n,t,e){var i={},o={};o[t]=0;var r=be.PriorityQueue.make();r.push(t,0);for(var a,s,l,g,m,M,_,I,H;!r.empty();){a=r.pop(),s=a.value,g=a.cost,m=n[s]||{};for(l in m)m.hasOwnProperty(l)&&(M=m[l],_=g+M,I=o[l],H=typeof o[l]>"u",(H||I>_)&&(o[l]=_,r.push(l,_),i[l]=s))}if(typeof e<"u"&&typeof o[e]>"u"){var j=["Could not find a path from ",t," to ",e,"."].join("");throw new Error(j)}return i},extract_shortest_path_from_predecessor_list:function(n,t){for(var e=[],i=t,o;i;)e.push(i),o=n[i],i=n[i];return e.reverse(),e},find_path:function(n,t,e){var i=be.single_source_shortest_paths(n,t,e);return be.extract_shortest_path_from_predecessor_list(i,e)},PriorityQueue:{make:function(n){var t=be.PriorityQueue,e={},i;n=n||{};for(i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e.queue=[],e.sorter=n.sorter||t.default_sorter,e},default_sorter:function(n,t){return n.cost-t.cost},push:function(n,t){var e={value:n,cost:t};this.queue.push(e),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof Ot<"u"&&(Ot.exports=be)});var Hi=x(de=>{"use strict";var w=$(),Oi=Mi(),qi=Si(),Li=Ai(),zi=Vi(),Ee=Nt(),pt=Y(),ko=Bi();function Ri(n){return unescape(encodeURIComponent(n)).length}function Te(n,t,e){let i=[],o;for(;(o=n.exec(e))!==null;)i.push({data:o[0],index:o.index,mode:t,length:o[0].length});return i}function Ui(n){let t=Te(Ee.NUMERIC,w.NUMERIC,n),e=Te(Ee.ALPHANUMERIC,w.ALPHANUMERIC,n),i,o;return pt.isKanjiModeEnabled()?(i=Te(Ee.BYTE,w.BYTE,n),o=Te(Ee.KANJI,w.KANJI,n)):(i=Te(Ee.BYTE_KANJI,w.BYTE,n),o=[]),t.concat(e,i,o).sort(function(a,s){return a.index-s.index}).map(function(a){return{data:a.data,mode:a.mode,length:a.length}})}function qt(n,t){switch(t){case w.NUMERIC:return Oi.getBitsLength(n);case w.ALPHANUMERIC:return qi.getBitsLength(n);case w.KANJI:return zi.getBitsLength(n);case w.BYTE:return Li.getBitsLength(n)}}function Fo(n){return n.reduce(function(t,e){let i=t.length-1>=0?t[t.length-1]:null;return i&&i.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[])}function Ao(n){let t=[];for(let e=0;e{"use strict";var gt=Y(),Lt=rt(),Vo=ti(),Bo=ii(),Ro=oi(),Do=si(),Ht=li(),jt=Pt(),Oo=fi(),ft=wi(),qo=Ei(),Lo=$(),zt=Hi();function zo(n,t){let e=n.size,i=Do.getPositions(t);for(let o=0;o=0&&s<=6&&(l===0||l===6)||l>=0&&l<=6&&(s===0||s===6)||s>=2&&s<=4&&l>=2&&l<=4?n.set(r+s,a+l,!0,!0):n.set(r+s,a+l,!1,!0))}}function Uo(n){let t=n.size;for(let e=8;e>s&1)===1,n.set(o,r,a,!0),n.set(r,o,a,!0)}function Ut(n,t,e){let i=n.size,o=qo.getEncodedBits(t,e),r,a;for(r=0;r<15;r++)a=(o>>r&1)===1,r<6?n.set(r,8,a,!0):r<8?n.set(r+1,8,a,!0):n.set(i-15+r,8,a,!0),r<8?n.set(8,i-r-1,a,!0):r<9?n.set(8,15-r-1+1,a,!0):n.set(8,15-r-1,a,!0);n.set(i-8,8,1,!0)}function Jo(n,t){let e=n.size,i=-1,o=e-1,r=7,a=0;for(let s=e-1;s>0;s-=2)for(s===6&&s--;;){for(let l=0;l<2;l++)if(!n.isReserved(o,s-l)){let g=!1;a>>r&1)===1),n.set(o,s-l,g),r--,r===-1&&(a++,r=7)}if(o+=i,o<0||e<=o){o-=i,i=-i;break}}}function Ko(n,t,e){let i=new Vo;e.forEach(function(l){i.put(l.mode.bit,4),i.put(l.getLength(),Lo.getCharCountIndicator(l.mode,n)),l.write(i)});let o=gt.getSymbolTotalCodewords(n),r=jt.getTotalCodewordsCount(n,t),a=(o-r)*8;for(i.getLengthInBits()+4<=a&&i.put(0,4);i.getLengthInBits()%8!==0;)i.putBit(0);let s=(a-i.getLengthInBits())/8;for(let l=0;l=7&&jo(l,t),Jo(l,a),isNaN(i)&&(i=Ht.getBestMask(l,Ut.bind(null,l,e))),Ht.applyMask(i,l),Ut(l,e,i),{modules:l,version:t,errorCorrectionLevel:e,maskPattern:i,segments:o}}ji.create=function(t,e){if(typeof t>"u"||t==="")throw new Error("No input text");let i=Lt.M,o,r;return typeof e<"u"&&(i=Lt.from(e.errorCorrectionLevel,Lt.M),o=ft.from(e.version),r=Ht.from(e.maskPattern),e.toSJISFunc&>.setToSJISFunction(e.toSJISFunc)),Qo(t,o,i,r)}});var Jt=x(ee=>{"use strict";function Ki(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let t=n.slice().replace("#","").split("");if(t.length<3||t.length===5||t.length>8)throw new Error("Invalid hex color: "+n);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(i){return[i,i]}))),t.length===6&&t.push("F","F");let e=parseInt(t.join(""),16);return{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:e&255,hex:"#"+t.slice(0,6).join("")}}ee.getOptions=function(t){t||(t={}),t.color||(t.color={});let e=typeof t.margin>"u"||t.margin===null||t.margin<0?4:t.margin,i=t.width&&t.width>=21?t.width:void 0,o=t.scale||4;return{width:i,scale:i?4:o,margin:e,color:{dark:Ki(t.color.dark||"#000000ff"),light:Ki(t.color.light||"#ffffffff")},type:t.type,rendererOpts:t.rendererOpts||{}}};ee.getScale=function(t,e){return e.width&&e.width>=t+e.margin*2?e.width/(t+e.margin*2):e.scale};ee.getImageWidth=function(t,e){let i=ee.getScale(t,e);return Math.floor((t+e.margin*2)*i)};ee.qrToImageData=function(t,e,i){let o=e.modules.size,r=e.modules.data,a=ee.getScale(o,i),s=Math.floor((o+i.margin*2)*a),l=i.margin*a,g=[i.color.light,i.color.dark];for(let m=0;m=l&&M>=l&&m{"use strict";var Kt=Jt();function $o(n,t,e){n.clearRect(0,0,t.width,t.height),t.style||(t.style={}),t.height=e,t.width=e,t.style.height=e+"px",t.style.width=e+"px"}function Go(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}mt.render=function(t,e,i){let o=i,r=e;typeof o>"u"&&(!e||!e.getContext)&&(o=e,e=void 0),e||(r=Go()),o=Kt.getOptions(o);let a=Kt.getImageWidth(t.modules.size,o),s=r.getContext("2d"),l=s.createImageData(a,a);return Kt.qrToImageData(l.data,t,o),$o(s,r,a),s.putImageData(l,0,0),r};mt.renderToDataURL=function(t,e,i){let o=i;typeof o>"u"&&(!e||!e.getContext)&&(o=e,e=void 0),o||(o={});let r=mt.render(t,e,o),a=o.type||"image/png",s=o.rendererOpts||{};return r.toDataURL(a,s.quality)}});var Gi=x($i=>{"use strict";var Wo=Jt();function Qi(n,t){let e=n.a/255,i=t+'="'+n.hex+'"';return e<1?i+" "+t+'-opacity="'+e.toFixed(2).slice(1)+'"':i}function Yt(n,t,e){let i=n+t;return typeof e<"u"&&(i+=" "+e),i}function Zo(n,t,e){let i="",o=0,r=!1,a=0;for(let s=0;s0&&l>0&&n[s-1]||(i+=r?Yt("M",l+e,.5+g+e):Yt("m",o,0),o=0,r=!1),l+1':"",g="',m='viewBox="0 0 '+s+" "+s+'"',_=''+l+g+` -`;return typeof i=="function"&&i(null,_),_}});var Zi=x(Me=>{"use strict";var Xo=Zn(),Qt=Ji(),Wi=Yi(),er=Gi();function $t(n,t,e,i,o){let r=[].slice.call(arguments,1),a=r.length,s=typeof r[a-1]=="function";if(!s&&!Xo())throw new Error("Callback required as last argument");if(s){if(a<2)throw new Error("Too few arguments provided");a===2?(o=e,e=t,t=i=void 0):a===3&&(t.getContext&&typeof o>"u"?(o=i,i=void 0):(o=i,i=e,e=t,t=void 0))}else{if(a<1)throw new Error("Too few arguments provided");return a===1?(e=t,t=i=void 0):a===2&&!t.getContext&&(i=e,e=t,t=void 0),new Promise(function(l,g){try{let m=Qt.create(e,i);l(n(m,t,i))}catch(m){g(m)}})}try{let l=Qt.create(e,i);o(null,n(l,t,i))}catch(l){o(l)}}Me.create=Qt.create;Me.toCanvas=$t.bind(null,Wi.render);Me.toDataURL=$t.bind(null,Wi.renderToDataURL);Me.toString=$t.bind(null,function(n,t,e){return er.render(n,e)})});var to=ro(Zi(),1);function tr(n,t){if(n&1&&b(0,"canvas",1),n&2){let e=p();dn(e.styleClass),f("qrCode",e.value)("qrCodeErrorCorrectionLevel",e.errorCorrectionLevel)("qrCodeCenterImageSrc",e.centerImageSrc)("qrCodeCenterImageWidth",e.centerImageSize)("qrCodeCenterImageHeight",e.centerImageSize)("qrCodeMargin",e.margin)("width",e.size)("height",e.size)("ngStyle",e.style)("darkColor",e.darkColor)("lightColor",e.lightColor)}}var Xi=/^#(?:[0-9a-fA-F]{3,4}){1,2}$/,nr=(()=>{let t=class t{constructor(i){this.viewContainerRef=i,this.errorCorrectionLevel=t.DEFAULT_ERROR_CORRECTION_LEVEL,this.darkColor="#000000FF",this.lightColor="#FFFFFFFF",this.margin=16}ngOnChanges(){return k(this,null,function*(){var M;if(!this.value)return;this.version&&this.version>40?(console.warn("[qrCode] max version is 40, clamping"),this.version=40):this.version&&this.version<1?(console.warn("[qrCode] min version is 1, clamping"),this.version=1):this.version!==void 0&&isNaN(this.version)&&(console.warn("[qrCode] version should be set to a number, defaulting to auto"),this.version=void 0);let i=this.viewContainerRef.element.nativeElement;if(!i)return;let o=i.getContext("2d");o&&o.clearRect(0,0,o.canvas.width,o.canvas.height);let r=(M=this.errorCorrectionLevel)!=null?M:t.DEFAULT_ERROR_CORRECTION_LEVEL,a=Xi.test(this.darkColor)?this.darkColor:void 0,s=Xi.test(this.lightColor)?this.lightColor:void 0;hn()&&(!a&&this.darkColor&&console.error("[ng-qrcode] darkColor set to invalid value, must be RGBA hex color string, eg: #3050A1FF"),!s&&this.lightColor&&console.error("[ng-qrcode] lightColor set to invalid value, must be RGBA hex color string, eg: #3050A130")),yield to.default.toCanvas(i,this.value,{version:this.version,errorCorrectionLevel:r,width:this.width,margin:this.margin,color:{dark:a,light:s}});let l=this.centerImageSrc,g=eo(this.centerImageWidth,t.DEFAULT_CENTER_IMAGE_SIZE),m=eo(this.centerImageHeight,t.DEFAULT_CENTER_IMAGE_SIZE);if(l&&o){this.centerImage||(this.centerImage=new Image(g,m));let _=this.centerImage;l!==this.centerImage.src&&(_.src=l),g!==this.centerImage.width&&(_.width=g),m!==this.centerImage.height&&(_.height=m);let I=()=>{o.drawImage(_,i.width/2-g/2,i.height/2-m/2,g,m)};_.onload=I,_.complete&&I()}})}};t.DEFAULT_ERROR_CORRECTION_LEVEL="M",t.DEFAULT_CENTER_IMAGE_SIZE=40,t.\u0275fac=function(o){return new(o||t)(rn(an))},t.\u0275dir=ln({type:t,selectors:[["canvas","qrCode",""]],inputs:{value:[0,"qrCode","value"],version:[0,"qrCodeVersion","version"],errorCorrectionLevel:[0,"qrCodeErrorCorrectionLevel","errorCorrectionLevel"],width:"width",height:"height",darkColor:"darkColor",lightColor:"lightColor",centerImageSrc:[0,"qrCodeCenterImageSrc","centerImageSrc"],centerImageWidth:[0,"qrCodeCenterImageWidth","centerImageWidth"],centerImageHeight:[0,"qrCodeCenterImageHeight","centerImageHeight"],margin:[0,"qrCodeMargin","margin"]},features:[en]});let n=t;return n})();function eo(n,t){return n===void 0||n===""?t:typeof n=="string"?parseInt(n,10):n}var Gt=(()=>{let t=class t{};t.\u0275fac=function(o){return new(o||t)},t.\u0275cmp=N({type:t,selectors:[["qr-code"]],inputs:{value:"value",size:"size",style:"style",styleClass:"styleClass",darkColor:"darkColor",lightColor:"lightColor",errorCorrectionLevel:"errorCorrectionLevel",centerImageSrc:"centerImageSrc",centerImageSize:"centerImageSize",margin:"margin"},decls:1,vars:1,consts:[[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","class","ngStyle","darkColor","lightColor"],[3,"qrCode","qrCodeErrorCorrectionLevel","qrCodeCenterImageSrc","qrCodeCenterImageWidth","qrCodeCenterImageHeight","qrCodeMargin","width","height","ngStyle","darkColor","lightColor"]],template:function(o,r){o&1&&E(0,tr,1,13,"canvas",0),o&2&&T(r.value?0:-1)},dependencies:[nr,Ce,_n],encapsulation:2});let n=t;return n})(),no=(()=>{let t=class t{};t.\u0275fac=function(o){return new(o||t)},t.\u0275mod=sn({type:t}),t.\u0275inj=Xt({imports:[Ce,Gt]});let n=t;return n})();function or(n,t){if(n&1){let e=F();c(0,"div",1),b(1,"qr-code",3),c(2,"ion-text",4),P(3,"Scan to preview in the dust app."),d(),c(4,"ion-button",5),h("click",function(){C(e);let o=p();return v(o.exit.emit())}),P(5,"Close"),d()()}if(n&2){let e=p();u(),f("value",e.qrcode())}}function rr(n,t){n&1&&(c(0,"div",2),b(1,"ion-spinner",6),c(2,"ion-text",7),P(3,"Please Wait..."),d()())}var pe=class pe{constructor(){this.api=A(oe);this.platform=A(bn);this.vanity=z("");this.exit=new on;this.qrcode=V("")}ngOnInit(){return k(this,null,function*(){if(!this.vanity()){console.error("invalid vanity");return}yield this.api.preview();let t=`https://dust.events?preview=${this.vanity()}`;this.platform.is("desktop")?this.qrcode.set(t):(window.open(t),this.exit.emit())})}};pe.\u0275fac=function(e){return new(e||pe)},pe.\u0275cmp=N({type:pe,selectors:[["app-preview-qr"]],inputs:{vanity:[1,"vanity"]},outputs:{exit:"exit"},decls:3,vars:1,consts:[[1,"ion-text-center"],[1,"flex","ion-padding-top"],[1,"flex","ion-padding"],["size","300","errorCorrectionLevel","M",3,"value"],[1,"ion-padding-bottom"],["expand","false",3,"click"],["name","circular",1,"ion-padding"],[1,"ion-padding"]],template:function(e,i){e&1&&(c(0,"div",0),E(1,or,6,1,"div",1)(2,rr,4,0,"div",2),d()),e&2&&(u(),T(i.qrcode()!==""?1:2))},dependencies:[An,K,Nn,no,Gt],styles:[".flex[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;align-content:center;justify-content:center}"]});var ht=pe;function ar(n,t){if(n&1&&(c(0,"ion-button",6),P(1),d()),n&2){let e=p(3);u(),J(e.button())}}function sr(n,t){if(n&1&&(c(0,"div",1)(1,"div",2),b(2,"ion-icon",3),d(),c(3,"div",4)(4,"h2"),P(5),d()(),c(6,"div",5)(7,"p"),P(8),d()()(),c(9,"div",2),E(10,ar,2,1,"ion-button",6),d()),n&2){let e=p(2);u(2),f("name",e.icon()),u(3),J(e.title()),u(3),J(e.description()),u(2),T(e.button()!==""?10:-1)}}function lr(n,t){if(n&1&&(c(0,"div",0),b(1,"ion-icon",7),c(2,"ion-label"),P(3),d()()),n&2){let e=p(2);u(),f("name",e.icon()),u(2),J(e.title())}}function cr(n,t){if(n&1&&E(0,sr,11,4)(1,lr,4,2,"div",0),n&2){let e=p();T(e.isLarge()?0:1)}}var fe=class fe{constructor(){this.enabled=z(!0);this.size=z("regular");this.isLarge=R(()=>this.size()=="large");this.title=z("title");this.button=z("Register");this.description=z("tba");this.icon=z("home-outline");O({homeOutline:$e,calendarOutline:Le,close:re,closeSharp:je,home:Hn,colorPaletteOutline:Ke,musicalNotesOutline:tt,locationOutline:We,linkOutline:Ge,mailOutline:Xe,createOutline:Ye,phonePortraitOutline:nt,settingsOutline:it,lockOpenOutline:Ze,fileTrayFullOutline:Qe,mapOutline:et,cloudUploadOutline:Je,chevronDownOutline:Ue,chevronUpOutline:He,carOutline:ze})}};fe.\u0275fac=function(e){return new(e||fe)},fe.\u0275cmp=N({type:fe,selectors:[["app-launch-card"]],inputs:{enabled:[1,"enabled"],size:[1,"size"],title:[1,"title"],button:[1,"button"],description:[1,"description"],icon:[1,"icon"]},decls:1,vars:1,consts:[[1,"top-button"],[1,"card"],[1,"center"],["color","light","aria-hidden","true",1,"fab",3,"name"],[1,"cols"],[1,"rows"],["shape","round"],["aria-hidden","true",1,"tile",3,"name"]],template:function(e,i){e&1&&E(0,cr,2,1),e&2&&T(i.enabled()?0:-1)},dependencies:[D,Re,K],styles:[".top-button[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg);width:6rem}.top-button[_ngcontent-%COMP%]:hover{cursor:pointer}.tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;margin:0;padding:var(--spacing-md);border-radius:1rem;height:3rem;width:3rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1)}@media (prefers-color-scheme: dark){.tile[_ngcontent-%COMP%]{background-color:#ffffff26}.tile[_ngcontent-%COMP%]:hover{background-color:#ffffff40}}.cols[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:var(--spacing-lg);align-items:center;justify-content:center}p[_ngcontent-%COMP%]{width:200px;font-size:var(--font-size-xl);text-align:center}h2[_ngcontent-%COMP%]{padding-top:var(--spacing-lg);font-size:var(--font-size-xl);color:var(--ion-color-dark)}.rows[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:start;min-height:150px;padding-left:var(--spacing-base);padding-right:var(--spacing-base);justify-content:space-between}ion-button[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-3xl));margin-left:var(--spacing-lg)}.fab[_ngcontent-%COMP%]{margin-top:calc(-1 * var(--spacing-3xl));background-color:var(--ion-color-dark);box-shadow:#63636333 0 2px 8px;border-radius:var(--br-full);padding:var(--spacing-lg)}.center[_ngcontent-%COMP%]{display:flex;align-items:center}.card[_ngcontent-%COMP%]{border-radius:1rem;background-color:#0000000d;border:1px solid rgba(0,0,0,.1);padding:var(--spacing-md);margin:var(--spacing-lg);height:calc(100% - 5rem);width:calc(100% - 1rem)}.card[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#0000001a}.tile[_ngcontent-%COMP%]:hover{background-color:#0000001a}@media (prefers-color-scheme: dark){.card[_ngcontent-%COMP%]{border:2px solid rgba(255,255,255,.1)}.card[_ngcontent-%COMP%]:hover{background-color:#ffffff0d}}ion-icon[_ngcontent-%COMP%]{font-size:var(--font-size-4xl);color:var(--ion-color-dark)}ion-label[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-dark);text-align:center}"]});var _t=fe;var dr=(n,t)=>t.title;function ur(n,t){if(n&1){let e=F();c(0,"ion-button",3),h("click",function(){C(e);let o=p();return v(o.backToTopics())}),b(1,"ion-icon",6),d()}}function pr(n,t){if(n&1&&(c(0,"ion-select-option",13),P(1),d()),n&2){let e=t.$implicit;f("value",e),u(),J(e)}}function fr(n,t){if(n&1){let e=F();c(0,"ion-select",12),fn("ngModelChange",function(o){C(e);let r=p(2);return pn(r.selectedRole,o)||(r.selectedRole=o),v(o)}),c(1,"ion-select-option",13),P(2,"All"),d(),ne(3,pr,2,2,"ion-select-option",13,Et),d()}if(n&2){let e=p(2);un("ngModel",e.selectedRole),u(),f("value",void 0),u(2),ie(e.allRoles())}}function gr(n,t){if(n&1){let e=F();c(0,"ion-chip",15),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.toggleTag(o))}),P(1),d()}if(n&2){let e=t.$implicit,i=p(3);f("outline",!i.isTagSelected(e)),u(),Se(" ",e," ")}}function mr(n,t){if(n&1&&(c(0,"div",10),ne(1,gr,2,2,"ion-chip",14,Et),d()),n&2){let e=p(2);u(),ie(e.allTags())}}function hr(n,t){if(n&1){let e=F();c(0,"ion-item",17),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.selectTopic(o))}),c(1,"ion-label"),P(2),d()()}if(n&2){let e=t.$implicit;u(2),Se(" ",e.title," ")}}function _r(n,t){if(n&1&&(c(0,"ion-list"),ne(1,hr,3,1,"ion-item",16,dr),d()),n&2){let e=p(2);u(),ie(e.filteredTopics())}}function Cr(n,t){if(n&1&&(c(0,"div",11)(1,"p"),P(2),d()()),n&2){let e=p(2);u(2),Se('No topics found matching "',e.searchQuery(),'"')}}function vr(n,t){if(n&1){let e=F();c(0,"ion-toolbar")(1,"div",7)(2,"ion-searchbar",8),h("ionInput",function(o){C(e);let r=p();return v(r.handleSearch(o))}),d(),E(3,fr,5,2,"ion-select",9),d()(),E(4,mr,3,0,"div",10),E(5,_r,3,0,"ion-list")(6,Cr,3,1,"div",11)}if(n&2){let e=p();u(2),f("debounce",600),u(),T(e.isAdmin()?3:-1),u(),T(e.allTags().length>0?4:-1),u(),T(e.filteredTopics().length>0?5:6)}}function wr(n,t){var e;if(n&1&&b(0,"iframe",5),n&2){let i,o=p();f("frameBorder",0)("src",o.getSafeUrl((e=(i=o.currentTopic())==null?null:i.html)!=null?e:""),nn)}}var ge=class ge{constructor(){this.modalController=A(qe);this.sanitizer=A(Cn);this.api=A(oe);this.topics=V([]);this.searchQuery=V("");this.selectedTags=V(new Set);this.selectedRole=V(void 0);this.currentTopic=V(void 0);this.showingTopic=R(()=>this.currentTopic()!==void 0);this.isAdmin=R(()=>this.api.getAccessInfo(void 0).hasAdmin);this.allTags=R(()=>{let t=new Set;return this.topics().forEach(e=>{var i;(i=e.tags)==null||i.forEach(o=>t.add(o))}),Array.from(t).sort()});this.allRoles=R(()=>{let t=new Set;return this.topics().forEach(e=>{e.roles.forEach(i=>t.add(i))}),Array.from(t).sort()});this.filteredTopics=R(()=>{let t=this.searchQuery().toLowerCase(),e=this.selectedTags(),i=this.selectedRole(),o=this.api.getAccessInfo(void 0);return this.topics().filter(a=>{var M,_;let s=a.title.toLowerCase().includes(t),l=e.size===0||((_=(M=a.tags)==null?void 0:M.some(I=>e.has(I)))!=null?_:!1),g=!i||a.roles.includes(i),m=a.roles.some(I=>I==="admin"?o.hasAdmin:I==="camp"?o.hasCamps:I==="artist"?o.hasArt:I==="music"?o.hasMusic:!1);return s&&l&&g&&m}).sort((a,s)=>a.title.localeCompare(s.title))});O({arrowBack:Ln,close:re}),this.loadTopics()}loadTopics(){return k(this,null,function*(){try{let e=yield(yield fetch("assets/faq.json")).json();this.topics.set(e),this.topics.set(this.topics().sort((i,o)=>i.title.localeCompare(o.title)))}catch(t){console.error("Error loading FAQ topics:",t),this.topics.set([])}})}selectTopic(t){this.currentTopic.set(t)}backToTopics(){this.currentTopic.set(void 0),this.searchQuery.set("")}clearRoleFilter(){this.selectedRole.set(void 0)}toggleTag(t){this.selectedTags().has(t)?this.selectedTags.set(new Set):this.selectedTags.set(new Set([t]))}isTagSelected(t){return this.selectedTags().has(t)}handleSearch(t){return k(this,null,function*(){let e=t.target.value.toLowerCase();this.searchQuery.set(e)})}dismiss(){return k(this,null,function*(){yield this.modalController.dismiss()})}getSafeUrl(t){return this.sanitizer.bypassSecurityTrustResourceUrl(t)}};ge.\u0275fac=function(e){return new(e||ge)},ge.\u0275cmp=N({type:ge,selectors:[["app-faq-dialog"]],decls:12,vars:3,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click"],["name","close"],[1,"topic-content",3,"frameBorder","src"],["name","arrow-back"],[2,"display","flex"],["mode","ios","search-icon","none","show-clear-button","always","placeholder","Search topics...",3,"ionInput","debounce"],["interface","popover",3,"ngModel"],[1,"tag-chips"],[1,"no-results"],["interface","popover",3,"ngModelChange","ngModel"],[3,"value"],[3,"outline"],[3,"click","outline"],["button",""],["button","",3,"click"]],template:function(e,i){if(e&1&&(c(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),E(3,ur,2,0,"ion-button"),d(),c(4,"ion-title"),P(5),d(),c(6,"ion-buttons",2)(7,"ion-button",3),h("click",function(){return i.dismiss()}),b(8,"ion-icon",4),d()()()(),c(9,"ion-content"),E(10,vr,7,4)(11,wr,1,2,"iframe",5),d()),e&2){let o;u(3),T(i.showingTopic()?3:-1),u(2),J(i.showingTopic()?(o=i.currentTopic())==null?null:o.title:"Tutorials"),u(5),T(i.showingTopic()?11:10)}},dependencies:[Be,Oe,De,Ae,Fe,K,D,kn,Pn,Re,Vn,Sn,Bn,Fn,ke,xn,yn,Ce],styles:[".faq-search[_ngcontent-%COMP%]{padding:var(--spacing-lg);border-bottom:1px solid var(--ion-border-color)}.search-input[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-base) var(--spacing-md);border:1px solid var(--ion-border-color);border-radius:var(--br-md);font-size:var(--font-size-base);font-family:inherit}.search-input[_ngcontent-%COMP%]::placeholder{color:var(--ion-placeholder-color)}.tag-chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:0 var(--spacing-lg) 0 var(--spacing-lg)}ion-chip[_ngcontent-%COMP%]{margin:var(--spacing-sm) var(--spacing-sm) 0 0;border:2px solid var(--ion-color-light-shade)}ion-select[_ngcontent-%COMP%]{width:20px;margin-top:var(--spacing-base);margin-right:var(--spacing-base)}ion-select[_ngcontent-%COMP%]::part(text){font-size:var(--font-size-base)}.no-results[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--ion-text-color-secondary);text-align:center;padding:var(--spacing-1xl)}.topic-content[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:auto;padding:var(--spacing-lg);background-color:var(--ion-color-light)}.topic-content[_ngcontent-%COMP%] iframe[_ngcontent-%COMP%]{width:100%;height:100%}"]});var Ct=ge;var me=class me{constructor(){this.modalController=A(qe);O({helpSharp:Un})}openFaq(){return k(this,null,function*(){yield(yield this.modalController.create({component:Ct,cssClass:"faq-modal"})).present()})}};me.\u0275fac=function(e){return new(e||me)},me.\u0275cmp=N({type:me,selectors:[["app-faq-fab"]],decls:4,vars:0,consts:[["position","aside","text","How To Tutorials"],["vertical","bottom","horizontal","start","slot","fixed"],[3,"click"],["name","help-sharp"]],template:function(e,i){e&1&&(c(0,"app-tooltip",0)(1,"ion-fab",1)(2,"ion-fab-button",2),h("click",function(){return i.openFaq()}),b(3,"ion-icon",3),d()()())},dependencies:[Ne,ot,Ve,D],styles:[".faq-modal{--width: 100%;--max-width: 100%;--height: auto}@media (min-width: 768px){ .faq-modal{--width: 80%;--max-width: 80%;--height: 80%;--max-height: 80%}}@media (min-width: 1024px){ .faq-modal{--width: 70%;--max-width: 70%;--height: 80%;--max-height: 80%}}"]});var vt=me;var he=class he{constructor(){O({chatboxEllipses:zn})}};he.\u0275fac=function(e){return new(e||he)},he.\u0275cmp=N({type:he,selectors:[["app-help-fab"]],decls:4,vars:0,consts:[["vertical","bottom","horizontal","end","slot","fixed"],["text","Get help from a human","position","left-aside"],["routerLink","/help","routerDirection","forward"],["name","chatbox-ellipses"]],template:function(e,i){e&1&&(c(0,"ion-fab",0)(1,"app-tooltip",1)(2,"ion-fab-button",2),b(3,"ion-icon",3),d()()())},dependencies:[Ne,Ve,D,Pe,ot],encapsulation:2});var wt=he;var xr=n=>({title:"Print Preview",method:n,icon:"print-outline"}),yr=n=>[n],br=()=>[],Er=(n,t)=>t.id;function Tr(n,t){if(n&1&&b(0,"app-side",4),n&2){let e=p();f("buttons",e.access!=null&&e.access.hasAdmin?Tt(3,yr,Tt(1,xr,e.print())):mn(5,br))}}function Mr(n,t){if(n&1){let e=F();c(0,"ion-button",10),h("click",function(){C(e);let o=p();return v(o.close())}),b(1,"ion-icon",11),d()}}function Ir(n,t){n&1&&b(0,"app-spinner")}function Sr(n,t){if(n&1){let e=F();c(0,"app-preview-qr",31),h("exit",function(){C(e);let o=p(2);return v(o.showPreview=!1)}),d()}if(n&2){let e=p(2);f("vanity",e.festival.vanity)}}function Pr(n,t){if(n&1){let e=F();c(0,"app-launch-card",39),h("click",function(){let o=C(e).$implicit,r=p(3);return v(r.link(r.festival,"/events/new?camp="+o.id))}),d()}if(n&2){let e=t.$implicit,i=p(3);f("description",gn("Register an event at ",e.name,"."))("enabled",i.festival.event_registration&&i.festival.event_editing)("title",e.name)}}function kr(n,t){if(n&1&&(c(0,"div",38),b(1,"p",40),d()),n&2){let e=p(3);u(),f("innerHTML",e.message(),tn)}}function Fr(n,t){if(n&1){let e=F();c(0,"ion-card-content")(1,"div",14)(2,"app-launch-card",32),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/camp/new"))}),d(),c(3,"app-launch-card",33),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/art/new?type=Art"))}),d(),c(4,"app-launch-card",34),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/music/new"))}),d(),c(5,"app-launch-card",35),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/art/new?type=Mutant%20Vehicle"))}),d(),c(6,"app-launch-card",36),h("click",function(){C(e);let o=p(2);return v(o.link(o.festival,"/events/new"))}),d(),ne(7,Pr,1,4,"app-launch-card",37,Er),d(),E(9,kr,2,1,"div",38),d()}if(n&2){let e=p(2);u(2),f("enabled",e.festival.camp_registration&&!(e.access!=null&&e.access.hasCamps)&&!e.mutantOnly),u(),f("enabled",e.festival.camp_registration&&e.festival.art_editing&&!(e.access!=null&&e.access.hasArt)&&!e.mutantOnly),u(),f("enabled",e.festival.music_registration),u(),f("enabled",e.mutantOnly||e.festival.camp_registration&&e.festival.art_editing&&!(e.access!=null&&e.access.hasArt)),u(),f("enabled",e.festival.event_registration&&e.festival.event_editing),u(),ie(e.publicCamps()),u(2),T(e.message()?9:-1)}}function Ar(n,t){if(n&1){let e=F();c(0,"div",30)(1,"ion-button",41),h("click",function(){C(e);let o=p(2);return v(o.signOut())}),P(2," Sign Out "),d()()}}function Nr(n,t){if(n&1){let e=F();c(0,"div",6)(1,"ion-modal",12),cn(2,Sr,1,1,"ng-template"),d(),c(3,"ion-card"),b(4,"app-festival-header",13),c(5,"ion-card-content")(6,"div",14)(7,"app-launch-card",15),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/camps"))}),d(),c(8,"app-launch-card",16),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/events"))}),d(),c(9,"app-launch-card",17),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/art"))}),d(),c(10,"app-launch-card",18),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/music"))}),d(),c(11,"app-launch-card",19),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/music"))}),d(),c(12,"app-launch-card",20),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/pins"))}),d(),c(13,"app-launch-card",21),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/links"))}),d(),c(14,"app-launch-card",22),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/message"))}),d(),c(15,"app-launch-card",23),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/message-triggers"))}),d(),c(16,"app-launch-card",24),h("click",function(){C(e);let o=p();return v(o._print())}),d(),c(17,"app-launch-card",25),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/edit"))}),d(),c(18,"app-launch-card",26),h("click",function(){C(e);let o=p();return v(o.showPreview=!o.showPreview)}),d(),c(19,"app-launch-card",27),h("click",function(){C(e);let o=p();return v(o.link(o.festival,"/settings"))}),d(),c(20,"app-launch-card",28),h("click",function(){C(e);let o=p();return v(o.approve(o.festival))}),d(),c(21,"app-launch-card",29),h("click",function(){C(e);let o=p();return v(o.archive(o.festival))}),d()()(),E(22,Fr,10,6,"ion-card-content"),d(),E(23,Ar,3,0,"div",30),d()}if(n&2){let e=p();u(),f("isOpen",e.showPreview),u(3),f("festival",e.festival),u(3),f("size",e.cardSize())("enabled",e.access==null?null:e.access.hasCamps),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)||(e.access==null?null:e.access.hasEvents))("size",e.cardSize()),u(),f("enabled",e.access==null?null:e.access.hasArt)("size",e.cardSize())("title",e.mutantOnly?"Mutant Vehicle":"Art")("description",e.mutantOnly?"Edit my Mutant Vehicle details":"My registered art piece or mutant vehicle."),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",!(e.access!=null&&e.access.hasAdmin)&&(e.access==null?null:e.access.hasMusic))("size",e.cardSize()),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&(e.access==null?null:e.access.approver)),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.archived),u(),f("enabled",e.access==null?null:e.access.hasAdmin),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.approved&&(e.access==null?null:e.access.approver)&&!e.festival.archived),u(),f("enabled",(e.access==null?null:e.access.hasAdmin)&&!e.festival.archived&&(e.access==null?null:e.access.approver)),u(),T(e.showRegistration()?22:-1),u(),T(e.showSignOut?23:-1)}}function Vr(n,t){if(n&1){let e=F();c(0,"app-footer",42),h("press",function(){C(e);let o=p();return v(o.link(o.festival,"/unpublished"))}),d()}if(n&2){let e=p();f("badge",e.pending.toString())}}function Br(n,t){if(n&1){let e=F();c(0,"app-footer",43),h("press",function(){C(e);let o=p();return v(o.close())}),d()}n&2&&f("width","240px")}function Rr(n,t){}function Dr(n,t){n&1&&b(0,"app-help-fab")(1,"app-faq-fab")}var _e=class _e{constructor(){this.api=A(oe);this.router=A(vn);this.pending=0;this.isNative=qn.isNativePlatform();this.busy=V(!1);this.showRegistration=V(!1);this.cardSize=R(()=>this.showRegistration()?"large":"regular");this.message=V(void 0);this.publicCamps=V([]);this.showPreview=!1;this.openingBurn=!1;this.showSignOut=!1;this.mutantOnly=!1;this.imageUrl="";this.alert=A(Yn);this.store=A(On);O({homeOutline:$e,calendarOutline:Le,close:re,closeSharp:je,printOutline:jn,colorPaletteOutline:Ke,musicalNotesOutline:tt,locationOutline:We,linkOutline:Ge,mailOutline:Xe,createOutline:Ye,phonePortraitOutline:nt,settingsOutline:it,lockOpenOutline:Ze,fileTrayFullOutline:Qe,mapOutline:et,cloudUploadOutline:Je,chevronDownOutline:Ue,chevronUpOutline:He,carOutline:ze})}close(){return k(this,null,function*(){document.location.href="index.html"})}ionViewWillEnter(){return k(this,null,function*(){var e,i;let t=sessionStorage.openburn;Rn(t)||(sessionStorage.removeItem("openburn"),this.vanity=t,this.openingBurn=!0),(e=this.vanity)!=null&&e.endsWith(".html")&&(console.error(`Unexpected vanity ${this.vanity}`),this.vanity=this.store.get("festivalVanity")),yield this.update(),this.festival&&!this.showRegistration()&&((i=this.access)==null?void 0:i.camps.length)==1&&this.api.firstUse&&(this.api.firstUse=!1,this.link(this.festival,"/camps"))})}update(){return k(this,null,function*(){var t,e,i,o,r;if(this.vanity){this.festival=yield this.api.getFestivalByVanity(this.vanity,!0,!1),this.pending=0,this.access=this.api.getAccessInfo((t=this.festival)==null?void 0:t.id),(i=(e=this.festival)==null?void 0:e.music_types)!=null&&i.includes("mutantvehicle")&&(this.access.hasCamps=!1,this.mutantOnly=!0),this.showRegistration.set(!this.access.hasFestivals&&!this.access.approver),this.imageUrl=(r=this.api.imageURL((o=this.festival)==null?void 0:o.imageUrl))!=null?r:"";let a=this.festival.pendingCount;if(this.festival&&a&&(this.pending=parseInt(a)),!this.festival)return;this.festival.event_registration&&this.festival.active&&(this.access.isEventRegistrationOpen=!0);let s=yield this.api.camps({cached:!0},!0);this.publicCamps.set(s.filter(l=>l.publicEvents)),this.api.setFestival(this.festival),this.setMessage()}})}setMessage(){var t,e,i,o,r;if((t=this.festival)!=null&&t.active&&((e=this.access)==null?void 0:e.hasAdmin)===!1){let a=[],s="";this.festival.camp_registration||a.push("Theme Camp"),this.festival.event_editing||a.push("Event"),this.festival.art_editing||a.push("Art"),a.length>0&&(s+=`
New ${a.join(" & ")} registration is closed.
`),!this.festival.event_registration&&this.festival.event_editing&&!this.access.hasEvents&&(s+=" You can contact a theme camp or art lead to register an event on your behalf.
"),!this.access.hasArt&&!this.access.hasEvents&&!this.access.hasCamps&&!this.access.hasMusic&&(s+='
Want access to a theme camp, art or mutant vehicle? Please contact support@dust.events or DM us and provide your camp/art name to request access.',this.showSignOut=!0),s!=""&&this.message.set(s);return}if(((i=this.festival)==null?void 0:i.active)==!1&&((o=this.access)==null?void 0:o.hasAdmin)===!1){this.message.set(`Note: ${(r=this.festival)==null?void 0:r.name} is not published in dust yet.`);return}this.message.set(void 0)}signOut(){this.api.signOut(),this.close()}link(t,e,i){if(i===!1){this.api.sendMessage("This option is not available.");return}if(t.archived&&!["/links","/edit"].includes(e)){this.api.sendMessage("Archived events do not have access to this information.");return}this.api.setFestival(t),this.router.navigateByUrl(this.vanity+e)}approve(t){return k(this,null,function*(){yield this.api.approve(t),this.api.clearCache(),yield this.update()})}print(){return()=>k(this,null,function*(){this._print()})}_print(){this.api.isAdmin(this.api.festivalId)?this.router.navigateByUrl(`${this.vanity}/print`):this.api.sendMessage("This feature is not available to you.")}nice(t){return new Date(t).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})}niceTime(t){return new Date(t).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})+" "+new Date(t).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}archive(t){return k(this,null,function*(){if(Dn(t.start_time)>0){yield Mt(this.alert,"This event has not started so it cannot be archived");return}(yield Kn(this.alert,"Are you sure you want to archive this burn?","Archive"))&&(this.busy.set(!0),this.api.setFestival(t),yield this.api.archive(t),this.api.clearCache(),this.busy.set(!1),yield Mt(this.alert,`${t.name} has been archived and a copy has been created`),this.router.navigateByUrl("/all"))})}};_e.\u0275fac=function(e){return new(e||_e)},_e.\u0275cmp=N({type:_e,selectors:[["app-festival-view"]],inputs:{vanity:"vanity"},decls:17,vars:7,consts:[["color","primary"],["slot","start"],[3,"routerLink"],["slot","end"],[3,"buttons"],[3,"fullscreen"],[1,"border"],[2,"height","100px"],["title","publish",1,"footer-wide",3,"badge"],["title","Back to dust",1,"footer-wide",3,"width"],[3,"click"],["size","small","name","close",1,"close"],[3,"isOpen"],[3,"festival"],[1,"container"],["title","Camps","description","View and manage my theme camp / music.","icon","home-outline","button","",3,"click","size","enabled"],["title","Events","icon","calendar-outline","description","Events at my theme camp / art piece.","button","",3,"click","enabled","size"],["icon","color-palette-outline","button","",3,"click","enabled","size","title","description"],["title","Music","icon","musical-notes-outline",3,"click","enabled"],["title","Music","description","DJ Sets / Parties I manage","icon","musical-notes-outline","button","",3,"click","enabled","size"],["title","Map","icon","location-outline",3,"click","enabled"],["title","Links","icon","link-outline",3,"click","enabled"],["title","Notify","icon","mail-outline",3,"click","enabled"],["title","Messages","icon","mail-outline",3,"click","enabled"],["title","Print","icon","print-outline",3,"click","enabled"],["title","Edit","icon","create-outline",3,"click","enabled"],["title","Preview","icon","phone-portrait-outline",3,"click","enabled"],["title","Settings","icon","settings-outline",3,"click","enabled"],["title","Approve","icon","lock-open-outline",3,"click","enabled"],["title","Archive","icon","file-tray-full-outline",3,"click","enabled"],[1,"center"],[3,"exit","vanity"],["size","large","title","Theme Camp","description","Registration for Theme camps is open.","icon","home","button","Register Camp",3,"click","enabled"],["size","large","title","Art","icon","color-palette-outline","description","Register your art piece.","button","Register Art",3,"click","enabled"],["size","large","title","Music","icon","musical-notes-outline","description","Register your party / DJ Set list / Live Music.","button","Register Music",3,"click","enabled"],["size","large","title","Mutant Vehicle","icon","car-outline","description","Register your mutant vehicle or art car.","button","Register Car",3,"click","enabled"],["size","large","title","Open Camping Event","icon","calendar-outline","description","Register an event that is not located at a camp (describing the location).","button","Register Event",3,"click","enabled"],["size","large","icon","calendar-outline","button","Register Event",3,"enabled","title","description"],[1,"row"],["size","large","icon","calendar-outline","button","Register Event",3,"click","enabled","title","description"],[1,"row-center",3,"innerHTML"],["shape","round","fill","outline","color","primary","mode","md",3,"click"],["title","publish",1,"footer-wide",3,"press","badge"],["title","Back to dust",1,"footer-wide",3,"press","width"]],template:function(e,i){e&1&&(c(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),b(3,"ion-back-button"),d(),c(4,"ion-title",2),P(5,"Home"),d(),c(6,"ion-buttons",3),E(7,Tr,1,6,"app-side",4)(8,Mr,2,0,"ion-button"),d()()(),c(9,"ion-content",5),E(10,Ir,1,0,"app-spinner"),E(11,Nr,24,25,"div",6),b(12,"div",7),E(13,Vr,1,1,"app-footer",8)(14,Br,1,1,"app-footer",9),d(),E(15,Rr,0,0)(16,Dr,2,0)),e&2&&(u(4),f("routerLink","/all"),u(3),T(i.isNative?8:7),u(2),f("fullscreen",!0),u(),T(i.busy()?10:-1),u(),T(i.festival&&!i.busy()?11:-1),u(2),T(i.access!=null&&i.access.hasAdmin&&i.pending>0&&i.festival?13:i.isNative?14:-1),u(2),T(i.access!=null&&i.access.hasAdmin&&i.pending>0?15:16))},dependencies:[Tn,ke,Gn,wn,Pe,Be,Oe,Fe,En,De,Ae,Mn,In,D,Jn,K,Qn,$n,ht,_t,vt,wt],styles:["ion-title[_ngcontent-%COMP%]{cursor:pointer}.container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:center;max-width:600px;margin-left:auto;margin-right:auto}.row[_ngcontent-%COMP%]{display:flex;flex-direction:row;width:100%;gap:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.row[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{width:200px}.row[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-align:center}h1[_ngcontent-%COMP%]{text-align:center;padding-bottom:var(--spacing-lg)}.end[_ngcontent-%COMP%]{float:right}p[_ngcontent-%COMP%]{font-size:var(--font-size-base);padding-left:10%;padding-right:10%}@media (max-width: 500px){.row[_ngcontent-%COMP%]{flex-direction:column;align-items:center;gap:0;padding-bottom:var(--spacing-1xl);padding-left:var(--spacing-2xl);padding-right:var(--spacing-2xl);text-align:center}p[_ngcontent-%COMP%]{padding-left:unset;padding-right:unset}}ion-text[_ngcontent-%COMP%]{align-self:center}a[_ngcontent-%COMP%]{text-decoration:none;font-weight:700}.small-icon[_ngcontent-%COMP%]{font-size:var(--font-size-2xl);color:var(--ion-color-primary)}.disabled[_ngcontent-%COMP%]{opacity:.5}.close[_ngcontent-%COMP%]{color:#fff!important}.badge[_ngcontent-%COMP%]{font-weight:700;position:absolute;font-size:var(--font-size-2xl)}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl)}.img[_ngcontent-%COMP%]{width:100%;height:100px;display:flex;justify-content:center}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl);--app-object-fit: contain}app-footer[_ngcontent-%COMP%]{--footer-width: 120px}"]});var io=_e;export{io as FestivalViewPage}; diff --git a/.admin-app/chunk-OIMHMYK4.js b/.admin-app/chunk-RKW74V7I.js similarity index 89% rename from .admin-app/chunk-OIMHMYK4.js rename to .admin-app/chunk-RKW74V7I.js index db596d89..e251e3ca 100644 --- a/.admin-app/chunk-OIMHMYK4.js +++ b/.admin-app/chunk-RKW74V7I.js @@ -1 +1 @@ -import{c as h,d as y,f as s,g as d,h as f}from"./chunk-DUKSTT3K.js";import{E as _,H as v,Ma as A,Na as x,P as b,Ua as r,X as C,Y as w,_a as I,ab as P,ba as u,ca as p,da as g,ja as M,la as D,na as a,s as c,t as m}from"./chunk-FDEJMFAU.js";var E=i=>({height:i}),N=(i,o,e)=>({height:i,width:o,"border-radius":e});function R(i,o){if(i&1){let e=M();p(0,"img",2),D("error",function(){c(e);let l=a();return m(l.onError())})("load",function(){c(e);let l=a();return m(l.onLoad())}),g()}if(i&2){let e=a();u("ngStyle",x(2,N,e.height(),e.width(),e.borderRadius()))("src",e.src(),_)}}var n=class n{constructor(){this.src=r("");this.height=r("14rem");this.width=r("100%");this.borderRadius=r("unset");this.empty=!0;this.loaded=!1}willLoad(){this.empty=!1,this.loaded=!1}onError(){this.empty=!0}onLoad(){this.loaded=!0,this.empty=!1}};n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=b({type:n,selectors:[["app-img"]],inputs:{src:[1,"src"],height:[1,"height"],width:[1,"width"],borderRadius:[1,"borderRadius"]},decls:2,vars:6,consts:[[3,"ngClass","ngStyle"],["draggable","false","loading","lazy",3,"ngStyle","src"],["draggable","false","loading","lazy",3,"error","load","ngStyle","src"]],template:function(e,t){e&1&&(p(0,"div",0),C(1,R,1,6,"img",1),g()),e&2&&(u("ngClass",t.empty?"empty":"img")("@fade",t.src()!==""&&t.loaded?"visible":"hidden")("ngStyle",A(4,E,t.height())),v(),w(t.src()!==""?1:-1))},dependencies:[P,I],styles:[".img[_ngcontent-%COMP%]{text-align:center}.empty[_ngcontent-%COMP%]{opacity:1!important;background-color:var(--ion-color-light)!important;margin-left:var(--spacing-sm);margin-right:var(--spacing-sm);border-radius:var(--br-xl)}img[_ngcontent-%COMP%]{object-fit:var(--app-object-fit, cover);border-radius:var(--border-radius)}"],data:{animation:[h("fade",[d("visible",s({opacity:1})),d("hidden",s({opacity:0})),f("visible <=> hidden",y("0.3s ease-in-out"))])]}});var T=n;export{T as a}; +import{c as h,d as y,f as s,g as d,h as f}from"./chunk-DUKSTT3K.js";import{$a as I,E as _,H as v,Na as A,Oa as x,P as b,Va as r,Y as C,Z as w,bb as P,ca as u,da as p,ea as g,ka as M,ma as D,oa as a,s as c,t as m}from"./chunk-LVL3PYF7.js";var E=i=>({height:i}),N=(i,o,e)=>({height:i,width:o,"border-radius":e});function R(i,o){if(i&1){let e=M();p(0,"img",2),D("error",function(){c(e);let l=a();return m(l.onError())})("load",function(){c(e);let l=a();return m(l.onLoad())}),g()}if(i&2){let e=a();u("ngStyle",x(2,N,e.height(),e.width(),e.borderRadius()))("src",e.src(),_)}}var n=class n{constructor(){this.src=r("");this.height=r("14rem");this.width=r("100%");this.borderRadius=r("unset");this.empty=!0;this.loaded=!1}willLoad(){this.empty=!1,this.loaded=!1}onError(){this.empty=!0}onLoad(){this.loaded=!0,this.empty=!1}};n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=b({type:n,selectors:[["app-img"]],inputs:{src:[1,"src"],height:[1,"height"],width:[1,"width"],borderRadius:[1,"borderRadius"]},decls:2,vars:6,consts:[[3,"ngClass","ngStyle"],["draggable","false","loading","lazy",3,"ngStyle","src"],["draggable","false","loading","lazy",3,"error","load","ngStyle","src"]],template:function(e,t){e&1&&(p(0,"div",0),C(1,R,1,6,"img",1),g()),e&2&&(u("ngClass",t.empty?"empty":"img")("@fade",t.src()!==""&&t.loaded?"visible":"hidden")("ngStyle",A(4,E,t.height())),v(),w(t.src()!==""?1:-1))},dependencies:[P,I],styles:[".img[_ngcontent-%COMP%]{text-align:center}.empty[_ngcontent-%COMP%]{opacity:1!important;background-color:var(--ion-color-light)!important;margin-left:var(--spacing-sm);margin-right:var(--spacing-sm);border-radius:var(--br-xl)}img[_ngcontent-%COMP%]{object-fit:var(--app-object-fit, cover);border-radius:var(--border-radius)}"],data:{animation:[h("fade",[d("visible",s({opacity:1})),d("hidden",s({opacity:0})),f("visible <=> hidden",y("0.3s ease-in-out"))])]}});var T=n;export{T as a}; diff --git a/.admin-app/chunk-STDSP4D6.js b/.admin-app/chunk-STDSP4D6.js deleted file mode 100644 index 278d3403..00000000 --- a/.admin-app/chunk-STDSP4D6.js +++ /dev/null @@ -1 +0,0 @@ -import{m as h,p as q,q as G,x as H}from"./chunk-OQVFSD37.js";import{$ as x,Aa as _,Ba as k,Bc as F,Da as I,Db as W,Fa as D,Ga as y,H as a,Ha as f,J as u,Lc as L,P as M,Ra as z,Sc as j,T as b,Ua as s,Xb as E,_ as w,_a as S,aa as O,ba as o,ca as r,da as l,ea as P,ja as T,la as C,mc as R,na as c,s as p,sc as B,t as v,tb as N,uc as A,wb as V}from"./chunk-FDEJMFAU.js";function Q(g,i){if(g&1){let e=T();r(0,"ion-datetime",8),f("ngModelChange",function(n){p(e);let d=c();return y(d.startTime,n)||(d.startTime=n),v(n)}),C("ionChange",function(){p(e);let n=c();return v(n.startChange())}),l()}if(g&2){let e=c();o("min",e.minTime())("max",e.maxTime())("showDefaultButtons",!0),D("ngModel",e.startTime),o("id","datetime"+e.id())}}function U(g,i){if(g&1&&(r(0,"ion-select-option",7),_(1),l()),g&2){let e=i.$implicit;o("value",e.value),a(),k(e.title)}}var J=[{title:"1 hour",value:60},{title:"15 mins",value:15},{title:"30 mins",value:30},{title:"45 mins",value:45},{title:"1.5 hours",value:90},{title:"2 hours",value:120},{title:"2.5 hours",value:150},{title:"3 hours",value:180},{title:"3.5 hours",value:210},{title:"4 hours",value:240},{title:"4.5 hours",value:270},{title:"5 hours",value:300},{title:"5.5 hours",value:330},{title:"6 hours",value:360},{title:"All Day",value:1440}],X=[{title:"6.5 hours",value:390},{title:"7 hours",value:420},{title:"7.5 hours",value:450},{title:"8 hours",value:480},{title:"8.5 hours",value:510},{title:"9 hours",value:540},{title:"9.5 hours",value:570},{title:"10 hours",value:600},{title:"10.5 hours",value:630},{title:"11 hours",value:660},{title:"11.5 hours",value:690},{title:"12 hours",value:720}],m=class m{constructor(){this.id=s("");this.minTime=s("");this.maxTime=s("");this.startTime="";this.endTime="";this.size=s("");this.label=s("When");this.allDay=!1;this.allDayChanged=new u;this.occurrenceChange=new u;this.startChanged=new u;this.endChanged=new u;this.day="";this.eventDuration=0;this.longDurations=s(!1);this.durations=z(()=>this.longDurations()?[...J,...X]:[...J])}allDayChange(){console.log("all day changed",this.allDay),this.allDayChanged.emit(this.allDay)}ngAfterViewInit(){this.startTime.endsWith("00:00:00")&&this.endTime.endsWith("23:59:59")&&(this.allDay=!0);let i=h(this.startTime),e=h(this.endTime);this.eventDuration=Math.abs(e-i)/6e4,this.eventDuration>1439&&(this.eventDuration=1440),this.durations().find(n=>n.value===this.eventDuration)||this.durations().push({title:`${this.eventDuration} mins`,value:this.eventDuration}),this.setDay()}startChange(){this.startChanged.emit(this.startTime),this.setDuration(),this.setDay()}endChange(){this.endChanged.emit(this.endTime)}setDuration(){this.eventDuration===1440?(this.allDay=!0,this.allDayChanged.emit(this.allDay)):this.allDay=!1,this.endTime=G(q(h(this.startTime),this.eventDuration)),this.endChanged.emit(this.endTime),this.setDay()}setDay(){let i=new Date(this.startTime);this.day=H[i.getDay()]}};m.\u0275fac=function(e){return new(e||m)},m.\u0275cmp=M({type:m,selectors:[["app-date-range"]],inputs:{id:[1,"id"],minTime:[1,"minTime"],maxTime:[1,"maxTime"],startTime:"startTime",endTime:"endTime",size:[1,"size"],label:[1,"label"],allDay:"allDay",longDurations:[1,"longDurations"]},outputs:{allDayChanged:"allDayChanged",occurrenceChange:"occurrenceChange",startChanged:"startChanged",endChanged:"endChanged"},decls:11,vars:7,consts:[[1,"l2"],[1,"vertical",3,"ngClass"],["lines","none",1,"wide-enough"],[3,"datetime"],[3,"keepContentsMounted"],["lines","none",1,"duration"],["labelPlacement","floating","interface","popover","placeholder","Duration",1,"app-select-small",3,"ionChange","ngModelChange","value","ngModel"],[3,"value"],["minuteValues","0,15,30,45",3,"ngModelChange","ionChange","min","max","showDefaultButtons","ngModel","id"]],template:function(e,t){e&1&&(r(0,"ion-label",0),_(1),l(),r(2,"div",1)(3,"ion-item",2),P(4,"ion-datetime-button",3),l(),r(5,"ion-modal",4),b(6,Q,1,5,"ng-template"),l(),r(7,"ion-item",5)(8,"ion-select",6),C("ionChange",function(){return t.setDuration()}),f("ngModelChange",function(d){return y(t.eventDuration,d)||(t.eventDuration=d),d}),x(9,U,2,2,"ion-select-option",7,w),l()()()),e&2&&(a(),I("",t.label()," ",t.day),a(),o("ngClass",t.size()),a(2),o("datetime","datetime"+t.id()),a(),o("keepContentsMounted",!0),a(3),o("value",t.eventDuration),D("ngModel",t.eventDuration),a(),O(t.durations()))},dependencies:[E,R,W,N,V,A,S,B,L,j,F],styles:['.vertical[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:end;justify-content:center;padding:0}ion-label.lbl[_ngcontent-%COMP%]{min-width:50px;text-align:right;padding-right:var(--spacing-sm)}ion-label.l2[_ngcontent-%COMP%]{font-size:var(--font-size-base);color:var(--ion-color-dark)}ion-label.day[_ngcontent-%COMP%]{min-width:50px;padding-right:var(--spacing-sm);font-size:var(--font-size-xl)}.duration[_ngcontent-%COMP%]{margin-left:0;padding-left:0;padding-right:0;margin-right:0}ion-item[_ngcontent-%COMP%]{--padding-start: 0;--inner-padding-end: 0}.day[_ngcontent-%COMP%]{opacity:.5;text-align:right}ion-datetime-button[_ngcontent-%COMP%]{justify-content:left}.checkmark[_ngcontent-%COMP%]{position:absolute;top:0;left:0;height:18px;width:18px;background-color:#eee;border-radius:var(--br-xs)}.container[_ngcontent-%COMP%]:hover input[_ngcontent-%COMP%] ~ .checkmark[_ngcontent-%COMP%]{background-color:#ccc}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]{background-color:#999}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark[_ngcontent-%COMP%]:after{content:"";position:absolute;display:none}.container[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{left:var(--spacing-sm);top:3px;width:4px;height:8px;border:solid white;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked ~ .checkmark[_ngcontent-%COMP%]:after{display:block}.container[_ngcontent-%COMP%]{display:block;position:relative;padding-left:var(--spacing-md);margin-right:var(--spacing-xl);margin-bottom:var(--spacing-base)!important;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:var(--font-size-xl);min-width:70px}ion-datetime-button[_ngcontent-%COMP%]::part(native){margin-top:0;margin-bottom:var(--spacing-sm);padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs);min-width:120px}ion-select[_ngcontent-%COMP%]{--padding-start: 0px;width:150px}@media (min-width: 390px){ion-select[_ngcontent-%COMP%]{--padding-start: 0px;--padding-end: 0;margin-right:0}}@media (min-width: 440px){.wide-enough[_ngcontent-%COMP%]{min-width:280px}}@media (min-width: 640px){.vertical[_ngcontent-%COMP%]{flex-direction:row}}@media (min-width: 800px){.wide[_ngcontent-%COMP%] ion-datetime-button[_ngcontent-%COMP%]{min-width:300px}.wide[_ngcontent-%COMP%] ion-label.lbl[_ngcontent-%COMP%]{min-width:unset}.wide[_ngcontent-%COMP%] ion-label.day[_ngcontent-%COMP%]{min-width:unset;padding-right:var(--spacing-xs)}.wide[_ngcontent-%COMP%] ion-datetime-button[_ngcontent-%COMP%]::part(native){min-width:unset}}']});var K=m;export{K as a}; diff --git a/.admin-app/chunk-SVNDKX5K.js b/.admin-app/chunk-SVNDKX5K.js deleted file mode 100644 index dd4f3f17..00000000 --- a/.admin-app/chunk-SVNDKX5K.js +++ /dev/null @@ -1,3 +0,0 @@ -import{N as W,a as F,ja as K,t as L}from"./chunk-LIWDDRYP.js";import{K as V,d as B}from"./chunk-OQVFSD37.js";import{$ as E,Aa as p,Ca as c,Db as N,Fa as T,Ga as O,H as l,Ha as k,Mc as A,Nc as z,P as h,Ua as r,Wa as x,_ as b,aa as w,ba as C,ca as o,cc as P,da as m,ea as y,ja as M,la as d,na as _,p as v,s as g,t as u,tb as I,uc as S,wb as D}from"./chunk-FDEJMFAU.js";function $(f,e){if(f&1){let n=M();o(0,"ion-button",5),d("click",function(){let a=g(n).$implicit,t=_();return u(t.copy(a))}),p(1),o(2,"div",6),d("click",function(){let a=g(n).$implicit,t=_();return u(t.remove(a))}),y(3,"ion-icon",7),m()()}if(f&2){let n=e.$implicit;l(),c("",n," ")}}var s=class s{constructor(){this.isAdmin=r(!1);this.isOwner=r(!1);this.label=r("Owner");this.api=v(V);this.placeholder=r("Email address of owner");this.emails=x("");this.newEmail="";this._emails=["damian@dust.events"];this.helperText=r("The owner can login and alter details.");K({add:F,close:L,informationCircleOutline:W})}remove(e){this._emails=this._emails.filter(n=>n!==e),this.update()}onKeyUp(e){e.key===" "&&this.addEmail(),e.key===","&&this.addEmail()}copy(e){navigator.clipboard.writeText(e),this.api.sendMessage(`Copied ${e} to the clipboard`,1)}addEmail(){B(this.cleanEmail(this.newEmail.trim()))&&(this._emails.push(this.cleanEmail(this.newEmail.trim())),this.update(),this.newEmail="")}cleanEmail(e){return e.trim().toLowerCase().replace(",","")}onWillDismiss(e){e.detail.role==="confirm"&&console.log(`Hello, ${e.detail.data}!`)}update(){this.emails.set(this._emails.join(","))}ngOnInit(){this._emails=this.emails()?this.emails().split(","):[],this.newEmail=""}};s.\u0275fac=function(n){return new(n||s)},s.\u0275cmp=h({type:s,selectors:[["app-emails"]],inputs:{isAdmin:[1,"isAdmin"],isOwner:[1,"isOwner"],label:[1,"label"],placeholder:[1,"placeholder"],emails:[1,"emails"],helperText:[1,"helperText"]},outputs:{emails:"emailsChange"},decls:8,vars:5,consts:[["id","emailLabel"],[1,"row"],["size","small","color","medium","mode","ios","shape","round",1,"email"],["helperText","",3,"ionBlur","keyup.Tab","keyup","ngModelChange","disabled","readonly","ngModel"],[1,"helper","helper2"],["size","small","color","medium","mode","ios","shape","round",1,"email",3,"click"],[3,"click"],["slot","end","name","close"]],template:function(n,i){n&1&&(o(0,"ion-label",0),p(1),m(),o(2,"div",1),E(3,$,4,1,"ion-button",2,b),o(5,"ion-input",3),d("ionBlur",function(){return i.addEmail()})("keyup.Tab",function(){return i.addEmail()})("keyup",function(t){return i.onKeyUp(t)}),k("ngModelChange",function(t){return O(i.newEmail,t)||(i.newEmail=t),t}),m()(),o(6,"div",4),p(7),m()),n&2&&(l(),c("",i.label(),` -`),l(2),w(i._emails),l(2),C("disabled",!i.isAdmin&&!i.isOwner)("readonly",!i.isAdmin&&!i.isOwner),T("ngModel",i.newEmail),l(2),c(" ",i.helperText(),` -`))},dependencies:[z,N,I,D,P,A,S],styles:[".row[_ngcontent-%COMP%]{display:flex;background-color:#0000000d;border-radius:var(--br-xl);margin-left:var(--spacing-lg);align-self:center;flex-wrap:wrap}.button[_ngcontent-%COMP%]{height:40px;align-self:flex-end;margin-bottom:var(--spacing-base);margin-top:var(--spacing-base)}ion-button[_ngcontent-%COMP%]{--padding-start: var(--spacing-lg);--padding-end: var(--spacing-lg)}.helper2[_ngcontent-%COMP%]{padding-left:var(--spacing-2xl);font-size:var(--font-size-xl)}ion-icon[_ngcontent-%COMP%]{background-color:var(--ion-color-light);color:var(--ion-color-medium);border-radius:var(--br-3xl);margin-left:var(--spacing-xs);margin-right:0;padding-right:0;font-size:var(--font-size-base)}ion-label[_ngcontent-%COMP%]{margin-left:var(--spacing-lg);margin-top:var(--spacing-lg)}ion-input[_ngcontent-%COMP%]{--input-background: rgba(0, 0, 0, 0);padding-top:0!important;margin-top:calc(-1 * var(--spacing-md))!important}"]});var U=s;export{U as a}; diff --git a/.admin-app/chunk-T34LU4SH.js b/.admin-app/chunk-T34LU4SH.js deleted file mode 100644 index 069d3b81..00000000 --- a/.admin-app/chunk-T34LU4SH.js +++ /dev/null @@ -1 +0,0 @@ -import{K as Z}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as h,Aa as g,Ac as V,Bc as G,Ca as T,Db as k,Ec as H,Fc as q,H as l,Kc as J,Nc as K,P as S,Rc as Q,Sc as U,Tc as X,Ua as I,Wb as B,Za as w,aa as y,ba as o,ca as a,cc as R,da as r,dc as W,ea as N,ec as x,fc as F,la as d,lc as A,p as b,rc as $,sc as z,tb as P,uc as L,vc as Y,w as u,wb as D}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as M,b as j,d as E,h as f}from"./chunk-LNJ3S2LQ.js";var te=(m,i)=>i.id,ie=(m,i)=>i.value;function ne(m,i){if(m&1&&(a(0,"ion-select-option",12),g(1),r()),m&2){let e=i.$implicit;o("value",e.id),l(),T(" ",e.label," ")}}function se(m,i){if(m&1&&(a(0,"ion-select-option",12),g(1),r()),m&2){let e=i.$implicit;o("value",e.value),l(),T(" ",e.label," ")}}var c=class c{constructor(){this.vanity=I();this.api=b(Z);this.location=b(w);this.triggerOptions=[{id:"camp-register",label:"When a Camp is Registered",helper:"Sent when a camp is registered"},{id:"art-register",label:"When Art is Registered",helper:"Sent when art is registered"},{id:"music-register",label:"When Music is Registered",helper:"Sent when music is registered"},{id:"burn-register",label:"When a Burn is Registered",helper:"Sent when a burn is registered"},{id:"camp-event-register",label:"When a Camp Event is Registered",helper:"Sent when a camp event is registered"},{id:"art-event-register",label:"When an Art Event is Registered",helper:"Sent when an art event is registered"},{id:"start-burn-time",label:"When a Burn Starts",helper:"Sent at a specified time after the burn starts",afterOnly:!0},{id:"end-burn-time",label:"When a Burn Ends",helper:"Sent at a specified time after the burn ends",afterOnly:!0},{id:"manual",label:"Manual",helper:"Sent manually by an administrator"}];this.selectedTrigger=u("camp-register");this.selectedType=u("email");this.selectedOffset=u("15m");this.templates=u([]);this.timingOptions=[{label:"7 days before",value:"-7d"},{label:"3 days before",value:"-3d"},{label:"2 days before",value:"-2d"},{label:"1 day before",value:"-1d"},{label:"15 minutes after",value:"15m"},{label:"30 minutes after",value:"30m"},{label:"1 hour after",value:"1h"},{label:"2 hours after",value:"2h"},{label:"5 hours after",value:"5h"},{label:"12 hours after",value:"12h"},{label:"1 day after",value:"1d"},{label:"2 days after",value:"2d"},{label:"3 days after",value:"3d"},{label:"7 days after",value:"7d"}]}ngOnInit(){this.loadTemplates()}ionViewWillEnter(){return f(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0)})}getDefaultData(i,e){var n;return((n={"camp-register":{email:{subject:"Camp Registration Confirmation",body:`Your camp "{{campName}}" has been registered successfully. We'll review your submission.`},notification:{subject:"Camp Registered",body:'Camp "{{campName}}" registered successfully!'}},"art-register":{email:{subject:"Art Registration Confirmation",body:'Your art piece "{{artName}}" has been registered for {{burn}}.'},notification:{subject:"Art Registered",body:'"{{artName}}" registration complete!'}},"music-register":{email:{subject:"Music Registration Confirmation",body:'Thank you for registering "{{musicName}}".'},notification:{subject:"Music Registered",body:'Music "{{musicName}}" registered successfully!'}},"burn-register":{email:{subject:"Burn Registration Confirmation",body:'Your burn event "{{burnName}}" has been registered.'},notification:{subject:"Burn Registered",body:'Burn "{{burnName}}" registration submitted!'}},"camp-event-register":{email:{subject:"Event Registration Confirmation",body:'Your event "{{eventName}}" hosted by {{campName}} has been added to the schedule.'},notification:{subject:"Event Added",body:'Event "{{eventName}}" added to schedule!'}},"art-event-register":{email:{subject:"Art Event Registration Confirmation",body:'The event "{{eventName}}" has been registered.'},notification:{subject:"Art Event Registered",body:'Art event "{{eventName}}" registered!'}},"start-burn-time":{email:{subject:"Burn Starting Soon",body:'The burn "{{burnName}}" is starting.'},notification:{subject:"Burn Starting",body:'"{{burnName}}" starting!'}},"end-burn-time":{email:{subject:"Burn Completed",body:'"{{burnName}}" has concluded.'},notification:{subject:"Burn Ended",body:'"{{burnName}}" burn has ended.'}},manual:{email:{subject:"Manual Notification",body:"Welcome to {{burnName}}."},notification:{subject:"Manual Notification",body:"Welcome to {{burnName}}."}}}[i])==null?void 0:n[e])||{subject:`${i} ${e}`,body:`Template for ${i} (${e})`}}loadTemplates(){return f(this,null,function*(){try{let i=yield this.api.getTemplates();if(i&&i.length>0){let e=i.map(t=>{var O,_,C;let v=t,{["trigger-offset"]:n}=v,s=E(v,["trigger-offset"]),p=(_=(O=t.timeOffset)!=null?O:n)!=null?_:"15m";return j(M({},s),{timeOffset:p,enabled:(C=t.enabled)!=null?C:!0})});this.templates.set(e)}else{let e=[];this.triggerOptions.forEach(t=>{let n=this.getDefaultData(t.id,"email"),s=this.getDefaultData(t.id,"notification");e.push({trigger:t.id,type:"email",timeOffset:"15m",subject:n.subject,body:n.body,from:"[burn]",enabled:!0}),e.push({trigger:t.id,type:"notification",timeOffset:"15m",subject:s.subject,body:s.body,from:"[burn]",enabled:!0})}),this.templates.set(e)}}catch(i){console.error("Failed to load templates:",i);let e=[];this.triggerOptions.forEach(t=>{let n=this.getDefaultData(t.id,"email"),s=this.getDefaultData(t.id,"notification");e.push({trigger:t.id,type:"email",timeOffset:"15m",subject:n.subject,body:n.body,from:"[burn]",enabled:!0}),e.push({trigger:t.id,type:"notification",timeOffset:"15m",subject:s.subject,body:s.body,from:"[burn]",enabled:!0})}),this.templates.set(e)}})}get currentTemplate(){let i=this.templates().find(e=>e.trigger===this.selectedTrigger()&&e.type===this.selectedType());return i||{trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:"",from:"[burn]",enabled:!0}}get currentTriggerLabel(){var e;let i=this.triggerOptions.find(t=>t.id===this.selectedTrigger());return(e=i==null?void 0:i.label)!=null?e:""}get currentTypeLabel(){return this.selectedType()==="email"?"Email":"Notification"}get currentTriggerHelper(){var e;let i=this.triggerOptions.find(t=>t.id===this.selectedTrigger());return(e=i==null?void 0:i.helper)!=null?e:""}selectTrigger(i,e){this.selectedTrigger.set(i),this.selectedType.set(e)}onSelectChange(i){let e=i.detail.value;this.selectedTrigger.set(e);let t=this.templates().find(s=>s.trigger===e&&s.type===this.selectedType());if(!t){let s={trigger:e,type:this.selectedType(),timeOffset:"15m",subject:"",body:"",from:"[burn]",enabled:!0};this.templates.update(p=>[...p,s]),t=s}let n=this.normalizeOffsetForTrigger(e,t.timeOffset);t.timeOffset!==n&&(t.timeOffset=n),this.selectedOffset.set(n)}getTimingOptionsForCurrentTrigger(){let i=this.triggerOptions.find(e=>e.id===this.selectedTrigger());return i?i.afterOnly?this.timingOptions:this.timingOptions.filter(e=>!e.value.startsWith("-")):this.timingOptions}isTriggerWithTiming(){let i=this.triggerOptions.find(e=>e.id===this.selectedTrigger());return(i==null?void 0:i.afterOnly)===!0}onTypeChange(i){let e=i.detail.value;this.selectedType.set(e);let t=this.templates().find(s=>s.trigger===this.selectedTrigger()&&s.type===e);if(!t){let s={trigger:this.selectedTrigger(),type:e,timeOffset:"15m",subject:"",body:"",from:"[burn]",enabled:!0};this.templates.update(p=>[...p,s]),t=s}let n=this.normalizeOffsetForTrigger(this.selectedTrigger(),t.timeOffset);t.timeOffset!==n&&(t.timeOffset=n),this.selectedOffset.set(n)}updateSubject(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:i,body:"",from:"[burn]",enabled:!0};this.templates.update(s=>[...s,n])}else e[t].subject=i,this.templates.set([...e])}updateBody(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:i,from:"[burn]",enabled:!0};this.templates.update(s=>[...s,n])}else e[t].body=i,this.templates.set([...e])}updateEnabled(i){let e=this.templates(),t=e.findIndex(n=>n.trigger===this.selectedTrigger()&&n.type===this.selectedType());if(t===-1){let n={trigger:this.selectedTrigger(),type:this.selectedType(),timeOffset:this.selectedOffset(),subject:"",body:"",from:"[burn]",enabled:i};this.templates.update(s=>[...s,n])}else e[t].enabled=i,this.templates.set([...e])}updateOffset(i){let e=this.normalizeOffsetForTrigger(this.selectedTrigger(),i);this.selectedOffset.set(e);let t=this.templates(),n=t.findIndex(s=>s.trigger===this.selectedTrigger()&&s.type===this.selectedType());n!==-1&&t[n].timeOffset!==e&&(t[n].timeOffset=e,this.templates.set([...t]))}save(){return f(this,null,function*(){try{yield this.api.saveTemplates(this.templates()),this.location.back()}catch(i){console.error("Failed to save templates:",i),this.api.sendMessage("Failed to save messages")}})}normalizeOffsetForTrigger(i,e){let n=this.triggerOptions.find(s=>s.id===i);return!e||n!=null&&n.afterOnly&&e.startsWith("-")?"15m":e}};c.\u0275fac=function(e){return new(e||c)},c.\u0275cmp=S({type:c,selectors:[["app-message-triggers"]],inputs:{vanity:[1,"vanity"]},decls:39,vars:14,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[1,"form"],["lines","none"],[1,"trigger-type-row"],["lines","none",1,"app-select","trigger-select"],["label","","labelPlacement","stacked","interface","popover",1,"app-select","no-label",3,"ionChange","value"],[3,"value"],[1,"type-segment"],["mode","ios",3,"ionChange","value"],["value","email"],["value","notification"],["lines","none",1,"app-select"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],[3,"ionChange","checked"],[1,"label-padding-left"],["labelPlacement","stacked",3,"ngModelChange","spellcheck","rows","autoGrow","label","placeholder","ngModel"]],template:function(e,t){e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),N(3,"ion-back-button"),r(),a(4,"ion-title",2),g(5,"Messages"),r(),a(6,"ion-buttons",3)(7,"ion-button",4),d("click",function(){return t.save()}),g(8,"Save"),r()()()(),a(9,"ion-content",5)(10,"div",6)(11,"ion-card",7)(12,"ion-card-content",7)(13,"ion-list",8)(14,"div",9)(15,"ion-item",10)(16,"ion-select",11),d("ionChange",function(s){return t.onSelectChange(s)}),h(17,ne,2,2,"ion-select-option",12,te),r()(),a(19,"ion-item",13)(20,"ion-segment",14),d("ionChange",function(s){return t.onTypeChange(s)}),a(21,"ion-segment-button",15)(22,"ion-label"),g(23,"Email"),r()(),a(24,"ion-segment-button",16)(25,"ion-label"),g(26,"Notification"),r()()()()(),a(27,"ion-item",17)(28,"ion-select",11),d("ionChange",function(s){return t.updateOffset(s.detail.value)}),h(29,se,2,2,"ion-select-option",12,ie),r()(),a(31,"ion-item")(32,"ion-input",18),d("ngModelChange",function(s){return t.updateSubject(s)}),r()(),a(33,"ion-item",8)(34,"ion-checkbox",19),d("ionChange",function(s){return t.updateEnabled(s.detail.checked)}),r(),a(35,"ion-label",20),g(36,"Enabled"),r()(),a(37,"ion-item")(38,"ion-textarea",21),d("ngModelChange",function(s){return t.updateBody(s)}),r()()()()()()()),e&2&&(l(9),o("fullscreen",!0),l(7),o("value",t.selectedTrigger()),l(),y(t.triggerOptions),l(3),o("value",t.selectedType()),l(8),o("value",t.currentTemplate.timeOffset||t.selectedOffset()),l(),y(t.getTimingOptionsForCurrentTrigger()),l(3),o("label",t.selectedType()==="email"?"Subject":"Title")("placeholder",t.selectedType()==="email"?"Email subject":"Notification message")("ngModel",t.currentTemplate.subject),l(2),o("checked",t.currentTemplate.enabled),l(4),o("spellcheck",!0)("rows",10)("autoGrow",!0)("label",t.selectedType()==="email"?"Body":"Message")("placeholder",t.selectedType()==="email"?"Email body":"Notification body")("ngModel",t.currentTemplate.body))},dependencies:[F,x,z,Y,R,B,K,W,A,$,X,H,q,U,G,Q,V,L,J,k,P,D],styles:[".trigger-type-row[_ngcontent-%COMP%]{display:flex;gap:var(--spacing-lg);align-items:flex-start}.trigger-select-wrapper[_ngcontent-%COMP%], .trigger-select[_ngcontent-%COMP%]{flex:1}.type-segment[_ngcontent-%COMP%]{flex:0 0 auto}ion-segment[_ngcontent-%COMP%]{margin-top:var(--spacing-lg);width:250px}ion-segment-button[_ngcontent-%COMP%]{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}"]});var ee=c;export{ee as MessageTriggersPage}; diff --git a/.admin-app/chunk-T35XL25U.js b/.admin-app/chunk-T35XL25U.js new file mode 100644 index 00000000..a4d857df --- /dev/null +++ b/.admin-app/chunk-T35XL25U.js @@ -0,0 +1 @@ +import{a as ce}from"./chunk-62GZOW6G.js";import{a as me}from"./chunk-KCPLCCSF.js";import{a as de}from"./chunk-K6ROGVP7.js";import{K as pe}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{Ba as p,Ca as u,Da as E,E as V,Eb as z,Ec as oe,Fc as re,Ga as $,Gc as se,H as r,Ha as A,Ia as N,Mc as le,P as L,Va as W,Xb as q,Y as v,Z as y,_a as D,aa as P,ba as T,ca as _,cc as H,da as s,dc as G,ea as l,ec as J,fa as b,fc as K,gc as X,ka as F,ma as S,mc as Y,oa as g,p as U,s as x,sa as R,sc as Z,t as I,ta as B,tc as ee,ua as O,ub as j,uc as te,vc as ie,wc as ne,xb as Q,zc as ae}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h}from"./chunk-LNJ3S2LQ.js";var Ie=["name","description","camp_type","contact_email","imageUrl","externalId"];function ge(o){return o==null?"":String(o).trim()}function ue(o,i){let e=[];for(let t of Ie){let a=ge(o[t]),n=ge(i[t]);a!==n&&e.push(t)}return e}function fe(o,i){return i?ue(o,i).length===0?"existing":"updated":"new"}function Ce(o,i){return ue(o,i)}var ve=["fileUpload"],M=(o,i)=>i.camp.name;function ye(o,i){if(o&1&&(b(0,"ion-progress-bar",9),s(1,"ion-text"),p(2),l(),b(3,"app-spinner"),s(4,"div",10),b(5,"img",11),l()),o&2){let e=g();_("value",e.progress),r(2),u(e.importing),r(3),_("src",e.url,V)}}function we(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),p(4),l(),s(5,"ion-badge",19),p(6,"New"),l()(),s(7,"p"),p(8),l()()()),o&2){let e=i.$implicit;r(4),u(e.camp.name),r(4),u(e.camp.description)}}function be(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),p(3),l()()(),P(4,we,9,2,"ion-item",null,M)),o&2){let e=g(2);r(3),E("New Camps (",e.groupedCamps.get("new").length,")"),r(),T(e.groupedCamps.get("new"))}}function Se(o,i){if(o&1&&(s(0,"p",21),p(1),l()),o&2){let e=g().$implicit;r(),E(" Changed: ",e.changedFields.join(", ")," ")}}function Ee(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),p(4),l(),s(5,"ion-badge",20),p(6,"Updated"),l()(),s(7,"p"),p(8),l(),v(9,Se,2,1,"p",21),l()()),o&2){let e=i.$implicit;r(4),u(e.camp.name),r(4),u(e.camp.description),r(),y(e.changedFields&&e.changedFields.length>0?9:-1)}}function ke(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),p(3),l()()(),P(4,Ee,10,3,"ion-item",null,M)),o&2){let e=g(2);r(3),E("Updated Camps (",e.groupedCamps.get("updated").length,")"),r(),T(e.groupedCamps.get("updated"))}}function Pe(o,i){if(o&1&&(s(0,"ion-item")(1,"ion-label")(2,"div",18)(3,"h3"),p(4),l(),s(5,"ion-badge",22),p(6,"Existing"),l()(),s(7,"p"),p(8),l()()()),o&2){let e=i.$implicit;r(4),u(e.camp.name),r(4),u(e.camp.description)}}function Te(o,i){if(o&1&&(s(0,"ion-item-divider")(1,"ion-label")(2,"h2"),p(3),l()()(),P(4,Pe,9,2,"ion-item",null,M)),o&2){let e=g(2);r(3),E("Existing Camps (",e.groupedCamps.get("existing").length,")"),r(),T(e.groupedCamps.get("existing"))}}function Ue(o,i){if(o&1){let e=F();s(0,"div",7)(1,"div",12)(2,"ion-button",13),S("click",function(){x(e);let a=g();return I(a.doImport())}),p(3,"Import from CSV"),l()(),s(4,"ion-card",14)(5,"ion-card-content",14)(6,"ion-list"),v(7,be,6,1),v(8,ke,6,1),v(9,Te,6,1),l(),s(10,"div",15)(11,"ion-checkbox",16),N("ngModelChange",function(a){x(e);let n=g();return A(n.skipUpdatedCamps,a)||(n.skipUpdatedCamps=a),I(a)}),p(12,"Skip updated camps"),l(),s(13,"ion-button",17),S("click",function(){x(e);let a=g();return I(a.import())}),p(14,"Import"),l()()()()()}if(o&2){let e=g();r(7),y(e.groupedCamps.get("new")&&e.groupedCamps.get("new").length>0?7:-1),r(),y(!e.skipUpdatedCamps&&e.groupedCamps.get("updated")&&e.groupedCamps.get("updated").length>0?8:-1),r(),y(e.groupedCamps.get("existing")&&e.groupedCamps.get("existing").length>0?9:-1),r(2),$("ngModel",e.skipUpdatedCamps),r(2),_("disabled",e.busy)}}var w=class w{constructor(){this.api=U(pe);this.location=U(D);this.vanity=W("");this.isAdmin=!1;this.busy=!1;this.camps=[];this.campsWithIds=new Map;this.groupedCamps=new Map;this.title="Import";this.importing="";this.progress=0;this.isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);this.url="";this.skipUpdatedCamps=!1}ngOnInit(){this.isAdmin=this.api.lastRoleResponse=="festival",this.isAdmin&&this.fileUpload.nativeElement.click()}doImport(){this.fileUpload.nativeElement.click()}onFileSelected(i){return h(this,null,function*(){let e=i.target.files[0];if(!e)return;let t=new FileReader;t.onload=a=>h(this,null,function*(){var d;let n=(d=a.target)==null?void 0:d.result;yield this.parseCSV(n);try{this.fileUpload.nativeElement.target&&(this.fileUpload.nativeElement.target.value="")}catch(C){console.info(C)}}),t.readAsText(e)})}parseCSV(i){return h(this,null,function*(){let e=ce(i);console.info("items parsed from csv",e),this.camps=[],this.groupedCamps.clear();let t=this.mapColumns(e);if(t){let a=[];for(let m of e){let c=yield this.importCamp(m,t);!!c.name&&a.push(c)}a.sort((m,c)=>m.name>c.name?1:-1);let n=yield this.api.camps({cached:!1}),d=new Map,C=new Map;for(let m of n)d.set(this.safeTrimLower(m.name),m),m.externalId&&C.set(this.safeTrimLower(m.externalId),m);let f=new Map;f.set("existing",[]),f.set("new",[]),f.set("updated",[]);for(let m of a){let c=d.get(this.safeTrimLower(m.name));!c&&m.externalId&&(c=C.get(this.safeTrimLower(m.externalId)));let k=fe(m,c),_e=k==="updated"?Ce(m,c):void 0;c!=null&&c.id&&this.campsWithIds.set(this.safeTrimLower(m.name),c.id);let xe={status:k,camp:m,changedFields:_e};f.get(k).push(xe),this.camps.push(m)}this.groupedCamps=f,this.title=`Import ${this.camps.length} camps`}})}import(){return h(this,null,function*(){this.busy=!0,this.title="Importing...";let i=0,e=0,t=this.camps;this.skipUpdatedCamps&&(t=this.camps.filter(n=>this.getCampStatusForImport(n)!=="updated"));let a=t.length;for(;t.length>0;){let n;try{if(e++,n=t.pop(),n){let d=n.imageUrl;n.imageUrl=void 0;let C=this.campsWithIds.get(this.safeTrimLower(n.name));C&&(n.id=C),this.importing=n.name,this.progress=e/a;let f=yield this.api.addCamp(n,!0);if(i++,d&&f.id){n.id=f.id;try{yield this.importImage(d,n)}catch{console.error(`Unable to import image for camp ${n.name}: ${d}`)}}}}catch{console.error(`Failed to import ${n==null?void 0:n.name}: ${n==null?void 0:n.description}`)}}this.api.sendMessage(`Imported ${i} of ${e} camps.`),this.busy=!1,this.api.clearCache(),this.location.back()})}toUrl(i){let e=!1,t="";for(let a of i)if(a=="(")e=!0;else if(a==")")if(e=!1,t.length<3)t="";else return t;else e&&(t+=a);return t}importImage(i,e){return h(this,null,function*(){let t=this.toUrl(i),n=yield(yield fetch(t)).blob(),d=yield me(n,{quality:75,width:300});this.url=URL.createObjectURL(d),e.imageUrl=yield this.api.setImage(d,e.id),yield this.api.addCamp(e,!0)})}mapColumns(i){if(i.length==0)return;let e=i[0],t={pin:"",name:"",id:void 0,camp_type:"Theme Camp",publicEvents:!1};for(let a of Object.keys(e)){let n=a.toLowerCase();n.includes("name")&&!t.name&&(t.name=a),n.includes("description")&&(t.description=a),(n=="type"||n=="camp type"||n=="camptype")&&(t.camp_type=a),n.includes("image")&&(t.image=a),n.includes("logo")&&(t.logo=a),n.includes("email")&&(t.contact_email=a),(n.includes("#")||n=="id")&&(t.externalId=a)}return console.log("map",t),t}importCamp(i,e){return h(this,null,function*(){let t=yield this.api.getCamp(void 0);t.name=i[e.name].trim(),e.description?t.description=i[e.description]:t.description=`Details on ${t.name} coming soon...`,e.externalId&&(t.externalId=i[e.externalId]),e.camp_type&&(t.camp_type=i[e.camp_type]),e.contact_email&&(t.contact_email=i[e.contact_email]);let a=e.image,n=e.logo;return a&&(t.imageUrl=i[a]),n&&this.isBlank(t.imageUrl)&&(t.imageUrl=i[n]),t})}isBlank(i){return!i||i.trim()==""}safeTrimLower(i){return i?i.trim().toLowerCase():""}getCampStatusForImport(i){for(let[e,t]of this.groupedCamps)for(let a of t)if(a.camp.name===i.name)return e;return"new"}};w.\u0275fac=function(e){return new(e||w)},w.\u0275cmp=L({type:w,selectors:[["app-import"]],viewQuery:function(e,t){if(e&1&&R(ve,7),e&2){let a;B(a=O())&&(t.fileUpload=a.first)}},inputs:{vanity:[1,"vanity"]},decls:14,vars:5,consts:[["fileUpload",""],["color","primary"],["slot","start"],["routerLink","../"],["slot","end",3,"hidden"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],["type","file","accept",".csv",1,"file-input",3,"change"],[3,"value"],[1,"ion-text-center","vcenter"],[2,"border-radius","2rem",3,"src"],[1,"ion-text-center"],["fill","clear",3,"click"],[1,"form"],[2,"display","flex","width","100%","justify-content","space-between","align-items","center"],["labelPlacement","end","slot","start",3,"ngModelChange","ngModel"],["fill","solid","color","primary",3,"click","disabled"],[1,"camp-header"],["color","success"],["color","warning"],[1,"changed-fields"],["color","medium"]],template:function(e,t){if(e&1){let a=F();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),b(3,"ion-back-button"),l(),s(4,"ion-title",3),p(5),l(),s(6,"ion-buttons",4)(7,"ion-button",5),S("click",function(){return x(a),I(t.import())}),p(8,"Import"),l()()()(),s(9,"ion-content",6),v(10,ye,6,3)(11,Ue,15,5,"div",7),s(12,"input",8,0),S("change",function(d){return x(a),I(t.onFileSelected(d))}),l()()}e&2&&(r(5),u(t.title),r(),_("hidden",t.camps.length===0),r(),_("disabled",t.busy),r(2),_("fullscreen",!0),r(),y(t.busy?10:11))},dependencies:[K,X,ae,oe,G,ne,ie,ee,q,J,Y,Z,re,se,z,j,Q,de,te,H,le],styles:[".camp-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.camp-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;flex:1}.changed-fields[_ngcontent-%COMP%]{color:#ff9500;font-size:var(--font-size-xl);margin-top:var(--spacing-base);font-weight:500}"]});var he=w;export{he as ImportPage}; diff --git a/.admin-app/chunk-TCALQ33I.js b/.admin-app/chunk-TCALQ33I.js new file mode 100644 index 00000000..7ddcd605 --- /dev/null +++ b/.admin-app/chunk-TCALQ33I.js @@ -0,0 +1 @@ +import{a as I}from"./chunk-PFLI22GG.js";import{l as b,p as S,w as c}from"./chunk-LVL3PYF7.js";import{a as P,b as w,h as i}from"./chunk-LNJ3S2LQ.js";function L(s,e,t,n){let r=t&&R(s,t),a=t&&R(e,t);if(!t||r||a){let l=s.toLocaleDateString([],{weekday:"long"}),d=a&&!r?`Until ${f(e,n)} (${A(e,s)})`:`${f(s,n)} (${A(e,s)})`,o=`${f(s,n)}`,g=`${l} ${f(s,n)}-${f(e,n)} (${A(e,s)})`;return g.endsWith("(24hrs)")&&(g=`${l} - All Day`),{long:g,short:d,brief:o}}}function O(s){let e=new Date(s);return!isNaN(e.getTime())}function U(s,e){return s===null||!s?e:s}function N(s){return!!String(s).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|.(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}function v(s){return!s||s.trim()==""}function W(s,e){return new URLSearchParams(new URL(s).search).get(e)}function x(s){return s.replace(/\w\S*/g,function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()})}function J(s){return new Promise(e=>setTimeout(e,s))}function Z(s,e){return(e.match(new RegExp(s,"g"))||[]).length}function z(s){if(!s)return"";let e=s.split("@");return e.length==3?e[1]:e.length==2?e[0]:""}function V(s){let e=new Date(s);return Math.ceil((e.getTime()-new Date().getTime())/(1e3*60*60*24))}function B(s){if(!s)return"";let e=s.split("@");return e.length==3?e[2]:e.length==2?e[1]:""}function M(s){if(!(s=="new"||!s))return parseInt(s,10)}function u(s,e){let t=""+s;for(;t.length5){if(s.includes("."))return s;s=s.toLowerCase().replace(/^\S|\.\s*\S/g,e=>e.toUpperCase())}return s}function q(s,e,t,n,r){return`${u(s,4)}-${u(e+1,2)}-${u(t,2)}T${u(n,2)}:${u(r,2)}:00.000Z`}function X(s){return s.endsWith("Z")?s.replace("Z",""):s}function ee(s){let e=$(s);return(e<0?"+":"-")+u(parseInt(Math.abs(e/60)),2)+u(Math.abs(e%60),2)}function $(s){let e=new Date,t=new Date(e.toLocaleString("en-US",{timeZone:"UTC"}));return(new Date(e.toLocaleString("en-US",{timeZone:s}))-t)/(60*1e3)}function te(s){for(let[e,t]of Object.entries(s))(typeof t=="string"||t instanceof String)&&t&&t!==t.trim()&&(console.info(`${e} was trimmed of extra spaces.`),s[e]=t.trim())}var se=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ne=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function f(s,e){let t=s.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",timeZone:e}).toLowerCase().replace(" ","").replace(":00","");return t=="12am"?"Midnight":t=="12pm"?"Noon":t}function ie(s){let e=String(s.getMonth()+1).padStart(2,"0"),t=String(s.getDate()).padStart(2,"0"),n=s.getFullYear();return`${e}-${t}-${n}`}function re(s,e){return s.toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",timeZone:e}).toLowerCase()}function R(s,e){return s.getDate()===e.getDate()&&s.getMonth()===e.getMonth()&&s.getFullYear()===e.getFullYear()}function ae(s,e="long"){let t=new Date().getFullYear(),n=[...Array(12).keys()],r=new Intl.DateTimeFormat(s,{month:e}),a=l=>r.format(new Date(t,l));return n.map(a)}function oe(s){return new Promise((e,t)=>{try{let n=new FileReader;n.onloadend=()=>{let r=n.result;r?e(r):t()},n.onerror=t,n.readAsDataURL(s)}catch(n){t(n)}})}function ce(s,e){try{return e&&v(s)||new URL(s),!0}catch{return!1}}function A(s,e){let t=Math.round(Math.abs(s-e)/36e5*10)/10,n=Math.floor(Math.abs(s-e)/1e3/60),r=t<1.1?"1hr":`${t}hrs`;return n<60?`${n}mins`:r}function E(s){let e=s.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}return decodeURIComponent(window.escape(window.atob(e)))}function le(s){return!s||s==null}function F(s=""){if(s===null||s==="")return{upn:""};let e=s.split(".");if(e.length!==3)throw new Error("JWT must have 3 parts");let t=E(e[1]);if(!t)throw new Error("Cannot decode the token");return JSON.parse(t)}function k(s){return s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ue(s,e,t){return s&&s.replace(new RegExp(k(e),"g"),t)}function me(s){return s.replace(/\n([a-z])/g," $1")}function pe(s){if(!s||s.trim()==="")return"";let e=s.trim();return["https://","http://","tel:","mailto:","sms:"].some(a=>e.toLowerCase().startsWith(a))?e:e.includes("@")?`mailto:${e}`:/^[\d\s+\-()]+$/.test(e)?`tel:${e.replace(/[\s\-()]/g,"")}`:e.toLowerCase().startsWith("www.")?`https://${e}`:e}function de(s,e,t){return s===1?e:t||`${e}s`}var m=class m{constructor(){this.mem={}}get(e){return this.mem[e]?this.mem[e]:localStorage[this.key(e)]}getMemory(e){if(this.mem[e])return this.mem[e]}key(e){return e=="token"?e:`admin-${e}`}set(e,t){if(t==null){delete this.mem[e],localStorage.removeItem(e.toString());return}this.mem[e]=t,localStorage[this.key(e)]=t}setMemory(e,t){if(t==null){delete this.mem[e];return}this.mem[e]=t}clear(){this.mem={},console.log("storage.clear"),localStorage.clear()}};m.\u0275fac=function(t){return new(t||m)},m.\u0275prov=b({token:m,factory:m.\u0275fac,providedIn:"root"});var y=m;var D=8787;var p=class p{constructor(){this.lastRoleResponse=null;this.changesMade=!1;this.firstUse=!0;this.user=c("");this.userEmail=c("");this.moreButton=c({buttons:[],event:void 0,hideProfile:!1});this.campRegistration=c(!1);this.campEditing=c(!1);this.eventEditing=c(!1);this.artEditing=c(!1);this.openedUrl=c("");this.errorStream=c({status:200,text:"",url:""});this.messageStream=c({id:0,message:"",type:0});this.store=S(y);this.initialized=!1;this.cache={}}get festivalId(){return this.store.get("festivalId")}isLocal(){return location.href.includes("localhost:")&&this.useStagingForDev()||location.protocol==="capacitor:"?!1:location.href.includes("localhost:")||location.href.includes("ngrok")}useStagingForDev(){return!0}isStaging(){return location.href.includes(".dust.events")?!1:location.hostname.startsWith("localhost")&&location.port=="8100"?!0:location.href.includes(".pages.dev")}isInIframe(){return window.self!==window.top}init(){this.initialized=!0}checkInit(){if(!this.initialized){if(!I.isNativePlatform()){this.initialized=!0;return}console.warn("restarting..."),document.location.href="./index.html"}}url(e){return this.isLocal()?`http://${location.hostname}:${D}/${e}`:this.isStaging()?`https://development-api.dust.events/${e}`:`https://api.dust.events/${e}`}imageURL(e){return e=="null"?"":this.isLocal()?e?`http://localhost:${D}/images/${e}`:"":this.isStaging()?e?`https://data-staging.dust.events/${e}`:"":e?`https://data.dust.events/${e}`:""}setFestival(e){this.campRegistration.set(e.camp_registration),this.campEditing.set(e.camp_editing),this.eventEditing.set(e.event_editing),this.artEditing.set(e.art_editing),this.store.set("festivalId",e.id),this.store.set("festivalTitle",e.name),this.store.set("festivalVanity",e.vanity),this.store.set("festivalImage",e.imageUrl),this.store.set("festivalTimeZone",e.timezone),this.clearCache()}archive(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/archive`,e)})}approve(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/approve`,{})})}setEventTypes(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/event-types`,e)})}setMusicTypes(e){return i(this,null,function*(){return yield this.post(`festivals/${e.vanity}/music-types`,e)})}setMessageSettings(e){return i(this,null,function*(){return yield this.post(`festivals/${e.festival_vanity}/message-settings`,e)})}setVolunteeripateSettings(e,t){return i(this,null,function*(){return yield this.post(`festivals/${e}/volunteeripate-settings`,t)})}setPlacementSettings(e,t){return i(this,null,function*(){return yield this.post(`festivals/${e}/placement-settings`,t)})}getCampSchema(){return i(this,null,function*(){return yield this.get("schema/camps",{cached:!1})})}saveCampSchema(e){return i(this,null,function*(){return yield this.post("schema/camps",e)})}getArtSchema(){return i(this,null,function*(){return yield this.get("schema/art",{cached:!1})})}saveArtSchema(e){return i(this,null,function*(){return yield this.post("schema/art",e)})}vanity(){return this.store.get("festivalVanity")}produceError(e,t,n){this.errorStream.set({status:e,text:t,url:n})}getFestivalByVanity(e,t=!1,n=!0){return i(this,null,function*(){return this.fixTheme((yield this.get(`festivals/${e}?by=vanity&pending=${t}`,{cached:n})).data)})}fixTheme(e){return e.theme&&typeof e.theme=="string"&&(e.theme=JSON.parse(e.theme)),e}getUnAuthedBurns(){return i(this,null,function*(){let e=yield this.do("GET","data/festivals.json");for(let n of e.data)n.name=n.title,n.start_time=n.start,n.end_time=n.end;let t=e.data.filter(n=>n.active).filter(n=>new Date(n.end)>new Date);return t.sort((n,r)=>n.name.localeCompare(r.name)),console.log(t),t})}submitForm(e){return i(this,null,function*(){yield this.do("POST","help",e)})}getUnAuthedFestivalByVanity(e){return i(this,null,function*(){let n=(yield this.do("GET","data/festivals.json")).data.find(r=>r.name==e);if(!n)throw new Error(`Festival ${e} not found`);return n.vanity=e,n.name=n.title,n.start_time=n.start,n.end_time=n.end,n.gpsLat=n.lat,n.gpsLng=n.lng,n})}isAdmin(e){return this.getAccessInfo(e).hasAdmin}isCampOwner(e,t){return this.getAccessInfo(e).camps.includes(t)}isArtOwner(e,t){return t?this.getAccessInfo(e).art.includes(t):!1}isEventOwner(e){return i(this,null,function*(){return e?!!(yield this.get(`events/${e}`,{cached:!1})):!1})}setFestivalByVanity(e,t=!1){return i(this,null,function*(){let n=!this.festivalId;if(this.vanity()==e&&!t&&!n)return;let r=yield this.getFestivalByVanity(e);if(!r)throw new Error(`Festival ${e} not found`);this.setFestival(r)})}sendPushMessage(e){return i(this,null,function*(){return yield this.post("messages",e)})}getMessageHistory(){return i(this,null,function*(){return(yield this.get("message-history",{cached:!1})).data})}setMessageHistory(e){return i(this,null,function*(){return(yield this.post("message-history",e)).data})}processMessageQueue(){return i(this,null,function*(){return yield this.get("messages")})}getPushInformation(){return i(this,null,function*(){return yield this.get("pushtokens")})}festivalTitle(){return this.store.get("festivalTitle")}festivalImage(){return this.store.get("festivalImage")}festivalTimeZone(){return this.store.get("festivalTimeZone")}addEvent(e){return i(this,null,function*(){return this.changesMade=!0,this.post("events",e)})}addMusic(e,t){return i(this,null,function*(){return e.occurrences=JSON.stringify(t),this.changesMade=!0,this.post("music",e)})}addLink(e){return i(this,null,function*(){return this.post("links",e)})}generateMap(e,t){return i(this,null,function*(){return yield this.post("map/create",{style:e,zoom:t})})}sendMessage(e,t,n,r){let a=this.messageStream();this.messageStream.set({id:a.id++,message:e,type:t!=null?t:0,title:n,url:r})}getCamp(e){return i(this,null,function*(){if(!e)return this.emptyCamp();let t=yield this.camp(e);return t||this.emptyCamp()})}getArt(e){return i(this,null,function*(){if(!e)return this.emptyArt();let t=yield this.artItem(e);return t||this.emptyArt()})}broadcast(e,t){return i(this,null,function*(){yield this.post("live",{festivalId:this.festivalId,lng:t.coords.longitude,lat:t.coords.latitude,id:e.id})})}emptyCamp(){return{name:"",description:"",pin:"",id:void 0,contact_email:"",camp_type:"",publicEvents:!1}}emptyArt(){return{name:"",description:"",pin:"",category:"Open Playa Art",id:void 0,contact_email:"",art_type:""}}addFestival(e){return i(this,null,function*(){return yield this.post("festivals",e)})}updateFestivalSettings(e){return i(this,null,function*(){return yield this.post("festivals/registration",e)})}getFestivals(e){return i(this,null,function*(){return(yield this.get(e?"festivals?details=false":"festivals")).data})}getFestival(e,t){return i(this,null,function*(){let n=e?yield this.festival(e,t):void 0;return n||{name:"",contact:"",vanity:"",admins:"",description:"",mastodon_handle:"",inbox_email:"",start_time:new Date().toISOString(),end_time:new Date().toISOString(),id:void 0,active:!1,timezone:this.currentTimeZone(),gpsLat:0,gpsLng:0,approved:!1,camp_registration:!1,event_registration:!1,music_registration:!1,event_editing:!1,camp_editing:!1,art_editing:!1,moderationType:0,max_event_types:2,max_music_types:2,map_direction:0,directions:void 0,pin:void 0,archived:!1,unknown_dates:!1,pin_size_multiplier:1,hidden_features:0,event_types:"",music_types:"",region:"",website:"",volunteeripate_domain:"",volunteeripate_identifier:"",placement_form_camps:"",placement_form_art:"",placement_form_cars:"",rss_feed:"",theme:null}})}currentTimeZone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}placeCamp(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post("place",{id:e,pt:t})})}saveCSS(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("css",{css:e})})}getCSS(){return i(this,null,function*(){return yield this.get("css",{cached:!1,asText:!0})})}placeArt(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post("place/art",{id:e,pt:t})})}placePins(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("pins",e)})}getPins(){return i(this,null,function*(){return(yield this.get("pins",{cached:!1})).data})}getTemplates(){return i(this,null,function*(){let t=(yield this.get("templates",{cached:!1})).data;if(t&&t.payload)try{return JSON.parse(t.payload)}catch(n){return console.error("Failed to parse template payload:",n),[]}return[]})}saveTemplates(e){return i(this,null,function*(){return yield this.post("templates",{payload:JSON.stringify(e)})})}newEvent(){return i(this,null,function*(){let e=yield this.defaultCamp();return{description:"",title:"",hosted_by_camp:e?e.id:void 0,occurrence_set:"[]",id:void 0,event_type:"Event"}})}newMusic(){return i(this,null,function*(){var n;let e=yield this.defaultCamp();return{title:"",id:void 0,campId:e?e.id:void 0,occurrences:"[]",camp:(n=e==null?void 0:e.name)!=null?n:"",location:"",day:""}})}getLink(e){return i(this,null,function*(){let t=yield this.links();for(let n of t)if(n.id==e)return n;return{title:"",id:void 0,url:""}})}camps(e,t){return i(this,null,function*(){let n="camps";return t&&(n+="?publicEvents=true"),(yield this.get(n,e)).data.sort((a,l)=>a.name.localeCompare(l.name))})}art(e){return i(this,null,function*(){return(yield this.get("art",e)).data.sort((n,r)=>n.name.localeCompare(r.name))})}music(){return i(this,null,function*(){return(yield this.get("music")).data})}getMusic(e){return i(this,null,function*(){return(yield this.get(`music/${e}`)).data})}getUnpublishedChanges(){return i(this,null,function*(){return(yield this.get("publish",{cached:!1})).data})}camp(e){return i(this,null,function*(){return(yield this.get(`camps/${e}`)).data})}artItem(e){return i(this,null,function*(){return(yield this.get(`art/${e}`)).data})}festival(e,t){return i(this,null,function*(){return(yield this.get(`festivals/${e}`,t)).data})}defaultCamp(){return i(this,null,function*(){return(yield this.get("camp")).data})}events(e){return i(this,null,function*(){return(yield this.get("events",e)).data})}getEvent(e){return i(this,null,function*(){return(yield this.get(`events/${e}`)).data})}getRedirect(e){return i(this,null,function*(){let t=yield this.post("redirect",{code:e});console.log("getRedirect",t);let n=t.message.split("+");if(n)return v(n[0])?void 0:(this.store.set("token",n[0]),n[1])})}links(){return i(this,null,function*(){return(yield this.get("links")).data})}signIn(e){return i(this,null,function*(){e=e.toLowerCase().trim();let t=I.getPlatform();return yield this.post("signin",{email:e,platform:t})})}deleteEvent(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("events",{id:e})})}clearCamps(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("camps/locations",{})})}clearData(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete(e?"everything":"all",{})})}clearEvents(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("all/events",{})})}clearArtLocations(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("art/locations",{})})}clearPinLocations(){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("pins/locations",{})})}deleteParty(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("music",{id:e})})}deleteLink(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("links",{id:e})})}verify(e){return i(this,null,function*(){let n=(yield this.post("verify",{code:e})).message;return n.length>0?(this.store.set("token",n),!0):!1})}publish(){return i(this,null,function*(){return yield this.post("publish",{})})}preview(){return i(this,null,function*(){return yield this.post("preview",{})})}setMap(e){return i(this,null,function*(){return yield this.post("map",{base64:e})})}setImage(e,t){return i(this,null,function*(){this.changesMade=!0;let n=yield fetch(this.url("images"),{method:"POST",headers:{"Content-Type":"text/plain","Festival-Id":this.festivalId?this.festivalId.toString():"","Image-Id":t.toString(),Authorization:this.bearer()},body:e}),r=yield n.text();if(n.status!==200)throw this.errorStream.set({status:n.status,text:"",url:this.url("images")}),new Error(r);return r})}getMap(){return i(this,null,function*(){return(yield this.get("map",{cached:!1})).data})}moderate(e){return i(this,null,function*(){return yield this.post("moderate",e)})}addCamp(e,t){return i(this,null,function*(){return this.changesMade=!0,yield this.post(t?"camps?import=true":"camps",e,!0)})}addArt(e){return i(this,null,function*(){return this.changesMade=!0,yield this.post("art",e)})}inviteCamp(e,t){return i(this,null,function*(){let n=t?w(P({},e),{email:t}):e;return yield this.post("camps/invite",n)})}approveCamp(e){return i(this,null,function*(){return yield this.post("camps/approve",e)})}inviteArt(e,t){return i(this,null,function*(){let n=t?w(P({},e),{email:t}):e;return yield this.post("art/invite",n)})}approveArt(e){return i(this,null,function*(){return yield this.post("art/approve",e)})}deleteCamp(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("camps",e)})}deleteArt(e){return i(this,null,function*(){return this.changesMade=!0,yield this.delete("art",e)})}handleNewItem(e,t){var r,a;let n=(a=e.id)!=null?a:(r=e.data)==null?void 0:r.id;return e&&n&&!t.id&&(t.id=n,t.revision_id=1),e}clearToken(){this.store.set("token",void 0),this.store.clear()}getAccessInfo(e){let t=F(this.store.get("token"));return t.festivals||(t.festivals=[]),t.camps||(t.camps=[]),t.music||(t.music=[]),t.art||(t.art=[]),t.events||(t.events=[]),t.approver=["damiantarnawsky@gmail.com","damian@dust.events"].includes(t.email),t.hasAdmin=!!(e&&t.festivals.includes(e))||t.approver,t.hasCamps=t.hasAdmin||t.camps.length>0,t.hasFestivals=t.hasAdmin||t.festivals.length>0,t.hasMusic=t.hasAdmin||t.hasCamps||t.music.length>0,t.hasArt=t.hasAdmin||t.art.length>0,t.isEventRegistrationOpen=!1,t.hasEvents=t.hasAdmin,t.events&&t.events.length>0&&(t.hasEvents=!0),t}signedIn(){let e=this.store.get("token");if(e&&e.length>0){let t=this.parseJwt(e);if(t.email){let n=x(t.email.split("@")[0]);return this.user.set(n),this.userEmail.set(t.email),!0}}return!1}setRedirection(e){this.store.set("redirectionUrl",e)}setKey(){return i(this,null,function*(){let e=sessionStorage.getItem("key");e&&(yield this.post("one-time-key",{key:e}),sessionStorage.removeItem("key"))})}getRedirectionUrl(){let e=this.store.get("redirectionUrl");return new URLSearchParams(window.location.search).get("redirect"),e}parseJwt(e){let n=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(window.atob(n).split("").map(function(a){return"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(r)}signOut(){this.store.set("token",void 0),this.store.clear()}bearer(){let e=this.store.get("token");return e?`bearer ${e}`:""}post(e,t,n){return i(this,null,function*(){return this.handleNewItem(yield this.do("POST",e,t,!1,n),t)})}delete(e,t){return i(this,null,function*(){return this.do("DELETE",e,t)})}apiResponse(e,t){return i(this,null,function*(){var d;this.lastRoleResponse=e.headers.get("Role");let n=e.headers.get("NewToken");n&&!v(n)&&(console.log("Token was refreshed"),this.store.set("token",n));let r,a="";if(t||((d=e.headers.get("content-type"))==null?void 0:d.includes("application/json")))try{let o=yield e.text();r=o?JSON.parse(o):[]}catch(o){console.error("Failed to parse JSON response:",o),r=[]}else a=yield e.text();return{message:a,id:M(e.headers.get("Id")),role:e.headers.get("Role"),data:r}})}do(e,t,n,r,a){return i(this,null,function*(){let l=!1,d=a||e=="GET"&&!r;try{let o=yield fetch(this.url(t),{method:e,headers:{"Content-Type":"application/json","Festival-Id":this.festivalId?this.festivalId.toString():"",Authorization:this.bearer()},body:JSON.stringify(n)});if(o.status!=200){l=!0;let g=o.headers.get("Message");this.handleError(e,t,g,o.status);let C=yield o.text();throw new Error(C)}return this.apiResponse(o,d)}catch(o){throw l||this.handleError(e,t,`${o}`),new Error("API Failure")}})}handleError(e,t,n,r){if(`${n}`.startsWith("Festival-Id was not set")&&(r=2,t="all",n="You need to select an event."),console.error(`[error][app] "${n}"`),`${n}`=="code is invalid")throw new Error("code is invalid");this.errorStream.set({status:r||500,text:`${n}`,url:r!=2?this.url(t):t}),this.isLocal()&&console.error(`${e} ${this.url(t)} failed. Did you start up the cloudflare worker?`)}clearCache(){this.cache={}}get(e,t){return i(this,null,function*(){if(!t||!t.cached)return yield this.do("GET",e,void 0,t==null?void 0:t.asText);if(!this.cache[e]){let n=yield this.do("GET",e);return this.cache[e]=JSON.parse(JSON.stringify(n.data)),n}return{message:"",data:this.cache[e]}})}};p.\u0275fac=function(t){return new(t||p)},p.\u0275prov=b({token:p,factory:p.\u0275fac,providedIn:"root"});var T=p;export{L as a,O as b,U as c,N as d,v as e,W as f,J as g,Z as h,z as i,V as j,B as k,M as l,j as m,H as n,Y as o,G as p,Q as q,K as r,q as s,X as t,ee as u,te as v,se as w,ne as x,f as y,ie as z,re as A,ae as B,oe as C,ce as D,le as E,ue as F,me as G,pe as H,de as I,y as J,T as K}; diff --git a/.admin-app/chunk-36OD2M2C.js b/.admin-app/chunk-THH75NDP.js similarity index 84% rename from .admin-app/chunk-36OD2M2C.js rename to .admin-app/chunk-THH75NDP.js index a8e56770..5177e9b2 100644 --- a/.admin-app/chunk-36OD2M2C.js +++ b/.admin-app/chunk-THH75NDP.js @@ -1 +1 @@ -import{a as T}from"./chunk-OIMHMYK4.js";import{a as h,ja as P}from"./chunk-LIWDDRYP.js";import{Aa as s,Ba as p,H as t,P as u,Ua as g,X as c,Y as m,ba as f,ca as r,da as n,ea as C,ec as b,fc as x,gc as I,ic as M,na as l,oa as v,pa as _}from"./chunk-FDEJMFAU.js";var O=["*"];function z(o,a){if(o&1&&(r(0,"ion-card-content"),s(1),n()),o&2){let e=l(2);t(),p(e.description)}}function D(o,a){if(o&1&&(r(0,"ion-card-header",2)(1,"ion-card-title"),s(2),n(),c(3,z,2,1,"ion-card-content"),n()),o&2){let e=l();t(2),p(e.title),t(),m(e.description!==""?3:-1)}}var i=class i{constructor(){this.url=g("");this.routeTo=g();P({add:h})}};i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=u({type:i,selectors:[["app-image-card"]],inputs:{title:"title",description:"description",url:[1,"url"],routeTo:[1,"routeTo"]},ngContentSelectors:O,decls:5,vars:2,consts:[[1,"img-back"],["width","10rem","height","10rem",3,"src"],[1,"dim"]],template:function(e,d){e&1&&(v(),r(0,"ion-card")(1,"div",0),C(2,"app-img",1),n(),c(3,D,4,2,"ion-card-header",2),_(4),n()),e&2&&(t(2),f("src",d.url()),t(),m(d.description||d.title?3:-1))},dependencies:[x,I,T,M,b],styles:["ion-card[_ngcontent-%COMP%]{cursor:default}@media (min-width: 640px){ion-card[_ngcontent-%COMP%]{padding:var(--spacing-lg)}}ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-subtitle[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-base)}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-lg);width:100px}.img-back[_ngcontent-%COMP%]{width:100%;padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--ion-color-light)}"]});var y=i;export{y as a}; +import{a as T}from"./chunk-RKW74V7I.js";import{a as h,oa as P}from"./chunk-QF32E4V4.js";import{Ba as s,Ca as p,H as t,P as u,Va as g,Y as c,Z as m,ca as f,da as r,ea as n,fa as C,fc as b,gc as x,hc as I,jc as M,oa as l,pa as v,qa as _}from"./chunk-LVL3PYF7.js";var O=["*"];function z(o,a){if(o&1&&(r(0,"ion-card-content"),s(1),n()),o&2){let e=l(2);t(),p(e.description)}}function D(o,a){if(o&1&&(r(0,"ion-card-header",2)(1,"ion-card-title"),s(2),n(),c(3,z,2,1,"ion-card-content"),n()),o&2){let e=l();t(2),p(e.title),t(),m(e.description!==""?3:-1)}}var i=class i{constructor(){this.url=g("");this.routeTo=g();P({add:h})}};i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=u({type:i,selectors:[["app-image-card"]],inputs:{title:"title",description:"description",url:[1,"url"],routeTo:[1,"routeTo"]},ngContentSelectors:O,decls:5,vars:2,consts:[[1,"img-back"],["width","10rem","height","10rem",3,"src"],[1,"dim"]],template:function(e,d){e&1&&(v(),r(0,"ion-card")(1,"div",0),C(2,"app-img",1),n(),c(3,D,4,2,"ion-card-header",2),_(4),n()),e&2&&(t(2),f("src",d.url()),t(),m(d.description||d.title?3:-1))},dependencies:[x,I,T,M,b],styles:["ion-card[_ngcontent-%COMP%]{cursor:default}@media (min-width: 640px){ion-card[_ngcontent-%COMP%]{padding:var(--spacing-lg)}}ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-medium)!important}ion-card-subtitle[_ngcontent-%COMP%]{font-size:var(--font-size-base)}ion-card-content[_ngcontent-%COMP%]{font-size:var(--font-size-base)}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-lg);width:100px}.img-back[_ngcontent-%COMP%]{width:100%;padding-bottom:var(--spacing-lg);border-bottom:2px solid var(--ion-color-light)}"]});var y=i;export{y as a}; diff --git a/.admin-app/chunk-U3YCGDGQ.js b/.admin-app/chunk-U3YCGDGQ.js new file mode 100644 index 00000000..a6d8a3ee --- /dev/null +++ b/.admin-app/chunk-U3YCGDGQ.js @@ -0,0 +1 @@ +import{$a as d,Ba as c,Ca as g,H as n,P as r,Va as e,ca as p,da as m,ea as i,eb as f,pa as s,qa as l}from"./chunk-LVL3PYF7.js";var C=["*"],t=class t{constructor(){this.text=e("");this.position=e("")}};t.\u0275fac=function(o){return new(o||t)},t.\u0275cmp=r({type:t,selectors:[["app-tooltip"]],inputs:{text:[1,"text"],position:[1,"position"]},ngContentSelectors:C,decls:4,vars:2,consts:[[1,"tooltip"],[1,"tooltip-text",3,"ngClass"]],template:function(o,a){o&1&&(s(),m(0,"div",0)(1,"span",1),c(2),i(),l(3),i()),o&2&&(n(),p("ngClass",a.position()),n(),g(a.text()))},dependencies:[f,d],styles:[".tooltip[_ngcontent-%COMP%]{position:relative;display:inline-block}.tooltip[_ngcontent-%COMP%] .tooltip-text[_ngcontent-%COMP%]{visibility:hidden;font-size:12px!important;width:13rem;background-color:#000000e6;color:#fff;text-align:center;border-radius:var(--br-md);padding:var(--spacing-base);position:absolute;z-index:1;bottom:100%;left:50%;margin-left:calc(-1 * var(--spacing-4xl));opacity:0;transition:opacity .5s}.right[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-5xl))!important}.left[_ngcontent-%COMP%]{width:30rem!important;margin-left:var(--spacing-lg)!important;bottom:0%!important}.bottom[_ngcontent-%COMP%]{width:13rem!important;margin-left:var(--spacing-lg)!important;bottom:0%!important}.aside[_ngcontent-%COMP%]{margin-left:var(--spacing-3xl)!important;bottom:1.4rem!important}.left-aside[_ngcontent-%COMP%]{right:calc(100% + .5rem)!important;left:auto!important;bottom:50%!important;margin-left:0!important;transform:translateY(50%);white-space:nowrap}.right-aside[_ngcontent-%COMP%]{left:calc(100% + .5rem)!important;right:auto!important;bottom:50%!important;margin-left:0!important;width:20rem!important;transform:translateY(50%);white-space:nowrap}.tooltip[_ngcontent-%COMP%]:hover .tooltip-text[_ngcontent-%COMP%]{visibility:visible;opacity:1}"]});var b=t;export{b as a}; diff --git a/.admin-app/chunk-UDWQF54V.js b/.admin-app/chunk-UDWQF54V.js new file mode 100644 index 00000000..1112185d --- /dev/null +++ b/.admin-app/chunk-UDWQF54V.js @@ -0,0 +1 @@ +import{a as z}from"./chunk-3OSW3EO7.js";import{a as _}from"./chunk-U3YCGDGQ.js";import{J as w,oa as P}from"./chunk-QF32E4V4.js";import{Ba as h,Ca as y,D as u,Ec as N,H as a,Oc as S,P as c,Sa as D,Va as o,X as v,Y as C,Z as x,ca as s,da as n,ea as d,fa as p,fc as T,gc as I,oa as M,p as f,pa as b,qa as l}from"./chunk-LVL3PYF7.js";var E=[[["","logo",""]],"*"],H=["[logo]","*"],i=class i{constructor(){this.title=o("");this.description=o("")}};i.\u0275fac=function(e){return new(e||i)},i.\u0275cmp=c({type:i,selectors:[["app-card"]],inputs:{title:[1,"title"],description:[1,"description"]},ngContentSelectors:H,decls:7,vars:2,consts:[[1,"ion-padding"],[3,"innerHTML"]],template:function(e,t){e&1&&(b(E),n(0,"ion-card",0),l(1),n(2,"h2"),h(3),d(),p(4,"ion-text",1),n(5,"ion-card-content"),l(6,1),d()()),e&2&&(a(3),y(t.title()),a(),s("innerHTML",t.description(),u))},dependencies:[N,I,T],styles:["ion-card[_ngcontent-%COMP%]{max-width:90vw;margin-left:auto;margin-right:auto}@media (min-width: 801px){ion-card[_ngcontent-%COMP%]{max-width:30rem}}h2[_ngcontent-%COMP%]{font-size:var(--font-size-medium)}ion-text[_ngcontent-%COMP%]{font-size:var(--font-size-base);line-height:1.5}"]});var j=i;function L(g,m){if(g&1&&(n(0,"app-tooltip",0)(1,"div",1),p(2,"ion-icon",2),d()()),g&2){let e=M();s("text",e.moderationText()),a(2),v("aria-label",e.moderationText())}}var r=class r{constructor(){this.moderationService=f(z);this.moderation=o(void 0);this.isAdmin=o(!1);this.moderationText=D(()=>this.moderationService.getModerationText(this.moderation()));P({flag:w})}};r.\u0275fac=function(e){return new(e||r)},r.\u0275cmp=c({type:r,selectors:[["app-moderation-flag"]],inputs:{moderation:[1,"moderation"],isAdmin:[1,"isAdmin"]},decls:1,vars:1,consts:[["position","bottom",3,"text"],[1,"alert"],["size","small","name","flag","color","light","role","img"]],template:function(e,t){e&1&&C(0,L,3,2,"app-tooltip",0),e&2&&x(t.isAdmin()&&t.moderation()&&t.moderation()!==0?0:-1)},dependencies:[S,_],styles:[".alert[_ngcontent-%COMP%]{background-color:var(--ion-color-danger);border-radius:20px;width:32px;height:32px;display:flex;justify-content:center;align-items:center;margin-right:.25rem}"]});var A=r;export{j as a,A as b}; diff --git a/.admin-app/chunk-USPTQ7WY.js b/.admin-app/chunk-USPTQ7WY.js deleted file mode 100644 index 56353ffd..00000000 --- a/.admin-app/chunk-USPTQ7WY.js +++ /dev/null @@ -1 +0,0 @@ -import{a as z}from"./chunk-GPVDUW6Q.js";import{a as ye}from"./chunk-5B2MUMUK.js";import{a as F}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{K as L,g as he}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as Q,Aa as r,Ba as S,Bb as ee,C as R,Ca as $,Cc as de,Da as T,Db as te,Dc as me,Ec as ge,Fa as j,Fc as pe,Ga as A,H as l,Ha as O,Nc as ue,P as I,Ra as H,Sa as G,Tc as fe,Ua as P,Wb as ie,X as x,Y as M,Za as J,aa as U,ba as _,ca as o,cc as k,da as s,db as K,dc as ne,ea as y,ec as E,fc as D,gb as X,gc as oe,ic as se,ja as w,la as h,lc as ae,na as c,p as u,rc as re,s as g,sc as V,t as p,tb as Y,uc as le,vc as N,w as f,wb as Z,xc as ce}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as m}from"./chunk-LNJ3S2LQ.js";var ve=(a,t)=>t.date;function xe(a,t){a&1&&(o(0,"ion-card")(1,"ion-card-content",3),y(2,"ion-spinner",4),o(3,"ion-text")(4,"p"),r(5,"Loading message history..."),s()()()())}function Me(a,t){if(a&1){let e=w();o(0,"ion-card",1)(1,"ion-card-content",5)(2,"ion-text")(3,"h3"),r(4,"Error Loading History"),s(),o(5,"p"),r(6),s()(),o(7,"ion-button",6),h("click",function(){g(e);let i=c(2);return p(i.loadHistory())}),r(8," Retry "),s()()()}if(a&2){let e=c(2);l(6),S(e.error())}}function we(a,t){a&1&&(o(0,"ion-card")(1,"ion-card-content",7)(2,"ion-text")(3,"h3"),r(4,"No Message History"),s(),o(5,"p"),r(6," No messages have been sent yet. Once you send your first message, it will appear here for future reference. "),s()()()())}function Ie(a,t){if(a&1){let e=w();o(0,"ion-item")(1,"ion-label")(2,"p"),r(3),s(),o(4,"b"),r(5),s(),y(6,"br"),o(7,"p"),r(8),s()(),o(9,"ion-note")(10,"ion-button",8),h("click",function(){let i=g(e).$implicit,d=c(3);return p(d.recall(i))}),r(11,"Recall"),s()()()}if(a&2){let e=t.$implicit,n=c(3);l(3),T("",n.formatDate(e.date)," from ",e.from.name),l(2),S(e.subject),l(3),S(e.html)}}function Se(a,t){if(a&1&&(o(0,"div",2)(1,"ion-card")(2,"ion-card-header")(3,"ion-card-title"),r(4,"Message History"),s()(),o(5,"ion-card-content")(6,"ion-list"),Q(7,Ie,12,4,"ion-item",null,ve),s()()()()),a&2){let e=c(2);l(7),U(e.sortedMessages())}}function Te(a,t){if(a&1&&(o(0,"div",0),x(1,xe,6,0,"ion-card")(2,Me,9,1,"ion-card",1)(3,we,7,0,"ion-card")(4,Se,9,0,"div",2),s()),a&2){let e=c();l(),M(e.loading()?1:e.error()?2:e.isEmpty()?3:4)}}var C=class C{constructor(){this.visible=P(!1);this.messages=f([]);this.loading=f(!1);this.error=f(null);this.hasMessages=H(()=>this.messages().length>0);this.isEmpty=H(()=>!this.loading()&&this.messages().length===0);this.sortedMessages=H(()=>[...this.messages()].sort((t,e)=>new Date(e.date).getTime()-new Date(t.date).getTime()));this.api=u(L);this.sanitizer=u(X);this.alertController=u(z);G(()=>{this.visible()&&(console.log("Message history component became visible, loading history..."),this.loadHistory())})}loadHistory(){return m(this,null,function*(){try{this.loading.set(!0),this.error.set(null),console.log("Loading message history...");let t=yield this.api.getMessageHistory();console.log("Message history loaded:",t.length,"items"),this.messages.set(t)}catch(t){console.error("Failed to load message history:",t);let e="Unable to load message history. Please try again.";if(t instanceof Error){let n=t.message.toLowerCase();n.includes("network")||n.includes("fetch")?e="Unable to load message history. Check your connection.":n.includes("unauthorized")||n.includes("authentication")?e="Authentication required. Please log in again.":n.includes("server")||n.includes("500")?e="Server error occurred. Please try again later.":(n.includes("invalid")||n.includes("parse"))&&(e="Invalid message data received. Please contact support.")}this.error.set(e)}finally{this.loading.set(!1)}})}formatDate(t){try{return new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}recall(t){return m(this,null,function*(){(yield F(this.alertController,"This message will only be recalled from displaying in the messages tab of the dust app. Notifications for the message already went out.","Recall"))&&(yield this.performRecall(t))})}performRecall(t){return m(this,null,function*(){try{let n=(yield this.api.getMessageHistory()).filter(i=>!(i.subject===t.subject&&i.date===t.date&&i.from.name===t.from.name));yield this.api.setMessageHistory(n),this.messages.set(n),console.log("Message recalled successfully:",t.subject)}catch(e){console.error("Failed to recall message:",e),this.error.set("Failed to recall message. Please try again.")}})}sanitizeHtml(t){let e=this.sanitizer.sanitize(R.HTML,t)||"";return this.sanitizer.bypassSecurityTrustHtml(e)}};C.\u0275fac=function(e){return new(e||C)},C.\u0275cmp=I({type:C,selectors:[["app-message-history"]],inputs:{visible:[1,"visible"]},decls:1,vars:1,consts:[[1,"message-history-container"],["color","danger"],[1,"messages-list"],[1,"loading-content"],["name","crescent"],[1,"error-content"],["fill","outline",3,"click"],[1,"empty-content"],["color","secondary",3,"click"]],template:function(e,n){e&1&&x(0,Te,5,1,"div",0),e&2&&M(n.visible()?0:-1)},dependencies:[ce,le,V,N,K,E,D,oe,se,de,me,k],styles:["ion-note[_ngcontent-%COMP%]{margin-top:2rem}"]});var B=C;function He(a,t){if(a&1){let e=w();o(0,"div",6)(1,"ion-card",8)(2,"ion-card-content",8)(3,"ion-list",9)(4,"ion-item")(5,"ion-input",10),O("ngModelChange",function(i){g(e);let d=c();return A(d.message.title,i)||(d.message.title=i),p(i)}),s()(),o(6,"ion-item")(7,"ion-textarea",11),O("ngModelChange",function(i){g(e);let d=c();return A(d.message.description,i)||(d.message.description=i),p(i)}),s()()(),o(8,"div",12),h("click",function(){g(e);let i=c();return p(i.processQueue())}),r(9),s(),o(10,"div",13)(11,"ion-button",14),h("click",function(){g(e);let i=c();return p(i.toggleHistory())}),r(12),s(),o(13,"ion-button",15),h("click",function(){g(e);let i=c();return p(i.send())}),r(14,"Send"),s()()()(),y(15,"app-message-history",16),s()}if(a&2){let e=c();l(5),j("ngModel",e.message.title),l(2),_("counterFormatter",e.customCounterFormatter)("spellcheck",!0)("rows",6)("maxlength",178)("autoGrow",!0),j("ngModel",e.message.description),l(2),T(" This will send a notification to ",e.pushInformation.deviceCount," users who have accepted receiving notifications for ",e.festivalTitle," in the dust app. "),l(3),$(" ",e.historyVisible()?"Hide History":"History"," "),l(),_("disabled",e.busy()),l(2),_("visible",e.historyVisible())}}function Pe(a,t){if(a&1&&y(0,"app-spinner",7),a&2){let e=c();_("title",e.spinnerTitle())}}var b=class b{constructor(){this.message={title:"",description:""};this.pushInformation={deviceCount:0};this.festivalTitle="";this.busy=f(!1);this.spinnerTitle=f("Sending message...");this.historyVisible=f(!1);this.vanity=P();this.api=u(L);this.location=u(J);this.alert=u(z)}ngOnInit(){return m(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity(),!0),this.festivalTitle=this.api.festivalTitle()})}ionViewWillEnter(){return m(this,null,function*(){let t=yield this.api.getPushInformation();this.pushInformation=t.data})}customCounterFormatter(t,e){return`${e-t} characters remaining`}toggleHistory(){let t=!this.historyVisible();console.log("Toggling message history visibility from",this.historyVisible(),"to",t),this.historyVisible.set(t)}send(){return m(this,null,function*(){var t,e;try{if(this.message.title.length==0){this.api.sendMessage("Title is required");return}if(this.message.description.length==0){this.api.sendMessage("Description is required");return}if(!(yield F(this.alert,`Send message "${this.message.title}" to ${this.pushInformation.deviceCount} users ?`,"Send")))return;this.busy.set(!0),yield this.api.sendPushMessage({title:this.message.title,description:this.message.description});let i=this.pushInformation.deviceCount,d=!0,W=!0,q=0;for(;W;)try{q++,this.spinnerTitle.set(`Sending messages (${i} remaining)...`);let v=yield this.api.processMessageQueue();console.log("Message batch processed:",v.data),i=((t=v.data)==null?void 0:t.remainingTokens)||0,i>0&&(yield he(500)),(((e=v.data)==null?void 0:e.totalAttempted)==0||i==0)&&(W=!1),q>500&&(W=!1)}catch(v){console.error("Error processing message queue:",v),this.api.sendMessage("Error processing message queue. Please try again later."),d=!1;break}this.location.back(),d&&this.api.sendMessage("Message Sent")}finally{this.busy.set(!1)}})}processQueue(){return m(this,null,function*(){let t=yield this.api.processMessageQueue();console.log("Message batch processed:",t.data)})}};b.\u0275fac=function(e){return new(e||b)},b.\u0275cmp=I({type:b,selectors:[["app-message"]],inputs:{vanity:[1,"vanity"]},decls:12,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[3,"title"],[1,"form"],["lines","none"],["label","Title","labelPlacement","stacked","placeholder","Title of the message",3,"ngModelChange","ngModel"],["labelPlacement","stacked","label","Description","placeholder","Description of the message",3,"ngModelChange","counterFormatter","spellcheck","rows","maxlength","autoGrow","ngModel"],[1,"padded",3,"click"],[1,"center"],["color","secondary",3,"click"],[3,"click","disabled"],[3,"visible"]],template:function(e,n){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),y(3,"ion-back-button"),s(),o(4,"ion-title",2),r(5,"Notify"),s(),o(6,"ion-buttons",3)(7,"ion-button",4),h("click",function(){return n.send()}),r(8," Send "),s()()()(),o(9,"ion-content",5),x(10,He,16,12,"div",6)(11,Pe,1,1,"app-spinner",7),s()),e&2&&(l(9),_("fullscreen",!0),l(),M(n.busy()?11:10))},dependencies:[V,N,D,E,k,ie,ue,ne,ae,re,fe,ge,pe,te,Y,ee,Z,ye,B],styles:[".padded[_ngcontent-%COMP%]{padding-left:25%;padding-right:25%;text-align:center}"]});var _e=b;export{_e as MessagePage}; diff --git a/.admin-app/chunk-V6XBM4R7.js b/.admin-app/chunk-V6XBM4R7.js deleted file mode 100644 index 9d6bf855..00000000 --- a/.admin-app/chunk-V6XBM4R7.js +++ /dev/null @@ -1,2 +0,0 @@ -import{b as te,c as ie,d as ne,e as oe,f as ae,g as le}from"./chunk-WHEYUZEY.js";import{a as X}from"./chunk-KCPLCCSF.js";import{c as Z}from"./chunk-OZ2IKH4J.js";import{M as Y,ja as ee}from"./chunk-LIWDDRYP.js";import{K}from"./chunk-OQVFSD37.js";import{$ as w,Aa as y,Ba as U,Bc as Q,Ca as q,Da as O,Db as A,H as l,Ic as j,J as E,Kc as B,Nc as G,P as V,Sc as W,Ta as H,Tc as J,Ua as I,X as d,Y as c,_ as M,aa as S,ba as g,ca as u,da as _,fa as P,ga as $,ja as f,la as F,ma as L,na as o,p as T,ra as k,s as p,sa as N,sc as z,t as m,ta as R,w as v}from"./chunk-FDEJMFAU.js";import{h}from"./chunk-LNJ3S2LQ.js";var pe=["fileUpload"],C=class C{constructor(){this.upload=new E}click(){this.fileUpload.nativeElement.click()}onFileSelected(i){return h(this,null,function*(){let e=i.target.files[0];if(!e)return;let t=yield X(e,{quality:85,width:400}),a=URL.createObjectURL(t);this.upload.emit({blob:t,url:a})})}};C.\u0275fac=function(e){return new(e||C)},C.\u0275cmp=V({type:C,selectors:[["app-upload"]],viewQuery:function(e,t){if(e&1&&k(pe,5),e&2){let a;N(a=R())&&(t.fileUpload=a.first)}},outputs:{upload:"upload"},decls:2,vars:0,consts:[["fileUpload",""],["type","file",1,"is-hidden",3,"change"]],template:function(e,t){if(e&1){let a=f();P(0,"input",1,0),L("change",function(r){return p(a),m(t.onFileSelected(r))}),$()}},styles:[".is-hidden[_ngcontent-%COMP%]{display:none}"]});var re=C;var me=(n,i)=>i.name;function ue(n,i){var e;if(n&1){let t=f();u(0,"ion-item")(1,"ion-input",3),F("ionChange",function(s){var D;p(t);let r=o(2).$implicit,b=o(2);return m(b.updateFieldValue(r.name,(D=s.detail.value)!=null?D:""))}),_()()}if(n&2){let t=o(2).$implicit,a=o(2);l(),g("helperText",a.getScopeMessage(t))("label",t.name+(a.isFieldRequired(t)?" *":""))("value",a.getFieldValue(t.name))("maxlength",a.getMaxLength(t))("appHoverTooltip",(e=t.helperText)!=null?e:"")("placeholder",t.helperText)}}function _e(n,i){if(n&1){let e=f();u(0,"ion-item")(1,"ion-textarea",4),F("ionChange",function(a){var b;p(e);let s=o(2).$implicit,r=o(2);return m(r.updateFieldValue(s.name,(b=a.detail.value)!=null?b:""))}),_()()}if(n&2){let e=o(2).$implicit,t=o(2);l(),g("label",e.name+(t.isFieldRequired(e)?" *":""))("value",t.getFieldValue(e.name))("rows",t.getTextAreaRows(e))("maxlength",t.getMaxLength(e))("placeholder",e.helperText)("appHoverTooltip",t.getScopeMessage(e))("autoGrow",!0)}}function fe(n,i){if(n&1){let e=f();u(0,"ion-item",0)(1,"ion-checkbox",5),F("ionChange",function(a){p(e);let s=o(2).$implicit,r=o(2);return m(r.updateFieldValue(s.name,a.detail.checked))}),y(2),_()()}if(n&2){let e=o(2).$implicit,t=o(2);l(),g("checked",t.getFieldValue(e.name)===!0)("appHoverTooltip",t.getScopeMessage(e)),l(),O("",e.name,"",t.isFieldRequired(e)?" *":"")}}function ge(n,i){if(n&1&&(u(0,"ion-select-option",7),y(1),_()),n&2){let e=i.$implicit;g("value",e),l(),U(e)}}function Ce(n,i){if(n&1){let e=f();u(0,"ion-item",1)(1,"ion-select",6),F("ionChange",function(a){p(e);let s=o(2).$implicit,r=o(2);return m(r.updateFieldValue(s.name,a.detail.value))}),w(2,ge,2,2,"ion-select-option",7,M),_()()}if(n&2){let e=o(2).$implicit,t=o(2);l(),g("label",e.name+(t.isFieldRequired(e)?" *":""))("value",t.getFieldValue(e.name))("placeholder","Select an option")("appHoverTooltip",t.getScopeMessage(e)),l(),S(e.values)}}function xe(n,i){if(n&1&&(u(0,"div",2),y(1),_()),n&2){let e=o(2).$implicit,t=o(2);l(),q(" ",t.getFieldError(e.name),` -`)}}function he(n,i){var e;if(n&1&&(d(0,ue,2,6,"ion-item"),d(1,_e,2,7,"ion-item"),d(2,fe,3,4,"ion-item",0),d(3,Ce,4,4,"ion-item",1),d(4,xe,2,1,"div",2)),n&2){let t=o().$implicit,a=o(2);c(t.type==="string"&&t.maxLines===1?0:-1),l(),c(t.type==="string"&&((e=t.maxLines)!=null?e:1)>1?1:-1),l(),c(t.type==="boolean"?2:-1),l(),c(t.type==="values"?3:-1),l(),c(a.getFieldError(t.name)?4:-1)}}function ve(n,i){if(n&1&&d(0,he,5,5),n&2){let e=o(2);c(e.isFieldVisible()?0:-1)}}function Fe(n,i){if(n&1&&w(0,ve,1,1,null,null,me),n&2){let e=o();S(e.schema())}}var x=class x{constructor(){this.schemaType=I.required();this.entityId=I.required();this.currentData=I(null);this.dataSaved=H();this.api=T(K);this.alert=T(j);this.schema=v([]);this.fieldValues=v([]);this.validationErrors=v([]);this.isLoading=v(!1);ee({informationCircle:Y})}ngOnInit(){this.loadSchema()}loadSchema(){return h(this,null,function*(){this.isLoading.set(!0);try{let i=this.schemaType()==="camps"?yield this.api.getCampSchema():yield this.api.getArtSchema();if(i.data&&Array.isArray(i.data)){this.schema.set(i.data);let e=this.currentData()||ie(null),t=ae(i.data,e);this.fieldValues.set(t)}else this.schema.set([]),this.fieldValues.set([])}catch(i){console.error("Failed to load schema:",i),this.schema.set([]),this.fieldValues.set([])}finally{this.isLoading.set(!1)}})}validate(){let i=te(this.fieldValues(),this.schema());return this.validationErrors.set(i),i.length===0}save(){return h(this,null,function*(){if(!this.validate())return!1;try{let i=this.fieldValues();return this.dataSaved.emit(i),!0}catch(i){return console.error("Failed to save field values:",i),yield Z(this.alert,`Failed to save field values: ${i}`,"Error"),!1}})}updateFieldValue(i,e){let t=oe(this.fieldValues(),i,e);this.fieldValues.set(t);let s=this.validationErrors().filter(r=>r.fieldName!==i);this.validationErrors.set(s)}getFieldError(i){let e=this.validationErrors().find(t=>t.fieldName===i);return e?e.message:null}getScopeMessage(i){var e;return`${(e=i.helperText)!=null?e:""} (${ne(i.scope,i.name)})`}getFieldValue(i){let e=this.fieldValues().find(t=>t.name===i);return e?e.value:null}isFieldVisible(){return!0}getTextAreaRows(i){return i.maxLines||1}isFieldRequired(i){return i.required}getMaxLength(i){return i.maxLength||1e3}};x.\u0275fac=function(e){return new(e||x)},x.\u0275cmp=V({type:x,selectors:[["app-internal-fields"]],inputs:{schemaType:[1,"schemaType"],entityId:[1,"entityId"],currentData:[1,"currentData"]},outputs:{dataSaved:"dataSaved"},decls:1,vars:1,consts:[[1,"ion-padding-start"],["lines","none",1,"app-select"],[1,"error-message"],["labelPlacement","stacked",3,"ionChange","helperText","label","value","maxlength","appHoverTooltip","placeholder"],["labelPlacement","stacked",3,"ionChange","label","value","rows","maxlength","placeholder","appHoverTooltip","autoGrow"],["justify","start","labelPlacement","end",3,"ionChange","checked","appHoverTooltip"],["labelPlacement","stacked","interface","popover",1,"app-select",3,"ionChange","label","value","placeholder","appHoverTooltip"],[3,"value"]],template:function(e,t){e&1&&d(0,Fe,2,0),e&2&&c(t.schema().length>0?0:-1)},dependencies:[A,le,z,G,J,B,W,Q],styles:[".field-container[_ngcontent-%COMP%]{position:relative;margin-bottom:0}.helper-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-step-500, #808080);padding:var(--spacing-base) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);margin-top:-var(--spacing-base);line-height:1.4}.error-message[_ngcontent-%COMP%]{color:var(--ion-color-danger, #eb445a);font-size:var(--font-size-xl);padding:var(--spacing-base) var(--spacing-lg);margin-top:var(--spacing-sm)}"]});var se=x;export{re as a,se as b}; diff --git a/.admin-app/chunk-ZOMJNEQB.js b/.admin-app/chunk-VHFY6VLP.js similarity index 92% rename from .admin-app/chunk-ZOMJNEQB.js rename to .admin-app/chunk-VHFY6VLP.js index deffa176..2a12c22a 100644 --- a/.admin-app/chunk-ZOMJNEQB.js +++ b/.admin-app/chunk-VHFY6VLP.js @@ -1 +1 @@ -import{a as se}from"./chunk-BWGKDW4H.js";import"./chunk-OIMHMYK4.js";import"./chunk-WRLAXAJB.js";import{a as ae}from"./chunk-5B2MUMUK.js";import"./chunk-DUKSTT3K.js";import{d as ie,f as ne,ja as re,t as oe}from"./chunk-LIWDDRYP.js";import{K as te,e as $,g as k}from"./chunk-OQVFSD37.js";import{a as ee}from"./chunk-PFLI22GG.js";import{Aa as g,Ba as S,Ca as w,Cb as D,Db as F,Ec as J,Fa as M,Fc as K,Ga as A,H as r,Ha as V,Ic as Y,Mc as G,Nc as X,P as R,Ra as E,Sa as O,X as d,Y as m,ba as x,ca as a,cc as B,da as s,dc as W,ea as c,ec as L,fc as Q,ja as y,jb as U,la as _,lc as j,na as l,p as C,ra as b,rc as q,s as u,sa as I,sc as H,t as p,ta as T,tb as N,vc as Z,w as P,wb as z}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as f}from"./chunk-LNJ3S2LQ.js";var ce=["iEmail"],de=["iCode"];function me(o,t){if(o&1){let e=y();a(0,"ion-buttons",3)(1,"ion-button",13),_("click",function(){u(e);let i=l();return p(i.clear())}),c(2,"ion-icon",14),s()()}}function ue(o,t){if(o&1){let e=y();a(0,"ion-button",13),_("click",function(){u(e);let i=l();return p(i.close())}),c(1,"ion-icon",15),s()}}function pe(o,t){o&1&&c(0,"app-spinner")}function ge(o,t){if(o&1&&(c(0,"img",16),a(1,"div",17)(2,"h1"),g(3),s()()),o&2){let e=l();r(3),S(e.title())}}function fe(o,t){if(o&1&&(c(0,"app-festival-header",18),a(1,"p",8),g(2),s()),o&2){let e=l();x("festival",e.festival),r(2),w(" Sign in using your email address to register or manage camps, art and events of ",e.festival==null?null:e.festival.name," ")}}function _e(o,t){if(o&1&&(a(0,"div",8)(1,"p"),g(2),s()()),o&2){let e=l();r(2),S(e.redirectMessage())}}function he(o,t){if(o&1){let e=y();a(0,"ion-item")(1,"ion-input",19,0),_("keyup.enter",function(){u(e);let i=l();return p(i.next())}),V("ngModelChange",function(i){u(e);let v=l();return A(v.email,i)||(v.email=i),p(i)}),s()(),a(3,"p",20),g(4,"You will be emailed a verification code."),s()}if(o&2){let e=l();r(),M("ngModel",e.email)}}function ve(o,t){if(o&1){let e=y();a(0,"ion-item")(1,"ion-input",21,1),_("keyup.enter",function(){u(e);let i=l();return p(i.next())})("ionInput",function(){u(e);let i=l();return p(i.changed())}),V("ngModelChange",function(i){u(e);let v=l();return A(v.code,i)||(v.code=i),p(i)}),s()(),a(3,"p",20),g(4),s()}if(o&2){let e=l();r(),M("ngModel",e.code),r(3),w(" Enter the verification code that was emailed to ",e.email,". ")}}function ye(o,t){o&1&&c(0,"ion-icon",12)}function Ce(o,t){o&1&&(a(0,"div",22)(1,"p"),g(2,"Just want to download the app?"),s()(),a(3,"div",23)(4,"a",24),c(5,"img",25),s(),a(6,"a",26),c(7,"img",27),s()())}var h=class h{constructor(){this.api=C(te);this.router=C(U);this.email="";this.code="";this.vanity=P("");this.busy=!1;this.redirecting=P(!1);this.redirectType="none";this.emailPage=!0;this.isNative=ee.isNativePlatform();this.alert=C(Y);this.title=E(()=>{if(this.redirecting())switch(this.redirectType){case"camp":return"Register a camp";case"event":return"Register an event";default:return"Sign In"}return"Sign In"});this.redirectMessage=E(()=>{if(this.redirecting())switch(this.redirectType){case"camp":return"To register a camp we first need an email address.";case"event":return"To register a event we first need an email address.";default:return""}return""});re({arrowBack:ie,close:oe,arrowForwardOutline:ne}),O(()=>{let t=this.api.openedUrl();if(t=="")return;let e=new URL(t),i=new URLSearchParams(e.search).get("code");(i==null?void 0:i.length)==6&&this.signIn(i)})}ionViewWillEnter(){return f(this,null,function*(){var e;this.vanity.set((e=sessionStorage.sendVanity)!=null?e:""),this.vanity()!==""&&(this.festival=yield this.api.getUnAuthedFestivalByVanity(this.vanity()));let t=this.api.getRedirectionUrl();this.redirectType="none",t&&t.includes("/camps")&&(this.redirectType="camp"),t&&t.includes("/events")&&(this.redirectType="event"),this.redirecting.set(!!t&&t!==""),setTimeout(()=>{this.iUsername.setFocus()},500)})}close(){return f(this,null,function*(){document.location.href="index.html"})}next(){return f(this,null,function*(){if(this.emailPage){if(!this.validateEmail(this.email)){this.presentAlert("The email address is invalid");return}try{this.busy=!0,yield this.api.signIn(this.email),this.emailPage=!1,setTimeout(()=>{this.iCode.setFocus()},500)}finally{this.busy=!1}}else{let t=this.code.toString().padStart(6,"0");if(!this.code||t.length!==6){this.presentAlert("The verification code is incorrect");return}this.signIn(t)}})}signIn(t){return f(this,null,function*(){try{this.busy=!0,yield k(1e3),yield this.api.verify(t),yield k(1e3),this.emailPage=!0,this.code="",this.email="";let e=this.api.getRedirectionUrl();if(this.api.clearCache(),!e||e==""){let n=sessionStorage.sendVanity,i="/all";$(n)||(i=`/${n}`,console.log("sendVanity",i)),this.router.navigateByUrl(i,{replaceUrl:!0})}else{if(e=="none"){this.api.setRedirection("");return}console.log(`Redirect to ${e}`),this.api.setRedirection("none"),this.router.navigateByUrl(e,{replaceUrl:!0})}}finally{this.busy=!1}})}changed(){setTimeout(()=>{let t=`${this.code}`;t.length==6&&this.signIn(t)},500)}presentAlert(t){return f(this,null,function*(){yield(yield this.alert.create({header:"Message",message:t,buttons:["OK"]})).present()})}clear(){this.code="",this.emailPage=!0}validateEmail(t){return!!String(t).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|.(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=R({type:h,selectors:[["app-auth"]],viewQuery:function(e,n){if(e&1&&(b(ce,5),b(de,5)),e&2){let i;I(i=T())&&(n.iUsername=i.first),I(i=T())&&(n.iCode=i.first)}},decls:23,vars:11,consts:[["iEmail",""],["iCode",""],[1,"ion-no-border"],["slot","start"],["slot","end"],[3,"fullscreen"],[1,"border"],[1,"ion-text-center"],[1,"ion-padding"],["lines","none"],[1,"row-center","ion-padding"],["size","large","shape","round","color","primary",1,"wide",3,"click","disabled"],["name","arrow-forward-outline"],[3,"click"],["name","arrow-back"],["size","small","name","close",1,"close"],["src","assets/dust-icon.svg","alt","Dust Icon",1,"icon"],[1,"h1-container"],[3,"festival"],["name","emailAddress","id","emailAddress","type","email","label","Email Address","labelPlacement","stacked",3,"keyup.enter","ngModelChange","ngModel"],[1,"helper"],["type","number","inputMode","numeric","pattern","[0-9]*","label","Verification Code","labelPlacement","stacked",3,"keyup.enter","ionInput","ngModelChange","ngModel"],[1,"footer","pad"],[1,"footer"],["href","https://apps.apple.com/us/app/dust-a-guide-for-burners/id6456943178?itsct=apps_box_badge&itscg=30200"],["src","assets/app-store.svg","alt","Download on the App Store",1,"store"],["href","https://play.google.com/store/apps/details?id=nexus.concepts.dust"],["src","assets/google-play.svg","alt","Download from the Play Store",1,"store"]],template:function(e,n){e&1&&(a(0,"ion-header",2)(1,"ion-toolbar"),d(2,me,3,0,"ion-buttons",3),c(3,"ion-title"),a(4,"ion-buttons",4),d(5,ue,2,0,"ion-button"),s()()(),a(6,"ion-content",5),d(7,pe,1,0,"app-spinner"),a(8,"div",6)(9,"ion-card")(10,"ion-card-content",7),d(11,ge,4,1)(12,fe,3,2),d(13,_e,3,1,"div",8),a(14,"ion-list",9),d(15,he,5,1)(16,ve,5,2),a(17,"ion-item")(18,"div",10)(19,"ion-button",11),_("click",function(){return n.next()}),g(20),d(21,ye,1,0,"ion-icon",12),s()()()()()(),d(22,Ce,8,0),s()()),e&2&&(r(2),m(n.emailPage?-1:2),r(3),m(n.isNative?5:-1),r(),x("fullscreen",!0),r(),m(n.busy?7:-1),r(4),m(n.vanity()===""?11:12),r(2),m(n.redirecting()?13:-1),r(2),m(n.emailPage?15:16),r(4),x("disabled",n.busy),r(),w("",n.emailPage?"Next":"Sign In"," "),r(),m(n.emailPage?21:-1),r(),m(n.vanity()!==""?22:-1))},dependencies:[W,G,F,N,D,z,q,K,J,j,se,L,Q,Z,H,X,B,ae],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-2xl);color:var(--ion-color-primary)}.h1-container[_ngcontent-%COMP%]{width:100%;border-radius:var(--br-lg);display:flex;align-items:center;justify-content:center;margin-left:auto;margin-right:auto}p[_ngcontent-%COMP%]{font-size:var(--font-size-xl)}@media (min-width: 801px){ion-card[_ngcontent-%COMP%]{margin-left:var(--spacing-5xl);margin-right:var(--spacing-5xl)}}.helper[_ngcontent-%COMP%]{font-size:var(--font-size-small);color:var(--ion-text-color)}ion-button.wide[_ngcontent-%COMP%]{width:200px}.close[_ngcontent-%COMP%]{color:#fff!important}.store[_ngcontent-%COMP%]{height:45px}.footer[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;gap:var(--spacing-lg)}.icon[_ngcontent-%COMP%]{width:100px}.pad[_ngcontent-%COMP%]{padding-top:var(--spacing-lg)}"]});var le=h;export{le as AuthPage}; +import{a as se}from"./chunk-VVDGH6ZT.js";import"./chunk-RKW74V7I.js";import"./chunk-U3YCGDGQ.js";import{a as ae}from"./chunk-K6ROGVP7.js";import"./chunk-DUKSTT3K.js";import{e as ie,g as ne,oa as re,v as oe}from"./chunk-QF32E4V4.js";import{K as te,e as $,g as k}from"./chunk-TCALQ33I.js";import{a as ee}from"./chunk-PFLI22GG.js";import{Ba as g,Ca as S,Da as w,Db as D,Eb as F,Fc as J,Ga as M,Gc as K,H as r,Ha as A,Ia as V,Kc as Y,Oc as G,P as R,Pc as X,Sa as E,Ta as O,Y as d,Z as m,ca as x,da as a,dc as B,ea as s,ec as W,fa as c,fc as L,gc as Q,ka as y,kb as U,ma as _,mc as j,oa as l,p as C,s as u,sa as b,sc as q,t as p,ta as I,tc as H,ua as T,ub as N,w as P,wc as Z,xb as z}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as f}from"./chunk-LNJ3S2LQ.js";var ce=["iEmail"],de=["iCode"];function me(o,t){if(o&1){let e=y();a(0,"ion-buttons",3)(1,"ion-button",13),_("click",function(){u(e);let i=l();return p(i.clear())}),c(2,"ion-icon",14),s()()}}function ue(o,t){if(o&1){let e=y();a(0,"ion-button",13),_("click",function(){u(e);let i=l();return p(i.close())}),c(1,"ion-icon",15),s()}}function pe(o,t){o&1&&c(0,"app-spinner")}function ge(o,t){if(o&1&&(c(0,"img",16),a(1,"div",17)(2,"h1"),g(3),s()()),o&2){let e=l();r(3),S(e.title())}}function fe(o,t){if(o&1&&(c(0,"app-festival-header",18),a(1,"p",8),g(2),s()),o&2){let e=l();x("festival",e.festival),r(2),w(" Sign in using your email address to register or manage camps, art and events of ",e.festival==null?null:e.festival.name," ")}}function _e(o,t){if(o&1&&(a(0,"div",8)(1,"p"),g(2),s()()),o&2){let e=l();r(2),S(e.redirectMessage())}}function he(o,t){if(o&1){let e=y();a(0,"ion-item")(1,"ion-input",19,0),_("keyup.enter",function(){u(e);let i=l();return p(i.next())}),V("ngModelChange",function(i){u(e);let v=l();return A(v.email,i)||(v.email=i),p(i)}),s()(),a(3,"p",20),g(4,"You will be emailed a verification code."),s()}if(o&2){let e=l();r(),M("ngModel",e.email)}}function ve(o,t){if(o&1){let e=y();a(0,"ion-item")(1,"ion-input",21,1),_("keyup.enter",function(){u(e);let i=l();return p(i.next())})("ionInput",function(){u(e);let i=l();return p(i.changed())}),V("ngModelChange",function(i){u(e);let v=l();return A(v.code,i)||(v.code=i),p(i)}),s()(),a(3,"p",20),g(4),s()}if(o&2){let e=l();r(),M("ngModel",e.code),r(3),w(" Enter the verification code that was emailed to ",e.email,". ")}}function ye(o,t){o&1&&c(0,"ion-icon",12)}function Ce(o,t){o&1&&(a(0,"div",22)(1,"p"),g(2,"Just want to download the app?"),s()(),a(3,"div",23)(4,"a",24),c(5,"img",25),s(),a(6,"a",26),c(7,"img",27),s()())}var h=class h{constructor(){this.api=C(te);this.router=C(U);this.email="";this.code="";this.vanity=P("");this.busy=!1;this.redirecting=P(!1);this.redirectType="none";this.emailPage=!0;this.isNative=ee.isNativePlatform();this.alert=C(Y);this.title=E(()=>{if(this.redirecting())switch(this.redirectType){case"camp":return"Register a camp";case"event":return"Register an event";default:return"Sign In"}return"Sign In"});this.redirectMessage=E(()=>{if(this.redirecting())switch(this.redirectType){case"camp":return"To register a camp we first need an email address.";case"event":return"To register a event we first need an email address.";default:return""}return""});re({arrowBack:ie,close:oe,arrowForwardOutline:ne}),O(()=>{let t=this.api.openedUrl();if(t=="")return;let e=new URL(t),i=new URLSearchParams(e.search).get("code");(i==null?void 0:i.length)==6&&this.signIn(i)})}ionViewWillEnter(){return f(this,null,function*(){var e;this.vanity.set((e=sessionStorage.sendVanity)!=null?e:""),this.vanity()!==""&&(this.festival=yield this.api.getUnAuthedFestivalByVanity(this.vanity()));let t=this.api.getRedirectionUrl();this.redirectType="none",t&&t.includes("/camps")&&(this.redirectType="camp"),t&&t.includes("/events")&&(this.redirectType="event"),this.redirecting.set(!!t&&t!==""),setTimeout(()=>{this.iUsername.setFocus()},500)})}close(){return f(this,null,function*(){document.location.href="index.html"})}next(){return f(this,null,function*(){if(this.emailPage){if(!this.validateEmail(this.email)){this.presentAlert("The email address is invalid");return}try{this.busy=!0,yield this.api.signIn(this.email),this.emailPage=!1,setTimeout(()=>{this.iCode.setFocus()},500)}finally{this.busy=!1}}else{let t=this.code.toString().padStart(6,"0");if(!this.code||t.length!==6){this.presentAlert("The verification code is incorrect");return}this.signIn(t)}})}signIn(t){return f(this,null,function*(){try{this.busy=!0,yield k(1e3),yield this.api.verify(t),yield k(1e3),this.emailPage=!0,this.code="",this.email="";let e=this.api.getRedirectionUrl();if(this.api.clearCache(),!e||e==""){let n=sessionStorage.sendVanity,i="/all";$(n)||(i=`/${n}`,console.log("sendVanity",i)),this.router.navigateByUrl(i,{replaceUrl:!0})}else{if(e=="none"){this.api.setRedirection("");return}console.log(`Redirect to ${e}`),this.api.setRedirection("none"),this.router.navigateByUrl(e,{replaceUrl:!0})}}finally{this.busy=!1}})}changed(){setTimeout(()=>{let t=`${this.code}`;t.length==6&&this.signIn(t)},500)}presentAlert(t){return f(this,null,function*(){yield(yield this.alert.create({header:"Message",message:t,buttons:["OK"]})).present()})}clear(){this.code="",this.emailPage=!0}validateEmail(t){return!!String(t).toLowerCase().match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|.(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=R({type:h,selectors:[["app-auth"]],viewQuery:function(e,n){if(e&1&&(b(ce,5),b(de,5)),e&2){let i;I(i=T())&&(n.iUsername=i.first),I(i=T())&&(n.iCode=i.first)}},decls:23,vars:11,consts:[["iEmail",""],["iCode",""],[1,"ion-no-border"],["slot","start"],["slot","end"],[3,"fullscreen"],[1,"border"],[1,"ion-text-center"],[1,"ion-padding"],["lines","none"],[1,"row-center","ion-padding"],["size","large","shape","round","color","primary",1,"wide",3,"click","disabled"],["name","arrow-forward-outline"],[3,"click"],["name","arrow-back"],["size","small","name","close",1,"close"],["src","assets/dust-icon.svg","alt","Dust Icon",1,"icon"],[1,"h1-container"],[3,"festival"],["name","emailAddress","id","emailAddress","type","email","label","Email Address","labelPlacement","stacked",3,"keyup.enter","ngModelChange","ngModel"],[1,"helper"],["type","number","inputMode","numeric","pattern","[0-9]*","label","Verification Code","labelPlacement","stacked",3,"keyup.enter","ionInput","ngModelChange","ngModel"],[1,"footer","pad"],[1,"footer"],["href","https://apps.apple.com/us/app/dust-a-guide-for-burners/id6456943178?itsct=apps_box_badge&itscg=30200"],["src","assets/app-store.svg","alt","Download on the App Store",1,"store"],["href","https://play.google.com/store/apps/details?id=nexus.concepts.dust"],["src","assets/google-play.svg","alt","Download from the Play Store",1,"store"]],template:function(e,n){e&1&&(a(0,"ion-header",2)(1,"ion-toolbar"),d(2,me,3,0,"ion-buttons",3),c(3,"ion-title"),a(4,"ion-buttons",4),d(5,ue,2,0,"ion-button"),s()()(),a(6,"ion-content",5),d(7,pe,1,0,"app-spinner"),a(8,"div",6)(9,"ion-card")(10,"ion-card-content",7),d(11,ge,4,1)(12,fe,3,2),d(13,_e,3,1,"div",8),a(14,"ion-list",9),d(15,he,5,1)(16,ve,5,2),a(17,"ion-item")(18,"div",10)(19,"ion-button",11),_("click",function(){return n.next()}),g(20),d(21,ye,1,0,"ion-icon",12),s()()()()()(),d(22,Ce,8,0),s()()),e&2&&(r(2),m(n.emailPage?-1:2),r(3),m(n.isNative?5:-1),r(),x("fullscreen",!0),r(),m(n.busy?7:-1),r(4),m(n.vanity()===""?11:12),r(2),m(n.redirecting()?13:-1),r(2),m(n.emailPage?15:16),r(4),x("disabled",n.busy),r(),w("",n.emailPage?"Next":"Sign In"," "),r(),m(n.emailPage?21:-1),r(),m(n.vanity()!==""?22:-1))},dependencies:[W,G,F,N,D,z,q,K,J,j,se,L,Q,Z,H,X,B,ae],styles:["h1[_ngcontent-%COMP%]{font-size:var(--font-size-2xl);color:var(--ion-color-primary)}.h1-container[_ngcontent-%COMP%]{width:100%;border-radius:var(--br-lg);display:flex;align-items:center;justify-content:center;margin-left:auto;margin-right:auto}p[_ngcontent-%COMP%]{font-size:var(--font-size-xl)}@media (min-width: 801px){ion-card[_ngcontent-%COMP%]{margin-left:var(--spacing-5xl);margin-right:var(--spacing-5xl)}}.helper[_ngcontent-%COMP%]{font-size:var(--font-size-small);color:var(--ion-text-color)}ion-button.wide[_ngcontent-%COMP%]{width:200px}.close[_ngcontent-%COMP%]{color:#fff!important}.store[_ngcontent-%COMP%]{height:45px}.footer[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;gap:var(--spacing-lg)}.icon[_ngcontent-%COMP%]{width:100px}.pad[_ngcontent-%COMP%]{padding-top:var(--spacing-lg)}"]});var le=h;export{le as AuthPage}; diff --git a/.admin-app/chunk-BWGKDW4H.js b/.admin-app/chunk-VVDGH6ZT.js similarity index 89% rename from .admin-app/chunk-BWGKDW4H.js rename to .admin-app/chunk-VVDGH6ZT.js index 530e08f1..125e3143 100644 --- a/.admin-app/chunk-BWGKDW4H.js +++ b/.admin-app/chunk-VVDGH6ZT.js @@ -1 +1 @@ -import{a as H}from"./chunk-OIMHMYK4.js";import{a as D}from"./chunk-WRLAXAJB.js";import{K as S}from"./chunk-OQVFSD37.js";import{Aa as d,Ba as v,Da as E,Dc as M,E as h,H as n,P as y,Ra as F,Ua as T,X as s,Y as p,ba as f,ca as o,da as a,ea as b,jc as w,na as m,p as C}from"./chunk-FDEJMFAU.js";function P(e,i){if(e&1&&(o(0,"ion-text",5),d(1),a()),e&2){let t,r=m(2);n(),v(((t=r.festival())==null?null:t.vanity)+".dust.events")}}function U(e,i){e&1&&(o(0,"app-tooltip",6)(1,"ion-chip",9),d(2,"Dates have not been set"),a()())}function k(e,i){if(e&1&&(o(0,"ion-text",7),d(1),a()),e&2){let t=m(2);n(),E("",t.nice(t.festival().start_time)," - ",t.nice(t.festival().end_time))}}function z(e,i){e&1&&(o(0,"div",8)(1,"app-tooltip",6)(2,"ion-chip",9),d(3,"This burn is not published in dust yet."),a()()())}function N(e,i){e&1&&(o(0,"div",8)(1,"app-tooltip",10)(2,"ion-chip",9),d(3,"Camps, Art and Events are currently Hidden in dust."),a()()())}function O(e,i){if(e&1&&(o(0,"div",0)(1,"div",1),b(2,"app-img",2),a(),o(3,"div",3)(4,"a",4)(5,"h2"),d(6),a(),s(7,P,2,1,"ion-text",5),a(),s(8,U,3,0,"app-tooltip",6)(9,k,2,2,"ion-text",7),s(10,z,4,0,"div",8),s(11,N,4,0,"div",8),a()()),e&2){let t,r,u,_,g,x,l=m();n(2),f("borderRadius","5px")("width","unset")("height","100px")("src",l.imageUrl()),n(2),f("href","https://"+((t=l.festival())==null?null:t.vanity)+".dust.events",h),n(2),v((r=l.festival())==null?null:r.name),n(),p((u=l.festival())!=null&&u.vanity?7:-1),n(),p((_=l.festival())!=null&&_.unknown_dates?8:9),n(2),p((g=l.festival())!=null&&g.active?-1:10),n(),p(((x=l.festival())==null?null:x.hidden_features)>=1?11:-1)}}var c=class c{constructor(){this.festival=T();this.api=C(S);this.imageUrl=F(()=>{var i,t;return(t=this.api.imageURL((i=this.festival())==null?void 0:i.imageUrl))!=null?t:""})}nice(i){return new Date(i).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})}};c.\u0275fac=function(t){return new(t||c)},c.\u0275cmp=y({type:c,selectors:[["app-festival-header"]],inputs:{festival:[1,"festival"]},decls:1,vars:1,consts:[[1,"flow-center"],[1,"img-container"],[3,"borderRadius","width","height","src"],[2,"display","flex","flex-direction","column","justify-content","center"],["target","_blank",3,"href"],[1,"url-text"],["text","Click edit to change this option."],[1,"small"],[2,"display","flex","align-self","center"],["color","danger"],["text","Click settings to stop hiding data in dust."]],template:function(t,r){t&1&&s(0,O,12,10,"div",0),t&2&&p(r.festival()?0:-1)},dependencies:[D,w,H,M],styles:[".flow-center[_ngcontent-%COMP%]{flex-direction:column;text-align:center;padding:var(--spacing-2xl);padding-left:var(--spacing-4xl);padding-right:var(--spacing-4xl)}h2[_ngcontent-%COMP%]{padding-top:var(--spacing-lg);color:var(--ion-color-primary);margin-bottom:0;margin-top:0;font-size:var(--font-size-large);font-family:Nunito}a[_ngcontent-%COMP%]{text-decoration:none;font-weight:700}.small[_ngcontent-%COMP%]{font-size:var(--font-size-small)}.url-text[_ngcontent-%COMP%]{margin-bottom:var(--spacing-base)}"]});var I=c;export{I as a}; +import{a as H}from"./chunk-RKW74V7I.js";import{a as D}from"./chunk-U3YCGDGQ.js";import{K as S}from"./chunk-TCALQ33I.js";import{Ba as d,Ca as v,E as h,Ea as E,Ec as M,H as n,P as y,Sa as F,Va as T,Y as s,Z as p,ca as f,da as o,ea as a,fa as b,kc as w,oa as m,p as C}from"./chunk-LVL3PYF7.js";function P(e,i){if(e&1&&(o(0,"ion-text",5),d(1),a()),e&2){let t,r=m(2);n(),v(((t=r.festival())==null?null:t.vanity)+".dust.events")}}function U(e,i){e&1&&(o(0,"app-tooltip",6)(1,"ion-chip",9),d(2,"Dates have not been set"),a()())}function k(e,i){if(e&1&&(o(0,"ion-text",7),d(1),a()),e&2){let t=m(2);n(),E("",t.nice(t.festival().start_time)," - ",t.nice(t.festival().end_time))}}function z(e,i){e&1&&(o(0,"div",8)(1,"app-tooltip",6)(2,"ion-chip",9),d(3,"This burn is not published in dust yet."),a()()())}function N(e,i){e&1&&(o(0,"div",8)(1,"app-tooltip",10)(2,"ion-chip",9),d(3,"Camps, Art and Events are currently Hidden in dust."),a()()())}function O(e,i){if(e&1&&(o(0,"div",0)(1,"div",1),b(2,"app-img",2),a(),o(3,"div",3)(4,"a",4)(5,"h2"),d(6),a(),s(7,P,2,1,"ion-text",5),a(),s(8,U,3,0,"app-tooltip",6)(9,k,2,2,"ion-text",7),s(10,z,4,0,"div",8),s(11,N,4,0,"div",8),a()()),e&2){let t,r,u,_,g,x,l=m();n(2),f("borderRadius","5px")("width","unset")("height","100px")("src",l.imageUrl()),n(2),f("href","https://"+((t=l.festival())==null?null:t.vanity)+".dust.events",h),n(2),v((r=l.festival())==null?null:r.name),n(),p((u=l.festival())!=null&&u.vanity?7:-1),n(),p((_=l.festival())!=null&&_.unknown_dates?8:9),n(2),p((g=l.festival())!=null&&g.active?-1:10),n(),p(((x=l.festival())==null?null:x.hidden_features)>=1?11:-1)}}var c=class c{constructor(){this.festival=T();this.api=C(S);this.imageUrl=F(()=>{var i,t;return(t=this.api.imageURL((i=this.festival())==null?void 0:i.imageUrl))!=null?t:""})}nice(i){return new Date(i).toLocaleDateString("en-us",{weekday:"long",year:"numeric",month:"short",day:"numeric"})}};c.\u0275fac=function(t){return new(t||c)},c.\u0275cmp=y({type:c,selectors:[["app-festival-header"]],inputs:{festival:[1,"festival"]},decls:1,vars:1,consts:[[1,"flow-center"],[1,"img-container"],[3,"borderRadius","width","height","src"],[2,"display","flex","flex-direction","column","justify-content","center"],["target","_blank",3,"href"],[1,"url-text"],["text","Click edit to change this option."],[1,"small"],[2,"display","flex","align-self","center"],["color","danger"],["text","Click settings to stop hiding data in dust."]],template:function(t,r){t&1&&s(0,O,12,10,"div",0),t&2&&p(r.festival()?0:-1)},dependencies:[D,w,H,M],styles:[".flow-center[_ngcontent-%COMP%]{flex-direction:column;text-align:center;padding:var(--spacing-2xl);padding-left:var(--spacing-4xl);padding-right:var(--spacing-4xl)}h2[_ngcontent-%COMP%]{padding-top:var(--spacing-lg);color:var(--ion-color-primary);margin-bottom:0;margin-top:0;font-size:var(--font-size-large);font-family:Nunito}a[_ngcontent-%COMP%]{text-decoration:none;font-weight:700}.small[_ngcontent-%COMP%]{font-size:var(--font-size-small)}.url-text[_ngcontent-%COMP%]{margin-bottom:var(--spacing-base)}"]});var I=c;export{I as a}; diff --git a/.admin-app/chunk-VVJA7NBV.js b/.admin-app/chunk-VVJA7NBV.js deleted file mode 100644 index 68846d84..00000000 --- a/.admin-app/chunk-VVJA7NBV.js +++ /dev/null @@ -1 +0,0 @@ -import{Y as y,ja as v}from"./chunk-LIWDDRYP.js";import{Db as h,Fa as s,Ga as u,H as l,Ha as g,Mc as I,Nc as _,P as p,Ta as k,Ua as a,Wa as C,ba as c,ca as t,da as d,la as r,sc as M,tb as f,wb as b,ya as m}from"./chunk-FDEJMFAU.js";var n=class n{constructor(){this.label=a("");this.placeholder=a("");this.model=C("");this.iconClick=k();v({openOutline:y})}onIconClick(){this.iconClick.emit()}};n.\u0275fac=function(o){return new(o||n)},n.\u0275cmp=p({type:n,selectors:[["app-link-input"]],inputs:{label:[1,"label"],placeholder:[1,"placeholder"],model:[1,"model"]},outputs:{model:"modelChange",iconClick:"iconClick"},decls:3,vars:5,consts:[["lines","none"],["labelPlacement","stacked",3,"ngModelChange","label","placeholder","ngModel"],["slot","end","name","open-outline","size","small",1,"link-icon",3,"click"]],template:function(o,e){o&1&&(t(0,"ion-item",0)(1,"ion-input",1),g("ngModelChange",function(i){return u(e.model,i)||(e.model=i),i}),t(2,"ion-icon",2),r("click",function(){return e.onIconClick()}),d()()()),o&2&&(l(),c("label",e.label())("placeholder",e.placeholder()),s("ngModel",e.model),l(),m("disabled",!e.model()))},dependencies:[M,_,I,h,f,b],styles:[".link-icon[_ngcontent-%COMP%]{position:absolute;margin-top:var(--spacing-md);right:.5rem;z-index:1000;cursor:pointer}.link-icon.disabled[_ngcontent-%COMP%]{opacity:.5;cursor:not-allowed}"]});var N=n;export{N as a}; diff --git a/.admin-app/chunk-WYUVY7GP.js b/.admin-app/chunk-WQ4VL26B.js similarity index 97% rename from .admin-app/chunk-WYUVY7GP.js rename to .admin-app/chunk-WQ4VL26B.js index 67b9fde7..98a17301 100644 --- a/.admin-app/chunk-WYUVY7GP.js +++ b/.admin-app/chunk-WQ4VL26B.js @@ -1,4 +1,4 @@ -import{a as zt}from"./chunk-Q7SRVC5Z.js";import{a as Vt}from"./chunk-NIJZXRAZ.js";import{a as $t}from"./chunk-WRLAXAJB.js";import{b as Oe}from"./chunk-OZ2IKH4J.js";import{C as Lt,L as Nt,Q as kt,X as Bt,e as Dt,ha as Kt,i as Ft,ja as Rt,z as Tt}from"./chunk-LIWDDRYP.js";import{K as Ce}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$,Aa as _,Ba as y,Ca as T,Cc as Et,Da as pe,Db as lt,Dc as Pt,Ec as Mt,Fa as Ze,Fc as bt,Ga as qe,H as p,Ha as et,Ic as Ot,Mc as St,P as ce,Pa as Q,Qa as X,Ta as oe,Ua as be,Va as he,Wa as tt,X as S,Y as D,Zb as ct,_b as ut,aa as V,ba as F,bc as mt,ca as h,cb as nt,cc as dt,da as d,db as ge,dc as pt,ea as ue,ec as ht,fc as gt,gc as ft,hb as it,ic as Ct,ja as re,jb as rt,jc as _t,l as le,la as Y,lc as fe,na as x,p as R,qb as ot,rc as vt,s as G,sc as wt,t as H,tb as st,ua as me,uc as At,va as de,vc as xt,w as N,wb as at,wc as It,xc as yt}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as K,b as Je,h as L}from"./chunk-LNJ3S2LQ.js";function jt(i){let e=ln(i).split(` +import{a as zt}from"./chunk-MZHM7UQO.js";import{a as Vt}from"./chunk-F5YC2F3D.js";import{a as $t}from"./chunk-U3YCGDGQ.js";import{b as Oe}from"./chunk-OZ2IKH4J.js";import{$ as Bt,B as Tt,E as Lt,P as Nt,U as kt,f as Dt,j as Ft,ma as Kt,oa as Rt}from"./chunk-QF32E4V4.js";import{K as Ce}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$b as ut,Ba as _,Ca as y,Da as T,Dc as Et,Ea as pe,Eb as lt,Ec as Pt,Fc as Mt,Ga as Ze,Gc as bt,H as p,Ha as qe,Ia as et,Kc as Ot,Oc as St,P as ce,Qa as Q,Ra as X,Ua as oe,Va as be,Wa as he,Xa as tt,Y as S,Z as D,_b as ct,aa as $,ba as V,ca as F,cc as mt,da as h,db as nt,dc as dt,ea as d,eb as ge,ec as pt,fa as ue,fc as ht,gc as gt,hc as ft,ib as it,jc as Ct,ka as re,kb as rt,kc as _t,l as le,ma as Y,mc as fe,oa as x,p as R,rb as ot,s as G,sc as vt,t as H,tc as wt,ub as st,va as me,vc as At,w as N,wa as de,wc as xt,xb as at,xc as It,yc as yt}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as K,b as Je,h as L}from"./chunk-LNJ3S2LQ.js";function jt(i){let e=ln(i).split(` `),n=[];for(let r of e){let o=r.split(",");o.length>=2&&n.push({lat:parseFloat(o[1].trim()),lng:parseFloat(o[0].trim())})}return n.length==0?{lat:-1,lng:-1}:(n[n.length-1].lng==n[0].lng&&n[n.length-1].lat==n[0].lat&&n.length>1&&n.pop(),n.length==1?n[0]:an(n))}function Wt(i,t){let e=t.map(s=>i=="lat"?s.lat:s.lng),n=Math.min(...e),r=Math.max(...e);i==="lng"&&r-n>180&&(e=e.map(s=>s180&&(o-=360),o}function an(i){return{lat:Wt("lat",i),lng:Wt("lng",i)}}function ln(i){let t=i.trim();if(!t.includes(` `)&&t.includes(" "))return t.split(/\s+/).filter(e=>e.length>0).join(` `);if(t.includes(` diff --git a/.admin-app/chunk-WRLAXAJB.js b/.admin-app/chunk-WRLAXAJB.js deleted file mode 100644 index dd861989..00000000 --- a/.admin-app/chunk-WRLAXAJB.js +++ /dev/null @@ -1 +0,0 @@ -import{Aa as l,Ba as c,H as n,P as d,Ua as s,X as x,Y as f,fa as e,ga as i,na as p,oa as g,pa as C}from"./chunk-FDEJMFAU.js";var v=["*"];function u(t,a){if(t&1&&(e(0,"span",1),l(1),i()),t&2){let o=p();n(),c(o.text())}}function E(t,a){if(t&1&&(e(0,"span",2),l(1),i()),t&2){let o=p();n(),c(o.text())}}function b(t,a){if(t&1&&(e(0,"span",3),l(1),i()),t&2){let o=p();n(),c(o.text())}}function M(t,a){if(t&1&&(e(0,"span",4),l(1),i()),t&2){let o=p();n(),c(o.text())}}function T(t,a){if(t&1&&(e(0,"span",5),l(1),i()),t&2){let o=p();n(),c(o.text())}}var m=class m{constructor(){this.text=s("");this.position=s("")}};m.\u0275fac=function(o){return new(o||m)},m.\u0275cmp=d({type:m,selectors:[["app-tooltip"]],inputs:{text:[1,"text"],position:[1,"position"]},ngContentSelectors:v,decls:7,vars:1,consts:[[1,"tooltip"],[1,"tooltip-text","right"],[1,"tooltip-text","left"],[1,"tooltip-text","aside"],[1,"tooltip-text","left-aside"],[1,"tooltip-text"]],template:function(o,r){o&1&&(g(),e(0,"div",0),x(1,u,2,1,"span",1)(2,E,2,1,"span",2)(3,b,2,1,"span",3)(4,M,2,1,"span",4)(5,T,2,1,"span",5),C(6),i()),o&2&&(n(),f(r.position()==="right"?1:r.position()==="left"?2:r.position()==="aside"?3:r.position()==="left-aside"?4:5))},styles:[".tooltip[_ngcontent-%COMP%]{position:relative;display:inline-block}.tooltip[_ngcontent-%COMP%] .tooltip-text[_ngcontent-%COMP%]{visibility:hidden;width:13rem;background-color:#000000e6;color:#fff;text-align:center;border-radius:var(--br-md);padding:var(--spacing-base);position:absolute;z-index:1;bottom:100%;left:50%;margin-left:calc(-1 * var(--spacing-4xl));opacity:0;transition:opacity .5s}.right[_ngcontent-%COMP%]{margin-left:calc(-1 * var(--spacing-5xl))!important}.left[_ngcontent-%COMP%]{width:30rem!important;margin-left:var(--spacing-lg)!important;bottom:0%!important}.aside[_ngcontent-%COMP%]{margin-left:var(--spacing-3xl)!important;bottom:1.4rem!important}.left-aside[_ngcontent-%COMP%]{right:calc(100% + .5rem)!important;left:auto!important;bottom:50%!important;margin-left:0!important;transform:translateY(50%);white-space:nowrap}.tooltip[_ngcontent-%COMP%]:hover .tooltip-text[_ngcontent-%COMP%]{visibility:visible;opacity:1}"]});var _=m;export{_ as a}; diff --git a/.admin-app/chunk-XACE3SP2.js b/.admin-app/chunk-XACE3SP2.js deleted file mode 100644 index 631064f3..00000000 --- a/.admin-app/chunk-XACE3SP2.js +++ /dev/null @@ -1,2 +0,0 @@ -import{a as E,b as M}from"./chunk-V6XBM4R7.js";import"./chunk-WHEYUZEY.js";import"./chunk-LKPHKBDT.js";import"./chunk-KCPLCCSF.js";import{a as Ie}from"./chunk-SVNDKX5K.js";import{a as Pe}from"./chunk-WRLAXAJB.js";import{a as we}from"./chunk-5B2MUMUK.js";import{c as f}from"./chunk-OZ2IKH4J.js";import{U as ve,V as be,ja as Te,p as ye,u as xe}from"./chunk-LIWDDRYP.js";import{E as ge,K as fe,e as A,l as ue,r as he,v as Ce}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as O,$b as K,Aa as d,Ba as V,Bb as G,Bc as oe,Db as J,E as D,Ec as le,Fa as v,Fc as re,Ga as b,H as a,Ha as w,Ic as se,Kc as pe,Ma as L,Mc as ce,Nc as de,P as F,Sc as me,Tc as _e,Ua as N,Wb as H,X as u,Y as h,Za as R,_ as U,aa as W,ba as c,ca as o,cc as Y,da as r,dc as X,ea as g,ec as Z,fc as $,ja as x,jc as ee,kb as Q,la as C,lc as ie,na as s,nb as j,p as P,ra as I,rc as te,s as m,sa as k,sc as ne,t as _,ta as S,tb as q,vc as ae,wb as z,za as B}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var Se=i=>[i];function Ve(i,n){if(i&1&&(o(0,"ion-select-option",11),d(1),r()),i&2){let e=n.$implicit;c("value",e),a(),V(e)}}function Ae(i,n){if(i&1){let e=x();o(0,"ion-item",12)(1,"ion-checkbox",21),w("ngModelChange",function(t){m(e);let p=s(2);return b(p.camp.publicEvents,t)||(p.camp.publicEvents=t),_(t)}),d(2,"Accept event submissions from the public"),r()()}if(i&2){let e=s(2);a(),v("ngModel",e.camp.publicEvents)}}function Ee(i,n){if(i&1&&g(0,"img",16),i&2){let e=s(2);c("src",e.imageUrl,D)}}function Me(i,n){i&1&&(o(0,"p"),d(1,"Click to choose an optional image for your camp"),r())}function De(i,n){if(i&1){let e=x();o(0,"ion-item",7)(1,"app-emails",22),w("emailsChange",function(t){m(e);let p=s(2);return b(p.camp.contact_email,t)||(p.camp.contact_email=t),_(t)}),r()()}if(i&2){let e=s(2);a(),c("isAdmin",e.isAdmin)("isOwner",e.isOwner)("label","Camp Owner(s)")("placeholder","Email address of camp owner"),v("emails",e.camp.contact_email)}}function Fe(i,n){i&1&&(o(0,"app-tooltip",23)(1,"ion-chip",25),g(2,"ion-icon",26),d(3," This theme camp is approved "),r()())}function Ue(i,n){i&1&&(o(0,"app-tooltip",24)(1,"ion-chip",0),g(2,"ion-icon",27),d(3," This theme camp is not yet approved "),r()())}function Oe(i,n){if(i&1&&u(0,Fe,4,0,"app-tooltip",23)(1,Ue,4,0,"app-tooltip",24),i&2){let e=s(2);h(e.isApproved()?0:1)}}function We(i,n){if(i&1){let e=x();o(0,"app-tooltip",19)(1,"ion-button",28),C("click",function(){m(e);let t=s(2);return _(t.invite())}),d(2,"Invite"),r()()}if(i&2){let e=s(2);a(),c("disabled",e.inviting)}}function Be(i,n){if(i&1){let e=x();o(0,"app-tooltip",29)(1,"ion-button",28),C("click",function(){m(e);let t=s(3);return _(t.approve(!1))}),d(2,"Unapprove"),r()()}if(i&2){let e=s(3);a(),c("disabled",e.busy)}}function Le(i,n){if(i&1){let e=x();o(0,"app-tooltip",30)(1,"ion-button",31),C("click",function(){m(e);let t=s(3);return _(t.approve(!0))}),d(2,"Approve"),r()()}if(i&2){let e=s(3);a(),c("disabled",e.busy)}}function Ne(i,n){if(i&1&&u(0,Be,3,1,"app-tooltip",29)(1,Le,3,1,"app-tooltip",30),i&2){let e=s(2);h(e.isApproved()?0:1)}}function Re(i,n){if(i&1&&(o(0,"app-tooltip",32)(1,"ion-button",33),d(2," Place "),r()(),o(3,"ion-button",34),d(4," Delete "),r(),d(5,"\xA0 "),g(6,"ion-alert",35)),i&2){let e=s(2);a(),c("routerLink","../../map/"+L(2,Se,e.camp.id)),a(5),c("buttons",e.deleteButtons)}}function Qe(i,n){if(i&1){let e=x();o(0,"div",5)(1,"ion-card",6)(2,"ion-card-content",6)(3,"ion-list",7)(4,"ion-item")(5,"ion-input",8),w("ngModelChange",function(t){m(e);let p=s();return b(p.camp.name,t)||(p.camp.name=t),_(t)}),r()(),o(6,"ion-item",9)(7,"ion-select",10),w("ngModelChange",function(t){m(e);let p=s();return b(p.camp.camp_type,t)||(p.camp.camp_type=t),_(t)}),O(8,Ve,2,2,"ion-select-option",11,U),r()(),u(10,Ae,3,1,"ion-item",12),o(11,"ion-item",13),C("dblclick",function(){m(e);let t=s();return _(t.fillDescription())}),o(12,"ion-textarea",14),w("ngModelChange",function(t){m(e);let p=s();return b(p.camp.description,t)||(p.camp.description=t),_(t)}),r()(),o(13,"div",15),C("click",function(){m(e);let t=s();return _(t.upload.click())}),u(14,Ee,1,1,"img",16),u(15,Me,2,0,"p"),r(),u(16,De,2,5,"ion-item",7),g(17,"app-internal-fields",17),r(),u(18,Oe,2,1),o(19,"div",18),u(20,We,3,1,"app-tooltip",19),u(21,Ne,2,1),u(22,Re,7,4),o(23,"ion-button",3),C("click",function(){m(e);let t=s();return _(t.save())}),d(24,"Save"),r()(),o(25,"app-upload",20),C("upload",function(t){m(e);let p=s();return _(p.uploaded(t))}),r()()()()}if(i&2){let e=s();a(5),v("ngModel",e.camp.name),a(2),c("value",e.camp.camp_type),v("ngModel",e.camp.camp_type),a(),W(e.campTypes),a(2),h(e.isAdmin||e.isOwner?10:-1),a(2),c("spellcheck",!0)("rows",6)("maxlength",1e3)("autoGrow",!0),v("ngModel",e.camp.description),a(),B(e.uploading?"disabled":""),a(),h(e.imageUrl?14:-1),a(),h(e.imageUrl?-1:15),a(),h(e.isAdmin||e.isOwner?16:-1),a(),c("schemaType","camps")("entityId",e.camp.id||0)("currentData",e.internalFieldData),a(),h(e.id&&!e.isAdmin?18:-1),a(2),h(e.id&&e.isAdmin?20:-1),a(),h(e.id&&e.isAdmin?21:-1),a(),h(e.id&&e.canPlace?22:-1),a(),c("disabled",e.busy)}}function je(i,n){i&1&&g(0,"app-spinner")}var T=class T{constructor(){this.api=P(fe);this.alert=P(se);this.location=P(R);this.vanity=N();this.busy=!0;this.uploading=!1;this.imageChanged=!1;this.isAdmin=!1;this.isOwner=!1;this.canPlace=!1;this.isNew=!1;this.inviting=!1;this.campTypes=["Theme Camp","Sound Camp","Art Support Camp","Village Camp","Infrastructure"];this.internalFieldData=[];this.camp={name:"",pin:"",description:"",id:void 0,contact_email:"",camp_type:this.campTypes[0],publicEvents:!1};this.deleteButtons=[{text:"Delete",role:"destructive",handler:()=>{this.delete()}},{text:"Cancel",role:"cancel",handler:()=>{}}];Te({mapOutline:be,mailOutline:ve,checkmarkCircleOutline:ye,closeCircleOutline:xe})}uploaded(n){console.log(n),this.imageUrl=n.url,this.imageChanged=!0,this.blob=n.blob}ionViewWillEnter(){return y(this,null,function*(){if(yield this.api.setFestivalByVanity(this.vanity()),this.id=ue(this.id),this.isNew=!this.id,this.camp=yield this.api.getCamp(this.id),this.canPlace=this.api.getAccessInfo(this.api.festivalId).hasAdmin,this.isAdmin=this.api.lastRoleResponse=="festival",this.isOwner=!!this.id&&this.api.getAccessInfo(this.api.festivalId).camps.includes(this.id),this.imageUrl=this.api.imageURL(this.camp.imageUrl),this.camp.internalData)try{this.internalFieldData=JSON.parse(this.camp.internalData)}catch(n){console.error("Failed to parse internal data:",n),this.internalFieldData=[]}this.busy=!1})}delete(){return y(this,null,function*(){this.busy=!0,yield this.api.deleteCamp(this.camp),this.api.clearCache(),this.busy=!1,this.location.back()})}fillDescription(){console.log("fillDescription"),A(this.camp.description)&&!A(this.camp.name)&&(this.camp.description=`${this.camp.name} does not have a description yet.`)}save(n=!0){return y(this,null,function*(){this.busy=!0,Ce(this.camp);try{if(this.internalFields){if(!this.internalFields.validate()){this.busy=!1;return}this.internalFieldData=this.internalFields.fieldValues(),this.internalFieldData.length>0&&(this.camp.internalData=JSON.stringify(this.internalFieldData))}this.camp.description=he(this.camp.description);let e=yield this.api.addCamp(this.camp);if(this.busy=!1,e.message)f(this.alert,e.message);else{if(e.id&&this.imageChanged){console.log(`Uploaded image for camp ${e.id}`),this.busy=!0;try{yield this.uploadImage(e.id)}finally{this.busy=!1,this.imageChanged=!1}}if(!this.isAdmin){let l=this.isNew?`Thank you for registering your camp at ${this.api.festivalTitle()}.`:`The changes you have made will be reviewed by ${this.api.festivalTitle()} prior to publishing in the app.`;f(this.alert,l,"Note"),yield this.api.setKey()}this.api.clearCache(),n&&this.location.back()}}finally{this.busy=!1}})}invite(){return y(this,null,function*(){if(!this.camp.contact_email){yield f(this.alert,"You must specify an email address","Error");return}this.inviting=!0,yield this.save(!1);let n=yield this.api.inviteCamp(this.camp);n.message?f(this.alert,n.message):f(this.alert,"The camp owner has been invited to manage their camp.","Invitation")})}uploadImage(n){return y(this,null,function*(){if(this.blob)try{this.uploading=!0,this.camp.imageUrl=yield this.api.setImage(this.blob,n);let e=yield this.api.addCamp(this.camp,!0);e.message&&f(this.alert,e.message)}finally{this.uploading=!1}})}approve(n){return y(this,null,function*(){this.busy=!0,this.camp.status=n?2:1;let e=yield this.api.approveCamp(this.camp);e.message&&f(this.alert,e.message),this.api.clearCache(),this.busy=!1})}isApproved(){let n=this.camp.status===2||this.camp.status===0||ge(this.camp.status);return console.log(`isApproved: ${n} (status=${this.camp.status})`),n}};T.\u0275fac=function(e){return new(e||T)},T.\u0275cmp=F({type:T,selectors:[["app-camp"]],viewQuery:function(e,l){if(e&1&&(I(E,5),I(M,5)),e&2){let t;k(t=S())&&(l.upload=t.first),k(t=S())&&(l.internalFields=t.first)}},inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:4,consts:[["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"border"],[1,"form"],["lines","none"],["label","Camp Name","labelPlacement","stacked","placeholder","Name of the theme camp",3,"ngModelChange","ngModel"],["lines","none",1,"app-select"],["label","Type","labelPlacement","stacked","interface","popover","placeholder","Select the type of camp",1,"app-select",3,"ngModelChange","value","ngModel"],[3,"value"],["lines","none",1,"ion-padding-start"],[3,"dblclick"],["labelPlacement","stacked","label","Description","placeholder","Description of the theme camp",3,"ngModelChange","spellcheck","rows","maxlength","autoGrow","ngModel"],[1,"image-container","center",3,"click"],[3,"src"],[3,"schemaType","entityId","currentData"],[1,"center"],["text","Invite camp owner via email to manage their camp"],[3,"upload"],["justify","start","labelPlacement","end",3,"ngModelChange","ngModel"],["helperText",`The camp owner(s) can login and alter their camp - events and details. This is a list of email addresses.`,3,"emailsChange","isAdmin","isOwner","label","placeholder","emails"],["text","It will be displayed in the dust app"],["text","This theme camp will not appear in the dust app until approved"],["color","secondary"],["name","checkmark-circle-outline"],["name","close-circle-outline"],["color","secondary",3,"click","disabled"],["text","Mark this theme camp as unapproved so that it does not appear in the dust app"],["text","Approve the theme camp to allow it to be visible in the dust app"],["color","primary",3,"click","disabled"],["text","Place the camp on the map"],["color","secondary",3,"routerLink"],["id","deleteCamp","color","secondary"],["trigger","deleteCamp","header","Delete Camp?",3,"buttons"]],template:function(e,l){e&1&&(o(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),g(3,"ion-back-button"),r(),o(4,"ion-title"),d(5),r(),o(6,"ion-buttons",2)(7,"ion-button",3),C("click",function(){return l.save()}),d(8,"Save"),r()()()(),o(9,"ion-content",4),u(10,Qe,26,22,"div",5)(11,je,1,0,"app-spinner"),r()),e&2&&(a(5),V(l.id||l.camp.id?"Edit Camp":l.isAdmin?"Add Camp":"Register Camp"),a(2),c("disabled",l.busy),a(2),c("fullscreen",!0),a(),h(l.busy?11:10))},dependencies:[K,Pe,E,J,q,G,z,we,j,Q,te,re,X,H,le,Y,ie,Z,$,ae,ne,de,_e,me,oe,Ie,pe,M,ee,ce],encapsulation:2});var ke=T;export{ke as CampPage}; diff --git a/.admin-app/chunk-XBTQFN5B.js b/.admin-app/chunk-XBTQFN5B.js deleted file mode 100644 index 1959aea0..00000000 --- a/.admin-app/chunk-XBTQFN5B.js +++ /dev/null @@ -1,5 +0,0 @@ -import{c as ct}from"./chunk-ZOFWWE63.js";import{a as H}from"./chunk-GPVDUW6Q.js";import{a as pt,g as ut}from"./chunk-WHEYUZEY.js";import{a as _e,c as T}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{N as ke,Z as dt,a as lt,ea as mt,ja as oe}from"./chunk-LIWDDRYP.js";import{D as Ee,K as Q,e as K,i as rt,k as st}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as Ce,Aa as d,Ac as Xe,Ba as ve,Bb as te,Bc as $e,Ca as M,Db as N,Dc as et,E as We,Ec as Te,Fa as _,Fc as Se,Ga as h,H as l,Ha as C,Ic as tt,Kc as it,La as Oe,Mc as ne,Nc as z,P as S,Rc as nt,Sa as qe,Sc as ot,T as Ae,Ta as q,Tc as Me,Ua as F,Uc as at,Va as ee,Wa as E,Wb as je,X as f,Xb as ye,Y as v,Za as Be,Zb as Ze,_ as Ne,_b as Ye,aa as fe,ba as g,ca as a,cc as k,da as r,dc as ie,ea as I,ec as P,fc as D,gc as U,hc as B,ic as R,ja as x,jb as ze,kb as Qe,kc as Ge,la as u,lc as xe,na as m,p as b,qc as Je,ra as j,rb as He,rc as we,s as c,sa as Z,sc as V,t as p,ta as Y,tb as W,ua as X,uc as be,va as $,vc as L,w,wb as A,zc as Ke}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var ht=["link"],Ct=["link2"],ft=["link3"],ae=class ae{constructor(){this.api=b(Q);this.campsUrl="";this.eventsUrl="";this.artUrl="";this.vanity=F("")}ngOnInit(){this.campsUrl=`https://${this.vanity()}.dust.events/camps/`,this.eventsUrl=`https://${this.vanity()}.dust.events/events/`,this.artUrl=`https://${this.vanity()}.dust.events/art/`}message(t,e){this.api.sendMessage(e,0,t)}copyCampsUrl(){let t=this.link.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyArtUrl(){let t=this.link3.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyEventsUrl(){let t=this.link2.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}};ae.\u0275fac=function(e){return new(e||ae)},ae.\u0275cmp=S({type:ae,selectors:[["app-web-links"]],viewQuery:function(e,n){if(e&1&&(j(ht,5),j(Ct,5),j(ft,5)),e&2){let i;Z(i=Y())&&(n.link=i.first),Z(i=Y())&&(n.link2=i.first),Z(i=Y())&&(n.link3=i.first)}},inputs:{vanity:[1,"vanity"]},decls:30,vars:9,consts:[["link",""],["link2",""],["link3",""],[2,"width","100%"],["color","primary","routerLink","./css",2,"margin-left","auto"],["lines","none"],["slot","start","name","information-circle-outline",3,"click"],["fill","solid","slot","end","color","primary","id","open-toast",3,"click"],["fill","solid","color","primary","id","open-toast","slot","end",3,"click"],["slot","end","fill","solid","color","primary","id","open-toast",3,"click"],["type","text",3,"hidden","value"]],template:function(e,n){if(e&1){let i=x();a(0,"ion-card-header")(1,"ion-card-title",3)(2,"ion-buttons"),d(3," Lists "),a(4,"ion-button",4),d(5,"CSS"),r()()(),a(6,"ion-card-subtitle"),d(7," These can be used on your website to display a live list of camps, events and art. "),r()(),a(8,"ion-list",5)(9,"ion-item")(10,"ion-icon",6),u("click",function(){return c(i),p(n.message("Theme Camps Web Page","This link for a web page of all theme camp can be used on your website."))}),r(),d(11),a(12,"ion-button",7),u("click",function(){return c(i),p(n.copyCampsUrl())}),d(13,"Copy"),r()(),a(14,"ion-item")(15,"ion-icon",6),u("click",function(){return c(i),p(n.message("Events Web Page","This link for a web page of all events can be used on your website."))}),r(),d(16),a(17,"ion-button",8),u("click",function(){return c(i),p(n.copyEventsUrl())}),d(18,"Copy"),r()(),a(19,"ion-item")(20,"ion-icon",6),u("click",function(){return c(i),p(n.message("Art Web Page","This link for a web page of art can be used on your website."))}),r(),d(21),a(22,"ion-button",9),u("click",function(){return c(i),p(n.copyArtUrl())}),d(23,"Copy"),r()()(),I(24,"input",10,0)(26,"input",10,1)(28,"input",10,2)}e&2&&(l(11),M(" ",n.campsUrl," "),l(5),M(" ",n.eventsUrl," "),l(5),M(" ",n.artUrl," "),l(3),g("hidden",!0)("value",n.campsUrl),l(2),g("hidden",!0)("value",n.eventsUrl),l(2),g("hidden",!0)("value",n.artUrl))},dependencies:[ie,k,L,ne,R,U,B,V,Qe],styles:["ion-card-title[_ngcontent-%COMP%]{font-size:var(--font-size-xl)!important}ion-icon[_ngcontent-%COMP%]{cursor:pointer}"]});var Ve=ae;var vt=["link"];function yt(s,t){if(s&1){let e=x();a(0,"ion-item",1)(1,"ion-icon",2),u("click",function(){c(e);let i=m();return p(i.message(i.title(),i.description()))}),r(),a(2,"a",3),d(3),r(),a(4,"ion-button",4),u("click",function(){c(e);let i=m();return p(i.copy())}),d(5,"Copy"),r()(),I(6,"input",5,0)}if(s&2){let e=m();l(2),g("href",e.url(),We),l(),ve(e.url()),l(3),g("hidden",!0)("value",e.url())}}var re=class re{constructor(){this.url=F();this.enabled=F(!0);this.title=F("");this.description=F("");this.link=ee("link");this.api=b(Q);oe({informationCircleOutline:ke})}message(t,e){this.api.sendMessage(e,0,t)}copy(){let t=this.link().nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}};re.\u0275fac=function(e){return new(e||re)},re.\u0275cmp=S({type:re,selectors:[["app-url-link"]],viewQuery:function(e,n){e&1&&X(n.link,vt,5),e&2&&$()},inputs:{url:[1,"url"],enabled:[1,"enabled"],title:[1,"title"],description:[1,"description"]},decls:1,vars:1,consts:[["link",""],[1,"url"],["slot","start","name","information-circle-outline",3,"click"],["target","_blank",3,"href"],["id","open-toast","slot","end",3,"click"],["type","text",3,"hidden","value"]],template:function(e,n){e&1&&f(0,yt,8,4),e&2&&v(n.enabled()?0:-1)},dependencies:[V,ne,k],styles:[".url[_ngcontent-%COMP%]{color:var(--ion-color-dark)}ion-icon[_ngcontent-%COMP%]{cursor:pointer}a[_ngcontent-%COMP%]{text-decoration:none;color:var(--ion-text-color)}"]});var Fe=re;var xt=["link"],wt=["artLink"],bt=["eventLink"];function Tt(s,t){if(s&1){let e=x();a(0,"ion-item",2)(1,"ion-input",3),C("ngModelChange",function(i){c(e);let o=m(2);return h(o.pin,i)||(o.pin=i),p(i)}),u("ionChange",function(){c(e);let i=m(2);return p(i.changed())}),r()()}if(s&2){let e=m(2);l(),_("ngModel",e.pin)}}function St(s,t){if(s&1){let e=x();a(0,"ion-item",2)(1,"ion-textarea",4),C("ngModelChange",function(i){c(e);let o=m(2);return h(o.directionsText,i)||(o.directionsText=i),p(i)}),u("ionChange",function(){c(e);let i=m(2);return p(i.changed())}),r()()}if(s&2){let e=m(2);l(),g("spellcheck",!0)("rows",6)("autoGrow",!0),_("ngModel",e.directionsText)}}function Mt(s,t){if(s&1){let e=x();a(0,"ion-card")(1,"ion-card-header")(2,"ion-card-title"),d(3," Options "),r()(),a(4,"ion-card-content")(5,"ion-item")(6,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Camp/Art Registration","Enable if you allow new camps to be registered. Disable you are not accepting camp registration yet."))}),r(),a(7,"ion-toggle",1),u("ionChange",function(i){c(e);let o=m();return p(o.changed("camp",i))}),C("ngModelChange",function(i){c(e);let o=m();return h(o.enabled,i)||(o.enabled=i),p(i)}),d(8,"Allow Camp/Art Registration"),r()(),a(9,"ion-item")(10,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Event Registration","Choose whether event registration is allowed by users who are not theme camp leads or artists."))}),r(),a(11,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.eventRegistration,i)||(o.eventRegistration=i),p(i)}),d(12,"Allow Event Registration by the public"),r()(),a(13,"ion-item")(14,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Event Editing","Allows events or music to be edited. "))}),r(),a(15,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.eventEditing,i)||(o.eventEditing=i),p(i)}),d(16,"Allow Event/Music Editing"),r()(),a(17,"ion-item")(18,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Music Registration","Allow music to be registered at camps, art and mutant vehicles."))}),r(),a(19,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.musicRegistration,i)||(o.musicRegistration=i),p(i)}),d(20,"Allow Music Registration"),r()(),a(21,"ion-item")(22,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Art Editing","Allows art owners that have already registered to edit their art details."))}),r(),a(23,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.artEditing,i)||(o.artEditing=i),p(i)}),d(24,"Allow Art Editing"),r()(),a(25,"ion-item")(26,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Hide Camps, Art and Events","Hides camps, art, and events from the dust app."))}),r(),a(27,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.hideCampsArtEvents,i)||(o.hideCampsArtEvents=i),p(i)}),d(28,"Hide Camps, Art & Events"),r()(),a(29,"ion-item")(30,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Require PIN","Whether to require a PIN to be entered to access the event."))}),r(),a(31,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.requirePin,i)||(o.requirePin=i),p(i)}),d(32,"Require PIN"),r()(),f(33,Tt,2,1,"ion-item",2),a(34,"ion-item")(35,"ion-icon",0),u("click",function(){c(e);let i=m();return p(i.message("Directions","Whether to show text when the directions button is clicked."))}),r(),a(36,"ion-toggle",1),u("ionChange",function(){c(e);let i=m();return p(i.changed())}),C("ngModelChange",function(i){c(e);let o=m();return h(o.directions,i)||(o.directions=i),p(i)}),d(37,"Text Based Directions"),r()(),f(38,St,2,4,"ion-item",2),r()()}if(s&2){let e=m();l(7),_("ngModel",e.enabled),l(4),_("ngModel",e.eventRegistration),l(4),_("ngModel",e.eventEditing),l(4),_("ngModel",e.musicRegistration),l(4),_("ngModel",e.artEditing),l(4),_("ngModel",e.hideCampsArtEvents),l(4),_("ngModel",e.requirePin),l(2),v(e.requirePin?33:-1),l(3),_("ngModel",e.directions),l(2),v(e.directions?38:-1)}}function Et(s,t){if(s&1&&(a(0,"ion-card")(1,"ion-card-content")(2,"ion-card-header")(3,"ion-card-title"),d(4," Registration "),r(),a(5,"ion-card-subtitle"),d(6,"Use this link on your website to register camps, events and art."),r()(),I(7,"app-url-link",5),a(8,"ion-accordion-group")(9,"ion-accordion",6)(10,"ion-item",7),d(11,"Advanced"),r(),a(12,"div",8)(13,"ion-list",2)(14,"ion-card-header")(15,"ion-card-subtitle"),d(16,"These can be used on your website to register camps, events and art."),r()(),I(17,"app-url-link",9)(18,"app-url-link",10)(19,"app-url-link",11)(20,"app-web-links",12),r()()()()()()),s&2){let e=m();l(7),g("url",e.burnUrl),l(10),g("url",e.url)("enabled",!!e.enabled),l(),g("url",e.eventUrl)("enabled",!!e.eventEditing),l(),g("url",e.artUrl)("enabled",!!e.enabled),l(),g("vanity",e.vanity())}}var se=class se{constructor(){this.api=b(Q);this.toastButtons=[{text:"Dismiss",role:"cancel"}];this.url="";this.burnUrl="";this.artUrl="";this.eventUrl="";this.mapDirection=F();this.directionsText=void 0;this.vanity=F("");this.mode=F("options");oe({informationCircleOutline:ke})}ngOnInit(){let t=this.api.vanity();this.burnUrl=`https://${t}.dust.events`,this.url=`${document.location.protocol}//${document.location.host}/${t}/camps`,this.artUrl=`${document.location.protocol}//${document.location.host}/${t}/art`,this.eventUrl=`${document.location.protocol}//${document.location.host}/${t}/events`}copy(){let t=this.link.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyArt(){let t=this.artLink.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}copyEventUrl(){let t=this.eventLink.nativeElement;t.select(),t.setSelectionRange(0,99999),navigator.clipboard.writeText(t.value),this.api.sendMessage(`Copied ${t.value} to the clipboard`,1)}changed(t,e){t=="camp"&&e.detail.checked&&(this.campEditing=!0,this.artEditing=!0,this.eventEditing=!0),this.requirePin||(this.pin=void 0),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.api.festivalId&&(this.pin>9999&&(this.pin=9999),this.api.updateFestivalSettings({id:this.api.festivalId,camp_registration:this.enabled,event_registration:this.eventRegistration,music_registration:this.musicRegistration,event_editing:this.eventEditing,camp_editing:this.campEditing,art_editing:this.artEditing,hidden_features:this.hideCampsArtEvents?1:0,map_direction:this.mapDirection(),directions:this.directions?this.directionsText:void 0,pin:this.requirePin?this.pin:void 0}))},3e3)}message(t,e){this.api.sendMessage(e,0,t)}};se.\u0275fac=function(e){return new(e||se)},se.\u0275cmp=S({type:se,selectors:[["app-camp-registration"]],viewQuery:function(e,n){if(e&1&&(j(xt,5),j(wt,5),j(bt,5)),e&2){let i;Z(i=Y())&&(n.link=i.first),Z(i=Y())&&(n.artLink=i.first),Z(i=Y())&&(n.eventLink=i.first)}},inputs:{enabled:"enabled",eventRegistration:"eventRegistration",musicRegistration:"musicRegistration",eventEditing:"eventEditing",campEditing:"campEditing",artEditing:"artEditing",requirePin:"requirePin",hideCampsArtEvents:"hideCampsArtEvents",mapDirection:[1,"mapDirection"],directions:"directions",directionsText:"directionsText",pin:"pin",vanity:[1,"vanity"],mode:[1,"mode"]},decls:2,vars:2,consts:[["slot","start","name","information-circle-outline",3,"click"],["labelPlacement","start",3,"ionChange","ngModelChange","ngModel"],["lines","none"],["maxlength","4","type","number","placeholder","PIN",3,"ngModelChange","ionChange","ngModel"],["labelPlacement","stacked","label","Directions","placeholder","Describe how an attendee will get to the event",3,"ngModelChange","ionChange","spellcheck","rows","autoGrow","ngModel"],["title","Burn URL","description","Copy this link and use it on your website for registration of camps, art and events",3,"url"],["value","first"],["slot","header"],["slot","content"],["title","Camp Registration URL","description","Copy this link and use it on your website to allow people to register their camp.",3,"url","enabled"],["title","Event Registration URL","description","Copy this link and use it on your website to allow people to register an event in open camping or a described location (not a theme camp or art piece).",3,"url","enabled"],["title","Art Registration URL","description","Copy this link and use it on your website to allow people to register their art.",3,"url","enabled"],[3,"vanity"]],template:function(e,n){e&1&&(f(0,Mt,39,10,"ion-card"),f(1,Et,21,8,"ion-card")),e&2&&(v(n.mode()==="options"?0:-1),l(),v(n.mode()==="registration"?1:-1))},dependencies:[Me,z,ne,at,N,W,te,A,L,V,D,R,U,P,B,Ve,Ze,Ye,Fe],styles:[".url[_ngcontent-%COMP%]{color:var(--ion-color-dark)}ion-icon[_ngcontent-%COMP%]{cursor:pointer}"]});var Ie=se;var le=class le{constructor(){this.username=E("");this.server=E("");this.inboxEmail=E("");this.rssFeed=E("");this.primaryColor=E("");this.saved=q();this.saving=w(!1);this.alert=b(H)}save(){return y(this,null,function*(){if(this.username()==""&&this.server()==""&&this.inboxEmail()==""&&this.rssFeed()==""&&this.primaryColor()==""){this.saved.emit({mastodonHandle:"",inboxEmail:"",rssFeed:"",theme:null});return}if(this.username().length<2&&this.server().length>0){yield T(this.alert,"Your mastodon username must be specified");return}if(this.server().length<2&&this.username().length>0){yield T(this.alert,"The mastodon server must be specified");return}if(!this.server().includes(".")&&this.username().length>0){yield T(this.alert,"The mastodon server is not valid");return}if(!this.validUsername(this.username())&&this.server().length>0){yield T(this.alert,"The mastodon username is not valid");return}if(!this.validServername(this.server())&&this.username().length>0){yield T(this.alert,"The mastodon server is not valid");return}if(this.primaryColor()){let n=this.getColorValidationError(this.primaryColor());if(n){yield T(this.alert,n);return}}let t=this.username()==""?"":`@${this.username()}@${this.server()}`,e=this.primaryColor()?{primaryColor:this.primaryColor()}:null;this.saved.emit({mastodonHandle:t,inboxEmail:this.inboxEmail(),rssFeed:this.rssFeed(),theme:e}),this.saving.set(!0)})}validUsername(t){return/^[a-zA-Z0-9_]+$/.test(t)}validServername(t){return/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/.test(t)}getColorValidationError(t){let e=t.replace("#",""),n=parseInt(e.substring(0,2),16),i=parseInt(e.substring(2,4),16),o=parseInt(e.substring(4,6),16),O=(n*299+i*587+o*114)/1e3,Le=255*.15;return O>255-Le?"The chosen color is too close to white and will clash with light text.":O{this.isOpen()&&this.initializeForm()})}initializeForm(){var e,n,i,o,O;let t=this.field();t?(this.fieldName.set(t.name),this.fieldType.set(t.type),this.maxLines.set((e=t.maxLines)!=null?e:1),this.maxLength.set((n=t.maxLength)!=null?n:1e3),this.optionsText.set((o=(i=t.values)==null?void 0:i.join(` -`))!=null?o:""),this.required.set(t.required),this.scope.set(t.scope),this.helperText.set((O=t.helperText)!=null?O:"")):(this.fieldName.set(""),this.fieldType.set("string"),this.maxLines.set(1),this.maxLength.set(1e3),this.optionsText.set(""),this.required.set(!1),this.scope.set("user"),this.helperText.set(""))}cancel(){this.modal().dismiss(null,"cancel")}save(){return y(this,null,function*(){let t=this.buildFieldDefinition();if(!t)return;let e=pt(t);if(e){yield T(this.alert,e,"Validation Error");return}this.saved.emit(t),this.modal().dismiss(t,"confirm")})}delete(){return y(this,null,function*(){(yield this.presentConfirm("Are you sure you want to delete this question?"))&&(this.deleted.emit(),this.modal().dismiss(null,"delete"))})}onWillDismiss(){this.isOpen.set(!1)}getFieldTypeTooltip(){switch(this.fieldType()){case"string":return"The question is answered by typing a text answer";case"boolean":return"The question is answered by checking a box";case"values":return"The question is answered by choosing an option";default:return""}}getScopeTooltip(){switch(this.scope()){case"user":return"User - the question will appear for the user and can be edited by them";case"admin":return"Admin Only - the question only appears for an administrator and not the camp/art owner";case"readadmin":return"Admin Can View - the question can be answered by the user but will not be able to see or edit it afterwards";default:return""}}buildFieldDefinition(){let t=this.fieldName().trim();if(!t)return T(this.alert,"Question cannot be empty","Validation Error"),null;let e=this.fieldType(),n=this.helperText().trim(),i={name:t,type:e,required:this.required(),scope:this.scope(),helperText:n===""?void 0:n};if(e==="string")i.maxLines=this.maxLines(),i.maxLength=this.maxLength();else if(e==="values"){let o=this.optionsText().split(` -`).map(O=>O.trim()).filter(O=>O!=="");if(o.length===0)return T(this.alert,"Options field must have at least one value","Validation Error"),null;i.values=o}return i}presentConfirm(t){return y(this,null,function*(){return new Promise(e=>y(this,null,function*(){yield(yield this.alert.create({header:"Confirm",message:t,buttons:[{text:"Delete",role:"delete",handler:()=>{e(!0)}},{text:"Cancel",role:"cancel",handler:()=>{e(!1)}}]})).present()}))})}};ce.\u0275fac=function(e){return new(e||ce)},ce.\u0275cmp=S({type:ce,selectors:[["app-custom-field-dialog"]],viewQuery:function(e,n){e&1&&X(n.modal,ye,5),e&2&&$()},inputs:{isOpen:[1,"isOpen"]},outputs:{isOpen:"isOpenChange",saved:"saved",deleted:"deleted"},decls:2,vars:2,consts:[[3,"willDismiss","isOpen","backdropDismiss"],["color","primary"],["slot","start"],[3,"click"],["slot","end"],[3,"click","strong"],[1,"ion-padding"],[1,"border"],[1,"form"],["lines","none"],["label","Question *","labelPlacement","stacked","placeholder","Enter question","type","text",3,"ngModelChange","appHoverTooltip","ngModel"],["label","Helper Text","labelPlacement","stacked","appHoverTooltip","Guidance that appears as a tooltip for the question. Eg 'Provide a full leave no trace plan.'","placeholder","Optional guidance on how to fill out the answer to the question.","rows","3",3,"ngModelChange","ngModel"],[1,"helper-text-counter"],[1,"app-select",3,"appHoverTooltip"],["label","Type *","labelPlacement","stacked","interface","popover","placeholder","Select type",1,"app-select",3,"ngModelChange","ngModel"],["value","string"],["value","boolean"],["value","values"],[1,"ion-padding-start"],["justify","start","labelPlacement","end",3,"ngModelChange","appHoverTooltip","ngModel"],[1,"app-select"],["label","Scope *","labelPlacement","stacked","interface","popover","placeholder","Select scope",1,"app-select",3,"ngModelChange","appHoverTooltip","ngModel"],["value","user"],["value","admin"],["value","readadmin"],[1,"center"],["label","Rows of Text","labelPlacement","stacked","type","number","min","1","max","1000",3,"ngModelChange","ngModel"],["label","Maximum length of answer (characters)","labelPlacement","stacked","type","number","min","1","max","10000",3,"ngModelChange","appHoverTooltip","ngModel"],["label","Options (one per line) *","labelPlacement","stacked","placeholder",`Option 1 -Option 2 -Option 3`,"rows","5",3,"ngModelChange","ngModel"],["color","secondary",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-modal",0),u("willDismiss",function(){return n.onWillDismiss()}),Ae(1,Pt,44,16,"ng-template"),r()),e&2&&g("isOpen",n.isOpen())("backdropDismiss",!1)},dependencies:[N,W,A,ut,xe,k,ye,we,Se,ie,Te,L,V,z,Me,ot,$e,it,P,D],styles:["ion-textarea[_ngcontent-%COMP%]{min-height:120px}.helper-text-counter[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-medium);padding:var(--spacing-base) var(--spacing-lg);text-align:right}@media (min-width: 801px){ion-modal[_ngcontent-%COMP%]{--width: 80vw;--min-height: 80vh}}"]});var pe=ce;function Dt(s,t){s&1&&(a(0,"div",0),d(1," These are additional questions for theme camps that are kept private between you and the theme camp owner(s) "),r())}function Ut(s,t){s&1&&(a(0,"div",0),d(1," These are additional questions for artists that are kept private between you and the art owner(s) "),r())}function Rt(s,t){s&1&&(a(0,"div")(1,"p"),d(2,"Loading fields..."),r()())}function Lt(s,t){if(s&1){let e=x();a(0,"ion-item",5),u("click",function(){let i=c(e).$implicit,o=m(3);return p(o.openEditDialog(i))}),a(1,"ion-label"),d(2),r()()}if(s&2){let e=t.$implicit;l(2),M(" ",e.name," ")}}function Wt(s,t){if(s&1&&(a(0,"ion-list"),Ce(1,Lt,3,1,"ion-item",4,Ne),r()),s&2){let e=m(2);l(),fe(e.schema())}}function At(s,t){if(s&1&&(a(0,"div")(1,"p"),d(2),r()()),s&2){let e=m(2);l(2),M("You can ask for additional information when someone registers their ",e.schemaType()==="camps"?"Theme Camp":"Art"," by adding fields.")}}function Nt(s,t){if(s&1){let e=x();a(0,"div"),f(1,Wt,3,0,"ion-list"),f(2,At,3,1,"div"),a(3,"div",2)(4,"ion-button",3),u("click",function(){c(e);let i=m();return p(i.openAddDialog())}),d(5," Add Question "),r()()()}if(s&2){let e=m();l(),v(e.schema().length>0?1:-1),l(),v(e.schema().length===0?2:-1)}}var ue=class ue{constructor(){this.schemaType=F.required();this.schemaChanged=q();this.dialog=ee(pe);this.api=b(Q);this.alert=b(tt);this.schema=w([]);this.isLoading=w(!1);this.dialogOpen=w(!1);this.editingField=w(null);oe({add:lt,trash:mt,pencil:dt})}ngOnInit(){this.loadSchema()}loadSchema(){return y(this,null,function*(){this.isLoading.set(!0);try{let t=this.schemaType()==="camps"?yield this.api.getCampSchema():yield this.api.getArtSchema();t.data&&Array.isArray(t.data)?this.schema.set(t.data):this.schema.set([])}catch(t){console.error("Failed to load schema:",t),this.schema.set([])}finally{this.isLoading.set(!1)}})}openAddDialog(){let t=this.dialog();t&&(t.field.set(null),t.schemaType.set(this.schemaType())),this.editingField.set(null),this.dialogOpen.set(!0)}openEditDialog(t){let e=this.dialog();e&&(e.field.set(t),e.schemaType.set(this.schemaType())),this.editingField.set(t),this.dialogOpen.set(!0)}onFieldSaved(t){return y(this,null,function*(){let e=this.schema(),n=this.editingField(),i;n?i=e.map(o=>o.name===n.name?t:o):i=[...e,t],this.schema.set(i),this.dialogOpen.set(!1),this.editingField.set(null),yield this.saveSchema(i)})}onFieldDeleted(){return y(this,null,function*(){let t=this.editingField();if(!t)return;let e=this.schema().filter(n=>n.name!==t.name);this.schema.set(e),this.dialogOpen.set(!1),this.editingField.set(null),yield this.saveSchema(e)})}deleteField(t){return y(this,null,function*(){if(yield this.presentConfirm(`Are you sure you want to delete the field "${t.name}"?`)){let n=this.schema().filter(i=>i.name!==t.name);this.schema.set(n),yield this.saveSchema(n)}})}saveSchema(t){return y(this,null,function*(){try{let e=this.schemaType()==="camps"?yield this.api.saveCampSchema(t):yield this.api.saveArtSchema(t);e.message&&e.message.includes("error")?yield T(this.alert,e.message,"Error"):this.schemaChanged.emit(t)}catch(e){console.error("Failed to save schema:",e),yield T(this.alert,`Failed to save schema: ${e}`,"Error")}})}presentConfirm(t){return y(this,null,function*(){return new Promise(e=>y(this,null,function*(){yield(yield this.alert.create({header:"Confirm",message:t,buttons:[{text:"Delete",role:"delete",handler:()=>{e(!0)}},{text:"Cancel",role:"cancel",handler:()=>{e(!1)}}]})).present()}))})}getFieldTypeLabel(t){switch(t){case"string":return"Text";case"boolean":return"Y/N";case"values":return"Options";default:return t}}getScopeLabel(t){switch(t){case"user":return"User";case"admin":return"Admin Only";case"readadmin":return"Admin Can View";default:return t}}};ue.\u0275fac=function(e){return new(e||ue)},ue.\u0275cmp=S({type:ue,selectors:[["app-custom-fields-editor"]],viewQuery:function(e,n){e&1&&X(n.dialog,pe,5),e&2&&$()},inputs:{schemaType:[1,"schemaType"]},outputs:{schemaChanged:"schemaChanged"},decls:10,vars:6,consts:[[1,"subtitle-text"],[3,"isOpenChange","saved","deleted","isOpen"],[1,"row-center","ion-padding"],["size","small","color","primary",3,"click"],["button",""],["button","",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-card")(1,"ion-card-header")(2,"ion-card-title"),d(3),r(),f(4,Dt,2,0,"div",0),f(5,Ut,2,0,"div",0),r(),a(6,"ion-card-content"),f(7,Rt,3,0,"div"),f(8,Nt,6,2,"div"),r()(),a(9,"app-custom-field-dialog",1),C("isOpenChange",function(o){return h(n.dialogOpen,o)||(n.dialogOpen=o),o}),u("saved",function(o){return n.onFieldSaved(o)})("deleted",function(){return n.onFieldDeleted()}),r()),e&2&&(l(3),M(" ",n.schemaType()==="camps"?"Theme Camp Questions":"Art Questions"," "),l(),v(n.schemaType()==="camps"?4:-1),l(),v(n.schemaType()==="art"?5:-1),l(2),v(n.isLoading()?7:-1),l(),v(n.isLoading()?-1:8),l(),_("isOpen",n.dialogOpen))},dependencies:[k,L,V,be,P,D,U,R,pe],styles:["ion-card[_ngcontent-%COMP%]{margin:var(--spacing-lg) 0}ion-item[_ngcontent-%COMP%]{--padding-start: 0;--padding-end: 0}ion-button[_ngcontent-%COMP%]{margin:0 var(--spacing-sm)}p[_ngcontent-%COMP%]{margin:0;font-size:var(--font-size-xl);color:var(--ion-color-medium)}span[_ngcontent-%COMP%]{margin-left:var(--spacing-base)}.subtitle-text[_ngcontent-%COMP%]{font-size:var(--font-size-xl);color:var(--ion-color-medium);white-space:normal;word-wrap:break-word;overflow-wrap:break-word;line-height:1.4;margin-top:var(--spacing-base)}"]});var Re=ue;var Ot=()=>["Live Music","Bipoc","Wheelchair Accessible"],qt=(s,t)=>t.id;function Bt(s,t){if(s&1&&(a(0,"ion-segment-button",4),d(1),r()),s&2){let e=t.$implicit;g("value",e.id),l(),M(" ",e.label," ")}}function zt(s,t){if(s&1&&I(0,"app-camp-registration",8),s&2){let e=m(2);g("enabled",e.festival.camp_registration)("eventRegistration",e.festival.event_registration)("musicRegistration",e.festival.music_registration)("eventEditing",e.festival.event_editing)("campEditing",e.festival.camp_editing)("artEditing",e.festival.art_editing)("mapDirection",e.festival.map_direction)("pin",e.festival.pin)("directionsText",e.festival.directions)("hideCampsArtEvents",e.festival.hidden_features)("directions",e.festival.directions!==null)("requirePin",e.festival.pin!==null)("vanity",e.festival.vanity)}}function Qt(s,t){if(s&1&&I(0,"app-camp-registration",9),s&2){let e=m(2);g("enabled",e.festival.camp_registration)("eventRegistration",e.festival.event_registration)("musicRegistration",e.festival.music_registration)("eventEditing",e.festival.event_editing)("campEditing",e.festival.camp_editing)("artEditing",e.festival.art_editing)("mapDirection",e.festival.map_direction)("pin",e.festival.pin)("directionsText",e.festival.directions)("directions",e.festival.directions!==null)("requirePin",e.festival.pin!==null)("vanity",e.festival.vanity)}}function Ht(s,t){var e;if(s&1){let n=x();a(0,"app-message-settings",15),u("saved",function(o){c(n);let O=m(2);return p(O.saveMessageSettings(o))}),r()}if(s&2){let n=m(2);g("server",n.mastodonServer(n.festival.mastodon_handle))("username",n.mastodonUsername(n.festival.mastodon_handle))("inboxEmail",n.festival.inbox_email)("rssFeed",n.festival.rss_feed)("primaryColor",(e=n.festival.theme==null?null:n.festival.theme.primaryColor)!=null?e:"#f61067")}}function jt(s,t){if(s&1){let e=x();a(0,"app-placement-settings",16),u("saved",function(i){c(e);let o=m(2);return p(o.savePlacementSettings(i))}),r()}if(s&2){let e=m(2);g("campFormUrl",e.festival.placement_form_camps)("artFormUrl",e.festival.placement_form_art)("mutantVehicleFormUrl",e.festival.placement_form_cars)}}function Zt(s,t){if(s&1){let e=x();a(0,"app-volunteeripate-settings",17),u("saved",function(i){c(e);let o=m(2);return p(o.saveVoluneeripateSettings(i))}),r()}if(s&2){let e=m(2);g("identifier",e.festival.volunteeripate_identifier)("domain",e.festival.volunteeripate_domain)("uniqueId",e.festival.vanity)}}function Yt(s,t){if(s&1){let e=x();a(0,"app-event-types",18),u("eventTypesChange",function(i){c(e);let o=m(2);return p(o.saveEventTypes(i))}),r()}if(s&2){let e=m(2);g("maxTypes",e.festival.max_event_types)("eventTypes",e.festival.event_types)}}function Gt(s,t){if(s&1){let e=x();a(0,"app-event-types",19),u("eventTypesChange",function(i){c(e);let o=m(2);return p(o.saveMusicTypes(i))}),r()}if(s&2){let e=m(2);g("defaultTypes",Oe(3,Ot))("maxTypes",e.festival.max_music_types)("eventTypes",e.festival.music_types)}}function Jt(s,t){s&1&&I(0,"app-custom-fields-editor",20)(1,"br")(2,"app-custom-fields-editor",20),s&2&&(g("schemaType","camps"),l(2),g("schemaType","art"))}function Kt(s,t){if(s&1&&d(0),s&2){let e=m(3);M(" Delete ",e.festival.name," ")}}function Xt(s,t){s&1&&d(0," Delete ")}function $t(s,t){if(s&1){let e=x();a(0,"ion-row",21)(1,"ion-col")(2,"ion-text"),d(3),r()(),a(4,"ion-col",22)(5,"ion-button",23),u("click",function(){c(e);let i=m(3);return p(i.clearEvents())}),d(6,"Delete Events"),r()()()}if(s&2){let e=m(3);l(3),M("Delete all events at ",e.festival.name,"? This cannot be undone.")}}function ei(s,t){if(s&1&&d(0),s&2){let e=m(3);M(" Delete ",e.festival.name,"? This cannot be undone. ")}}function ti(s,t){if(s&1&&d(0),s&2){let e=m(3);M(" Delete all camps, events and art at ",e.festival.name,"? This cannot be undone. ")}}function ii(s,t){if(s&1){let e=x();a(0,"ion-card",0)(1,"ion-card-content")(2,"ion-card-header")(3,"ion-card-title"),f(4,Kt,1,1)(5,Xt,1,0),r()(),a(6,"ion-grid"),f(7,$t,7,1,"ion-row",21),a(8,"ion-row",21)(9,"ion-col")(10,"ion-text"),f(11,ei,1,1)(12,ti,1,1),r()(),a(13,"ion-col",22)(14,"ion-button",23),u("click",function(){c(e);let i=m(2);return p(i.deleteBurn())}),d(15,"Delete All"),r()()()()()()}if(s&2){let e=m(2);l(4),v(e.canDeleteBurn?4:5),l(3),v(e.canDeleteBurn?-1:7),l(4),v(e.canDeleteBurn?11:12)}}function ni(s,t){if(s&1&&(a(0,"div",7),f(1,zt,1,13,"app-camp-registration",8),f(2,Qt,1,12,"app-camp-registration",9),f(3,Ht,1,5,"app-message-settings",10),f(4,jt,1,3,"app-placement-settings",11),f(5,Zt,1,3,"app-volunteeripate-settings",12),f(6,Yt,1,2,"app-event-types",13),f(7,Gt,1,4,"app-event-types",14),f(8,Jt,3,2),f(9,ii,16,3,"ion-card",0),r()),s&2){let e=m();l(),v(e.activeSection()==="options"?1:-1),l(),v(e.activeSection()==="registration"?2:-1),l(),v(e.activeSection()==="settings"?3:-1),l(),v(e.activeSection()==="placement"?4:-1),l(),v(e.activeSection()==="volunteeripate"?5:-1),l(),v(e.activeSection()==="eventTypes"?6:-1),l(),v(e.activeSection()==="musicTypes"?7:-1),l(),v(e.activeSection()==="questions"?8:-1),l(),v(e.activeSection()==="delete"?9:-1)}}var ge=class ge{constructor(){this.vanity=F();this.api=b(Q);this.location=b(Be);this.alert=b(H);this.canDeleteBurn=!1;this.router=b(ze);this.activeSection=w("options");this.sections=[{id:"options",label:"Options"},{id:"registration",label:"Registration"},{id:"settings",label:"Settings"},{id:"placement",label:"Placement"},{id:"volunteeripate",label:"Volunteeripate"},{id:"eventTypes",label:"Event Types"},{id:"musicTypes",label:"Music Types"},{id:"questions",label:"Questions"},{id:"delete",label:"Delete"}]}ngOnInit(){return y(this,null,function*(){var e,n;let t=this.vanity();t&&(this.festival=yield this.api.getFestivalByVanity(t,!0,!1),this.festival&&!((e=this.festival)!=null&&e.max_event_types)&&(this.festival.max_event_types=2),this.festival&&!((n=this.festival)!=null&&n.max_music_types)&&(this.festival.max_music_types=2))})}saveEventTypes(t){return y(this,null,function*(){this.festival&&(this.festival.event_types=t.eventTypes,this.festival.max_event_types=t.maxTypes,yield this.api.setEventTypes(this.festival),this.location.back())})}saveMusicTypes(t){return y(this,null,function*(){this.festival&&(this.festival.music_types=t.eventTypes,this.festival.max_music_types=t.maxTypes,yield this.api.setMusicTypes(this.festival),this.location.back())})}saveVoluneeripateSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setVolunteeripateSettings(this.festival.vanity,t),this.location.back())})}savePlacementSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setPlacementSettings(this.festival.vanity,t),this.location.back())})}saveMessageSettings(t){return y(this,null,function*(){this.festival&&(yield this.api.setMessageSettings({mastodon_handle:t.mastodonHandle,inbox_email:t.inboxEmail,festival_vanity:this.festival.vanity,rss_feed:t.rssFeed,theme:t.theme}),this.location.back())})}deleteBurn(){return y(this,null,function*(){(yield this.clearData(this.canDeleteBurn))&&(this.canDeleteBurn=!0)})}clearData(t){return y(this,null,function*(){var e,n;return this.api.isAdmin(this.api.festivalId)?!(yield _e(this.alert,t?`Are you sure you want to delete ${(e=this.festival)==null?void 0:e.name}?`:"Are you sure you want to delete all camps, art and events?","Delete"))||!(yield _e(this.alert,t?`Are you super sure you want to DELETE ${(n=this.festival)==null?void 0:n.name.toUpperCase()}?`:"Are you super sure you want to DELETE ALL CAMPS, ARTS & EVENTS?","Yes"))?!1:(yield this.api.clearData(t),t||this.api.sendMessage('All camps, art and events have been deleted. Be sure to click "Publish" to apply the changes to the app.'),this.api.clearCache(),t&&(this.api.signOut(),this.router.navigateByUrl("/auth")),!0):(this.api.sendMessage("This feature is not available to you."),!1)})}mastodonUsername(t){return rt(t)}mastodonServer(t){return st(t)}clearEvents(){return y(this,null,function*(){if(!this.api.isAdmin(this.api.festivalId))this.api.sendMessage("This feature is not available to you.");else{if(!(yield _e(this.alert,"Are you sure you want to delete all events?","Delete"))||!(yield _e(this.alert,"Are you super sure you want DELETE events?","Yes")))return;yield this.api.clearEvents(),this.api.sendMessage('All events have been deleted. Be sure to click "Publish" to apply the changes to the app.'),this.api.clearCache()}})}};ge.\u0275fac=function(e){return new(e||ge)},ge.\u0275cmp=S({type:ge,selectors:[["app-settings"]],inputs:{vanity:[1,"vanity"]},decls:13,vars:4,consts:[["color","primary"],["slot","start"],["routerLink","../"],["mode","md",3,"ngModelChange","scrollable","ngModel"],[3,"value"],[3,"fullscreen"],[1,"border"],[1,"pad-below","ion-padding-top"],["mode","options",3,"enabled","eventRegistration","musicRegistration","eventEditing","campEditing","artEditing","mapDirection","pin","directionsText","hideCampsArtEvents","directions","requirePin","vanity"],["mode","registration",3,"enabled","eventRegistration","musicRegistration","eventEditing","campEditing","artEditing","mapDirection","pin","directionsText","directions","requirePin","vanity"],[3,"server","username","inboxEmail","rssFeed","primaryColor"],[3,"campFormUrl","artFormUrl","mutantVehicleFormUrl"],[3,"identifier","domain","uniqueId"],[3,"maxTypes","eventTypes"],["typeTitle","Music Types",3,"defaultTypes","maxTypes","eventTypes"],[3,"saved","server","username","inboxEmail","rssFeed","primaryColor"],[3,"saved","campFormUrl","artFormUrl","mutantVehicleFormUrl"],[3,"saved","identifier","domain","uniqueId"],[3,"eventTypesChange","maxTypes","eventTypes"],["typeTitle","Music Types",3,"eventTypesChange","defaultTypes","maxTypes","eventTypes"],[3,"schemaType"],[1,"ion-align-items-center"],["size","auto",1,"ion-justify-content-end"],["color","dark",3,"click"]],template:function(e,n){e&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),I(3,"ion-back-button"),r(),a(4,"ion-title",2),d(5,"Settings"),r()(),a(6,"ion-toolbar")(7,"ion-segment",3),C("ngModelChange",function(o){return h(n.activeSection,o)||(n.activeSection=o),o}),Ce(8,Bt,2,2,"ion-segment-button",4,qt),r()()(),a(10,"ion-content",5)(11,"div",6),f(12,ni,10,9,"div",7),r()()),e&2&&(l(7),g("scrollable",!0),_("ngModel",n.activeSection),l(),fe(n.sections),l(2),g("fullscreen",!0),l(2),v(n.festival?12:-1))},dependencies:[Xe,nt,Ke,Ge,Je,U,P,k,R,D,je,ie,xe,we,Te,Se,N,W,A,et,Ie,ct,Pe,Ue,De,Re],styles:["ion-segment-button[_ngcontent-%COMP%]{font-weight:700;font-size:var(--font-size-small)}"]});var _t=ge;export{_t as SettingsPage}; diff --git a/.admin-app/chunk-XVLNEKIQ.js b/.admin-app/chunk-XVLNEKIQ.js deleted file mode 100644 index 43f29fa8..00000000 --- a/.admin-app/chunk-XVLNEKIQ.js +++ /dev/null @@ -1 +0,0 @@ -import{a as le}from"./chunk-36OD2M2C.js";import{a as re}from"./chunk-NIJZXRAZ.js";import"./chunk-OIMHMYK4.js";import{a as oe}from"./chunk-5B2MUMUK.js";import"./chunk-DUKSTT3K.js";import{A as Y,B as Z,O as ee,U as te,a as Q,da as ie,ga as ne,ja as v,l as X}from"./chunk-LIWDDRYP.js";import{K}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as T,Aa as _,Ba as P,D as N,Db as R,Ec as q,Fc as J,H as a,Ma as F,Mc as C,P as k,Ra as x,Ua as g,Wb as A,X as d,Y as f,aa as w,ba as p,ca as l,cc as B,da as r,dc as G,ea as s,ec as H,fc as $,ja as M,jb as S,kb as V,la as D,lc as j,na as c,nb as O,p as b,rc as W,s as y,sc as z,t as I,vc as U}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as E}from"./chunk-LNJ3S2LQ.js";function de(i,t){if(i&1){let e=M();l(0,"ion-item",2),D("click",function(){y(e);let o=c();return I(o.link(o.url()))}),s(1,"ion-icon",3),_(2),r()}if(i&2){let e=c();a(),p("name",e.icon()),a(),P(e.text())}}function fe(i,t){if(i&1){let e=M();l(0,"div",4),D("click",function(){y(e);let o=c();return I(o.link(o.url()))}),r()}if(i&2){let e=c();p("innerHTML",e.html(),N)}}var u=class u{constructor(){this.text=g("");this.url=g("");this.icon=x(()=>{let t=this.url(),e=this.text();return console.log(t),t.includes("tel:")||t.includes("sms:")?"call-outline":t.includes("mailto:")?"mail-outline":t.includes("maps.")?"compass-outline":t.includes("youtu.")?"tv-outline":e.includes("ticket")?"ticket-outline":"link-outline"});this.simple=x(()=>!this.text().includes("<"));this.html=x(()=>{let t=this.text();return this.removeTagsExceptAllowed(t,["b","h1","h2","h3","h4","code","img","small","br","center","p","i","u","ul","li","ol"])});v({linkOutline:ee,compass:Y,compassOutline:Z,callOutline:X,mailOutline:te,ticketOutline:ie,tvOutline:ne})}link(t){console.log("click",t)}removeTagsExceptAllowed(t,e){let n=e.map(ce).join("|"),o=new RegExp("]+)(?:>)(?!)","gi");function ce(L){return L.replace(/([\\\/<>+\-*!(){}.^$|\[\]])/g,"\\$&")}return t.replace(o,(L,pe)=>n.includes(pe)?L:"")}};u.\u0275fac=function(e){return new(e||u)},u.\u0275cmp=k({type:u,selectors:[["app-link"]],inputs:{text:[1,"text"],url:[1,"url"]},decls:2,vars:1,consts:[["lines","none","detail","true"],[3,"innerHTML"],["lines","none","detail","true",3,"click"],["slot","start",3,"name"],[3,"click","innerHTML"]],template:function(e,n){e&1&&d(0,de,3,2,"ion-item",0)(1,fe,1,1,"div",1),e&2&&f(n.simple()?0:1)},dependencies:[C,z],encapsulation:2});var h=u;var ge=i=>[i],ae=(i,t)=>t.id;function ke(i,t){if(i&1&&s(0,"app-link",10),i&2){let e=t.$implicit;p("routerLink","../link/"+F(2,ge,e.id))("text",e.title)}}function _e(i,t){if(i&1&&(l(0,"ion-card")(1,"ion-card-content")(2,"ion-list"),T(3,ke,1,4,"app-link",10,ae),r()()()),i&2){let e=t.$implicit;a(3),w(e.links)}}function xe(i,t){if(i&1&&T(0,_e,5,0,"ion-card",null,ae),i&2){let e=c(2);w(e.groups)}}function Ce(i,t){if(i&1&&(s(0,"app-image-card",9),d(1,xe,2,0)),i&2){let e=c();p("url",e.festivalImage())("title",e.title)("description",e.noLinks?"Links are buttons that appear in the dust app that will open a browser window, call a phone number or email.":""),a(),f(e.noLinks?-1:1)}}function ve(i,t){i&1&&s(0,"app-spinner")}var m=class m{constructor(){this.api=b(K);this.router=b(S);this.vanity=g();this.title="";this.busy=!0;this.groups=[];this.noLinks=!1;v({add:Q})}ionViewWillEnter(){return E(this,null,function*(){this.busy=!0,yield this.api.setFestivalByVanity(this.vanity()),this.title=this.api.festivalTitle(),this.groups=this.group(yield this.api.links()),this.noLinks=this.groups.length===0||this.groups[0].links.length==0,console.log(this.groups),this.busy=!1})}group(t){let e=[],n={id:1,links:[]};for(let o of t)o.title.startsWith("#")&&(o.title=o.title.substring(1),n.links.length>0&&(e.push(n),n={id:n.id+1,links:[]})),n.links.push(o);return e.push(n),e}festivalImage(){return this.api.imageURL(this.api.festivalImage())}};m.\u0275fac=function(e){return new(e||m)},m.\u0275cmp=k({type:m,selectors:[["app-links"]],inputs:{vanity:[1,"vanity"]},decls:14,vars:2,consts:[["color","primary"],["slot","start"],["routerLink","../"],["slot","end"],["routerLink","../link/new"],["name","add"],[3,"fullscreen"],[1,"border"],["title","Add Link","routeTo","../link/new"],["routeTo","../link/new",3,"url","title","description"],[1,"clickable",3,"routerLink","text"]],template:function(e,n){e&1&&(l(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-buttons",1),s(3,"ion-back-button"),r(),l(4,"ion-title",2),_(5,"Links"),r(),l(6,"ion-buttons",3)(7,"ion-button",4),s(8,"ion-icon",5),r()()()(),l(9,"ion-content",6)(10,"div",7),d(11,Ce,2,4)(12,ve,1,0,"app-spinner"),r(),s(13,"app-footer",8),r()),e&2&&(a(9),p("fullscreen",!0),a(2),f(n.busy?12:11))},dependencies:[oe,R,O,V,W,J,G,A,q,B,j,C,H,le,$,U,re,h],styles:["ion-item[_ngcontent-%COMP%]{cursor:pointer}"]});var se=m;export{se as LinksPage}; diff --git a/.admin-app/chunk-Y6ZHLRNP.js b/.admin-app/chunk-Y6ZHLRNP.js deleted file mode 100644 index 9c0655a4..00000000 --- a/.admin-app/chunk-Y6ZHLRNP.js +++ /dev/null @@ -1,3 +0,0 @@ -import{a as ke,b as Le}from"./chunk-ZOFWWE63.js";import{a as Oe}from"./chunk-STDSP4D6.js";import"./chunk-GPVDUW6Q.js";import{a as Te}from"./chunk-KCPLCCSF.js";import{a as Ve}from"./chunk-WRLAXAJB.js";import{a as Pe}from"./chunk-5B2MUMUK.js";import{a as Ie,c as m}from"./chunk-OZ2IKH4J.js";import"./chunk-ZHFJF7NS.js";import"./chunk-A5RC3O7B.js";import"./chunk-CVA27SDO.js";import"./chunk-U5OWWBBZ.js";import"./chunk-HC6MZPB3.js";import"./chunk-YMI2B6JE.js";import"./chunk-L4IPHJNS.js";import"./chunk-NPRM7GGH.js";import"./chunk-SFJBRZ2Y.js";import"./chunk-I5V6RRU4.js";import"./chunk-2EOHHFOF.js";import"./chunk-JXIEZMHN.js";import"./chunk-ZMJ3RQA5.js";import"./chunk-MCRJI3T3.js";import"./chunk-QDGYTOUC.js";import"./chunk-VLNXCBKY.js";import"./chunk-MM5QLNJM.js";import"./chunk-3573TPBU.js";import{b as Ee,ja as Me,v as Se}from"./chunk-LIWDDRYP.js";import{G as xe,K as we,c as ye,e as be,l as f,m as V,o as F,p as R,q as D,r as z,t as W,u as B,v as Ce}from"./chunk-OQVFSD37.js";import"./chunk-PFLI22GG.js";import{$ as k,Aa as u,Ba as A,Bb as Q,Bc as pe,Db as X,E as N,Eb as ee,Ec as he,Fa as T,Fc as _e,Ga as E,H as r,Ha as S,Ic as me,Mc as ue,Nc as ve,P as $,Sc as ge,Tc as fe,Ua as Z,Wb as te,X as y,Y as b,Za as G,_ as O,aa as L,ba as _,ca as s,cc as ie,da as l,dc as ne,ea as x,ec as ae,fc as oe,hb as H,ja as w,la as v,lc as re,na as c,nb as J,p as M,rc as se,s as d,sc as le,t as p,tb as K,vc as ce,wa as j,wb as Y,xc as de,za as q}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as C}from"./chunk-LNJ3S2LQ.js";function We(o,t){if(o&1&&(s(0,"ion-select-option",12),u(1),l()),o&2){let e=t.$implicit;_("value",e.id),r(),A(e.name)}}function Ae(o,t){if(o&1){let e=w();s(0,"ion-item",9)(1,"ion-select",25),v("ionChange",function(i){d(e);let a=c(2);return p(a.locationChange(i))}),S("ngModelChange",function(i){d(e);let a=c(2);return E(a.eventLocation,i)||(a.eventLocation=i),p(i)}),k(2,We,2,2,"ion-select-option",12,O),l()()}if(o&2){let e=c(2);r(),_("value",e.eventLocation),T("ngModel",e.eventLocation),r(),L(e.locations)}}function Fe(o,t){if(o&1){let e=w();s(0,"ion-item",9)(1,"ion-input",26),S("ngModelChange",function(i){d(e);let a=c(2);return E(a.event.other_location,i)||(a.event.other_location=i),p(i)}),l()()}if(o&2){let e=c(2);r(),T("ngModel",e.event.other_location)}}function Re(o,t){o&1&&(s(0,"ion-item")(1,"ion-note",27),u(2," Please describe the location of your event. If your event is at a theme camp or art then it is best to coordinate with the camp/art lead to have them add your event. If you are a theme camp / art lead then be sure to register your camp before adding events."),l()())}function ze(o,t){if(o&1&&(s(0,"ion-select-option",12),u(1),l()),o&2){let e=t.$implicit;_("value",e),r(),A(e)}}function Be(o,t){if(o&1&&x(0,"img",16),o&2){let e=c(2);_("src",e.imageUrl,N)}}function Ue(o,t){o&1&&(s(0,"p"),u(1,"Click to choose an optional image for this event"),l())}function Ne(o,t){if(o&1){let e=w();s(0,"div",18)(1,"div",28)(2,"app-date-range",29),v("allDayChanged",function(i){let a=d(e).$implicit,g=c(2);return p(g.allDayChanged(a,i))})("endChanged",function(i){let a=d(e).$implicit,g=c(2);return p(g.endChanged(a,i))})("startChanged",function(i){let a=d(e).$implicit,g=c(2);return p(g.startChanged(a,i))}),l()(),s(3,"div",30)(4,"app-tooltip",31)(5,"ion-button",32),v("click",function(){let i=d(e).$implicit,a=c(2);return p(a.deleteItem(i))}),x(6,"ion-icon",33),l()()()()}if(o&2){let e=t.$implicit,n=t.$index,i=c(2);r(2),_("label",n===0?"":"Repeats")("minTime",i.minTime)("maxTime",i.maxTime)("id",e.id.toString())("startTime",e.start)("endTime",e.end),r(3),_("hidden",i.occurrences.length===1)}}function $e(o,t){if(o&1){let e=w();s(0,"ion-button",23),v("click",function(){d(e);let i=c(2);return p(i.delete())}),u(1,"Delete"),l(),u(2,"\xA0 ")}}function je(o,t){o&1&&(s(0,"ion-button",20),u(1,"\xA0"),l())}function qe(o,t){if(o&1){let e=w();s(0,"div",6)(1,"ion-card",7)(2,"ion-card-content",8)(3,"ion-list"),y(4,Ae,4,2,"ion-item",9),y(5,Fe,2,1,"ion-item",9),y(6,Re,3,0,"ion-item"),s(7,"ion-item",10)(8,"ion-select",11),S("ngModelChange",function(i){d(e);let a=c();return E(a.event.event_type,i)||(a.event.event_type=i),p(i)}),k(9,ze,2,2,"ion-select-option",12,O),l()(),s(11,"ion-item",9)(12,"ion-input",13),S("ngModelChange",function(i){d(e);let a=c();return E(a.event.title,i)||(a.event.title=i),p(i)}),l()(),s(13,"ion-item",9)(14,"ion-textarea",14),v("ionInput",function(){d(e);let i=c();return p(i.descriptionChanged())}),S("ngModelChange",function(i){d(e);let a=c();return E(a.event.description,i)||(a.event.description=i),p(i)}),l()(),s(15,"div",15),v("click",function(){d(e);let i=j(30);return p(i.click())}),y(16,Be,1,1,"img",16),y(17,Ue,2,0,"p"),l(),x(18,"div",17),k(19,Ne,7,7,"div",18,O),l(),s(21,"div",19),y(22,$e,3,0)(23,je,2,0,"ion-button",20),s(24,"ion-button",21),v("click",function(){d(e);let i=c();return p(i.save())}),u(25,"Save"),l(),s(26,"app-tooltip",22)(27,"ion-button",23),v("click",function(){d(e);let i=c();return p(i.addItem())}),u(28,"Add Occurrence"),l()()(),s(29,"input",24,0),v("change",function(i){d(e);let a=c();return p(a.onFileSelected(i))}),l()()()()}if(o&2){let e=c();r(),_("disabled",!(e.isOwner||e.isAdmin)),r(3),b(e.openRegistration?-1:4),r(),b(!e.event.hosted_by_camp&&!e.event.located_at_art?5:-1),r(),b(e.openRegistration?6:-1),r(2),_("multiple",!0)("value",e.event.event_type),T("ngModel",e.event.event_type),r(),L(e.eventTypes),r(3),T("ngModel",e.event.title),r(2),_("spellcheck",!0)("rows",6)("autoGrow",!0),T("ngModel",e.event.description),_("maxlength",1e3)("helperText",e.helperText),r(),q(e.uploading?"disabled":""),r(),b(e.imageUrl?16:-1),r(),b(e.imageUrl?-1:17),r(2),L(e.occurrences),r(3),b(e.id?22:23),r(2),_("disabled",e.busy)}}function Ze(o,t){o&1&&x(0,"app-spinner")}var P=class P{constructor(){this.api=M(we);this.alert=M(me);this.location=M(G);this.route=M(H);this.vanity=Z();this.busy=!0;this.helperText="";this.event={description:"",title:"",occurrence_set:"[]",hosted_by_camp:void 0,id:void 0,event_type:"Event"};this.minTime=new Date().toISOString();this.maxTime=new Date().toISOString();this.locations=[];this.uploading=!1;this.isOwner=!1;this.isAdmin=!1;this.atArt=!1;this.openRegistration=!1;this.imageChanged=!1;this.beforeDescription="";this.occurrences=[];this.eventTypes=[];this.musicTypes=[];this.timezone=this.api.currentTimeZone();Me({addOutline:Ee,closeOutline:Se})}ionViewWillEnter(){return C(this,null,function*(){var g,I,U;this.busy=!0,yield this.api.setFestivalByVanity(this.vanity()),this.id=f(this.id);let t=yield this.api.camps({cached:!0},!0),e=yield this.api.art({cached:!0});this.locations=[],t.map(h=>this.locations.push({id:"c-"+h.id,name:`${h.name}`,type:"camp"})),e.map(h=>this.locations.push({id:"a-"+h.id,name:`${h.name} \u{1F3A8}`,type:"art"})),this.locations.push({id:"o-1",name:"Open Camping / Other",type:"other"}),this.openRegistration=!1,t.length==0&&e.length==0&&(this.openRegistration=!0);let n=yield this.api.getFestival(this.api.festivalId,{cached:!0});this.timezone=n.timezone,this.eventTypes=n.event_types?n.event_types.split(` -`):ke,this.musicTypes=n.music_types?n.music_types.split(` -`):Le,this.timezone||(this.timezone=this.api.currentTimeZone());let i=!this.id;i?(this.event=yield this.api.newEvent(),this.event.hosted_by_camp=this.route.snapshot.queryParams.camp,this.event.located_at_art=this.route.snapshot.queryParams.art,!this.event.hosted_by_camp&&!this.event.located_at_art&&(t.length>0?this.event.hosted_by_camp=t[0].id:e.length>0&&(this.event.located_at_art=`${e[0].id}`))):this.event=yield this.api.getEvent(this.id),this.event.hosted_by_camp&&(this.event.hosted_by_camp=Math.trunc(this.event.hosted_by_camp)),this.event.event_type=this.event.event_type.split(","),this.isOwner=this.api.isCampOwner(n.id,this.event.hosted_by_camp)||this.api.isArtOwner(n.id,f(this.event.located_at_art))||(yield this.api.isEventOwner(f(this.event.id)))||i,this.isAdmin=this.api.isAdmin(n.id),this.isAdmin&&this.event.contact&&(this.helperText=`Created by ${this.event.contact}`),this.event.hosted_by_camp?this.eventLocation=(g=this.locations.find(h=>h.id===`c-${f(this.event.hosted_by_camp)}`))==null?void 0:g.id:this.event.located_at_art?this.eventLocation=(I=this.locations.find(h=>h.id===`a-${f(this.event.located_at_art)}`))==null?void 0:I.id:this.eventLocation=(U=this.locations.find(h=>h.type==="other"))==null?void 0:U.id;let a=JSON.parse(this.event.occurrence_set);if(this.occurrences=[],a.length>0)for(let h of a)this.occurrences.push({start:W(h.start_time),end:W(h.end_time),id:this.occurrences.length+1});this.imageUrl=this.api.imageURL(this.event.imageUrl),this.minTime=n.start_time,this.maxTime=W(F(V(n.end_time),12).toISOString()),this.id||this.occurrences.push({start:n.start_time,end:D(R(V(n.start_time),60)),id:1}),this.busy=!1})}locationChange(t){let e=t.detail.value.startsWith("c-")?f(t.detail.value.substring(2)):void 0,n=t.detail.value.startsWith("a-")?f(t.detail.value.substring(2)):void 0;e?this.event.hosted_by_camp=e:n?(this.event.located_at_art=`${n}`,this.event.hosted_by_camp=void 0):(this.event.hosted_by_camp=void 0,this.event.located_at_art=void 0)}startChanged(t,e){if(t.start=e,t.end.endsWith("23:59:59")){t.start=t.start.substring(0,10)+"T00:00:00",t.end=t.start.substring(0,10)+"T23:59:59";return}t.end=D(F(V(e),1))}endChanged(t,e){t.end=e}allDayChanged(t,e){e&&(t.end=t.start.substring(0,10)+"T23:59:59",t.start=t.start.substring(0,10)+"T00:00:00")}addItem(){let t=this.occurrences[this.occurrences.length-1].end;this.occurrences.push({id:this.occurrences.length+1,start:t,end:D(R(V(t),60))})}deleteItem(t){this.occurrences.length!=1&&(this.occurrences=this.occurrences.filter(e=>e.id!==t.id))}save(){return C(this,null,function*(){Ce(this.event);let t=[];for(let e of this.occurrences){let n=new Date(e.start+B(this.timezone)),i=new Date(e.end+B(this.timezone)),a=Math.round((i-n)/1e3/60);if(a<0){yield m(this.alert,"The end time must be after the start time");return}if(a<15){yield m(this.alert,"The event must be at least 15 minutes long");return}if(a>1440&&!this.isAllDay(e)){yield m(this.alert,"The event cannot be longer than 12 hours. For longer events consider adding to your camp description.");return}if(this.event.event_type==""||this.event.event_type.length==0){yield m(this.alert,"The event type must be selected.");return}else if(Array.isArray(this.event.event_type)){let g=yield this.api.getFestival(this.api.festivalId,{cached:!0}),I=ye(g.max_event_types,2);if(this.event.event_type.length>I){yield m(this.alert,`You can choose at most ${I} event types.`);return}this.event.event_type=this.event.event_type.join(",")}if(this.event.title.length<4){yield m(this.alert,"The event title must be set (and longer than 4 characters).");return}if(this.event.event_type==="Event"){yield m(this.alert,"Select at least one event type.");return}if(this.event.description.length<20){yield m(this.alert,"The event description must be set (and longer than 20 characters).");return}if(this.event.description=z(this.event.description),this.event.title=z(this.event.title),this.applyLocation(),!this.event.hosted_by_camp||isNaN(this.event.hosted_by_camp)){if(!this.event.located_at_art&&!this.openRegistration&&!this.event.other_location){yield m(this.alert,"Select the location of the event");return}if(this.openRegistration&&be(this.event.other_location)){yield m(this.alert,"Describe the location of the event");return}this.openRegistration}t.push({start_time:e.start,end_time:e.end})}this.event.occurrence_set=JSON.stringify(t),this.busy=!0;try{let e=yield this.api.addEvent(this.event);this.api.clearCache(),e.message?(this.busy=!1,m(this.alert,e.message)):(e.id&&this.imageChanged&&(yield this.uploadImage(e.id)),this.event.id,this.isAdmin||(yield this.api.setKey(),yield m(this.alert,`The changes you have made will be reviewed by ${this.api.festivalTitle()} prior to publishing in the app.`,"Note")),this.location.back())}finally{this.busy=!1}})}applyLocation(){let t=this.locations.find(e=>e.id===this.eventLocation);t&&t.id&&(t.type==="camp"?(this.event.hosted_by_camp=f(t.id.substring(2)),this.event.other_location=void 0,this.event.located_at_art=void 0):t.type==="art"?(this.event.located_at_art=`${f(t.id.substring(2))}`,this.event.other_location=void 0,this.event.hosted_by_camp=void 0):(this.event.hosted_by_camp=void 0,this.event.located_at_art=void 0))}isAllDay(t){return t.start.endsWith("00:00:00")&&t.end.endsWith("23:59:59")}delete(){return C(this,null,function*(){(yield Ie(this.alert,"Are you sure you want to delete this event?"))&&(yield this.api.deleteEvent(this.event.id),this.api.clearCache(),this.location.back())})}uploadImage(t){return C(this,null,function*(){if(this.blob)try{this.uploading=!0,this.event.imageUrl=yield this.api.setImage(this.blob,t),yield this.api.addEvent(this.event)}finally{this.uploading=!1,this.imageChanged=!1}})}descriptionChanged(){this.event.description.length-this.beforeDescription.length>10&&(this.event.description=xe(this.event.description)),this.beforeDescription=this.event.description}onFileSelected(t){return C(this,null,function*(){let e=t.target.files[0];if(!e)return;this.blob=yield Te(e,{quality:75,width:300});let n=URL.createObjectURL(this.blob);this.imageUrl=n,this.imageChanged=!0})}};P.\u0275fac=function(e){return new(e||P)},P.\u0275cmp=$({type:P,selectors:[["app-event"]],inputs:{id:"id",vanity:[1,"vanity"]},decls:12,vars:2,consts:[["fileUpload",""],["color","primary"],["slot","start"],["slot","end"],[3,"click"],[3,"fullscreen"],[1,"border"],[1,"form",3,"disabled"],[1,"form"],["lines","none"],["lines","none",1,"app-select","ion-padding-top"],["labelPlacement","stacked","label","Type","interface","popover","placeholder","Select the type of event",1,"app-select",3,"ngModelChange","multiple","value","ngModel"],[3,"value"],["label","Title","labelPlacement","stacked","placeholder","Title of the event",3,"ngModelChange","ngModel"],["lines","none","labelPlacement","stacked","label","Description","placeholder","Description of the event",3,"ionInput","ngModelChange","spellcheck","rows","autoGrow","ngModel","maxlength","helperText"],[1,"image-container","center",3,"click"],[3,"src"],[1,"ion-padding-top"],[2,"display","flex","border-bottom","1px solid var(--ion-color-light)","margin-bottom","8px"],[1,"horizontal",2,"padding-left","1rem","padding-right","1rem"],["fill","clear"],[3,"click","disabled"],["text","Add occurrence"],["color","secondary",3,"click"],["type","file",1,"file-input",3,"change"],["label","Location","labelPlacement","stacked","interface","popover","placeholder","Select location of event",1,"app-select",3,"ionChange","ngModelChange","value","ngModel"],["labelPlacement","stacked","label","Location Description","placeholder","Description of the location",3,"ngModelChange","ngModel"],[1,"ion-padding-start","ion-padding-end","ion-padding-bottom"],[1,"wide","range"],["size","wide",3,"allDayChanged","endChanged","startChanged","label","minTime","maxTime","id","startTime","endTime"],[2,"width","60px","padding-top","32px"],["position","right","text","Remove this occurrence"],["color","secondary",3,"click","hidden"],["size","small","name","close-outline"]],template:function(e,n){e&1&&(s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),s(4,"ion-title"),u(5,"Event"),l(),s(6,"ion-buttons",3)(7,"ion-button",4),v("click",function(){return n.save()}),u(8,"Save"),l()()()(),s(9,"ion-content",5),y(10,qe,31,20,"div",6)(11,Ze,1,0,"app-spinner"),l()),e&2&&(r(9),_("fullscreen",!0),r(),b(n.busy?11:10))},dependencies:[de,ue,X,K,Q,Y,J,se,_e,ne,te,he,re,ae,oe,ce,le,ge,pe,ve,fe,Ve,Oe,ie,Pe,ee],styles:[".horizontal[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between}.bottom-line[_ngcontent-%COMP%]{border-bottom:1px solid var(--ion-color-light)}.range[_ngcontent-%COMP%]{padding-left:var(--spacing-1xl)}"]});var De=P;export{De as EventPage}; diff --git a/.admin-app/chunk-VDXUCHAY.js b/.admin-app/chunk-YVBFHLPR.js similarity index 71% rename from .admin-app/chunk-VDXUCHAY.js rename to .admin-app/chunk-YVBFHLPR.js index fdf0376e..7ef5d8a9 100644 --- a/.admin-app/chunk-VDXUCHAY.js +++ b/.admin-app/chunk-YVBFHLPR.js @@ -1 +1 @@ -import{P as n,ca as o,da as i,oa as c,pa as r,xc as s}from"./chunk-FDEJMFAU.js";var m=["*"],e=class e{constructor(){}};e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n({type:e,selectors:[["app-note"]],ngContentSelectors:m,decls:2,vars:0,template:function(t,l){t&1&&(c(),o(0,"ion-note"),r(1),i())},dependencies:[s],styles:["ion-note[_ngcontent-%COMP%]{margin-left:var(--spacing-lg);float:left;margin-bottom:var(--spacing-lg)}"]});var a=e;export{a}; +import{P as n,da as o,ea as i,pa as c,qa as r,yc as s}from"./chunk-LVL3PYF7.js";var m=["*"],e=class e{constructor(){}};e.\u0275fac=function(t){return new(t||e)},e.\u0275cmp=n({type:e,selectors:[["app-note"]],ngContentSelectors:m,decls:2,vars:0,template:function(t,l){t&1&&(c(),o(0,"ion-note"),r(1),i())},dependencies:[s],styles:["ion-note[_ngcontent-%COMP%]{margin-left:var(--spacing-lg);float:left;margin-bottom:var(--spacing-lg)}"]});var a=e;export{a}; diff --git a/.admin-app/chunk-ZCXNVPSO.js b/.admin-app/chunk-ZCXNVPSO.js new file mode 100644 index 00000000..143a75b6 --- /dev/null +++ b/.admin-app/chunk-ZCXNVPSO.js @@ -0,0 +1 @@ +import{a as dt}from"./chunk-F5YC2F3D.js";import{a as ct}from"./chunk-3XGYA3SU.js";import{a as lt}from"./chunk-RKW74V7I.js";import{a as rt}from"./chunk-K6ROGVP7.js";import"./chunk-DUKSTT3K.js";import{K as at,T as ot,a as it,i as nt,oa as st}from"./chunk-QF32E4V4.js";import{J as Z,K as et,e as Y,j as w}from"./chunk-TCALQ33I.js";import{a as tt}from"./chunk-PFLI22GG.js";import{$ as F,$a as k,Ba as l,Ca as v,Eb as U,Ec as q,Fa as T,Fc as J,Gc as K,H as n,Oc as Q,P as M,Sc as X,Y as d,Z as c,aa as I,ba as S,ca as m,da as a,dc as G,ea as o,eb as E,ec as V,fa as p,fc as L,gc as N,ka as y,kb as D,lb as B,ma as x,mc as $,oa as s,ob as O,p as b,s as g,sc as R,t as C,tc as j,vc as H,wc as z,yc as W}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as P,b as A,h}from"./chunk-LNJ3S2LQ.js";function pt(i,e){i&1&&(a(0,"ion-button",2),p(1,"ion-icon",6),o())}function _t(i,e){i&1&&p(0,"app-spinner")}function ht(i,e){if(i&1){let t=y();a(0,"ion-toolbar")(1,"ion-searchbar",11),x("ionInput",function(_){g(t);let u=s(2);return C(u.handleSearch(_))}),o(),a(2,"ion-button",12),x("click",function(){g(t);let _=s(2);return C(_.toggleGrid())}),p(3,"ion-icon",13),o()()}if(i&2){let t=s(2);n(),m("debounce",600)("placeholder","Search burns"),n(2),m("name",t.isGrid?"list-outline":"grid-outline")}}function vt(i,e){i&1&&(a(0,"div",9)(1,"h1"),l(2,"Getting Started"),o(),a(3,"h4",14),l(4," As a regional organizer you can click the button below to create a new regional burn. "),o()())}function ft(i,e){if(i&1&&p(0,"app-img",17),i&2){let t=s().$implicit;m("height","100%")("src",t.imageUrl)}}function ut(i,e){if(i&1){let t=y();a(0,"div",15)(1,"ion-card",16),x("click",function(){let _=g(t).$implicit,u=s(3);return C(u.open("/"+_.vanity))}),d(2,ft,1,2,"app-img",17),a(3,"ion-card-content",18)(4,"h1"),l(5),o()()(),a(6,"ion-text",19),l(7),o()()}if(i&2){let t=e.$implicit;n(2),c(t.imageUrl?2:-1),n(3),v(t.name),n(2),v(t.name)}}function gt(i,e){if(i&1&&I(0,ut,8,3,"div",15,F),i&2){let t=s(2);S(t.festivals)}}function Ct(i,e){i&1&&(a(0,"p"),l(1,"Dates are not known"),o())}function xt(i,e){if(i&1&&(a(0,"p"),l(1),o()),i&2){let t=s().$implicit;n(),T(" ",t.start," - ",t.end," (in ",t.daysUntil," days) ")}}function bt(i,e){if(i&1){let t=y();a(0,"ion-item",21),x("click",function(){let _=g(t).$implicit,u=s(3);return C(u.open("/"+_.vanity))}),p(1,"app-img",22),a(2,"ion-label")(3,"span"),l(4),o(),d(5,Ct,2,0,"p")(6,xt,2,3,"p"),o(),a(7,"ion-note",1),l(8),o(),a(9,"ion-note",1),l(10),o()()}if(i&2){let t=e.$implicit,r=s(3);m("ngClass",r.classFor(t)),n(),m("width","45px")("height","45px")("src",t.imageUrl),n(3),v(t.name),n(),c(t.unknown_dates?5:6),n(3),v(t.note),n(2),v(t.active?"In Dust":"Hidden")}}function yt(i,e){if(i&1&&(a(0,"div",10)(1,"ion-card")(2,"ion-list"),I(3,bt,11,8,"ion-item",20,F),o()()()),i&2){let t=s(2);m("ngClass",t.festivals.length>0?"":"pad-vertical"),n(3),S(t.festivals)}}function wt(i,e){if(i&1&&(d(0,ht,4,3,"ion-toolbar"),a(1,"div",7)(2,"div",8),d(3,vt,5,0,"div",9),d(4,gt,2,0)(5,yt,5,1,"div",10),o()()),i&2){let t=s();c(t.festivals.length>1||t.filteredBySearch?0:-1),n(3),c(t.noData?3:-1),n(),c(t.isGrid?4:5)}}function Ft(i,e){i&1&&p(0,"app-footer",5)}var f=class f{constructor(){this.api=b(et);this.router=b(D);this.store=b(Z);this.publishing=!1;this.busy=!0;this.addAllowed=!1;this.noData=!1;this.isGrid=!0;this.listArchived=!1;this.buttons=[];this.isNative=tt.isNativePlatform();this.filteredBySearch=!1;this.festivals=[];st({add:it,listOutline:ot,gridOutline:at,bookOutline:nt})}ngOnInit(){this.isGrid=this.store.get("isFestivalList")!=="false"}ionViewWillEnter(){return h(this,null,function*(){if(!this.api.signedIn()){this.router.navigateByUrl("/auth");return}try{this.busy=!0;let e=sessionStorage.openburn;if(!Y(e)){this.router.navigateByUrl(`/${e}`);return}let t=this.api.getAccessInfo(void 0);this.addAllowed=!1,t.hasAdmin&&(this.addAllowed=!0),!t.hasAdmin&&!t.hasCamps&&!t.hasMusic&&!t.hasArt&&!t.hasCamps&&(this.addAllowed=!0),this.buttons=t.hasAdmin&&!this.listArchived?[{title:"Show Archived",method:this.showArchived(),icon:"book-outline"}]:[],yield this.getData(),this.sort(),this.noData=this.addAllowed&&this.festivals.length==0}finally{this.busy=!1}})}showArchived(){return()=>h(this,null,function*(){this.listArchived=!0,this.buttons=[],yield this.getData(),this.sort()})}handleSearch(e){return h(this,null,function*(){let t=e.target.value.toLowerCase();yield this.getData(t),this.filteredBySearch=t.length>0,this.sort()})}getData(e){return h(this,null,function*(){let t=!this.isGrid;this.festivals=this.asFestivalModels(yield this.api.getFestivals(t)),e&&(this.festivals=this.festivals.filter(r=>r.name.toLowerCase().includes(e))),this.listArchived||(this.festivals=this.festivals.filter(r=>!r.archived)),this.festivals.map(r=>{r.imageUrl=this.api.imageURL(r.imageUrl)}),this.addAllowed})}toggleGrid(){return h(this,null,function*(){this.isGrid=!this.isGrid,this.store.set("isFestivalList",this.isGrid.toString()),yield this.getData(),this.sort()})}open(e){if(e=="new"){this.router.navigateByUrl("../new");return}this.api.clearCache(),this.router.navigateByUrl(e)}asFestivalModels(e){return e.map(t=>A(P({},t),{daysUntil:w(t.start_time),start:this.niceFormat(t.start_time),end:this.niceFormat(t.end_time),note:w(t.start_time)>0?w(t.start_time)+" days":t.archived?"Archived":"Past"}))}niceFormat(e){return new Date(e).toLocaleDateString()}classFor(e){return e.active?"":e.daysUntil<0?"past":"hidden"}sort(){this.isGrid?this.filteredBySearch?this.festivals.sort((e,t)=>e.name.localeCompare(t.name)):this.festivals.sort((e,t)=>e.distance-t.distance):this.festivals.sort((e,t)=>new Date(e.start_time)>new Date(t.start_time)?-1:1)}};f.\u0275fac=function(t){return new(t||f)},f.\u0275cmp=M({type:f,selectors:[["app-festivals"]],decls:11,vars:5,consts:[["color","primary"],["slot","end"],["routerLink","../new"],[3,"buttons"],[3,"fullscreen"],["title","New Regional Burn","routeTo","../new"],["name","add"],[1,"large-border"],[1,"container"],[2,"display","flex","align-items","center","flex-direction","column","justify-content","center","height","70vh"],[1,"ion-text-center",3,"ngClass"],["mode","ios","show-clear-button","always",1,"searchbar",3,"ionInput","debounce","placeholder"],["color","dark","fill","clear","slot","end",3,"click"],[3,"name"],[1,"ion-padding","ion-text-center"],[1,"ion-text-center","ion-padding"],["color","light",1,"card",3,"click"],[3,"height","src"],[1,"xcenter"],["color","medium"],[1,"clickable","hoverable",3,"ngClass"],[1,"clickable","hoverable",3,"click","ngClass"],[2,"min-width","45px",3,"width","height","src"]],template:function(t,r){t&1&&(a(0,"ion-header")(1,"ion-toolbar",0)(2,"ion-title"),l(3,"dust"),o(),a(4,"ion-buttons",1),d(5,pt,2,0,"ion-button",2),p(6,"app-side",3),o()()(),a(7,"ion-content",4),d(8,_t,1,0,"app-spinner")(9,wt,6,3),d(10,Ft,1,0,"app-footer",5),o()),t&2&&(n(5),c(r.isNative?-1:5),n(),m("buttons",r.buttons),n(),m("fullscreen",!0),n(),c(r.busy?8:9),n(2),c(r.addAllowed?10:-1))},dependencies:[X,H,W,j,z,q,E,k,ct,rt,lt,U,O,B,R,K,J,V,G,$,Q,L,N,dt],styles:[".container[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:center;flex-wrap:wrap}.card[_ngcontent-%COMP%]{width:300px;height:300px;border-radius:var(--br-xl);flex-basis:40%;cursor:pointer}.hoverable[_ngcontent-%COMP%]:hover{--background: var(--ion-color-light)}.xcenter[_ngcontent-%COMP%]{text-align:center;display:flex;justify-content:center;align-items:center;height:300px}app-img[_ngcontent-%COMP%]{--border-radius: var(--br-xl);padding-right:var(--spacing-lg);width:60px}ion-item[_ngcontent-%COMP%]{width:600px;max-width:100vw}.hidden[_ngcontent-%COMP%]{opacity:.5}.past[_ngcontent-%COMP%]{opacity:.75}app-footer[_ngcontent-%COMP%]{--footer-width: 130px}"]});var mt=f;export{mt as FestivalsPage}; diff --git a/.admin-app/chunk-ZUOMS67J.js b/.admin-app/chunk-ZUOMS67J.js new file mode 100644 index 00000000..75afada6 --- /dev/null +++ b/.admin-app/chunk-ZUOMS67J.js @@ -0,0 +1 @@ +import{K as X}from"./chunk-TCALQ33I.js";import"./chunk-PFLI22GG.js";import{$ as T,Aa as O,Ba as b,Ca as U,Da as B,E as C,Eb as N,Fc as A,G as k,Gc as J,H as o,P as E,Va as M,Xb as $,Y as v,Z as P,_a as L,aa as S,ba as V,ca as d,da as s,dc as H,ea as l,ec as Q,fa as x,hb as D,ka as _,kb as F,ma as f,mc as W,oa as g,p as u,qc as j,s as p,sa as I,sc as q,t as c,ta as R,ua as z,ya as w}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{h as y}from"./chunk-LNJ3S2LQ.js";var ee=["map"];function ie(r,i){if(r&1){let e=_();s(0,"div",12),f("click",function(){let n=p(e).$implicit,a=g();return c(a.select(n))}),s(1,"div",13),b(2),l()()}if(r&2){let e=i.$implicit;O(e.selected?"pin pin-select":"pin"),w("left",e.x+"px")("top",e.y+"px"),d("title",e.label),o(2),U(e.label)}}function te(r,i){if(r&1&&x(0,"div",14),r&2){let e=g();w("left",e.pin.x+"px")("top",e.pin.y+"px"),d("title",e.pin.label)}}function ne(r,i){if(r&1){let e=_();s(0,"ion-footer",11)(1,"ion-button",4),f("click",function(){p(e);let n=g();return c(n.removePin())}),b(2,"Remove Pin"),l()()}if(r&2){let e=g();o(),d("disabled",e.busy)}}var h=class h{constructor(){this.api=u(X);this.router=u(F);this.sanitizer=u(D);this.location=u(L);this.vanity=M();this.id=M();this.camp={name:"",description:"",pin:"",id:void 0,contact_email:"",camp_type:"",publicEvents:!1};this.mapUri="";this.pt={x:0,y:0};this.busy=!1;this.pins=[];this.camps=[]}ionViewWillEnter(){return y(this,null,function*(){yield this.api.setFestivalByVanity(this.vanity()),this.camp=yield this.api.getCamp(this.id());let i=yield this.api.getMap();i.base64?this.mapUri=this.sanitizer.bypassSecurityTrustUrl(i.base64):this.mapUri=this.api.imageURL(`${this.vanity()}/${i.filename}`),this.camps=yield this.api.camps({cached:!0})})}onResize(){this.pins=this.getPins(this.camps,this.camp)}onMapLoad(){this.pins=this.getPins(this.camps,this.camp)}select(i){this.selectedPin&&(this.selectedPin.selected=!1),i.selected=!0,this.camp=i.camp,this.selectedPin=i,console.log("Selected pin:",i)}mapPoint(i){let e=i.clientX,t=i.clientY,a=this.map.nativeElement.getBoundingClientRect(),m=(e-a.x)*1e4/a.width,G=(t-a.y)*1e4/a.height;this.pt={x:Math.ceil(m),y:Math.ceil(G)},this.pin={x:this.pt.x*this.width()/1e4,y:this.pt.y*this.height()/1e4,label:this.camp.name,pt:this.pt,changed:!0};let K=this.pin.x,Z=this.pin.y;return this.selectedPin&&(this.selectedPin.selected=!1,this.selectedPin.changed=!0,this.selectedPin.pt=this.pt),setTimeout(()=>{this.selectedPin&&(this.selectedPin.x=K,this.selectedPin.y=Z)},500),!1}width(){return this.map.nativeElement.getBoundingClientRect().width}height(){return this.map.nativeElement.getBoundingClientRect().height}getPins(i,e){let t=[];for(let n of i)if(n.pin&&n.pin.trim()!=""){let a=JSON.parse(n.pin),m=n.id===(e==null?void 0:e.id);t.push({x:a.x*this.width()/1e4,y:a.y*this.height()/1e4,label:n.name,camp:n,selected:m}),m&&(this.selectedPin=t[t.length-1])}return t}save(){return y(this,null,function*(){this.busy=!0;try{let i=0;for(let e of this.pins)if(e.changed){if(console.log(e),!e.pt){this.api.sendMessage(`Error: No position for ${e.camp.name}`,0,"Error"),this.busy=!1;return}this.api.sendMessage(`Saving ${e.camp.name}...`,1,"Saving"),yield this.api.placeCamp(e.camp.id,e.pt),i++}i||(yield this.api.placeCamp(this.id(),this.pt)),this.api.clearCache(),this.location.back(),this.location.back()}finally{this.busy=!1}})}removePin(){return y(this,null,function*(){this.busy=!0;try{yield this.api.placeCamp(this.id(),void 0),this.api.clearCache(),this.location.back()}finally{this.busy=!1}})}};h.\u0275fac=function(e){return new(e||h)},h.\u0275cmp=E({type:h,selectors:[["app-map"]],viewQuery:function(e,t){if(e&1&&I(ee,5),e&2){let n;R(n=z())&&(t.map=n.first)}},inputs:{vanity:[1,"vanity"],id:[1,"id"]},decls:18,vars:6,consts:[["map",""],["color","primary"],["slot","start"],["slot","end"],[3,"click","disabled"],[3,"fullscreen"],[1,"page2"],[1,"map"],[3,"title","left","top","class"],[1,"placed","pin",3,"title","left","top"],[3,"load","resize","click","src"],[1,"ion-padding","ion-text-center"],[3,"click","title"],[1,"label"],[1,"placed","pin",3,"title"]],template:function(e,t){if(e&1){let n=_();s(0,"ion-header")(1,"ion-toolbar",1)(2,"ion-buttons",2),x(3,"ion-back-button"),l(),s(4,"ion-title"),b(5),l(),s(6,"ion-buttons",3)(7,"ion-button",4),f("click",function(){return p(n),c(t.save())}),b(8,"Save"),l()()()(),s(9,"ion-content",5)(10,"div",6)(11,"div",7),S(12,ie,3,8,"div",8,T),v(14,te,1,5,"div",9),l(),s(15,"img",10,0),f("load",function(){return p(n),c(t.onMapLoad())})("resize",function(){return p(n),c(t.onResize())},k)("click",function(m){return p(n),c(t.mapPoint(m))}),l()()(),v(17,ne,3,1,"ion-footer",11)}e&2&&(o(5),B("Place ",t.camp.name," on Map"),o(2),d("disabled",t.busy),o(2),d("fullscreen",!0),o(3),V(t.pins),o(2),P(t.pin?14:-1),o(),d("src",t.mapUri,C),o(2),P(t.camp.pin&&t.camp.pin.length>0?17:-1))},dependencies:[j,N,q,J,Q,$,A,H,W],styles:["img[_ngcontent-%COMP%]{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.placed[_ngcontent-%COMP%]{background-color:red!important;border:2px solid white!important;width:15px;height:15px;border-radius:var(--br-2xl)}.pin[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:var(--br-xl);background-color:#fff;border:2px solid rgb(255,116,116);position:absolute}.pin-select[_ngcontent-%COMP%]{border:3px solid red!important}.pin[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{visibility:hidden;width:200px;margin-left:var(--spacing-base);margin-top:calc(-1 * var(--spacing-xs));-webkit-text-stroke-width:4px;-webkit-text-stroke-color:rgba(0,0,0,.1);text-stroke-width:4px;text-stroke-color:rgba(0,0,0,.1);color:#fff;font-weight:700}.pin[_ngcontent-%COMP%]:hover .label[_ngcontent-%COMP%]{visibility:visible}.map[_ngcontent-%COMP%]{position:absolute}"]});var Y=h;export{Y as MapPage}; diff --git a/.admin-app/main-6PQ3M3NL.js b/.admin-app/main-6PQ3M3NL.js new file mode 100644 index 00000000..217aae73 --- /dev/null +++ b/.admin-app/main-6PQ3M3NL.js @@ -0,0 +1 @@ +import{a as S,b as K,e as Jn,f as wt,i as he,j as Ge,k as Re}from"./chunk-DUKSTT3K.js";import{A as xn,L as $n,X as jn,Y as Wn,Z as Gn,ca as Hn,da as Yn,fa as Xn,i as Vn,oa as Zn,p as qn,z as Qn}from"./chunk-QF32E4V4.js";import{K as Oe}from"./chunk-TCALQ33I.js";import{a as De,b as We}from"./chunk-PFLI22GG.js";import{B as vt,Ba as Se,Da as Tt,H as $,I as fn,Jc as zn,K as $e,Kc as Bn,L as gn,Lc as Kn,Oc as Un,P as yn,Ta as je,U as _n,Ub as On,V as vn,W as Et,Wb as Rn,Y as En,Z as Sn,Zb as bt,a as Qe,aa as Tn,b as xe,ba as bn,bc as In,c as oe,ca as ce,da as ee,e as J,ea as H,f as _t,fa as ue,fb as Cn,g as ye,gb as Nn,h as Me,i as _,j as un,jb as Mn,ka as St,kb as ke,l as ae,ma as Ee,mb as kn,n as hn,nb as Dn,o as le,oa as te,p as O,q as dn,s as _e,sa as wn,t as ve,ta as An,tc as Fn,u as mn,ua as Pn,v as pn,wc as Ln}from"./chunk-LVL3PYF7.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as ge,d as cn,g as L,h as Z}from"./chunk-LNJ3S2LQ.js";var ei=!1;function rs(){return document.location.hostname.startsWith("edit")||document.location.protocol.startsWith("capacitor:")}function os(){return ei=!0,!0}var ti=[{path:"index",loadComponent:()=>import("./chunk-4BHZ5BWI.js").then(s=>s.HomePage)},{path:"privacy",loadComponent:()=>import("./chunk-OO337WBA.js").then(s=>s.PrivacyPage)},{path:"",redirectTo:rs()?"all":"index",pathMatch:"full"},{path:"event",loadComponent:()=>import("./chunk-3365OTC2.js").then(s=>s.EventPage),canActivate:[w]},{path:":vanity/events/:id",loadComponent:()=>import("./chunk-3365OTC2.js").then(s=>s.EventPage),canActivate:[w]},{path:":vanity/broadcast",loadComponent:()=>import("./chunk-4ZMBZXZ2.js").then(s=>s.BroadcastPage),canActivate:[w]},{path:":vanity/music/:id",loadComponent:()=>import("./chunk-HDYNKZSZ.js").then(s=>s.MusicItemPage),canActivate:[w]},{path:":vanity/camp/:id",loadComponent:()=>import("./chunk-HPON5CAB.js").then(s=>s.CampPage),canActivate:[w]},{path:":vanity/art/:id",loadComponent:()=>import("./chunk-ECI4ULYX.js").then(s=>s.ArtItemPage)},{path:":vanity/map/art/:id",loadComponent:()=>import("./chunk-DRQ6S3EF.js").then(s=>s.ArtMapPage),canActivate:[w]},{path:":vanity/map/:id",loadComponent:()=>import("./chunk-ZUOMS67J.js").then(s=>s.MapPage),canActivate:[w]},{path:"auth",loadComponent:()=>import("./chunk-VHFY6VLP.js").then(s=>s.AuthPage)},{path:":vanity/pins",loadComponent:()=>import("./chunk-BODSD72O.js").then(s=>s.PinsPage),canActivate:[w]},{path:"all",loadComponent:()=>import("./chunk-ZCXNVPSO.js").then(s=>s.FestivalsPage)},{path:":vanity/edit",loadComponent:()=>import("./chunk-7EVOL74U.js").then(s=>s.FestivalPage),canActivate:[w]},{path:"new",loadComponent:()=>import("./chunk-7EVOL74U.js").then(s=>s.FestivalPage),canActivate:[w]},{path:"help",loadComponent:()=>import("./chunk-44GEUMMJ.js").then(s=>s.HelpPage)},{path:":vanity/camps",loadComponent:()=>import("./chunk-NMYQM7YV.js").then(s=>s.CampsPage),canActivate:[w]},{path:":vanity/art",loadComponent:()=>import("./chunk-6CVTJBWK.js").then(s=>s.ArtPage),canActivate:[w]},{path:":vanity/music",loadComponent:()=>import("./chunk-HHWDTV4Q.js").then(s=>s.MusicPage),canActivate:[w]},{path:":vanity/events",loadComponent:()=>import("./chunk-CIYY42AF.js").then(s=>s.EventsPage),canActivate:[w]},{path:":vanity/print",loadComponent:()=>import("./chunk-FXBXBRQ3.js").then(s=>s.PrintPage)},{path:":vanity/links",loadComponent:()=>import("./chunk-BERAUI2V.js").then(s=>s.LinksPage),canActivate:[w]},{path:":vanity/link/:id",loadComponent:()=>import("./chunk-7G7LMJ5L.js").then(s=>s.LinkPage),canActivate:[w]},{path:":vanity/unpublished",loadComponent:()=>import("./chunk-GXYE34XH.js").then(s=>s.UnpublishedPage),canActivate:[w]},{path:":vanity/preview",loadComponent:()=>import("./chunk-IDAHFRDO.js").then(s=>s.PreviewPage),canActivate:[w]},{path:":vanity/message",loadComponent:()=>import("./chunk-5QSNQA2B.js").then(s=>s.MessagePage),canActivate:[w]},{path:":vanity/message-triggers",loadComponent:()=>import("./chunk-LLQZQ6ZK.js").then(s=>s.MessageTriggersPage),canActivate:[w]},{path:":vanity/settings",loadComponent:()=>import("./chunk-6GYHV7VW.js").then(s=>s.SettingsPage)},{path:":vanity/settings/css",loadComponent:()=>import("./chunk-DRE5OMWI.js").then(s=>s.CssEditPage)},{path:":vanity/import",loadComponent:()=>import("./chunk-T35XL25U.js").then(s=>s.ImportPage),canActivate:[w]},{path:":vanity/import-art",loadComponent:()=>import("./chunk-NPFSKFGI.js").then(s=>s.ImportArtPage),canActivate:[w]},{path:":vanity/import-events",loadComponent:()=>import("./chunk-MEJFUTEJ.js").then(s=>s.ImportEventsPage)},{path:":vanity/import-kml/:type",loadComponent:()=>import("./chunk-WQ4VL26B.js").then(s=>s.ImportKmlPage),canActivate:[w]},{path:":vanity",loadComponent:()=>import("./chunk-IIYH37ST.js").then(s=>s.FestivalViewPage),canActivate:[as,os]},{path:"redirect/:id",loadComponent:()=>import("./chunk-PGJWKH5Y.js").then(s=>s.RedirectPage)}];function as(){let s=O(Oe),e=O(ke);return s.signedIn()||(sessionStorage.sendVanity=document.location.pathname.replace("/",""),e.navigateByUrl("/auth")),!0}function w(){var i,r;let s=O(Oe);s.checkInit();let e=O(ke);if(!ei){let a=document.location.pathname.match(/^\/([^\/]+)/);if(a){let l=a[1];if(((i=e.currentNavigation())==null?void 0:i.initialUrl.toString())!=="/new")return console.log(`Redirected to route: ${l} (from ${(r=e.currentNavigation())==null?void 0:r.initialUrl})`),e.navigateByUrl(`/${l}`),!1}}let n=new URLSearchParams(window.location.search).get("key");if(n&&sessionStorage.setItem("key",n),s.signedIn())n&&s.setKey();else{console.error("Not signed in");let o=`${document.location.pathname}`;s.setRedirection(o),console.log(`Redirection url was set to ${o}`),e.navigateByUrl(`/auth?redirect=${encodeURIComponent(o)}`)}return!0}var At=(function(s){return s.Dark="DARK",s.Light="LIGHT",s.Default="DEFAULT",s})(At||{}),Pt=(function(s){return s.None="NONE",s.Slide="SLIDE",s.Fade="FADE",s})(Pt||{});var He=We("StatusBar");var ni=We("App",{web:()=>import("./chunk-3YXNQJBH.js").then(s=>new s.AppWeb)});var ls=(s,e)=>e.title;function cs(s,e){if(s&1){let t=St();ee(0,"ion-item",2),Ee("click",function(){let i=_e(t).$implicit,r=te(2);return ve(r.buttonClick(i))}),ue(1,"ion-icon",3),Se(2),H()}if(s&2){let t=e.$implicit;$(),ce("name",t.icon),$(),Tt(" ",t.title," ")}}function us(s,e){if(s&1){let t=St();ee(0,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.userInfo())}),ue(1,"ion-icon",5),Se(2),H(),ee(3,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.getHelp())}),ue(4,"ion-icon",6),Se(5," Get Support"),H(),ee(6,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.getDocs())}),ue(7,"ion-icon",7),Se(8," Read the Docs"),H(),ee(9,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.signOut())}),ue(10,"ion-icon",8),Se(11," Sign Out"),H()}if(s&2){let t=te(2);ce("button",!0),$(2),Tt(" ",t.api.user()," "),$(),ce("button",!0),$(3),ce("button",!0),$(3),ce("button",!0)}}function hs(s,e){if(s&1&&(ee(0,"ion-list"),Tn(1,cs,3,2,"ion-item",1,ls),En(3,us,12,5),H()),s&2){let t=te();$(),bn(t.buttons),$(2),Sn(t.hideProfile?-1:3)}}var Te=class Te{constructor(){this.api=O(Oe);this.alert=O(Bn);this.toastController=O(Kn);this.router=O(ke);this.buttons=[];this.hideProfile=!1;let e=this.api;Zn({personCircleSharp:Hn,personOutline:Yn,bookOutline:Vn,mailOutline:Wn,printOutline:Xn,cloudUploadOutline:xn,cloudDownloadOutline:Qn,logOutOutline:jn,mapOutline:Gn,chatboxEllipsesOutline:qn,helpCircleOutline:$n}),je(()=>Z(this,null,function*(){let t=e.errorStream();if(t.status==200)return;let n=t.text;if(t.status==403)try{n=this.api.signedIn()?"You are not authorized to perform this function.":"You must be logged in to perform this function."}catch{console.log("cleared token"),n="You have been logged out.",this.api.clearToken()}yield this.presentAlert("Error",n),t.status==1&&(console.log("navigate to /all due to error status route to index"),this.router.navigateByUrl("/all")),t.status==403&&this.router.navigateByUrl("/auth"),t.status==2&&this.router.navigateByUrl(t.url)})),je(()=>Z(this,null,function*(){var n;let t=e.messageStream();if(t.message!="")switch(t.type){case 0:yield this.presentAlert((n=t.title)!=null?n:"Message",t.message,t.url);break;case 1:yield this.presentToast(t.message);break}})),je(()=>Z(this,null,function*(){var n;let t=e.moreButton();t.event&&(this.buttons=(n=t.buttons)!=null?n:[],this.hideProfile=t.hideProfile,this.popover.present(t.event))})),ni.addListener("appUrlOpen",t=>{this.api.openedUrl.set(t.url)}),this.setStatusBar()}setStatusBar(){return Z(this,null,function*(){this.api.init(),De.isNativePlatform()&&(yield He.show({animation:Pt.Fade}),yield He.setStyle({style:At.Dark}),De.getPlatform()==="android"&&(yield He.setBackgroundColor({color:"#F61067"})))})}presentAlert(e,t,n){return Z(this,null,function*(){if(n){let r=[{text:"Open Link",role:"confirm",handler:()=>{window.open(n,"_blank")}},{text:"Not Now",role:"confirm"}];yield(yield this.alert.create({header:e,message:t,buttons:r})).present();return}yield(yield this.alert.create({header:e,message:t,buttons:["OK"]})).present()})}presentToast(e){return Z(this,null,function*(){yield(yield this.toastController.create({message:e,duration:2500,swipeGesture:"vertical",position:"bottom"})).present()})}buttonClick(e){e.method!==void 0&&e.method.call(void 0)}signOut(){return Z(this,null,function*(){this.api.signOut(),this.router.navigateByUrl("/auth")})}getHelp(){this.router.navigateByUrl("/help")}getDocs(){window.open("https://dust.events/docs/intro","_blank")}userInfo(){this.api.sendMessage(`Logged in as ${this.api.userEmail()}`,0,"User Information")}};Te.\u0275fac=function(t){return new(t||Te)},Te.\u0275cmp=yn({type:Te,selectors:[["app-root"]],viewQuery:function(t,n){if(t&1&&wn(bt,5),t&2){let i;An(i=Pn())&&(n.popover=i.first)}},decls:4,vars:1,consts:[["size","auto",3,"dismissOnSelect"],[1,"clickable"],[1,"clickable",3,"click"],["aria-hidden","true","slot","start",3,"name"],[3,"click","button"],["slot","start","aria-hidden","true","name","person-outline"],["aria-hidden","true","slot","start","name","chatbox-ellipses-outline"],["aria-hidden","true","slot","start","name","book-outline"],["aria-hidden","true","slot","start","name","log-out-outline"]],template:function(t,n){t&1&&(ee(0,"ion-app")(1,"ion-popover",0),_n(2,hs,4,1,"ng-template"),H(),ue(3,"ion-router-outlet"),H()),t&2&&($(),ce("dismissOnSelect",!0))},dependencies:[Un,Fn,Ln,bt,In,Rn],styles:["ion-popover[_ngcontent-%COMP%]{--width: 300px}"]});var Ye=Te;var ii={production:!0};function si(s){return new _(3e3,!1)}function ds(){return new _(3100,!1)}function ms(){return new _(3101,!1)}function ps(s){return new _(3001,!1)}function fs(s){return new _(3003,!1)}function gs(s){return new _(3004,!1)}function oi(s,e){return new _(3005,!1)}function ai(){return new _(3006,!1)}function li(){return new _(3007,!1)}function ci(s,e){return new _(3008,!1)}function ui(s){return new _(3002,!1)}function hi(s,e,t,n,i){return new _(3010,!1)}function di(){return new _(3011,!1)}function mi(){return new _(3012,!1)}function pi(){return new _(3200,!1)}function fi(){return new _(3202,!1)}function gi(){return new _(3013,!1)}function yi(s){return new _(3014,!1)}function _i(s){return new _(3015,!1)}function vi(s){return new _(3016,!1)}function Ei(s,e){return new _(3404,!1)}function ys(s){return new _(3502,!1)}function Si(s){return new _(3503,!1)}function Ti(){return new _(3300,!1)}function bi(s){return new _(3504,!1)}function wi(s){return new _(3301,!1)}function Ai(s,e){return new _(3302,!1)}function Pi(s){return new _(3303,!1)}function Ci(s,e){return new _(3400,!1)}function Ni(s){return new _(3401,!1)}function Mi(s){return new _(3402,!1)}function ki(s,e){return new _(3505,!1)}function Y(s){switch(s.length){case 0:return new he;case 1:return s[0];default:return new Ge(s)}}function Dt(s,e,t=new Map,n=new Map){let i=[],r=[],o=-1,a=null;if(e.forEach(l=>{let c=l.get("offset"),u=c==o,h=u&&a||new Map;l.forEach((v,y)=>{let p=y,g=v;if(y!=="offset")switch(p=s.normalizePropertyName(p,i),g){case Re:g=t.get(y);break;case K:g=n.get(y);break;default:g=s.normalizeStyleValue(y,p,g,i);break}h.set(p,g)}),u||r.push(h),a=h,o=c}),i.length)throw ys(i);return r}function Xe(s,e,t,n){switch(e){case"start":s.onStart(()=>n(t&&Nt(t,"start",s)));break;case"done":s.onDone(()=>n(t&&Nt(t,"done",s)));break;case"destroy":s.onDestroy(()=>n(t&&Nt(t,"destroy",s)));break}}function Nt(s,e,t){let n=t.totalTime,i=!!t.disabled,r=Ze(s.element,s.triggerName,s.fromState,s.toState,e||s.phaseName,n==null?s.totalTime:n,i),o=s._data;return o!=null&&(r._data=o),r}function Ze(s,e,t,n,i="",r=0,o){return{element:s,triggerName:e,fromState:t,toState:n,phaseName:i,totalTime:r,disabled:!!o}}function R(s,e,t){let n=s.get(e);return n||s.set(e,n=t),n}function Ot(s){let e=s.indexOf(":"),t=s.substring(1,e),n=s.slice(e+1);return[t,n]}var _s=typeof document>"u"?null:document.documentElement;function Je(s){let e=s.parentNode||s.host||null;return e===_s?null:e}function vs(s){return s.substring(1,6)=="ebkit"}var de=null,ri=!1;function Di(s){de||(de=Es()||{},ri=de.style?"WebkitAppearance"in de.style:!1);let e=!0;return de.style&&!vs(s)&&(e=s in de.style,!e&&ri&&(e="Webkit"+s.charAt(0).toUpperCase()+s.slice(1)in de.style)),e}function Es(){return typeof document<"u"?document.body:null}function Rt(s,e){for(;e;){if(e===s)return!0;e=Je(e)}return!1}function It(s,e,t){if(t)return Array.from(s.querySelectorAll(e));let n=s.querySelector(e);return n?[n]:[]}var Ss=1e3,Ft="{{",Ts="}}",Lt="ng-enter",et="ng-leave",Ie="ng-trigger",Fe=".ng-trigger",zt="ng-animating",tt=".ng-animating";function j(s){if(typeof s=="number")return s;let e=s.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Mt(parseFloat(e[1]),e[2])}function Mt(s,e){switch(e){case"s":return s*Ss;default:return s}}function Le(s,e,t){return s.hasOwnProperty("duration")?s:ws(s,e,t)}var bs=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function ws(s,e,t){let n,i=0,r="";if(typeof s=="string"){let o=s.match(bs);if(o===null)return e.push(si(s)),{duration:0,delay:0,easing:""};n=Mt(parseFloat(o[1]),o[2]);let a=o[3];a!=null&&(i=Mt(parseFloat(a),o[4]));let l=o[5];l&&(r=l)}else n=s;if(!t){let o=!1,a=e.length;n<0&&(e.push(ds()),o=!0),i<0&&(e.push(ms()),o=!0),o&&e.splice(a,0,si(s))}return{duration:n,delay:i,easing:r}}function Oi(s){return s.length?s[0]instanceof Map?s:s.map(e=>new Map(Object.entries(e))):[]}function U(s,e,t){e.forEach((n,i)=>{let r=nt(i);t&&!t.has(i)&&t.set(i,s.style[r]),s.style[r]=n})}function ne(s,e){e.forEach((t,n)=>{let i=nt(n);s.style[i]=""})}function be(s){return Array.isArray(s)?s.length==1?s[0]:Jn(s):s}function Ri(s,e,t){let n=e.params||{},i=Bt(s);i.length&&i.forEach(r=>{n.hasOwnProperty(r)||t.push(ps(r))})}var kt=new RegExp(`${Ft}\\s*(.+?)\\s*${Ts}`,"g");function Bt(s){let e=[];if(typeof s=="string"){let t;for(;t=kt.exec(s);)e.push(t[1]);kt.lastIndex=0}return e}function we(s,e,t){let n=`${s}`,i=n.replace(kt,(r,o)=>{let a=e[o];return a==null&&(t.push(fs(o)),a=""),a.toString()});return i==n?s:i}var As=/-+([a-z0-9])/g;function nt(s){return s.replace(As,(...e)=>e[1].toUpperCase())}function Ii(s,e){return s===0||e===0}function Fi(s,e,t){if(t.size&&e.length){let n=e[0],i=[];if(t.forEach((r,o)=>{n.has(o)||i.push(o),n.set(o,r)}),i.length)for(let r=1;ro.set(a,it(s,a)))}}return e}function I(s,e,t){switch(e.type){case S.Trigger:return s.visitTrigger(e,t);case S.State:return s.visitState(e,t);case S.Transition:return s.visitTransition(e,t);case S.Sequence:return s.visitSequence(e,t);case S.Group:return s.visitGroup(e,t);case S.Animate:return s.visitAnimate(e,t);case S.Keyframes:return s.visitKeyframes(e,t);case S.Style:return s.visitStyle(e,t);case S.Reference:return s.visitReference(e,t);case S.AnimateChild:return s.visitAnimateChild(e,t);case S.AnimateRef:return s.visitAnimateRef(e,t);case S.Query:return s.visitQuery(e,t);case S.Stagger:return s.visitStagger(e,t);default:throw gs(e.type)}}function it(s,e){return window.getComputedStyle(s)[e]}var tn=(()=>{let e=class e{validateStyleProperty(n){return Di(n)}containsElement(n,i){return Rt(n,i)}getParentElement(n){return Je(n)}query(n,i,r){return It(n,i,r)}computeStyle(n,i,r){return r||""}animate(n,i,r,o,a,l=[],c){return new he(r,o)}};L(e,"\u0275fac",function(i){return new(i||e)}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})(),ie=class{};L(ie,"NOOP",new tn);var pe=class{};var Ps=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),lt=class extends pe{normalizePropertyName(e,t){return nt(e)}normalizeStyleValue(e,t,n,i){let r="",o=n.toString().trim();if(Ps.has(t)&&n!==0&&n!=="0")if(typeof n=="number")r="px";else{let a=n.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&a[1].length==0&&i.push(oi(e,n))}return o+r}};var ct="*";function Cs(s,e){let t=[];return typeof s=="string"?s.split(/\s*,\s*/).forEach(n=>Ns(n,t,e)):t.push(s),t}function Ns(s,e,t){if(s[0]==":"){let l=Ms(s,t);if(typeof l=="function"){e.push(l);return}s=l}let n=s.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(n==null||n.length<4)return t.push(_i(s)),e;let i=n[1],r=n[2],o=n[3];e.push(Li(i,o));let a=i==ct&&o==ct;r[0]=="<"&&!a&&e.push(Li(o,i))}function Ms(s,e){switch(s){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,n)=>parseFloat(n)>parseFloat(t);case":decrement":return(t,n)=>parseFloat(n) *"}}var st=new Set(["true","1"]),rt=new Set(["false","0"]);function Li(s,e){let t=st.has(s)||rt.has(s),n=st.has(e)||rt.has(e);return(i,r)=>{let o=s==ct||s==i,a=e==ct||e==r;return!o&&t&&typeof i=="boolean"&&(o=i?st.has(s):rt.has(s)),!a&&n&&typeof r=="boolean"&&(a=r?st.has(e):rt.has(e)),o&&a}}var ji=":self",ks=new RegExp(`s*${ji}s*,?`,"g");function Wi(s,e,t,n){return new xt(s).build(e,t,n)}var zi="",xt=class{_driver;constructor(e){this._driver=e}build(e,t,n){let i=new $t(t);return this._resetContextStyleTimingState(i),I(this,be(e),i)}_resetContextStyleTimingState(e){e.currentQuerySelector=zi,e.collectedStyles=new Map,e.collectedStyles.set(zi,new Map),e.currentTime=0}visitTrigger(e,t){let n=t.queryCount=0,i=t.depCount=0,r=[],o=[];return e.name.charAt(0)=="@"&&t.errors.push(ai()),e.definitions.forEach(a=>{if(this._resetContextStyleTimingState(t),a.type==S.State){let l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,r.push(this.visitState(l,t))}),l.name=c}else if(a.type==S.Transition){let l=this.visitTransition(a,t);n+=l.queryCount,i+=l.depCount,o.push(l)}else t.errors.push(li())}),{type:S.Trigger,name:e.name,states:r,transitions:o,queryCount:n,depCount:i,options:null}}visitState(e,t){let n=this.visitStyle(e.styles,t),i=e.options&&e.options.params||null;if(n.containsDynamicStyles){let r=new Set,o=i||{};n.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{Bt(l).forEach(c=>{o.hasOwnProperty(c)||r.add(c)})})}),r.size&&t.errors.push(ci(e.name,[...r.values()]))}return{type:S.State,name:e.name,style:n,options:i?{params:i}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;let n=I(this,be(e.animation),t),i=Cs(e.expr,t.errors);return{type:S.Transition,matchers:i,animation:n,queryCount:t.queryCount,depCount:t.depCount,options:me(e.options)}}visitSequence(e,t){return{type:S.Sequence,steps:e.steps.map(n=>I(this,n,t)),options:me(e.options)}}visitGroup(e,t){let n=t.currentTime,i=0,r=e.steps.map(o=>{t.currentTime=n;let a=I(this,o,t);return i=Math.max(i,t.currentTime),a});return t.currentTime=i,{type:S.Group,steps:r,options:me(e.options)}}visitAnimate(e,t){let n=Is(e.timings,t.errors);t.currentAnimateTimings=n;let i,r=e.styles?e.styles:wt({});if(r.type==S.Keyframes)i=this.visitKeyframes(r,t);else{let o=e.styles,a=!1;if(!o){a=!0;let c={};n.easing&&(c.easing=n.easing),o=wt(c)}t.currentTime+=n.duration+n.delay;let l=this.visitStyle(o,t);l.isEmptyStep=a,i=l}return t.currentAnimateTimings=null,{type:S.Animate,timings:n,style:i,options:null}}visitStyle(e,t){let n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n}_makeStyleAst(e,t){let n=[],i=Array.isArray(e.styles)?e.styles:[e.styles];for(let a of i)typeof a=="string"?a===K?n.push(a):t.errors.push(ui(a)):n.push(new Map(Object.entries(a)));let r=!1,o=null;return n.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(o=a.get("easing"),a.delete("easing")),!r)){for(let l of a.values())if(l.toString().indexOf(Ft)>=0){r=!0;break}}}),{type:S.Style,styles:n,easing:o,offset:e.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(e,t){let n=t.currentAnimateTimings,i=t.currentTime,r=t.currentTime;n&&r>0&&(r-=n.duration+n.delay),e.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,l)=>{let c=t.collectedStyles.get(t.currentQuerySelector),u=c.get(l),h=!0;u&&(r!=i&&r>=u.startTime&&i<=u.endTime&&(t.errors.push(hi(l,u.startTime,u.endTime,r,i)),h=!1),r=u.startTime),h&&c.set(l,{startTime:r,endTime:i}),t.options&&Ri(a,t.options,t.errors)})})}visitKeyframes(e,t){let n={type:S.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(di()),n;let i=1,r=0,o=[],a=!1,l=!1,c=0,u=e.steps.map(P=>{let C=this._makeStyleAst(P,t),k=C.offset!=null?C.offset:Rs(C.styles),N=0;return k!=null&&(r++,N=C.offset=k),l=l||N<0||N>1,a=a||N0&&r{let k=v>0?C==y?1:v*C:o[C],N=k*T;t.currentTime=p+g.delay+N,g.duration=N,this._validateStyleAst(P,t),P.offset=k,n.styles.push(P)}),n}visitReference(e,t){return{type:S.Reference,animation:I(this,be(e.animation),t),options:me(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:S.AnimateChild,options:me(e.options)}}visitAnimateRef(e,t){return{type:S.AnimateRef,animation:this.visitReference(e.animation,t),options:me(e.options)}}visitQuery(e,t){let n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;let[r,o]=Ds(e.selector);t.currentQuerySelector=n.length?n+" "+r:r,R(t.collectedStyles,t.currentQuerySelector,new Map);let a=I(this,be(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:S.Query,selector:r,limit:i.limit||0,optional:!!i.optional,includeSelf:o,animation:a,originalSelector:e.selector,options:me(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(gi());let n=e.timings==="full"?{duration:0,delay:0,easing:"full"}:Le(e.timings,t.errors,!0);return{type:S.Stagger,animation:I(this,be(e.animation),t),timings:n,options:null}}};function Ds(s){let e=!!s.split(/\s*,\s*/).find(t=>t==ji);return e&&(s=s.replace(ks,"")),s=s.replace(/@\*/g,Fe).replace(/@\w+/g,t=>Fe+"-"+t.slice(1)).replace(/:animating/g,tt),[s,e]}function Os(s){return s?ge({},s):null}var $t=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function Rs(s){if(typeof s=="string")return null;let e=null;if(Array.isArray(s))s.forEach(t=>{if(t instanceof Map&&t.has("offset")){let n=t;e=parseFloat(n.get("offset")),n.delete("offset")}});else if(s instanceof Map&&s.has("offset")){let t=s;e=parseFloat(t.get("offset")),t.delete("offset")}return e}function Is(s,e){if(s.hasOwnProperty("duration"))return s;if(typeof s=="number"){let r=Le(s,e).duration;return Kt(r,0,"")}let t=s;if(t.split(/\s+/).some(r=>r.charAt(0)=="{"&&r.charAt(1)=="{")){let r=Kt(0,0,"");return r.dynamic=!0,r.strValue=t,r}let i=Le(t,e);return Kt(i.duration,i.delay,i.easing)}function me(s){return s?(s=ge({},s),s.params&&(s.params=Os(s.params))):s={},s}function Kt(s,e,t){return{duration:s,delay:e,easing:t}}function nn(s,e,t,n,i,r,o=null,a=!1){return{type:1,element:s,keyframes:e,preStyleProps:t,postStyleProps:n,duration:i,delay:r,totalTime:i+r,easing:o,subTimeline:a}}var Be=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,t){let n=this._map.get(e);n||this._map.set(e,n=[]),n.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}},Fs=1,Ls=":enter",zs=new RegExp(Ls,"g"),Bs=":leave",Ks=new RegExp(Bs,"g");function Gi(s,e,t,n,i,r=new Map,o=new Map,a,l,c=[]){return new jt().buildKeyframes(s,e,t,n,i,r,o,a,l,c)}var jt=class{buildKeyframes(e,t,n,i,r,o,a,l,c,u=[]){c=c||new Be;let h=new Wt(e,t,c,i,r,u,[]);h.options=l;let v=l.delay?j(l.delay):0;h.currentTimeline.delayNextStep(v),h.currentTimeline.setStyles([o],null,h.errors,l),I(this,n,h);let y=h.timelines.filter(p=>p.containsAnimation());if(y.length&&a.size){let p;for(let g=y.length-1;g>=0;g--){let T=y[g];if(T.element===t){p=T;break}}p&&!p.allowOnlyTimelineStyles()&&p.setStyles([a],null,h.errors,l)}return y.length?y.map(p=>p.buildKeyframes()):[nn(t,[],[],[],0,v,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){let n=t.subInstructions.get(t.element);if(n){let i=t.createSubContext(e.options),r=t.currentTimeline.currentTime,o=this._visitSubInstructions(n,i,i.options);r!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e}visitAnimateRef(e,t){let n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,n),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,n){var i;for(let r of e){let o=r==null?void 0:r.delay;if(o){let a=typeof o=="number"?o:j(we(o,(i=r==null?void 0:r.params)!=null?i:{},t.errors));n.delayNextStep(a)}}}_visitSubInstructions(e,t,n){let r=t.currentTimeline.currentTime,o=n.duration!=null?j(n.duration):null,a=n.delay!=null?j(n.delay):null;return o!==0&&e.forEach(l=>{let c=t.appendInstructionToTimeline(l,o,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(e,t){t.updateOptions(e.options,!0),I(this,e.animation,t),t.previousNode=e}visitSequence(e,t){let n=t.subContextCount,i=t,r=e.options;if(r&&(r.params||r.delay)&&(i=t.createSubContext(r),i.transformIntoNewTimeline(),r.delay!=null)){i.previousNode.type==S.Style&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=ut);let o=j(r.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>I(this,o,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>n&&i.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){let n=[],i=t.currentTimeline.currentTime,r=e.options&&e.options.delay?j(e.options.delay):0;e.steps.forEach(o=>{let a=t.createSubContext(e.options);r&&a.delayNextStep(r),I(this,o,a),i=Math.max(i,a.currentTimeline.currentTime),n.push(a.currentTimeline)}),n.forEach(o=>t.currentTimeline.mergeTimelineCollectedStyles(o)),t.transformIntoNewTimeline(i),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){let n=e.strValue,i=t.params?we(n,t.params,t.errors):n;return Le(i,t.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){let n=t.currentAnimateTimings=this._visitTiming(e.timings,t),i=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),i.snapshotCurrentStyles());let r=e.style;r.type==S.Keyframes?this.visitKeyframes(r,t):(t.incrementTime(n.duration),this.visitStyle(r,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){let n=t.currentTimeline,i=t.currentAnimateTimings;!i&&n.hasCurrentStyleProperties()&&n.forwardFrame();let r=i&&i.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(r):n.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){let n=t.currentAnimateTimings,i=t.currentTimeline.duration,r=n.duration,a=t.createSubContext().currentTimeline;a.easing=n.easing,e.styles.forEach(l=>{let c=l.offset||0;a.forwardTime(c*r),a.setStyles(l.styles,l.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+r),t.previousNode=e}visitQuery(e,t){let n=t.currentTimeline.currentTime,i=e.options||{},r=i.delay?j(i.delay):0;r&&(t.previousNode.type===S.Style||n==0&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=ut);let o=n,a=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=a.length;let l=null;a.forEach((c,u)=>{t.currentQueryIndex=u;let h=t.createSubContext(e.options,c);r&&h.delayNextStep(r),c===t.element&&(l=h.currentTimeline),I(this,e.animation,h),h.currentTimeline.applyStylesToKeyframe();let v=h.currentTimeline.currentTime;o=Math.max(o,v)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){let n=t.parentContext,i=t.currentTimeline,r=e.timings,o=Math.abs(r.duration),a=o*(t.currentQueryTotal-1),l=o*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=n.currentStaggerTime;break}let u=t.currentTimeline;l&&u.delayNextStep(l);let h=u.currentTime;I(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=i.currentTime-h+(i.startTime-n.currentTimeline.startTime)}},ut={},Wt=class s{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=ut;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,t,n,i,r,o,a,l){this._driver=e,this.element=t,this.subInstructions=n,this._enterClassName=i,this._leaveClassName=r,this.errors=o,this.timelines=a,this.currentTimeline=l||new ht(this._driver,t,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;let n=e,i=this.options;n.duration!=null&&(i.duration=j(n.duration)),n.delay!=null&&(i.delay=j(n.delay));let r=n.params;if(r){let o=i.params;o||(o=this.options.params={}),Object.keys(r).forEach(a=>{(!t||!o.hasOwnProperty(a))&&(o[a]=we(r[a],o,this.errors))})}}_copyOptions(){let e={};if(this.options){let t=this.options.params;if(t){let n=e.params={};Object.keys(t).forEach(i=>{n[i]=t[i]})}}return e}createSubContext(e=null,t,n){let i=t||this.element,r=new s(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,n||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(e){return this.previousNode=ut,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,n){let i={duration:t!=null?t:e.duration,delay:this.currentTimeline.currentTime+(n!=null?n:0)+e.delay,easing:""},r=new Gt(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(r),i}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,n,i,r,o){let a=[];if(i&&a.push(this.element),e.length>0){e=e.replace(zs,"."+this._enterClassName),e=e.replace(Ks,"."+this._leaveClassName);let l=n!=1,c=this._driver.query(this.element,e,l);n!==0&&(c=n<0?c.slice(c.length+n,c.length):c.slice(0,n)),a.push(...c)}return!r&&a.length==0&&o.push(yi(t)),a}},ht=class s{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,t,n,i){this._driver=e,this.element=t,this.startTime=n,this._elementTimelineStylesLookup=i,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let t=this._keyframes.size===1&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new s(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Fs,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,n]of this._globalTimelineStyles)this._backFill.set(t,n||K),this._currentKeyframe.set(t,K);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,n,i){var a;t&&this._previousKeyframe.set("easing",t);let r=i&&i.params||{},o=Us(e,this._globalTimelineStyles);for(let[l,c]of o){let u=we(c,r,n);this._pendingStyles.set(l,u),this._localTimelineStyles.has(l)||this._backFill.set(l,(a=this._globalTimelineStyles.get(l))!=null?a:K),this._updateStyle(l,u)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,n)=>{let i=this._styleSummary.get(n);(!i||t.time>i.time)&&this._updateStyle(n,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,t=new Set,n=this._keyframes.size===1&&this.duration===0,i=[];this._keyframes.forEach((a,l)=>{let c=new Map([...this._backFill,...a]);c.forEach((u,h)=>{u===Re?e.add(h):u===K&&t.add(h)}),n||c.set("offset",l/this.duration),i.push(c)});let r=[...e.values()],o=[...t.values()];if(n){let a=i[0],l=new Map(a);a.set("offset",0),l.set("offset",1),i=[a,l]}return nn(this.element,i,r,o,this.duration,this.startTime,this.easing,!1)}},Gt=class extends ht{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,t,n,i,r,o,a=!1){super(e,t,o.delay),this.keyframes=n,this.preStyleProps=i,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:n,easing:i}=this.timings;if(this._stretchStartingKeyframe&&t){let r=[],o=n+t,a=t/o,l=new Map(e[0]);l.set("offset",0),r.push(l);let c=new Map(e[0]);c.set("offset",Bi(a)),r.push(c);let u=e.length-1;for(let h=1;h<=u;h++){let v=new Map(e[h]),y=v.get("offset"),p=t+y*n;v.set("offset",Bi(p/o)),r.push(v)}n=o,t=0,i="",e=r}return nn(this.element,e,this.preStyleProps,this.postStyleProps,n,t,i,!0)}};function Bi(s,e=3){let t=Math.pow(10,e-1);return Math.round(s*t)/t}function Us(s,e){let t=new Map,n;return s.forEach(i=>{if(i==="*"){n!=null||(n=e.keys());for(let r of n)t.set(r,K)}else for(let[r,o]of i)t.set(r,o)}),t}function Ki(s,e,t,n,i,r,o,a,l,c,u,h,v){return{type:0,element:s,triggerName:e,isRemovalTransition:i,fromState:t,fromStyles:r,toState:n,toStyles:o,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:h,errors:v}}var Ut={},dt=class{_triggerName;ast;_stateStyles;constructor(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}match(e,t,n,i){return Vs(this.ast.matchers,e,t,n,i)}buildStyles(e,t,n){let i=this._stateStyles.get("*");return e!==void 0&&(i=this._stateStyles.get(e==null?void 0:e.toString())||i),i?i.buildStyles(t,n):new Map}build(e,t,n,i,r,o,a,l,c,u){var Q;let h=[],v=this.ast.options&&this.ast.options.params||Ut,y=a&&a.params||Ut,p=this.buildStyles(n,y,h),g=l&&l.params||Ut,T=this.buildStyles(i,g,h),P=new Set,C=new Map,k=new Map,N=i==="void",fe={params:Hi(g,v),delay:(Q=this.ast.options)==null?void 0:Q.delay},q=u?[]:Gi(e,t,this.ast.animation,r,o,p,T,fe,c,h),D=0;return q.forEach(W=>{D=Math.max(W.duration+W.delay,D)}),h.length?Ki(t,this._triggerName,n,i,N,p,T,[],[],C,k,D,h):(q.forEach(W=>{let G=W.element,rn=R(C,G,new Set);W.preStyleProps.forEach(se=>rn.add(se));let Ne=R(k,G,new Set);W.postStyleProps.forEach(se=>Ne.add(se)),G!==t&&P.add(G)}),Ki(t,this._triggerName,n,i,N,p,T,q,[...P.values()],C,k,D))}};function Vs(s,e,t,n,i){return s.some(r=>r(e,t,n,i))}function Hi(s,e){let t=ge({},e);return Object.entries(s).forEach(([n,i])=>{i!=null&&(t[n]=i)}),t}var Ht=class{styles;defaultParams;normalizer;constructor(e,t,n){this.styles=e,this.defaultParams=t,this.normalizer=n}buildStyles(e,t){let n=new Map,i=Hi(e,this.defaultParams);return this.styles.styles.forEach(r=>{typeof r!="string"&&r.forEach((o,a)=>{o&&(o=we(o,i,t));let l=this.normalizer.normalizePropertyName(a,t);o=this.normalizer.normalizeStyleValue(a,l,o,t),n.set(a,o)})}),n}};function qs(s,e,t){return new Yt(s,e,t)}var Yt=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,t,n){this.name=e,this.ast=t,this._normalizer=n,t.states.forEach(i=>{let r=i.options&&i.options.params||{};this.states.set(i.name,new Ht(i.style,r,n))}),Ui(this.states,"true","1"),Ui(this.states,"false","0"),t.transitions.forEach(i=>{this.transitionFactories.push(new dt(e,i,this.states))}),this.fallbackTransition=Qs(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,n,i){return this.transitionFactories.find(o=>o.match(e,t,n,i))||null}matchStyles(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)}};function Qs(s,e,t){let n=[(o,a)=>!0],i={type:S.Sequence,steps:[],options:null},r={type:S.Transition,animation:i,matchers:n,options:null,queryCount:0,depCount:0};return new dt(s,r,e)}function Ui(s,e,t){s.has(e)?s.has(t)||s.set(t,s.get(e)):s.has(t)&&s.set(e,s.get(t))}var xs=new Be,Xt=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,t,n){this.bodyNode=e,this._driver=t,this._normalizer=n}register(e,t){let n=[],i=[],r=Wi(this._driver,t,n,i);if(n.length)throw Si(n);this._animations.set(e,r)}_buildPlayer(e,t,n){let i=e.element,r=Dt(this._normalizer,e.keyframes,t,n);return this._driver.animate(i,r,e.duration,e.delay,e.easing,[],!0)}create(e,t,n={}){let i=[],r=this._animations.get(e),o,a=new Map;if(r?(o=Gi(this._driver,t,r,Lt,et,new Map,new Map,n,xs,i),o.forEach(u=>{let h=R(a,u.element,new Map);u.postStyleProps.forEach(v=>h.set(v,null))})):(i.push(Ti()),o=[]),i.length)throw bi(i);a.forEach((u,h)=>{u.forEach((v,y)=>{u.set(y,this._driver.computeStyle(h,y,K))})});let l=o.map(u=>{let h=a.get(u.element);return this._buildPlayer(u,new Map,h)}),c=Y(l);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);let n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)}_getPlayer(e){let t=this._playersById.get(e);if(!t)throw wi(e);return t}listen(e,t,n,i){let r=Ze(t,"","","");return Xe(this._getPlayer(e),n,r,i),()=>{}}command(e,t,n,i){if(n=="register"){this.register(e,i[0]);return}if(n=="create"){let o=i[0]||{};this.create(e,t,o);return}let r=this._getPlayer(e);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e);break}}},Vi="ng-animate-queued",$s=".ng-animate-queued",Vt="ng-animate-disabled",js=".ng-animate-disabled",Ws="ng-star-inserted",Gs=".ng-star-inserted",Hs=[],Yi={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ys={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},V="__ng_removed",Ke=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;let n=e&&e.hasOwnProperty("value"),i=n?e.value:e;if(this.value=Zs(i),n){let r=e,{value:o}=r,a=cn(r,["value"]);this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let t=e.params;if(t){let n=this.options.params;Object.keys(t).forEach(i=>{n[i]==null&&(n[i]=t[i])})}}},ze="void",qt=new Ke(ze),Zt=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this._hostClassName="ng-tns-"+e,B(t,this._hostClassName)}listen(e,t,n,i){if(!this._triggers.has(t))throw Ai(n,t);if(n==null||n.length==0)throw Pi(t);if(!Js(n))throw Ci(n,t);let r=R(this._elementListeners,e,[]),o={name:t,phase:n,callback:i};r.push(o);let a=R(this._engine.statesByElement,e,new Map);return a.has(t)||(B(e,Ie),B(e,Ie+"-"+t),a.set(t,qt)),()=>{this._engine.afterFlush(()=>{let l=r.indexOf(o);l>=0&&r.splice(l,1),this._triggers.has(t)||a.delete(t)})}}register(e,t){return this._triggers.has(e)?!1:(this._triggers.set(e,t),!0)}_getTrigger(e){let t=this._triggers.get(e);if(!t)throw Ni(e);return t}trigger(e,t,n,i=!0){let r=this._getTrigger(t),o=new Ue(this.id,t,e),a=this._engine.statesByElement.get(e);a||(B(e,Ie),B(e,Ie+"-"+t),this._engine.statesByElement.set(e,a=new Map));let l=a.get(t),c=new Ke(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(t,c),l||(l=qt),!(c.value===ze)&&l.value===c.value){if(!nr(l.params,c.params)){let g=[],T=r.matchStyles(l.value,l.params,g),P=r.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{ne(e,T),U(e,P)})}return}let v=R(this._engine.playersByElement,e,[]);v.forEach(g=>{g.namespaceId==this.id&&g.triggerName==t&&g.queued&&g.destroy()});let y=r.matchTransition(l.value,c.value,e,c.params),p=!1;if(!y){if(!i)return;y=r.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:y,fromState:l,toState:c,player:o,isFallbackTransition:p}),p||(B(e,Vi),o.onStart(()=>{Ae(e,Vi)})),o.onDone(()=>{let g=this.players.indexOf(o);g>=0&&this.players.splice(g,1);let T=this._engine.playersByElement.get(e);if(T){let P=T.indexOf(o);P>=0&&T.splice(P,1)}}),this.players.push(o),v.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,n)=>{this._elementListeners.set(n,t.filter(i=>i.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let t=this._engine.playersByElement.get(e);t&&(t.forEach(n=>n.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){let n=this._engine.driver.query(e,Fe,!0);n.forEach(i=>{if(i[V])return;let r=this._engine.fetchNamespacesByElement(i);r.size?r.forEach(o=>o.triggerLeaveAnimation(i,t,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>n.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(e,t,n,i){let r=this._engine.statesByElement.get(e),o=new Map;if(r){let a=[];if(r.forEach((l,c)=>{if(o.set(c,l.value),this._triggers.has(c)){let u=this.trigger(e,c,ze,i);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,o),n&&Y(a).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let t=this._elementListeners.get(e),n=this._engine.statesByElement.get(e);if(t&&n){let i=new Set;t.forEach(r=>{let o=r.name;if(i.has(o))return;i.add(o);let l=this._triggers.get(o).fallbackTransition,c=n.get(o)||qt,u=new Ke(ze),h=new Ue(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:l,fromState:c,toState:u,player:h,isFallbackTransition:!0})})}}removeNode(e,t){let n=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let i=!1;if(n.totalAnimations){let r=n.players.length?n.playersByQueriedElement.get(e):[];if(r&&r.length)i=!0;else{let o=e;for(;o=o.parentNode;)if(n.statesByElement.get(o)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(e),i)n.markElementAsRemoved(this.id,e,!1,t);else{let r=e[V];(!r||r===Yi)&&(n.afterFlush(()=>this.clearElementCache(e)),n.destroyInnerAnimations(e),n._onRemovalComplete(e,t))}}insertNode(e,t){B(e,this._hostClassName)}drainQueuedTransitions(e){let t=[];return this._queue.forEach(n=>{let i=n.player;if(i.destroyed)return;let r=n.element,o=this._elementListeners.get(r);o&&o.forEach(a=>{if(a.name==n.triggerName){let l=Ze(r,n.triggerName,n.fromState.value,n.toState.value);l._data=e,Xe(n.player,a.phase,l,a.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):t.push(n)}),this._queue=[],t.sort((n,i)=>{let r=n.transition.ast.depCount,o=i.transition.ast.depCount;return r==0||o==0?r-o:this._engine.driver.containsElement(n.element,i.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},Jt=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,t)=>{};_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,n){this.bodyNode=e,this.driver=t,this._normalizer=n}get queuedPlayers(){let e=[];return this._namespaceList.forEach(t=>{t.players.forEach(n=>{n.queued&&e.push(n)})}),e}createNamespace(e,t){let n=new Zt(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(n,t):(this.newHostElements.set(t,n),this.collectEnterElement(t)),this._namespaceLookup[e]=n}_balanceNamespaceList(e,t){let n=this._namespaceList,i=this.namespacesByHostElement;if(n.length-1>=0){let o=!1,a=this.driver.getParentElement(t);for(;a;){let l=i.get(a);if(l){let c=n.indexOf(l);n.splice(c+1,0,e),o=!0;break}a=this.driver.getParentElement(a)}o||n.unshift(e)}else n.push(e);return i.set(t,e),e}register(e,t){let n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n}registerTrigger(e,t,n){let i=this._namespaceLookup[e];i&&i.register(t,n)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let n=this._fetchNamespace(e);this.namespacesByHostElement.delete(n.hostElement);let i=this._namespaceList.indexOf(n);i>=0&&this._namespaceList.splice(i,1),n.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let t=new Set,n=this.statesByElement.get(e);if(n){for(let i of n.values())if(i.namespaceId){let r=this._fetchNamespace(i.namespaceId);r&&t.add(r)}}return t}trigger(e,t,n,i){if(ot(t)){let r=this._fetchNamespace(e);if(r)return r.trigger(t,n,i),!0}return!1}insertNode(e,t,n,i){if(!ot(t))return;let r=t[V];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;let o=this.collectedLeaveElements.indexOf(t);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){let o=this._fetchNamespace(e);o&&o.insertNode(t,n)}i&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),B(e,Vt)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Ae(e,Vt))}removeNode(e,t,n){if(ot(t)){let i=e?this._fetchNamespace(e):null;i?i.removeNode(t,n):this.markElementAsRemoved(e,t,!1,n);let r=this.namespacesByHostElement.get(t);r&&r.id!==e&&r.removeNode(t,n)}else this._onRemovalComplete(t,n)}markElementAsRemoved(e,t,n,i,r){this.collectedLeaveElements.push(t),t[V]={namespaceId:e,setForRemoval:i,hasAnimation:n,removedBeforeQueried:!1,previousTriggersValues:r}}listen(e,t,n,i,r){return ot(t)?this._fetchNamespace(e).listen(t,n,i,r):()=>{}}_buildInstruction(e,t,n,i,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,i,e.fromState.options,e.toState.options,t,r)}destroyInnerAnimations(e){let t=this.driver.query(e,Fe,!0);t.forEach(n=>this.destroyActiveAnimationsForElement(n)),this.playersByQueriedElement.size!=0&&(t=this.driver.query(e,tt,!0),t.forEach(n=>this.finishActiveQueriedAnimationOnElement(n)))}destroyActiveAnimationsForElement(e){let t=this.playersByElement.get(e);t&&t.forEach(n=>{n.queued?n.markedForDestroy=!0:n.destroy()})}finishActiveQueriedAnimationOnElement(e){let t=this.playersByQueriedElement.get(e);t&&t.forEach(n=>n.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return Y(this.players).onDone(()=>e());e()})}processLeaveNode(e){var n;let t=e[V];if(t&&t.setForRemoval){if(e[V]=Yi,t.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}(n=e.classList)!=null&&n.contains(Vt)&&this.markElementAsDisabled(e,!1),this.driver.query(e,js,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((n,i)=>this._balanceNamespaceList(n,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let n=0;nn()),this._flushFns=[],this._whenQuietFns.length){let n=this._whenQuietFns;this._whenQuietFns=[],t.length?Y(t).onDone(()=>{n.forEach(i=>i())}):n.forEach(i=>i())}}reportError(e){throw Mi(e)}_flushAnimations(e,t){let n=new Be,i=[],r=new Map,o=[],a=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(d=>{u.add(d);let m=this.driver.query(d,$s,!0);for(let f=0;f{let f=Lt+g++;p.set(m,f),d.forEach(E=>B(E,f))});let T=[],P=new Set,C=new Set;for(let d=0;dP.add(E)):C.add(m))}let k=new Map,N=xi(v,Array.from(P));N.forEach((d,m)=>{let f=et+g++;k.set(m,f),d.forEach(E=>B(E,f))}),e.push(()=>{y.forEach((d,m)=>{let f=p.get(m);d.forEach(E=>Ae(E,f))}),N.forEach((d,m)=>{let f=k.get(m);d.forEach(E=>Ae(E,f))}),T.forEach(d=>{this.processLeaveNode(d)})});let fe=[],q=[];for(let d=this._namespaceList.length-1;d>=0;d--)this._namespaceList[d].drainQueuedTransitions(t).forEach(f=>{let E=f.player,A=f.element;if(fe.push(E),this.collectedEnterElements.length){let M=A[V];if(M&&M.setForMove){if(M.previousTriggersValues&&M.previousTriggersValues.has(f.triggerName)){let re=M.previousTriggersValues.get(f.triggerName),z=this.statesByElement.get(f.element);if(z&&z.has(f.triggerName)){let qe=z.get(f.triggerName);qe.value=re,z.set(f.triggerName,qe)}}E.destroy();return}}let x=!h||!this.driver.containsElement(h,A),F=k.get(A),X=p.get(A),b=this._buildInstruction(f,n,X,F,x);if(b.errors&&b.errors.length){q.push(b);return}if(x){E.onStart(()=>ne(A,b.fromStyles)),E.onDestroy(()=>U(A,b.toStyles)),i.push(E);return}if(f.isFallbackTransition){E.onStart(()=>ne(A,b.fromStyles)),E.onDestroy(()=>U(A,b.toStyles)),i.push(E);return}let ln=[];b.timelines.forEach(M=>{M.stretchStartingKeyframe=!0,this.disabledNodes.has(M.element)||ln.push(M)}),b.timelines=ln,n.append(A,b.timelines);let ss={instruction:b,player:E,element:A};o.push(ss),b.queriedElements.forEach(M=>R(a,M,[]).push(E)),b.preStyleProps.forEach((M,re)=>{if(M.size){let z=l.get(re);z||l.set(re,z=new Set),M.forEach((qe,yt)=>z.add(yt))}}),b.postStyleProps.forEach((M,re)=>{let z=c.get(re);z||c.set(re,z=new Set),M.forEach((qe,yt)=>z.add(yt))})});if(q.length){let d=[];q.forEach(m=>{d.push(ki(m.triggerName,m.errors))}),fe.forEach(m=>m.destroy()),this.reportError(d)}let D=new Map,Q=new Map;o.forEach(d=>{let m=d.element;n.has(m)&&(Q.set(m,m),this._beforeAnimationBuild(d.player.namespaceId,d.instruction,D))}),i.forEach(d=>{let m=d.element;this._getPreviousPlayers(m,!1,d.namespaceId,d.triggerName,null).forEach(E=>{R(D,m,[]).push(E),E.destroy()})});let W=T.filter(d=>$i(d,l,c)),G=new Map;Qi(G,this.driver,C,c,K).forEach(d=>{$i(d,l,c)&&W.push(d)});let Ne=new Map;y.forEach((d,m)=>{Qi(Ne,this.driver,new Set(d),l,Re)}),W.forEach(d=>{var E,A;let m=G.get(d),f=Ne.get(d);G.set(d,new Map([...(E=m==null?void 0:m.entries())!=null?E:[],...(A=f==null?void 0:f.entries())!=null?A:[]]))});let se=[],on=[],an={};o.forEach(d=>{let{element:m,player:f,instruction:E}=d;if(n.has(m)){if(u.has(m)){f.onDestroy(()=>U(m,E.toStyles)),f.disabled=!0,f.overrideTotalTime(E.totalTime),i.push(f);return}let A=an;if(Q.size>1){let F=m,X=[];for(;F=F.parentNode;){let b=Q.get(F);if(b){A=b;break}X.push(F)}X.forEach(b=>Q.set(b,A))}let x=this._buildAnimation(f.namespaceId,E,D,r,Ne,G);if(f.setRealPlayer(x),A===an)se.push(f);else{let F=this.playersByElement.get(A);F&&F.length&&(f.parentPlayer=Y(F)),i.push(f)}}else ne(m,E.fromStyles),f.onDestroy(()=>U(m,E.toStyles)),on.push(f),u.has(m)&&i.push(f)}),on.forEach(d=>{let m=r.get(d.element);if(m&&m.length){let f=Y(m);d.setRealPlayer(f)}}),i.forEach(d=>{d.parentPlayer?d.syncPlayerEvents(d.parentPlayer):d.destroy()});for(let d=0;d!x.destroyed);A.length?er(this,m,A):this.processLeaveNode(m)}return T.length=0,se.forEach(d=>{this.players.push(d),d.onDone(()=>{d.destroy();let m=this.players.indexOf(d);this.players.splice(m,1)}),d.play()}),se}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,n,i,r){let o=[];if(t){let a=this.playersByQueriedElement.get(e);a&&(o=a)}else{let a=this.playersByElement.get(e);if(a){let l=!r||r==ze;a.forEach(c=>{c.queued||!l&&c.triggerName!=i||o.push(c)})}}return(n||i)&&(o=o.filter(a=>!(n&&n!=a.namespaceId||i&&i!=a.triggerName))),o}_beforeAnimationBuild(e,t,n){let i=t.triggerName,r=t.element,o=t.isRemovalTransition?void 0:e,a=t.isRemovalTransition?void 0:i;for(let l of t.timelines){let c=l.element,u=c!==r,h=R(n,c,[]);this._getPreviousPlayers(c,u,o,a,t.toState).forEach(y=>{let p=y.getRealPlayer();p.beforeDestroy&&p.beforeDestroy(),y.destroy(),h.push(y)})}ne(r,t.fromStyles)}_buildAnimation(e,t,n,i,r,o){let a=t.triggerName,l=t.element,c=[],u=new Set,h=new Set,v=t.timelines.map(p=>{let g=p.element;u.add(g);let T=g[V];if(T&&T.removedBeforeQueried)return new he(p.duration,p.delay);let P=g!==l,C=tr((n.get(g)||Hs).map(D=>D.getRealPlayer())).filter(D=>{let Q=D;return Q.element?Q.element===g:!1}),k=r.get(g),N=o.get(g),fe=Dt(this._normalizer,p.keyframes,k,N),q=this._buildPlayer(p,fe,C);if(p.subTimeline&&i&&h.add(g),P){let D=new Ue(e,a,g);D.setRealPlayer(q),c.push(D)}return q});c.forEach(p=>{R(this.playersByQueriedElement,p.element,[]).push(p),p.onDone(()=>Xs(this.playersByQueriedElement,p.element,p))}),u.forEach(p=>B(p,zt));let y=Y(v);return y.onDestroy(()=>{u.forEach(p=>Ae(p,zt)),U(l,t.toStyles)}),h.forEach(p=>{R(i,p,[]).push(y)}),y}_buildPlayer(e,t,n){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new he(e.duration,e.delay)}},Ue=class{namespaceId;triggerName;element;_player=new he;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,n)=>{t.forEach(i=>Xe(e,n,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){R(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let t=this._player;t.triggerCallback&&t.triggerCallback(e)}};function Xs(s,e,t){let n=s.get(e);if(n){if(n.length){let i=n.indexOf(t);n.splice(i,1)}n.length==0&&s.delete(e)}return n}function Zs(s){return s!=null?s:null}function ot(s){return s&&s.nodeType===1}function Js(s){return s=="start"||s=="done"}function qi(s,e){let t=s.style.display;return s.style.display=e!=null?e:"none",t}function Qi(s,e,t,n,i){let r=[];t.forEach(l=>r.push(qi(l)));let o=[];n.forEach((l,c)=>{let u=new Map;l.forEach(h=>{let v=e.computeStyle(c,h,i);u.set(h,v),(!v||v.length==0)&&(c[V]=Ys,o.push(c))}),s.set(c,u)});let a=0;return t.forEach(l=>qi(l,r[a++])),o}function xi(s,e){let t=new Map;if(s.forEach(a=>t.set(a,[])),e.length==0)return t;let n=1,i=new Set(e),r=new Map;function o(a){if(!a)return n;let l=r.get(a);if(l)return l;let c=a.parentNode;return t.has(c)?l=c:i.has(c)?l=n:l=o(c),r.set(a,l),l}return e.forEach(a=>{let l=o(a);l!==n&&t.get(l).push(a)}),t}function B(s,e){var t;(t=s.classList)==null||t.add(e)}function Ae(s,e){var t;(t=s.classList)==null||t.remove(e)}function er(s,e,t){Y(t).onDone(()=>s.processLeaveNode(e))}function tr(s){let e=[];return Xi(s,e),e}function Xi(s,e){for(let t=0;ti.add(r)):e.set(s,n),t.delete(s),!0}var Pe=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,t)=>{};constructor(e,t,n){this._driver=t,this._normalizer=n,this._transitionEngine=new Jt(e.body,t,n),this._timelineEngine=new Xt(e.body,t,n),this._transitionEngine.onRemovalComplete=(i,r)=>this.onRemovalComplete(i,r)}registerTrigger(e,t,n,i,r){let o=e+"-"+i,a=this._triggerCache[o];if(!a){let l=[],c=[],u=Wi(this._driver,r,l,c);if(l.length)throw Ei(i,l);a=qs(i,u,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(t,i,a)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,n,i){this._transitionEngine.insertNode(e,t,n,i)}onRemove(e,t,n){this._transitionEngine.removeNode(e,t,n)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,n,i){if(n.charAt(0)=="@"){let[r,o]=Ot(n),a=i;this._timelineEngine.command(r,t,o,a)}else this._transitionEngine.trigger(e,t,n,i)}listen(e,t,n,i,r){if(n.charAt(0)=="@"){let[o,a]=Ot(n);return this._timelineEngine.listen(o,t,a,r)}return this._transitionEngine.listen(e,t,n,i,r)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function ir(s,e){let t=null,n=null;return Array.isArray(e)&&e.length?(t=Qt(e[0]),e.length>1&&(n=Qt(e[e.length-1]))):e instanceof Map&&(t=Qt(e)),t||n?new sr(s,t,n):null}var sr=(()=>{let e=class e{_element;_startStyles;_endStyles;_state=0;_initialStyles;constructor(n,i,r){this._element=n,this._startStyles=i,this._endStyles=r;let o=e.initialStylesByElement.get(n);o||e.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&U(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(U(this._element,this._initialStyles),this._endStyles&&(U(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(ne(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(ne(this._element,this._endStyles),this._endStyles=null),U(this._element,this._initialStyles),this._state=3)}};L(e,"initialStylesByElement",new WeakMap);let s=e;return s})();function Qt(s){let e=null;return s.forEach((t,n)=>{rr(n)&&(e=e||new Map,e.set(n,t))}),e}function rr(s){return s==="display"||s==="position"}var mt=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,t,n,i){this.element=e,this.keyframes=t,this.options=n,this._specialStyles=i,this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer()&&this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return this.domPlayer;this._initialized=!0;let e=this.keyframes,t=this._triggerWebAnimation(this.element,e,this.options);if(!t)return this._onFinish(),null;this.domPlayer=t,this._finalKeyframe=e.length?e[e.length-1]:new Map;let n=()=>this._onFinish();return t.addEventListener("finish",n),this.onDestroy(()=>{t.removeEventListener("finish",n)}),t}_preparePlayerBeforeStart(){var e;this._delay?this._resetDomPlayerState():(e=this.domPlayer)==null||e.pause()}_convertKeyframesToObject(e){let t=[];return e.forEach(n=>{t.push(Object.fromEntries(n))}),t}_triggerWebAnimation(e,t,n){let i=this._convertKeyframesToObject(t);try{return e.animate(i,n)}catch{return null}}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){let e=this._buildPlayer();e&&(this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),e.play())}pause(){var e;this.init(),(e=this.domPlayer)==null||e.pause()}finish(){this.init(),this.domPlayer&&(this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish())}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){var e;(e=this.domPlayer)==null||e.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=e*this.time)}getPosition(){var e;return this.domPlayer?+((e=this.domPlayer.currentTime)!=null?e:0)/this.time:this._initialized?1:0}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((n,i)=>{i!=="offset"&&e.set(i,this._finished?n:it(this.element,i))}),this.currentSnapshot=e}triggerCallback(e){let t=e==="start"?this._onStartFns:this._onDoneFns;t.forEach(n=>n()),t.length=0}},pt=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,t){return Rt(e,t)}getParentElement(e){return Je(e)}query(e,t,n){return It(e,t,n)}computeStyle(e,t,n){return it(e,t)}animate(e,t,n,i,r,o=[]){let a=i==0?"both":"forwards",l={duration:n,delay:i,fill:a};r&&(l.easing=r);let c=new Map,u=o.filter(y=>y instanceof mt);Ii(n,i)&&u.forEach(y=>{y.currentSnapshot.forEach((p,g)=>c.set(g,p))});let h=Oi(t).map(y=>new Map(y));h=Fi(e,h,c);let v=ir(e,h);return new mt(e,h,l,v)}};var at="@",Zi="@.disabled",ft=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,t,n,i){this.namespaceId=e,this.delegate=t,this.engine=n,this._onDestroy=i}get data(){return this.delegate.data}destroyNode(e){var t,n;(n=(t=this.delegate).destroyNode)==null||n.call(t,e)}destroy(){var e;this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),(e=this._onDestroy)==null||e.call(this)}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,n,i=!0){this.delegate.insertBefore(e,t,n),this.engine.onInsert(this.namespaceId,t,e,i)}removeChild(e,t,n,i){if(i){this.delegate.removeChild(e,t,n,i);return}this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,n,i){this.delegate.setAttribute(e,t,n,i)}removeAttribute(e,t,n){this.delegate.removeAttribute(e,t,n)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,n,i){this.delegate.setStyle(e,t,n,i)}removeStyle(e,t,n){this.delegate.removeStyle(e,t,n)}setProperty(e,t,n){t.charAt(0)==at&&t==Zi?this.disableAnimations(e,!!n):this.delegate.setProperty(e,t,n)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,n,i){return this.delegate.listen(e,t,n,i)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}},en=class extends ft{factory;constructor(e,t,n,i,r){super(t,n,i,r),this.factory=e,this.namespaceId=t}setProperty(e,t,n){t.charAt(0)==at?t.charAt(1)=="."&&t==Zi?(n=n===void 0?!0:!!n,this.disableAnimations(e,n)):this.engine.process(this.namespaceId,e,t.slice(1),n):this.delegate.setProperty(e,t,n)}listen(e,t,n,i){if(t.charAt(0)==at){let r=or(e),o=t.slice(1),a="";return o.charAt(0)!=at&&([o,a]=ar(o)),this.engine.listen(this.namespaceId,r,o,a,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,n,l)})}return this.delegate.listen(e,t,n,i)}};function or(s){switch(s){case"body":return document.body;case"document":return document;case"window":return window;default:return s}}function ar(s){let e=s.indexOf("."),t=s.substring(0,e),n=s.slice(e+1);return[t,n]}var gt=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,t,n){this.delegate=e,this.engine=t,this._zone=n,t.onRemovalComplete=(i,r)=>{r==null||r.removeChild(null,i)}}createRenderer(e,t){var c;let i=this.delegate.createRenderer(e,t);if(!e||!((c=t==null?void 0:t.data)!=null&&c.animation)){let u=this._rendererCache,h=u.get(i);if(!h){let v=()=>u.delete(i);h=new ft("",i,this.engine,v),u.set(i,h)}return h}let r=t.id,o=t.id+"-"+this._currentId;this._currentId++,this.engine.register(o,e);let a=u=>{Array.isArray(u)?u.forEach(a):this.engine.registerTrigger(r,o,e,u.name,u)};return t.data.animation.forEach(a),new en(this,o,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,n){if(e>=0&&et(n));return}let i=this._animationCallbacksBuffer;i.length==0&&queueMicrotask(()=>{this._zone.run(()=>{i.forEach(r=>{let[o,a]=r;o(a)}),this._animationCallbacksBuffer=[]})}),i.push([t,n])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){var t,n;this.engine.flush(),(n=(t=this.delegate).componentReplaced)==null||n.call(t,e)}};var hr=(()=>{let e=class e extends Pe{constructor(n,i,r){super(n,i,r)}ngOnDestroy(){this.flush()}};L(e,"\u0275fac",function(i){return new(i||e)(le(pn),le(ie),le(pe))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})();function dr(){return new lt}function mr(s,e,t){return new gt(s,e,t)}var Ji=[{provide:pe,useFactory:dr},{provide:Pe,useClass:hr},{provide:gn,useFactory:mr,deps:[Cn,Pe,$e]}],fo=[{provide:ie,useClass:tn},{provide:vt,useValue:"NoopAnimations"},...Ji],pr=[{provide:ie,useFactory:()=>new pt},{provide:vt,useFactory:()=>"BrowserAnimations"},...Ji];function es(){return fn("NgEagerAnimations"),[...pr]}var sn="Service workers are disabled or not supported by this browser",Ce=class{serviceWorker;worker;registration;events;constructor(e,t){if(this.serviceWorker=e,!e)this.worker=this.events=this.registration=new Qe(n=>n.error(new _(5601,!1)));else{let n=null,i=new xe;this.worker=new Qe(c=>(n!==null&&c.next(n),i.subscribe(u=>c.next(u))));let r=()=>{let{controller:c}=e;c!==null&&(n=c,i.next(n))};e.addEventListener("controllerchange",r),r(),this.registration=this.worker.pipe(Me(()=>e.getRegistration().then(c=>{if(!c)throw new _(5601,!1);return c})));let o=new xe;this.events=o.asObservable();let a=c=>{let{data:u}=c;u!=null&&u.type&&o.next(u)};e.addEventListener("message",a);let l=t==null?void 0:t.get(Et,null,{optional:!0});l==null||l.onDestroy(()=>{e.removeEventListener("controllerchange",r),e.removeEventListener("message",a)})}}postMessage(e,t){return new Promise(n=>{this.worker.pipe(ye(1)).subscribe(i=>{i.postMessage(ge({action:e},t)),n()})})}postMessageWithOperation(e,t,n){let i=this.waitForOperationCompleted(n),r=this.postMessage(e,t);return Promise.all([r,i]).then(([,o])=>o)}generateNonce(){return Math.round(Math.random()*1e7)}eventsOfType(e){let t;return typeof e=="string"?t=n=>n.type===e:t=n=>e.includes(n.type),this.events.pipe(_t(t))}nextEventOfType(e){return this.eventsOfType(e).pipe(ye(1))}waitForOperationCompleted(e){return new Promise((t,n)=>{this.eventsOfType("OPERATION_COMPLETED").pipe(_t(i=>i.nonce===e),ye(1),oe(i=>{if(i.result!==void 0)return i.result;throw new Error(i.error)})).subscribe({next:t,error:n})})}get isEnabled(){return!!this.serviceWorker}},fr=(()=>{let e=class e{sw;messages;notificationClicks;notificationCloses;pushSubscriptionChanges;subscription;get isEnabled(){return this.sw.isEnabled}pushManager=null;subscriptionChanges=new xe;constructor(n){if(this.sw=n,!n.isEnabled){this.messages=J,this.notificationClicks=J,this.notificationCloses=J,this.pushSubscriptionChanges=J,this.subscription=J;return}this.messages=this.sw.eventsOfType("PUSH").pipe(oe(r=>r.data)),this.notificationClicks=this.sw.eventsOfType("NOTIFICATION_CLICK").pipe(oe(r=>r.data)),this.notificationCloses=this.sw.eventsOfType("NOTIFICATION_CLOSE").pipe(oe(r=>r.data)),this.pushSubscriptionChanges=this.sw.eventsOfType("PUSH_SUBSCRIPTION_CHANGE").pipe(oe(r=>r.data)),this.pushManager=this.sw.registration.pipe(oe(r=>r.pushManager));let i=this.pushManager.pipe(Me(r=>r.getSubscription()));this.subscription=new Qe(r=>{let o=i.subscribe(r),a=this.subscriptionChanges.subscribe(r);return()=>{o.unsubscribe(),a.unsubscribe()}})}requestSubscription(n){if(!this.sw.isEnabled||this.pushManager===null)return Promise.reject(new Error(sn));let i={userVisibleOnly:!0},r=this.decodeBase64(n.serverPublicKey.replace(/_/g,"/").replace(/-/g,"+")),o=new Uint8Array(new ArrayBuffer(r.length));for(let a=0;a{this.pushManager.pipe(Me(c=>c.subscribe(i)),ye(1)).subscribe({next:c=>{this.subscriptionChanges.next(c),a(c)},error:l})})}unsubscribe(){if(!this.sw.isEnabled)return Promise.reject(new Error(sn));let n=i=>{if(i===null)throw new _(5602,!1);return i.unsubscribe().then(r=>{if(!r)throw new _(5603,!1);this.subscriptionChanges.next(null)})};return new Promise((i,r)=>{this.subscription.pipe(ye(1),Me(n)).subscribe({next:i,error:r})})}decodeBase64(n){return atob(n)}};L(e,"\u0275fac",function(i){return new(i||e)(le(Ce))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})(),gr=(()=>{let e=class e{sw;versionUpdates;unrecoverable;get isEnabled(){return this.sw.isEnabled}ongoingCheckForUpdate=null;constructor(n){if(this.sw=n,!n.isEnabled){this.versionUpdates=J,this.unrecoverable=J;return}this.versionUpdates=this.sw.eventsOfType(["VERSION_DETECTED","VERSION_INSTALLATION_FAILED","VERSION_READY","NO_NEW_VERSION_DETECTED"]),this.unrecoverable=this.sw.eventsOfType("UNRECOVERABLE_STATE")}checkForUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(sn));if(this.ongoingCheckForUpdate)return this.ongoingCheckForUpdate;let n=this.sw.generateNonce();return this.ongoingCheckForUpdate=this.sw.postMessageWithOperation("CHECK_FOR_UPDATES",{nonce:n},n).finally(()=>{this.ongoingCheckForUpdate=null}),this.ongoingCheckForUpdate}activateUpdate(){if(!this.sw.isEnabled)return Promise.reject(new _(5601,!1));let n=this.sw.generateNonce();return this.sw.postMessageWithOperation("ACTIVATE_UPDATE",{nonce:n},n)}};L(e,"\u0275fac",function(i){return new(i||e)(le(Ce))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})();var ns=new hn("");function yr(){let s=O(Ve);if(!("serviceWorker"in navigator&&s.enabled!==!1))return;let e=O(ns),t=O($e),n=O(Et);t.runOutsideAngular(()=>{let i=navigator.serviceWorker,r=()=>{var o;return(o=i.controller)==null?void 0:o.postMessage({action:"INITIALIZE"})};i.addEventListener("controllerchange",r),n.onDestroy(()=>{i.removeEventListener("controllerchange",r)})}),t.runOutsideAngular(()=>{let i,{registrationStrategy:r}=s;if(typeof r=="function")i=new Promise(o=>r().subscribe(()=>o()));else{let[o,...a]=(r||"registerWhenStable:30000").split(":");switch(o){case"registerImmediately":i=Promise.resolve();break;case"registerWithDelay":i=ts(+a[0]||0);break;case"registerWhenStable":i=Promise.race([n.whenStable(),ts(+a[0])]);break;default:throw new _(5600,!1)}}i.then(()=>{n.destroyed||navigator.serviceWorker.register(e,{scope:s.scope,updateViaCache:s.updateViaCache,type:s.type}).catch(o=>console.error(un(5604,!1)))})})}function ts(s){return new Promise(e=>setTimeout(e,s))}function _r(s,e){return new Ce(s.enabled!==!1?navigator.serviceWorker:void 0,e)}var Ve=class{enabled;updateViaCache;type;scope;registrationStrategy};function is(s,e={}){return dn([fr,gr,{provide:ns,useValue:s},{provide:Ve,useValue:e},{provide:Ce,useFactory:_r,deps:[Ve,mn]},vn(yr)])}ii.production&&void 0;Nn(Ye,{providers:[{provide:Mn,useClass:On},es(),kn(ti,Dn()),zn({mode:"md",animated:De.getPlatform()!="web"}),is("ngsw-worker.js",{enabled:!1,registrationStrategy:"registerWhenStable:30000"})]}); diff --git a/.admin-app/main-A4GXMIVS.js b/.admin-app/main-A4GXMIVS.js deleted file mode 100644 index d0f1a0c3..00000000 --- a/.admin-app/main-A4GXMIVS.js +++ /dev/null @@ -1 +0,0 @@ -import{a as S,b as K,e as Jn,f as wt,i as he,j as Ge,k as Re}from"./chunk-DUKSTT3K.js";import{$ as Yn,H as $n,T as jn,U as Wn,V as Gn,_ as Hn,ba as Xn,h as Vn,ja as Zn,o as qn,x as Qn,y as xn}from"./chunk-LIWDDRYP.js";import{K as Oe}from"./chunk-OQVFSD37.js";import{a as De,b as We}from"./chunk-PFLI22GG.js";import{$ as Tn,Aa as Se,B as vt,Ca as Tt,H as $,Hc as zn,I as fn,Ic as Bn,Jc as Kn,K as $e,L as gn,Mc as Un,P as yn,Sa as je,T as _n,Tb as On,U as vn,V as Et,Vb as Rn,X as En,Y as Sn,Yb as bt,a as Qe,aa as bn,ac as In,b as xe,ba as ce,c as oe,ca as ee,da as H,e as J,ea as ue,eb as Cn,f as _t,fb as Nn,g as ye,h as Me,i as _,ib as Mn,j as un,ja as St,jb as ke,l as ae,la as Ee,lb as kn,mb as Dn,n as hn,na as te,o as le,p as O,q as dn,ra as wn,s as _e,sa as An,sc as Fn,t as ve,ta as Pn,u as mn,v as pn,vc as Ln}from"./chunk-FDEJMFAU.js";import"./chunk-JORYF43P.js";import"./chunk-7KGURMOZ.js";import"./chunk-UT2PGJWE.js";import"./chunk-6Y2ASLSF.js";import"./chunk-XRJ4SE6F.js";import"./chunk-LIBYTRNP.js";import"./chunk-3MK77LPM.js";import"./chunk-4U6PRYVA.js";import"./chunk-CZ4AHVKD.js";import"./chunk-Z4V4M3ZT.js";import"./chunk-LLZYEWEK.js";import"./chunk-Z2GS73PT.js";import"./chunk-LF5XB4YN.js";import{a as ge,d as cn,g as L,h as Z}from"./chunk-LNJ3S2LQ.js";var ei=!1;function rs(){return document.location.hostname.startsWith("edit")||document.location.protocol.startsWith("capacitor:")}function os(){return ei=!0,!0}var ti=[{path:"index",loadComponent:()=>import("./chunk-YJNLRALT.js").then(s=>s.HomePage)},{path:"privacy",loadComponent:()=>import("./chunk-IBTHO3RH.js").then(s=>s.PrivacyPage)},{path:"",redirectTo:rs()?"all":"index",pathMatch:"full"},{path:"event",loadComponent:()=>import("./chunk-Y6ZHLRNP.js").then(s=>s.EventPage),canActivate:[w]},{path:":vanity/events/:id",loadComponent:()=>import("./chunk-Y6ZHLRNP.js").then(s=>s.EventPage),canActivate:[w]},{path:":vanity/broadcast",loadComponent:()=>import("./chunk-CJKTJYPA.js").then(s=>s.BroadcastPage),canActivate:[w]},{path:":vanity/music/:id",loadComponent:()=>import("./chunk-NNHLV5B3.js").then(s=>s.MusicItemPage),canActivate:[w]},{path:":vanity/camp/:id",loadComponent:()=>import("./chunk-XACE3SP2.js").then(s=>s.CampPage),canActivate:[w]},{path:":vanity/art/:id",loadComponent:()=>import("./chunk-LWEHEVWG.js").then(s=>s.ArtItemPage)},{path:":vanity/map/art/:id",loadComponent:()=>import("./chunk-4XFTJEYH.js").then(s=>s.ArtMapPage),canActivate:[w]},{path:":vanity/map/:id",loadComponent:()=>import("./chunk-IARXEYOV.js").then(s=>s.MapPage),canActivate:[w]},{path:"auth",loadComponent:()=>import("./chunk-ZOMJNEQB.js").then(s=>s.AuthPage)},{path:":vanity/pins",loadComponent:()=>import("./chunk-A6WNT7FY.js").then(s=>s.PinsPage),canActivate:[w]},{path:"all",loadComponent:()=>import("./chunk-DLYHGZPI.js").then(s=>s.FestivalsPage)},{path:":vanity/edit",loadComponent:()=>import("./chunk-K3RLIGGM.js").then(s=>s.FestivalPage),canActivate:[w]},{path:"new",loadComponent:()=>import("./chunk-K3RLIGGM.js").then(s=>s.FestivalPage),canActivate:[w]},{path:"help",loadComponent:()=>import("./chunk-GZDIRLGC.js").then(s=>s.HelpPage)},{path:":vanity/camps",loadComponent:()=>import("./chunk-N5F4Z23V.js").then(s=>s.CampsPage),canActivate:[w]},{path:":vanity/art",loadComponent:()=>import("./chunk-DEECFNUR.js").then(s=>s.ArtPage),canActivate:[w]},{path:":vanity/music",loadComponent:()=>import("./chunk-JPSQHVXH.js").then(s=>s.MusicPage),canActivate:[w]},{path:":vanity/events",loadComponent:()=>import("./chunk-RJKKC3S6.js").then(s=>s.EventsPage),canActivate:[w]},{path:":vanity/print",loadComponent:()=>import("./chunk-NOXTHIT5.js").then(s=>s.PrintPage)},{path:":vanity/links",loadComponent:()=>import("./chunk-XVLNEKIQ.js").then(s=>s.LinksPage),canActivate:[w]},{path:":vanity/link/:id",loadComponent:()=>import("./chunk-2YA6UCY4.js").then(s=>s.LinkPage),canActivate:[w]},{path:":vanity/unpublished",loadComponent:()=>import("./chunk-AGI6BWYA.js").then(s=>s.UnpublishedPage),canActivate:[w]},{path:":vanity/preview",loadComponent:()=>import("./chunk-7CFKHTZL.js").then(s=>s.PreviewPage),canActivate:[w]},{path:":vanity/message",loadComponent:()=>import("./chunk-USPTQ7WY.js").then(s=>s.MessagePage),canActivate:[w]},{path:":vanity/message-triggers",loadComponent:()=>import("./chunk-T34LU4SH.js").then(s=>s.MessageTriggersPage),canActivate:[w]},{path:":vanity/settings",loadComponent:()=>import("./chunk-XBTQFN5B.js").then(s=>s.SettingsPage)},{path:":vanity/settings/css",loadComponent:()=>import("./chunk-G7X5MIYJ.js").then(s=>s.CssEditPage)},{path:":vanity/import",loadComponent:()=>import("./chunk-LT7OOBRG.js").then(s=>s.ImportPage),canActivate:[w]},{path:":vanity/import-art",loadComponent:()=>import("./chunk-4JENLKOF.js").then(s=>s.ImportArtPage),canActivate:[w]},{path:":vanity/import-events",loadComponent:()=>import("./chunk-5W2DI6KX.js").then(s=>s.ImportEventsPage)},{path:":vanity/import-kml/:type",loadComponent:()=>import("./chunk-WYUVY7GP.js").then(s=>s.ImportKmlPage),canActivate:[w]},{path:":vanity",loadComponent:()=>import("./chunk-RJUAL4VO.js").then(s=>s.FestivalViewPage),canActivate:[as,os]},{path:"redirect/:id",loadComponent:()=>import("./chunk-HF225NWQ.js").then(s=>s.RedirectPage)}];function as(){let s=O(Oe),e=O(ke);return s.signedIn()||(sessionStorage.sendVanity=document.location.pathname.replace("/",""),e.navigateByUrl("/auth")),!0}function w(){let s=O(Oe);s.checkInit();let e=O(ke);if(!ei){let r=document.location.pathname.match(/^\/([^\/]+)/);if(r){let o=r[1];return console.log(`Redirected to route: ${o}`),e.navigateByUrl(`/${o}`),!1}}let n=new URLSearchParams(window.location.search).get("key");if(n&&sessionStorage.setItem("key",n),s.signedIn())n&&s.setKey();else{console.error("Not signed in");let i=`${document.location.pathname}`;s.setRedirection(i),console.log(`Redirection url was set to ${i}`),e.navigateByUrl(`/auth?redirect=${encodeURIComponent(i)}`)}return!0}var At=(function(s){return s.Dark="DARK",s.Light="LIGHT",s.Default="DEFAULT",s})(At||{}),Pt=(function(s){return s.None="NONE",s.Slide="SLIDE",s.Fade="FADE",s})(Pt||{});var He=We("StatusBar");var ni=We("App",{web:()=>import("./chunk-3YXNQJBH.js").then(s=>new s.AppWeb)});var ls=(s,e)=>e.title;function cs(s,e){if(s&1){let t=St();ee(0,"ion-item",2),Ee("click",function(){let i=_e(t).$implicit,r=te(2);return ve(r.buttonClick(i))}),ue(1,"ion-icon",3),Se(2),H()}if(s&2){let t=e.$implicit;$(),ce("name",t.icon),$(),Tt(" ",t.title," ")}}function us(s,e){if(s&1){let t=St();ee(0,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.userInfo())}),ue(1,"ion-icon",5),Se(2),H(),ee(3,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.getHelp())}),ue(4,"ion-icon",6),Se(5," Get Support"),H(),ee(6,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.getDocs())}),ue(7,"ion-icon",7),Se(8," Read the Docs"),H(),ee(9,"ion-item",4),Ee("click",function(){_e(t);let i=te(2);return ve(i.signOut())}),ue(10,"ion-icon",8),Se(11," Sign Out"),H()}if(s&2){let t=te(2);ce("button",!0),$(2),Tt(" ",t.api.user()," "),$(),ce("button",!0),$(3),ce("button",!0),$(3),ce("button",!0)}}function hs(s,e){if(s&1&&(ee(0,"ion-list"),Tn(1,cs,3,2,"ion-item",1,ls),En(3,us,12,5),H()),s&2){let t=te();$(),bn(t.buttons),$(2),Sn(t.hideProfile?-1:3)}}var Te=class Te{constructor(){this.api=O(Oe);this.alert=O(Bn);this.toastController=O(Kn);this.router=O(ke);this.buttons=[];this.hideProfile=!1;let e=this.api;Zn({personCircleSharp:Hn,personOutline:Yn,bookOutline:Vn,mailOutline:Wn,printOutline:Xn,cloudUploadOutline:xn,cloudDownloadOutline:Qn,logOutOutline:jn,mapOutline:Gn,chatboxEllipsesOutline:qn,helpCircleOutline:$n}),je(()=>Z(this,null,function*(){let t=e.errorStream();if(t.status==200)return;let n=t.text;if(t.status==403)try{n=this.api.signedIn()?"You are not authorized to perform this function.":"You must be logged in to perform this function."}catch{console.log("cleared token"),n="You have been logged out.",this.api.clearToken()}yield this.presentAlert("Error",n),t.status==1&&(console.log("navigate to /all due to error status route to index"),this.router.navigateByUrl("/all")),t.status==403&&this.router.navigateByUrl("/auth"),t.status==2&&this.router.navigateByUrl(t.url)})),je(()=>Z(this,null,function*(){var n;let t=e.messageStream();if(t.message!="")switch(t.type){case 0:yield this.presentAlert((n=t.title)!=null?n:"Message",t.message,t.url);break;case 1:yield this.presentToast(t.message);break}})),je(()=>Z(this,null,function*(){var n;let t=e.moreButton();t.event&&(this.buttons=(n=t.buttons)!=null?n:[],this.hideProfile=t.hideProfile,this.popover.present(t.event))})),ni.addListener("appUrlOpen",t=>{this.api.openedUrl.set(t.url)}),this.setStatusBar()}setStatusBar(){return Z(this,null,function*(){this.api.init(),De.isNativePlatform()&&(yield He.show({animation:Pt.Fade}),yield He.setStyle({style:At.Dark}),De.getPlatform()==="android"&&(yield He.setBackgroundColor({color:"#F61067"})))})}presentAlert(e,t,n){return Z(this,null,function*(){if(n){let r=[{text:"Open Link",role:"confirm",handler:()=>{window.open(n,"_blank")}},{text:"Not Now",role:"confirm"}];yield(yield this.alert.create({header:e,message:t,buttons:r})).present();return}yield(yield this.alert.create({header:e,message:t,buttons:["OK"]})).present()})}presentToast(e){return Z(this,null,function*(){yield(yield this.toastController.create({message:e,duration:2500,swipeGesture:"vertical",position:"bottom"})).present()})}buttonClick(e){e.method!==void 0&&e.method.call(void 0)}signOut(){return Z(this,null,function*(){this.api.signOut(),this.router.navigateByUrl("/auth")})}getHelp(){this.router.navigateByUrl("/help")}getDocs(){window.open("https://dust.events/docs/intro","_blank")}userInfo(){this.api.sendMessage(`Logged in as ${this.api.userEmail()}`,0,"User Information")}};Te.\u0275fac=function(t){return new(t||Te)},Te.\u0275cmp=yn({type:Te,selectors:[["app-root"]],viewQuery:function(t,n){if(t&1&&wn(bt,5),t&2){let i;An(i=Pn())&&(n.popover=i.first)}},decls:4,vars:1,consts:[["size","auto",3,"dismissOnSelect"],[1,"clickable"],[1,"clickable",3,"click"],["aria-hidden","true","slot","start",3,"name"],[3,"click","button"],["slot","start","aria-hidden","true","name","person-outline"],["aria-hidden","true","slot","start","name","chatbox-ellipses-outline"],["aria-hidden","true","slot","start","name","book-outline"],["aria-hidden","true","slot","start","name","log-out-outline"]],template:function(t,n){t&1&&(ee(0,"ion-app")(1,"ion-popover",0),_n(2,hs,4,1,"ng-template"),H(),ue(3,"ion-router-outlet"),H()),t&2&&($(),ce("dismissOnSelect",!0))},dependencies:[Un,Fn,Ln,bt,In,Rn],styles:["ion-popover[_ngcontent-%COMP%]{--width: 300px}"]});var Ye=Te;var ii={production:!0};function si(s){return new _(3e3,!1)}function ds(){return new _(3100,!1)}function ms(){return new _(3101,!1)}function ps(s){return new _(3001,!1)}function fs(s){return new _(3003,!1)}function gs(s){return new _(3004,!1)}function oi(s,e){return new _(3005,!1)}function ai(){return new _(3006,!1)}function li(){return new _(3007,!1)}function ci(s,e){return new _(3008,!1)}function ui(s){return new _(3002,!1)}function hi(s,e,t,n,i){return new _(3010,!1)}function di(){return new _(3011,!1)}function mi(){return new _(3012,!1)}function pi(){return new _(3200,!1)}function fi(){return new _(3202,!1)}function gi(){return new _(3013,!1)}function yi(s){return new _(3014,!1)}function _i(s){return new _(3015,!1)}function vi(s){return new _(3016,!1)}function Ei(s,e){return new _(3404,!1)}function ys(s){return new _(3502,!1)}function Si(s){return new _(3503,!1)}function Ti(){return new _(3300,!1)}function bi(s){return new _(3504,!1)}function wi(s){return new _(3301,!1)}function Ai(s,e){return new _(3302,!1)}function Pi(s){return new _(3303,!1)}function Ci(s,e){return new _(3400,!1)}function Ni(s){return new _(3401,!1)}function Mi(s){return new _(3402,!1)}function ki(s,e){return new _(3505,!1)}function Y(s){switch(s.length){case 0:return new he;case 1:return s[0];default:return new Ge(s)}}function Dt(s,e,t=new Map,n=new Map){let i=[],r=[],o=-1,a=null;if(e.forEach(l=>{let c=l.get("offset"),u=c==o,h=u&&a||new Map;l.forEach((v,y)=>{let p=y,g=v;if(y!=="offset")switch(p=s.normalizePropertyName(p,i),g){case Re:g=t.get(y);break;case K:g=n.get(y);break;default:g=s.normalizeStyleValue(y,p,g,i);break}h.set(p,g)}),u||r.push(h),a=h,o=c}),i.length)throw ys(i);return r}function Xe(s,e,t,n){switch(e){case"start":s.onStart(()=>n(t&&Nt(t,"start",s)));break;case"done":s.onDone(()=>n(t&&Nt(t,"done",s)));break;case"destroy":s.onDestroy(()=>n(t&&Nt(t,"destroy",s)));break}}function Nt(s,e,t){let n=t.totalTime,i=!!t.disabled,r=Ze(s.element,s.triggerName,s.fromState,s.toState,e||s.phaseName,n==null?s.totalTime:n,i),o=s._data;return o!=null&&(r._data=o),r}function Ze(s,e,t,n,i="",r=0,o){return{element:s,triggerName:e,fromState:t,toState:n,phaseName:i,totalTime:r,disabled:!!o}}function R(s,e,t){let n=s.get(e);return n||s.set(e,n=t),n}function Ot(s){let e=s.indexOf(":"),t=s.substring(1,e),n=s.slice(e+1);return[t,n]}var _s=typeof document>"u"?null:document.documentElement;function Je(s){let e=s.parentNode||s.host||null;return e===_s?null:e}function vs(s){return s.substring(1,6)=="ebkit"}var de=null,ri=!1;function Di(s){de||(de=Es()||{},ri=de.style?"WebkitAppearance"in de.style:!1);let e=!0;return de.style&&!vs(s)&&(e=s in de.style,!e&&ri&&(e="Webkit"+s.charAt(0).toUpperCase()+s.slice(1)in de.style)),e}function Es(){return typeof document<"u"?document.body:null}function Rt(s,e){for(;e;){if(e===s)return!0;e=Je(e)}return!1}function It(s,e,t){if(t)return Array.from(s.querySelectorAll(e));let n=s.querySelector(e);return n?[n]:[]}var Ss=1e3,Ft="{{",Ts="}}",Lt="ng-enter",et="ng-leave",Ie="ng-trigger",Fe=".ng-trigger",zt="ng-animating",tt=".ng-animating";function j(s){if(typeof s=="number")return s;let e=s.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Mt(parseFloat(e[1]),e[2])}function Mt(s,e){switch(e){case"s":return s*Ss;default:return s}}function Le(s,e,t){return s.hasOwnProperty("duration")?s:ws(s,e,t)}var bs=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i;function ws(s,e,t){let n,i=0,r="";if(typeof s=="string"){let o=s.match(bs);if(o===null)return e.push(si(s)),{duration:0,delay:0,easing:""};n=Mt(parseFloat(o[1]),o[2]);let a=o[3];a!=null&&(i=Mt(parseFloat(a),o[4]));let l=o[5];l&&(r=l)}else n=s;if(!t){let o=!1,a=e.length;n<0&&(e.push(ds()),o=!0),i<0&&(e.push(ms()),o=!0),o&&e.splice(a,0,si(s))}return{duration:n,delay:i,easing:r}}function Oi(s){return s.length?s[0]instanceof Map?s:s.map(e=>new Map(Object.entries(e))):[]}function U(s,e,t){e.forEach((n,i)=>{let r=nt(i);t&&!t.has(i)&&t.set(i,s.style[r]),s.style[r]=n})}function ne(s,e){e.forEach((t,n)=>{let i=nt(n);s.style[i]=""})}function be(s){return Array.isArray(s)?s.length==1?s[0]:Jn(s):s}function Ri(s,e,t){let n=e.params||{},i=Bt(s);i.length&&i.forEach(r=>{n.hasOwnProperty(r)||t.push(ps(r))})}var kt=new RegExp(`${Ft}\\s*(.+?)\\s*${Ts}`,"g");function Bt(s){let e=[];if(typeof s=="string"){let t;for(;t=kt.exec(s);)e.push(t[1]);kt.lastIndex=0}return e}function we(s,e,t){let n=`${s}`,i=n.replace(kt,(r,o)=>{let a=e[o];return a==null&&(t.push(fs(o)),a=""),a.toString()});return i==n?s:i}var As=/-+([a-z0-9])/g;function nt(s){return s.replace(As,(...e)=>e[1].toUpperCase())}function Ii(s,e){return s===0||e===0}function Fi(s,e,t){if(t.size&&e.length){let n=e[0],i=[];if(t.forEach((r,o)=>{n.has(o)||i.push(o),n.set(o,r)}),i.length)for(let r=1;ro.set(a,it(s,a)))}}return e}function I(s,e,t){switch(e.type){case S.Trigger:return s.visitTrigger(e,t);case S.State:return s.visitState(e,t);case S.Transition:return s.visitTransition(e,t);case S.Sequence:return s.visitSequence(e,t);case S.Group:return s.visitGroup(e,t);case S.Animate:return s.visitAnimate(e,t);case S.Keyframes:return s.visitKeyframes(e,t);case S.Style:return s.visitStyle(e,t);case S.Reference:return s.visitReference(e,t);case S.AnimateChild:return s.visitAnimateChild(e,t);case S.AnimateRef:return s.visitAnimateRef(e,t);case S.Query:return s.visitQuery(e,t);case S.Stagger:return s.visitStagger(e,t);default:throw gs(e.type)}}function it(s,e){return window.getComputedStyle(s)[e]}var tn=(()=>{let e=class e{validateStyleProperty(n){return Di(n)}containsElement(n,i){return Rt(n,i)}getParentElement(n){return Je(n)}query(n,i,r){return It(n,i,r)}computeStyle(n,i,r){return r||""}animate(n,i,r,o,a,l=[],c){return new he(r,o)}};L(e,"\u0275fac",function(i){return new(i||e)}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})(),ie=class{};L(ie,"NOOP",new tn);var pe=class{};var Ps=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),lt=class extends pe{normalizePropertyName(e,t){return nt(e)}normalizeStyleValue(e,t,n,i){let r="",o=n.toString().trim();if(Ps.has(t)&&n!==0&&n!=="0")if(typeof n=="number")r="px";else{let a=n.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&a[1].length==0&&i.push(oi(e,n))}return o+r}};var ct="*";function Cs(s,e){let t=[];return typeof s=="string"?s.split(/\s*,\s*/).forEach(n=>Ns(n,t,e)):t.push(s),t}function Ns(s,e,t){if(s[0]==":"){let l=Ms(s,t);if(typeof l=="function"){e.push(l);return}s=l}let n=s.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(n==null||n.length<4)return t.push(_i(s)),e;let i=n[1],r=n[2],o=n[3];e.push(Li(i,o));let a=i==ct&&o==ct;r[0]=="<"&&!a&&e.push(Li(o,i))}function Ms(s,e){switch(s){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,n)=>parseFloat(n)>parseFloat(t);case":decrement":return(t,n)=>parseFloat(n) *"}}var st=new Set(["true","1"]),rt=new Set(["false","0"]);function Li(s,e){let t=st.has(s)||rt.has(s),n=st.has(e)||rt.has(e);return(i,r)=>{let o=s==ct||s==i,a=e==ct||e==r;return!o&&t&&typeof i=="boolean"&&(o=i?st.has(s):rt.has(s)),!a&&n&&typeof r=="boolean"&&(a=r?st.has(e):rt.has(e)),o&&a}}var ji=":self",ks=new RegExp(`s*${ji}s*,?`,"g");function Wi(s,e,t,n){return new xt(s).build(e,t,n)}var zi="",xt=class{_driver;constructor(e){this._driver=e}build(e,t,n){let i=new $t(t);return this._resetContextStyleTimingState(i),I(this,be(e),i)}_resetContextStyleTimingState(e){e.currentQuerySelector=zi,e.collectedStyles=new Map,e.collectedStyles.set(zi,new Map),e.currentTime=0}visitTrigger(e,t){let n=t.queryCount=0,i=t.depCount=0,r=[],o=[];return e.name.charAt(0)=="@"&&t.errors.push(ai()),e.definitions.forEach(a=>{if(this._resetContextStyleTimingState(t),a.type==S.State){let l=a,c=l.name;c.toString().split(/\s*,\s*/).forEach(u=>{l.name=u,r.push(this.visitState(l,t))}),l.name=c}else if(a.type==S.Transition){let l=this.visitTransition(a,t);n+=l.queryCount,i+=l.depCount,o.push(l)}else t.errors.push(li())}),{type:S.Trigger,name:e.name,states:r,transitions:o,queryCount:n,depCount:i,options:null}}visitState(e,t){let n=this.visitStyle(e.styles,t),i=e.options&&e.options.params||null;if(n.containsDynamicStyles){let r=new Set,o=i||{};n.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{Bt(l).forEach(c=>{o.hasOwnProperty(c)||r.add(c)})})}),r.size&&t.errors.push(ci(e.name,[...r.values()]))}return{type:S.State,name:e.name,style:n,options:i?{params:i}:null}}visitTransition(e,t){t.queryCount=0,t.depCount=0;let n=I(this,be(e.animation),t),i=Cs(e.expr,t.errors);return{type:S.Transition,matchers:i,animation:n,queryCount:t.queryCount,depCount:t.depCount,options:me(e.options)}}visitSequence(e,t){return{type:S.Sequence,steps:e.steps.map(n=>I(this,n,t)),options:me(e.options)}}visitGroup(e,t){let n=t.currentTime,i=0,r=e.steps.map(o=>{t.currentTime=n;let a=I(this,o,t);return i=Math.max(i,t.currentTime),a});return t.currentTime=i,{type:S.Group,steps:r,options:me(e.options)}}visitAnimate(e,t){let n=Is(e.timings,t.errors);t.currentAnimateTimings=n;let i,r=e.styles?e.styles:wt({});if(r.type==S.Keyframes)i=this.visitKeyframes(r,t);else{let o=e.styles,a=!1;if(!o){a=!0;let c={};n.easing&&(c.easing=n.easing),o=wt(c)}t.currentTime+=n.duration+n.delay;let l=this.visitStyle(o,t);l.isEmptyStep=a,i=l}return t.currentAnimateTimings=null,{type:S.Animate,timings:n,style:i,options:null}}visitStyle(e,t){let n=this._makeStyleAst(e,t);return this._validateStyleAst(n,t),n}_makeStyleAst(e,t){let n=[],i=Array.isArray(e.styles)?e.styles:[e.styles];for(let a of i)typeof a=="string"?a===K?n.push(a):t.errors.push(ui(a)):n.push(new Map(Object.entries(a)));let r=!1,o=null;return n.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(o=a.get("easing"),a.delete("easing")),!r)){for(let l of a.values())if(l.toString().indexOf(Ft)>=0){r=!0;break}}}),{type:S.Style,styles:n,easing:o,offset:e.offset,containsDynamicStyles:r,options:null}}_validateStyleAst(e,t){let n=t.currentAnimateTimings,i=t.currentTime,r=t.currentTime;n&&r>0&&(r-=n.duration+n.delay),e.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,l)=>{let c=t.collectedStyles.get(t.currentQuerySelector),u=c.get(l),h=!0;u&&(r!=i&&r>=u.startTime&&i<=u.endTime&&(t.errors.push(hi(l,u.startTime,u.endTime,r,i)),h=!1),r=u.startTime),h&&c.set(l,{startTime:r,endTime:i}),t.options&&Ri(a,t.options,t.errors)})})}visitKeyframes(e,t){let n={type:S.Keyframes,styles:[],options:null};if(!t.currentAnimateTimings)return t.errors.push(di()),n;let i=1,r=0,o=[],a=!1,l=!1,c=0,u=e.steps.map(P=>{let C=this._makeStyleAst(P,t),k=C.offset!=null?C.offset:Rs(C.styles),N=0;return k!=null&&(r++,N=C.offset=k),l=l||N<0||N>1,a=a||N0&&r{let k=v>0?C==y?1:v*C:o[C],N=k*T;t.currentTime=p+g.delay+N,g.duration=N,this._validateStyleAst(P,t),P.offset=k,n.styles.push(P)}),n}visitReference(e,t){return{type:S.Reference,animation:I(this,be(e.animation),t),options:me(e.options)}}visitAnimateChild(e,t){return t.depCount++,{type:S.AnimateChild,options:me(e.options)}}visitAnimateRef(e,t){return{type:S.AnimateRef,animation:this.visitReference(e.animation,t),options:me(e.options)}}visitQuery(e,t){let n=t.currentQuerySelector,i=e.options||{};t.queryCount++,t.currentQuery=e;let[r,o]=Ds(e.selector);t.currentQuerySelector=n.length?n+" "+r:r,R(t.collectedStyles,t.currentQuerySelector,new Map);let a=I(this,be(e.animation),t);return t.currentQuery=null,t.currentQuerySelector=n,{type:S.Query,selector:r,limit:i.limit||0,optional:!!i.optional,includeSelf:o,animation:a,originalSelector:e.selector,options:me(e.options)}}visitStagger(e,t){t.currentQuery||t.errors.push(gi());let n=e.timings==="full"?{duration:0,delay:0,easing:"full"}:Le(e.timings,t.errors,!0);return{type:S.Stagger,animation:I(this,be(e.animation),t),timings:n,options:null}}};function Ds(s){let e=!!s.split(/\s*,\s*/).find(t=>t==ji);return e&&(s=s.replace(ks,"")),s=s.replace(/@\*/g,Fe).replace(/@\w+/g,t=>Fe+"-"+t.slice(1)).replace(/:animating/g,tt),[s,e]}function Os(s){return s?ge({},s):null}var $t=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(e){this.errors=e}};function Rs(s){if(typeof s=="string")return null;let e=null;if(Array.isArray(s))s.forEach(t=>{if(t instanceof Map&&t.has("offset")){let n=t;e=parseFloat(n.get("offset")),n.delete("offset")}});else if(s instanceof Map&&s.has("offset")){let t=s;e=parseFloat(t.get("offset")),t.delete("offset")}return e}function Is(s,e){if(s.hasOwnProperty("duration"))return s;if(typeof s=="number"){let r=Le(s,e).duration;return Kt(r,0,"")}let t=s;if(t.split(/\s+/).some(r=>r.charAt(0)=="{"&&r.charAt(1)=="{")){let r=Kt(0,0,"");return r.dynamic=!0,r.strValue=t,r}let i=Le(t,e);return Kt(i.duration,i.delay,i.easing)}function me(s){return s?(s=ge({},s),s.params&&(s.params=Os(s.params))):s={},s}function Kt(s,e,t){return{duration:s,delay:e,easing:t}}function nn(s,e,t,n,i,r,o=null,a=!1){return{type:1,element:s,keyframes:e,preStyleProps:t,postStyleProps:n,duration:i,delay:r,totalTime:i+r,easing:o,subTimeline:a}}var Be=class{_map=new Map;get(e){return this._map.get(e)||[]}append(e,t){let n=this._map.get(e);n||this._map.set(e,n=[]),n.push(...t)}has(e){return this._map.has(e)}clear(){this._map.clear()}},Fs=1,Ls=":enter",zs=new RegExp(Ls,"g"),Bs=":leave",Ks=new RegExp(Bs,"g");function Gi(s,e,t,n,i,r=new Map,o=new Map,a,l,c=[]){return new jt().buildKeyframes(s,e,t,n,i,r,o,a,l,c)}var jt=class{buildKeyframes(e,t,n,i,r,o,a,l,c,u=[]){c=c||new Be;let h=new Wt(e,t,c,i,r,u,[]);h.options=l;let v=l.delay?j(l.delay):0;h.currentTimeline.delayNextStep(v),h.currentTimeline.setStyles([o],null,h.errors,l),I(this,n,h);let y=h.timelines.filter(p=>p.containsAnimation());if(y.length&&a.size){let p;for(let g=y.length-1;g>=0;g--){let T=y[g];if(T.element===t){p=T;break}}p&&!p.allowOnlyTimelineStyles()&&p.setStyles([a],null,h.errors,l)}return y.length?y.map(p=>p.buildKeyframes()):[nn(t,[],[],[],0,v,"",!1)]}visitTrigger(e,t){}visitState(e,t){}visitTransition(e,t){}visitAnimateChild(e,t){let n=t.subInstructions.get(t.element);if(n){let i=t.createSubContext(e.options),r=t.currentTimeline.currentTime,o=this._visitSubInstructions(n,i,i.options);r!=o&&t.transformIntoNewTimeline(o)}t.previousNode=e}visitAnimateRef(e,t){let n=t.createSubContext(e.options);n.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],t,n),this.visitReference(e.animation,n),t.transformIntoNewTimeline(n.currentTimeline.currentTime),t.previousNode=e}_applyAnimationRefDelays(e,t,n){var i;for(let r of e){let o=r==null?void 0:r.delay;if(o){let a=typeof o=="number"?o:j(we(o,(i=r==null?void 0:r.params)!=null?i:{},t.errors));n.delayNextStep(a)}}}_visitSubInstructions(e,t,n){let r=t.currentTimeline.currentTime,o=n.duration!=null?j(n.duration):null,a=n.delay!=null?j(n.delay):null;return o!==0&&e.forEach(l=>{let c=t.appendInstructionToTimeline(l,o,a);r=Math.max(r,c.duration+c.delay)}),r}visitReference(e,t){t.updateOptions(e.options,!0),I(this,e.animation,t),t.previousNode=e}visitSequence(e,t){let n=t.subContextCount,i=t,r=e.options;if(r&&(r.params||r.delay)&&(i=t.createSubContext(r),i.transformIntoNewTimeline(),r.delay!=null)){i.previousNode.type==S.Style&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=ut);let o=j(r.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>I(this,o,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>n&&i.transformIntoNewTimeline()),t.previousNode=e}visitGroup(e,t){let n=[],i=t.currentTimeline.currentTime,r=e.options&&e.options.delay?j(e.options.delay):0;e.steps.forEach(o=>{let a=t.createSubContext(e.options);r&&a.delayNextStep(r),I(this,o,a),i=Math.max(i,a.currentTimeline.currentTime),n.push(a.currentTimeline)}),n.forEach(o=>t.currentTimeline.mergeTimelineCollectedStyles(o)),t.transformIntoNewTimeline(i),t.previousNode=e}_visitTiming(e,t){if(e.dynamic){let n=e.strValue,i=t.params?we(n,t.params,t.errors):n;return Le(i,t.errors)}else return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,t){let n=t.currentAnimateTimings=this._visitTiming(e.timings,t),i=t.currentTimeline;n.delay&&(t.incrementTime(n.delay),i.snapshotCurrentStyles());let r=e.style;r.type==S.Keyframes?this.visitKeyframes(r,t):(t.incrementTime(n.duration),this.visitStyle(r,t),i.applyStylesToKeyframe()),t.currentAnimateTimings=null,t.previousNode=e}visitStyle(e,t){let n=t.currentTimeline,i=t.currentAnimateTimings;!i&&n.hasCurrentStyleProperties()&&n.forwardFrame();let r=i&&i.easing||e.easing;e.isEmptyStep?n.applyEmptyStep(r):n.setStyles(e.styles,r,t.errors,t.options),t.previousNode=e}visitKeyframes(e,t){let n=t.currentAnimateTimings,i=t.currentTimeline.duration,r=n.duration,a=t.createSubContext().currentTimeline;a.easing=n.easing,e.styles.forEach(l=>{let c=l.offset||0;a.forwardTime(c*r),a.setStyles(l.styles,l.easing,t.errors,t.options),a.applyStylesToKeyframe()}),t.currentTimeline.mergeTimelineCollectedStyles(a),t.transformIntoNewTimeline(i+r),t.previousNode=e}visitQuery(e,t){let n=t.currentTimeline.currentTime,i=e.options||{},r=i.delay?j(i.delay):0;r&&(t.previousNode.type===S.Style||n==0&&t.currentTimeline.hasCurrentStyleProperties())&&(t.currentTimeline.snapshotCurrentStyles(),t.previousNode=ut);let o=n,a=t.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,t.errors);t.currentQueryTotal=a.length;let l=null;a.forEach((c,u)=>{t.currentQueryIndex=u;let h=t.createSubContext(e.options,c);r&&h.delayNextStep(r),c===t.element&&(l=h.currentTimeline),I(this,e.animation,h),h.currentTimeline.applyStylesToKeyframe();let v=h.currentTimeline.currentTime;o=Math.max(o,v)}),t.currentQueryIndex=0,t.currentQueryTotal=0,t.transformIntoNewTimeline(o),l&&(t.currentTimeline.mergeTimelineCollectedStyles(l),t.currentTimeline.snapshotCurrentStyles()),t.previousNode=e}visitStagger(e,t){let n=t.parentContext,i=t.currentTimeline,r=e.timings,o=Math.abs(r.duration),a=o*(t.currentQueryTotal-1),l=o*t.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":l=a-l;break;case"full":l=n.currentStaggerTime;break}let u=t.currentTimeline;l&&u.delayNextStep(l);let h=u.currentTime;I(this,e.animation,t),t.previousNode=e,n.currentStaggerTime=i.currentTime-h+(i.startTime-n.currentTimeline.startTime)}},ut={},Wt=class s{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=ut;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(e,t,n,i,r,o,a,l){this._driver=e,this.element=t,this.subInstructions=n,this._enterClassName=i,this._leaveClassName=r,this.errors=o,this.timelines=a,this.currentTimeline=l||new ht(this._driver,t,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,t){if(!e)return;let n=e,i=this.options;n.duration!=null&&(i.duration=j(n.duration)),n.delay!=null&&(i.delay=j(n.delay));let r=n.params;if(r){let o=i.params;o||(o=this.options.params={}),Object.keys(r).forEach(a=>{(!t||!o.hasOwnProperty(a))&&(o[a]=we(r[a],o,this.errors))})}}_copyOptions(){let e={};if(this.options){let t=this.options.params;if(t){let n=e.params={};Object.keys(t).forEach(i=>{n[i]=t[i]})}}return e}createSubContext(e=null,t,n){let i=t||this.element,r=new s(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,n||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(e),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(e){return this.previousNode=ut,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,t,n){let i={duration:t!=null?t:e.duration,delay:this.currentTimeline.currentTime+(n!=null?n:0)+e.delay,easing:""},r=new Gt(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(r),i}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,t,n,i,r,o){let a=[];if(i&&a.push(this.element),e.length>0){e=e.replace(zs,"."+this._enterClassName),e=e.replace(Ks,"."+this._leaveClassName);let l=n!=1,c=this._driver.query(this.element,e,l);n!==0&&(c=n<0?c.slice(c.length+n,c.length):c.slice(0,n)),a.push(...c)}return!r&&a.length==0&&o.push(yi(t)),a}},ht=class s{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(e,t,n,i){this._driver=e,this.element=t,this.startTime=n,this._elementTimelineStylesLookup=i,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(t),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(t,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){let t=this._keyframes.size===1&&this._pendingStyles.size;this.duration||t?(this.forwardTime(this.currentTime+e),t&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,t){return this.applyStylesToKeyframe(),new s(this._driver,e,t||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Fs,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,t){this._localTimelineStyles.set(e,t),this._globalTimelineStyles.set(e,t),this._styleSummary.set(e,{time:this.currentTime,value:t})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[t,n]of this._globalTimelineStyles)this._backFill.set(t,n||K),this._currentKeyframe.set(t,K);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,t,n,i){var a;t&&this._previousKeyframe.set("easing",t);let r=i&&i.params||{},o=Us(e,this._globalTimelineStyles);for(let[l,c]of o){let u=we(c,r,n);this._pendingStyles.set(l,u),this._localTimelineStyles.has(l)||this._backFill.set(l,(a=this._globalTimelineStyles.get(l))!=null?a:K),this._updateStyle(l,u)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((e,t)=>{this._currentKeyframe.set(t,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,t)=>{this._currentKeyframe.has(t)||this._currentKeyframe.set(t,e)}))}snapshotCurrentStyles(){for(let[e,t]of this._localTimelineStyles)this._pendingStyles.set(e,t),this._updateStyle(e,t)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let e=[];for(let t in this._currentKeyframe)e.push(t);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((t,n)=>{let i=this._styleSummary.get(n);(!i||t.time>i.time)&&this._updateStyle(n,t.value)})}buildKeyframes(){this.applyStylesToKeyframe();let e=new Set,t=new Set,n=this._keyframes.size===1&&this.duration===0,i=[];this._keyframes.forEach((a,l)=>{let c=new Map([...this._backFill,...a]);c.forEach((u,h)=>{u===Re?e.add(h):u===K&&t.add(h)}),n||c.set("offset",l/this.duration),i.push(c)});let r=[...e.values()],o=[...t.values()];if(n){let a=i[0],l=new Map(a);a.set("offset",0),l.set("offset",1),i=[a,l]}return nn(this.element,i,r,o,this.duration,this.startTime,this.easing,!1)}},Gt=class extends ht{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(e,t,n,i,r,o,a=!1){super(e,t,o.delay),this.keyframes=n,this.preStyleProps=i,this.postStyleProps=r,this._stretchStartingKeyframe=a,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:t,duration:n,easing:i}=this.timings;if(this._stretchStartingKeyframe&&t){let r=[],o=n+t,a=t/o,l=new Map(e[0]);l.set("offset",0),r.push(l);let c=new Map(e[0]);c.set("offset",Bi(a)),r.push(c);let u=e.length-1;for(let h=1;h<=u;h++){let v=new Map(e[h]),y=v.get("offset"),p=t+y*n;v.set("offset",Bi(p/o)),r.push(v)}n=o,t=0,i="",e=r}return nn(this.element,e,this.preStyleProps,this.postStyleProps,n,t,i,!0)}};function Bi(s,e=3){let t=Math.pow(10,e-1);return Math.round(s*t)/t}function Us(s,e){let t=new Map,n;return s.forEach(i=>{if(i==="*"){n!=null||(n=e.keys());for(let r of n)t.set(r,K)}else for(let[r,o]of i)t.set(r,o)}),t}function Ki(s,e,t,n,i,r,o,a,l,c,u,h,v){return{type:0,element:s,triggerName:e,isRemovalTransition:i,fromState:t,fromStyles:r,toState:n,toStyles:o,timelines:a,queriedElements:l,preStyleProps:c,postStyleProps:u,totalTime:h,errors:v}}var Ut={},dt=class{_triggerName;ast;_stateStyles;constructor(e,t,n){this._triggerName=e,this.ast=t,this._stateStyles=n}match(e,t,n,i){return Vs(this.ast.matchers,e,t,n,i)}buildStyles(e,t,n){let i=this._stateStyles.get("*");return e!==void 0&&(i=this._stateStyles.get(e==null?void 0:e.toString())||i),i?i.buildStyles(t,n):new Map}build(e,t,n,i,r,o,a,l,c,u){var Q;let h=[],v=this.ast.options&&this.ast.options.params||Ut,y=a&&a.params||Ut,p=this.buildStyles(n,y,h),g=l&&l.params||Ut,T=this.buildStyles(i,g,h),P=new Set,C=new Map,k=new Map,N=i==="void",fe={params:Hi(g,v),delay:(Q=this.ast.options)==null?void 0:Q.delay},q=u?[]:Gi(e,t,this.ast.animation,r,o,p,T,fe,c,h),D=0;return q.forEach(W=>{D=Math.max(W.duration+W.delay,D)}),h.length?Ki(t,this._triggerName,n,i,N,p,T,[],[],C,k,D,h):(q.forEach(W=>{let G=W.element,rn=R(C,G,new Set);W.preStyleProps.forEach(se=>rn.add(se));let Ne=R(k,G,new Set);W.postStyleProps.forEach(se=>Ne.add(se)),G!==t&&P.add(G)}),Ki(t,this._triggerName,n,i,N,p,T,q,[...P.values()],C,k,D))}};function Vs(s,e,t,n,i){return s.some(r=>r(e,t,n,i))}function Hi(s,e){let t=ge({},e);return Object.entries(s).forEach(([n,i])=>{i!=null&&(t[n]=i)}),t}var Ht=class{styles;defaultParams;normalizer;constructor(e,t,n){this.styles=e,this.defaultParams=t,this.normalizer=n}buildStyles(e,t){let n=new Map,i=Hi(e,this.defaultParams);return this.styles.styles.forEach(r=>{typeof r!="string"&&r.forEach((o,a)=>{o&&(o=we(o,i,t));let l=this.normalizer.normalizePropertyName(a,t);o=this.normalizer.normalizeStyleValue(a,l,o,t),n.set(a,o)})}),n}};function qs(s,e,t){return new Yt(s,e,t)}var Yt=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(e,t,n){this.name=e,this.ast=t,this._normalizer=n,t.states.forEach(i=>{let r=i.options&&i.options.params||{};this.states.set(i.name,new Ht(i.style,r,n))}),Ui(this.states,"true","1"),Ui(this.states,"false","0"),t.transitions.forEach(i=>{this.transitionFactories.push(new dt(e,i,this.states))}),this.fallbackTransition=Qs(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,t,n,i){return this.transitionFactories.find(o=>o.match(e,t,n,i))||null}matchStyles(e,t,n){return this.fallbackTransition.buildStyles(e,t,n)}};function Qs(s,e,t){let n=[(o,a)=>!0],i={type:S.Sequence,steps:[],options:null},r={type:S.Transition,animation:i,matchers:n,options:null,queryCount:0,depCount:0};return new dt(s,r,e)}function Ui(s,e,t){s.has(e)?s.has(t)||s.set(t,s.get(e)):s.has(t)&&s.set(e,s.get(t))}var xs=new Be,Xt=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(e,t,n){this.bodyNode=e,this._driver=t,this._normalizer=n}register(e,t){let n=[],i=[],r=Wi(this._driver,t,n,i);if(n.length)throw Si(n);this._animations.set(e,r)}_buildPlayer(e,t,n){let i=e.element,r=Dt(this._normalizer,e.keyframes,t,n);return this._driver.animate(i,r,e.duration,e.delay,e.easing,[],!0)}create(e,t,n={}){let i=[],r=this._animations.get(e),o,a=new Map;if(r?(o=Gi(this._driver,t,r,Lt,et,new Map,new Map,n,xs,i),o.forEach(u=>{let h=R(a,u.element,new Map);u.postStyleProps.forEach(v=>h.set(v,null))})):(i.push(Ti()),o=[]),i.length)throw bi(i);a.forEach((u,h)=>{u.forEach((v,y)=>{u.set(y,this._driver.computeStyle(h,y,K))})});let l=o.map(u=>{let h=a.get(u.element);return this._buildPlayer(u,new Map,h)}),c=Y(l);return this._playersById.set(e,c),c.onDestroy(()=>this.destroy(e)),this.players.push(c),c}destroy(e){let t=this._getPlayer(e);t.destroy(),this._playersById.delete(e);let n=this.players.indexOf(t);n>=0&&this.players.splice(n,1)}_getPlayer(e){let t=this._playersById.get(e);if(!t)throw wi(e);return t}listen(e,t,n,i){let r=Ze(t,"","","");return Xe(this._getPlayer(e),n,r,i),()=>{}}command(e,t,n,i){if(n=="register"){this.register(e,i[0]);return}if(n=="create"){let o=i[0]||{};this.create(e,t,o);return}let r=this._getPlayer(e);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e);break}}},Vi="ng-animate-queued",$s=".ng-animate-queued",Vt="ng-animate-disabled",js=".ng-animate-disabled",Ws="ng-star-inserted",Gs=".ng-star-inserted",Hs=[],Yi={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ys={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},V="__ng_removed",Ke=class{namespaceId;value;options;get params(){return this.options.params}constructor(e,t=""){this.namespaceId=t;let n=e&&e.hasOwnProperty("value"),i=n?e.value:e;if(this.value=Zs(i),n){let r=e,{value:o}=r,a=cn(r,["value"]);this.options=a}else this.options={};this.options.params||(this.options.params={})}absorbOptions(e){let t=e.params;if(t){let n=this.options.params;Object.keys(t).forEach(i=>{n[i]==null&&(n[i]=t[i])})}}},ze="void",qt=new Ke(ze),Zt=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(e,t,n){this.id=e,this.hostElement=t,this._engine=n,this._hostClassName="ng-tns-"+e,B(t,this._hostClassName)}listen(e,t,n,i){if(!this._triggers.has(t))throw Ai(n,t);if(n==null||n.length==0)throw Pi(t);if(!Js(n))throw Ci(n,t);let r=R(this._elementListeners,e,[]),o={name:t,phase:n,callback:i};r.push(o);let a=R(this._engine.statesByElement,e,new Map);return a.has(t)||(B(e,Ie),B(e,Ie+"-"+t),a.set(t,qt)),()=>{this._engine.afterFlush(()=>{let l=r.indexOf(o);l>=0&&r.splice(l,1),this._triggers.has(t)||a.delete(t)})}}register(e,t){return this._triggers.has(e)?!1:(this._triggers.set(e,t),!0)}_getTrigger(e){let t=this._triggers.get(e);if(!t)throw Ni(e);return t}trigger(e,t,n,i=!0){let r=this._getTrigger(t),o=new Ue(this.id,t,e),a=this._engine.statesByElement.get(e);a||(B(e,Ie),B(e,Ie+"-"+t),this._engine.statesByElement.set(e,a=new Map));let l=a.get(t),c=new Ke(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&l&&c.absorbOptions(l.options),a.set(t,c),l||(l=qt),!(c.value===ze)&&l.value===c.value){if(!nr(l.params,c.params)){let g=[],T=r.matchStyles(l.value,l.params,g),P=r.matchStyles(c.value,c.params,g);g.length?this._engine.reportError(g):this._engine.afterFlush(()=>{ne(e,T),U(e,P)})}return}let v=R(this._engine.playersByElement,e,[]);v.forEach(g=>{g.namespaceId==this.id&&g.triggerName==t&&g.queued&&g.destroy()});let y=r.matchTransition(l.value,c.value,e,c.params),p=!1;if(!y){if(!i)return;y=r.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:t,transition:y,fromState:l,toState:c,player:o,isFallbackTransition:p}),p||(B(e,Vi),o.onStart(()=>{Ae(e,Vi)})),o.onDone(()=>{let g=this.players.indexOf(o);g>=0&&this.players.splice(g,1);let T=this._engine.playersByElement.get(e);if(T){let P=T.indexOf(o);P>=0&&T.splice(P,1)}}),this.players.push(o),v.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(t=>t.delete(e)),this._elementListeners.forEach((t,n)=>{this._elementListeners.set(n,t.filter(i=>i.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);let t=this._engine.playersByElement.get(e);t&&(t.forEach(n=>n.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,t){let n=this._engine.driver.query(e,Fe,!0);n.forEach(i=>{if(i[V])return;let r=this._engine.fetchNamespacesByElement(i);r.size?r.forEach(o=>o.triggerLeaveAnimation(i,t,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>n.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(e,t,n,i){let r=this._engine.statesByElement.get(e),o=new Map;if(r){let a=[];if(r.forEach((l,c)=>{if(o.set(c,l.value),this._triggers.has(c)){let u=this.trigger(e,c,ze,i);u&&a.push(u)}}),a.length)return this._engine.markElementAsRemoved(this.id,e,!0,t,o),n&&Y(a).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){let t=this._elementListeners.get(e),n=this._engine.statesByElement.get(e);if(t&&n){let i=new Set;t.forEach(r=>{let o=r.name;if(i.has(o))return;i.add(o);let l=this._triggers.get(o).fallbackTransition,c=n.get(o)||qt,u=new Ke(ze),h=new Ue(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:l,fromState:c,toState:u,player:h,isFallbackTransition:!0})})}}removeNode(e,t){let n=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,t),this.triggerLeaveAnimation(e,t,!0))return;let i=!1;if(n.totalAnimations){let r=n.players.length?n.playersByQueriedElement.get(e):[];if(r&&r.length)i=!0;else{let o=e;for(;o=o.parentNode;)if(n.statesByElement.get(o)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(e),i)n.markElementAsRemoved(this.id,e,!1,t);else{let r=e[V];(!r||r===Yi)&&(n.afterFlush(()=>this.clearElementCache(e)),n.destroyInnerAnimations(e),n._onRemovalComplete(e,t))}}insertNode(e,t){B(e,this._hostClassName)}drainQueuedTransitions(e){let t=[];return this._queue.forEach(n=>{let i=n.player;if(i.destroyed)return;let r=n.element,o=this._elementListeners.get(r);o&&o.forEach(a=>{if(a.name==n.triggerName){let l=Ze(r,n.triggerName,n.fromState.value,n.toState.value);l._data=e,Xe(n.player,a.phase,l,a.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):t.push(n)}),this._queue=[],t.sort((n,i)=>{let r=n.transition.ast.depCount,o=i.transition.ast.depCount;return r==0||o==0?r-o:this._engine.driver.containsElement(n.element,i.element)?1:-1})}destroy(e){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}},Jt=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(e,t)=>{};_onRemovalComplete(e,t){this.onRemovalComplete(e,t)}constructor(e,t,n){this.bodyNode=e,this.driver=t,this._normalizer=n}get queuedPlayers(){let e=[];return this._namespaceList.forEach(t=>{t.players.forEach(n=>{n.queued&&e.push(n)})}),e}createNamespace(e,t){let n=new Zt(e,t,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,t)?this._balanceNamespaceList(n,t):(this.newHostElements.set(t,n),this.collectEnterElement(t)),this._namespaceLookup[e]=n}_balanceNamespaceList(e,t){let n=this._namespaceList,i=this.namespacesByHostElement;if(n.length-1>=0){let o=!1,a=this.driver.getParentElement(t);for(;a;){let l=i.get(a);if(l){let c=n.indexOf(l);n.splice(c+1,0,e),o=!0;break}a=this.driver.getParentElement(a)}o||n.unshift(e)}else n.push(e);return i.set(t,e),e}register(e,t){let n=this._namespaceLookup[e];return n||(n=this.createNamespace(e,t)),n}registerTrigger(e,t,n){let i=this._namespaceLookup[e];i&&i.register(t,n)&&this.totalAnimations++}destroy(e,t){e&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let n=this._fetchNamespace(e);this.namespacesByHostElement.delete(n.hostElement);let i=this._namespaceList.indexOf(n);i>=0&&this._namespaceList.splice(i,1),n.destroy(t),delete this._namespaceLookup[e]}))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){let t=new Set,n=this.statesByElement.get(e);if(n){for(let i of n.values())if(i.namespaceId){let r=this._fetchNamespace(i.namespaceId);r&&t.add(r)}}return t}trigger(e,t,n,i){if(ot(t)){let r=this._fetchNamespace(e);if(r)return r.trigger(t,n,i),!0}return!1}insertNode(e,t,n,i){if(!ot(t))return;let r=t[V];if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;let o=this.collectedLeaveElements.indexOf(t);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){let o=this._fetchNamespace(e);o&&o.insertNode(t,n)}i&&this.collectEnterElement(t)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,t){t?this.disabledNodes.has(e)||(this.disabledNodes.add(e),B(e,Vt)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),Ae(e,Vt))}removeNode(e,t,n){if(ot(t)){let i=e?this._fetchNamespace(e):null;i?i.removeNode(t,n):this.markElementAsRemoved(e,t,!1,n);let r=this.namespacesByHostElement.get(t);r&&r.id!==e&&r.removeNode(t,n)}else this._onRemovalComplete(t,n)}markElementAsRemoved(e,t,n,i,r){this.collectedLeaveElements.push(t),t[V]={namespaceId:e,setForRemoval:i,hasAnimation:n,removedBeforeQueried:!1,previousTriggersValues:r}}listen(e,t,n,i,r){return ot(t)?this._fetchNamespace(e).listen(t,n,i,r):()=>{}}_buildInstruction(e,t,n,i,r){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,n,i,e.fromState.options,e.toState.options,t,r)}destroyInnerAnimations(e){let t=this.driver.query(e,Fe,!0);t.forEach(n=>this.destroyActiveAnimationsForElement(n)),this.playersByQueriedElement.size!=0&&(t=this.driver.query(e,tt,!0),t.forEach(n=>this.finishActiveQueriedAnimationOnElement(n)))}destroyActiveAnimationsForElement(e){let t=this.playersByElement.get(e);t&&t.forEach(n=>{n.queued?n.markedForDestroy=!0:n.destroy()})}finishActiveQueriedAnimationOnElement(e){let t=this.playersByQueriedElement.get(e);t&&t.forEach(n=>n.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return Y(this.players).onDone(()=>e());e()})}processLeaveNode(e){var n;let t=e[V];if(t&&t.setForRemoval){if(e[V]=Yi,t.namespaceId){this.destroyInnerAnimations(e);let i=this._fetchNamespace(t.namespaceId);i&&i.clearElementCache(e)}this._onRemovalComplete(e,t.setForRemoval)}(n=e.classList)!=null&&n.contains(Vt)&&this.markElementAsDisabled(e,!1),this.driver.query(e,js,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(e=-1){let t=[];if(this.newHostElements.size&&(this.newHostElements.forEach((n,i)=>this._balanceNamespaceList(n,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let n=0;nn()),this._flushFns=[],this._whenQuietFns.length){let n=this._whenQuietFns;this._whenQuietFns=[],t.length?Y(t).onDone(()=>{n.forEach(i=>i())}):n.forEach(i=>i())}}reportError(e){throw Mi(e)}_flushAnimations(e,t){let n=new Be,i=[],r=new Map,o=[],a=new Map,l=new Map,c=new Map,u=new Set;this.disabledNodes.forEach(d=>{u.add(d);let m=this.driver.query(d,$s,!0);for(let f=0;f{let f=Lt+g++;p.set(m,f),d.forEach(E=>B(E,f))});let T=[],P=new Set,C=new Set;for(let d=0;dP.add(E)):C.add(m))}let k=new Map,N=xi(v,Array.from(P));N.forEach((d,m)=>{let f=et+g++;k.set(m,f),d.forEach(E=>B(E,f))}),e.push(()=>{y.forEach((d,m)=>{let f=p.get(m);d.forEach(E=>Ae(E,f))}),N.forEach((d,m)=>{let f=k.get(m);d.forEach(E=>Ae(E,f))}),T.forEach(d=>{this.processLeaveNode(d)})});let fe=[],q=[];for(let d=this._namespaceList.length-1;d>=0;d--)this._namespaceList[d].drainQueuedTransitions(t).forEach(f=>{let E=f.player,A=f.element;if(fe.push(E),this.collectedEnterElements.length){let M=A[V];if(M&&M.setForMove){if(M.previousTriggersValues&&M.previousTriggersValues.has(f.triggerName)){let re=M.previousTriggersValues.get(f.triggerName),z=this.statesByElement.get(f.element);if(z&&z.has(f.triggerName)){let qe=z.get(f.triggerName);qe.value=re,z.set(f.triggerName,qe)}}E.destroy();return}}let x=!h||!this.driver.containsElement(h,A),F=k.get(A),X=p.get(A),b=this._buildInstruction(f,n,X,F,x);if(b.errors&&b.errors.length){q.push(b);return}if(x){E.onStart(()=>ne(A,b.fromStyles)),E.onDestroy(()=>U(A,b.toStyles)),i.push(E);return}if(f.isFallbackTransition){E.onStart(()=>ne(A,b.fromStyles)),E.onDestroy(()=>U(A,b.toStyles)),i.push(E);return}let ln=[];b.timelines.forEach(M=>{M.stretchStartingKeyframe=!0,this.disabledNodes.has(M.element)||ln.push(M)}),b.timelines=ln,n.append(A,b.timelines);let ss={instruction:b,player:E,element:A};o.push(ss),b.queriedElements.forEach(M=>R(a,M,[]).push(E)),b.preStyleProps.forEach((M,re)=>{if(M.size){let z=l.get(re);z||l.set(re,z=new Set),M.forEach((qe,yt)=>z.add(yt))}}),b.postStyleProps.forEach((M,re)=>{let z=c.get(re);z||c.set(re,z=new Set),M.forEach((qe,yt)=>z.add(yt))})});if(q.length){let d=[];q.forEach(m=>{d.push(ki(m.triggerName,m.errors))}),fe.forEach(m=>m.destroy()),this.reportError(d)}let D=new Map,Q=new Map;o.forEach(d=>{let m=d.element;n.has(m)&&(Q.set(m,m),this._beforeAnimationBuild(d.player.namespaceId,d.instruction,D))}),i.forEach(d=>{let m=d.element;this._getPreviousPlayers(m,!1,d.namespaceId,d.triggerName,null).forEach(E=>{R(D,m,[]).push(E),E.destroy()})});let W=T.filter(d=>$i(d,l,c)),G=new Map;Qi(G,this.driver,C,c,K).forEach(d=>{$i(d,l,c)&&W.push(d)});let Ne=new Map;y.forEach((d,m)=>{Qi(Ne,this.driver,new Set(d),l,Re)}),W.forEach(d=>{var E,A;let m=G.get(d),f=Ne.get(d);G.set(d,new Map([...(E=m==null?void 0:m.entries())!=null?E:[],...(A=f==null?void 0:f.entries())!=null?A:[]]))});let se=[],on=[],an={};o.forEach(d=>{let{element:m,player:f,instruction:E}=d;if(n.has(m)){if(u.has(m)){f.onDestroy(()=>U(m,E.toStyles)),f.disabled=!0,f.overrideTotalTime(E.totalTime),i.push(f);return}let A=an;if(Q.size>1){let F=m,X=[];for(;F=F.parentNode;){let b=Q.get(F);if(b){A=b;break}X.push(F)}X.forEach(b=>Q.set(b,A))}let x=this._buildAnimation(f.namespaceId,E,D,r,Ne,G);if(f.setRealPlayer(x),A===an)se.push(f);else{let F=this.playersByElement.get(A);F&&F.length&&(f.parentPlayer=Y(F)),i.push(f)}}else ne(m,E.fromStyles),f.onDestroy(()=>U(m,E.toStyles)),on.push(f),u.has(m)&&i.push(f)}),on.forEach(d=>{let m=r.get(d.element);if(m&&m.length){let f=Y(m);d.setRealPlayer(f)}}),i.forEach(d=>{d.parentPlayer?d.syncPlayerEvents(d.parentPlayer):d.destroy()});for(let d=0;d!x.destroyed);A.length?er(this,m,A):this.processLeaveNode(m)}return T.length=0,se.forEach(d=>{this.players.push(d),d.onDone(()=>{d.destroy();let m=this.players.indexOf(d);this.players.splice(m,1)}),d.play()}),se}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,t,n,i,r){let o=[];if(t){let a=this.playersByQueriedElement.get(e);a&&(o=a)}else{let a=this.playersByElement.get(e);if(a){let l=!r||r==ze;a.forEach(c=>{c.queued||!l&&c.triggerName!=i||o.push(c)})}}return(n||i)&&(o=o.filter(a=>!(n&&n!=a.namespaceId||i&&i!=a.triggerName))),o}_beforeAnimationBuild(e,t,n){let i=t.triggerName,r=t.element,o=t.isRemovalTransition?void 0:e,a=t.isRemovalTransition?void 0:i;for(let l of t.timelines){let c=l.element,u=c!==r,h=R(n,c,[]);this._getPreviousPlayers(c,u,o,a,t.toState).forEach(y=>{let p=y.getRealPlayer();p.beforeDestroy&&p.beforeDestroy(),y.destroy(),h.push(y)})}ne(r,t.fromStyles)}_buildAnimation(e,t,n,i,r,o){let a=t.triggerName,l=t.element,c=[],u=new Set,h=new Set,v=t.timelines.map(p=>{let g=p.element;u.add(g);let T=g[V];if(T&&T.removedBeforeQueried)return new he(p.duration,p.delay);let P=g!==l,C=tr((n.get(g)||Hs).map(D=>D.getRealPlayer())).filter(D=>{let Q=D;return Q.element?Q.element===g:!1}),k=r.get(g),N=o.get(g),fe=Dt(this._normalizer,p.keyframes,k,N),q=this._buildPlayer(p,fe,C);if(p.subTimeline&&i&&h.add(g),P){let D=new Ue(e,a,g);D.setRealPlayer(q),c.push(D)}return q});c.forEach(p=>{R(this.playersByQueriedElement,p.element,[]).push(p),p.onDone(()=>Xs(this.playersByQueriedElement,p.element,p))}),u.forEach(p=>B(p,zt));let y=Y(v);return y.onDestroy(()=>{u.forEach(p=>Ae(p,zt)),U(l,t.toStyles)}),h.forEach(p=>{R(i,p,[]).push(y)}),y}_buildPlayer(e,t,n){return t.length>0?this.driver.animate(e.element,t,e.duration,e.delay,e.easing,n):new he(e.duration,e.delay)}},Ue=class{namespaceId;triggerName;element;_player=new he;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(e,t,n){this.namespaceId=e,this.triggerName=t,this.element=n}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((t,n)=>{t.forEach(i=>Xe(e,n,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){let t=this._player;t.triggerCallback&&e.onStart(()=>t.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,t){R(this._queuedCallbacks,e,[]).push(t)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){let t=this._player;t.triggerCallback&&t.triggerCallback(e)}};function Xs(s,e,t){let n=s.get(e);if(n){if(n.length){let i=n.indexOf(t);n.splice(i,1)}n.length==0&&s.delete(e)}return n}function Zs(s){return s!=null?s:null}function ot(s){return s&&s.nodeType===1}function Js(s){return s=="start"||s=="done"}function qi(s,e){let t=s.style.display;return s.style.display=e!=null?e:"none",t}function Qi(s,e,t,n,i){let r=[];t.forEach(l=>r.push(qi(l)));let o=[];n.forEach((l,c)=>{let u=new Map;l.forEach(h=>{let v=e.computeStyle(c,h,i);u.set(h,v),(!v||v.length==0)&&(c[V]=Ys,o.push(c))}),s.set(c,u)});let a=0;return t.forEach(l=>qi(l,r[a++])),o}function xi(s,e){let t=new Map;if(s.forEach(a=>t.set(a,[])),e.length==0)return t;let n=1,i=new Set(e),r=new Map;function o(a){if(!a)return n;let l=r.get(a);if(l)return l;let c=a.parentNode;return t.has(c)?l=c:i.has(c)?l=n:l=o(c),r.set(a,l),l}return e.forEach(a=>{let l=o(a);l!==n&&t.get(l).push(a)}),t}function B(s,e){var t;(t=s.classList)==null||t.add(e)}function Ae(s,e){var t;(t=s.classList)==null||t.remove(e)}function er(s,e,t){Y(t).onDone(()=>s.processLeaveNode(e))}function tr(s){let e=[];return Xi(s,e),e}function Xi(s,e){for(let t=0;ti.add(r)):e.set(s,n),t.delete(s),!0}var Pe=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(e,t)=>{};constructor(e,t,n){this._driver=t,this._normalizer=n,this._transitionEngine=new Jt(e.body,t,n),this._timelineEngine=new Xt(e.body,t,n),this._transitionEngine.onRemovalComplete=(i,r)=>this.onRemovalComplete(i,r)}registerTrigger(e,t,n,i,r){let o=e+"-"+i,a=this._triggerCache[o];if(!a){let l=[],c=[],u=Wi(this._driver,r,l,c);if(l.length)throw Ei(i,l);a=qs(i,u,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(t,i,a)}register(e,t){this._transitionEngine.register(e,t)}destroy(e,t){this._transitionEngine.destroy(e,t)}onInsert(e,t,n,i){this._transitionEngine.insertNode(e,t,n,i)}onRemove(e,t,n){this._transitionEngine.removeNode(e,t,n)}disableAnimations(e,t){this._transitionEngine.markElementAsDisabled(e,t)}process(e,t,n,i){if(n.charAt(0)=="@"){let[r,o]=Ot(n),a=i;this._timelineEngine.command(r,t,o,a)}else this._transitionEngine.trigger(e,t,n,i)}listen(e,t,n,i,r){if(n.charAt(0)=="@"){let[o,a]=Ot(n);return this._timelineEngine.listen(o,t,a,r)}return this._transitionEngine.listen(e,t,n,i,r)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(e){this._transitionEngine.afterFlushAnimationsDone(e)}};function ir(s,e){let t=null,n=null;return Array.isArray(e)&&e.length?(t=Qt(e[0]),e.length>1&&(n=Qt(e[e.length-1]))):e instanceof Map&&(t=Qt(e)),t||n?new sr(s,t,n):null}var sr=(()=>{let e=class e{_element;_startStyles;_endStyles;_state=0;_initialStyles;constructor(n,i,r){this._element=n,this._startStyles=i,this._endStyles=r;let o=e.initialStylesByElement.get(n);o||e.initialStylesByElement.set(n,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&U(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(U(this._element,this._initialStyles),this._endStyles&&(U(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(e.initialStylesByElement.delete(this._element),this._startStyles&&(ne(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(ne(this._element,this._endStyles),this._endStyles=null),U(this._element,this._initialStyles),this._state=3)}};L(e,"initialStylesByElement",new WeakMap);let s=e;return s})();function Qt(s){let e=null;return s.forEach((t,n)=>{rr(n)&&(e=e||new Map,e.set(n,t))}),e}function rr(s){return s==="display"||s==="position"}var mt=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer=null;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(e,t,n,i){this.element=e,this.keyframes=t,this.options=n,this._specialStyles=i,this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer()&&this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return this.domPlayer;this._initialized=!0;let e=this.keyframes,t=this._triggerWebAnimation(this.element,e,this.options);if(!t)return this._onFinish(),null;this.domPlayer=t,this._finalKeyframe=e.length?e[e.length-1]:new Map;let n=()=>this._onFinish();return t.addEventListener("finish",n),this.onDestroy(()=>{t.removeEventListener("finish",n)}),t}_preparePlayerBeforeStart(){var e;this._delay?this._resetDomPlayerState():(e=this.domPlayer)==null||e.pause()}_convertKeyframesToObject(e){let t=[];return e.forEach(n=>{t.push(Object.fromEntries(n))}),t}_triggerWebAnimation(e,t,n){let i=this._convertKeyframesToObject(t);try{return e.animate(i,n)}catch{return null}}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){let e=this._buildPlayer();e&&(this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),e.play())}pause(){var e;this.init(),(e=this.domPlayer)==null||e.pause()}finish(){this.init(),this.domPlayer&&(this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish())}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){var e;(e=this.domPlayer)==null||e.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){this.domPlayer||this.init(),this.domPlayer&&(this.domPlayer.currentTime=e*this.time)}getPosition(){var e;return this.domPlayer?+((e=this.domPlayer.currentTime)!=null?e:0)/this.time:this._initialized?1:0}get totalTime(){return this._delay+this._duration}beforeDestroy(){let e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((n,i)=>{i!=="offset"&&e.set(i,this._finished?n:it(this.element,i))}),this.currentSnapshot=e}triggerCallback(e){let t=e==="start"?this._onStartFns:this._onDoneFns;t.forEach(n=>n()),t.length=0}},pt=class{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}containsElement(e,t){return Rt(e,t)}getParentElement(e){return Je(e)}query(e,t,n){return It(e,t,n)}computeStyle(e,t,n){return it(e,t)}animate(e,t,n,i,r,o=[]){let a=i==0?"both":"forwards",l={duration:n,delay:i,fill:a};r&&(l.easing=r);let c=new Map,u=o.filter(y=>y instanceof mt);Ii(n,i)&&u.forEach(y=>{y.currentSnapshot.forEach((p,g)=>c.set(g,p))});let h=Oi(t).map(y=>new Map(y));h=Fi(e,h,c);let v=ir(e,h);return new mt(e,h,l,v)}};var at="@",Zi="@.disabled",ft=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(e,t,n,i){this.namespaceId=e,this.delegate=t,this.engine=n,this._onDestroy=i}get data(){return this.delegate.data}destroyNode(e){var t,n;(n=(t=this.delegate).destroyNode)==null||n.call(t,e)}destroy(){var e;this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),(e=this._onDestroy)==null||e.call(this)}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,t){this.delegate.appendChild(e,t),this.engine.onInsert(this.namespaceId,t,e,!1)}insertBefore(e,t,n,i=!0){this.delegate.insertBefore(e,t,n),this.engine.onInsert(this.namespaceId,t,e,i)}removeChild(e,t,n,i){if(i){this.delegate.removeChild(e,t,n,i);return}this.parentNode(t)&&this.engine.onRemove(this.namespaceId,t,this.delegate)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,n,i){this.delegate.setAttribute(e,t,n,i)}removeAttribute(e,t,n){this.delegate.removeAttribute(e,t,n)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,n,i){this.delegate.setStyle(e,t,n,i)}removeStyle(e,t,n){this.delegate.removeStyle(e,t,n)}setProperty(e,t,n){t.charAt(0)==at&&t==Zi?this.disableAnimations(e,!!n):this.delegate.setProperty(e,t,n)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,n,i){return this.delegate.listen(e,t,n,i)}disableAnimations(e,t){this.engine.disableAnimations(e,t)}},en=class extends ft{factory;constructor(e,t,n,i,r){super(t,n,i,r),this.factory=e,this.namespaceId=t}setProperty(e,t,n){t.charAt(0)==at?t.charAt(1)=="."&&t==Zi?(n=n===void 0?!0:!!n,this.disableAnimations(e,n)):this.engine.process(this.namespaceId,e,t.slice(1),n):this.delegate.setProperty(e,t,n)}listen(e,t,n,i){if(t.charAt(0)==at){let r=or(e),o=t.slice(1),a="";return o.charAt(0)!=at&&([o,a]=ar(o)),this.engine.listen(this.namespaceId,r,o,a,l=>{let c=l._data||-1;this.factory.scheduleListenerCallback(c,n,l)})}return this.delegate.listen(e,t,n,i)}};function or(s){switch(s){case"body":return document.body;case"document":return document;case"window":return window;default:return s}}function ar(s){let e=s.indexOf("."),t=s.substring(0,e),n=s.slice(e+1);return[t,n]}var gt=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(e,t,n){this.delegate=e,this.engine=t,this._zone=n,t.onRemovalComplete=(i,r)=>{r==null||r.removeChild(null,i)}}createRenderer(e,t){var c;let i=this.delegate.createRenderer(e,t);if(!e||!((c=t==null?void 0:t.data)!=null&&c.animation)){let u=this._rendererCache,h=u.get(i);if(!h){let v=()=>u.delete(i);h=new ft("",i,this.engine,v),u.set(i,h)}return h}let r=t.id,o=t.id+"-"+this._currentId;this._currentId++,this.engine.register(o,e);let a=u=>{Array.isArray(u)?u.forEach(a):this.engine.registerTrigger(r,o,e,u.name,u)};return t.data.animation.forEach(a),new en(this,o,i,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(e,t,n){if(e>=0&&et(n));return}let i=this._animationCallbacksBuffer;i.length==0&&queueMicrotask(()=>{this._zone.run(()=>{i.forEach(r=>{let[o,a]=r;o(a)}),this._animationCallbacksBuffer=[]})}),i.push([t,n])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(e){var t,n;this.engine.flush(),(n=(t=this.delegate).componentReplaced)==null||n.call(t,e)}};var hr=(()=>{let e=class e extends Pe{constructor(n,i,r){super(n,i,r)}ngOnDestroy(){this.flush()}};L(e,"\u0275fac",function(i){return new(i||e)(le(pn),le(ie),le(pe))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})();function dr(){return new lt}function mr(s,e,t){return new gt(s,e,t)}var Ji=[{provide:pe,useFactory:dr},{provide:Pe,useClass:hr},{provide:gn,useFactory:mr,deps:[Cn,Pe,$e]}],fo=[{provide:ie,useClass:tn},{provide:vt,useValue:"NoopAnimations"},...Ji],pr=[{provide:ie,useFactory:()=>new pt},{provide:vt,useFactory:()=>"BrowserAnimations"},...Ji];function es(){return fn("NgEagerAnimations"),[...pr]}var sn="Service workers are disabled or not supported by this browser",Ce=class{serviceWorker;worker;registration;events;constructor(e,t){if(this.serviceWorker=e,!e)this.worker=this.events=this.registration=new Qe(n=>n.error(new _(5601,!1)));else{let n=null,i=new xe;this.worker=new Qe(c=>(n!==null&&c.next(n),i.subscribe(u=>c.next(u))));let r=()=>{let{controller:c}=e;c!==null&&(n=c,i.next(n))};e.addEventListener("controllerchange",r),r(),this.registration=this.worker.pipe(Me(()=>e.getRegistration().then(c=>{if(!c)throw new _(5601,!1);return c})));let o=new xe;this.events=o.asObservable();let a=c=>{let{data:u}=c;u!=null&&u.type&&o.next(u)};e.addEventListener("message",a);let l=t==null?void 0:t.get(Et,null,{optional:!0});l==null||l.onDestroy(()=>{e.removeEventListener("controllerchange",r),e.removeEventListener("message",a)})}}postMessage(e,t){return new Promise(n=>{this.worker.pipe(ye(1)).subscribe(i=>{i.postMessage(ge({action:e},t)),n()})})}postMessageWithOperation(e,t,n){let i=this.waitForOperationCompleted(n),r=this.postMessage(e,t);return Promise.all([r,i]).then(([,o])=>o)}generateNonce(){return Math.round(Math.random()*1e7)}eventsOfType(e){let t;return typeof e=="string"?t=n=>n.type===e:t=n=>e.includes(n.type),this.events.pipe(_t(t))}nextEventOfType(e){return this.eventsOfType(e).pipe(ye(1))}waitForOperationCompleted(e){return new Promise((t,n)=>{this.eventsOfType("OPERATION_COMPLETED").pipe(_t(i=>i.nonce===e),ye(1),oe(i=>{if(i.result!==void 0)return i.result;throw new Error(i.error)})).subscribe({next:t,error:n})})}get isEnabled(){return!!this.serviceWorker}},fr=(()=>{let e=class e{sw;messages;notificationClicks;notificationCloses;pushSubscriptionChanges;subscription;get isEnabled(){return this.sw.isEnabled}pushManager=null;subscriptionChanges=new xe;constructor(n){if(this.sw=n,!n.isEnabled){this.messages=J,this.notificationClicks=J,this.notificationCloses=J,this.pushSubscriptionChanges=J,this.subscription=J;return}this.messages=this.sw.eventsOfType("PUSH").pipe(oe(r=>r.data)),this.notificationClicks=this.sw.eventsOfType("NOTIFICATION_CLICK").pipe(oe(r=>r.data)),this.notificationCloses=this.sw.eventsOfType("NOTIFICATION_CLOSE").pipe(oe(r=>r.data)),this.pushSubscriptionChanges=this.sw.eventsOfType("PUSH_SUBSCRIPTION_CHANGE").pipe(oe(r=>r.data)),this.pushManager=this.sw.registration.pipe(oe(r=>r.pushManager));let i=this.pushManager.pipe(Me(r=>r.getSubscription()));this.subscription=new Qe(r=>{let o=i.subscribe(r),a=this.subscriptionChanges.subscribe(r);return()=>{o.unsubscribe(),a.unsubscribe()}})}requestSubscription(n){if(!this.sw.isEnabled||this.pushManager===null)return Promise.reject(new Error(sn));let i={userVisibleOnly:!0},r=this.decodeBase64(n.serverPublicKey.replace(/_/g,"/").replace(/-/g,"+")),o=new Uint8Array(new ArrayBuffer(r.length));for(let a=0;a{this.pushManager.pipe(Me(c=>c.subscribe(i)),ye(1)).subscribe({next:c=>{this.subscriptionChanges.next(c),a(c)},error:l})})}unsubscribe(){if(!this.sw.isEnabled)return Promise.reject(new Error(sn));let n=i=>{if(i===null)throw new _(5602,!1);return i.unsubscribe().then(r=>{if(!r)throw new _(5603,!1);this.subscriptionChanges.next(null)})};return new Promise((i,r)=>{this.subscription.pipe(ye(1),Me(n)).subscribe({next:i,error:r})})}decodeBase64(n){return atob(n)}};L(e,"\u0275fac",function(i){return new(i||e)(le(Ce))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})(),gr=(()=>{let e=class e{sw;versionUpdates;unrecoverable;get isEnabled(){return this.sw.isEnabled}ongoingCheckForUpdate=null;constructor(n){if(this.sw=n,!n.isEnabled){this.versionUpdates=J,this.unrecoverable=J;return}this.versionUpdates=this.sw.eventsOfType(["VERSION_DETECTED","VERSION_INSTALLATION_FAILED","VERSION_READY","NO_NEW_VERSION_DETECTED"]),this.unrecoverable=this.sw.eventsOfType("UNRECOVERABLE_STATE")}checkForUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(sn));if(this.ongoingCheckForUpdate)return this.ongoingCheckForUpdate;let n=this.sw.generateNonce();return this.ongoingCheckForUpdate=this.sw.postMessageWithOperation("CHECK_FOR_UPDATES",{nonce:n},n).finally(()=>{this.ongoingCheckForUpdate=null}),this.ongoingCheckForUpdate}activateUpdate(){if(!this.sw.isEnabled)return Promise.reject(new _(5601,!1));let n=this.sw.generateNonce();return this.sw.postMessageWithOperation("ACTIVATE_UPDATE",{nonce:n},n)}};L(e,"\u0275fac",function(i){return new(i||e)(le(Ce))}),L(e,"\u0275prov",ae({token:e,factory:e.\u0275fac}));let s=e;return s})();var ns=new hn("");function yr(){let s=O(Ve);if(!("serviceWorker"in navigator&&s.enabled!==!1))return;let e=O(ns),t=O($e),n=O(Et);t.runOutsideAngular(()=>{let i=navigator.serviceWorker,r=()=>{var o;return(o=i.controller)==null?void 0:o.postMessage({action:"INITIALIZE"})};i.addEventListener("controllerchange",r),n.onDestroy(()=>{i.removeEventListener("controllerchange",r)})}),t.runOutsideAngular(()=>{let i,{registrationStrategy:r}=s;if(typeof r=="function")i=new Promise(o=>r().subscribe(()=>o()));else{let[o,...a]=(r||"registerWhenStable:30000").split(":");switch(o){case"registerImmediately":i=Promise.resolve();break;case"registerWithDelay":i=ts(+a[0]||0);break;case"registerWhenStable":i=Promise.race([n.whenStable(),ts(+a[0])]);break;default:throw new _(5600,!1)}}i.then(()=>{n.destroyed||navigator.serviceWorker.register(e,{scope:s.scope,updateViaCache:s.updateViaCache,type:s.type}).catch(o=>console.error(un(5604,!1)))})})}function ts(s){return new Promise(e=>setTimeout(e,s))}function _r(s,e){return new Ce(s.enabled!==!1?navigator.serviceWorker:void 0,e)}var Ve=class{enabled;updateViaCache;type;scope;registrationStrategy};function is(s,e={}){return dn([fr,gr,{provide:ns,useValue:s},{provide:Ve,useValue:e},{provide:Ce,useFactory:_r,deps:[Ve,mn]},vn(yr)])}ii.production&&void 0;Nn(Ye,{providers:[{provide:Mn,useClass:On},es(),kn(ti,Dn()),zn({mode:"md",animated:De.getPlatform()!="web"}),is("ngsw-worker.js",{enabled:!1,registrationStrategy:"registerWhenStable:30000"})]}); diff --git a/.admin-app/ngsw.json b/.admin-app/ngsw.json index aecb2791..4132232b 100644 --- a/.admin-app/ngsw.json +++ b/.admin-app/ngsw.json @@ -1,6 +1,6 @@ { "configVersion": 1, - "timestamp": 1768276270807, + "timestamp": 1774223327478, "index": "/index.html", "assetGroups": [ { @@ -14,195 +14,199 @@ "/chunk-27YGL33L.js", "/chunk-2A4AN2NG.js", "/chunk-2EOHHFOF.js", + "/chunk-2H3447NQ.js", "/chunk-2UE3NWGI.js", - "/chunk-2YA6UCY4.js", + "/chunk-3365OTC2.js", "/chunk-3573TPBU.js", - "/chunk-36OD2M2C.js", "/chunk-3MK77LPM.js", + "/chunk-3OSW3EO7.js", "/chunk-3PD5OFOB.js", - "/chunk-3PGTX6TC.js", "/chunk-3TH7VQSH.js", + "/chunk-3U2X6Y6W.js", + "/chunk-3XGYA3SU.js", "/chunk-3YXNQJBH.js", + "/chunk-44GEUMMJ.js", + "/chunk-4BHZ5BWI.js", "/chunk-4E6BUMSC.js", - "/chunk-4JENLKOF.js", + "/chunk-4JLQIYCO.js", "/chunk-4L6NOZAZ.js", "/chunk-4R2EN4Z3.js", "/chunk-4U6PRYVA.js", - "/chunk-4XFTJEYH.js", + "/chunk-4ZMBZXZ2.js", "/chunk-52NOO6TE.js", "/chunk-57PFVVYC.js", - "/chunk-5B2MUMUK.js", "/chunk-5QQCKSKJ.js", - "/chunk-5W2DI6KX.js", + "/chunk-5QSNQA2B.js", + "/chunk-62GZOW6G.js", "/chunk-646XINR7.js", "/chunk-6CO4EYXK.js", + "/chunk-6CVTJBWK.js", + "/chunk-6GYHV7VW.js", "/chunk-6HFAIRO4.js", "/chunk-6JUZC3EG.js", "/chunk-6O5U4KMM.js", "/chunk-6OYBK3M2.js", "/chunk-6Y2ASLSF.js", "/chunk-74LKIMGW.js", - "/chunk-7CFKHTZL.js", + "/chunk-7EVOL74U.js", + "/chunk-7G7LMJ5L.js", "/chunk-7I2L74ZY.js", "/chunk-7KGURMOZ.js", "/chunk-7PG6JDOO.js", "/chunk-7S5DUMBP.js", "/chunk-7VSVCZ7D.js", "/chunk-A5RC3O7B.js", - "/chunk-A6WNT7FY.js", "/chunk-A7WKEBVD.js", "/chunk-AC557CUK.js", - "/chunk-AGI6BWYA.js", "/chunk-AVQRPF6B.js", "/chunk-AWARVJVT.js", + "/chunk-AWZLS6KS.js", "/chunk-BADEZMYZ.js", - "/chunk-BFGT5WRV.js", + "/chunk-BERAUI2V.js", "/chunk-BHB6Q6QV.js", + "/chunk-BODSD72O.js", "/chunk-BRGADPG7.js", - "/chunk-BWGKDW4H.js", "/chunk-BX6UMNXX.js", "/chunk-BXQDFO3E.js", "/chunk-C2JWCBLO.js", "/chunk-C6TWYN5N.js", - "/chunk-CJKTJYPA.js", + "/chunk-CBT26PAQ.js", + "/chunk-CIYY42AF.js", + "/chunk-CMEEWD7E.js", + "/chunk-CPOGSMOE.js", "/chunk-CVA27SDO.js", "/chunk-CXYZT4FZ.js", "/chunk-CZ4AHVKD.js", "/chunk-CZ5ZJ2AO.js", "/chunk-D7CHJCW5.js", - "/chunk-DEECFNUR.js", - "/chunk-DLYHGZPI.js", + "/chunk-DGWV6NC4.js", + "/chunk-DRE5OMWI.js", + "/chunk-DRQ6S3EF.js", "/chunk-DUKSTT3K.js", - "/chunk-DUYAUKPA.js", + "/chunk-ECI4ULYX.js", "/chunk-EIOBAO63.js", "/chunk-ESF6RK4L.js", + "/chunk-F5YC2F3D.js", "/chunk-FBWKCZ37.js", - "/chunk-FDEJMFAU.js", "/chunk-FH4AEIM7.js", "/chunk-FR5KKVT7.js", "/chunk-FT74B6LB.js", + "/chunk-FXBXBRQ3.js", "/chunk-G3ZGER7G.js", - "/chunk-G7X5MIYJ.js", - "/chunk-GJLDF72A.js", "/chunk-GJZKZXL4.js", "/chunk-GJZWBBB5.js", "/chunk-GOWQWRZR.js", - "/chunk-GPVDUW6Q.js", "/chunk-GTOWSYEY.js", - "/chunk-GZDIRLGC.js", + "/chunk-GXYE34XH.js", "/chunk-HC6MZPB3.js", - "/chunk-HF225NWQ.js", + "/chunk-HDYNKZSZ.js", "/chunk-HG3SGJWD.js", + "/chunk-HHWDTV4Q.js", + "/chunk-HPON5CAB.js", "/chunk-I4QOAY2O.js", "/chunk-I5V6RRU4.js", - "/chunk-IARXEYOV.js", - "/chunk-IBTHO3RH.js", "/chunk-ICFSPPOM.js", + "/chunk-IDAHFRDO.js", "/chunk-IFQIQBZJ.js", + "/chunk-IIYH37ST.js", "/chunk-IVUE4TDL.js", + "/chunk-J6QP2YBJ.js", "/chunk-JORYF43P.js", - "/chunk-JPSQHVXH.js", "/chunk-JXIEZMHN.js", - "/chunk-K3RLIGGM.js", + "/chunk-K6ROGVP7.js", "/chunk-KCPLCCSF.js", "/chunk-KOLBRJS2.js", + "/chunk-KP53OIUL.js", "/chunk-KSBJHOXF.js", "/chunk-L3HFJOOU.js", "/chunk-L4IPHJNS.js", "/chunk-LF5XB4YN.js", "/chunk-LIBYTRNP.js", - "/chunk-LIWDDRYP.js", "/chunk-LKPHKBDT.js", + "/chunk-LLQZQ6ZK.js", "/chunk-LLZYEWEK.js", "/chunk-LNJ3S2LQ.js", - "/chunk-LT7OOBRG.js", - "/chunk-LWEHEVWG.js", + "/chunk-LVL3PYF7.js", + "/chunk-LZ3XWWPZ.js", + "/chunk-M2OHFPPF.js", "/chunk-MCRJI3T3.js", + "/chunk-MEJFUTEJ.js", "/chunk-MM5QLNJM.js", - "/chunk-MTVNVIRQ.js", "/chunk-MUEZ5GBF.js", - "/chunk-N5F4Z23V.js", - "/chunk-NIJZXRAZ.js", - "/chunk-NNHLV5B3.js", - "/chunk-NOXTHIT5.js", + "/chunk-MZHM7UQO.js", + "/chunk-NMYQM7YV.js", + "/chunk-NPFSKFGI.js", "/chunk-NPRM7GGH.js", - "/chunk-OIMHMYK4.js", "/chunk-OJTNHSFB.js", "/chunk-OMB27VJZ.js", - "/chunk-OQVFSD37.js", + "/chunk-OO337WBA.js", "/chunk-OZ2IKH4J.js", "/chunk-P5ZWTDSU.js", "/chunk-P6XSMEBX.js", "/chunk-PFLI22GG.js", "/chunk-PGCQARQ2.js", + "/chunk-PGJWKH5Y.js", "/chunk-PWXNQWC6.js", - "/chunk-Q7SRVC5Z.js", + "/chunk-PXGOJK3Q.js", "/chunk-QA4DK2K6.js", "/chunk-QDGYTOUC.js", + "/chunk-QF32E4V4.js", "/chunk-QLWTIOQ3.js", + "/chunk-R77PAFDI.js", "/chunk-RBWZPAVM.js", "/chunk-REUZAOA5.js", "/chunk-RHEIXRRA.js", - "/chunk-RJKKC3S6.js", - "/chunk-RJUAL4VO.js", + "/chunk-RKW74V7I.js", "/chunk-SDV4EBRW.js", "/chunk-SFJBRZ2Y.js", "/chunk-SIWFSX55.js", - "/chunk-STDSP4D6.js", "/chunk-SUX6OV44.js", - "/chunk-SVNDKX5K.js", - "/chunk-T34LU4SH.js", + "/chunk-T35XL25U.js", "/chunk-TAMWKZWN.js", + "/chunk-TCALQ33I.js", "/chunk-TFI43ULC.js", + "/chunk-THH75NDP.js", + "/chunk-U3YCGDGQ.js", "/chunk-U5OWWBBZ.js", + "/chunk-UDWQF54V.js", "/chunk-UM72QYSD.js", - "/chunk-USPTQ7WY.js", "/chunk-UT2PGJWE.js", "/chunk-UUUQKWSW.js", "/chunk-UXOXI7Z2.js", "/chunk-UZWKRSQP.js", "/chunk-V5VODLQV.js", - "/chunk-V6XBM4R7.js", - "/chunk-VDXUCHAY.js", "/chunk-VFRGMC2F.js", + "/chunk-VHFY6VLP.js", "/chunk-VLNXCBKY.js", - "/chunk-VVJA7NBV.js", + "/chunk-VVDGH6ZT.js", "/chunk-WCOHDPRG.js", - "/chunk-WHEYUZEY.js", "/chunk-WMEG6PAA.js", "/chunk-WOPIMN57.js", - "/chunk-WRLAXAJB.js", + "/chunk-WQ4VL26B.js", "/chunk-WWKE4IZD.js", - "/chunk-WYUVY7GP.js", - "/chunk-XACE3SP2.js", "/chunk-XBQBF6VC.js", - "/chunk-XBTQFN5B.js", "/chunk-XBYTHCTD.js", "/chunk-XKPX6I2A.js", "/chunk-XOAGJ3SX.js", "/chunk-XRJ4SE6F.js", "/chunk-XVAB7Q3B.js", - "/chunk-XVLNEKIQ.js", - "/chunk-Y6ZHLRNP.js", - "/chunk-YJNLRALT.js", "/chunk-YL42BPQ5.js", - "/chunk-YLPHNW7F.js", "/chunk-YMI2B6JE.js", + "/chunk-YVBFHLPR.js", "/chunk-Z2GS73PT.js", "/chunk-Z4V4M3ZT.js", - "/chunk-Z5HZYXFK.js", + "/chunk-ZCXNVPSO.js", "/chunk-ZFRBVYF7.js", "/chunk-ZHFJF7NS.js", "/chunk-ZLZKTYCL.js", "/chunk-ZMJ3RQA5.js", - "/chunk-ZOFWWE63.js", - "/chunk-ZOMJNEQB.js", "/chunk-ZSDYYYDA.js", + "/chunk-ZUOMS67J.js", "/index.html", - "/main-A4GXMIVS.js", + "/main-6PQ3M3NL.js", "/manifest.webmanifest", "/polyfills-U5KWMLDL.js", - "/styles-UPCZWQX3.css" + "/styles-PL4DLORZ.css" ], "patterns": [] }, @@ -291,192 +295,196 @@ "/chunk-27YGL33L.js": "18d552a2dd0edfa9563695584fa9d37922f025cf", "/chunk-2A4AN2NG.js": "182f06ddc137fb2988341f11b973f021b0cca924", "/chunk-2EOHHFOF.js": "7ce3fe99a33a74eddf75261b8a0d7817f14c011d", + "/chunk-2H3447NQ.js": "1d7aa4cb1a376dca8763fbdb6a901af0a9893285", "/chunk-2UE3NWGI.js": "afc9a5e6810cad02589bb68e13312f9d239d804f", - "/chunk-2YA6UCY4.js": "4c7a1dbd79ca4237fc8ef9e6e30bb428de3e5382", + "/chunk-3365OTC2.js": "4dd58aa3e1bf0766b2832e28a16fcee8c0e2c7d6", "/chunk-3573TPBU.js": "feb7e66ec6440832cdfa94877db42967c5c37d36", - "/chunk-36OD2M2C.js": "12ac5becf78abe1c9faffe82962dfd9ca4d70a3d", "/chunk-3MK77LPM.js": "3157480d7aff2a9703eb2d8fdd8ae60ed632728f", + "/chunk-3OSW3EO7.js": "9650564c0b4ed3cc8ccd7e4f232be46801c746ea", "/chunk-3PD5OFOB.js": "8f72f87db7a04800e9f26e5e357c9e175d15874f", - "/chunk-3PGTX6TC.js": "47b7d4a8a0637398cd9e282ad4fb77b2c04958a6", "/chunk-3TH7VQSH.js": "aac76551b46554fde252f31b16dadf930245f478", + "/chunk-3U2X6Y6W.js": "814f63808ef390576ee53e88164ab8d378fda5e3", + "/chunk-3XGYA3SU.js": "e62be5e2d92f7a0a57c85d5fe5e861ead06f94d7", "/chunk-3YXNQJBH.js": "7ecb50c54a22dc3803b18a3c6c4fab67a2c12fdf", + "/chunk-44GEUMMJ.js": "8f7edb94ce765276b2188999312c25f3d5289a47", + "/chunk-4BHZ5BWI.js": "f379b9952df276a7c2bf270b4c6f3c327843b425", "/chunk-4E6BUMSC.js": "bd21c460972af97d7d3f4458f797c439ae6399bc", - "/chunk-4JENLKOF.js": "c4aac87c98779f7ee3da0d6d9f89a9091424b1c5", + "/chunk-4JLQIYCO.js": "7b876a7593f9eec79dc53f9412fd47118c21dec1", "/chunk-4L6NOZAZ.js": "944939b9f66983d57515d34d828dca51cfd5dcb2", "/chunk-4R2EN4Z3.js": "d84faa85c6bda5667e787be3465ff0bdd3394a3e", "/chunk-4U6PRYVA.js": "9e30195ad097d196c078f554a2965eb758d96e70", - "/chunk-4XFTJEYH.js": "cc8edf7a1e06cc59afe9c0fe5bf43ad0ada5fc81", + "/chunk-4ZMBZXZ2.js": "cc5315a721b11a4efdd37b4cdafa3653483d7b05", "/chunk-52NOO6TE.js": "a56283b772112bd9355ce69f16ae544f5b26b3cd", "/chunk-57PFVVYC.js": "2a4bbce8c647c7f141888b11015f7069fc011405", - "/chunk-5B2MUMUK.js": "e7a7179374f66465b0433dd09c211500d58f9b79", "/chunk-5QQCKSKJ.js": "978b53f0b6faaaa001e61b7ec7cf40793ed894d3", - "/chunk-5W2DI6KX.js": "a017fa786c98fb33c266f78a722677017b1adc90", + "/chunk-5QSNQA2B.js": "4f34ec65162a53406d0810df54b01eb104bff3db", + "/chunk-62GZOW6G.js": "f9ae0f3cfdd5c43d66ed310cc558a0961276ef54", "/chunk-646XINR7.js": "c80ac9c4c0f8928006493f0de96cc3ceec5d6bcd", "/chunk-6CO4EYXK.js": "8b7596a9d6b0b101475462c2266648b4808989e8", + "/chunk-6CVTJBWK.js": "a6ba6f0df3a5eb5d98f6540d0103f8f98048d9c1", + "/chunk-6GYHV7VW.js": "cd324f40cfddff98796204a80f9697ec000bd627", "/chunk-6HFAIRO4.js": "abc04f2f9c22412d46f40cb842ad55419989f1fa", "/chunk-6JUZC3EG.js": "8cd4ca68af86e3b23c8184e7bc0df43fe34fee40", "/chunk-6O5U4KMM.js": "d4918e8738e5460c841a443ca5d76aa96463eac2", "/chunk-6OYBK3M2.js": "1dbe0925ebdfc9eb216445ea77534b6f4e4295aa", "/chunk-6Y2ASLSF.js": "d5fce58937a46c0ba34cc36459653d50c1779a5e", "/chunk-74LKIMGW.js": "f3d9f41ea13439e5623c75d43a6907ecf7328965", - "/chunk-7CFKHTZL.js": "b414e56c4b72b5569c9252f0e66998879ed14799", + "/chunk-7EVOL74U.js": "d5a6b83174797719bca7af4c9046c1d4c6cad802", + "/chunk-7G7LMJ5L.js": "22b1f9d804dd8c7b922f7023dad0cd3caf323f11", "/chunk-7I2L74ZY.js": "28f203e7ae6d4fc073605b137714a9cb91b3a3aa", "/chunk-7KGURMOZ.js": "27ca889a1a8ce9c98bae8853afda2496b2df5084", "/chunk-7PG6JDOO.js": "c7cae84796869367831c632c4cc0689f49b28d9b", "/chunk-7S5DUMBP.js": "955f1f971c6214ba3df2c7d3159e81da106c0ab0", "/chunk-7VSVCZ7D.js": "9e30195ad097d196c078f554a2965eb758d96e70", "/chunk-A5RC3O7B.js": "d0b138c9330fef70497b680f6ea555a9c9454533", - "/chunk-A6WNT7FY.js": "bf428fb5d83254f59ff407807335899b14f49ad0", "/chunk-A7WKEBVD.js": "c3b04fa7ae203919bd879b7cf96c6726b90c4ff6", "/chunk-AC557CUK.js": "e373b1d13356b710b17a24a95f533bda596d3f98", - "/chunk-AGI6BWYA.js": "355b193ec970ef3339095b5135db716738addc6d", "/chunk-AVQRPF6B.js": "ea62022d997491ff98063dedf5c11113243a03b8", "/chunk-AWARVJVT.js": "28c5b3b2d7f4de78c8e9df81e62f2516f7d0e405", + "/chunk-AWZLS6KS.js": "54f13acff75372cc3edbe4c47bdd2711ff7b6a7f", "/chunk-BADEZMYZ.js": "0cb937209606a6c7248e36ddc8d55ceb22194a97", - "/chunk-BFGT5WRV.js": "191e3bf5a7ab742d013905efd24493a759e0a8b3", + "/chunk-BERAUI2V.js": "7f2c8a5cdbdeb721c90388f9015a7d362066f201", "/chunk-BHB6Q6QV.js": "d3ff3d3ccd71b235c70dc4081e9cfacd8618547b", + "/chunk-BODSD72O.js": "5febdb6c46d978ad6cbc56533a7c657a6efeb4a1", "/chunk-BRGADPG7.js": "4ef6c5cce4b00320d4907459d233d738704124e1", - "/chunk-BWGKDW4H.js": "018ba33b8ca292bc0cd7ceb31565e5091b90f329", "/chunk-BX6UMNXX.js": "674184c651ecb227751734390128597c8223f98a", "/chunk-BXQDFO3E.js": "4229531e1e3442efa43f31942b00a7dcd542fac4", "/chunk-C2JWCBLO.js": "18bd2666ebd9bbe4072b51ef8b0f5b872bc5f4b8", "/chunk-C6TWYN5N.js": "45a62d80ab6dfeea649af8231a29943d7fd6bbca", - "/chunk-CJKTJYPA.js": "4e31cd294e19fb085f959bef479f806183884bbe", + "/chunk-CBT26PAQ.js": "5138b0179365eff1e2cbba9f638f1b88510e1c8c", + "/chunk-CIYY42AF.js": "785b004252ad0d4282ec38a175999273b1822b6c", + "/chunk-CMEEWD7E.js": "3ccdd1279d24d90fa18f74866de05aa40e2c8f05", + "/chunk-CPOGSMOE.js": "e9583281a9826109c275a10039ac623944bdc9bf", "/chunk-CVA27SDO.js": "82726589c7d640e902a970f74d20a43935b55774", "/chunk-CXYZT4FZ.js": "9c65575e26ce105b52849e175e7525d5402f1908", "/chunk-CZ4AHVKD.js": "5b226203d533d4e5b12ec1d1f1484974ec007d9d", "/chunk-CZ5ZJ2AO.js": "018ff25c40a48f6a64f624e5d7b8e02ee2a9ebb1", "/chunk-D7CHJCW5.js": "770d10e33004a590c26e6b256f903b1cea3cc4fd", - "/chunk-DEECFNUR.js": "993d71fac1b4ae9b393c5fe082679ff615567343", - "/chunk-DLYHGZPI.js": "94a076b8e39dfd80393fb44746db125d17d76293", + "/chunk-DGWV6NC4.js": "421c7ab7faedd23d733c3a5440bb4f8609a5c0a5", + "/chunk-DRE5OMWI.js": "4fe498eb32481a130741986f44f248d7344382bf", + "/chunk-DRQ6S3EF.js": "cf381a71abba6a8de637480723423c1ac56b3974", "/chunk-DUKSTT3K.js": "5e4e5005dcdaef9d904188a265b0b21a0883c254", - "/chunk-DUYAUKPA.js": "e9472ad94adc28475654b852f3a8f642b6e2b870", + "/chunk-ECI4ULYX.js": "8fef3ca49ee2150e8c118af3a19221894d882579", "/chunk-EIOBAO63.js": "ac23ec1ee1dd089b279e9f752104f07e9fa6811e", "/chunk-ESF6RK4L.js": "7272fbef2f54cfdeb81a1de85fe2bfe66378627a", + "/chunk-F5YC2F3D.js": "ccfcd8c2c9cc958817a9ccd93a9f14d9f7520016", "/chunk-FBWKCZ37.js": "9203cee6d6a2b8f50882e5b83bc6a79abca71dac", - "/chunk-FDEJMFAU.js": "01643b72fad75dfe9e4a677dc7b2552a37e37218", "/chunk-FH4AEIM7.js": "4ef1a50d414fd5a31c136d0663f9517e56da368f", "/chunk-FR5KKVT7.js": "54253c4cd47a384dfddd7799a467f7f9d0458b0b", "/chunk-FT74B6LB.js": "f2c33a3462bc3fb60b7717895e4ee704f4462a46", + "/chunk-FXBXBRQ3.js": "4ce7791a644fca7a8c649451cc64f6bd12c3c3b9", "/chunk-G3ZGER7G.js": "d323e147b1ef89122d26b8084a71c4bfc1c913f2", - "/chunk-G7X5MIYJ.js": "ab3f07635c9b9cbb381345d087ae3e281af0b845", - "/chunk-GJLDF72A.js": "8fdea4e489d1cef6bc13db524c492f0f17769bd6", "/chunk-GJZKZXL4.js": "27ca889a1a8ce9c98bae8853afda2496b2df5084", "/chunk-GJZWBBB5.js": "a3308cf458a16e6a7cc020f31f437cebb46da0a3", "/chunk-GOWQWRZR.js": "2e65111b67119b29f6c276cb858efa3cbd1d46c9", - "/chunk-GPVDUW6Q.js": "8997442fdc7547d94dc9c38855b570aeb906fd74", "/chunk-GTOWSYEY.js": "9a5d14d7ceac08eea4d109f946669c2e09a4a146", - "/chunk-GZDIRLGC.js": "8affed161aa5e923ec5d713a3db9a0a91f7dfe86", + "/chunk-GXYE34XH.js": "5de72c21914d56a9de0992186df84621f19288cb", "/chunk-HC6MZPB3.js": "3d8b0e78a6fe064a4c882a0599f7bc6a91502b47", - "/chunk-HF225NWQ.js": "ca7aa123b0b6c489d986d4abd6d7f3666273fab5", + "/chunk-HDYNKZSZ.js": "ab95e1f7bbb5eebeb678b6b4797c27f92f42d450", "/chunk-HG3SGJWD.js": "0e89953a9574c1bef59a632ceeb4ba9a9af6f937", + "/chunk-HHWDTV4Q.js": "9dc2a48922011968f2a91f28f083ae6f668994d9", + "/chunk-HPON5CAB.js": "8770d864d4cb45a0c153fa95c9a28fb20c331a70", "/chunk-I4QOAY2O.js": "45bb108c76795a604a2b9529b8b91e487b3b290b", "/chunk-I5V6RRU4.js": "1133d6a6261ded3dc327d1cbf7ee1b37f829489d", - "/chunk-IARXEYOV.js": "cdcf5347dd157aca9b631470e428301b3300d72b", - "/chunk-IBTHO3RH.js": "f0e8f48ba5da091744101142be8372beea0aec93", "/chunk-ICFSPPOM.js": "a4aecc1fd279c348aaf5d1b4542087407c1bdf64", + "/chunk-IDAHFRDO.js": "d3b17e9d037a5b715e6bc5c586ca1dac3c235495", "/chunk-IFQIQBZJ.js": "72b0f5e59d290c0e744df9f4b1cfa106963ecbb9", + "/chunk-IIYH37ST.js": "70694e4e1389abc8ae549c9f88e50ae29bc1652e", "/chunk-IVUE4TDL.js": "4f35627d8a1bcd960264fe464351db42083bcf1b", + "/chunk-J6QP2YBJ.js": "cb4bb9f25d0630c2953908bc8a1c041af93758ba", "/chunk-JORYF43P.js": "8825e505df2265b24fd32af0cf28c5a6b6d5e14f", - "/chunk-JPSQHVXH.js": "41e37157ec20c361e580fcdc08a540a19123b5c2", "/chunk-JXIEZMHN.js": "4017293d11de3f12daa81678ec90852a470c601f", - "/chunk-K3RLIGGM.js": "7330d917d678e0e481a5f06e1d6e27c524780077", + "/chunk-K6ROGVP7.js": "bf9aed24a868dd28adf3e5c580440a278f8ab53c", "/chunk-KCPLCCSF.js": "5ed2d906d0f25b71c2d4b68b3cda14292e86b5c8", "/chunk-KOLBRJS2.js": "696d6ad204f272ae82423b42c903aeddfde874a7", + "/chunk-KP53OIUL.js": "369ddd9a88b16bbe5ca0320df1f27d6605eff7b8", "/chunk-KSBJHOXF.js": "0cad62737ded55d57b2ed3b916fc9b5a6351d2ac", "/chunk-L3HFJOOU.js": "fea76c915aa696fbae3caf8b188f92da7cc3cb65", "/chunk-L4IPHJNS.js": "3a67ea1fc5d06b3cb3526df2e6db47a8e540057b", "/chunk-LF5XB4YN.js": "9a4312a44cc8ab8573488a48a18c01a6bb352c6b", "/chunk-LIBYTRNP.js": "0e3fcca065f6b350a92a1a5078983a504c0d4fcf", - "/chunk-LIWDDRYP.js": "e75213989e121d035d525f2b07d35c20f05dcc77", "/chunk-LKPHKBDT.js": "4cb3f1f054ee795340f930d183e3f65280608fd2", + "/chunk-LLQZQ6ZK.js": "c5d12aedc043abdfcb38e6cc54d9ae7741b7c2cb", "/chunk-LLZYEWEK.js": "f74db731c8cf579c7021e8e9c54c0d6d4f0fd0b8", "/chunk-LNJ3S2LQ.js": "6abbb1b0ad63c4ad23b64c0cc67677e1ec701e24", - "/chunk-LT7OOBRG.js": "a69cf3513736e03d2a1d2c7d75336d3be2591619", - "/chunk-LWEHEVWG.js": "0975a29f80b732ee11db2b92162ef4968117845a", + "/chunk-LVL3PYF7.js": "dd3770287a6c7dcee08e692fac9bc75ce42f6606", + "/chunk-LZ3XWWPZ.js": "37c2b3bc11691dfd3ab56eb159bdf6ab96900eed", + "/chunk-M2OHFPPF.js": "014f9389bcd7941f8e224e09a1f73f6f1ce5756a", "/chunk-MCRJI3T3.js": "9a4312a44cc8ab8573488a48a18c01a6bb352c6b", + "/chunk-MEJFUTEJ.js": "592f550766f11c3a903bc1fd066a0bfc1b640c3d", "/chunk-MM5QLNJM.js": "565ca77d12ec1cc1f7a733a9371b32d0d575d800", - "/chunk-MTVNVIRQ.js": "cd04c80a8e33fa49c84694dc588bdbcb2206967c", "/chunk-MUEZ5GBF.js": "4278ecd14bcb949de293721c3b861b2140850964", - "/chunk-N5F4Z23V.js": "d7e1298e0f7c24f2e3cddcd3c0e2632dd543e736", - "/chunk-NIJZXRAZ.js": "1280349ed5b50952019e069025b6faaf2d1eb86c", - "/chunk-NNHLV5B3.js": "e9a98392a11578f66d68707cde6429167b615a94", - "/chunk-NOXTHIT5.js": "38ade7390690adeecf99e81f00a9999ff91f828b", + "/chunk-MZHM7UQO.js": "f4b5b3c734b101f2dc822bb5c14a0cb48b447c16", + "/chunk-NMYQM7YV.js": "60e376f52086833ea59b239642c5282881751382", + "/chunk-NPFSKFGI.js": "7f08c13137c9562d17e97e384d7869ee16bceefa", "/chunk-NPRM7GGH.js": "6b47bb3a356540c19741c20d44bc7581949d243b", - "/chunk-OIMHMYK4.js": "49056c0958915e4b993d6db8517a2b5395192c05", "/chunk-OJTNHSFB.js": "be39afcf49302c188e114e89beb22c14a5fc10c0", "/chunk-OMB27VJZ.js": "aab49b7d135e3c8985341714c4b6c51be00cbade", - "/chunk-OQVFSD37.js": "a212b43b4a88bfd89a03bcc9323d7772c403814c", + "/chunk-OO337WBA.js": "2a3900f3ad8b90a12d26ec60e0094d8d25aade92", "/chunk-OZ2IKH4J.js": "b0507a022d6211fed943954dc5216202c3fbeb15", "/chunk-P5ZWTDSU.js": "729c11355bb3cf5defaec894e80e5a3d97fff859", "/chunk-P6XSMEBX.js": "9638df56815af5f3a10001c38214f58d03373577", "/chunk-PFLI22GG.js": "05edd2cf999f43ac73b8f0dc60fe3c7f15226119", "/chunk-PGCQARQ2.js": "c7aca96d526b527370f88a9c45f96ac2dc736ac0", + "/chunk-PGJWKH5Y.js": "f261d2c9da86ae708bf67ff84f8beadc0774cf1d", "/chunk-PWXNQWC6.js": "b98ba885efe69ba80afec2f87e7618eeaeb58123", - "/chunk-Q7SRVC5Z.js": "093601cb15ec614b1911db8ba739726213af8a92", + "/chunk-PXGOJK3Q.js": "5ecb68a3b5de55b10f5891c89cffb4d58551d138", "/chunk-QA4DK2K6.js": "ac9390252a24f86ffafd8798d6effbce7701e5f0", "/chunk-QDGYTOUC.js": "4ef342e81ae6d48ca0b31118e239ebcdf1a9d0c8", + "/chunk-QF32E4V4.js": "b3058b4b1b9ff5605b10114c93f08f1c30e01f69", "/chunk-QLWTIOQ3.js": "8139c7a65822e65c08fa4b2691bc5fab80c529bd", + "/chunk-R77PAFDI.js": "a6c9f97289ed6ee62b9347bc337163715ece4947", "/chunk-RBWZPAVM.js": "933a3ea68d3e01e7bedf2afbfcd358111ef556c8", "/chunk-REUZAOA5.js": "23894f02e7dd5a5eb5f82893ff8c230c7f3f79a3", "/chunk-RHEIXRRA.js": "9b989abf8ffc36acd81ff51a08003ecf9edb18a2", - "/chunk-RJKKC3S6.js": "56b0df0b2648a3bd3a4229713e508837eb5d87e1", - "/chunk-RJUAL4VO.js": "e3d2a5ff309a0b2771c51c2c4f845b2ef82508f4", + "/chunk-RKW74V7I.js": "fac9030d2307fcaec58eb1682ce23e632fadea0f", "/chunk-SDV4EBRW.js": "47fdd8e4a7b0f6e6900d5db4728ce40774397045", "/chunk-SFJBRZ2Y.js": "f2afa0d579290a3739cf44e07e4c8d3b5fe2c3b1", "/chunk-SIWFSX55.js": "d1913a2b496c9b6c4ed80a1425d3ebcd37f4ffd3", - "/chunk-STDSP4D6.js": "ce7b9ceb723df75eadbbc2c6d50eb45db674f950", "/chunk-SUX6OV44.js": "2e45ab3160a9f8e3de494c100d5ed8463e9c8bec", - "/chunk-SVNDKX5K.js": "c4ac60be5a287f31ee95c142c35811771f124f67", - "/chunk-T34LU4SH.js": "359c3c683a43a44e74fd872ce76bcdabcd48f339", + "/chunk-T35XL25U.js": "c322e929c0810c63c3097fb5a3166082319a3e8f", "/chunk-TAMWKZWN.js": "374b112f065556786a40ae4c29dc4d0088a20218", + "/chunk-TCALQ33I.js": "993e4dbb57010b6162078d5738b4638e7066cfb7", "/chunk-TFI43ULC.js": "264e86145ab3f11eb148214060f21e205693299b", + "/chunk-THH75NDP.js": "7b71dbd7f62ae17c75459c6eec2e239782aea5ea", + "/chunk-U3YCGDGQ.js": "6371c321120ee3fbcbd7139956414d4a742f8058", "/chunk-U5OWWBBZ.js": "ffb3c313e46366de6669759c62be6b45c8850057", + "/chunk-UDWQF54V.js": "516482a8f39e6c8365416d49bf1ff7abf1652d9b", "/chunk-UM72QYSD.js": "40b7e6c262ac851b09eb3167d6bbbb09f84a54aa", - "/chunk-USPTQ7WY.js": "68610770b9cc07b457031f2f9c73cd67aad6dc18", "/chunk-UT2PGJWE.js": "f4757f8a06516b0cb2967c2f8c02e8fffbfa71a3", "/chunk-UUUQKWSW.js": "20b42bc671b97469691de4981472cd6521a13077", "/chunk-UXOXI7Z2.js": "aee9ad752b88244d834d9922bf93a5283fbaa308", "/chunk-UZWKRSQP.js": "a604d1d35a6568503e7c5fa75adae9812611aeba", "/chunk-V5VODLQV.js": "b7f857b61f65db0d254a1175d419bfbbff610579", - "/chunk-V6XBM4R7.js": "25e59e3a505e9b668285540b907d7562526b8d2d", - "/chunk-VDXUCHAY.js": "0720d5a8d0dc16cd48f1f207c975d1afa666a86a", "/chunk-VFRGMC2F.js": "305bdd0ed8d2bb6f8c2f3491062f9cbfc2cec022", + "/chunk-VHFY6VLP.js": "2ef5af1b8f3b4be016f64591c3aab1e48b093bdc", "/chunk-VLNXCBKY.js": "6bb1973822a5402a5f3c443fa5692a33030ec067", - "/chunk-VVJA7NBV.js": "779c6febe139774e5c277878926710e004fbbb03", + "/chunk-VVDGH6ZT.js": "330e3f823f5db68fb43894de65b7d9e198967d96", "/chunk-WCOHDPRG.js": "4c4d66fd798328062d6f34a2f9031f425d2abcab", - "/chunk-WHEYUZEY.js": "8b3aa7ae28b6c052b925e49c9e68bea08f243821", "/chunk-WMEG6PAA.js": "62921a73225ecbaa97d351c06b87671b73abb380", "/chunk-WOPIMN57.js": "19c4333de8a9c0aa36de2cbf3fc5013aed051562", - "/chunk-WRLAXAJB.js": "d83bea63d34bd0cac142259eb600d583cb838c25", + "/chunk-WQ4VL26B.js": "1777bd00890c7e130a4c2ad1ec3c6b5ed6ec4ccc", "/chunk-WWKE4IZD.js": "f911300298e182ba89a3e558494a79e3662b0cbd", - "/chunk-WYUVY7GP.js": "9d90843362ef0d783b7f516315cc9e486551768c", - "/chunk-XACE3SP2.js": "1ea61e099fd56ab763a0113205e4f7a946ac24e3", "/chunk-XBQBF6VC.js": "df9d646637a27a2a31231480949eb1c571fbf7c6", - "/chunk-XBTQFN5B.js": "72490783492ac619e4e4a1fc11d4b92ec80094f4", "/chunk-XBYTHCTD.js": "2f96cbc63d3e91e98acadb86be7778f184a46791", "/chunk-XKPX6I2A.js": "e9599a5ac8c47f80dd6e207a21e5978d1c830db4", "/chunk-XOAGJ3SX.js": "fb1d6ca3114bc9b3d85245bd078c4e419d356e7f", "/chunk-XRJ4SE6F.js": "e3837f350003d1139461a5347628793385e512e9", "/chunk-XVAB7Q3B.js": "cd6f30b346703276042717d9c6ff39432e412144", - "/chunk-XVLNEKIQ.js": "3392f1e73a1c9a1d17208261898d17efd08029bf", - "/chunk-Y6ZHLRNP.js": "25e1ecc205da0abd0ba1254e19f69717f9c29950", - "/chunk-YJNLRALT.js": "d9386624bf1e616a8dc5fc4d426ce3f089ef2320", "/chunk-YL42BPQ5.js": "64d2fef651b7e3b1c9559e485534a591d0baa5af", - "/chunk-YLPHNW7F.js": "f388741bf650a6bd8fff434b4c9f152d35ecb335", "/chunk-YMI2B6JE.js": "df3b8c9862272671db75b6d3f0cf5a5985d905d4", + "/chunk-YVBFHLPR.js": "bda485950db7e20685c3f913ed41fa3d06f531f7", "/chunk-Z2GS73PT.js": "6d5599da62962033f9c360b13a3b53422d4dfc4f", "/chunk-Z4V4M3ZT.js": "c218a7b83dfdc399b680ff37bd7e83e4641181b4", - "/chunk-Z5HZYXFK.js": "70b9833259f0628b792b2c73ccb1f3d60bf4e7de", + "/chunk-ZCXNVPSO.js": "846f9dffce91449a7d0c5e618c4421b6bf78e7aa", "/chunk-ZFRBVYF7.js": "82c24b5e7d5ad6f6de382bcf6575c6806681fece", "/chunk-ZHFJF7NS.js": "a192842f51778977a3914dc68744efe25e57a19f", "/chunk-ZLZKTYCL.js": "b4d18923cda46063f7a5330cc4a4673ede59fd0d", "/chunk-ZMJ3RQA5.js": "cefa740324b77c4a01529eebb5d58e94e16c28a2", - "/chunk-ZOFWWE63.js": "778b3adfdd7ca3547b720d9cbd5a84439fbb98b8", - "/chunk-ZOMJNEQB.js": "9752a6e3abe72656a7ff40f3f860a93ad50b6b6e", "/chunk-ZSDYYYDA.js": "219020fabac5cfe1ef1fec4417f01cf243411be7", - "/index.html": "04247fae13ff14a466654822e8494e072abfc92f", - "/main-A4GXMIVS.js": "efa0d4e06b8b3f877d91c3d1dee716aecc6b89d7", + "/chunk-ZUOMS67J.js": "229c9ef23fb52319586fe0b6918840baace503f1", + "/index.html": "2df9b18875396ca5ebce5c506174714f6e2b66fc", + "/main-6PQ3M3NL.js": "c2bd8621119a7c1715f34cd49eab92421bef4ef7", "/manifest.webmanifest": "28fbdb700e7301e2e3ff9b467c412c87eb6ce260", "/media/gelion-bold-QP3I5GAI.woff": "d8fd81dc51daf56b8043572c54d373d9b4ccc908", "/media/gelion-medium-QORO7MMW.woff": "c7f8cb08d42ad40a5f941a6a9adf4f6d3336272c", @@ -485,7 +493,7 @@ "/media/grotesk-bold-XXHRJ6Y6.woff": "f426fe2da48914d618e1c3ef3a300bd4bb615191", "/media/nunito-extrabold-JGFZXZX6.woff": "a93db59e7f8da08b9cdd56104d82b78d19877119", "/polyfills-U5KWMLDL.js": "5dd5f60ed9a891f99c3e050ce02f100701a373f1", - "/styles-UPCZWQX3.css": "ee759204363fa4b9fc34067532b3375ae28cb9b4" + "/styles-PL4DLORZ.css": "7f18d7d91b95d82839cf04feb762357f17d6e553" }, "navigationUrls": [ { diff --git a/.admin-app/styles-PL4DLORZ.css b/.admin-app/styles-PL4DLORZ.css new file mode 100644 index 00000000..3176a71c --- /dev/null +++ b/.admin-app/styles-PL4DLORZ.css @@ -0,0 +1 @@ +:root{--ion-font-family: "Gelion Regular";--footer-width: 82px;--input-background: rgba(0, 0, 0, .05);--font-size-display: 8rem;--font-size-4xl: 3rem;--font-size-3xl: 2.5rem;--font-size-large: 2.25rem;--font-size-2xl: 2rem;--font-size-medium: 1.5rem;--font-size-xl: 1.2rem;--font-size-base: 1.125rem;--font-size-small: .875rem;--spacing-xs: .2rem;--spacing-sm: .25rem;--spacing-base: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.25rem;--spacing-1xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--spacing-5xl: 5rem;--br-xs: 2px;--br-sm: 3px;--br-md: 4px;--br-lg: .5rem;--br-xl: 10px;--br-2xl: 15px;--br-3xl: 20px;--br-full: 100%;--ion-color-primary: #f61067;--ion-color-primary-rgb: 56, 128, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #aa134d;--ion-color-primary-tint: #aa134d;--ion-color-secondary: rgba(0, 0, 0, .05);--ion-color-secondary-rgb: 61, 194, 255;--ion-color-secondary-contrast: #333;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #36abe0;--ion-color-secondary-tint: #50c8ff;--ion-color-tertiary: #19c32a;--ion-color-tertiary-rgb: 106, 100, 255;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #16ab25;--ion-color-tertiary-tint: #1bd62e;--ion-color-success: #f61067;--ion-color-success-rgb: 45, 211, 111;--ion-color-success-contrast: #ffffff;--ion-color-success-contrast-rgb: 255, 255, 255;--ion-color-success-shade: #28ba62;--ion-color-success-tint: #42d77d;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #eb445a;--ion-color-danger-rgb: 235, 68, 90;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #cf3c4f;--ion-color-danger-tint: #ed576b;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #ffffff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e;--ion-color-medium: #92949c;--ion-color-medium-rgb: 146, 148, 156;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #808289;--ion-color-medium-tint: #9d9fa6;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9}@media (max-width: 640px){:root{--font-size-display: 4rem;--font-size-large: 1.75rem;--font-size-medium: 1.25rem;--font-size-base: 1.125rem}}@media (prefers-color-scheme: dark){ion-input,ion-select{border-bottom:1px solid var(--ion-color-light-tint)}body{--ion-color-primary: #f61067;--ion-color-primary-rgb: 66, 140, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #aa134d;--ion-color-primary-tint: #aa134d;--ion-color-secondary: rgba(255, 255, 255, .05);--ion-color-secondary-rgb: 80, 200, 255;--ion-color-secondary-contrast: #ffffff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #46b0e0;--ion-color-secondary-tint: #62ceff;--ion-color-tertiary: #19c32a;--ion-color-tertiary-rgb: 106, 100, 255;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #16ab25;--ion-color-tertiary-tint: #1bd62e;--ion-color-success: #f61067;--ion-color-success-rgb: 47, 223, 117;--ion-color-success-contrast: #000000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #29c467;--ion-color-success-tint: #44e283;--ion-color-warning: #ffd534;--ion-color-warning-rgb: 255, 213, 52;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0bb2e;--ion-color-warning-tint: #ffd948;--ion-color-danger: #ff4961;--ion-color-danger-rgb: 255, 73, 97;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #e04055;--ion-color-danger-tint: #ff5b71;--ion-color-dark: #f4f5f8;--ion-color-dark-rgb: 244, 245, 248;--ion-color-dark-contrast: #000000;--ion-color-dark-contrast-rgb: 0, 0, 0;--ion-color-dark-shade: #d7d8da;--ion-color-dark-tint: #f5f6f9;--ion-color-medium: #989aa2;--ion-color-medium-rgb: 152, 154, 162;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #86888f;--ion-color-medium-tint: #a2a4ab;--ion-color-light: #222428;--ion-color-light-rgb: 34, 36, 40;--ion-color-light-contrast: #ffffff;--ion-color-light-contrast-rgb: 255, 255, 255;--ion-color-light-shade: #1e2023;--ion-color-light-tint: #383a3e}.ios body{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-color-step-50: #0d0d0d;--ion-color-step-100: #1a1a1a;--ion-color-step-150: #262626;--ion-color-step-200: #333333;--ion-color-step-250: #404040;--ion-color-step-300: #4d4d4d;--ion-color-step-350: #595959;--ion-color-step-400: #666666;--ion-color-step-450: #737373;--ion-color-step-500: #808080;--ion-color-step-550: #8c8c8c;--ion-color-step-600: #999999;--ion-color-step-650: #a6a6a6;--ion-color-step-700: #b3b3b3;--ion-color-step-750: #bfbfbf;--ion-color-step-800: #cccccc;--ion-color-step-850: #d9d9d9;--ion-color-step-900: #e6e6e6;--ion-color-step-950: #f2f2f2;--ion-item-background: #000000;--ion-card-background: #1c1c1d}.md body{--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-border-color: #222222;--ion-color-step-50: #1e1e1e;--ion-color-step-100: #2a2a2a;--ion-color-step-150: #363636;--ion-color-step-200: #414141;--ion-color-step-250: #4d4d4d;--ion-color-step-300: #595959;--ion-color-step-350: #656565;--ion-color-step-400: #717171;--ion-color-step-450: #7d7d7d;--ion-color-step-500: #898989;--ion-color-step-550: #949494;--ion-color-step-600: #a0a0a0;--ion-color-step-650: #acacac;--ion-color-step-700: #b8b8b8;--ion-color-step-750: #c4c4c4;--ion-color-step-800: #d0d0d0;--ion-color-step-850: #dbdbdb;--ion-color-step-900: #e7e7e7;--ion-color-step-950: #f3f3f3;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-card-background: #1e1e1e}}@media (min-width: 801px){.page{max-width:800px;margin-left:auto;margin-right:auto;border:2px solid lightgray;border-radius:20px;padding:var(--spacing-xl);margin-top:10vh}}.pad-vertical{margin-top:22vh}label{font-size:var(--font-size-xl);margin:var(--spacing-base)}input,textarea{margin-top:var(--spacing-lg)!important;padding-top:var(--spacing-base)!important;background-color:#0003!important;padding-bottom:var(--spacing-base)!important;padding-left:var(--spacing-base)!important;border-radius:var(--spacing-base)}ion-checkbox{margin-left:var(--spacing-base);margin-right:var(--spacing-base)}input[type=color]{padding:0!important;border:none!important}.image-container{width:calc(100% - var(--spacing-3xl))!important;margin-left:var(--spacing-xl);min-height:200px;background-color:#0003;border-radius:var(--spacing-base);padding:var(--spacing-lg);cursor:pointer}@media (min-width: 640px){ion-card-title{font-size:var(--font-size-2xl)!important}}ion-input,ion-textarea{--placeholder-color: var(--ion-color-medium) !important}@media (prefers-color-scheme: dark){ion-datetime-button::part(native){background-color:#0000004d}}@media (prefers-color-scheme: light){ion-input{--placeholder-color: var(--ion-color-medium) !important}.image-container{background-color:#0000000d}input,textarea{background-color:var(--input-background)!important}}ion-card:hover{opacity:.9}.clickable{cursor:pointer}.grid-item{margin:var(--spacing-sm);padding:var(--spacing-lg);width:26rem}@media (max-width: 500px){.grid-item{width:unset;padding:unset;max-width:100%}}.grid{padding-top:var(--spacing-md);display:grid;width:100%;grid-template-columns:repeat(auto-fill,26rem);grid-auto-rows:23rem;grid-gap:var(--spacing-lg);align-content:space-evenly;align-items:center;justify-content:center}.grid1{display:flex;justify-content:center;width:100%}@media (max-width: 640px){.grid{grid-template-columns:repeat(auto-fill,100vw);grid-auto-rows:95vw;grid-gap:var(--spacing-lg);justify-content:center}}[hidden]{opacity:0}ion-button{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}ion-card-subtitle{font-size:var(--font-size-medium)}body{scrollbar-width:thin;scrollbar-color:var(--ion-color-light) transparent}body::-webkit-scrollbar{width:11px}.pad-below{padding-bottom:var(--spacing-5xl)}ion-item.app-select{--padding-start: var(--spacing-lg) !important;--padding-end: 0;--background: transparent;--background-hover: transparent;--background-activated: transparent;--background-focused: transparent}.form ion-item{--background: transparent;--background-hover: transparent;--background-activated: transparent;--background-focused: transparent}ion-select.app-select::part(text),ion-select.app-select::part(placeholder){background-color:var(--input-background);padding:var(--spacing-md);padding-right:var(--spacing-2xl);border-radius:var(--spacing-md);margin-left:var(--spacing-xs);text-align:left;font-size:var(--font-size-medium);opacity:1}ion-select.app-select::part(placeholder){color:var(--ion-color-medium)}ion-select.app-select::part(container){border-radius:var(--br-lg);position:relative}ion-select.app-select::part(label){font-size:var(--font-size-medium);margin-left:var(--spacing-xs);margin-bottom:var(--spacing-lg);margin-top:0}ion-select.app-select::part(icon){background-color:transparent;color:var(--ion-color-dark);right:2rem;top:75%;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}ion-select.no-label::part(icon){top:65%}ion-select.app-select::part(icon){transition:transform .15s cubic-bezier(.4,0,.2,1)}ion-select.app-select.select-expanded::part(icon){transform:rotate(180deg) translateY(50%)}ion-select.app-select-small::part(icon){margin-left:auto;margin-right:var(--spacing-2xl)}ion-select.app-select-small::part(text),ion-select.app-select-small::part(placeholder){background-color:var(--input-background);padding:var(--spacing-base);border-radius:var(--spacing-base);text-align:left;opacity:1}ion-select.app-select-small::part(placeholder){color:var(--ion-color-medium)}.row-center{width:100%;text-align:center}.helper{padding-top:0;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);opacity:.5;font-size:var(--font-size-small);padding-bottom:var(--spacing-lg)}@media (prefers-color-scheme: dark){.helper{opacity:.25}}:root ion-alert{--background: var(--ion-color-light)}ion-modal.auto-height{--height: auto}ion-modal.auto-height .ion-page{position:relative;display:block;contain:content}ion-modal.auto-height .ion-page .inner-content{max-height:80vh;overflow:auto}.searchbar .searchbar-search-icon{padding-top:8px}.searchbar .searchbar-input{padding-left:35px!important}.searchbar .searchbar-clear-button{padding-top:15px}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #3880ff) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;--ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;--ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #5260ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd36f) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;--ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;--ion-color-tint: var(--ion-color-success-tint, #42d77d) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #eb445a) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;--ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #92949c) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #808289) !important;--ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #3880ff)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}.ion-hide,.ion-hide-up,.ion-hide-down{display:none!important}@media (min-width: 576px){.ion-hide-sm-up{display:none!important}}@media (max-width: 575.98px){.ion-hide-sm-down{display:none!important}}@media (min-width: 768px){.ion-hide-md-up{display:none!important}}@media (max-width: 767.98px){.ion-hide-md-down{display:none!important}}@media (min-width: 992px){.ion-hide-lg-up{display:none!important}}@media (max-width: 991.98px){.ion-hide-lg-down{display:none!important}}@media (min-width: 1200px){.ion-hide-xl-up{display:none!important}}@media (max-width: 1199.98px){.ion-hide-xl-down{display:none!important}}.ion-no-padding{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;padding:0}.ion-padding{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-no-margin{--margin-start: 0;--margin-end: 0;--margin-top: 0;--margin-bottom: 0;margin:0}.ion-margin{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-float-left{float:left!important}.ion-float-right{float:right!important}.ion-float-start{float:left!important}:host-context([dir=rtl]) .ion-float-start{float:right!important}[dir=rtl] .ion-float-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right!important}}.ion-float-end{float:right!important}:host-context([dir=rtl]) .ion-float-end{float:left!important}[dir=rtl] .ion-float-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left!important}}@media (min-width: 576px){.ion-float-sm-left{float:left!important}.ion-float-sm-right{float:right!important}.ion-float-sm-start{float:left!important}:host-context([dir=rtl]) .ion-float-sm-start{float:right!important}[dir=rtl] .ion-float-sm-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right!important}}.ion-float-sm-end{float:right!important}:host-context([dir=rtl]) .ion-float-sm-end{float:left!important}[dir=rtl] .ion-float-sm-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left!important}}}@media (min-width: 768px){.ion-float-md-left{float:left!important}.ion-float-md-right{float:right!important}.ion-float-md-start{float:left!important}:host-context([dir=rtl]) .ion-float-md-start{float:right!important}[dir=rtl] .ion-float-md-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right!important}}.ion-float-md-end{float:right!important}:host-context([dir=rtl]) .ion-float-md-end{float:left!important}[dir=rtl] .ion-float-md-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left!important}}}@media (min-width: 992px){.ion-float-lg-left{float:left!important}.ion-float-lg-right{float:right!important}.ion-float-lg-start{float:left!important}:host-context([dir=rtl]) .ion-float-lg-start{float:right!important}[dir=rtl] .ion-float-lg-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right!important}}.ion-float-lg-end{float:right!important}:host-context([dir=rtl]) .ion-float-lg-end{float:left!important}[dir=rtl] .ion-float-lg-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left!important}}}@media (min-width: 1200px){.ion-float-xl-left{float:left!important}.ion-float-xl-right{float:right!important}.ion-float-xl-start{float:left!important}:host-context([dir=rtl]) .ion-float-xl-start{float:right!important}[dir=rtl] .ion-float-xl-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right!important}}.ion-float-xl-end{float:right!important}:host-context([dir=rtl]) .ion-float-xl-end{float:left!important}[dir=rtl] .ion-float-xl-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left!important}}}.ion-text-center{text-align:center!important}.ion-text-justify{text-align:justify!important}.ion-text-start{text-align:start!important}.ion-text-end{text-align:end!important}.ion-text-left{text-align:left!important}.ion-text-right{text-align:right!important}.ion-text-nowrap{white-space:nowrap!important}.ion-text-wrap{white-space:normal!important}@media (min-width: 576px){.ion-text-sm-center{text-align:center!important}.ion-text-sm-justify{text-align:justify!important}.ion-text-sm-start{text-align:start!important}.ion-text-sm-end{text-align:end!important}.ion-text-sm-left{text-align:left!important}.ion-text-sm-right{text-align:right!important}.ion-text-sm-nowrap{white-space:nowrap!important}.ion-text-sm-wrap{white-space:normal!important}}@media (min-width: 768px){.ion-text-md-center{text-align:center!important}.ion-text-md-justify{text-align:justify!important}.ion-text-md-start{text-align:start!important}.ion-text-md-end{text-align:end!important}.ion-text-md-left{text-align:left!important}.ion-text-md-right{text-align:right!important}.ion-text-md-nowrap{white-space:nowrap!important}.ion-text-md-wrap{white-space:normal!important}}@media (min-width: 992px){.ion-text-lg-center{text-align:center!important}.ion-text-lg-justify{text-align:justify!important}.ion-text-lg-start{text-align:start!important}.ion-text-lg-end{text-align:end!important}.ion-text-lg-left{text-align:left!important}.ion-text-lg-right{text-align:right!important}.ion-text-lg-nowrap{white-space:nowrap!important}.ion-text-lg-wrap{white-space:normal!important}}@media (min-width: 1200px){.ion-text-xl-center{text-align:center!important}.ion-text-xl-justify{text-align:justify!important}.ion-text-xl-start{text-align:start!important}.ion-text-xl-end{text-align:end!important}.ion-text-xl-left{text-align:left!important}.ion-text-xl-right{text-align:right!important}.ion-text-xl-nowrap{white-space:nowrap!important}.ion-text-xl-wrap{white-space:normal!important}}.ion-text-uppercase{text-transform:uppercase!important}.ion-text-lowercase{text-transform:lowercase!important}.ion-text-capitalize{text-transform:capitalize!important}@media (min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase!important}.ion-text-sm-lowercase{text-transform:lowercase!important}.ion-text-sm-capitalize{text-transform:capitalize!important}}@media (min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase!important}.ion-text-md-lowercase{text-transform:lowercase!important}.ion-text-md-capitalize{text-transform:capitalize!important}}@media (min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase!important}.ion-text-lg-lowercase{text-transform:lowercase!important}.ion-text-lg-capitalize{text-transform:capitalize!important}}@media (min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase!important}.ion-text-xl-lowercase{text-transform:lowercase!important}.ion-text-xl-capitalize{text-transform:capitalize!important}}.ion-align-self-start{align-self:flex-start!important}.ion-align-self-end{align-self:flex-end!important}.ion-align-self-center{align-self:center!important}.ion-align-self-stretch{align-self:stretch!important}.ion-align-self-baseline{align-self:baseline!important}.ion-align-self-auto{align-self:auto!important}.ion-wrap{flex-wrap:wrap!important}.ion-nowrap{flex-wrap:nowrap!important}.ion-wrap-reverse{flex-wrap:wrap-reverse!important}.ion-justify-content-start{justify-content:flex-start!important}.ion-justify-content-center{justify-content:center!important}.ion-justify-content-end{justify-content:flex-end!important}.ion-justify-content-around{justify-content:space-around!important}.ion-justify-content-between{justify-content:space-between!important}.ion-justify-content-evenly{justify-content:space-evenly!important}.ion-align-items-start{align-items:flex-start!important}.ion-align-items-center{align-items:center!important}.ion-align-items-end{align-items:flex-end!important}.ion-align-items-stretch{align-items:stretch!important}.ion-align-items-baseline{align-items:baseline!important}@font-face{font-family:Gelion Regular;font-style:normal;font-weight:400;src:local("Gelion Regular"),url("./media/gelion-regular-DKYOSMZN.woff") format("woff")}@font-face{font-family:Grotesk Bold;font-style:normal;font-weight:400;src:local("Grotesk Bold"),url("./media/grotesk-bold-XXHRJ6Y6.woff") format("woff")}@font-face{font-family:Gelion Medium;font-style:normal;font-weight:400;src:local("Gelion Medium"),url("./media/gelion-medium-QORO7MMW.woff") format("woff")}@font-face{font-family:Gelion Semi Bold;font-style:normal;font-weight:400;src:local("Gelion Semi Bold"),url("./media/gelion-semibold-W7TW5QXD.woff") format("woff")}@font-face{font-family:Gelion Bold;font-style:normal;font-weight:400;src:local("Gelion Bold"),url("./media/gelion-bold-QP3I5GAI.woff") format("woff")}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local("Nunito"),url("./media/nunito-extrabold-JGFZXZX6.woff") format("woff")}h1{font-family:Gelion Bold;font-size:var(--font-size-3xl)}ion-card-header{padding-bottom:var(--spacing-base)}ion-card-title{font-size:var(--font-size-base);width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card-subtitle{width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h2,ion-card-title{font-family:Gelion Semi Bold;font-weight:400}ion-title{font-family:Grotesk Bold;font-weight:400}.ic-txt{margin-top:var(--spacing-base)}.clamp{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.clamp3{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}ion-badge{margin-right:var(--spacing-2xl)}label{font-family:Gelion Regular;font-size:var(--font-size-medium)}ion-select{font-family:Gelion Regular;font-size:var(--font-size-medium)}ion-datetime-button::part(native){font-family:Gelion Regular;font-size:var(--font-size-medium);background-color:var(--input-background)}ion-text,ion-card-content,ion-card-subtitle,ion-toggle,ion-note,ion-item,ion-segment-button,ion-back-button{font-family:Gelion Regular;font-size:var(--font-size-base)}ion-button{font-family:Gelion Medium}ion-card{border-radius:var(--br-lg)}.center{padding-top:var(--spacing-lg);display:flex;width:100%;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-base)}.vcenter{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.text{line-height:1.5;opacity:.5}.pad-top{padding-top:var(--spacing-5xl)}cdk-virtual-scroll-viewport{height:100%;width:100%}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.9)}to{transform:scale(1)}}@media screen and (max-width: 400px){ion-datetime-button::part(native){font-family:Gelion Regular;font-size:var(--font-size-base)}ion-card-content.form{padding-inline-start:0!important;padding-inline-end:0!important;padding-top:0!important;padding-bottom:0!important}ion-card.form{margin:0!important;border-radius:none!important;padding-bottom:var(--spacing-lg)}}@media screen and (min-width: 1024px){ion-card-title,ion-card-subtitle{width:60vw}ion-content.app-page{--padding-start: 10vw;--padding-end: 10vw;--overflow: hidden}ion-tab-bar{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}ion-icon{font-size:xx-large}ion-tab-button{font-size:large}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#888;border-radius:var(--br-xl)}::-webkit-scrollbar-thumb:hover{background:#555}}@media (min-width: 801px){.border{max-width:800px;margin-left:auto;margin-right:auto;padding:var(--spacing-xl);margin-top:var(--spacing-2xl)}.centered-content{display:flex;align-items:center;justify-content:center;height:calc(100% - 6rem)}.large-border{max-width:95vw;margin-left:auto;margin-right:auto;padding:var(--spacing-xl);margin-top:var(--spacing-2xl)}}.file-input{display:none}.disabled{opacity:.5}ion-item:last-child{--inner-border-width: 0}ion-textarea .helper-text{margin-top:calc(-1 * var(--spacing-md));padding-left:var(--spacing-lg);padding-bottom:var(--spacing-md)}ion-textarea .textarea-bottom.sc-ion-textarea-md,ion-textarea .textarea-bottom.sc-ion-textarea-ios{border-top:none}.hover-tooltip{background-color:var(--ion-color-dark, #222428);color:var(--ion-color-light, #f4f5f8);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--spacing-base);font-size:var(--font-size-xl);font-family:Gelion Regular;max-width:200px;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;box-shadow:0 2px 8px #00000026;z-index:9999;pointer-events:none;animation:fadeIn .2s ease-in-out;position:relative}.hover-tooltip:after{content:"";position:absolute;bottom:-8px;left:12px;width:0;height:0;border-left:8px solid transparent;border-right:0 solid transparent;border-top:8px solid var(--ion-color-dark, #222428)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}} diff --git a/.admin-app/styles-UPCZWQX3.css b/.admin-app/styles-UPCZWQX3.css deleted file mode 100644 index 4a443e6b..00000000 --- a/.admin-app/styles-UPCZWQX3.css +++ /dev/null @@ -1 +0,0 @@ -:root{--ion-font-family: "Gelion Regular";--footer-width: 82px;--input-background: rgba(0, 0, 0, .05);--font-size-display: 8rem;--font-size-4xl: 3rem;--font-size-3xl: 2.5rem;--font-size-large: 2.25rem;--font-size-2xl: 2rem;--font-size-medium: 1.5rem;--font-size-xl: 1.2rem;--font-size-base: 1.125rem;--font-size-small: .875rem;--spacing-xs: .2rem;--spacing-sm: .25rem;--spacing-base: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.25rem;--spacing-1xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--spacing-4xl: 4rem;--spacing-5xl: 5rem;--br-xs: 2px;--br-sm: 3px;--br-md: 4px;--br-lg: .5rem;--br-xl: 10px;--br-2xl: 15px;--br-3xl: 20px;--br-full: 100%;--ion-color-primary: #f61067;--ion-color-primary-rgb: 56, 128, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #aa134d;--ion-color-primary-tint: #aa134d;--ion-color-secondary: rgba(0, 0, 0, .05);--ion-color-secondary-rgb: 61, 194, 255;--ion-color-secondary-contrast: #333;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #36abe0;--ion-color-secondary-tint: #50c8ff;--ion-color-tertiary: #19c32a;--ion-color-tertiary-rgb: 106, 100, 255;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #16ab25;--ion-color-tertiary-tint: #1bd62e;--ion-color-success: #f61067;--ion-color-success-rgb: 45, 211, 111;--ion-color-success-contrast: #ffffff;--ion-color-success-contrast-rgb: 255, 255, 255;--ion-color-success-shade: #28ba62;--ion-color-success-tint: #42d77d;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #eb445a;--ion-color-danger-rgb: 235, 68, 90;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #cf3c4f;--ion-color-danger-tint: #ed576b;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #ffffff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e;--ion-color-medium: #92949c;--ion-color-medium-rgb: 146, 148, 156;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #808289;--ion-color-medium-tint: #9d9fa6;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9}@media (max-width: 640px){:root{--font-size-display: 4rem;--font-size-large: 1.75rem;--font-size-medium: 1.25rem;--font-size-base: 1.125rem}}@media (prefers-color-scheme: dark){ion-input,ion-select{border-bottom:1px solid var(--ion-color-light-tint)}body{--ion-color-primary: #f61067;--ion-color-primary-rgb: 66, 140, 255;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #aa134d;--ion-color-primary-tint: #aa134d;--ion-color-secondary: rgba(255, 255, 255, .05);--ion-color-secondary-rgb: 80, 200, 255;--ion-color-secondary-contrast: #ffffff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #46b0e0;--ion-color-secondary-tint: #62ceff;--ion-color-tertiary: #19c32a;--ion-color-tertiary-rgb: 106, 100, 255;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #16ab25;--ion-color-tertiary-tint: #1bd62e;--ion-color-success: #f61067;--ion-color-success-rgb: 47, 223, 117;--ion-color-success-contrast: #000000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #29c467;--ion-color-success-tint: #44e283;--ion-color-warning: #ffd534;--ion-color-warning-rgb: 255, 213, 52;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0bb2e;--ion-color-warning-tint: #ffd948;--ion-color-danger: #ff4961;--ion-color-danger-rgb: 255, 73, 97;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #e04055;--ion-color-danger-tint: #ff5b71;--ion-color-dark: #f4f5f8;--ion-color-dark-rgb: 244, 245, 248;--ion-color-dark-contrast: #000000;--ion-color-dark-contrast-rgb: 0, 0, 0;--ion-color-dark-shade: #d7d8da;--ion-color-dark-tint: #f5f6f9;--ion-color-medium: #989aa2;--ion-color-medium-rgb: 152, 154, 162;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #86888f;--ion-color-medium-tint: #a2a4ab;--ion-color-light: #222428;--ion-color-light-rgb: 34, 36, 40;--ion-color-light-contrast: #ffffff;--ion-color-light-contrast-rgb: 255, 255, 255;--ion-color-light-shade: #1e2023;--ion-color-light-tint: #383a3e}.ios body{--ion-background-color: #000000;--ion-background-color-rgb: 0, 0, 0;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-color-step-50: #0d0d0d;--ion-color-step-100: #1a1a1a;--ion-color-step-150: #262626;--ion-color-step-200: #333333;--ion-color-step-250: #404040;--ion-color-step-300: #4d4d4d;--ion-color-step-350: #595959;--ion-color-step-400: #666666;--ion-color-step-450: #737373;--ion-color-step-500: #808080;--ion-color-step-550: #8c8c8c;--ion-color-step-600: #999999;--ion-color-step-650: #a6a6a6;--ion-color-step-700: #b3b3b3;--ion-color-step-750: #bfbfbf;--ion-color-step-800: #cccccc;--ion-color-step-850: #d9d9d9;--ion-color-step-900: #e6e6e6;--ion-color-step-950: #f2f2f2;--ion-item-background: #000000;--ion-card-background: #1c1c1d}.md body{--ion-background-color: #121212;--ion-background-color-rgb: 18, 18, 18;--ion-text-color: #ffffff;--ion-text-color-rgb: 255, 255, 255;--ion-border-color: #222222;--ion-color-step-50: #1e1e1e;--ion-color-step-100: #2a2a2a;--ion-color-step-150: #363636;--ion-color-step-200: #414141;--ion-color-step-250: #4d4d4d;--ion-color-step-300: #595959;--ion-color-step-350: #656565;--ion-color-step-400: #717171;--ion-color-step-450: #7d7d7d;--ion-color-step-500: #898989;--ion-color-step-550: #949494;--ion-color-step-600: #a0a0a0;--ion-color-step-650: #acacac;--ion-color-step-700: #b8b8b8;--ion-color-step-750: #c4c4c4;--ion-color-step-800: #d0d0d0;--ion-color-step-850: #dbdbdb;--ion-color-step-900: #e7e7e7;--ion-color-step-950: #f3f3f3;--ion-item-background: #1e1e1e;--ion-toolbar-background: #1f1f1f;--ion-tab-bar-background: #1f1f1f;--ion-card-background: #1e1e1e}}@media (min-width: 801px){.page{max-width:800px;margin-left:auto;margin-right:auto;border:2px solid lightgray;border-radius:20px;padding:var(--spacing-xl);margin-top:10vh}}.pad-vertical{margin-top:22vh}label{font-size:var(--font-size-xl);margin:var(--spacing-base)}input,textarea{margin-top:var(--spacing-lg)!important;padding-top:var(--spacing-base)!important;background-color:#0003!important;padding-bottom:var(--spacing-base)!important;padding-left:var(--spacing-base)!important;border-radius:var(--spacing-base)}ion-checkbox{margin-left:var(--spacing-base);margin-right:var(--spacing-base)}input[type=color]{padding:0!important;border:none!important}.image-container{width:calc(100% - var(--spacing-3xl))!important;margin-left:var(--spacing-xl);min-height:200px;background-color:#0003;border-radius:var(--spacing-base);padding:var(--spacing-lg);cursor:pointer}@media (min-width: 640px){ion-card-title{font-size:var(--font-size-2xl)!important}}ion-input,ion-textarea{--placeholder-color: var(--ion-color-medium) !important}@media (prefers-color-scheme: dark){ion-datetime-button::part(native){background-color:#0000004d}}@media (prefers-color-scheme: light){ion-input{--placeholder-color: var(--ion-color-medium) !important}.image-container{background-color:#0000000d}input,textarea{background-color:var(--input-background)!important}}ion-card:hover{opacity:.9}.clickable{cursor:pointer}.grid-item{margin:var(--spacing-sm);padding:var(--spacing-lg);width:26rem}@media (max-width: 500px){.grid-item{width:unset;padding:unset;max-width:100%}}.grid{padding-top:var(--spacing-md);display:grid;width:100%;grid-template-columns:repeat(auto-fill,26rem);grid-auto-rows:23rem;grid-gap:var(--spacing-lg);align-content:space-evenly;align-items:center;justify-content:center}.grid1{display:flex;justify-content:center;width:100%}@media (max-width: 640px){.grid{grid-template-columns:repeat(auto-fill,100vw);grid-auto-rows:95vw;grid-gap:var(--spacing-lg);justify-content:center}}[hidden]{opacity:0}ion-button{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}ion-card-subtitle{font-size:var(--font-size-medium)}body{scrollbar-width:thin;scrollbar-color:var(--ion-color-light) transparent}body::-webkit-scrollbar{width:11px}.pad-below{padding-bottom:var(--spacing-5xl)}ion-item.app-select{--padding-start: var(--spacing-lg) !important;--padding-end: 0;--background: transparent;--background-hover: transparent;--background-activated: transparent;--background-focused: transparent}.form ion-item{--background: transparent;--background-hover: transparent;--background-activated: transparent;--background-focused: transparent}ion-select.app-select::part(text),ion-select.app-select::part(placeholder){background-color:var(--input-background);padding:var(--spacing-md);padding-right:var(--spacing-2xl);border-radius:var(--spacing-md);margin-left:var(--spacing-xs);text-align:left;font-size:var(--font-size-medium);opacity:1}ion-select.app-select::part(placeholder){color:var(--ion-color-medium)}ion-select.app-select::part(container){border-radius:var(--br-lg);position:relative}ion-select.app-select::part(label){font-size:var(--font-size-medium);margin-left:var(--spacing-xs);margin-bottom:var(--spacing-lg);margin-top:0}ion-select.app-select::part(icon){background-color:transparent;color:var(--ion-color-dark);right:2rem;top:75%;transform:translateY(-50%);display:inline-flex;align-items:center;pointer-events:none}ion-select.no-label::part(icon){top:65%}ion-select.app-select::part(icon){transition:transform .15s cubic-bezier(.4,0,.2,1)}ion-select.app-select.select-expanded::part(icon){transform:rotate(180deg) translateY(50%)}ion-select.app-select-small::part(icon){margin-left:auto;margin-right:var(--spacing-2xl)}ion-select.app-select-small::part(text),ion-select.app-select-small::part(placeholder){background-color:var(--input-background);padding:var(--spacing-base);border-radius:var(--spacing-base);text-align:left;opacity:1}ion-select.app-select-small::part(placeholder){color:var(--ion-color-medium)}.row-center{width:100%;text-align:center}.helper{padding-top:0;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);opacity:.5;font-size:var(--font-size-small);padding-bottom:var(--spacing-lg)}@media (prefers-color-scheme: dark){.helper{opacity:.25}}:root ion-alert{--background: var(--ion-color-light)}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-default-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #3880ff) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 56, 128, 255) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #3171e0) !important;--ion-color-tint: var(--ion-color-primary-tint, #4c8dff) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #3dc2ff) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 61, 194, 255) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #36abe0) !important;--ion-color-tint: var(--ion-color-secondary-tint, #50c8ff) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #5260ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 82, 96, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #4854e0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #6370ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd36f) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 211, 111) !important;--ion-color-contrast: var(--ion-color-success-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-success-shade, #28ba62) !important;--ion-color-tint: var(--ion-color-success-tint, #42d77d) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #eb445a) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 235, 68, 90) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #cf3c4f) !important;--ion-color-tint: var(--ion-color-danger-tint, #ed576b) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #92949c) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 146, 148, 156) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #808289) !important;--ion-color-tint: var(--ion-color-medium-tint, #9d9fa6) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media (prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #3880ff)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}.ion-hide,.ion-hide-up,.ion-hide-down{display:none!important}@media (min-width: 576px){.ion-hide-sm-up{display:none!important}}@media (max-width: 575.98px){.ion-hide-sm-down{display:none!important}}@media (min-width: 768px){.ion-hide-md-up{display:none!important}}@media (max-width: 767.98px){.ion-hide-md-down{display:none!important}}@media (min-width: 992px){.ion-hide-lg-up{display:none!important}}@media (max-width: 991.98px){.ion-hide-lg-down{display:none!important}}@media (min-width: 1200px){.ion-hide-xl-up{display:none!important}}@media (max-width: 1199.98px){.ion-hide-xl-down{display:none!important}}.ion-no-padding{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;padding:0}.ion-padding{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:var(--ion-padding, 16px);padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);-webkit-padding-start:var(--ion-padding, 16px);padding-inline-start:var(--ion-padding, 16px);-webkit-padding-end:var(--ion-padding, 16px);padding-inline-end:var(--ion-padding, 16px)}.ion-no-margin{--margin-start: 0;--margin-end: 0;--margin-top: 0;--margin-bottom: 0;margin:0}.ion-margin{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:var(--ion-margin, 16px);margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);-webkit-margin-start:var(--ion-margin, 16px);margin-inline-start:var(--ion-margin, 16px);-webkit-margin-end:var(--ion-margin, 16px);margin-inline-end:var(--ion-margin, 16px)}.ion-float-left{float:left!important}.ion-float-right{float:right!important}.ion-float-start{float:left!important}:host-context([dir=rtl]) .ion-float-start{float:right!important}[dir=rtl] .ion-float-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right!important}}.ion-float-end{float:right!important}:host-context([dir=rtl]) .ion-float-end{float:left!important}[dir=rtl] .ion-float-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left!important}}@media (min-width: 576px){.ion-float-sm-left{float:left!important}.ion-float-sm-right{float:right!important}.ion-float-sm-start{float:left!important}:host-context([dir=rtl]) .ion-float-sm-start{float:right!important}[dir=rtl] .ion-float-sm-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right!important}}.ion-float-sm-end{float:right!important}:host-context([dir=rtl]) .ion-float-sm-end{float:left!important}[dir=rtl] .ion-float-sm-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left!important}}}@media (min-width: 768px){.ion-float-md-left{float:left!important}.ion-float-md-right{float:right!important}.ion-float-md-start{float:left!important}:host-context([dir=rtl]) .ion-float-md-start{float:right!important}[dir=rtl] .ion-float-md-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right!important}}.ion-float-md-end{float:right!important}:host-context([dir=rtl]) .ion-float-md-end{float:left!important}[dir=rtl] .ion-float-md-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left!important}}}@media (min-width: 992px){.ion-float-lg-left{float:left!important}.ion-float-lg-right{float:right!important}.ion-float-lg-start{float:left!important}:host-context([dir=rtl]) .ion-float-lg-start{float:right!important}[dir=rtl] .ion-float-lg-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right!important}}.ion-float-lg-end{float:right!important}:host-context([dir=rtl]) .ion-float-lg-end{float:left!important}[dir=rtl] .ion-float-lg-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left!important}}}@media (min-width: 1200px){.ion-float-xl-left{float:left!important}.ion-float-xl-right{float:right!important}.ion-float-xl-start{float:left!important}:host-context([dir=rtl]) .ion-float-xl-start{float:right!important}[dir=rtl] .ion-float-xl-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right!important}}.ion-float-xl-end{float:right!important}:host-context([dir=rtl]) .ion-float-xl-end{float:left!important}[dir=rtl] .ion-float-xl-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left!important}}}.ion-text-center{text-align:center!important}.ion-text-justify{text-align:justify!important}.ion-text-start{text-align:start!important}.ion-text-end{text-align:end!important}.ion-text-left{text-align:left!important}.ion-text-right{text-align:right!important}.ion-text-nowrap{white-space:nowrap!important}.ion-text-wrap{white-space:normal!important}@media (min-width: 576px){.ion-text-sm-center{text-align:center!important}.ion-text-sm-justify{text-align:justify!important}.ion-text-sm-start{text-align:start!important}.ion-text-sm-end{text-align:end!important}.ion-text-sm-left{text-align:left!important}.ion-text-sm-right{text-align:right!important}.ion-text-sm-nowrap{white-space:nowrap!important}.ion-text-sm-wrap{white-space:normal!important}}@media (min-width: 768px){.ion-text-md-center{text-align:center!important}.ion-text-md-justify{text-align:justify!important}.ion-text-md-start{text-align:start!important}.ion-text-md-end{text-align:end!important}.ion-text-md-left{text-align:left!important}.ion-text-md-right{text-align:right!important}.ion-text-md-nowrap{white-space:nowrap!important}.ion-text-md-wrap{white-space:normal!important}}@media (min-width: 992px){.ion-text-lg-center{text-align:center!important}.ion-text-lg-justify{text-align:justify!important}.ion-text-lg-start{text-align:start!important}.ion-text-lg-end{text-align:end!important}.ion-text-lg-left{text-align:left!important}.ion-text-lg-right{text-align:right!important}.ion-text-lg-nowrap{white-space:nowrap!important}.ion-text-lg-wrap{white-space:normal!important}}@media (min-width: 1200px){.ion-text-xl-center{text-align:center!important}.ion-text-xl-justify{text-align:justify!important}.ion-text-xl-start{text-align:start!important}.ion-text-xl-end{text-align:end!important}.ion-text-xl-left{text-align:left!important}.ion-text-xl-right{text-align:right!important}.ion-text-xl-nowrap{white-space:nowrap!important}.ion-text-xl-wrap{white-space:normal!important}}.ion-text-uppercase{text-transform:uppercase!important}.ion-text-lowercase{text-transform:lowercase!important}.ion-text-capitalize{text-transform:capitalize!important}@media (min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase!important}.ion-text-sm-lowercase{text-transform:lowercase!important}.ion-text-sm-capitalize{text-transform:capitalize!important}}@media (min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase!important}.ion-text-md-lowercase{text-transform:lowercase!important}.ion-text-md-capitalize{text-transform:capitalize!important}}@media (min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase!important}.ion-text-lg-lowercase{text-transform:lowercase!important}.ion-text-lg-capitalize{text-transform:capitalize!important}}@media (min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase!important}.ion-text-xl-lowercase{text-transform:lowercase!important}.ion-text-xl-capitalize{text-transform:capitalize!important}}.ion-align-self-start{align-self:flex-start!important}.ion-align-self-end{align-self:flex-end!important}.ion-align-self-center{align-self:center!important}.ion-align-self-stretch{align-self:stretch!important}.ion-align-self-baseline{align-self:baseline!important}.ion-align-self-auto{align-self:auto!important}.ion-wrap{flex-wrap:wrap!important}.ion-nowrap{flex-wrap:nowrap!important}.ion-wrap-reverse{flex-wrap:wrap-reverse!important}.ion-justify-content-start{justify-content:flex-start!important}.ion-justify-content-center{justify-content:center!important}.ion-justify-content-end{justify-content:flex-end!important}.ion-justify-content-around{justify-content:space-around!important}.ion-justify-content-between{justify-content:space-between!important}.ion-justify-content-evenly{justify-content:space-evenly!important}.ion-align-items-start{align-items:flex-start!important}.ion-align-items-center{align-items:center!important}.ion-align-items-end{align-items:flex-end!important}.ion-align-items-stretch{align-items:stretch!important}.ion-align-items-baseline{align-items:baseline!important}@font-face{font-family:Gelion Regular;font-style:normal;font-weight:400;src:local("Gelion Regular"),url("./media/gelion-regular-DKYOSMZN.woff") format("woff")}@font-face{font-family:Grotesk Bold;font-style:normal;font-weight:400;src:local("Grotesk Bold"),url("./media/grotesk-bold-XXHRJ6Y6.woff") format("woff")}@font-face{font-family:Gelion Medium;font-style:normal;font-weight:400;src:local("Gelion Medium"),url("./media/gelion-medium-QORO7MMW.woff") format("woff")}@font-face{font-family:Gelion Semi Bold;font-style:normal;font-weight:400;src:local("Gelion Semi Bold"),url("./media/gelion-semibold-W7TW5QXD.woff") format("woff")}@font-face{font-family:Gelion Bold;font-style:normal;font-weight:400;src:local("Gelion Bold"),url("./media/gelion-bold-QP3I5GAI.woff") format("woff")}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local("Nunito"),url("./media/nunito-extrabold-JGFZXZX6.woff") format("woff")}h1{font-family:Gelion Bold;font-size:var(--font-size-3xl)}ion-card-header{padding-bottom:var(--spacing-base)}ion-card-title{font-size:var(--font-size-base);width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-card-subtitle{width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h2,ion-card-title{font-family:Gelion Semi Bold;font-weight:400}ion-title{font-family:Grotesk Bold;font-weight:400}.ic-txt{margin-top:var(--spacing-base)}.clamp{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.clamp3{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical}ion-badge{margin-right:var(--spacing-2xl)}label{font-family:Gelion Regular;font-size:var(--font-size-medium)}ion-select{font-family:Gelion Regular;font-size:var(--font-size-medium)}ion-datetime-button::part(native){font-family:Gelion Regular;font-size:var(--font-size-medium);background-color:var(--input-background)}ion-text,ion-card-content,ion-card-subtitle,ion-toggle,ion-note,ion-item,ion-segment-button,ion-back-button{font-family:Gelion Regular;font-size:var(--font-size-base)}ion-button{font-family:Gelion Medium}ion-card{border-radius:var(--br-lg)}.center{padding-top:var(--spacing-lg);display:flex;width:100%;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-base)}.vcenter{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.text{line-height:1.5;opacity:.5}.pad-top{padding-top:var(--spacing-5xl)}cdk-virtual-scroll-viewport{height:100%;width:100%}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.9)}to{transform:scale(1)}}@media screen and (max-width: 400px){ion-datetime-button::part(native){font-family:Gelion Regular;font-size:var(--font-size-base)}ion-card-content.form{padding-inline-start:0!important;padding-inline-end:0!important;padding-top:0!important;padding-bottom:0!important}ion-card.form{margin:0!important;border-radius:none!important;padding-bottom:var(--spacing-lg)}}@media screen and (min-width: 1024px){ion-card-title,ion-card-subtitle{width:60vw}ion-content.app-page{--padding-start: 10vw;--padding-end: 10vw;--overflow: hidden}ion-tab-bar{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}ion-icon{font-size:xx-large}ion-tab-button{font-size:large}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#888;border-radius:var(--br-xl)}::-webkit-scrollbar-thumb:hover{background:#555}}@media (min-width: 801px){.border{max-width:800px;margin-left:auto;margin-right:auto;padding:var(--spacing-xl);margin-top:var(--spacing-2xl)}.centered-content{display:flex;align-items:center;justify-content:center;height:calc(100% - 6rem)}.large-border{max-width:95vw;margin-left:auto;margin-right:auto;padding:var(--spacing-xl);margin-top:var(--spacing-2xl)}}.file-input{display:none}.disabled{opacity:.5}ion-item:last-child{--inner-border-width: 0}ion-textarea .helper-text{margin-top:calc(-1 * var(--spacing-md));padding-left:var(--spacing-lg);padding-bottom:var(--spacing-md)}ion-textarea .textarea-bottom.sc-ion-textarea-md,ion-textarea .textarea-bottom.sc-ion-textarea-ios{border-top:none}.hover-tooltip{background-color:var(--ion-color-dark, #222428);color:var(--ion-color-light, #f4f5f8);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--spacing-base);font-size:var(--font-size-xl);font-family:Gelion Regular;max-width:200px;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;box-shadow:0 2px 8px #00000026;z-index:9999;pointer-events:none;animation:fadeIn .2s ease-in-out;position:relative}.hover-tooltip:after{content:"";position:absolute;bottom:-8px;left:12px;width:0;height:0;border-left:8px solid transparent;border-right:0 solid transparent;border-top:8px solid var(--ion-color-dark, #222428)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}} diff --git a/android/app/build.gradle b/android/app/build.gradle index 67b7be6c..6ef869e2 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "nexus.concepts.dust" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 168 - versionName "2.117" + versionCode 169 + versionName "2.118" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index 5e97ea35..f8b1af04 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -363,13 +363,13 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 168; + CURRENT_PROJECT_VERSION = 169; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = DCC5P9FAQ3; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 2.117; + MARKETING_VERSION = 2.118; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = nexus.concepts.dust; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -390,13 +390,13 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 168; + CURRENT_PROJECT_VERSION = 169; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = DCC5P9FAQ3; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 2.117; + MARKETING_VERSION = 2.118; PRODUCT_BUNDLE_IDENTIFIER = nexus.concepts.dust; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/src/app/tab-bar/tab-bar.component.scss b/src/app/tab-bar/tab-bar.component.scss index b614b1a6..0cdfa307 100644 --- a/src/app/tab-bar/tab-bar.component.scss +++ b/src/app/tab-bar/tab-bar.component.scss @@ -10,16 +10,20 @@ position: relative; transform: translateY(50px); opacity: 0; + visibility: hidden; transition: transform 200ms ease-in, - opacity 200ms ease-in; + opacity 200ms ease-in, + visibility 0ms linear 200ms; &.open { transform: translateY(0); opacity: 1; + visibility: visible; transition: transform 200ms ease-out, - opacity 200ms ease-out; + opacity 200ms ease-out, + visibility 0ms linear 0ms; } } diff --git a/src/app/tabs/tabs.page.html b/src/app/tabs/tabs.page.html index c220538f..275819a4 100644 --- a/src/app/tabs/tabs.page.html +++ b/src/app/tabs/tabs.page.html @@ -1,5 +1,5 @@ @if (ready) { - + } diff --git a/src/app/tabs/tabs.page.ts b/src/app/tabs/tabs.page.ts index bbec2424..4b5bd425 100644 --- a/src/app/tabs/tabs.page.ts +++ b/src/app/tabs/tabs.page.ts @@ -42,6 +42,7 @@ export class TabsPage implements OnInit { private geo = inject(GeoService); public hasEvents = computed(() => this.db.eventCount() > 0); opened = signal(false); + keyboardOpen = signal(false); public tabData = computed(() => { const tabs: Tab[] = [{ id: 'profile', iconSrc: 'assets/icon/home.svg', label: 'Home' }]; if (this.hasEvents()) { @@ -132,6 +133,14 @@ export class TabsPage implements OnInit { } }); + Keyboard.addListener('keyboardDidShow', () => { + this.keyboardOpen.set(true); + }); + + Keyboard.addListener('keyboardDidHide', () => { + this.keyboardOpen.set(false); + }); + await Network.addListener('networkStatusChange', (status) => { this.db.networkStatus.set(status.connectionType); });