@joystick.js/ui-canary 0.0.0-canary.256 → 0.0.0-canary.258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -18,4 +18,4 @@ var Lt=(t="",e=[])=>{console.error(`${t} failed with the following errors:`);for
18
18
  @media screen and (max-height: ${p}px) {
19
19
  ${typeof l=="function"?l(e):l}
20
20
  }
21
- `}}return r}return""},Ue=Kr;var Jr=(t,e)=>(e||"").replace(M.CSS_COMMENT_REGEX,()=>"").replace(M.CSS_SELECTOR_REGEX,r=>["@",": "].some(n=>r?.includes(n))?r:`[js-c="${t}"] ${r.trim()}`).replace(/@wrapper/g,`[js-c="${t}"]`)?.trim(),Yr=(t=[],e=[],r=!1)=>{for(let n=0;n<t?.length;n+=1){let o=t[n];if(o?.css){let i=o?.id,c=o.options.css,a=Ue(c,o),d=r?null:Jr(i,a);r?e.push(a):e.push(d)}}return e},Fe=Yr;var Xr=(t={})=>Object.entries(t).map(([e,r])=>{let[n,...o]=e.split(" ");return{type:n.toLowerCase(),selector:o.join(" "),handler:r}}),He=Xr;var Wr=(t=[])=>t?.flatMap(e=>He(e?.events)?.flatMap(n=>({instance:e,...n}))),Ve=Wr;var Qr=(t="")=>window?.joystick?._internal?.tree?.find(e=>e?.instance_id===t),D=Qr;var b=(t="")=>{let e=D(t),r=x(e?.children),n=B(r);return[e,...n||[]]},Ke=(t=null,e=null)=>{let n=(t&&!e?b(t):e||[])?.flatMap(o=>o?.timers?Object.values(o?.timers):[]);for(let o=0;o<n?.length;o+=1){let i=n[o];clearTimeout(i),clearInterval(i)}},Je=()=>{let t=window.__joystick_hmr_previous_websockets__;for(let e=0;e<t?.length;e+=1){let r=t[e];r?.client?.close&&s.is_function(r?.client?.close)&&r.client.close(1e3)}},en={attach_event_listeners:({root_instance_id:t})=>{let e=window?.joystick?._internal?.tree,r=Ve(e);for(let n=0;n<r?.length;n+=1){let o=r[n],i=document.querySelectorAll(`[js-i="${o?.instance?.instance_id}"] ${o?.selector}`),c=o?.instance?.compile_render_methods();for(let a=0;a<i?.length;a+=1){let d=i[a];De(o,d,c)}}return r},clear_timers:({root_instance_id:t=null})=>{Ke(t)},clear_websockets:({root_instance_id:t=null})=>{Je()},css:({is_mount:t=!1,is_email:e=!1,ssr_tree:r=null})=>{let n=typeof window<"u"?document.head.querySelector("style[js-css]"):null,o=Fe(r||window.joystick?._internal?.tree,[],e),i=t?o?.reverse().join("").trim():o?.join("").trim();if(!(typeof window<"u"&&n?.innerText===i)){if(typeof window<"u"&&n&&(n.innerHTML=i),typeof window<"u"&&!n){let c=document.createElement("style");c.setAttribute("js-styles",""),c.innerHTML=i,document.head.appendChild(c)}return i}},detach_event_listeners:({root_instance_id:t})=>{let r=window?.joystick?._internal?.tree?.filter(n=>!!n?._event_listeners).flatMap(n=>n?._event_listeners);for(let n=0;n<r?.length;n+=1){let o=r[n];o.element.removeEventListener(o?.type,o?.handler)}},"lifecycle.onBeforeMount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeMount)||s.is_function(n?.lifecycle?.on_before_mount))&&((n.lifecycle.onBeforeMount||n.lifecycle.on_before_mount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_mount`,[n]))}},"lifecycle.onMount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onMount)||s.is_function(n?.lifecycle?.on_mount))&&((n.lifecycle.onMount||n.lifecycle.on_mount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_mount`,[n]))}},"lifecycle.onBeforeRender":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeRender)||s.is_function(n?.lifecycle?.on_before_render))&&((n.lifecycle.onBeforeRender||n.lifecycle.on_before_render)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_render`,[n]))}},"lifecycle.onRender":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onRender)||s.is_function(n?.lifecycle?.on_render))&&((n.lifecycle.onRender||n.lifecycle.on_render)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_render`,[n]))}},"lifecycle.onUpdateProps":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onUpdateProps)||s.is_function(n?.lifecycle?.on_update_props))&&((n.lifecycle.onUpdateProps||n.lifecycle.on_update_props)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_update_props`,[n]))}},"lifecycle.onRefetchData":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onRefetchData)||s.is_function(n?.lifecycle?.on_refetch_data))&&((n.lifecycle.onRefetchData||n.lifecycle.on_refetch_data)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_refetch_data`,[n]))}},"lifecycle.onBeforeUnmount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeUnmount)||s.is_function(n?.lifecycle?.on_before_unmount))&&((n.lifecycle.onBeforeUnmount||n.lifecycle.on_before_unmount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_unmount`,[n]))}},reset_tree_for_hmr:()=>{Ke(null,window.__joystick_hmr_previous_tree__),Je(),window.__joystick_hmr_previous_tree__=[],window.__joystick_hmr_previous_websockets__=[]}},Ye=en;var tn=(t="",e={})=>{let r=Ye[t];if(typeof r=="function")return r(e)},g=tn;var Xe=(t={},e={},r={})=>({...t,refetch:async(n={})=>{u(`ui.${r?.options?.test?.name||m()}.data.refetch`,[n]);let o=await Be(O,e,n,r);return r.data=Xe(o,e,r),window.__joystick_data__[r?.id]&&(window.__joystick_data__[r?.id]=o),window?.__joystick_test__||r.rerender({after_refetch_data_rerender:()=>{g("lifecycle.onRefetchData",{root_instance_id:r?.instance_id})}}),r.data}}),We=Xe;var rn=(t={})=>{if(typeof window<"u"){let e=window.__joystick_data__&&window.__joystick_data__[t?.id]||{},r=window.__joystick_request__||{};return We(e,r,t)}return t?.data||{}},Qe=rn;var et=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,nn=(t,e="")=>{if(!e)return!0;if(e&&!s.is_string(e))return!1;let r=e?e.replace(/[- ]+/g,""):"";return t===!0?r.match(new RegExp(et)):!r.match(new RegExp(et))},ee=nn;var on=(t="",e="")=>t(e),tt=on;var rt=/^((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))$/,sn=(t,e="")=>t===!0?!!e.match(rt):!e.match(rt),nt=sn;var dn=(t,e="")=>t===e,ot=dn;var cn=(t,e="")=>t===e,it=cn;var an=(t,e="")=>e.length<=t,te=an;var ln=(t,e="")=>e.length>=t,re=ln;var st=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,_n=(t,e="")=>t===!0?!!e.match(st):!e.match(st),dt=_n;var ct={AF:/^\d{4}$/,AX:/^\d{5}$/,AL:/^\d{4}$/,DZ:/^\d{5}$/,AS:/^\d{5}(-{1}\d{4,6})$/,AD:/^[Aa][Dd]\d{3}$/,AI:/^[Aa][I][-][2][6][4][0]$/,AR:/^\d{4}|[A-Za-z]\d{4}[a-zA-Z]{3}$/,AM:/^\d{4}$/,AC:/^[Aa][Ss][Cc][Nn]\s{0,1}[1][Zz][Zz]$/,AU:/^\d{4}$/,AT:/^\d{4}$/,AZ:/^[Aa][Zz]\d{4}$/,BH:/^\d{3,4}$/,BD:/^\d{4}$/,BB:/^[Aa][Zz]\d{5}$/,BY:/^\d{6}$/,BE:/^\d{4}$/,BM:/^[A-Za-z]{2}\s([A-Za-z]{2}|\d{2})$/,BT:/^\d{5}$/,BO:/^\d{4}$/,BA:/^\d{5}$/,BR:/^\d{5}-\d{3}$/,"":/^[Bb][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,IO:/^[Bb]{2}[Nn][Dd]\s{0,1}[1][Zz]{2}$/,VG:/^[Vv][Gg]\d{4}$/,BN:/^[A-Za-z]{2}\d{4}$/,BG:/^\d{4}$/,KH:/^\d{5}$/,CA:/^(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\d(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\s{0,1}\d(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\d$/,CV:/^\d{4}$/,KY:/^[Kk][Yy]\d[-\s]{0,1}\d{4}$/,TD:/^\d{5}$/,CL:/^\d{7}\s\(\d{3}-\d{4}\)$/,CN:/^\d{6}$/,CX:/^\d{4}$/,CC:/^\d{4}$/,CO:/^\d{6}$/,CD:/^[Cc][Dd]$/,CR:/^\d{4,5}$/,HR:/^\d{5}$/,CU:/^\d{5}$/,CY:/^\d{4}$/,CZ:/^\d{5}\s\(\d{3}\s\d{2}\)$/,DK:/^\d{4}$/,DO:/^\d{5}$/,EC:/^\d{6}$/,SV:/^1101$/,EG:/^\d{5}$/,EE:/^\d{5}$/,ET:/^\d{4}$/,FK:/^[Ff][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,FO:/^\d{3}$/,FI:/^\d{5}$/,FR:/^\d{5}$/,GF:/^973\d{2}$/,PF:/^987\d{2}$/,GA:/^\d{2}\s[a-zA-Z-_ ]\s\d{2}$/,GE:/^\d{4}$/,DE:/^\d{2}$/,GI:/^[Gg][Xx][1]{2}\s{0,1}[1][Aa]{2}$/,GR:/^\d{3}\s{0,1}\d{2}$/,GL:/^\d{4}$/,GP:/^971\d{2}$/,GU:/^\d{5}$/,GT:/^\d{5}$/,GG:/^[A-Za-z]{2}\d\s{0,1}\d[A-Za-z]{2}$/,GW:/^\d{4}$/,HT:/^\d{4}$/,HM:/^\d{4}$/,HN:/^\d{5}$/,HU:/^\d{4}$/,IS:/^\d{3}$/,IN:/^\d{6}$/,ID:/^\d{5}$/,IR:/^\d{5}-\d{5}$/,IQ:/^\d{5}$/,IM:/^[Ii[Mm]\d{1,2}\s\d\[A-Z]{2}$/,IL:/^\b\d{5}(\d{2})?$/,IT:/^\d{5}$/,JM:/^\d{2}$/,JP:/^\d{7}\s\(\d{3}-\d{4}\)$/,JE:/^[Jj][Ee]\d\s{0,1}\d[A-Za-z]{2}$/,JO:/^\d{5}$/,KZ:/^\d{6}$/,KE:/^\d{5}$/,KR:/^\d{6}\s\(\d{3}-\d{3}\)$/,XK:/^\d{5}$/,KW:/^\d{5}$/,KG:/^\d{6}$/,LV:/^[Ll][Vv][- ]{0,1}\d{4}$/,LA:/^\d{5}$/,LB:/^\d{4}\s{0,1}\d{4}$/,LS:/^\d{3}$/,LR:/^\d{4}$/,LY:/^\d{5}$/,LI:/^\d{4}$/,LT:/^[Ll][Tt][- ]{0,1}\d{5}$/,LU:/^\d{4}$/,MK:/^\d{4}$/,MG:/^\d{3}$/,MV:/^\d{4,5}$/,MY:/^\d{5}$/,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MH:/^\d{5}$/,MQ:/^972\d{2}$/,YT:/^976\d{2}$/,FM:/^\d{5}(-{1}\d{4})$/,MX:/^\d{5}$/,MD:/^[Mm][Dd][- ]{0,1}\d{4}$/,MC:/^980\d{2}$/,MN:/^\d{5}$/,ME:/^\d{5}$/,MS:/^[Mm][Ss][Rr]\s{0,1}\d{4}$/,MA:/^\d{5}$/,MZ:/^\d{4}$/,MM:/^\d{5}$/,NA:/^\d{5}$/,NP:/^\d{5}$/,NL:/^\d{4}\s{0,1}[A-Za-z]{2}$/,NC:/^988\d{2}$/,NZ:/^\d{4}$/,NI:/^\d{5}$/,NE:/^\d{4}$/,NG:/^\d{6}$/,NF:/^\d{4}$/,MP:/^\d{5}$/,NO:/^\d{4}$/,OM:/^\d{3}$/,PK:/^\d{5}$/,PW:/^\d{5}$/,PA:/^\d{6}$/,PG:/^\d{3}$/,PY:/^\d{4}$/,PE:/^\d{5}$/,PH:/^\d{4}$/,PN:/^[Pp][Cc][Rr][Nn]\s{0,1}[1][Zz]{2}$/,PL:/^\d{2}[- ]{0,1}\d{3}$/,PT:/^\d{4}$/,PR:/^\d{5}$/,RE:/^974\d{2}$/,RO:/^\d{6}$/,RU:/^\d{6}$/,BL:/^97133$/,SH:/^[Ss][Tt][Hh][Ll]\s{0,1}[1][Zz]{2}$/,MF:/^97150$/,PM:/^97500$/,VC:/^[Vv][Cc]\d{4}$/,SM:/^4789\d$/,SA:/^\d{5}(-{1}\d{4})?$/,SN:/^\d{5}$/,RS:/^\d{5}$/,SG:/^\d{2}$/,SK:/^\d{5}\s\(\d{3}\s\d{2}\)$/,SI:/^([Ss][Ii][- ]{0,1}){0,1}\d{4}$/,ZA:/^\d{4}$/,GS:/^[Ss][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,ES:/^\d{5}$/,LK:/^\d{5}$/,SD:/^\d{5}$/,SZ:/^[A-Za-z]\d{3}$/,SE:/^\d{3}\s*\d{2}$/,CH:/^\d{4}$/,SJ:/^\d{4}$/,TW:/^\d{5}$/,TJ:/^\d{6}$/,TH:/^\d{5}$/,TT:/^\d{6}$/,TN:/^\d{4}$/,TR:/^\d{5}$/,TM:/^\d{6}$/,TC:/^[Tt][Kk][Cc][Aa]\s{0,1}[1][Zz]{2}$/,UA:/^\d{5}$/,GB:/^[A-Z]{1,2}[0-9R][0-9A-Z]?\s*[0-9][A-Z-[CIKMOV]]{2}/,US:/^\b\d{5}\b(?:[- ]{1}\d{4})?$/,UY:/^\d{5}$/,VI:/^\d{5}$/,UZ:/^\d{3} \d{3}$/,VA:/^120$/,VE:/^\d{4}(\s[a-zA-Z]{1})?$/,VN:/^\d{6}$/,WF:/^986\d{2}$/,ZM:/^\d{5}$/},fn=(t,e="")=>{let r=s.is_object(t)&&t.iso?ct[t.iso||"US"]:ct.US;return s.is_object(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)},ne=fn;var un=(t="",e="")=>(e?.match(t)||[])?.length>0,at=un;var mn=(t,e="",r={isChecked:!1})=>{if(!r.isChecked)return t===!0?e&&e.trim()!=="":e&&e.trim()==="";if(r.isChecked)return t===!0?e:!e},lt=mn;var _t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,hn=(t,e="")=>t===!0?!!e.match(_t):!e.match(_t),oe=hn;var ft=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,pn=(t,e="")=>t===!0?!!e.match(ft):!e.match(ft),ut=pn;var mt=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,wn=(t,e="")=>t===!0?!!e.match(mt):!e.match(mt),ie=wn;var ht=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,gn=(t,e="")=>t===!0?!!e.match(ht):!e.match(ht),pt=gn;var wt={AT:/^(AT)(U\d{8}$)/i,BE:/^(BE)(\d{10}$)/i,BG:/^(BG)(\d{9,10}$)/i,CY:/^(CY)([0-5|9]\d{7}[A-Z]$)/i,CZ:/^(CZ)(\d{8,10})?$/i,DE:/^(DE)([1-9]\d{8}$)/i,DK:/^(DK)(\d{8}$)/i,EE:/^(EE)(10\d{7}$)/i,EL:/^(EL)(\d{9}$)/i,ES:/^(ES)([0-9A-Z][0-9]{7}[0-9A-Z]$)/i,EU:/^(EU)(\d{9}$)/i,FI:/^(FI)(\d{8}$)/i,FR:/^(FR)([0-9A-Z]{2}[0-9]{9}$)/i,GB:/^(GB)((?:[0-9]{12}|[0-9]{9}|(?:GD|HA)[0-9]{3})$)/i,GR:/^(GR)(\d{8,9}$)/i,HR:/^(HR)(\d{11}$)/i,HU:/^(HU)(\d{8}$)/i,IE:/^(IE)([0-9A-Z\*\+]{7}[A-Z]{1,2}$)/i,IT:/^(IT)(\d{11}$)/i,LV:/^(LV)(\d{11}$)/i,LT:/^(LT)(\d{9}$|\d{12}$)/i,LU:/^(LU)(\d{8}$)/i,MT:/^(MT)([1-9]\d{7}$)/i,NL:/^(NL)(\d{9}B\d{2}$)/i,NO:/^(NO)(\d{9}$)/i,PL:/^(PL)(\d{10}$)/i,PT:/^(PT)(\d{9}$)/i,RO:/^(RO)([1-9]\d{1,9}$)/i,RU:/^(RU)(\d{10}$|\d{12}$)/i,RS:/^(RS)(\d{9}$)/i,SI:/^(SI)([1-9]\d{7}$)/i,SK:/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7}$)/i,SE:/^(SE)(\d{10}01$)/i},$n=(t,e="")=>{let r=s.is_object(t)&&t.iso?wt[t.iso||"EU"]:wt.EU;return s.is_object(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)},gt=$n;var yn={creditCard:ee,credit_card:ee,custom:tt,email:nt,equals:ot,matches:it,maxLength:te,max_length:te,minLength:re,min_length:re,phone:dt,postalCode:ne,postal_code:ne,regex:at,required:lt,semVer:oe,semver:oe,slug:ut,strongPassword:ie,strong_password:ie,url:pt,vat:gt},$t=yn;var se=class{constructor(e,r={}){this.fields_to_listen_to_for_changes=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.default_validation_errors={credit_card:()=>"Must be a valid credit card number.",creditCard:()=>"Must be a valid credit card number.",custom:()=>"Must return true.",email:()=>"Must be a valid email.",equals:n=>`Value must equal ${n}.`,matches:n=>`Field must match ${n}.`,max_length:n=>`Field value can be no greater than ${n}.`,maxLength:n=>`Field value can be no greater than ${n}.`,min_length:n=>`Field value can be no less than ${n}.`,minLength:n=>`Field value can be no less than ${n}.`,phone:()=>"Field value must be a valid telephone number.",postal_code:()=>"Field value must be a valid postal code.",postalCode:()=>"Field value must be a valid postal code.",regex:()=>"Must match regex.",required:()=>"This field is required.",semver:()=>"Field value must be a valid semantic version.",semVer:()=>"Field value must be a valid semantic version.",slug:()=>"Field value must be a valid URL slug.",strong_password:()=>"Field value must be a valid password.",strongPassword:()=>"Field value must be a valid password.",url:()=>"Field value must be a valid URL.",vat:()=>"Field value must be a valid VAT code."},e||console.warn("[validate_form] Must pass an HTML <form></form> element to validate."),this.form=e,this.set_options(r),this.attach_event_listeners()}set_options(e={}){this.rules=e.rules||{},this.messages=e.messages||{},this.onSubmit=e.onSubmit,this.on_render_error=e.on_render_error||e.onRenderError,this.fields=this.serialize()}update_options(e={}){this.set_options(e)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let n=this.form.querySelector(`[name="${r}"]`),o=n?.type;return{listen_for_changes:this.fields_to_listen_to_for_changes.includes(o),type:o,name:r,element:n,validations:Object.entries(this.rules[r]).map(([c,a])=>({name:c,rule:a,valid:!1})).sort((c,a)=>c.name>a.name?1:-1),errorMessages:this.messages[r]?Object.keys(this.messages[r]):{}}})?.filter(r=>!!r?.element)}attach_event_listeners(){if(this.form){let e=r=>{r.stopPropagation(),r.preventDefault(),this.validate()&&this.onSubmit&&this.onSubmit()};if(this.form.listeners?.length>0)for(let r=0;r<this.form.listeners.length;r+=1){let n=this.form.listeners[r];this.form.removeEventListener("submit",n)}this.form.addEventListener("submit",e),this.form.listeners=[...this.form.listeners||[],e]}for(let e=0;e<this?.fields?.length;e+=1){let r=this?.fields[e];if(r?.element&&r?.listen_for_changes){let n=()=>{Te(()=>{this.validate(r.name)},100)};r.element.removeEventListener("input",n),r.element.addEventListener("input",n),r.element.removeEventListener("change",n),r.element.addEventListener("change",n)}}}validate(e=null){if(e){let r=this.fields.find(n=>n.name===e);return this.clear_existing_error(e),this.validate_field(r),this.check_if_valid()}else{this.clear_existing_errors();for(let r=0;r<this.fields.length;r+=1){let n=this.fields[r];this.validate_field(n)}return this.check_if_valid()}}check_if_valid(){return!this.fields.map(r=>r.validations.some(n=>!n.valid)).includes(!0)}validate_field(e){let r=this.form.querySelector(`[name="${e.name}"]`),n=["checkbox","radio"].includes(e.type),o=n?null:e?.element?.value?.trim(),i=n?e?.element?.checked:null;for(let a=0;a<e.validations.length;a+=1){let d=e.validations[a];if(this.is_valid_value(n,n?i:o,d))this.mark_validation_as_valid(e,d.name);else{let _=this.messages[e.name]&&this.messages[e.name][d.name];this.mark_validation_as_invalid(e,d.name),this.render_error(e.element,_||this.default_validation_errors[d.name](d.rule,o))}}let c=e.validations.some(a=>!a.valid);return c&&(r.classList.add("error"),r.focus()),c||(r.classList.remove("error"),this.clear_existing_error(e.name)),!c}mark_validation_as_invalid(e,r){let o=[...e.validations].find(i=>i.name===r);o.valid=!1}mark_validation_as_valid(e,r){let o=[...e.validations].find(i=>i.name===r);o.valid=!0}is_valid_value(e,r,n){let o=$t[n.name];return o?o(n.rule,r,{is_checked:e}):!0}clear_existing_errors(){if(this.form){let e=this.form.querySelectorAll(".input-hint.error");for(let r=0;r<e?.length;r+=1){let n=e[r];n.parentNode.removeChild(n)}}}clear_existing_error(e=""){let r=document.getElementById(`error-${e}`);r&&r.parentNode.removeChild(r)}render_error(e,r=""){if(e){if(this.clear_existing_error(e.name),typeof this.on_render_error=="function")return this.on_render_error(e,r);let n=document.createElement("p");n.classList.add("input-hint"),n.classList.add("error"),n.setAttribute("id",`error-${e.name}`),n.innerText=r,e.after(n)}}},xn=(t,e)=>new Promise((r,n)=>{try{new se(t,e).validate()?r():n()}catch(o){console.warn(o)}}),de=xn;var bn=(t={},e={})=>{let r=s.is_function(t.websockets)&&t.websockets(e),n=s.is_object(r)&&Object.entries(r);for(let o=0;o<n?.length;o+=1){let[i,c]=n[o];T({component_instance:e,test:e?.test,url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${i}`,options:c?.options||{},query:c?.query||{},events:c?.events||{}},(a={})=>{e.websockets={...e.websockets||{},[i]:a}})}},yt=bn;var vn=(t={},e={})=>{t.id=e?._componentId||null,t.css=e?.css,t.data=typeof window<"u"?Qe(t):{},t.defaultProps=W(t,e?.defaultProps||{}),t.default_props=W(t,e?.default_props||{}),t.dom={},t.DOMNode=null,t.events=e?.events,t.instance_id=m(8),t.lifecycle=e?.lifecycle||{},t.methods=qe(t,e?.methods||{}),t.options=e,t.props=Ie(e?.defaultProps||e?.default_props,e?.props||{}),t.state=P(t,e?.state||{}),t.test=e?.test,t.timers=[],t.translations=e?.translations||{},t.url=typeof window<"u"?Q(window.__joystick_url__):Q(e?.url),t.user=typeof window<"u"?window.__joystick_user__:e?.user,t.validateForm=de,t.validate_form=de,t.virtual_dom={},t.wrapper={},typeof window<"u"&&e?.websockets&&s.is_function(e?.websockets)&&yt(e,t)},xt=vn;var jn=(t={},e=null)=>{let r=typeof window<"u"?window.joystick._internal.tree:[];(e||r).push(t)},S=jn;var A=class{constructor(e,r){this.type=e,this.path=r?r.toString():""}},U=class extends A{constructor(e,r,n){super("E",e),this.original=r,this.current=n}},ce=class extends A{constructor(e,r,n,o){super("M",e),this.item=r,this.original_index=n,this.current_index=o}},C=class extends A{constructor(e,r){super("D",e),this.original=r}},L=class extends A{constructor(e,r){super("A",e),this.current=r}},v=(t,e)=>t?`${t}.${e}`:e,kn=(t,e,r={})=>{let n=[],o=r.match_key,i=r.types||["E","A","D","M"],c=(d,_,f,h)=>{d.forEach((p,l)=>{let w=_.findIndex(j=>j[h]===p[h]);w>-1?(i.indexOf("M")>-1&&l!==w&&n.push(new ce(f,p,l,w)),a(p,_[w],v(f,w))):i.indexOf("D")>-1&&n.push(new C(f,p))}),_.forEach((p,l)=>{let w=d.findIndex(j=>p[h]===j[h]);i.indexOf("A")>-1&&w===-1&&n.push(new L(v(f,l),p))})},a=(d,_,f)=>{let h=Object.prototype.toString.call(d),p=Object.prototype.toString.call(_);if(i.indexOf("E")>-1&&h!==p)return n.push(new U(f,d,_)),!1;if(h==="[object Object]")Object.getOwnPropertyNames(d).forEach(l=>{Object.prototype.hasOwnProperty.call(_,l)?a(d[l],_[l],v(f,l)):i.indexOf("D")>-1&&n.push(new C(v(f,l),d[l]))}),Object.getOwnPropertyNames(_).forEach(l=>{i.indexOf("A")>-1&&!Object.prototype.hasOwnProperty.call(d,l)&&n.push(new L(v(f,l),_[l]))});else if(h==="[object Array]")if(o)c(d,_,f,o);else{let l=d.length-1,w=_.length-1;if(i.indexOf("D")>-1)for(;l>w;)n.push(new C(v(f,l),d[l--]));if(i.indexOf("A")>-1)for(;w>l;)n.push(new L(v(f,w),_[w--]));for(;l>=0;--l)a(d[l],_[l],v(f,l))}else i.indexOf("E")>-1&&d!==_&&n.push(new U(f,d,_))};return a(t,e),n},bt=kn;var En=function(e={},r={}){let n=this,o=e({parent:n,props:r,translations:n?.translations,url:n?.url});o.parent=n;let i=n?.existing_children[o?.id],c=n?.new_children[o?.id],a=i&&i[c?.length||0],d=D(a);d?.state&&(o.state=d?.state),(s.is_function(o?.lifecycle?.onUpdateProps)||s.is_function(o?.lifecycle?.on_update_props))&&bt(d?.props,r)&&(o.lifecycle.onUpdateProps||o.lifecycle.on_update_props)(d?.props,r,o);let _={},f={},h=o.render_to_html(_,f),p=o.replace_when_tags(h),l=o.render_html_to_dom(p),w=o.render_dom_to_virtual_dom(l);return o.dom=l,o.DOMNode=l,o.virtual_dom=w,o.children=_,S(o),n.track_child(o),p},ae=En;var Sn=function(e={},r={}){let n=this,o=e({parent:n,props:r,translations:n?.translations,url:n?.url});return o.parent=n,S(o,this.ssr_tree),`{{${o.id}:${o.instance_id}}}`},vt=Sn;var An=function(e=[],r=null){return s.is_function(r)&&e&&s.is_array(e)?e.map((n,o)=>r(n,o)).join(""):""},le=An;var On=(t="",e=[])=>e.reduce((r,[n,o])=>r.replace(`{{${n}}}`,o),t),_e=(t="",e=[])=>{let r=typeof t=="string",n=Array.isArray(t),o=typeof t=="object"&&!n;if(r)return On(t,e);if(n)return t?.map(i=>_e(i,e));if(o)return Object.entries(t)?.reduce((i={},[c,a])=>(i[c]=_e(a,e),i),{})},Mn=(t="",e={})=>t?.split(".").reduce((r,n)=>r&&r[n]||"",e),Cn=function(t="",e={}){let r=typeof window<"u"?window.__joystick_i18n__:this.translations,o=t?.includes(".")?Mn(t,r):r[t];if(!r||!o)return"";let i=Object.entries(e);return _e(o,i)},fe=Cn;var Ln=function(e=!1,r=""){return s.is_function(r)?e?r():"<when> </when>":e?r.trim():"<when> </when>"},ue=Ln;var Rn={c:ae,component:ae,component_ssr:vt,e:le,each:le,i:fe,i18n:fe,w:ue,when:ue},me=Rn;var jt=(t={},e="",r={})=>{for(let n=0;n<t?.children?.length;n+=1){let o=t?.children[n];if(s.is_object(o)&&o.attributes&&o.attributes["js-i"]&&o.attributes["js-i"]===e){t.children[n]=r;break}s.is_object(o)&&jt(o,e,r)}},kt=jt;var he=class{constructor(e={}){xt(this,e)}cleanup_html(e="",r=null){let n=(typeof document>"u"?r:document).createElement("div");return n.innerHTML=e,n.innerHTML}compile_render_methods(e={},r={},n=null){return Object.entries(me).reduce((o,[i,c])=>{let a={...this||{}};if(i==="component"&&(a={...this||{},new_children:e,existing_children:r,ssr_tree:n?{push:d=>{n.push(d)}}:null,track_child:n?null:(d={})=>{let _=e[d?.id];_?_.push(d?.instance_id):e[d?.id]=[d?.instance_id]}}),i!=="component_ssr"){let d=i==="component"&&n?me.component_ssr:c;o[i]=d.bind(a)}return o},{})}async fetch_data(e={},r={},n={},o=this){if(o?.options?.data&&s.is_function(o.options.data)){let i=await o.options.data(e,r,n,o);return o.data=i,i}return null}render_child_dom_node_to_virtual_dom(e={}){return e.tagName==="WHEN"?[].flatMap.call(e?.childNodes||[],r=>r?.tagName==="WHEN"?this.render_child_dom_node_to_virtual_dom(r):this.render_dom_to_virtual_dom(r)):this.render_dom_to_virtual_dom(e)}parse_attributes(e={}){return Object.values(e).reduce((r={},n)=>(r[n.name]=n.value,r),{})}render_for_mount(){u(`ui.${this?.options?.test?.name||m()}.render_for_mount`,[]);let e={},r={},n=this.render_to_html(e,r),o=this.replace_when_tags(n),i=this.render_html_to_dom(o),c=this.render_dom_to_virtual_dom(i);return this.dom=i,this.DOMNode=i,this.virtual_dom=c,this.children=e,this.sync_children_to_parent(this.children,this.dom,this.virtual_dom),i}async render_for_ssr(e={},r={},n=[],o={}){return new Promise(async i=>{let c=await this.fetch_data(e,r,{},this),a={},d={},_=this.render_to_html(a,d,n,o?.linkedom_document),f={};for(let l=0;l<n?.length;l+=1){let w=n[l],j=await this.fetch_data(e,r,{},w),Ct=w.render_to_html(a,d,n,o?.linkedom_document);_=_.replace(`{{${w.id}:${w.instance_id}}}`,Ct),f[w?.id]=j}n.push(this);let h=this.replace_when_tags(_),p=g("css",{ssr_tree:n,is_email:o?.is_email||!1});i({html:h,css:p,data:{[this.id]:c,...f||{}}})})}render_html_to_dom(e=""){let r=document.createElement("template");return r.innerHTML=e,r?.content?.firstChild}replace_when_tags(e=""){return e}render_to_html(e={},r={},n=null,o={}){let i=this.compile_render_methods(e,r,n),c=this.options.render({...this||{},...i}),a=this.cleanup_html(c,o),d=this.sanitize_html(a);return this.wrap_html(d)}render_dom_to_virtual_dom(e={}){let r=e&&e.tagName&&e.tagName.toLowerCase()||"text";if(r==="text")return e.textContent;let n={tag_name:r,attributes:this.parse_attributes(e?.attributes),children:[].flatMap.call(e?.childNodes||[],c=>this.render_child_dom_node_to_virtual_dom(c))},o=e?.getAttribute("js-c"),i=e?.getAttribute("js-i");return o&&(n.component_id=o),i&&(n.instance_id=i),n}rerender(e={}){u(`ui.${this?.options?.test?.name||m()}.rerender`,[e]),g("lifecycle.onBeforeRender",{root_instance_id:this?.instance_id});let r={},n={...this.children||{}};this.children={},g("detach_event_listeners",{root_instance_id:this?.instance_id});let o=this.render_to_html(r,n),i=this.replace_when_tags(o),c=this.render_html_to_dom(i),a=this.render_dom_to_virtual_dom(c),d=G(this.virtual_dom,a);if(s.is_function(d)){let _=d(this.dom);this.dom=_,this.virtual_dom=a,this.children=r,this.sync_children_to_parent(this.children,this.dom,this.virtual_dom),this.DOMNode=_}g("attach_event_listeners",{root_instance_id:this?.instance_id}),g("lifecycle.onRender",{root_instance_id:this?.instance_id}),s.is_function(e?.after_set_state_rerender)&&e.after_set_state_rerender(),s.is_function(e?.after_refetch_data_rerender)&&e.after_refetch_data_rerender(),Re(n),g("css")}sanitize_html(e=""){let r=e.match(M.JOYSTICK_COMMENT_REGEX)||[];for(let n=0;n<r?.length;n+=1)e=e.replace(r[n],"");return e}set_interval(e=null,r=0){this.setInterval(e,r)}setInterval(e=null,r=0){u(`ui.${this?.options?.test?.name||m()}.set_interval`,[e,r]),e&&this.timers.push(window.setInterval(e,r))}set_state(e={},r=null){return this.setState(e,r)}setState(e={},r=null){u(`ui.${this?.options?.test?.name||m()}.set_state`,[e,r]),this.state=P(this,{...this.state||{},...e}),this.rerender({after_set_state_rerender:()=>{r&&s.is_function(r)&&r()}})}set_timeout(e=null,r=0){this.setTimeout(e,r)}setTimeout(e=null,r=0){u(`ui.${this?.options?.test?.name||m()}.set_timeout`,[e,r]),e&&this.timers.push(window.setTimeout(e,r))}sync_children_to_parent(e={},r={},n={}){if(r){let o=x(e),i=B(o);for(let c=0;c<i?.length;c+=1){let a=i[c],d=r.querySelector(`[js-i="${a?.instance_id}"]`);a.dom=d,a.DOMNode=d,kt(n,a?.instance_id,a?.virtual_dom)}}}wrap_html(e=""){let r=(this.options?.wrapper?.tagName||this.options?.wrapper?.tag_name)?.toLowerCase()||"div",n=this.options?.wrapper?.id||null,o=(this.options?.wrapper?.classList||this.options?.wrapper?.class_list)?.join(" ")||"";return`<${r} ${n?`id="${n}"`:""} ${o?`class="${o}"`:""} js-c="${this.id}" js-i="${this.instance_id}">${e}</${r}>`}},Et=he;var Tn=(t={})=>{try{return(e={})=>new Et({...t,...e})}catch(e){Ce("component",e)}},St=Tn;var Nn=()=>typeof window<"u"?window.__joystick_environment__:typeof process<"u"?"production":null,At=Nn;var Pn=(t={},e={})=>{e.replaceChildren(),e.appendChild(t)},Zn=(t,e={},r={})=>{u("ui.mount",[t,e,r]),g("reset_tree_for_hmr");let n=t({props:e}),o=n.render_for_mount();return S(n),g("lifecycle.onBeforeMount",{root_instance_id:n?.instance_id}),g("lifecycle.onBeforeRender",{root_instance_id:n?.instance_id}),g("css",{is_mount:!0}),Pn(o,r),g("attach_event_listeners",{root_instance_id:n?.instance_id}),g("lifecycle.onMount",{root_instance_id:n?.instance_id}),g("lifecycle.onRender",{root_instance_id:n?.instance_id}),window.addEventListener("beforeunload",()=>{g("lifecycle.onBeforeUnmount",{root_instance_id:n?.instance_id})}),n},Ot=Zn;var F=At(),zn=xe,qn=J,In={get:ve,track:ke},Gn=O.get,Bn=J("app",{}),Dn=O.set,Un=je,Fn=Ae,Mt={_external:{},_internal:{tree:[]},accounts:zn,cache:qn,component:St,env:{development:F==="development",staging:F==="staging",production:F==="production",test:F==="test"},external:In,get:Gn,global_state:Bn,id:m,mount:Ot,set:Dn,test:Un,upload:Fn};Le(Mt);var vc=Mt;export{zn as accounts,qn as cache,vc as default,In as external,Gn as get,Bn as global_state,Dn as set,Un as test,Fn as upload};
21
+ `}}return r}return""},Ue=Kr;var Jr=(t,e)=>(e||"").replace(M.CSS_COMMENT_REGEX,()=>"").replace(M.CSS_SELECTOR_REGEX,r=>["@",": "].some(n=>r?.includes(n))?r:`[js-c="${t}"] ${r.trim()}`).replace(/@wrapper/g,`[js-c="${t}"]`)?.trim(),Yr=(t=[],e=[],r=!1)=>{for(let n=0;n<t?.length;n+=1){let o=t[n];if(o?.css){let i=o?.id,c=o.options.css,a=Ue(c,o),d=r?null:Jr(i,a);r?e.push(a):e.push(d)}}return e},Fe=Yr;var Xr=(t={})=>Object.entries(t).map(([e,r])=>{let[n,...o]=e.split(" ");return{type:n.toLowerCase(),selector:o.join(" "),handler:r}}),He=Xr;var Wr=(t=[])=>t?.flatMap(e=>He(e?.events)?.flatMap(n=>({instance:e,...n}))),Ve=Wr;var Qr=(t="")=>window?.joystick?._internal?.tree?.find(e=>e?.instance_id===t),D=Qr;var b=(t="")=>{let e=D(t),r=x(e?.children),n=B(r);return[e,...n||[]]},Ke=(t=null,e=null)=>{let n=(t&&!e?b(t):e||[])?.flatMap(o=>o?.timers?Object.values(o?.timers):[]);for(let o=0;o<n?.length;o+=1){let i=n[o];clearTimeout(i),clearInterval(i)}},Je=()=>{let t=window.__joystick_hmr_previous_websockets__;for(let e=0;e<t?.length;e+=1){let r=t[e];r?.client?.close&&s.is_function(r?.client?.close)&&r.client.close(1e3)}},en={attach_event_listeners:({root_instance_id:t})=>{let e=window?.joystick?._internal?.tree,r=Ve(e);for(let n=0;n<r?.length;n+=1){let o=r[n],i=document.querySelectorAll(`[js-i="${o?.instance?.instance_id}"] ${o?.selector}`),c=o?.instance?.compile_render_methods();for(let a=0;a<i?.length;a+=1){let d=i[a];De(o,d,c)}}return r},clear_timers:({root_instance_id:t=null})=>{Ke(t)},clear_websockets:({root_instance_id:t=null})=>{Je()},css:({is_mount:t=!1,is_email:e=!1,ssr_tree:r=null})=>{let n=typeof window<"u"?document.head.querySelector("style[js-css]"):null,o=Fe(r||window.joystick?._internal?.tree,[],e),i=t?o?.reverse().join("").trim():o?.join("").trim();if(!(typeof window<"u"&&n?.innerText===i)){if(typeof window<"u"&&n&&(n.innerHTML=i),typeof window<"u"&&!n){let c=document.createElement("style");c.setAttribute("js-styles",""),c.innerHTML=i,document.head.appendChild(c)}return i}},detach_event_listeners:({root_instance_id:t})=>{let r=window?.joystick?._internal?.tree?.filter(n=>!!n?._event_listeners).flatMap(n=>n?._event_listeners);for(let n=0;n<r?.length;n+=1){let o=r[n];o.element.removeEventListener(o?.type,o?.handler)}},"lifecycle.onBeforeMount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeMount)||s.is_function(n?.lifecycle?.on_before_mount))&&((n.lifecycle.onBeforeMount||n.lifecycle.on_before_mount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_mount`,[n]))}},"lifecycle.onMount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onMount)||s.is_function(n?.lifecycle?.on_mount))&&((n.lifecycle.onMount||n.lifecycle.on_mount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_mount`,[n]))}},"lifecycle.onBeforeRender":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeRender)||s.is_function(n?.lifecycle?.on_before_render))&&((n.lifecycle.onBeforeRender||n.lifecycle.on_before_render)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_render`,[n]))}},"lifecycle.onRender":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onRender)||s.is_function(n?.lifecycle?.on_render))&&((n.lifecycle.onRender||n.lifecycle.on_render)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_render`,[n]))}},"lifecycle.onUpdateProps":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onUpdateProps)||s.is_function(n?.lifecycle?.on_update_props))&&((n.lifecycle.onUpdateProps||n.lifecycle.on_update_props)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_update_props`,[n]))}},"lifecycle.onRefetchData":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onRefetchData)||s.is_function(n?.lifecycle?.on_refetch_data))&&((n.lifecycle.onRefetchData||n.lifecycle.on_refetch_data)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_refetch_data`,[n]))}},"lifecycle.onBeforeUnmount":({root_instance_id:t})=>{let e=b(t);for(let r=0;r<e?.length;r+=1){let n=e[r];(s.is_function(n?.lifecycle?.onBeforeUnmount)||s.is_function(n?.lifecycle?.on_before_unmount))&&((n.lifecycle.onBeforeUnmount||n.lifecycle.on_before_unmount)(n),u(`ui.${n?.options?.test?.name||m()}.lifecycle.on_before_unmount`,[n]))}},reset_tree_for_hmr:()=>{Ke(null,window.__joystick_hmr_previous_tree__),Je(),window.__joystick_hmr_previous_tree__=[],window.__joystick_hmr_previous_websockets__=[]}},Ye=en;var tn=(t="",e={})=>{let r=Ye[t];if(typeof r=="function")return r(e)},g=tn;var Xe=(t={},e={},r={})=>({...t,refetch:async(n={})=>{u(`ui.${r?.options?.test?.name||m()}.data.refetch`,[n]);let o=await Be(O,e,n,r);return r.data=Xe(o,e,r),window.__joystick_data__[r?.id]&&(window.__joystick_data__[r?.id]=atob(o)),window?.__joystick_test__||r.rerender({after_refetch_data_rerender:()=>{g("lifecycle.onRefetchData",{root_instance_id:r?.instance_id})}}),r.data}}),We=Xe;var rn=(t={})=>{if(typeof window<"u"){let e=window.__joystick_data__&&window.__joystick_data__[t?.id]||null,r=atob(e);console.log({data_as_json_string:r});let n=e?JSON.parse(atob(e)):{},o=window.__joystick_request__||{};return We(n,o,t)}return t?.data||{}},Qe=rn;var et=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/,nn=(t,e="")=>{if(!e)return!0;if(e&&!s.is_string(e))return!1;let r=e?e.replace(/[- ]+/g,""):"";return t===!0?r.match(new RegExp(et)):!r.match(new RegExp(et))},ee=nn;var on=(t="",e="")=>t(e),tt=on;var rt=/^((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))$/,sn=(t,e="")=>t===!0?!!e.match(rt):!e.match(rt),nt=sn;var dn=(t,e="")=>t===e,ot=dn;var cn=(t,e="")=>t===e,it=cn;var an=(t,e="")=>e.length<=t,te=an;var ln=(t,e="")=>e.length>=t,re=ln;var st=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,_n=(t,e="")=>t===!0?!!e.match(st):!e.match(st),dt=_n;var ct={AF:/^\d{4}$/,AX:/^\d{5}$/,AL:/^\d{4}$/,DZ:/^\d{5}$/,AS:/^\d{5}(-{1}\d{4,6})$/,AD:/^[Aa][Dd]\d{3}$/,AI:/^[Aa][I][-][2][6][4][0]$/,AR:/^\d{4}|[A-Za-z]\d{4}[a-zA-Z]{3}$/,AM:/^\d{4}$/,AC:/^[Aa][Ss][Cc][Nn]\s{0,1}[1][Zz][Zz]$/,AU:/^\d{4}$/,AT:/^\d{4}$/,AZ:/^[Aa][Zz]\d{4}$/,BH:/^\d{3,4}$/,BD:/^\d{4}$/,BB:/^[Aa][Zz]\d{5}$/,BY:/^\d{6}$/,BE:/^\d{4}$/,BM:/^[A-Za-z]{2}\s([A-Za-z]{2}|\d{2})$/,BT:/^\d{5}$/,BO:/^\d{4}$/,BA:/^\d{5}$/,BR:/^\d{5}-\d{3}$/,"":/^[Bb][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,IO:/^[Bb]{2}[Nn][Dd]\s{0,1}[1][Zz]{2}$/,VG:/^[Vv][Gg]\d{4}$/,BN:/^[A-Za-z]{2}\d{4}$/,BG:/^\d{4}$/,KH:/^\d{5}$/,CA:/^(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\d(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\s{0,1}\d(?=[^DdFfIiOoQqUu\d\s])[A-Za-z]\d$/,CV:/^\d{4}$/,KY:/^[Kk][Yy]\d[-\s]{0,1}\d{4}$/,TD:/^\d{5}$/,CL:/^\d{7}\s\(\d{3}-\d{4}\)$/,CN:/^\d{6}$/,CX:/^\d{4}$/,CC:/^\d{4}$/,CO:/^\d{6}$/,CD:/^[Cc][Dd]$/,CR:/^\d{4,5}$/,HR:/^\d{5}$/,CU:/^\d{5}$/,CY:/^\d{4}$/,CZ:/^\d{5}\s\(\d{3}\s\d{2}\)$/,DK:/^\d{4}$/,DO:/^\d{5}$/,EC:/^\d{6}$/,SV:/^1101$/,EG:/^\d{5}$/,EE:/^\d{5}$/,ET:/^\d{4}$/,FK:/^[Ff][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,FO:/^\d{3}$/,FI:/^\d{5}$/,FR:/^\d{5}$/,GF:/^973\d{2}$/,PF:/^987\d{2}$/,GA:/^\d{2}\s[a-zA-Z-_ ]\s\d{2}$/,GE:/^\d{4}$/,DE:/^\d{2}$/,GI:/^[Gg][Xx][1]{2}\s{0,1}[1][Aa]{2}$/,GR:/^\d{3}\s{0,1}\d{2}$/,GL:/^\d{4}$/,GP:/^971\d{2}$/,GU:/^\d{5}$/,GT:/^\d{5}$/,GG:/^[A-Za-z]{2}\d\s{0,1}\d[A-Za-z]{2}$/,GW:/^\d{4}$/,HT:/^\d{4}$/,HM:/^\d{4}$/,HN:/^\d{5}$/,HU:/^\d{4}$/,IS:/^\d{3}$/,IN:/^\d{6}$/,ID:/^\d{5}$/,IR:/^\d{5}-\d{5}$/,IQ:/^\d{5}$/,IM:/^[Ii[Mm]\d{1,2}\s\d\[A-Z]{2}$/,IL:/^\b\d{5}(\d{2})?$/,IT:/^\d{5}$/,JM:/^\d{2}$/,JP:/^\d{7}\s\(\d{3}-\d{4}\)$/,JE:/^[Jj][Ee]\d\s{0,1}\d[A-Za-z]{2}$/,JO:/^\d{5}$/,KZ:/^\d{6}$/,KE:/^\d{5}$/,KR:/^\d{6}\s\(\d{3}-\d{3}\)$/,XK:/^\d{5}$/,KW:/^\d{5}$/,KG:/^\d{6}$/,LV:/^[Ll][Vv][- ]{0,1}\d{4}$/,LA:/^\d{5}$/,LB:/^\d{4}\s{0,1}\d{4}$/,LS:/^\d{3}$/,LR:/^\d{4}$/,LY:/^\d{5}$/,LI:/^\d{4}$/,LT:/^[Ll][Tt][- ]{0,1}\d{5}$/,LU:/^\d{4}$/,MK:/^\d{4}$/,MG:/^\d{3}$/,MV:/^\d{4,5}$/,MY:/^\d{5}$/,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MH:/^\d{5}$/,MQ:/^972\d{2}$/,YT:/^976\d{2}$/,FM:/^\d{5}(-{1}\d{4})$/,MX:/^\d{5}$/,MD:/^[Mm][Dd][- ]{0,1}\d{4}$/,MC:/^980\d{2}$/,MN:/^\d{5}$/,ME:/^\d{5}$/,MS:/^[Mm][Ss][Rr]\s{0,1}\d{4}$/,MA:/^\d{5}$/,MZ:/^\d{4}$/,MM:/^\d{5}$/,NA:/^\d{5}$/,NP:/^\d{5}$/,NL:/^\d{4}\s{0,1}[A-Za-z]{2}$/,NC:/^988\d{2}$/,NZ:/^\d{4}$/,NI:/^\d{5}$/,NE:/^\d{4}$/,NG:/^\d{6}$/,NF:/^\d{4}$/,MP:/^\d{5}$/,NO:/^\d{4}$/,OM:/^\d{3}$/,PK:/^\d{5}$/,PW:/^\d{5}$/,PA:/^\d{6}$/,PG:/^\d{3}$/,PY:/^\d{4}$/,PE:/^\d{5}$/,PH:/^\d{4}$/,PN:/^[Pp][Cc][Rr][Nn]\s{0,1}[1][Zz]{2}$/,PL:/^\d{2}[- ]{0,1}\d{3}$/,PT:/^\d{4}$/,PR:/^\d{5}$/,RE:/^974\d{2}$/,RO:/^\d{6}$/,RU:/^\d{6}$/,BL:/^97133$/,SH:/^[Ss][Tt][Hh][Ll]\s{0,1}[1][Zz]{2}$/,MF:/^97150$/,PM:/^97500$/,VC:/^[Vv][Cc]\d{4}$/,SM:/^4789\d$/,SA:/^\d{5}(-{1}\d{4})?$/,SN:/^\d{5}$/,RS:/^\d{5}$/,SG:/^\d{2}$/,SK:/^\d{5}\s\(\d{3}\s\d{2}\)$/,SI:/^([Ss][Ii][- ]{0,1}){0,1}\d{4}$/,ZA:/^\d{4}$/,GS:/^[Ss][Ii][Qq]{2}\s{0,1}[1][Zz]{2}$/,ES:/^\d{5}$/,LK:/^\d{5}$/,SD:/^\d{5}$/,SZ:/^[A-Za-z]\d{3}$/,SE:/^\d{3}\s*\d{2}$/,CH:/^\d{4}$/,SJ:/^\d{4}$/,TW:/^\d{5}$/,TJ:/^\d{6}$/,TH:/^\d{5}$/,TT:/^\d{6}$/,TN:/^\d{4}$/,TR:/^\d{5}$/,TM:/^\d{6}$/,TC:/^[Tt][Kk][Cc][Aa]\s{0,1}[1][Zz]{2}$/,UA:/^\d{5}$/,GB:/^[A-Z]{1,2}[0-9R][0-9A-Z]?\s*[0-9][A-Z-[CIKMOV]]{2}/,US:/^\b\d{5}\b(?:[- ]{1}\d{4})?$/,UY:/^\d{5}$/,VI:/^\d{5}$/,UZ:/^\d{3} \d{3}$/,VA:/^120$/,VE:/^\d{4}(\s[a-zA-Z]{1})?$/,VN:/^\d{6}$/,WF:/^986\d{2}$/,ZM:/^\d{5}$/},fn=(t,e="")=>{let r=s.is_object(t)&&t.iso?ct[t.iso||"US"]:ct.US;return s.is_object(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)},ne=fn;var un=(t="",e="")=>(e?.match(t)||[])?.length>0,at=un;var mn=(t,e="",r={isChecked:!1})=>{if(!r.isChecked)return t===!0?e&&e.trim()!=="":e&&e.trim()==="";if(r.isChecked)return t===!0?e:!e},lt=mn;var _t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,hn=(t,e="")=>t===!0?!!e.match(_t):!e.match(_t),oe=hn;var ft=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,pn=(t,e="")=>t===!0?!!e.match(ft):!e.match(ft),ut=pn;var mt=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,wn=(t,e="")=>t===!0?!!e.match(mt):!e.match(mt),ie=wn;var ht=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,gn=(t,e="")=>t===!0?!!e.match(ht):!e.match(ht),pt=gn;var wt={AT:/^(AT)(U\d{8}$)/i,BE:/^(BE)(\d{10}$)/i,BG:/^(BG)(\d{9,10}$)/i,CY:/^(CY)([0-5|9]\d{7}[A-Z]$)/i,CZ:/^(CZ)(\d{8,10})?$/i,DE:/^(DE)([1-9]\d{8}$)/i,DK:/^(DK)(\d{8}$)/i,EE:/^(EE)(10\d{7}$)/i,EL:/^(EL)(\d{9}$)/i,ES:/^(ES)([0-9A-Z][0-9]{7}[0-9A-Z]$)/i,EU:/^(EU)(\d{9}$)/i,FI:/^(FI)(\d{8}$)/i,FR:/^(FR)([0-9A-Z]{2}[0-9]{9}$)/i,GB:/^(GB)((?:[0-9]{12}|[0-9]{9}|(?:GD|HA)[0-9]{3})$)/i,GR:/^(GR)(\d{8,9}$)/i,HR:/^(HR)(\d{11}$)/i,HU:/^(HU)(\d{8}$)/i,IE:/^(IE)([0-9A-Z\*\+]{7}[A-Z]{1,2}$)/i,IT:/^(IT)(\d{11}$)/i,LV:/^(LV)(\d{11}$)/i,LT:/^(LT)(\d{9}$|\d{12}$)/i,LU:/^(LU)(\d{8}$)/i,MT:/^(MT)([1-9]\d{7}$)/i,NL:/^(NL)(\d{9}B\d{2}$)/i,NO:/^(NO)(\d{9}$)/i,PL:/^(PL)(\d{10}$)/i,PT:/^(PT)(\d{9}$)/i,RO:/^(RO)([1-9]\d{1,9}$)/i,RU:/^(RU)(\d{10}$|\d{12}$)/i,RS:/^(RS)(\d{9}$)/i,SI:/^(SI)([1-9]\d{7}$)/i,SK:/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7}$)/i,SE:/^(SE)(\d{10}01$)/i},$n=(t,e="")=>{let r=s.is_object(t)&&t.iso?wt[t.iso||"EU"]:wt.EU;return s.is_object(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)},gt=$n;var yn={creditCard:ee,credit_card:ee,custom:tt,email:nt,equals:ot,matches:it,maxLength:te,max_length:te,minLength:re,min_length:re,phone:dt,postalCode:ne,postal_code:ne,regex:at,required:lt,semVer:oe,semver:oe,slug:ut,strongPassword:ie,strong_password:ie,url:pt,vat:gt},$t=yn;var se=class{constructor(e,r={}){this.fields_to_listen_to_for_changes=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.default_validation_errors={credit_card:()=>"Must be a valid credit card number.",creditCard:()=>"Must be a valid credit card number.",custom:()=>"Must return true.",email:()=>"Must be a valid email.",equals:n=>`Value must equal ${n}.`,matches:n=>`Field must match ${n}.`,max_length:n=>`Field value can be no greater than ${n}.`,maxLength:n=>`Field value can be no greater than ${n}.`,min_length:n=>`Field value can be no less than ${n}.`,minLength:n=>`Field value can be no less than ${n}.`,phone:()=>"Field value must be a valid telephone number.",postal_code:()=>"Field value must be a valid postal code.",postalCode:()=>"Field value must be a valid postal code.",regex:()=>"Must match regex.",required:()=>"This field is required.",semver:()=>"Field value must be a valid semantic version.",semVer:()=>"Field value must be a valid semantic version.",slug:()=>"Field value must be a valid URL slug.",strong_password:()=>"Field value must be a valid password.",strongPassword:()=>"Field value must be a valid password.",url:()=>"Field value must be a valid URL.",vat:()=>"Field value must be a valid VAT code."},e||console.warn("[validate_form] Must pass an HTML <form></form> element to validate."),this.form=e,this.set_options(r),this.attach_event_listeners()}set_options(e={}){this.rules=e.rules||{},this.messages=e.messages||{},this.onSubmit=e.onSubmit,this.on_render_error=e.on_render_error||e.onRenderError,this.fields=this.serialize()}update_options(e={}){this.set_options(e)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let n=this.form.querySelector(`[name="${r}"]`),o=n?.type;return{listen_for_changes:this.fields_to_listen_to_for_changes.includes(o),type:o,name:r,element:n,validations:Object.entries(this.rules[r]).map(([c,a])=>({name:c,rule:a,valid:!1})).sort((c,a)=>c.name>a.name?1:-1),errorMessages:this.messages[r]?Object.keys(this.messages[r]):{}}})?.filter(r=>!!r?.element)}attach_event_listeners(){if(this.form){let e=r=>{r.stopPropagation(),r.preventDefault(),this.validate()&&this.onSubmit&&this.onSubmit()};if(this.form.listeners?.length>0)for(let r=0;r<this.form.listeners.length;r+=1){let n=this.form.listeners[r];this.form.removeEventListener("submit",n)}this.form.addEventListener("submit",e),this.form.listeners=[...this.form.listeners||[],e]}for(let e=0;e<this?.fields?.length;e+=1){let r=this?.fields[e];if(r?.element&&r?.listen_for_changes){let n=()=>{Te(()=>{this.validate(r.name)},100)};r.element.removeEventListener("input",n),r.element.addEventListener("input",n),r.element.removeEventListener("change",n),r.element.addEventListener("change",n)}}}validate(e=null){if(e){let r=this.fields.find(n=>n.name===e);return this.clear_existing_error(e),this.validate_field(r),this.check_if_valid()}else{this.clear_existing_errors();for(let r=0;r<this.fields.length;r+=1){let n=this.fields[r];this.validate_field(n)}return this.check_if_valid()}}check_if_valid(){return!this.fields.map(r=>r.validations.some(n=>!n.valid)).includes(!0)}validate_field(e){let r=this.form.querySelector(`[name="${e.name}"]`),n=["checkbox","radio"].includes(e.type),o=n?null:e?.element?.value?.trim(),i=n?e?.element?.checked:null;for(let a=0;a<e.validations.length;a+=1){let d=e.validations[a];if(this.is_valid_value(n,n?i:o,d))this.mark_validation_as_valid(e,d.name);else{let _=this.messages[e.name]&&this.messages[e.name][d.name];this.mark_validation_as_invalid(e,d.name),this.render_error(e.element,_||this.default_validation_errors[d.name](d.rule,o))}}let c=e.validations.some(a=>!a.valid);return c&&(r.classList.add("error"),r.focus()),c||(r.classList.remove("error"),this.clear_existing_error(e.name)),!c}mark_validation_as_invalid(e,r){let o=[...e.validations].find(i=>i.name===r);o.valid=!1}mark_validation_as_valid(e,r){let o=[...e.validations].find(i=>i.name===r);o.valid=!0}is_valid_value(e,r,n){let o=$t[n.name];return o?o(n.rule,r,{is_checked:e}):!0}clear_existing_errors(){if(this.form){let e=this.form.querySelectorAll(".input-hint.error");for(let r=0;r<e?.length;r+=1){let n=e[r];n.parentNode.removeChild(n)}}}clear_existing_error(e=""){let r=document.getElementById(`error-${e}`);r&&r.parentNode.removeChild(r)}render_error(e,r=""){if(e){if(this.clear_existing_error(e.name),typeof this.on_render_error=="function")return this.on_render_error(e,r);let n=document.createElement("p");n.classList.add("input-hint"),n.classList.add("error"),n.setAttribute("id",`error-${e.name}`),n.innerText=r,e.after(n)}}},xn=(t,e)=>new Promise((r,n)=>{try{new se(t,e).validate()?r():n()}catch(o){console.warn(o)}}),de=xn;var bn=(t={},e={})=>{let r=s.is_function(t.websockets)&&t.websockets(e),n=s.is_object(r)&&Object.entries(r);for(let o=0;o<n?.length;o+=1){let[i,c]=n[o];T({component_instance:e,test:e?.test,url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${i}`,options:c?.options||{},query:c?.query||{},events:c?.events||{}},(a={})=>{e.websockets={...e.websockets||{},[i]:a}})}},yt=bn;var vn=(t={},e={})=>{t.id=e?._componentId||null,t.css=e?.css,t.data=typeof window<"u"?Qe(t):{},t.defaultProps=W(t,e?.defaultProps||{}),t.default_props=W(t,e?.default_props||{}),t.dom={},t.DOMNode=null,t.events=e?.events,t.instance_id=m(8),t.lifecycle=e?.lifecycle||{},t.methods=qe(t,e?.methods||{}),t.options=e,t.props=Ie(e?.defaultProps||e?.default_props,e?.props||{}),t.state=P(t,e?.state||{}),t.test=e?.test,t.timers=[],t.translations=e?.translations||{},t.url=typeof window<"u"?Q(window.__joystick_url__):Q(e?.url),t.user=typeof window<"u"?window.__joystick_user__:e?.user,t.validateForm=de,t.validate_form=de,t.virtual_dom={},t.wrapper={},typeof window<"u"&&e?.websockets&&s.is_function(e?.websockets)&&yt(e,t)},xt=vn;var jn=(t={},e=null)=>{let r=typeof window<"u"?window.joystick._internal.tree:[];(e||r).push(t)},S=jn;var A=class{constructor(e,r){this.type=e,this.path=r?r.toString():""}},U=class extends A{constructor(e,r,n){super("E",e),this.original=r,this.current=n}},ce=class extends A{constructor(e,r,n,o){super("M",e),this.item=r,this.original_index=n,this.current_index=o}},C=class extends A{constructor(e,r){super("D",e),this.original=r}},L=class extends A{constructor(e,r){super("A",e),this.current=r}},v=(t,e)=>t?`${t}.${e}`:e,kn=(t,e,r={})=>{let n=[],o=r.match_key,i=r.types||["E","A","D","M"],c=(d,_,f,h)=>{d.forEach((p,l)=>{let w=_.findIndex(j=>j[h]===p[h]);w>-1?(i.indexOf("M")>-1&&l!==w&&n.push(new ce(f,p,l,w)),a(p,_[w],v(f,w))):i.indexOf("D")>-1&&n.push(new C(f,p))}),_.forEach((p,l)=>{let w=d.findIndex(j=>p[h]===j[h]);i.indexOf("A")>-1&&w===-1&&n.push(new L(v(f,l),p))})},a=(d,_,f)=>{let h=Object.prototype.toString.call(d),p=Object.prototype.toString.call(_);if(i.indexOf("E")>-1&&h!==p)return n.push(new U(f,d,_)),!1;if(h==="[object Object]")Object.getOwnPropertyNames(d).forEach(l=>{Object.prototype.hasOwnProperty.call(_,l)?a(d[l],_[l],v(f,l)):i.indexOf("D")>-1&&n.push(new C(v(f,l),d[l]))}),Object.getOwnPropertyNames(_).forEach(l=>{i.indexOf("A")>-1&&!Object.prototype.hasOwnProperty.call(d,l)&&n.push(new L(v(f,l),_[l]))});else if(h==="[object Array]")if(o)c(d,_,f,o);else{let l=d.length-1,w=_.length-1;if(i.indexOf("D")>-1)for(;l>w;)n.push(new C(v(f,l),d[l--]));if(i.indexOf("A")>-1)for(;w>l;)n.push(new L(v(f,w),_[w--]));for(;l>=0;--l)a(d[l],_[l],v(f,l))}else i.indexOf("E")>-1&&d!==_&&n.push(new U(f,d,_))};return a(t,e),n},bt=kn;var En=function(e={},r={}){let n=this,o=e({parent:n,props:r,translations:n?.translations,url:n?.url});o.parent=n;let i=n?.existing_children[o?.id],c=n?.new_children[o?.id],a=i&&i[c?.length||0],d=D(a);d?.state&&(o.state=d?.state),(s.is_function(o?.lifecycle?.onUpdateProps)||s.is_function(o?.lifecycle?.on_update_props))&&bt(d?.props,r)&&(o.lifecycle.onUpdateProps||o.lifecycle.on_update_props)(d?.props,r,o);let _={},f={},h=o.render_to_html(_,f),p=o.replace_when_tags(h),l=o.render_html_to_dom(p),w=o.render_dom_to_virtual_dom(l);return o.dom=l,o.DOMNode=l,o.virtual_dom=w,o.children=_,S(o),n.track_child(o),p},ae=En;var Sn=function(e={},r={}){let n=this,o=e({parent:n,props:r,translations:n?.translations,url:n?.url});return o.parent=n,S(o,this.ssr_tree),`{{${o.id}:${o.instance_id}}}`},vt=Sn;var An=function(e=[],r=null){return s.is_function(r)&&e&&s.is_array(e)?e.map((n,o)=>r(n,o)).join(""):""},le=An;var On=(t="",e=[])=>e.reduce((r,[n,o])=>r.replace(`{{${n}}}`,o),t),_e=(t="",e=[])=>{let r=typeof t=="string",n=Array.isArray(t),o=typeof t=="object"&&!n;if(r)return On(t,e);if(n)return t?.map(i=>_e(i,e));if(o)return Object.entries(t)?.reduce((i={},[c,a])=>(i[c]=_e(a,e),i),{})},Mn=(t="",e={})=>t?.split(".").reduce((r,n)=>r&&r[n]||"",e),Cn=function(t="",e={}){let r=typeof window<"u"?window.__joystick_i18n__:this.translations,o=t?.includes(".")?Mn(t,r):r[t];if(!r||!o)return"";let i=Object.entries(e);return _e(o,i)},fe=Cn;var Ln=function(e=!1,r=""){return s.is_function(r)?e?r():"<when> </when>":e?r.trim():"<when> </when>"},ue=Ln;var Rn={c:ae,component:ae,component_ssr:vt,e:le,each:le,i:fe,i18n:fe,w:ue,when:ue},me=Rn;var jt=(t={},e="",r={})=>{for(let n=0;n<t?.children?.length;n+=1){let o=t?.children[n];if(s.is_object(o)&&o.attributes&&o.attributes["js-i"]&&o.attributes["js-i"]===e){t.children[n]=r;break}s.is_object(o)&&jt(o,e,r)}},kt=jt;var he=class{constructor(e={}){xt(this,e)}cleanup_html(e="",r=null){let n=(typeof document>"u"?r:document).createElement("div");return n.innerHTML=e,n.innerHTML}compile_render_methods(e={},r={},n=null){return Object.entries(me).reduce((o,[i,c])=>{let a={...this||{}};if(i==="component"&&(a={...this||{},new_children:e,existing_children:r,ssr_tree:n?{push:d=>{n.push(d)}}:null,track_child:n?null:(d={})=>{let _=e[d?.id];_?_.push(d?.instance_id):e[d?.id]=[d?.instance_id]}}),i!=="component_ssr"){let d=i==="component"&&n?me.component_ssr:c;o[i]=d.bind(a)}return o},{})}async fetch_data(e={},r={},n={},o=this){if(o?.options?.data&&s.is_function(o.options.data)){let i=await o.options.data(e,r,n,o);return o.data=i,i}return null}render_child_dom_node_to_virtual_dom(e={}){return e.tagName==="WHEN"?[].flatMap.call(e?.childNodes||[],r=>r?.tagName==="WHEN"?this.render_child_dom_node_to_virtual_dom(r):this.render_dom_to_virtual_dom(r)):this.render_dom_to_virtual_dom(e)}parse_attributes(e={}){return Object.values(e).reduce((r={},n)=>(r[n.name]=n.value,r),{})}render_for_mount(){u(`ui.${this?.options?.test?.name||m()}.render_for_mount`,[]);let e={},r={},n=this.render_to_html(e,r),o=this.replace_when_tags(n),i=this.render_html_to_dom(o),c=this.render_dom_to_virtual_dom(i);return this.dom=i,this.DOMNode=i,this.virtual_dom=c,this.children=e,this.sync_children_to_parent(this.children,this.dom,this.virtual_dom),i}async render_for_ssr(e={},r={},n=[],o={}){return new Promise(async i=>{let c=await this.fetch_data(e,r,{},this),a={},d={},_=this.render_to_html(a,d,n,o?.linkedom_document),f={};for(let l=0;l<n?.length;l+=1){let w=n[l],j=await this.fetch_data(e,r,{},w),Ct=w.render_to_html(a,d,n,o?.linkedom_document);_=_.replace(`{{${w.id}:${w.instance_id}}}`,Ct),f[w?.id]=j}n.push(this);let h=this.replace_when_tags(_),p=g("css",{ssr_tree:n,is_email:o?.is_email||!1});i({html:h,css:p,data:{[this.id]:c,...f||{}}})})}render_html_to_dom(e=""){let r=document.createElement("template");return r.innerHTML=e,r?.content?.firstChild}replace_when_tags(e=""){return e}render_to_html(e={},r={},n=null,o={}){let i=this.compile_render_methods(e,r,n),c=this.options.render({...this||{},...i}),a=this.cleanup_html(c,o),d=this.sanitize_html(a);return this.wrap_html(d)}render_dom_to_virtual_dom(e={}){let r=e&&e.tagName&&e.tagName.toLowerCase()||"text";if(r==="text")return e.textContent;let n={tag_name:r,attributes:this.parse_attributes(e?.attributes),children:[].flatMap.call(e?.childNodes||[],c=>this.render_child_dom_node_to_virtual_dom(c))},o=e?.getAttribute("js-c"),i=e?.getAttribute("js-i");return o&&(n.component_id=o),i&&(n.instance_id=i),n}rerender(e={}){u(`ui.${this?.options?.test?.name||m()}.rerender`,[e]),g("lifecycle.onBeforeRender",{root_instance_id:this?.instance_id});let r={},n={...this.children||{}};this.children={},g("detach_event_listeners",{root_instance_id:this?.instance_id});let o=this.render_to_html(r,n),i=this.replace_when_tags(o),c=this.render_html_to_dom(i),a=this.render_dom_to_virtual_dom(c),d=G(this.virtual_dom,a);if(s.is_function(d)){let _=d(this.dom);this.dom=_,this.virtual_dom=a,this.children=r,this.sync_children_to_parent(this.children,this.dom,this.virtual_dom),this.DOMNode=_}g("attach_event_listeners",{root_instance_id:this?.instance_id}),g("lifecycle.onRender",{root_instance_id:this?.instance_id}),s.is_function(e?.after_set_state_rerender)&&e.after_set_state_rerender(),s.is_function(e?.after_refetch_data_rerender)&&e.after_refetch_data_rerender(),Re(n),g("css")}sanitize_html(e=""){let r=e.match(M.JOYSTICK_COMMENT_REGEX)||[];for(let n=0;n<r?.length;n+=1)e=e.replace(r[n],"");return e}set_interval(e=null,r=0){this.setInterval(e,r)}setInterval(e=null,r=0){u(`ui.${this?.options?.test?.name||m()}.set_interval`,[e,r]),e&&this.timers.push(window.setInterval(e,r))}set_state(e={},r=null){return this.setState(e,r)}setState(e={},r=null){u(`ui.${this?.options?.test?.name||m()}.set_state`,[e,r]),this.state=P(this,{...this.state||{},...e}),this.rerender({after_set_state_rerender:()=>{r&&s.is_function(r)&&r()}})}set_timeout(e=null,r=0){this.setTimeout(e,r)}setTimeout(e=null,r=0){u(`ui.${this?.options?.test?.name||m()}.set_timeout`,[e,r]),e&&this.timers.push(window.setTimeout(e,r))}sync_children_to_parent(e={},r={},n={}){if(r){let o=x(e),i=B(o);for(let c=0;c<i?.length;c+=1){let a=i[c],d=r.querySelector(`[js-i="${a?.instance_id}"]`);a.dom=d,a.DOMNode=d,kt(n,a?.instance_id,a?.virtual_dom)}}}wrap_html(e=""){let r=(this.options?.wrapper?.tagName||this.options?.wrapper?.tag_name)?.toLowerCase()||"div",n=this.options?.wrapper?.id||null,o=(this.options?.wrapper?.classList||this.options?.wrapper?.class_list)?.join(" ")||"";return`<${r} ${n?`id="${n}"`:""} ${o?`class="${o}"`:""} js-c="${this.id}" js-i="${this.instance_id}">${e}</${r}>`}},Et=he;var Tn=(t={})=>{try{return(e={})=>new Et({...t,...e})}catch(e){Ce("component",e)}},St=Tn;var Nn=()=>typeof window<"u"?window.__joystick_environment__:typeof process<"u"?"production":null,At=Nn;var Pn=(t={},e={})=>{e.replaceChildren(),e.appendChild(t)},Zn=(t,e={},r={})=>{u("ui.mount",[t,e,r]),g("reset_tree_for_hmr");let n=t({props:e}),o=n.render_for_mount();return S(n),g("lifecycle.onBeforeMount",{root_instance_id:n?.instance_id}),g("lifecycle.onBeforeRender",{root_instance_id:n?.instance_id}),g("css",{is_mount:!0}),Pn(o,r),g("attach_event_listeners",{root_instance_id:n?.instance_id}),g("lifecycle.onMount",{root_instance_id:n?.instance_id}),g("lifecycle.onRender",{root_instance_id:n?.instance_id}),window.addEventListener("beforeunload",()=>{g("lifecycle.onBeforeUnmount",{root_instance_id:n?.instance_id})}),n},Ot=Zn;var F=At(),zn=xe,qn=J,In={get:ve,track:ke},Gn=O.get,Bn=J("app",{}),Dn=O.set,Un=je,Fn=Ae,Mt={_external:{},_internal:{tree:[]},accounts:zn,cache:qn,component:St,env:{development:F==="development",staging:F==="staging",production:F==="production",test:F==="test"},external:In,get:Gn,global_state:Bn,id:m,mount:Ot,set:Dn,test:Un,upload:Fn};Le(Mt);var vc=Mt;export{zn as accounts,qn as cache,vc as default,In as external,Gn as get,Bn as global_state,Dn as set,Un as test,Fn as upload};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@joystick.js/ui-canary",
3
3
  "type": "module",
4
- "version": "0.0.0-canary.256",
4
+ "version": "0.0.0-canary.258",
5
5
  "description": "The UI framework for Joystick.",
6
6
  "main": "./dist/index.js",
7
7
  "scripts": {
@@ -25,7 +25,7 @@ const compile = (data_from_window = {}, request_from_window = {}, component_inst
25
25
  if (window.__joystick_data__[component_instance?.id]) {
26
26
  // NOTE: Keep data on window up to date so if a parent re-renders a child that's refetched it's data since
27
27
  // mount, the data rendered isn't stale.
28
- window.__joystick_data__[component_instance?.id] = data;
28
+ window.__joystick_data__[component_instance?.id] = atob(data);
29
29
  }
30
30
 
31
31
  if (!window?.__joystick_test__) {
@@ -2,7 +2,10 @@ import compile_data from "./compile.js";
2
2
 
3
3
  const load_data_from_window = (component_instance = {}) => {
4
4
  if (typeof window !== 'undefined') {
5
- const data_from_window = (window.__joystick_data__ && window.__joystick_data__[component_instance?.id]) || {};
5
+ const base64_data_from_window = (window.__joystick_data__ && window.__joystick_data__[component_instance?.id]) || null;
6
+ const data_as_json_string = atob(base64_data_from_window);
7
+ console.log({ data_as_json_string });
8
+ const data_from_window = base64_data_from_window ? JSON.parse(atob(base64_data_from_window)) : {};
6
9
  const request_from_window = window.__joystick_request__ || {};
7
10
  return compile_data(data_from_window, request_from_window, component_instance);
8
11
  }