@joystick.js/ui-canary 0.0.0-canary.9 → 0.0.0-canary.91

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.
Files changed (39) hide show
  1. package/_package.json +1 -1
  2. package/dist/api/get.js +1 -1
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/set.js +1 -1
  5. package/dist/attachJoystickToWindow.js +1 -1
  6. package/dist/component/class/data/compile.js +1 -1
  7. package/dist/component/class/data/loadDataFromWindow.js +1 -1
  8. package/dist/component/class/events/registerListeners.js +1 -1
  9. package/dist/component/class/index.js +10 -10
  10. package/dist/component/class/methods/compile.js +1 -1
  11. package/dist/component/class/options/allowedComponentOptions.js +1 -1
  12. package/dist/component/class/options/registerOptions.js +11 -11
  13. package/dist/component/class/options/validateOptions.js +1 -1
  14. package/dist/component/class/options/validators/index.js +1 -1
  15. package/dist/component/class/options/validators/test.js +1 -0
  16. package/dist/component/class/render/forMount.js +1 -1
  17. package/dist/component/class/render/getUpdatedDOM.js +1 -1
  18. package/dist/component/class/render/toHTML.js +1 -1
  19. package/dist/component/class/render/wrapHTML.js +1 -1
  20. package/dist/component/class/renderMethods/compile.js +1 -1
  21. package/dist/component/class/renderMethods/component.js +1 -1
  22. package/dist/component/class/renderMethods/i18n.js +1 -1
  23. package/dist/component/class/renderMethods/index.js +1 -1
  24. package/dist/component/index.js +10 -10
  25. package/dist/forms/validate.js +1 -1
  26. package/dist/forms/validators/custom.js +1 -0
  27. package/dist/forms/validators/index.js +1 -1
  28. package/dist/forms/validators/regex.js +1 -0
  29. package/dist/getExternal.js +1 -0
  30. package/dist/index.js +10 -10
  31. package/dist/lib/generateCookieHeader.js +1 -0
  32. package/dist/mount/index.js +1 -1
  33. package/dist/test/createFile.js +1 -0
  34. package/dist/test/index.js +1 -0
  35. package/dist/test/trackFunctionCall.js +1 -0
  36. package/dist/trackExternal.js +1 -0
  37. package/dist/upload/index.js +1 -1
  38. package/dist/websockets/client.js +1 -1
  39. package/package.json +1 -1
package/_package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@joystick.js/ui",
3
3
  "type": "module",
4
- "version": "1.0.0-beta.86",
4
+ "version": "1.0.0-beta.94",
5
5
  "developmentVersion": "1.0.0-beta.3438",
6
6
  "description": "A JavaScript framework for building user interfaces.",
7
7
  "main": "./dist/index.js",
package/dist/api/get.js CHANGED
@@ -1 +1 @@
1
- var o=(e="",r={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${r.message||r.reason||r}`)};var a=(e="",r=[])=>{try{console.error(`${e} failed with the following errors:`),r.forEach(t=>{console.log(t.message),t.stack&&console.log(t.stack)})}catch(t){o(e,t)}};var u=(e="{}")=>{try{return JSON.parse(e)}catch{return e}};var f=async(e={})=>{try{let r=await e.text();return u(r)}catch(r){o("api.get.handleParseResponse",r)}},x=(e="",r={})=>{try{return typeof window.fetch!="undefined"&&!r?.skip?new Promise((t,c)=>{let i=r.input?JSON.stringify(r.input):null,l=r.output?JSON.stringify(r.output):null,p=`${window.location.origin}/api/_getters/${e}?input=${i}&output=${l}`,d=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(p,{method:"GET",mode:"cors",headers:{...r?.headers||{},"x-joystick-csrf":d},credentials:"include"}).then(async s=>{let n=await f(s);return n?.errors?(a("get request",n.errors),c(n)):t(n)}).catch(s=>(a("get request",[s]),c({errors:[s]})))}):Promise.resolve()}catch(t){o("get request",t)}};export{x as default};
1
+ var t=(r="",e={})=>{throw new Error(`[joystick${r?`.${r}`:""}] ${e.message||e.reason||e}`)};var n=(r="",e=[])=>{try{console.error(`${r} failed with the following errors:`),e.forEach(o=>{console.log(o.message),o.stack&&console.log(o.stack)})}catch(o){t(r,o)}};var l=(r="{}")=>{try{return JSON.parse(r)}catch{return r}};var u=(r={})=>Object.entries(r).map(([e,o])=>`${e}=${o}`)?.join("; ");var m=async(r={})=>{try{let e=await r.text();return l(e)}catch(e){t("api.get.handleParseResponse",e)}},j=(r="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((o,i)=>{let d=e.input?JSON.stringify(e.input):null,f=e.output?JSON.stringify(e.output):null,w=`${window.location.origin}/api/_getters/${r}?input=${d}&output=${f}`,_=document.querySelector('[name="csrf"]')?.getAttribute("content"),c={...e?.headers||{},"x-joystick-csrf":_};return window?.__joystick_test__&&(c.Cookie=u({joystickLoginToken:window.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expires_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${r}_loading`]:!0}),fetch(w,{method:"GET",mode:"cors",headers:c,credentials:"include"}).then(async s=>{let a=await m(s);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${r}_loading`]:!1}),a?.errors?(n("get request",a.errors),i(a)):o(a)}).catch(s=>(n("get request",[s]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${r}_loading`]:!1}),i({errors:[s]})))}):Promise.resolve()}catch(o){t("get request",o)}};export{j as default};
package/dist/api/index.js CHANGED
@@ -1 +1 @@
1
- var s=(e="",r={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${r.message||r.reason||r}`)};var a=(e="",r=[])=>{try{console.error(`${e} failed with the following errors:`),r.forEach(t=>{console.log(t.message),t.stack&&console.log(t.stack)})}catch(t){s(e,t)}};var u=(e="{}")=>{try{return JSON.parse(e)}catch{return e}};var h=async(e={})=>{try{let r=await e.text();return u(r)}catch(r){s("api.get.handleParseResponse",r)}},l=(e="",r={})=>{try{return typeof window.fetch!="undefined"&&!r?.skip?new Promise((t,c)=>{let p=r.input?JSON.stringify(r.input):null,d=r.output?JSON.stringify(r.output):null,m=`${window.location.origin}/api/_getters/${e}?input=${p}&output=${d}`,n=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(m,{method:"GET",mode:"cors",headers:{...r?.headers||{},"x-joystick-csrf":n},credentials:"include"}).then(async o=>{let i=await h(o);return i?.errors?(a("get request",i.errors),c(i)):t(i)}).catch(o=>(a("get request",[o]),c({errors:[o]})))}):Promise.resolve()}catch(t){s("get request",t)}};var w=async(e={})=>{try{let r=await e.text();return u(r)}catch(r){s("api.set.handleParseResponse",r)}},y=(e={})=>{try{return JSON.stringify(e)}catch(r){s("api.set.getBody",r)}},f=(e="",r={})=>{try{return typeof window.fetch!="undefined"?new Promise((t,c)=>{let p=`${window.location.origin}/api/_setters/${e}`,d=y(r),m=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(p,{method:"POST",mode:"cors",headers:{...r?.headers||{},"Content-Type":"application/json","x-joystick-csrf":m},body:d,credentials:"include"}).then(async n=>{let o=await w(n);return o?.errors?(a("set request",o.errors),c(o)):t(o)}).catch(n=>(a("set request",[n]),c({errors:[n]})))}):Promise.resolve()}catch(t){s("set request",t)}};var T={get:l,set:f};export{T as default};
1
+ var s=(o="",e={})=>{throw new Error(`[joystick${o?`.${o}`:""}] ${e.message||e.reason||e}`)};var a=(o="",e=[])=>{try{console.error(`${o} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){s(o,r)}};var l=(o="{}")=>{try{return JSON.parse(o)}catch{return o}};var w=(o={})=>Object.entries(o).map(([e,r])=>`${e}=${r}`)?.join("; ");var k=async(o={})=>{try{let e=await o.text();return l(e)}catch(e){s("api.get.handleParseResponse",e)}},m=(o="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((r,i)=>{let u=e.input?JSON.stringify(e.input):null,f=e.output?JSON.stringify(e.output):null,_=`${window.location.origin}/api/_getters/${o}?input=${u}&output=${f}`,c=document.querySelector('[name="csrf"]')?.getAttribute("content"),n={...e?.headers||{},"x-joystick-csrf":c};return window?.__joystick_test__&&(n.Cookie=w({joystickLoginToken:window.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expires_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!0}),fetch(_,{method:"GET",mode:"cors",headers:n,credentials:"include"}).then(async t=>{let d=await k(t);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),d?.errors?(a("get request",d.errors),i(d)):r(d)}).catch(t=>(a("get request",[t]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),i({errors:[t]})))}):Promise.resolve()}catch(r){s("get request",r)}};var y=async(o={})=>{try{let e=await o.text();return l(e)}catch(e){s("api.set.handleParseResponse",e)}},h=(o={})=>{try{let e={...o};return e?.loader&&delete e.loader,JSON.stringify(e)}catch(e){s("api.set.getBody",e)}},p=(o="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,i)=>{let u=`${window.location.origin}/api/_setters/${o}`,f=h(e),_=document.querySelector('[name="csrf"]')?.getAttribute("content"),c={...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":_};return window?.__joystick_test__&&(c.Cookie=generateCookieHeader({joystickLoginToken:window?.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expirs_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!0}),fetch(u,{method:"POST",mode:"cors",headers:c,body:f,credentials:"include"}).then(async n=>{let t=await y(n);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),t?.errors?(a("set request",t.errors),i(t)):r(t)}).catch(n=>(a("set request",[n]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),i({errors:[n]})))}):Promise.resolve()}catch(r){s("set request",r)}};var N={get:m,set:p};export{N as default};
package/dist/api/set.js CHANGED
@@ -1 +1 @@
1
- var o=(e="",r={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${r.message||r.reason||r}`)};var a=(e="",r=[])=>{try{console.error(`${e} failed with the following errors:`),r.forEach(t=>{console.log(t.message),t.stack&&console.log(t.stack)})}catch(t){o(e,t)}};var i=(e="{}")=>{try{return JSON.parse(e)}catch{return e}};var l=async(e={})=>{try{let r=await e.text();return i(r)}catch(r){o("api.set.handleParseResponse",r)}},m=(e={})=>{try{return JSON.stringify(e)}catch(r){o("api.set.getBody",r)}},E=(e="",r={})=>{try{return typeof window.fetch!="undefined"?new Promise((t,c)=>{let d=`${window.location.origin}/api/_setters/${e}`,p=m(r),u=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(d,{method:"POST",mode:"cors",headers:{...r?.headers||{},"Content-Type":"application/json","x-joystick-csrf":u},body:p,credentials:"include"}).then(async s=>{let n=await l(s);return n?.errors?(a("set request",n.errors),c(n)):t(n)}).catch(s=>(a("set request",[s]),c({errors:[s]})))}):Promise.resolve()}catch(t){o("set request",t)}};export{E as default};
1
+ var t=(o="",e={})=>{throw new Error(`[joystick${o?`.${o}`:""}] ${e.message||e.reason||e}`)};var n=(o="",e=[])=>{try{console.error(`${o} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){t(o,r)}};var d=(o="{}")=>{try{return JSON.parse(o)}catch{return o}};var u=async(o={})=>{try{let e=await o.text();return d(e)}catch(e){t("api.set.handleParseResponse",e)}},w=(o={})=>{try{let e={...o};return e?.loader&&delete e.loader,JSON.stringify(e)}catch(e){t("api.set.getBody",e)}},S=(o="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,i)=>{let l=`${window.location.origin}/api/_setters/${o}`,f=w(e),_=document.querySelector('[name="csrf"]')?.getAttribute("content"),c={...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":_};return window?.__joystick_test__&&(c.Cookie=generateCookieHeader({joystickLoginToken:window?.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expirs_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!0}),fetch(l,{method:"POST",mode:"cors",headers:c,body:f,credentials:"include"}).then(async a=>{let s=await u(a);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),s?.errors?(n("set request",s.errors),i(s)):r(s)}).catch(a=>(n("set request",[a]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${o}_loading`]:!1}),i({errors:[a]})))}):Promise.resolve()}catch(r){t("set request",r)}};export{S as default};
@@ -1 +1 @@
1
- var t=(r="",o={})=>{throw new Error(`[joystick${r?`.${r}`:""}] ${o.message||o.reason||o}`)};var e=(r={})=>{try{typeof window!="undefined"&&(window.joystick={...window.joystick||{},settings:window.__joystick_settings__,...r})}catch(o){t("attachJoystickToWindow",o)}};export{e as default};
1
+ var r=(t="",o={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${o.message||o.reason||o}`)};var s=(t={})=>{try{let o=null;typeof window!="undefined"&&(o=window),typeof global!="undefined"&&(o=global),o&&(o.joystick={...o?.joystick||{},settings:o?.__joystick_settings__,...t})}catch(o){r("attachJoystickToWindow",o)}};export{s as default};
@@ -1 +1 @@
1
- var o=(t="",r={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${r.message||r.reason||r}`)};var c=(t="",r=[])=>{try{console.error(`${t} failed with the following errors:`),r.forEach(e=>{console.log(e.message),e.stack&&console.log(e.stack)})}catch(e){o(t,e)}};var p=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var g=async(t={})=>{try{let r=await t.text();return p(r)}catch(r){o("api.get.handleParseResponse",r)}},y=(t="",r={})=>{try{return typeof window.fetch!="undefined"&&!r?.skip?new Promise((e,s)=>{let i=r.input?JSON.stringify(r.input):null,d=r.output?JSON.stringify(r.output):null,f=`${window.location.origin}/api/_getters/${t}?input=${i}&output=${d}`,a=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(f,{method:"GET",mode:"cors",headers:{...r?.headers||{},"x-joystick-csrf":a},credentials:"include"}).then(async n=>{let u=await g(n);return u?.errors?(c("get request",u.errors),s(u)):e(u)}).catch(n=>(c("get request",[n]),s({errors:[n]})))}):Promise.resolve()}catch(e){o("get request",e)}};var F=async(t={})=>{try{let r=await t.text();return p(r)}catch(r){o("api.set.handleParseResponse",r)}},k=(t={})=>{try{return JSON.stringify(t)}catch(r){o("api.set.getBody",r)}},m=(t="",r={})=>{try{return typeof window.fetch!="undefined"?new Promise((e,s)=>{let i=`${window.location.origin}/api/_setters/${t}`,d=k(r),f=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(i,{method:"POST",mode:"cors",headers:{...r?.headers||{},"Content-Type":"application/json","x-joystick-csrf":f},body:d,credentials:"include"}).then(async a=>{let n=await F(a);return n?.errors?(c("set request",n.errors),s(n)):e(n)}).catch(a=>(c("set request",[a]),s({errors:[a]})))}):Promise.resolve()}catch(e){o("set request",e)}};var l={get:y,set:m};var h=t=>{try{return typeof t=="function"}catch(r){o("types.isFunction",r)}};var w=async(t={},r={},e={},s={})=>{try{if(s?.options?.data&&h(s.options.data)){let i=await s.options.data(t,r,e,s);return Promise.resolve(i)}return Promise.resolve()}catch(i){o("component.data.fetch",i)}};var x=(t={},r={},e={})=>{try{return{...t,refetch:async(s={})=>{let i=await w(l,r,s,e);return e.data=x(i,r,e),window.__joystick_data__[e?.id]=i,e.render({afterRefetchDataRender:()=>{e?.lifecycle?.onRefetchData&&e?.lifecycle?.onRefetchData(e)}}),i}}}catch(s){o("component.data.compile",s)}},v=x;export{v as default};
1
+ var o=(t="",e={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${e.message||e.reason||e}`)};var c=(t="",e=[])=>{try{console.error(`${t} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){o(t,r)}};var l=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var w=(t={})=>Object.entries(t).map(([e,r])=>`${e}=${r}`)?.join("; ");var b=async(t={})=>{try{let e=await t.text();return l(e)}catch(e){o("api.get.handleParseResponse",e)}},y=(t="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((r,i)=>{let s=e.input?JSON.stringify(e.input):null,f=e.output?JSON.stringify(e.output):null,p=`${window.location.origin}/api/_getters/${t}?input=${s}&output=${f}`,d=document.querySelector('[name="csrf"]')?.getAttribute("content"),a={...e?.headers||{},"x-joystick-csrf":d};return window?.__joystick_test__&&(a.Cookie=w({joystickLoginToken:window.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expires_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(p,{method:"GET",mode:"cors",headers:a,credentials:"include"}).then(async n=>{let u=await b(n);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),u?.errors?(c("get request",u.errors),i(u)):r(u)}).catch(n=>(c("get request",[n]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),i({errors:[n]})))}):Promise.resolve()}catch(r){o("get request",r)}};var E=async(t={})=>{try{let e=await t.text();return l(e)}catch(e){o("api.set.handleParseResponse",e)}},S=(t={})=>{try{let e={...t};return e?.loader&&delete e.loader,JSON.stringify(e)}catch(e){o("api.set.getBody",e)}},_=(t="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,i)=>{let s=`${window.location.origin}/api/_setters/${t}`,f=S(e),p=document.querySelector('[name="csrf"]')?.getAttribute("content"),d={...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":p};return window?.__joystick_test__&&(d.Cookie=generateCookieHeader({joystickLoginToken:window?.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expirs_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(s,{method:"POST",mode:"cors",headers:d,body:f,credentials:"include"}).then(async a=>{let n=await E(a);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),n?.errors?(c("set request",n.errors),i(n)):r(n)}).catch(a=>(c("set request",[a]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),i({errors:[a]})))}):Promise.resolve()}catch(r){o("set request",r)}};var h={get:y,set:_};var m=t=>{try{return typeof t=="function"}catch(e){o("types.isFunction",e)}};var x=async(t={},e={},r={},i={})=>{try{if(i?.options?.data&&m(i.options.data)){let s=await i.options.data(t,e,r,i);return Promise.resolve(s)}return Promise.resolve()}catch(s){o("component.data.fetch",s)}};var k=(t="",e=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[t]:[...window?.test?.functionCalls&&window?.test?.functionCalls[t]||[],{calledAt:new Date().toISOString(),args:e}]}})};var g="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),F=(t=16)=>{let e="",r=0;for(;r<t;)e+=g[Math.floor(Math.random()*(g.length-1))],r+=1;return e};var j=(t={},e={},r={})=>{try{return{...t,refetch:async(i={})=>{k(`ui.${r?.options?.test?.name||F()}.data.refetch`,[i]);let s=await x(h,e,i,r);return r.data=j(s,e,r),window.__joystick_data__[r?.id]&&(window.__joystick_data__[r?.id]=s),window?.__joystick_test__||r.render({afterRefetchDataRender:()=>{r?.lifecycle?.onRefetchData&&r?.lifecycle?.onRefetchData(r)}}),r.data}}}catch(i){o("component.data.compile",i)}},de=j;export{de as default};
@@ -1 +1 @@
1
- var o=(t="",r={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${r.message||r.reason||r}`)};var m=()=>typeof window=="undefined";var c=(t="",r=[])=>{try{console.error(`${t} failed with the following errors:`),r.forEach(e=>{console.log(e.message),e.stack&&console.log(e.stack)})}catch(e){o(t,e)}};var p=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var _=async(t={})=>{try{let r=await t.text();return p(r)}catch(r){o("api.get.handleParseResponse",r)}},y=(t="",r={})=>{try{return typeof window.fetch!="undefined"&&!r?.skip?new Promise((e,s)=>{let i=r.input?JSON.stringify(r.input):null,d=r.output?JSON.stringify(r.output):null,f=`${window.location.origin}/api/_getters/${t}?input=${i}&output=${d}`,a=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(f,{method:"GET",mode:"cors",headers:{...r?.headers||{},"x-joystick-csrf":a},credentials:"include"}).then(async n=>{let u=await _(n);return u?.errors?(c("get request",u.errors),s(u)):e(u)}).catch(n=>(c("get request",[n]),s({errors:[n]})))}):Promise.resolve()}catch(e){o("get request",e)}};var g=async(t={})=>{try{let r=await t.text();return p(r)}catch(r){o("api.set.handleParseResponse",r)}},E=(t={})=>{try{return JSON.stringify(t)}catch(r){o("api.set.getBody",r)}},w=(t="",r={})=>{try{return typeof window.fetch!="undefined"?new Promise((e,s)=>{let i=`${window.location.origin}/api/_setters/${t}`,d=E(r),f=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(i,{method:"POST",mode:"cors",headers:{...r?.headers||{},"Content-Type":"application/json","x-joystick-csrf":f},body:d,credentials:"include"}).then(async a=>{let n=await g(a);return n?.errors?(c("set request",n.errors),s(n)):e(n)}).catch(a=>(c("set request",[a]),s({errors:[a]})))}):Promise.resolve()}catch(e){o("set request",e)}};var l={get:y,set:w};var h=t=>{try{return typeof t=="function"}catch(r){o("types.isFunction",r)}};var x=async(t={},r={},e={},s={})=>{try{if(s?.options?.data&&h(s.options.data)){let i=await s.options.data(t,r,e,s);return Promise.resolve(i)}return Promise.resolve()}catch(i){o("component.data.fetch",i)}};var k=(t={},r={},e={})=>{try{return{...t,refetch:async(s={})=>{let i=await x(l,r,s,e);return e.data=k(i,r,e),window.__joystick_data__[e?.id]=i,e.render({afterRefetchDataRender:()=>{e?.lifecycle?.onRefetchData&&e?.lifecycle?.onRefetchData(e)}}),i}}}catch(s){o("component.data.compile",s)}},F=k;var or=(t={})=>{try{if(!m()&&window.__joystick_data__&&window.__joystick_data__[t?.id]){let r=window.__joystick_data__[t?.id]||{},e=window.__joystick_req__||{};return F(r,e,t)}return t?.data||{}}catch(r){o("component.loadDataFromWindow",r)}};export{or as default};
1
+ var o=(t="",e={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${e.message||e.reason||e}`)};var w=()=>typeof window=="undefined";var c=(t="",e=[])=>{try{console.error(`${t} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){o(t,r)}};var l=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var y=(t={})=>Object.entries(t).map(([e,r])=>`${e}=${r}`)?.join("; ");var S=async(t={})=>{try{let e=await t.text();return l(e)}catch(e){o("api.get.handleParseResponse",e)}},_=(t="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((r,i)=>{let a=e.input?JSON.stringify(e.input):null,f=e.output?JSON.stringify(e.output):null,p=`${window.location.origin}/api/_getters/${t}?input=${a}&output=${f}`,d=document.querySelector('[name="csrf"]')?.getAttribute("content"),s={...e?.headers||{},"x-joystick-csrf":d};return window?.__joystick_test__&&(s.Cookie=y({joystickLoginToken:window.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expires_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(p,{method:"GET",mode:"cors",headers:s,credentials:"include"}).then(async n=>{let u=await S(n);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),u?.errors?(c("get request",u.errors),i(u)):r(u)}).catch(n=>(c("get request",[n]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),i({errors:[n]})))}):Promise.resolve()}catch(r){o("get request",r)}};var q=async(t={})=>{try{let e=await t.text();return l(e)}catch(e){o("api.set.handleParseResponse",e)}},R=(t={})=>{try{let e={...t};return e?.loader&&delete e.loader,JSON.stringify(e)}catch(e){o("api.set.getBody",e)}},m=(t="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,i)=>{let a=`${window.location.origin}/api/_setters/${t}`,f=R(e),p=document.querySelector('[name="csrf"]')?.getAttribute("content"),d={...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":p};return window?.__joystick_test__&&(d.Cookie=generateCookieHeader({joystickLoginToken:window?.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expirs_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(a,{method:"POST",mode:"cors",headers:d,body:f,credentials:"include"}).then(async s=>{let n=await q(s);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),n?.errors?(c("set request",n.errors),i(n)):r(n)}).catch(s=>(c("set request",[s]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),i({errors:[s]})))}):Promise.resolve()}catch(r){o("set request",r)}};var h={get:_,set:m};var x=t=>{try{return typeof t=="function"}catch(e){o("types.isFunction",e)}};var k=async(t={},e={},r={},i={})=>{try{if(i?.options?.data&&x(i.options.data)){let a=await i.options.data(t,e,r,i);return Promise.resolve(a)}return Promise.resolve()}catch(a){o("component.data.fetch",a)}};var g=(t="",e=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[t]:[...window?.test?.functionCalls&&window?.test?.functionCalls[t]||[],{calledAt:new Date().toISOString(),args:e}]}})};var F="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),j=(t=16)=>{let e="",r=0;for(;r<t;)e+=F[Math.floor(Math.random()*(F.length-1))],r+=1;return e};var b=(t={},e={},r={})=>{try{return{...t,refetch:async(i={})=>{g(`ui.${r?.options?.test?.name||j()}.data.refetch`,[i]);let a=await k(h,e,i,r);return r.data=b(a,e,r),window.__joystick_data__[r?.id]&&(window.__joystick_data__[r?.id]=a),window?.__joystick_test__||r.render({afterRefetchDataRender:()=>{r?.lifecycle?.onRefetchData&&r?.lifecycle?.onRefetchData(r)}}),r.data}}}catch(i){o("component.data.compile",i)}},E=b;var we=(t={})=>{try{if(!w()){let e=window.__joystick_data__&&window.__joystick_data__[t?.id]||{},r=window.__joystick_req__||{};return E(e,r,t)}return t?.data||{}}catch(e){o("component.loadDataFromWindow",e)}};export{we as default};
@@ -1 +1 @@
1
- var i=(e="",o={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${o.message||o.reason||o}`)};var p=(e={})=>{try{return Object.entries(e).map(([o,n])=>{let[l,...t]=o.split(" ");return{type:l.toLowerCase(),selector:t.join(" "),handler:n}})}catch(o){i("component.events.serialize",o)}};var h=(e={},o={},n=[])=>{try{let l=Object.keys(e?.events||{})?.length>0?p(e?.events):[];for(let t=0;t<l?.length;t+=1){let r=l[t];n.push({...r,instance:e,elements:document.querySelectorAll(`body [js-i="${e.instanceId}"] ${r?.selector}`),handler:function(s){s?.target?.target&&(s.target=s?.target?.target),Object.defineProperty(s,"target",{value:s.composedPath()[0]}),r.handler(s,{...e||{},setState:e?.setState.bind(e),...o||{}})}})}if(e?.children){let t=Object.entries(e?.children)?.flatMap(([r,c])=>c);for(let r=0;r<t?.length;r+=1){let c=t[r];h(c,o,n)}}return n}catch(l){i("component.events.registerListenersFix.getListeners",l)}},d=(e={},o={})=>{try{let n=h(e,o,[]);console.log("GETTING CALLED",n);let l=n?.flatMap((t={})=>[].flatMap.call(t?.elements||[],r=>{let{elements:c=[],...s}=t||{};return{...s,element:r}}));for(let t=0;t<l?.length;t+=1){let{instance:r,element:c,elementSelector:s,type:a,handler:m}=l[t];console.log({element:c,type:a,handler:m}),c.addEventListener(a,m),r._eventListeners=[...r?._eventListeners||[],{instance:r,element:c,elementSelector:s,type:a,handler:m}]}}catch(n){i("component.events.registerListenersFix",n)}},L=d;export{L as default};
1
+ var c=(e="",t={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${t.message||t.reason||t}`)};var m=(e={})=>{try{return Object.entries(e).map(([t,o])=>{let[s,...n]=t.split(" ");return{type:s.toLowerCase(),selector:n.join(" "),handler:o}})}catch(t){c("component.events.serialize",t)}};var f="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),w=(e=16)=>{let t="",o=0;for(;o<e;)t+=f[Math.floor(Math.random()*(f.length-1))],o+=1;return t};var p=(e="",t=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[e]:[...window?.test?.functionCalls&&window?.test?.functionCalls[e]||[],{calledAt:new Date().toISOString(),args:t}]}})};var u=(e={},t={},o=[])=>{try{let s=Object.keys(e?.events||{})?.length>0?m(e?.events):[];for(let n=0;n<s?.length;n+=1){let r=s[n];o.push({...r,instance:e,elements:document.querySelectorAll(`body [js-i="${e.instanceId}"] ${r?.selector}`),handler:function(i){r.handler(i,{...e||{},setState:e?.setState.bind(e),...t||{}}),p(`ui.${e?.options?.test?.name||w()}.events.${r.type}.selector_${r?.selector}`,[i,{...e||{},setState:e?.setState.bind(e),...t||{}}])}})}if(e?.children){let n=Object.entries(e?.children)?.flatMap(([r,l])=>l);for(let r=0;r<n?.length;r+=1){let l=n[r];u(l,t,o)}}return o}catch(s){c("component.eve!nts.registerListenersFix.getListeners",s)}},h=(e={},t={})=>{try{let s=u(e,t,[])?.flatMap((n={})=>[].flatMap.call(n?.elements||[],r=>{let{elements:l=[],...i}=n||{};return{...i,element:r}}));for(let n=0;n<s?.length;n+=1){let{instance:r,element:l,elementSelector:i,type:a,handler:d}=s[n];l.addEventListener(a,d),r._eventListeners=[...r?._eventListeners||[],{instance:r,element:l,elementSelector:i,type:a,handler:d}]}}catch(o){c("component.events.registerListenersFix",o)}},L=h;export{L as default};
@@ -1,21 +1,21 @@
1
- var Kt=Object.create;var oe=Object.defineProperty;var Wt=Object.getOwnPropertyDescriptor;var Jt=Object.getOwnPropertyNames;var Qt=Object.getPrototypeOf,Yt=Object.prototype.hasOwnProperty;var Xt=t=>oe(t,"__esModule",{value:!0});var er=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tr=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Jt(e))!Yt.call(t,o)&&o!=="default"&&oe(t,o,{get:()=>e[o],enumerable:!(r=Wt(e,o))||r.enumerable});return t},rr=t=>tr(Xt(oe(t!=null?Kt(Qt(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var yt=er(Y=>{(function(t,e){if(typeof define=="function"&&define.amd)define(["exports"],e);else if(typeof Y!="undefined")e(Y);else{var r={exports:{}};e(r.exports),t.index=r.exports}})(Y,function(t){"use strict";function e(p){return e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},e(p)}function r(p,c){return c&&(e(c)==="object"||typeof c=="function")?c:o(p)}function o(p){if(p===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return p}function i(p){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(c){return c.__proto__||Object.getPrototypeOf(c)},i(p)}function s(p,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function");p.prototype=Object.create(c&&c.prototype,{constructor:{value:p,writable:!0,configurable:!0}}),c&&d(p,c)}function d(p,c){return d=Object.setPrototypeOf||function(b,O){return b.__proto__=O,b},d(p,c)}function a(p,c){if(!(p instanceof c))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.diff=void 0;var l=function p(c,b){a(this,p),this.type=c,this.path=b?b.toString():""},g=function(p){function c(b,O,h){var A;return a(this,c),A=r(this,i(c).call(this,"E",b)),A.lhs=O,A.rhs=h,A}return s(c,p),c}(l),y=function(p){function c(b,O,h,A){var $;return a(this,c),$=r(this,i(c).call(this,"M",b)),$.item=O,$.lhsIndex=h,$.rhsIndex=A,$}return s(c,p),c}(l),w=function(p){function c(b,O){var h;return a(this,c),h=r(this,i(c).call(this,"D",b)),h.lhs=O,h}return s(c,p),c}(l),v=function(p){function c(b,O){var h;return a(this,c),h=r(this,i(c).call(this,"A",b)),h.rhs=O,h}return s(c,p),c}(l),f=function(p,c){return p?"".concat(p,".").concat(c):c};t.diff=function(c,b){var O=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},h=[],A=O.matchKey,$=O.types||["E","A","D","M"],Gt=function(F,x,E,D){F.forEach(function(L,M){var T=x.findIndex(function(k){return k[D]===L[D]});-1<T?(-1<$.indexOf("M")&&M!==T&&h.push(new y(E,L,M,T)),Z(L,x[T],f(E,T))):-1<$.indexOf("D")&&h.push(new w(E,L))}),x.forEach(function(L,M){var T=F.findIndex(function(k){return L[D]===k[D]});-1<$.indexOf("A")&&T===-1&&h.push(new v(f(E,M),L))})},Z=function(F,x,E){var D=Object.prototype.toString.call(F),L=Object.prototype.toString.call(x);if(-1<$.indexOf("E")&&D!==L)return h.push(new g(E,F,x)),!1;if(D==="[object Object]")Object.getOwnPropertyNames(F).forEach(function(k){Object.prototype.hasOwnProperty.call(x,k)?Z(F[k],x[k],f(E,k)):-1<$.indexOf("D")&&h.push(new w(f(E,k),F[k]))}),Object.getOwnPropertyNames(x).forEach(function(k){-1<$.indexOf("A")&&!Object.prototype.hasOwnProperty.call(F,k)&&h.push(new v(f(E,k),x[k]))});else if(D!=="[object Array]")-1<$.indexOf("E")&&F!==x&&h.push(new g(E,F,x));else if(A)Gt(F,x,E,A);else{var M=F.length-1,T=x.length-1;if(-1<$.indexOf("D"))for(;M>T;)h.push(new w(f(E,M),F[M--]));if(-1<$.indexOf("A"))for(;T>M;)h.push(new v(f(E,T),x[T--]));for(;0<=M;--M)Z(F[M],x[M],f(E,M))}};return Z(c,b),h}})});var n=(t="",e={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${e.message||e.reason||e}`)};var pe=["render"];var ue=(t={})=>{try{return pe.every(e=>Object.keys(t).includes(e))}catch(e){n("component.hasAllRequiredOptions",e)}};var fe=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","translations","url","websockets","wrapper"];var he=t=>{try{return typeof t=="undefined"}catch(e){n("types.isUndefined",e)}},we=t=>{try{return t===null}catch(e){n("types.isNull",e)}};var j=t=>{try{return!!Array.isArray(t)}catch(e){n("types.isArray",e)}};var m=t=>{try{return typeof t=="function"}catch(e){n("types.isFunction",e)}};var u=t=>{try{return!!(t&&typeof t=="object"&&!Array.isArray(t))}catch(e){n("types.isObject",e)}};var C=t=>{try{return typeof t=="string"}catch(e){n("types.isString",e)}};var ye=(t=null)=>{try{!C(t)&&!m(t)&&!u(t)&&n("component.optionValidators.css","options.css must be a string, function returning a string, or an object returning breakpoints.")}catch(e){n("component.optionValidators.css",e)}};var xe=["readystatechange","pointerlockchange","pointerlockerror","beforecopy","beforecut","beforepaste","freeze","resume","search","securitypolicyviolation","visibilitychange","fullscreenchange","fullscreenerror","webkitfullscreenchange","webkitfullscreenerror","beforexrselect","abort","blur","cancel","canplay","canplaythrough","change","click","close","contextmenu","cuechange","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","formdata","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","pause","play","playing","progress","ratechange","reset","resize","scroll","seeked","seeking","select","stalled","submit","suspend","timeupdate","toggle","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel","auxclick","gotpointercapture","lostpointercapture","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","selectstart","selectionchange","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitionend","transitioncancel","copy","cut","paste","pointerrawupdate"];var ge=(t=null)=>{try{u(t)||n("component.optionValidators.events","options.events must be an object.");for(let e of Object.keys(t)){let[r]=e.split(" ");xe.includes(r)||n("component.optionValidators.events",`${r} is not a supported JavaScript event type.`)}for(let[e,r]of Object.entries(t))m(r)||n("component.optionValidators.events",`options.events.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.events",e)}};var be=["onBeforeMount","onMount","onUpdateProps","onBeforeUnmount","onRefetchData"];var $e=(t=null)=>{try{u(t)||n("component.optionValidators.lifecycle","options.lifecycle must be an object.");for(let[e,r]of Object.entries(t))be.includes(e)||n("component.optionValidators.lifecycle",`options.lifecycle.${e} is not supported.`),m(r)||n("component.optionValidators.lifecycle",`options.lifecycle.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.lifecycle",e)}};var Fe=(t=null)=>{try{u(t)||n("component.optionValidators.methods","options.methods must be an object.");for(let[e,r]of Object.entries(t))m(r)||n("component.optionValidators.methods",`options.methods.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.methods",e)}};var Ee=(t=null)=>{typeof t!="string"&&n("component.optionValidators.name","options.name must be a string.")};var Me=(t=null)=>{try{m(t)||n("component.optionValidators.render","options.render must be a function returning a string.")}catch(e){n("component.optionValidators.render",e)}};var ke=(t=null)=>{try{m(t)||n("component.optionValidators.websockets","options.websockets must be a function returning an object.")}catch(e){n("component.optionValidators.websockets",e)}};var Se=(t=null)=>{try{u(t)||n("component.optionValidators.wrapper","options.wrapper must be an object.");for(let[e,r]of Object.entries(t))e==="id"&&!C(r)&&n("component.optionValidators.wrapper",`options.wrapper.${e} must be assigned a string.`),e==="classList"&&!j(r)&&n("component.optionValidators.wrapper",`options.wrapper.${e} must be assigned an array of strings.`)}catch(e){n("component.optionValidators.wrapper",e)}};var Oe={css:ye,events:ge,lifecycle:$e,methods:Fe,name:Ee,render:Me,websockets:ke,wrapper:Se};var Te=(t={})=>{try{ue(t)||n("component.validateOptions",`component options must include ${required.options.join(",")}.`);for(let[e,r]of Object.entries(t)){fe.includes(e)||n("component.validateOptions",`${e} is not supported by joystick.component.`);let o=Oe[e];o&&m(o)&&o(r)}}catch(e){n("component.validateOptions",e)}};var ve="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),U=(t=16)=>{let e="",r=0;for(;r<t;)e+=ve[Math.floor(Math.random()*(ve.length-1))],r+=1;return e};var B=(t=[],e="")=>{try{return(j(t)&&t.find(o=>o?.componentId===e))?.data||{}}catch(r){n("findComponentDataFromSSR",r)}};var Ce=(()=>{let t=0;return(e,r)=>{clearTimeout(t),t=setTimeout(e,r)}})();var P=t=>!!(t&&typeof t=="object"&&!Array.isArray(t));var Re=t=>typeof t=="string";var Ae=/^(?: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}))$/,Le=(t,e="")=>{if(!e)return!0;if(e&&!Re(e))return!1;let r=e?e.replace(/[- ]+/g,""):"";return t===!0?r.match(new RegExp(Ae)):!r.match(new RegExp(Ae))};var De=/^((?:[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])+)\]))$/,je=(t,e="")=>t===!0?!!e.match(De):!e.match(De);var Pe=(t,e="")=>t===e;var Ie=(t,e="")=>t===e;var _e=(t,e="")=>e.length<=t;var Ne=(t,e="")=>e.length>=t;var Ve=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,Ue=(t,e="")=>t===!0?!!e.match(Ve):!e.match(Ve);var qe={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}$/},ze=(t,e="")=>{let r=P(t)&&t.iso?qe[t.iso||"US"]:qe.US;return P(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var He=(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};var Ze=/^(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-]+)*))?$/,Be=(t,e="")=>t===!0?!!e.match(Ze):!e.match(Ze);var Ge=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,Ke=(t,e="")=>t===!0?!!e.match(Ge):!e.match(Ge);var We=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,Je=(t,e="")=>t===!0?!!e.match(We):!e.match(We);var Qe=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,Ye=(t,e="")=>t===!0?!!e.match(Qe):!e.match(Qe);var Xe={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},et=(t,e="")=>{let r=P(t)&&t.iso?Xe[t.iso||"EU"]:Xe.EU;return P(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var tt={creditCard:Le,email:je,equals:Pe,matches:Ie,maxLength:_e,minLength:Ne,phone:Ue,postalCode:ze,required:He,semVer:Be,slug:Ke,strongPassword:Je,url:Ye,vat:et};var rt=class{constructor(e,r={}){this.fieldsToListenToForChanges=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.defaultValidationErrors={required:()=>"This field is required.",email:()=>"Must be a valid email.",creditCard:()=>"Must be a valid credit card number.",equals:o=>`Value must equal ${o}.`,matches:o=>`Field must match ${o}.`,maxLength:o=>`Field value can be no greater than ${o}.`,minLength:o=>`Field value can be no less than ${o}.`,phone:()=>"Field value must be a valid telephone number.",postalCode:()=>"Field value must be a valid postal code.",semVer:()=>"Field value must be a valid semantic version.",slug:()=>"Field value must be a valid URL slug.",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("[validateForm] Must pass an HTML <form></form> element to validate."),this.form=e,this.setOptions(r),this.attachEventListeners()}setOptions(e={}){this.rules=e.rules||{},this.messages=e.messages||{},this.onSubmit=e.onSubmit,this.fields=this.serialize()}updateOptions(e={}){this.setOptions(e)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let o=this.form.querySelector(`[name="${r}"]`),i=o?.type;return{listenForChanges:this.fieldsToListenToForChanges.includes(i),type:i,name:r,element:o,validations:Object.entries(this.rules[r]).map(([d,a])=>({name:d,rule:a,valid:!1})).sort((d,a)=>d.name>a.name?1:-1),errorMessages:this.messages[r]?Object.keys(this.messages[r]):{}}})}attachEventListeners(){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 o=this.form.listeners[r];this.form.removeEventListener("submit",o)}this.form.addEventListener("submit",e),this.form.listeners=[...this.form.listeners||[],e]}this.fields.forEach(e=>{if(e?.element&&e?.listenForChanges){let r=()=>{Ce(()=>{this.validate(e.name)},100)};e.element.removeEventListener("input",r),e.element.addEventListener("input",r),e.element.removeEventListener("change",r),e.element.addEventListener("change",r)}})}validate(e=null){if(e){this.clearExistingErrors();let r=this.fields.find(o=>o.name===e);return this.validateField(r),this.checkIfValid()}else return this.clearExistingErrors(),this.fields.forEach(r=>{this.validateField(r)}),this.checkIfValid()}checkIfValid(){return!this.fields.map(r=>r.validations.some(o=>!o.valid)).includes(!0)}validateField(e){let r=this.form.querySelector(`[name="${e.name}"]`),o=["checkbox","radio"].includes(e.type),i=o?null:e?.element?.value?.trim(),s=o?e?.element?.checked:null;e.validations.forEach(a=>{if(this.isValidValue(o,o?s:i,a))this.markValidationAsValid(e,a.name);else{let l=this.messages[e.name]&&this.messages[e.name][a.name];this.markValidationAsInvalid(e,a.name),this.renderError(e.element,l||this.defaultValidationErrors[a.name](a.rule,i))}});let d=e.validations.some(a=>!a.valid);return d&&(r.classList.add("error"),r.focus()),d||(r.classList.remove("error"),this.clearExistingError(e.name)),!d}markValidationAsInvalid(e,r){let i=[...e.validations].find(s=>s.name===r);i.valid=!1}markValidationAsValid(e,r){let i=[...e.validations].find(s=>s.name===r);i.valid=!0}isValidValue(e,r,o){let i=tt[o.name];return i?i(o.rule,r,{isChecked:e}):!0}clearExistingErrors(){this.form&&this.form.querySelectorAll(".input-hint.error").forEach(e=>e.remove())}clearExistingError(e=""){let r=document.getElementById(`error-${e}`);r&&r.remove()}renderError(e,r=""){if(e){this.clearExistingError(e.name);let o=document.createElement("p");o.classList.add("input-hint"),o.classList.add("error"),o.setAttribute("id",`error-${e.name}`),o.innerText=r,e.after(o)}}},or=(t,e)=>new Promise((r,o)=>{try{new rt(t,e).validate()?r():o()}catch(i){console.warn(i)}}),ot=or;var it=(t={},e={})=>{try{return[...Object.keys(e),...Object.keys(t)].filter((o,i,s)=>s.indexOf(o)===i).reduce((o,i)=>{let s=e[i],d=t[i]||null,a=!he(s)&&!we(s);return o[i]=a?s:d,o},{})}catch(r){n("component.props.compile",r)}};var nt=(t="",e={})=>{try{let r="";if(t&&C(t))return r=t,r;if(t&&m(t))return r=t(e),r;if(t&&u(t)){let o=t?.print&&(C(t?.print)||m(t?.print)),i=t?.min&&u(t?.min),s=t?.min?.width&&u(t?.min?.width),d=t?.min?.height&&u(t?.min?.height),a=t?.max&&u(t?.max),l=t?.max?.width&&u(t?.max?.width),g=t?.max?.height&&u(t?.max?.height);if(o&&(r+=`
1
+ var er=Object.create;var ie=Object.defineProperty;var tr=Object.getOwnPropertyDescriptor;var rr=Object.getOwnPropertyNames;var or=Object.getPrototypeOf,ir=Object.prototype.hasOwnProperty;var nr=t=>ie(t,"__esModule",{value:!0});var sr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ar=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of rr(e))!ir.call(t,o)&&o!=="default"&&ie(t,o,{get:()=>e[o],enumerable:!(r=tr(e,o))||r.enumerable});return t},dr=t=>ar(nr(ie(t!=null?er(or(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var kt=sr(X=>{(function(t,e){if(typeof define=="function"&&define.amd)define(["exports"],e);else if(typeof X!="undefined")e(X);else{var r={exports:{}};e(r.exports),t.index=r.exports}})(X,function(t){"use strict";function e(p){return e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(d){return typeof d}:function(d){return d&&typeof Symbol=="function"&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d},e(p)}function r(p,d){return d&&(e(d)==="object"||typeof d=="function")?d:o(p)}function o(p){if(p===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return p}function i(p){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(d){return d.__proto__||Object.getPrototypeOf(d)},i(p)}function s(p,d){if(typeof d!="function"&&d!==null)throw new TypeError("Super expression must either be null or a function");p.prototype=Object.create(d&&d.prototype,{constructor:{value:p,writable:!0,configurable:!0}}),d&&c(p,d)}function c(p,d){return c=Object.setPrototypeOf||function(F,_){return F.__proto__=_,F},c(p,d)}function a(p,d){if(!(p instanceof d))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.diff=void 0;var m=function p(d,F){a(this,p),this.type=d,this.path=F?F.toString():""},g=function(p){function d(F,_,h){var A;return a(this,d),A=r(this,i(d).call(this,"E",F)),A.lhs=_,A.rhs=h,A}return s(d,p),d}(m),y=function(p){function d(F,_,h,A){var k;return a(this,d),k=r(this,i(d).call(this,"M",F)),k.item=_,k.lhsIndex=h,k.rhsIndex=A,k}return s(d,p),d}(m),x=function(p){function d(F,_){var h;return a(this,d),h=r(this,i(d).call(this,"D",F)),h.lhs=_,h}return s(d,p),d}(m),j=function(p){function d(F,_){var h;return a(this,d),h=r(this,i(d).call(this,"A",F)),h.rhs=_,h}return s(d,p),d}(m),f=function(p,d){return p?"".concat(p,".").concat(d):d};t.diff=function(d,F){var _=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},h=[],A=_.matchKey,k=_.types||["E","A","D","M"],Xt=function(E,$,M,D){E.forEach(function(L,S){var v=$.findIndex(function(T){return T[D]===L[D]});-1<v?(-1<k.indexOf("M")&&S!==v&&h.push(new y(M,L,S,v)),B(L,$[v],f(M,v))):-1<k.indexOf("D")&&h.push(new x(M,L))}),$.forEach(function(L,S){var v=E.findIndex(function(T){return L[D]===T[D]});-1<k.indexOf("A")&&v===-1&&h.push(new j(f(M,S),L))})},B=function(E,$,M){var D=Object.prototype.toString.call(E),L=Object.prototype.toString.call($);if(-1<k.indexOf("E")&&D!==L)return h.push(new g(M,E,$)),!1;if(D==="[object Object]")Object.getOwnPropertyNames(E).forEach(function(T){Object.prototype.hasOwnProperty.call($,T)?B(E[T],$[T],f(M,T)):-1<k.indexOf("D")&&h.push(new x(f(M,T),E[T]))}),Object.getOwnPropertyNames($).forEach(function(T){-1<k.indexOf("A")&&!Object.prototype.hasOwnProperty.call(E,T)&&h.push(new j(f(M,T),$[T]))});else if(D!=="[object Array]")-1<k.indexOf("E")&&E!==$&&h.push(new g(M,E,$));else if(A)Xt(E,$,M,A);else{var S=E.length-1,v=$.length-1;if(-1<k.indexOf("D"))for(;S>v;)h.push(new x(f(M,S),E[S--]));if(-1<k.indexOf("A"))for(;v>S;)h.push(new j(f(M,v),$[v--]));for(;0<=S;--S)B(E[S],$[S],f(M,S))}};return B(d,F),h}})});var n=(t="",e={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${e.message||e.reason||e}`)};var fe=["render"];var he=(t={})=>{try{return fe.every(e=>Object.keys(t).includes(e))}catch(e){n("component.hasAllRequiredOptions",e)}};var we=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","test","translations","url","websockets","wrapper"];var ye=t=>{try{return typeof t=="undefined"}catch(e){n("types.isUndefined",e)}},ge=t=>{try{return t===null}catch(e){n("types.isNull",e)}};var P=t=>{try{return!!Array.isArray(t)}catch(e){n("types.isArray",e)}};var l=t=>{try{return typeof t=="function"}catch(e){n("types.isFunction",e)}};var u=t=>{try{return!!(t&&typeof t=="object"&&!Array.isArray(t))}catch(e){n("types.isObject",e)}};var O=t=>{try{return typeof t=="string"}catch(e){n("types.isString",e)}};var xe=(t=null)=>{try{!O(t)&&!l(t)&&!u(t)&&n("component.optionValidators.css","options.css must be a string, function returning a string, or an object returning breakpoints.")}catch(e){n("component.optionValidators.css",e)}};var be=["readystatechange","pointerlockchange","pointerlockerror","beforecopy","beforecut","beforepaste","freeze","resume","search","securitypolicyviolation","visibilitychange","fullscreenchange","fullscreenerror","webkitfullscreenchange","webkitfullscreenerror","beforexrselect","abort","blur","cancel","canplay","canplaythrough","change","click","close","contextmenu","cuechange","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","formdata","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","pause","play","playing","progress","ratechange","reset","resize","scroll","seeked","seeking","select","stalled","submit","suspend","timeupdate","toggle","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel","auxclick","gotpointercapture","lostpointercapture","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","selectstart","selectionchange","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitionend","transitioncancel","copy","cut","paste","pointerrawupdate"];var $e=(t=null)=>{try{u(t)||n("component.optionValidators.events","options.events must be an object.");for(let e of Object.keys(t)){let[r]=e.split(" ");be.includes(r)||n("component.optionValidators.events",`${r} is not a supported JavaScript event type.`)}for(let[e,r]of Object.entries(t))l(r)||n("component.optionValidators.events",`options.events.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.events",e)}};var Fe=["onBeforeMount","onMount","onUpdateProps","onBeforeUnmount","onRefetchData"];var ke=(t=null)=>{try{u(t)||n("component.optionValidators.lifecycle","options.lifecycle must be an object.");for(let[e,r]of Object.entries(t))Fe.includes(e)||n("component.optionValidators.lifecycle",`options.lifecycle.${e} is not supported.`),l(r)||n("component.optionValidators.lifecycle",`options.lifecycle.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.lifecycle",e)}};var Ee=(t=null)=>{try{u(t)||n("component.optionValidators.methods","options.methods must be an object.");for(let[e,r]of Object.entries(t))l(r)||n("component.optionValidators.methods",`options.methods.${e} must be assigned a function.`)}catch(e){n("component.optionValidators.methods",e)}};var Me=(t=null)=>{typeof t!="string"&&n("component.optionValidators.name","options.name must be a string.")};var Se=(t=null)=>{try{l(t)||n("component.optionValidators.render","options.render must be a function returning a string.")}catch(e){n("component.optionValidators.render",e)}};var Te=(t=null)=>{try{u(t)||n("component.optionValidators.test","options.test must be an object."),t?.name&&!O(t.name)&&n("component.optionValidators.test","options.test.name must be assigned a string.")}catch(e){n("component.optionValidators.test",e)}};var Oe=(t=null)=>{try{l(t)||n("component.optionValidators.websockets","options.websockets must be a function returning an object.")}catch(e){n("component.optionValidators.websockets",e)}};var Ce=(t=null)=>{try{u(t)||n("component.optionValidators.wrapper","options.wrapper must be an object.");for(let[e,r]of Object.entries(t))e==="id"&&!O(r)&&n("component.optionValidators.wrapper",`options.wrapper.${e} must be assigned a string.`),e==="classList"&&!P(r)&&n("component.optionValidators.wrapper",`options.wrapper.${e} must be assigned an array of strings.`)}catch(e){n("component.optionValidators.wrapper",e)}};var _e={css:xe,events:$e,lifecycle:ke,methods:Ee,name:Me,render:Se,test:Te,websockets:Oe,wrapper:Ce};var ve=(t={})=>{try{he(t)||n("component.validateOptions",`component options must include ${required.options.join(",")}.`);for(let[e,r]of Object.entries(t)){we.includes(e)||n("component.validateOptions",`${e} is not supported by joystick.component.`);let o=_e[e];o&&l(o)&&o(r)}}catch(e){n("component.validateOptions",e)}};var je="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),w=(t=16)=>{let e="",r=0;for(;r<t;)e+=je[Math.floor(Math.random()*(je.length-1))],r+=1;return e};var G=(t=[],e="")=>{try{return(P(t)&&t.find(o=>o?.componentId===e))?.data||{}}catch(r){n("findComponentDataFromSSR",r)}};var Re=(()=>{let t=0;return(e,r)=>{clearTimeout(t),t=setTimeout(e,r)}})();var I=t=>!!(t&&typeof t=="object"&&!Array.isArray(t));var Ae=t=>typeof t=="string";var Le=/^(?: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}))$/,De=(t,e="")=>{if(!e)return!0;if(e&&!Ae(e))return!1;let r=e?e.replace(/[- ]+/g,""):"";return t===!0?r.match(new RegExp(Le)):!r.match(new RegExp(Le))};var Pe=(t="",e="")=>t(e);var Ie=/^((?:[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])+)\]))$/,Ve=(t,e="")=>t===!0?!!e.match(Ie):!e.match(Ie);var Ne=(t,e="")=>t===e;var Ue=(t,e="")=>t===e;var qe=(t,e="")=>e.length<=t;var ze=(t,e="")=>e.length>=t;var He=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,Ze=(t,e="")=>t===!0?!!e.match(He):!e.match(He);var Be={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}$/},Ge=(t,e="")=>{let r=I(t)&&t.iso?Be[t.iso||"US"]:Be.US;return I(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var Ke=(t="",e="")=>(e?.match(t)||[])?.length>0;var We=(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};var Je=/^(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-]+)*))?$/,Qe=(t,e="")=>t===!0?!!e.match(Je):!e.match(Je);var Ye=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,Xe=(t,e="")=>t===!0?!!e.match(Ye):!e.match(Ye);var et=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,tt=(t,e="")=>t===!0?!!e.match(et):!e.match(et);var rt=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,ot=(t,e="")=>t===!0?!!e.match(rt):!e.match(rt);var it={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},nt=(t,e="")=>{let r=I(t)&&t.iso?it[t.iso||"EU"]:it.EU;return I(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var st={creditCard:De,custom:Pe,email:Ve,equals:Ne,matches:Ue,maxLength:qe,minLength:ze,phone:Ze,postalCode:Ge,regex:Ke,required:We,semVer:Qe,slug:Xe,strongPassword:tt,url:ot,vat:nt};var at=class{constructor(e,r={}){this.fieldsToListenToForChanges=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.defaultValidationErrors={creditCard:()=>"Must be a valid credit card number.",custom:()=>"Must return true.",email:()=>"Must be a valid email.",equals:o=>`Value must equal ${o}.`,matches:o=>`Field must match ${o}.`,maxLength:o=>`Field value can be no greater than ${o}.`,minLength:o=>`Field value can be no less than ${o}.`,phone:()=>"Field value must be a valid telephone number.",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.",slug:()=>"Field value must be a valid URL slug.",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("[validateForm] Must pass an HTML <form></form> element to validate."),this.form=e,this.setOptions(r),this.attachEventListeners()}setOptions(e={}){this.rules=e.rules||{},this.messages=e.messages||{},this.onSubmit=e.onSubmit,this.onRenderError=e.onRenderError,this.fields=this.serialize()}updateOptions(e={}){this.setOptions(e)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let o=this.form.querySelector(`[name="${r}"]`),i=o?.type;return{listenForChanges:this.fieldsToListenToForChanges.includes(i),type:i,name:r,element:o,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]):{}}})}attachEventListeners(){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 o=this.form.listeners[r];this.form.removeEventListener("submit",o)}this.form.addEventListener("submit",e),this.form.listeners=[...this.form.listeners||[],e]}this.fields.forEach(e=>{if(e?.element&&e?.listenForChanges){let r=()=>{Re(()=>{this.validate(e.name)},100)};e.element.removeEventListener("input",r),e.element.addEventListener("input",r),e.element.removeEventListener("change",r),e.element.addEventListener("change",r)}})}validate(e=null){if(e){let r=this.fields.find(o=>o.name===e);return this.clearExistingError(e),this.validateField(r),this.checkIfValid()}else return this.clearExistingErrors(),this.fields.forEach(r=>{this.validateField(r)}),this.checkIfValid()}checkIfValid(){return!this.fields.map(r=>r.validations.some(o=>!o.valid)).includes(!0)}validateField(e){let r=this.form.querySelector(`[name="${e.name}"]`);if(!r)return!0;let o=["checkbox","radio"].includes(e.type),i=o?null:e?.element?.value?.trim(),s=o?e?.element?.checked:null;e.validations.forEach(a=>{if(this.isValidValue(o,o?s:i,a))this.markValidationAsValid(e,a.name);else{let m=this.messages[e.name]&&this.messages[e.name][a.name];this.markValidationAsInvalid(e,a.name),this.renderError(e.element,m||this.defaultValidationErrors[a.name](a.rule,i))}});let c=e.validations.some(a=>!a.valid);return c&&(r.classList.add("error"),r.focus()),c||(r.classList.remove("error"),this.clearExistingError(e.name)),!c}markValidationAsInvalid(e,r){let i=[...e.validations].find(s=>s.name===r);i.valid=!1}markValidationAsValid(e,r){let i=[...e.validations].find(s=>s.name===r);i.valid=!0}isValidValue(e,r,o){let i=st[o.name];return i?i(o.rule,r,{isChecked:e}):!0}clearExistingErrors(){this.form&&this.form.querySelectorAll(".input-hint.error").forEach(e=>e.parentNode.removeChild(e))}clearExistingError(e=""){let r=document.getElementById(`error-${e}`);r&&r.parentNode.removeChild(r)}renderError(e,r=""){if(e){if(this.clearExistingError(e.name),typeof this.onRenderError=="function")return this.onRenderError(e,r);let o=document.createElement("p");o.classList.add("input-hint"),o.classList.add("error"),o.setAttribute("id",`error-${e.name}`),o.innerText=r,e.after(o)}}},cr=(t,e)=>new Promise((r,o)=>{try{new at(t,e).validate()?r():o()}catch(i){console.warn(i)}}),dt=cr;var ct=(t={},e={})=>{try{return[...Object.keys(e),...Object.keys(t)].filter((o,i,s)=>s.indexOf(o)===i).reduce((o,i)=>{let s=e[i],c=t[i]||null,a=!ye(s)&&!ge(s);return o[i]=a?s:c,o},{})}catch(r){n("component.props.compile",r)}};var lt=(t="",e={})=>{try{let r="";if(t&&O(t))return r=t,r;if(t&&l(t))return r=t(e),r;if(t&&u(t)){let o=t?.print&&(O(t?.print)||l(t?.print)),i=t?.min&&u(t?.min),s=t?.min?.width&&u(t?.min?.width),c=t?.min?.height&&u(t?.min?.height),a=t?.max&&u(t?.max),m=t?.max?.width&&u(t?.max?.width),g=t?.max?.height&&u(t?.max?.height);if(o&&(r+=`
2
2
  @media print {
3
3
  ${typeof t?.print=="function"?t?.print(e):t.print}
4
4
  }
5
- `),i&&s){let y=Object.entries(t?.min?.width);for(let w=0;w<y.length;w+=1){let[v,f]=y[w];r+=`
6
- @media screen and (min-width: ${v}px) {
5
+ `),i&&s){let y=Object.entries(t?.min?.width);for(let x=0;x<y.length;x+=1){let[j,f]=y[x];r+=`
6
+ @media screen and (min-width: ${j}px) {
7
7
  ${typeof f=="function"?f(e):f}
8
8
  }
9
- `}}if(i&&d){let y=Object.entries(t?.min?.height);for(let w=0;w<y.length;w+=1){let[v,f]=y[w];r+=`
10
- @media screen and (min-height: ${v}px) {
9
+ `}}if(i&&c){let y=Object.entries(t?.min?.height);for(let x=0;x<y.length;x+=1){let[j,f]=y[x];r+=`
10
+ @media screen and (min-height: ${j}px) {
11
11
  ${typeof f=="function"?f(e):f}
12
12
  }
13
- `}}if(a&&l){let y=Object.entries(t?.max?.width);for(let w=0;w<y.length;w+=1){let[v,f]=y[w];r+=`
14
- @media screen and (max-width: ${v}px) {
13
+ `}}if(a&&m){let y=Object.entries(t?.max?.width);for(let x=0;x<y.length;x+=1){let[j,f]=y[x];r+=`
14
+ @media screen and (max-width: ${j}px) {
15
15
  ${typeof f=="function"?f(e):f}
16
16
  }
17
- `}}if(a&&g){let y=Object.entries(t?.max?.height);for(let w=0;w<y.length;w+=1){let[v,f]=y[w];r+=`
18
- @media screen and (max-height: ${v}px) {
17
+ `}}if(a&&g){let y=Object.entries(t?.max?.height);for(let x=0;x<y.length;x+=1){let[j,f]=y[x];r+=`
18
+ @media screen and (max-height: ${j}px) {
19
19
  ${typeof f=="function"?f(e):f}
20
20
  }
21
- `}}return r}return""}catch(r){n("component.css.compileCSS",r)}};var ir=(t={},e=null)=>{try{let r=e(t);return r&&u(r)&&!j(r)?Object.assign({},r):{}}catch(r){n("component.state.compile.compileState",r)}},G=(t={},e={})=>{try{return m(e)?ir(t,e):Object.assign({},e)}catch(r){n("component.state.compile",r)}};var ie={onBeforeMount:()=>null,onMount:()=>null,onBeforeUnmount:()=>null,onUpdateProps:()=>null,onRefetchData:()=>null};var st=(t={},e={})=>{try{return e?Object.entries({...ie,...e||{}}).reduce((r={},[o,i])=>(r[o]=()=>i({...t,setState:t.setState.bind(t),...t.renderMethods||{}}),r),{}):ie}catch(r){n("component.lifecycle.compile",r)}};var K=(t={},e={})=>{try{return Object.entries(e).reduce((r={},[o,i])=>(r[o]=(...s)=>i(...s,{...t,setState:t.setState.bind(t),...t.renderMethods||{}}),r),{})}catch{n("component.methods.compile")}};var ne=(t={})=>{try{return{...t,query:{...t?.query||{},set:(e="",r="")=>{if(typeof window!="undefined"){let o=new URL(window.location);o.searchParams.append(e,r),window.history.pushState({},"",o)}},unset:(e="")=>{if(typeof window!="undefined"){let r=new URL(window.location);r.searchParams.delete(e),window.history.pushState({},"",r)}}},isActive:(e="")=>C(e)&&t?.route!=="*"?e===(typeof location!="undefined"?location.pathname:t.path):!1}}catch(e){n("component.url.compile",e)}};var S=()=>typeof window=="undefined";var I=null,W=0,at=(t={},e=null)=>{try{let r=t?.url;t?.query&&(r=`${r}?${new URLSearchParams(t.query).toString()}`);let o=new WebSocket(r);I&&(clearInterval(I),I=null);let i={client:o,send:(s={})=>o.send(JSON.stringify(s))};return o.addEventListener("open",()=>{t?.options?.logging&&console.log(`[joystick.websockets] Connected to ${t?.url}`),t?.events?.onOpen&&t.events.onOpen(i),W=0}),o.addEventListener("message",s=>{s?.data&&t?.events?.onMessage&&t.events.onMessage(JSON.parse(s.data||{}),i)}),o.addEventListener("close",s=>{t?.options?.logging&&console.log(`[joystick.websockets] Disconnected from ${t?.url}`),t?.events?.onClose&&t.events.onClose(s?.code,s?.reason,i),o=null;let d=[1e3,1001].includes(s?.code);t?.options?.autoReconnect&&!I&&!d&&(I=setInterval(()=>{o=null,W<(t?.options?.reconnectAttempts||12)?(at(t,e),t?.options?.logging&&console.log(`[joystick.websockets] Attempting to reconnect (${W+1}/12)...`),W+=1):clearInterval(I)},t?.options?.reconnectDelayInSeconds*1e3||5e3))}),e&&e(i),i}catch(r){n("websockets.client",r)}},dt=at;var nr=(t={},e=null)=>{try{let r=e(t);return r&&u(r)&&!j(r)?Object.assign({},r):{}}catch(r){n("component.props.compileDefaultProps.compile",r)}},ct=(t={},e={})=>{try{return m(e)?nr(t,e):Object.assign({},e)}catch(r){n("component.props.compileDefaultProps",r)}};var lt=(t={},e={})=>{try{t.options=e||{},t.id=e?._componentId||null,t.instanceId=U(8),t.ssrId=e?._ssrId||null,t.css=nt(),t.data=B(e?.dataFromSSR,e?._componentId),t.defaultProps=ct(t,e?.defaultProps),t.props=it(t?.defaultProps,e?.props),t.state=G(t,e?.state),t.events=e?.events||{},t.lifecycle=st(t,e?.lifecycle),t.methods=K(t,e?.methods),t.wrapper=e?.wrapper||{},t.translations=e?.translations||{},t.validateForm=ot,t.DOMNode=null,t.dom={},t.dom.virtual={},t.dom.actual={};let r=!S();if(r||(t.url=ne(e?.url)),r&&window.__joystick_url__&&(t.url=ne(window.__joystick_url__)),r&&e?.websockets&&m(e?.websockets)){let o=e.websockets(t),i=u(o)&&Object.entries(o);for(let s=0;s<i?.length;s+=1){let[d,a]=i[s];dt({url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${d}`,options:a?.options||{},query:a?.query||{},events:a?.events||{}},(l={})=>{t.websockets={...t.websockets||{},[d]:l}})}}}catch(r){n("component.registerOptions",r)}};var _=(t="",e=[])=>{try{console.error(`${t} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){n(t,r)}};var J=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var sr=async(t={})=>{try{let e=await t.text();return J(e)}catch(e){n("api.get.handleParseResponse",e)}},mt=(t="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((r,o)=>{let i=e.input?JSON.stringify(e.input):null,s=e.output?JSON.stringify(e.output):null,d=`${window.location.origin}/api/_getters/${t}?input=${i}&output=${s}`,a=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(d,{method:"GET",mode:"cors",headers:{...e?.headers||{},"x-joystick-csrf":a},credentials:"include"}).then(async l=>{let g=await sr(l);return g?.errors?(_("get request",g.errors),o(g)):r(g)}).catch(l=>(_("get request",[l]),o({errors:[l]})))}):Promise.resolve()}catch(r){n("get request",r)}};var ar=async(t={})=>{try{let e=await t.text();return J(e)}catch(e){n("api.set.handleParseResponse",e)}},dr=(t={})=>{try{return JSON.stringify(t)}catch(e){n("api.set.getBody",e)}},pt=(t="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,o)=>{let i=`${window.location.origin}/api/_setters/${t}`,s=dr(e),d=document.querySelector('[name="csrf"]')?.getAttribute("content");return fetch(i,{method:"POST",mode:"cors",headers:{...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":d},body:s,credentials:"include"}).then(async a=>{let l=await ar(a);return l?.errors?(_("set request",l.errors),o(l)):r(l)}).catch(a=>(_("set request",[a]),o({errors:[a]})))}):Promise.resolve()}catch(r){n("set request",r)}};var ut={get:mt,set:pt};var cr=(t="")=>{try{let[e,r]=t?.split(".");return r?window?.joystick?._internal?.queues[e][r]:window?.joystick?._internal?.queues[e]}catch(e){n("addToQueue.getQueue",e)}},q=(t="",e=null)=>{try{S()||(cr(t)||{}).array.push({callback:e})}catch(r){n("addToQueue",r)}};var Q=async(t={},e={},r={},o={})=>{try{if(o?.options?.data&&m(o.options.data)){let i=await o.options.data(t,e,r,o);return Promise.resolve(i)}return Promise.resolve()}catch(i){n("component.data.fetch",i)}};var ft=(t={},e={},r={})=>{try{return{...t,refetch:async(o={})=>{let i=await Q(ut,e,o,r);return r.data=ft(i,e,r),window.__joystick_data__[r?.id]=i,r.render({afterRefetchDataRender:()=>{r?.lifecycle?.onRefetchData&&r?.lifecycle?.onRefetchData(r)}}),i}}}catch(o){n("component.data.compile",o)}},ht=ft;var wt=(t={})=>{try{if(!S()&&window.__joystick_data__&&window.__joystick_data__[t?.id]){let e=window.__joystick_data__[t?.id]||{},r=window.__joystick_req__||{};return ht(e,r,t)}return t?.data||{}}catch(e){n("component.loadDataFromWindow",e)}};var bt=rr(yt());var xt=(t={},e="",r="id")=>{try{let o=t&&t.id;if(u(t)&&o){let i=Object.keys(t);for(let s=0;s<i.length;s+=1){let d=i[s],a=t[d];if(d===r&&a===e)return t;if(d==="children"&&Array.isArray(a))for(let l=0;l<a.length;l+=1){let g=a[l],y=xt(g,e,r);if(y!==null)return y}}}return null}catch(o){n("component.findComponentInTreeByField",o)}},R=xt;var gt=(t="",e={},r=null)=>{let o=R(r||window.joystick._internal.tree,t,"instanceId");o&&(o.children=[...o.children||[],e])};var lr=(t={},e={},r=null)=>{try{let o=N(t,{includeActual:!0,existingChildren:r});return t.dom=o,t.setDOMNodeOnInstance(),e.renderedComponent=t,o.html.wrapped}catch(o){n("component.renderMethods.component.renderForClient",o)}},mr=(t={})=>{try{return t.renderToHTML({ssrTree:t.parent.ssrTree,translations:t.parent.translations,walkingTreeForSSR:t?.parent?.walkingTreeForSSR,dataFromSSR:t.parent?.dataFromSSR}).wrapped}catch(e){n("component.renderMethods.component.renderToHTMLForSSR",e)}},pr=(t={})=>{try{return t.parent.ssrTree.dataFunctions.push(async()=>{try{let e=await t.options.data(t.parent.options.api,t.parent.options.req);return t.data=e||{},{componentId:t.id,ssrId:t.ssrId,data:e}}catch(e){return{componentId:t.id,ssrId:t.ssrId,data:null,error:e}}}),t.renderToHTML({ssrTree:t?.parent?.ssrTree,translations:t?.parent?.translations,walkingTreeForSSR:t?.parent?.walkingTreeForSSR,dataFromSSR:t?.parent?.dataFromSSR})}catch(e){n("component.renderMethods.component.collectDataFunctionsForSSR",e)}},ur=(t={})=>{try{let e={id:t.id,instanceId:t.instanceId,instance:t,children:[]};gt(t.parent.instanceId,e,t.parent&&t.parent.ssrTree||null)}catch(e){n("component.renderMethods.component.handleAddComponentToParent",e)}},fr=(t={},e={})=>{try{!t.renderedComponent&&e.options&&e.options.lifecycle&&(e.options.lifecycle.onBeforeMount&&q("lifecycle.onBeforeMount",()=>{e.options.lifecycle.onBeforeMount(e)}),!t.renderedComponent&&e.options.lifecycle.onMount&&q("lifecycle.onMount",()=>{e.options.lifecycle.onMount(e)}))}catch(r){n("component.renderMethods.component.handleLifecycle",r)}},hr=(t={},e={},r={})=>{try{!e.walkingTreeForSSR&&t?.options?.lifecycle?.onUpdateProps&&(0,bt.diff)(e?.existingPropsMap,r)?.length>0&&q("lifecycle.onUpdateProps",()=>{let i=e?.existingPropsMap&&e?.existingPropsMap[t.id];t.options.lifecycle.onUpdateProps(i||{},r,t)})}catch(o){n("component.renderMethods.component.handleOnChangeProps",o)}},wr=function(){return function(e=null,r={},o={}){let i=e({props:r,url:o.url,translations:o.translations,api:o.options.api,req:o.options.req,dataFromSSR:o?.dataFromSSR,parent:o}),s=o?.existingStateMap[i.id]||{},d=o.children[i.id]||[],a=s[d?.length];return i.state=a?.state||i.state,o.children[i.id]=[...o.children[i.id]||[],i],i.parent=o,hr(i,o,r),q("lifecycle.onMount",()=>{i.setDOMNodeOnInstance()}),fr(this,i),i.parent&&ur(i),i.options.data&&i.parent.walkingTreeForSSR&&i.parent.ssrTree.dataFunctions?pr(i):i.parent&&i.parent.ssrTree?mr(i):lr(i,this,a?.children)}},yr=function(e,r){try{let o=this;return new wr().bind({})(e,r,o)}catch(o){n("component.renderMethods.component",o)}},se=yr;var xr=function(e=[],r=null){try{return m(r)&&e&&Array.isArray(e)?e.map((o,i)=>r(o,i)).join(""):""}catch(o){n("component.renderMethods.each",o)}},ae=xr;var gr=function(e="",r={}){try{let o=S()?this.translations:window.__joystick_i18n__;if(!o||!o[e])return"";let i=Object.entries(r);return i.length>0?i.reduce((s,[d,a])=>s.replace(`{{${d}}}`,a),o[e]):o[e]}catch(o){n("component.renderMethods.i18n",o)}},de=gr;var br=function(e=!1,r=""){try{return this?.renderingHTMLWithDataForSSR||e?`<when>${r.trim()}</when>`:"<when> </when>"}catch(o){n("component.renderMethods.when",o)}},ce=br;var $t={c:se,component:se,e:ae,each:ae,i:de,i18n:de,w:ce,when:ce};var Ft=(t={},e={})=>{try{return Object.entries($t).reduce((r,[o,i])=>(r[o]=i.bind({...t,...e}),r),{})}catch(r){n("component.renderMethods.compile",r)}};var Et=(t={})=>{try{return Object.entries(t)?.reduce((e={},[r,o]={})=>(e[r]=o?.map((i={})=>({state:i?.state,children:Et(i?.children)})),e),{})}catch(e){n("component.render.getExistingStateMap.buildMapForChildren",e)}},Mt=(t={})=>{try{return Et(t)}catch(e){n("component.render.getExistingStateMap",e)}};var kt=new RegExp(/\<\!\-\-(?:.|\n|\r)*?-->/g),$r=new RegExp(/\n/g);var Fr=(t="")=>{try{return(t.match(kt)||[]).forEach(r=>{t=t.replace(r,"")}),t}catch(e){n("component.render.sanitizeHTML.removeCommentedCode",e)}},St=(t="")=>{try{let e=`${t}`;return e=Fr(e),e}catch(e){n("component.render.sanitizeHTML",e)}};var Ot=(t={},e="")=>{try{let{wrapper:r=null,ssrId:o=null,id:i=null,instanceId:s=null}=t;return`<div ${r?.id?`id="${r.id}" `:""}${r?.classList?`class="${r.classList?.join(" ")}" `:""}js-ssrId="${o}" js-c="${i}" js-i="${s}">${e}</div>`}catch(r){n("component.render.wrapHTML",r)}};var Tt=(t={},e=[])=>{try{let r=[...e],o=Object.entries(t);for(let i=0;i<o?.length;i+=1){let[s,d]=o[i];for(let a=0;a<d?.length;a+=1){let l=d[a];Object.entries(l?.timers)?.length>0&&r.push(...Object.values(l?.timers)),Object.entries(l?.children)?.length>0&&Tt(l?.children,r)}}if(r?.length>0)for(let i=0;i<r?.length;i+=1)clearTimeout(r[i])}catch(r){n("component.render.clearTimersOnChildren",r)}},vt=Tt;var X=(t={},e={})=>{try{e?.dataFromSSR&&(t.data=B(e.dataFromSSR,t.id)||{}),vt(t?.children);let r=Mt(e?.existingChildren||t?.children)||{};t.children={},t.renderMethods=Ft({...t,existingStateMap:r,translations:e?.translations||t.translations||{},ssrTree:e?.ssrTree,walkingTreeForSSR:e?.walkingTreeForSSR,renderingHTMLWithDataForSSR:e?.renderingHTMLWithDataForSSR,dataFromSSR:e?.dataFromSSR}),t.methods=K(t,t.options.methods);let o=t.options.render({...t||{},setState:t.setState.bind(t),...t.renderMethods||{}}),i=St(o),s=Ot(t,i);return{unwrapped:i,wrapped:s}}catch(r){n("component.render.toHTML",r)}};var Er=(t={})=>{try{return Object.values(t).reduce((e={},r)=>(e[r.name]=r.value,e),{})}catch(e){n("component.virtualDOM.build.parseAttributeMap",e)}},Ct=(t={})=>{try{return t.tagName==="WHEN"?[].flatMap.call(t?.childNodes,e=>e?.tagName==="WHEN"?Ct(e):le(e)):le(t)}catch(e){n("component.virtualDOM.build.flattenWhenTags",e)}},le=(t={})=>{try{let e=t&&t.tagName&&t.tagName.toLowerCase()||"text",r={tagName:e,attributes:Er(t.attributes),children:[].flatMap.call(t.childNodes,o=>Ct(o))};return e==="text"&&(r=t.textContent),r}catch(e){n("component.virtualDOM.build",e)}},z=le;var Mr=(t="")=>{try{let e=document.createElement("div");return e.innerHTML=t,e?.childNodes[0]}catch(e){n("component.virtualDOM.build.convertHTMLToDOM",e)}},Rt=(t="")=>{try{let e=Mr(t);return z(e)}catch(e){n("component.virtualDOM.build",e)}};var At=(t="")=>{try{return document.createElement("div").setAttribute(t,"Test"),!0}catch{return!1}};var kr=(t={})=>{try{let e=document.createElement(t.tagName),r=Object.entries(t.attributes);for(let o=0;o<r.length;o+=1){let[i,s]=r[o];At(i)&&e.setAttribute(i,s)}for(let o=0;o<t?.children?.length;o+=1){let i=t?.children[o];if(i){let s=Lt(i);e.appendChild(s)}}return e}catch(e){n("component.virtualDOM.renderTreeToDOM.renderElement",e)}},Lt=(t=null)=>{try{return C(t)?document.createTextNode(t):kr(t)}catch(e){n("component.virtualDOM.renderTreeToDOM",e)}},V=Lt;var N=(t={},e={})=>{try{let r=X(t,{existingChildren:e?.existingChildren}),o=Rt(r.wrapped,t),i=e.includeActual&&o?V(o):null;return{html:r,virtual:o,actual:i}}catch(r){n("component.render.getUpdatedDOM",r)}};var Dt=(t={},e={})=>{try{let r=N(t,{includeActual:!0,existingChildren:e?.existingChildren});return t.dom=r,r.actual}catch(r){n("component.render.forMount",r)}};var Sr=(t={},e={})=>{let r=[];for(let[o,i]of Object.entries(e))r.push(s=>(s&&s.setAttribute&&s.setAttribute(o,i),s));for(let o in t)o in e||r.push(i=>(i&&i.removeAttribute&&i.removeAttribute(o),i));return o=>{for(let i of r)i&&typeof i=="function"&&i(o)}},ee=Sr;var Or=(t=[],e=[])=>{let r=[],o=Math.max(t.length,e.length);for(let i=0;i<o;i+=1){let s=t[i],d=e[i];r.push([s,d])}return r},jt=Or;var Tr=(t=[],e)=>{t.forEach(r=>{r&&typeof r=="function"&&r(e)})},vr=(t=[])=>{t.forEach(([e,r])=>{e&&typeof e=="function"&&e(r)})},Cr=(t=[],e=[])=>{let r=[];return e.slice(t.length).forEach(i=>{let s=d=>{let a=V(i);return d.appendChild(a),d};r.push(s)}),r},Rr=(t=[],e=[])=>{let r=[];return t.forEach((o,i)=>{let s=re(o,e[i]);r.push(s)}),r},Ar=(t=[],e=[])=>{let r=Rr(t,e),o=Cr(t,e);return i=>{if(i){let s=jt(r,i.childNodes);vr(s),Tr(o,i)}return i}},te=Ar;var Pt={select:(t,e)=>r=>{let o=r.value;r.replaceChildren(),ee(t.attributes,e.attributes)(r),te([],e.children)(r);let i=r.querySelector(`option[value="${o}"]`);if(i&&(r.value=o),!i){let s=r.querySelector("option");r.value=s?.value||""}return r}};var me=(t,e)=>r=>{let o=t?V(t):null;return r&&r.replaceWith(o),o},Lr=()=>t=>{t&&t.remove()},Dr=(t=void 0,e=void 0)=>t===void 0||e===void 0?Lr():typeof t=="string"||typeof e=="string"?me(e,t):t.tagName!==e.tagName?me(e):e.tagName==="select"?Pt.select(t,e):["pre","code"].includes(e.tagName)?me(e,t):i=>(ee(t.attributes,e.attributes)(i),te(t.children,e.children)(i),i),re=Dr;var jr=(t="")=>{try{let[e,r]=t?.split(".");return r?window?.joystick?._internal?.queues[e][r]:window?.joystick?._internal?.queues[e]}catch(e){n("processQueue.getQueue",e)}},H=(t="",e=null)=>{try{S()||(jr(t)||{}).process(e)}catch(r){n("processQueue",r)}};var It=(t="",e=null)=>{let r=R(e||window.joystick._internal.tree,t,"instanceId");r&&(r.children=[])};var _t=(t="",e={},r=null)=>{let o=R(r||window.joystick._internal.tree,t,"instanceId");o&&(o.instanceId=e?.instanceId,o.instance=e)};var Nt=(t={},e="",r={})=>{for(let o=0;o<t?.children?.length;o+=1){let i=t?.children[o];if(u(i)&&i.attributes&&i.attributes["js-i"]&&i.attributes["js-i"]===e){t.children[o]=r;break}u(i)&&Nt(i,e,r)}},Vt=Nt;var Ut=(t={})=>{try{return Object.entries(t).map(([e,r])=>{let[o,...i]=e.split(" ");return{type:o.toLowerCase(),selector:i.join(" "),handler:r}})}catch(e){n("component.events.serialize",e)}};var qt=(t={},e={},r=[])=>{try{let o=Object.keys(t?.events||{})?.length>0?Ut(t?.events):[];for(let i=0;i<o?.length;i+=1){let s=o[i];r.push({...s,instance:t,elements:document.querySelectorAll(`body [js-i="${t.instanceId}"] ${s?.selector}`),handler:function(a){a?.target?.target&&(a.target=a?.target?.target),Object.defineProperty(a,"target",{value:a.composedPath()[0]}),s.handler(a,{...t||{},setState:t?.setState.bind(t),...e||{}})}})}if(t?.children){let i=Object.entries(t?.children)?.flatMap(([s,d])=>d);for(let s=0;s<i?.length;s+=1){let d=i[s];qt(d,e,r)}}return r}catch(o){n("component.events.registerListenersFix.getListeners",o)}},Pr=(t={},e={})=>{try{let r=qt(t,e,[]);console.log("GETTING CALLED",r);let o=r?.flatMap((i={})=>[].flatMap.call(i?.elements||[],s=>{let{elements:d=[],...a}=i||{};return{...a,element:s}}));for(let i=0;i<o?.length;i+=1){let{instance:s,element:d,elementSelector:a,type:l,handler:g}=o[i];console.log({element:d,type:l,handler:g}),d.addEventListener(l,g),s._eventListeners=[...s?._eventListeners||[],{instance:s,element:d,elementSelector:a,type:l,handler:g}]}}catch(r){n("component.events.registerListenersFix",r)}},zt=Pr;var Ht=(t={})=>{try{let e=t?._eventListeners||[];if(t?.children){let o=(Object.values(t?.children||{})?.reduce((i=[],s=[])=>[...i,...s],[])).flatMap((i={})=>Ht(i));e=[...e,...o]}return e}catch(e){n("component.events.unregisterListenersFix.getListeners",e)}},Ir=(t={})=>{try{let e=Ht(t);for(let r=0;r<e?.length;r+=1){let{instance:o,element:i,type:s,handler:d}=e[r];i.removeEventListener(s,d),o._eventListeners=o._eventListeners?.splice(r,1)}}catch(e){n("component.events.unregisterListenersFix",e)}},Zt=Ir;var Bt=class{constructor(e={}){this.parent=e?.parent||null,this.onUpdateChildComponent=this.handleUpdateChildComponentInVDOM,this.updateVirtualDOM=this.handleUpdateVirtualDOM,this.timers={},this.children={},Te(e),lt(this,e),this.data=wt(this)}setDOMNodeOnInstance(){this.DOMNode=document.querySelector(`body [js-i="${this.instanceId}"]`)}async handleFetchData(e={},r={},o={},i=this){let s=await Q(e,r,o,i);return this.data=s,s}handleGetInstance(){return this}handleUpdateVirtualDOM(){if(this.DOMNode){let r=z(this.DOMNode);this.dom.virtual=r}let e=this.parent?R(window.joystick._internal.tree,this.parent?.instanceId,"instanceId"):null;e?.instance&&e.instance.updateVirtualDOM()}onBeforeRender(){if(!S())return{instanceId:this.instanceId}}render(e={}){if(e?.mounting)return Dt(this,e);let r=this.onBeforeRender();Zt(this),It(this.instanceId);let o=N(this,{}),i=re(this.dom.virtual,o.virtual);i&&m(i)&&H("lifecycle.onBeforeMount",()=>{let s=i(this.DOMNode);this.dom.actual=s,this.dom.virtual=o.virtual,zt(this,this.renderMethods),this.setDOMNodeOnInstance(),H("domNodes",()=>{H("lifecycle.onMount",()=>{this.onAfterRender(r,e)})})})}renderToHTML(e={}){return X(this,e)}onAfterRender(e={},r={}){S()||(_t(e.instanceId,this),window.joystick._internal.css.update(),H("lifecycle.onUpdateProps"),r?.afterSetStateRender&&m(r.afterSetStateRender)&&r.afterSetStateRender(),r?.afterRefetchDataRender&&m(r.afterRefetchDataRender)&&r.afterRefetchDataRender(),this.parent&&this.parent.onUpdateChildComponent(this.id,this.instanceId))}setState(e={},r=null){this.state=G(this,{...this.state||{},...e}),this.render({afterSetStateRender:()=>{r&&m(r)&&r()}})}setTimeout(e=null,r=0){e&&(this.timers[U()]=window.setTimeout(e,r))}setInterval(e=null,r=0){e&&(this.timers[U()]=window.setInterval(e,r))}handleUpdateChildComponentInVDOM(e="",r=""){let o=R(window.joystick._internal.tree,this.instanceId,"instanceId"),i=R(window.joystick._internal.tree,r,"instanceId");if(i?.instance?.DOMNode){let s=z(i?.instance?.DOMNode);Vt(o?.instance?.dom?.virtual,i?.instanceId,s)}}},Ja=Bt;export{Ja as default};
21
+ `}}return r}return""}catch(r){n("component.css.compileCSS",r)}};var lr=(t={},e=null)=>{try{let r=e(t);return r&&u(r)&&!P(r)?Object.assign({},r):{}}catch(r){n("component.state.compile.compileState",r)}},K=(t={},e={})=>{try{return l(e)?lr(t,e):Object.assign({},e)}catch(r){n("component.state.compile",r)}};var ne={onBeforeMount:()=>null,onMount:()=>null,onBeforeUnmount:()=>null,onUpdateProps:()=>null,onRefetchData:()=>null};var ut=(t={},e={})=>{try{return e?Object.entries({...ne,...e||{}}).reduce((r={},[o,i])=>(r[o]=()=>i({...t,setState:t.setState.bind(t),...t.renderMethods||{}}),r),{}):ne}catch(r){n("component.lifecycle.compile",r)}};var b=(t="",e=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[t]:[...window?.test?.functionCalls&&window?.test?.functionCalls[t]||[],{calledAt:new Date().toISOString(),args:e}]}})};var W=(t={},e={})=>{try{return Object.entries(e).reduce((r={},[o,i])=>(r[o]=(...s)=>(b(`ui.${t?.options?.test?.name||w()}.methods.${o}`,[...s,{...t,setState:t.setState.bind(t),...t.renderMethods||{}}]),i(...s,{...t,setState:t.setState.bind(t),...t.renderMethods||{}})),r),{})}catch{n("component.methods.compile")}};var se=(t={})=>{try{return{...t,query:{...t?.query||{},set:(e="",r="")=>{if(typeof window!="undefined"){let o=new URL(window.location);o.searchParams.append(e,r),window.history.pushState({},"",o)}},unset:(e="")=>{if(typeof window!="undefined"){let r=new URL(window.location);r.searchParams.delete(e),window.history.pushState({},"",r)}}},isActive:(e="")=>O(e)&&t?.route!=="*"?e===(typeof location!="undefined"?location.pathname:t.path):!1}}catch(e){n("component.url.compile",e)}};var C=()=>typeof window=="undefined";var V=null,J=0,mt=(t={},e=null)=>{try{if(window?.__joystick_test__)return e();let r=t?.url;t?.query&&(r=`${r}?${new URLSearchParams(t.query).toString()}`);let o=new WebSocket(r);V&&(clearInterval(V),V=null);let i={client:o,send:(s={})=>(b(`ui.websockets.${t?.test?.name||w()}.send`,[s]),o.send(JSON.stringify(s)))};return o.addEventListener("open",()=>{t?.options?.logging&&console.log(`[joystick.websockets] Connected to ${t?.url}`),t?.events?.onOpen&&(t.events.onOpen(i),b(`ui.websockets.${t?.test?.name||w()}.onOpen`,[i])),J=0}),o.addEventListener("message",s=>{s?.data&&t?.events?.onMessage&&(t.events.onMessage(JSON.parse(s.data||{}),i),b(`ui.websockets.${t?.test?.name||w()}.onMessage`,[s.data||{},i]))}),o.addEventListener("close",s=>{t?.options?.logging&&console.log(`[joystick.websockets] Disconnected from ${t?.url}`),t?.events?.onClose&&(t.events.onClose(s?.code,s?.reason,i),b(`ui.websockets.${t?.test?.name||w()}.onClose`,[s.data||{},i])),o=null;let c=[1e3,1001].includes(s?.code);t?.options?.autoReconnect&&!V&&!c&&(V=setInterval(()=>{o=null,J<(t?.options?.reconnectAttempts||12)?(mt(t,e),t?.options?.logging&&console.log(`[joystick.websockets] Attempting to reconnect (${J+1}/12)...`),J+=1):clearInterval(V)},t?.options?.reconnectDelayInSeconds*1e3||5e3))}),e&&e(i),i}catch(r){n("websockets.client",r)}},pt=mt;var ur=(t={},e=null)=>{try{let r=e(t);return r&&u(r)&&!P(r)?Object.assign({},r):{}}catch(r){n("component.props.compileDefaultProps.compile",r)}},ft=(t={},e={})=>{try{return l(e)?ur(t,e):Object.assign({},e)}catch(r){n("component.props.compileDefaultProps",r)}};var ht=(t={},e={})=>{try{t.options=e||{},t.id=e?._componentId||null,t.instanceId=w(8),t.ssrId=e?._ssrId||null,t.css=lt(),t.data=G(e?.dataFromSSR,e?._componentId),t.defaultProps=ft(t,e?.defaultProps),t.props=ct(t?.defaultProps,e?.props),t.state=K(t,e?.state),t.events=e?.events||{},t.lifecycle=ut(t,e?.lifecycle),t.methods=W(t,e?.methods),t.wrapper=e?.wrapper||{},t.translations=e?.translations||{},t.validateForm=dt,t.DOMNode=null,t.dom={},t.dom.virtual={},t.dom.actual={};let r=!C();if(r||(t.url=se(e?.url)),r&&window.__joystick_url__&&(t.url=se(window.__joystick_url__)),r&&window.__joystick_user__&&(t.user=window.__joystick_user__),r&&e?.websockets&&l(e?.websockets)){let o=e.websockets(t),i=u(o)&&Object.entries(o);for(let s=0;s<i?.length;s+=1){let[c,a]=i[s];pt({test:t?.test,url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${c}`,options:a?.options||{},query:a?.query||{},events:a?.events||{}},(m={})=>{t.websockets={...t.websockets||{},[c]:m}})}}}catch(r){n("component.registerOptions",r)}};var N=(t="",e=[])=>{try{console.error(`${t} failed with the following errors:`),e.forEach(r=>{console.log(r.message),r.stack&&console.log(r.stack)})}catch(r){n(t,r)}};var Q=(t="{}")=>{try{return JSON.parse(t)}catch{return t}};var wt=(t={})=>Object.entries(t).map(([e,r])=>`${e}=${r}`)?.join("; ");var mr=async(t={})=>{try{let e=await t.text();return Q(e)}catch(e){n("api.get.handleParseResponse",e)}},yt=(t="",e={})=>{try{return typeof window.fetch!="undefined"&&!e?.skip?new Promise((r,o)=>{let i=e.input?JSON.stringify(e.input):null,s=e.output?JSON.stringify(e.output):null,c=`${window.location.origin}/api/_getters/${t}?input=${i}&output=${s}`,a=document.querySelector('[name="csrf"]')?.getAttribute("content"),m={...e?.headers||{},"x-joystick-csrf":a};return window?.__joystick_test__&&(m.Cookie=wt({joystickLoginToken:window.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expires_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(c,{method:"GET",mode:"cors",headers:m,credentials:"include"}).then(async g=>{let y=await mr(g);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),y?.errors?(N("get request",y.errors),o(y)):r(y)}).catch(g=>(N("get request",[g]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),o({errors:[g]})))}):Promise.resolve()}catch(r){n("get request",r)}};var pr=async(t={})=>{try{let e=await t.text();return Q(e)}catch(e){n("api.set.handleParseResponse",e)}},fr=(t={})=>{try{let e={...t};return e?.loader&&delete e.loader,JSON.stringify(e)}catch(e){n("api.set.getBody",e)}},gt=(t="",e={})=>{try{return typeof window.fetch!="undefined"?new Promise((r,o)=>{let i=`${window.location.origin}/api/_setters/${t}`,s=fr(e),c=document.querySelector('[name="csrf"]')?.getAttribute("content"),a={...e?.headers||{},"Content-Type":"application/json","x-joystick-csrf":c};return window?.__joystick_test__&&(a.Cookie=generateCookieHeader({joystickLoginToken:window?.__joystick_test_login_token__,joystickLoginTokenExpiresAt:window.__joystick_test_login_token_expirs_at__})),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!0}),fetch(i,{method:"POST",mode:"cors",headers:a,body:s,credentials:"include"}).then(async m=>{let g=await pr(m);return e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),g?.errors?(N("set request",g.errors),o(g)):r(g)}).catch(m=>(N("set request",[m]),e?.loader?.instance&&e?.loader?.instance?.setState({[e?.loader?.state||`${t}_loading`]:!1}),o({errors:[m]})))}):Promise.resolve()}catch(r){n("set request",r)}};var xt={get:yt,set:gt};var hr=(t="")=>{try{let[e,r]=t?.split(".");return r?window?.joystick?._internal?.queues[e][r]:window?.joystick?._internal?.queues[e]}catch(e){n("addToQueue.getQueue",e)}},z=(t="",e=null)=>{try{C()||(hr(t)||{}).array.push({callback:e})}catch(r){n("addToQueue",r)}};var Y=async(t={},e={},r={},o={})=>{try{if(o?.options?.data&&l(o.options.data)){let i=await o.options.data(t,e,r,o);return Promise.resolve(i)}return Promise.resolve()}catch(i){n("component.data.fetch",i)}};var bt=(t={},e={},r={})=>{try{return{...t,refetch:async(o={})=>{b(`ui.${r?.options?.test?.name||w()}.data.refetch`,[o]);let i=await Y(xt,e,o,r);return r.data=bt(i,e,r),window.__joystick_data__[r?.id]&&(window.__joystick_data__[r?.id]=i),window?.__joystick_test__||r.render({afterRefetchDataRender:()=>{r?.lifecycle?.onRefetchData&&r?.lifecycle?.onRefetchData(r)}}),r.data}}}catch(o){n("component.data.compile",o)}},$t=bt;var Ft=(t={})=>{try{if(!C()){let e=window.__joystick_data__&&window.__joystick_data__[t?.id]||{},r=window.__joystick_req__||{};return $t(e,r,t)}return t?.data||{}}catch(e){n("component.loadDataFromWindow",e)}};var St=dr(kt());var Et=(t={},e="",r="id")=>{try{let o=t&&t.id;if(u(t)&&o){let i=Object.keys(t);for(let s=0;s<i.length;s+=1){let c=i[s],a=t[c];if(c===r&&a===e)return t;if(c==="children"&&Array.isArray(a))for(let m=0;m<a.length;m+=1){let g=a[m],y=Et(g,e,r);if(y!==null)return y}}}return null}catch(o){n("component.findComponentInTreeByField",o)}},R=Et;var Mt=(t="",e={},r=null)=>{let o=R(r||window.joystick._internal.tree,t,"instanceId");o&&(o.children=[...o.children||[],e])};var wr=(t={},e={},r=null)=>{try{let o=U(t,{includeActual:!0,existingChildren:r});return t.dom=o,t.setDOMNodeOnInstance(),e.renderedComponent=t,o.html.wrapped}catch(o){n("component.renderMethods.component.renderForClient",o)}},yr=(t={})=>{try{return t.renderToHTML({ssrTree:t.parent.ssrTree,translations:t.parent.translations,walkingTreeForSSR:t?.parent?.walkingTreeForSSR,dataFromSSR:t.parent?.dataFromSSR}).wrapped}catch(e){n("component.renderMethods.component.renderToHTMLForSSR",e)}},gr=(t={})=>{try{return t.parent.ssrTree.dataFunctions.push(async()=>{try{let e=await t.options.data(t.parent.options.api,t.parent.options.req);return t.data=e||{},{componentId:t.id,ssrId:t.ssrId,data:e}}catch(e){return{componentId:t.id,ssrId:t.ssrId,data:null,error:e}}}),t.renderToHTML({ssrTree:t?.parent?.ssrTree,translations:t?.parent?.translations,walkingTreeForSSR:t?.parent?.walkingTreeForSSR,dataFromSSR:t?.parent?.dataFromSSR})}catch(e){n("component.renderMethods.component.collectDataFunctionsForSSR",e)}},xr=(t={})=>{try{let e={id:t.id,instanceId:t.instanceId,instance:t,children:[]};Mt(t.parent.instanceId,e,t.parent&&t.parent.ssrTree||null)}catch(e){n("component.renderMethods.component.handleAddComponentToParent",e)}},br=(t={},e={})=>{try{!t.renderedComponent&&e.options&&e.options.lifecycle&&(e.options.lifecycle.onBeforeMount&&z("lifecycle.onBeforeMount",()=>{e.options.lifecycle.onBeforeMount(e),b(`ui.${e?.options?.test?.name||w()}.lifecycle.onBeforeMount`,[e])}),!t.renderedComponent&&e.options.lifecycle.onMount&&z("lifecycle.onMount",()=>{e.options.lifecycle.onMount(e),b(`ui.${e?.options?.test?.name||w()}.lifecycle.onMount`,[e])}))}catch(r){n("component.renderMethods.component.handleLifecycle",r)}},$r=(t={},e={},r={})=>{try{!e.walkingTreeForSSR&&t?.options?.lifecycle?.onUpdateProps&&(0,St.diff)(e?.existingPropsMap,r)?.length>0&&z("lifecycle.onUpdateProps",()=>{let i=e?.existingPropsMap&&e?.existingPropsMap[t.id];t.options.lifecycle.onUpdateProps(i||{},r,t),b(`ui.${t?.options?.test?.name||w()}.lifecycle.onBeforeMount`,[i||{},r,t])})}catch(o){n("component.renderMethods.component.handleOnChangeProps",o)}},Fr=function(){return function(e=null,r={},o={}){let i=e({props:r,url:o.url,translations:o.translations,api:o.options.api,req:o.options.req,dataFromSSR:o?.dataFromSSR,parent:o}),s=o?.existingStateMap[i.id]||{},c=o.children[i.id]||[],a=s[c?.length];return i.state=a?.state||i.state,o.children[i.id]=[...o.children[i.id]||[],i],i.parent=o,$r(i,o,r),z("lifecycle.onMount",()=>{i.setDOMNodeOnInstance()}),br(this,i),i.parent&&xr(i),i.options.data&&i.parent.walkingTreeForSSR&&i.parent.ssrTree.dataFunctions?gr(i):i.parent&&i.parent.ssrTree?yr(i):wr(i,this,a?.children)}},kr=function(e,r){try{let o=this;return new Fr().bind({})(e,r,o)}catch(o){n("component.renderMethods.component",o)}},ae=kr;var Er=function(e=[],r=null){try{return l(r)&&e&&Array.isArray(e)?e.map((o,i)=>r(o,i)).join(""):""}catch(o){n("component.renderMethods.each",o)}},de=Er;var Mr=(t="",e=[])=>{try{return e.reduce((r,[o,i])=>r.replace(`{{${o}}}`,i),t)}catch(r){n("component.renderMethods.i18n.replacePlaceholdersInString",r)}},ce=(t="",e=[])=>{try{let r=typeof t=="string",o=Array.isArray(t),i=typeof t=="object"&&!o;if(r)return Mr(t,e);if(o)return t?.map(s=>ce(s,e));if(i)return Object.entries(t)?.reduce((s={},[c,a])=>(s[c]=ce(a,e),s),{})}catch(r){n("component.renderMethods.i18n.handleTranslationReplacement",r)}},Sr=(t="",e={})=>{try{return t?.split(".").reduce((r,o)=>r[o],e)}catch(r){n("component.renderMethods.i18n.getTranslationAtPath",r)}},Tr=function(t="",e={}){try{let r=C()?this.translations:window.__joystick_i18n__,i=t?.includes(".")?Sr(t,r):r[t];if(!r||!i)return"";let s=Object.entries(e);return ce(i,s)}catch(r){n("component.renderMethods.i18n",r)}},le=Tr;var Or=function(e=!1,r=""){try{return this?.renderingHTMLWithDataForSSR||e?`<when>${r.trim()}</when>`:"<when> </when>"}catch(o){n("component.renderMethods.when",o)}},ue=Or;var Tt={c:ae,component:ae,e:de,each:de,i:le,i18n:le,w:ue,when:ue};var Ot=(t={},e={})=>{try{return Object.entries(Tt).reduce((r,[o,i])=>(r[o]=i.bind({...t,...e}),r),{})}catch(r){n("component.renderMethods.compile",r)}};var Ct=(t={})=>{try{return Object.entries(t)?.reduce((e={},[r,o]={})=>(e[r]=o?.map((i={})=>({state:i?.state,children:Ct(i?.children)})),e),{})}catch(e){n("component.render.getExistingStateMap.buildMapForChildren",e)}},_t=(t={})=>{try{return Ct(t)}catch(e){n("component.render.getExistingStateMap",e)}};var vt=new RegExp(/\<\!\-\-(?:.|\n|\r)*?-->/g),Cr=new RegExp(/\n/g);var _r=(t="")=>{try{return(t.match(vt)||[]).forEach(r=>{t=t.replace(r,"")}),t}catch(e){n("component.render.sanitizeHTML.removeCommentedCode",e)}},jt=(t="")=>{try{let e=`${t}`;return e=_r(e),e}catch(e){n("component.render.sanitizeHTML",e)}};var Rt=(t={},e="")=>{try{let{wrapper:r=null,id:o=null,instanceId:i=null}=t;return`<div ${r?.id?`id="${r.id}" `:""}${r?.classList?`class="${r.classList?.join(" ")}" `:""} js-c="${o}" js-i="${i}">${e}</div>`}catch(r){n("component.render.wrapHTML",r)}};var At=(t={},e=[])=>{try{let r=[...e],o=Object.entries(t);for(let i=0;i<o?.length;i+=1){let[s,c]=o[i];for(let a=0;a<c?.length;a+=1){let m=c[a];Object.entries(m?.timers)?.length>0&&r.push(...Object.values(m?.timers)),Object.entries(m?.children)?.length>0&&At(m?.children,r)}}if(r?.length>0)for(let i=0;i<r?.length;i+=1)clearTimeout(r[i])}catch(r){n("component.render.clearTimersOnChildren",r)}},Lt=At;var ee=(t={},e={})=>{try{e?.dataFromSSR&&(t.data=G(e.dataFromSSR,t.id)||{}),Lt(t?.children);let r=_t(e?.existingChildren||t?.children)||{};t.children={},t.renderMethods=Ot({...t,existingStateMap:r,translations:e?.translations||t.translations||{},ssrTree:e?.ssrTree,walkingTreeForSSR:e?.walkingTreeForSSR,renderingHTMLWithDataForSSR:e?.renderingHTMLWithDataForSSR,dataFromSSR:e?.dataFromSSR}),t.methods=W(t,t.options.methods);let o=t.options.render({...t||{},setState:t.setState.bind(t),...t.renderMethods||{}}),i=jt(o),s=Rt(t,i);return{unwrapped:i,wrapped:s}}catch(r){n("component.render.toHTML",r)}};var vr=(t={})=>{try{return Object.values(t).reduce((e={},r)=>(e[r.name]=r.value,e),{})}catch(e){n("component.virtualDOM.build.parseAttributeMap",e)}},Dt=(t={})=>{try{return t.tagName==="WHEN"?[].flatMap.call(t?.childNodes,e=>e?.tagName==="WHEN"?Dt(e):me(e)):me(t)}catch(e){n("component.virtualDOM.build.flattenWhenTags",e)}},me=(t={})=>{try{let e=t&&t.tagName&&t.tagName.toLowerCase()||"text",r={tagName:e,attributes:vr(t.attributes),children:[].flatMap.call(t.childNodes,o=>Dt(o))};return e==="text"&&(r=t.textContent),r}catch(e){n("component.virtualDOM.build",e)}},H=me;var jr=(t="")=>{try{let e=document.createElement("div");return e.innerHTML=t,e?.childNodes[0]}catch(e){n("component.virtualDOM.build.convertHTMLToDOM",e)}},Pt=(t="")=>{try{let e=jr(t);return H(e)}catch(e){n("component.virtualDOM.build",e)}};var It=(t="")=>{try{return document.createElement("div").setAttribute(t,"Test"),!0}catch{return!1}};var Rr=(t={})=>{try{let e=document.createElement(t.tagName),r=Object.entries(t.attributes);for(let o=0;o<r.length;o+=1){let[i,s]=r[o];It(i)&&e.setAttribute(i,s)}for(let o=0;o<t?.children?.length;o+=1){let i=t?.children[o];if(i){let s=Vt(i);e.appendChild(s)}}return e}catch(e){n("component.virtualDOM.renderTreeToDOM.renderElement",e)}},Vt=(t=null)=>{try{return O(t)?document.createTextNode(t):Rr(t)}catch(e){n("component.virtualDOM.renderTreeToDOM",e)}},q=Vt;var U=(t={},e={})=>{try{let r=ee(t,{existingChildren:e?.existingChildren}),o=Pt(r.wrapped,t),i=e.includeActual&&o?q(o):null;return{html:r,virtual:o,actual:i}}catch(r){n("component.render.getUpdatedDOM",r)}};var Nt=(t={},e={})=>{try{let r=U(t,{includeActual:!0,existingChildren:e?.existingChildren});return t.dom=r,r.actual}catch(r){n("component.render.forMount",r)}};var Ar=(t={},e={})=>{let r=[];for(let[o,i]of Object.entries(e))r.push(s=>(s&&s.setAttribute&&s.setAttribute(o,i),s));for(let o in t)o in e||r.push(i=>(i&&i.removeAttribute&&i.removeAttribute(o),i));return o=>{for(let i of r)i&&typeof i=="function"&&i(o)}},te=Ar;var Lr=(t=[],e=[])=>{let r=[],o=Math.max(t.length,e.length);for(let i=0;i<o;i+=1){let s=t[i],c=e[i];r.push([s,c])}return r},Ut=Lr;var Dr=(t=[],e)=>{t.forEach(r=>{r&&typeof r=="function"&&r(e)})},Pr=(t=[])=>{t.forEach(([e,r])=>{e&&typeof e=="function"&&e(r)})},Ir=(t=[],e=[])=>{let r=[];return e.slice(t.length).forEach(i=>{let s=c=>{let a=q(i);return c.appendChild(a),c};r.push(s)}),r},Vr=(t=[],e=[])=>{let r=[];return t.forEach((o,i)=>{let s=oe(o,e[i]);r.push(s)}),r},Nr=(t=[],e=[])=>{let r=Vr(t,e),o=Ir(t,e);return i=>{if(i){let s=Ut(r,i.childNodes);Pr(s),Dr(o,i)}return i}},re=Nr;var qt={select:(t,e)=>r=>{let o=r.value;r.replaceChildren(),te(t.attributes,e.attributes)(r),re([],e.children)(r);let i=r.querySelector(`option[value="${o}"]`);if(i&&(r.value=o),!i){let s=r.querySelector("option");r.value=s?.value||""}return r}};var pe=(t,e)=>r=>{let o=t?q(t):null;return r&&r.replaceWith(o),o},Ur=()=>t=>{t&&t.remove()},qr=(t=void 0,e=void 0)=>t===void 0||e===void 0?Ur():typeof t=="string"||typeof e=="string"?pe(e,t):t.tagName!==e.tagName?pe(e):e.tagName==="select"?qt.select(t,e):["pre","code"].includes(e.tagName)?pe(e,t):i=>(te(t.attributes,e.attributes)(i),re(t.children,e.children)(i),i),oe=qr;var zr=(t="")=>{try{let[e,r]=t?.split(".");return r?window?.joystick?._internal?.queues[e][r]:window?.joystick?._internal?.queues[e]}catch(e){n("processQueue.getQueue",e)}},Z=(t="",e=null)=>{try{C()||(zr(t)||{}).process(e)}catch(r){n("processQueue",r)}};var zt=(t="",e=null)=>{let r=R(e||window.joystick._internal.tree,t,"instanceId");r&&(r.children=[])};var Ht=(t="",e={},r=null)=>{let o=R(r||window.joystick._internal.tree,t,"instanceId");o&&(o.instanceId=e?.instanceId,o.instance=e)};var Zt=(t={},e="",r={})=>{for(let o=0;o<t?.children?.length;o+=1){let i=t?.children[o];if(u(i)&&i.attributes&&i.attributes["js-i"]&&i.attributes["js-i"]===e){t.children[o]=r;break}u(i)&&Zt(i,e,r)}},Bt=Zt;var Gt=(t={})=>{try{return Object.entries(t).map(([e,r])=>{let[o,...i]=e.split(" ");return{type:o.toLowerCase(),selector:i.join(" "),handler:r}})}catch(e){n("component.events.serialize",e)}};var Kt=(t={},e={},r=[])=>{try{let o=Object.keys(t?.events||{})?.length>0?Gt(t?.events):[];for(let i=0;i<o?.length;i+=1){let s=o[i];r.push({...s,instance:t,elements:document.querySelectorAll(`body [js-i="${t.instanceId}"] ${s?.selector}`),handler:function(a){s.handler(a,{...t||{},setState:t?.setState.bind(t),...e||{}}),b(`ui.${t?.options?.test?.name||w()}.events.${s.type}.selector_${s?.selector}`,[a,{...t||{},setState:t?.setState.bind(t),...e||{}}])}})}if(t?.children){let i=Object.entries(t?.children)?.flatMap(([s,c])=>c);for(let s=0;s<i?.length;s+=1){let c=i[s];Kt(c,e,r)}}return r}catch(o){n("component.eve!nts.registerListenersFix.getListeners",o)}},Hr=(t={},e={})=>{try{let o=Kt(t,e,[])?.flatMap((i={})=>[].flatMap.call(i?.elements||[],s=>{let{elements:c=[],...a}=i||{};return{...a,element:s}}));for(let i=0;i<o?.length;i+=1){let{instance:s,element:c,elementSelector:a,type:m,handler:g}=o[i];c.addEventListener(m,g),s._eventListeners=[...s?._eventListeners||[],{instance:s,element:c,elementSelector:a,type:m,handler:g}]}}catch(r){n("component.events.registerListenersFix",r)}},Wt=Hr;var Jt=(t={})=>{try{let e=t?._eventListeners||[];if(t?.children){let o=(Object.values(t?.children||{})?.reduce((i=[],s=[])=>[...i,...s],[])).flatMap((i={})=>Jt(i));e=[...e,...o]}return e}catch(e){n("component.events.unregisterListenersFix.getListeners",e)}},Zr=(t={})=>{try{let e=Jt(t);for(let r=0;r<e?.length;r+=1){let{instance:o,element:i,type:s,handler:c}=e[r];i.removeEventListener(s,c),o._eventListeners=o._eventListeners?.splice(r,1)}}catch(e){n("component.events.unregisterListenersFix",e)}},Qt=Zr;var Yt=class{constructor(e={}){this.parent=e?.parent||null,this.onUpdateChildComponent=this.handleUpdateChildComponentInVDOM,this.updateVirtualDOM=this.handleUpdateVirtualDOM,this.timers={},this.children={},ve(e),ht(this,e),this.data=Ft(this)}setDOMNodeOnInstance(){this.DOMNode=document.querySelector(`body [js-i="${this.instanceId}"]`)}async handleFetchData(e={},r={},o={},i=this){let s=await Y(e,r,o,i);return this.data=s,s}handleGetInstance(){return this}handleUpdateVirtualDOM(){if(this.DOMNode){let r=H(this.DOMNode);this.dom.virtual=r}let e=this.parent?R(window.joystick._internal.tree,this.parent?.instanceId,"instanceId"):null;e?.instance&&e.instance.updateVirtualDOM()}onBeforeRender(){if(!C())return{instanceId:this.instanceId}}render(e={}){if(b(`ui.${this?.options?.test?.name||w()}.render`,[e]),e?.mounting)return Nt(this,e);let r=this.onBeforeRender();Qt(this),zt(this.instanceId);let o=U(this,{}),i=oe(this.dom.virtual,o.virtual);i&&l(i)&&Z("lifecycle.onBeforeMount",()=>{let s=i(this.DOMNode);this.dom.actual=s,this.dom.virtual=o.virtual,Wt(this,this.renderMethods),this.setDOMNodeOnInstance(),Z("domNodes",()=>{Z("lifecycle.onMount",()=>{this.onAfterRender(r,e)})})})}renderToHTML(e={}){return ee(this,e)}onAfterRender(e={},r={}){C()||(Ht(e.instanceId,this),window.joystick._internal.css.update(),Z("lifecycle.onUpdateProps"),r?.afterSetStateRender&&l(r.afterSetStateRender)&&r.afterSetStateRender(),r?.afterRefetchDataRender&&l(r.afterRefetchDataRender)&&r.afterRefetchDataRender(),this.parent&&this.parent.onUpdateChildComponent(this.id,this.instanceId))}setState(e={},r=null){b(`ui.${this?.options?.test?.name||w()}.setState`,[e,r]),this.state=K(this,{...this.state||{},...e}),this.render({afterSetStateRender:()=>{r&&l(r)&&r()}})}setTimeout(e=null,r=0){e&&(this.timers[w()]=window.setTimeout(e,r))}setInterval(e=null,r=0){e&&(this.timers[w()]=window.setInterval(e,r))}handleUpdateChildComponentInVDOM(e="",r=""){let o=R(window.joystick._internal.tree,this.instanceId,"instanceId"),i=R(window.joystick._internal.tree,r,"instanceId");if(i?.instance?.DOMNode){let s=H(i?.instance?.DOMNode);Bt(o?.instance?.dom?.virtual,i?.instanceId,s)}}},Sd=Yt;export{Sd as default};
@@ -1 +1 @@
1
- var o=(r="",e={})=>{throw new Error(`[joystick${r?`.${r}`:""}] ${e.message||e.reason||e}`)};var s=(r={},e={})=>{try{return Object.entries(e).reduce((t={},[d,u])=>(t[d]=(...w)=>u(...w,{...r,setState:r.setState.bind(r),...r.renderMethods||{}}),t),{})}catch{o("component.methods.compile")}};export{s as default};
1
+ var l=(t="",r={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${r.message||r.reason||r}`)};var d="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),s=(t=16)=>{let r="",e=0;for(;e<t;)r+=d[Math.floor(Math.random()*(d.length-1))],e+=1;return r};var w=(t="",r=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[t]:[...window?.test?.functionCalls&&window?.test?.functionCalls[t]||[],{calledAt:new Date().toISOString(),args:r}]}})};var S=(t={},r={})=>{try{return Object.entries(r).reduce((e={},[i,a])=>(e[i]=(...o)=>(w(`ui.${t?.options?.test?.name||s()}.methods.${i}`,[...o,{...t,setState:t.setState.bind(t),...t.renderMethods||{}}]),a(...o,{...t,setState:t.setState.bind(t),...t.renderMethods||{}})),e),{})}catch{l("component.methods.compile")}};export{S as default};
@@ -1 +1 @@
1
- var e=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","translations","url","websockets","wrapper"];export{e as default};
1
+ var e=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","test","translations","url","websockets","wrapper"];export{e as default};
@@ -1,21 +1,21 @@
1
- var A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),S=(t=16)=>{let e="",r=0;for(;r<t;)e+=A[Math.floor(Math.random()*(A.length-1))],r+=1;return e};var d=(t="",e={})=>{throw new Error(`[joystick${t?`.${t}`:""}] ${e.message||e.reason||e}`)};var F=t=>{try{return typeof t=="undefined"}catch(e){d("types.isUndefined",e)}},k=t=>{try{return t===null}catch(e){d("types.isNull",e)}};var f=t=>{try{return!!Array.isArray(t)}catch(e){d("types.isArray",e)}};var h=t=>{try{return typeof t=="function"}catch(e){d("types.isFunction",e)}};var c=t=>{try{return!!(t&&typeof t=="object"&&!Array.isArray(t))}catch(e){d("types.isObject",e)}};var g=t=>{try{return typeof t=="string"}catch(e){d("types.isString",e)}};var L=(t=[],e="")=>{try{return(f(t)&&t.find(i=>i?.componentId===e))?.data||{}}catch(r){d("findComponentDataFromSSR",r)}};var M=(()=>{let t=0;return(e,r)=>{clearTimeout(t),t=setTimeout(e,r)}})();var p=t=>!!(t&&typeof t=="object"&&!Array.isArray(t));var R=t=>typeof t=="string";var Z=/^(?: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}))$/,C=(t,e="")=>{if(!e)return!0;if(e&&!R(e))return!1;let r=e?e.replace(/[- ]+/g,""):"";return t===!0?r.match(new RegExp(Z)):!r.match(new RegExp(Z))};var v=/^((?:[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])+)\]))$/,z=(t,e="")=>t===!0?!!e.match(v):!e.match(v);var V=(t,e="")=>t===e;var T=(t,e="")=>t===e;var D=(t,e="")=>e.length<=t;var N=(t,e="")=>e.length>=t;var O=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,U=(t,e="")=>t===!0?!!e.match(O):!e.match(O);var P={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}$/},j=(t,e="")=>{let r=p(t)&&t.iso?P[t.iso||"US"]:P.US;return p(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var B=(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};var G=/^(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-]+)*))?$/,H=(t,e="")=>t===!0?!!e.match(G):!e.match(G);var I=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,q=(t,e="")=>t===!0?!!e.match(I):!e.match(I);var K=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,_=(t,e="")=>t===!0?!!e.match(K):!e.match(K);var W=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,Y=(t,e="")=>t===!0?!!e.match(W):!e.match(W);var J={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},Q=(t,e="")=>{let r=p(t)&&t.iso?J[t.iso||"EU"]:J.EU;return p(t)?t.rule===!0?!!e.match(r):!e.match(r):t===!0?!!e.match(r):!e.match(r)};var X={creditCard:C,email:z,equals:V,matches:T,maxLength:D,minLength:N,phone:U,postalCode:j,required:B,semVer:H,slug:q,strongPassword:_,url:Y,vat:Q};var ee=class{constructor(e,r={}){this.fieldsToListenToForChanges=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.defaultValidationErrors={required:()=>"This field is required.",email:()=>"Must be a valid email.",creditCard:()=>"Must be a valid credit card number.",equals:i=>`Value must equal ${i}.`,matches:i=>`Field must match ${i}.`,maxLength:i=>`Field value can be no greater than ${i}.`,minLength:i=>`Field value can be no less than ${i}.`,phone:()=>"Field value must be a valid telephone number.",postalCode:()=>"Field value must be a valid postal code.",semVer:()=>"Field value must be a valid semantic version.",slug:()=>"Field value must be a valid URL slug.",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("[validateForm] Must pass an HTML <form></form> element to validate."),this.form=e,this.setOptions(r),this.attachEventListeners()}setOptions(e={}){this.rules=e.rules||{},this.messages=e.messages||{},this.onSubmit=e.onSubmit,this.fields=this.serialize()}updateOptions(e={}){this.setOptions(e)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let i=this.form.querySelector(`[name="${r}"]`),o=i?.type;return{listenForChanges:this.fieldsToListenToForChanges.includes(o),type:o,name:r,element:i,validations:Object.entries(this.rules[r]).map(([n,a])=>({name:n,rule:a,valid:!1})).sort((n,a)=>n.name>a.name?1:-1),errorMessages:this.messages[r]?Object.keys(this.messages[r]):{}}})}attachEventListeners(){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 i=this.form.listeners[r];this.form.removeEventListener("submit",i)}this.form.addEventListener("submit",e),this.form.listeners=[...this.form.listeners||[],e]}this.fields.forEach(e=>{if(e?.element&&e?.listenForChanges){let r=()=>{M(()=>{this.validate(e.name)},100)};e.element.removeEventListener("input",r),e.element.addEventListener("input",r),e.element.removeEventListener("change",r),e.element.addEventListener("change",r)}})}validate(e=null){if(e){this.clearExistingErrors();let r=this.fields.find(i=>i.name===e);return this.validateField(r),this.checkIfValid()}else return this.clearExistingErrors(),this.fields.forEach(r=>{this.validateField(r)}),this.checkIfValid()}checkIfValid(){return!this.fields.map(r=>r.validations.some(i=>!i.valid)).includes(!0)}validateField(e){let r=this.form.querySelector(`[name="${e.name}"]`),i=["checkbox","radio"].includes(e.type),o=i?null:e?.element?.value?.trim(),s=i?e?.element?.checked:null;e.validations.forEach(a=>{if(this.isValidValue(i,i?s:o,a))this.markValidationAsValid(e,a.name);else{let w=this.messages[e.name]&&this.messages[e.name][a.name];this.markValidationAsInvalid(e,a.name),this.renderError(e.element,w||this.defaultValidationErrors[a.name](a.rule,o))}});let n=e.validations.some(a=>!a.valid);return n&&(r.classList.add("error"),r.focus()),n||(r.classList.remove("error"),this.clearExistingError(e.name)),!n}markValidationAsInvalid(e,r){let o=[...e.validations].find(s=>s.name===r);o.valid=!1}markValidationAsValid(e,r){let o=[...e.validations].find(s=>s.name===r);o.valid=!0}isValidValue(e,r,i){let o=X[i.name];return o?o(i.rule,r,{isChecked:e}):!0}clearExistingErrors(){this.form&&this.form.querySelectorAll(".input-hint.error").forEach(e=>e.remove())}clearExistingError(e=""){let r=document.getElementById(`error-${e}`);r&&r.remove()}renderError(e,r=""){if(e){this.clearExistingError(e.name);let i=document.createElement("p");i.classList.add("input-hint"),i.classList.add("error"),i.setAttribute("id",`error-${e.name}`),i.innerText=r,e.after(i)}}},ue=(t,e)=>new Promise((r,i)=>{try{new ee(t,e).validate()?r():i()}catch(o){console.warn(o)}}),te=ue;var re=(t={},e={})=>{try{return[...Object.keys(e),...Object.keys(t)].filter((i,o,s)=>s.indexOf(i)===o).reduce((i,o)=>{let s=e[o],n=t[o]||null,a=!F(s)&&!k(s);return i[o]=a?s:n,i},{})}catch(r){d("component.props.compile",r)}};var ie=(t="",e={})=>{try{let r="";if(t&&g(t))return r=t,r;if(t&&h(t))return r=t(e),r;if(t&&c(t)){let i=t?.print&&(g(t?.print)||h(t?.print)),o=t?.min&&c(t?.min),s=t?.min?.width&&c(t?.min?.width),n=t?.min?.height&&c(t?.min?.height),a=t?.max&&c(t?.max),w=t?.max?.width&&c(t?.max?.width),ce=t?.max?.height&&c(t?.max?.height);if(i&&(r+=`
1
+ var k="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split(""),f=(e=16)=>{let t="",r=0;for(;r<e;)t+=k[Math.floor(Math.random()*(k.length-1))],r+=1;return t};var d=(e="",t={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${t.message||t.reason||t}`)};var F=e=>{try{return typeof e=="undefined"}catch(t){d("types.isUndefined",t)}},M=e=>{try{return e===null}catch(t){d("types.isNull",t)}};var x=e=>{try{return!!Array.isArray(e)}catch(t){d("types.isArray",t)}};var h=e=>{try{return typeof e=="function"}catch(t){d("types.isFunction",t)}};var c=e=>{try{return!!(e&&typeof e=="object"&&!Array.isArray(e))}catch(t){d("types.isObject",t)}};var y=e=>{try{return typeof e=="string"}catch(t){d("types.isString",t)}};var C=(e=[],t="")=>{try{return(x(e)&&e.find(i=>i?.componentId===t))?.data||{}}catch(r){d("findComponentDataFromSSR",r)}};var L=(()=>{let e=0;return(t,r)=>{clearTimeout(e),e=setTimeout(t,r)}})();var w=e=>!!(e&&typeof e=="object"&&!Array.isArray(e));var R=e=>typeof e=="string";var Z=/^(?: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}))$/,v=(e,t="")=>{if(!t)return!0;if(t&&!R(t))return!1;let r=t?t.replace(/[- ]+/g,""):"";return e===!0?r.match(new RegExp(Z)):!r.match(new RegExp(Z))};var z=(e="",t="")=>e(t);var V=/^((?:[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])+)\]))$/,T=(e,t="")=>e===!0?!!t.match(V):!t.match(V);var D=(e,t="")=>e===t;var j=(e,t="")=>e===t;var N=(e,t="")=>t.length<=e;var O=(e,t="")=>t.length>=e;var U=/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/,_=(e,t="")=>e===!0?!!t.match(U):!t.match(U);var P={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}$/},B=(e,t="")=>{let r=w(e)&&e.iso?P[e.iso||"US"]:P.US;return w(e)?e.rule===!0?!!t.match(r):!t.match(r):e===!0?!!t.match(r):!t.match(r)};var G=(e="",t="")=>(t?.match(e)||[])?.length>0;var H=(e,t="",r={isChecked:!1})=>{if(!r.isChecked)return e===!0?t&&t.trim()!=="":t&&t.trim()==="";if(r.isChecked)return e===!0?t:!t};var q=/^(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-]+)*))?$/,I=(e,t="")=>e===!0?!!t.match(q):!t.match(q);var K=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,W=(e,t="")=>e===!0?!!t.match(K):!t.match(K);var Y=/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/,J=(e,t="")=>e===!0?!!t.match(Y):!t.match(Y);var Q=/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/,X=(e,t="")=>e===!0?!!t.match(Q):!t.match(Q);var ee={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},te=(e,t="")=>{let r=w(e)&&e.iso?ee[e.iso||"EU"]:ee.EU;return w(e)?e.rule===!0?!!t.match(r):!t.match(r):e===!0?!!t.match(r):!t.match(r)};var re={creditCard:v,custom:z,email:T,equals:D,matches:j,maxLength:N,minLength:O,phone:_,postalCode:B,regex:G,required:H,semVer:I,slug:W,strongPassword:J,url:X,vat:te};var ie=class{constructor(t,r={}){this.fieldsToListenToForChanges=["checkbox","color","date","datetime-local","email","file","hidden","month","number","password","radio","range","search","tel","text","time","url","week"],this.defaultValidationErrors={creditCard:()=>"Must be a valid credit card number.",custom:()=>"Must return true.",email:()=>"Must be a valid email.",equals:i=>`Value must equal ${i}.`,matches:i=>`Field must match ${i}.`,maxLength:i=>`Field value can be no greater than ${i}.`,minLength:i=>`Field value can be no less than ${i}.`,phone:()=>"Field value must be a valid telephone number.",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.",slug:()=>"Field value must be a valid URL slug.",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."},t||console.warn("[validateForm] Must pass an HTML <form></form> element to validate."),this.form=t,this.setOptions(r),this.attachEventListeners()}setOptions(t={}){this.rules=t.rules||{},this.messages=t.messages||{},this.onSubmit=t.onSubmit,this.onRenderError=t.onRenderError,this.fields=this.serialize()}updateOptions(t={}){this.setOptions(t)}serialize(){if(this.form)return Object.keys(this.rules).map(r=>{let i=this.form.querySelector(`[name="${r}"]`),o=i?.type;return{listenForChanges:this.fieldsToListenToForChanges.includes(o),type:o,name:r,element:i,validations:Object.entries(this.rules[r]).map(([n,a])=>({name:n,rule:a,valid:!1})).sort((n,a)=>n.name>a.name?1:-1),errorMessages:this.messages[r]?Object.keys(this.messages[r]):{}}})}attachEventListeners(){if(this.form){let t=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 i=this.form.listeners[r];this.form.removeEventListener("submit",i)}this.form.addEventListener("submit",t),this.form.listeners=[...this.form.listeners||[],t]}this.fields.forEach(t=>{if(t?.element&&t?.listenForChanges){let r=()=>{L(()=>{this.validate(t.name)},100)};t.element.removeEventListener("input",r),t.element.addEventListener("input",r),t.element.removeEventListener("change",r),t.element.addEventListener("change",r)}})}validate(t=null){if(t){let r=this.fields.find(i=>i.name===t);return this.clearExistingError(t),this.validateField(r),this.checkIfValid()}else return this.clearExistingErrors(),this.fields.forEach(r=>{this.validateField(r)}),this.checkIfValid()}checkIfValid(){return!this.fields.map(r=>r.validations.some(i=>!i.valid)).includes(!0)}validateField(t){let r=this.form.querySelector(`[name="${t.name}"]`);if(!r)return!0;let i=["checkbox","radio"].includes(t.type),o=i?null:t?.element?.value?.trim(),s=i?t?.element?.checked:null;t.validations.forEach(a=>{if(this.isValidValue(i,i?s:o,a))this.markValidationAsValid(t,a.name);else{let b=this.messages[t.name]&&this.messages[t.name][a.name];this.markValidationAsInvalid(t,a.name),this.renderError(t.element,b||this.defaultValidationErrors[a.name](a.rule,o))}});let n=t.validations.some(a=>!a.valid);return n&&(r.classList.add("error"),r.focus()),n||(r.classList.remove("error"),this.clearExistingError(t.name)),!n}markValidationAsInvalid(t,r){let o=[...t.validations].find(s=>s.name===r);o.valid=!1}markValidationAsValid(t,r){let o=[...t.validations].find(s=>s.name===r);o.valid=!0}isValidValue(t,r,i){let o=re[i.name];return o?o(i.rule,r,{isChecked:t}):!0}clearExistingErrors(){this.form&&this.form.querySelectorAll(".input-hint.error").forEach(t=>t.parentNode.removeChild(t))}clearExistingError(t=""){let r=document.getElementById(`error-${t}`);r&&r.parentNode.removeChild(r)}renderError(t,r=""){if(t){if(this.clearExistingError(t.name),typeof this.onRenderError=="function")return this.onRenderError(t,r);let i=document.createElement("p");i.classList.add("input-hint"),i.classList.add("error"),i.setAttribute("id",`error-${t.name}`),i.innerText=r,t.after(i)}}},$e=(e,t)=>new Promise((r,i)=>{try{new ie(e,t).validate()?r():i()}catch(o){console.warn(o)}}),oe=$e;var se=(e={},t={})=>{try{return[...Object.keys(t),...Object.keys(e)].filter((i,o,s)=>s.indexOf(i)===o).reduce((i,o)=>{let s=t[o],n=e[o]||null,a=!F(s)&&!M(s);return i[o]=a?s:n,i},{})}catch(r){d("component.props.compile",r)}};var de=(e="",t={})=>{try{let r="";if(e&&y(e))return r=e,r;if(e&&h(e))return r=e(t),r;if(e&&c(e)){let i=e?.print&&(y(e?.print)||h(e?.print)),o=e?.min&&c(e?.min),s=e?.min?.width&&c(e?.min?.width),n=e?.min?.height&&c(e?.min?.height),a=e?.max&&c(e?.max),b=e?.max?.width&&c(e?.max?.width),he=e?.max?.height&&c(e?.max?.height);if(i&&(r+=`
2
2
  @media print {
3
- ${typeof t?.print=="function"?t?.print(e):t.print}
3
+ ${typeof e?.print=="function"?e?.print(t):e.print}
4
4
  }
5
- `),o&&s){let u=Object.entries(t?.min?.width);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
5
+ `),o&&s){let u=Object.entries(e?.min?.width);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
6
6
  @media screen and (min-width: ${$}px) {
7
- ${typeof m=="function"?m(e):m}
7
+ ${typeof m=="function"?m(t):m}
8
8
  }
9
- `}}if(o&&n){let u=Object.entries(t?.min?.height);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
9
+ `}}if(o&&n){let u=Object.entries(e?.min?.height);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
10
10
  @media screen and (min-height: ${$}px) {
11
- ${typeof m=="function"?m(e):m}
11
+ ${typeof m=="function"?m(t):m}
12
12
  }
13
- `}}if(a&&w){let u=Object.entries(t?.max?.width);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
13
+ `}}if(a&&b){let u=Object.entries(e?.max?.width);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
14
14
  @media screen and (max-width: ${$}px) {
15
- ${typeof m=="function"?m(e):m}
15
+ ${typeof m=="function"?m(t):m}
16
16
  }
17
- `}}if(a&&ce){let u=Object.entries(t?.max?.height);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
17
+ `}}if(a&&he){let u=Object.entries(e?.max?.height);for(let l=0;l<u.length;l+=1){let[$,m]=u[l];r+=`
18
18
  @media screen and (max-height: ${$}px) {
19
- ${typeof m=="function"?m(e):m}
19
+ ${typeof m=="function"?m(t):m}
20
20
  }
21
- `}}return r}return""}catch(r){d("component.css.compileCSS",r)}};var he=(t={},e=null)=>{try{let r=e(t);return r&&c(r)&&!f(r)?Object.assign({},r):{}}catch(r){d("component.state.compile.compileState",r)}},oe=(t={},e={})=>{try{return h(e)?he(t,e):Object.assign({},e)}catch(r){d("component.state.compile",r)}};var y={onBeforeMount:()=>null,onMount:()=>null,onBeforeUnmount:()=>null,onUpdateProps:()=>null,onRefetchData:()=>null};var se=(t={},e={})=>{try{return e?Object.entries({...y,...e||{}}).reduce((r={},[i,o])=>(r[i]=()=>o({...t,setState:t.setState.bind(t),...t.renderMethods||{}}),r),{}):y}catch(r){d("component.lifecycle.compile",r)}};var de=(t={},e={})=>{try{return Object.entries(e).reduce((r={},[i,o])=>(r[i]=(...s)=>o(...s,{...t,setState:t.setState.bind(t),...t.renderMethods||{}}),r),{})}catch{d("component.methods.compile")}};var E=(t={})=>{try{return{...t,query:{...t?.query||{},set:(e="",r="")=>{if(typeof window!="undefined"){let i=new URL(window.location);i.searchParams.append(e,r),window.history.pushState({},"",i)}},unset:(e="")=>{if(typeof window!="undefined"){let r=new URL(window.location);r.searchParams.delete(e),window.history.pushState({},"",r)}}},isActive:(e="")=>g(e)&&t?.route!=="*"?e===(typeof location!="undefined"?location.pathname:t.path):!1}}catch(e){d("component.url.compile",e)}};var ae=()=>typeof window=="undefined";var x=null,b=0,ne=(t={},e=null)=>{try{let r=t?.url;t?.query&&(r=`${r}?${new URLSearchParams(t.query).toString()}`);let i=new WebSocket(r);x&&(clearInterval(x),x=null);let o={client:i,send:(s={})=>i.send(JSON.stringify(s))};return i.addEventListener("open",()=>{t?.options?.logging&&console.log(`[joystick.websockets] Connected to ${t?.url}`),t?.events?.onOpen&&t.events.onOpen(o),b=0}),i.addEventListener("message",s=>{s?.data&&t?.events?.onMessage&&t.events.onMessage(JSON.parse(s.data||{}),o)}),i.addEventListener("close",s=>{t?.options?.logging&&console.log(`[joystick.websockets] Disconnected from ${t?.url}`),t?.events?.onClose&&t.events.onClose(s?.code,s?.reason,o),i=null;let n=[1e3,1001].includes(s?.code);t?.options?.autoReconnect&&!x&&!n&&(x=setInterval(()=>{i=null,b<(t?.options?.reconnectAttempts||12)?(ne(t,e),t?.options?.logging&&console.log(`[joystick.websockets] Attempting to reconnect (${b+1}/12)...`),b+=1):clearInterval(x)},t?.options?.reconnectDelayInSeconds*1e3||5e3))}),e&&e(o),o}catch(r){d("websockets.client",r)}},le=ne;var $e=(t={},e=null)=>{try{let r=e(t);return r&&c(r)&&!f(r)?Object.assign({},r):{}}catch(r){d("component.props.compileDefaultProps.compile",r)}},me=(t={},e={})=>{try{return h(e)?$e(t,e):Object.assign({},e)}catch(r){d("component.props.compileDefaultProps",r)}};var Gt=(t={},e={})=>{try{t.options=e||{},t.id=e?._componentId||null,t.instanceId=S(8),t.ssrId=e?._ssrId||null,t.css=ie(),t.data=L(e?.dataFromSSR,e?._componentId),t.defaultProps=me(t,e?.defaultProps),t.props=re(t?.defaultProps,e?.props),t.state=oe(t,e?.state),t.events=e?.events||{},t.lifecycle=se(t,e?.lifecycle),t.methods=de(t,e?.methods),t.wrapper=e?.wrapper||{},t.translations=e?.translations||{},t.validateForm=te,t.DOMNode=null,t.dom={},t.dom.virtual={},t.dom.actual={};let r=!ae();if(r||(t.url=E(e?.url)),r&&window.__joystick_url__&&(t.url=E(window.__joystick_url__)),r&&e?.websockets&&h(e?.websockets)){let i=e.websockets(t),o=c(i)&&Object.entries(i);for(let s=0;s<o?.length;s+=1){let[n,a]=o[s];le({url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${n}`,options:a?.options||{},query:a?.query||{},events:a?.events||{}},(w={})=>{t.websockets={...t.websockets||{},[n]:w}})}}}catch(r){d("component.registerOptions",r)}};export{Gt as default};
21
+ `}}return r}return""}catch(r){d("component.css.compileCSS",r)}};var pe=(e={},t=null)=>{try{let r=t(e);return r&&c(r)&&!x(r)?Object.assign({},r):{}}catch(r){d("component.state.compile.compileState",r)}},ae=(e={},t={})=>{try{return h(t)?pe(e,t):Object.assign({},t)}catch(r){d("component.state.compile",r)}};var A={onBeforeMount:()=>null,onMount:()=>null,onBeforeUnmount:()=>null,onUpdateProps:()=>null,onRefetchData:()=>null};var ne=(e={},t={})=>{try{return t?Object.entries({...A,...t||{}}).reduce((r={},[i,o])=>(r[i]=()=>o({...e,setState:e.setState.bind(e),...e.renderMethods||{}}),r),{}):A}catch(r){d("component.lifecycle.compile",r)}};var p=(e="",t=[])=>{typeof window!="undefined"&&!!window.__joystick_test__&&(window.test={...window.test||{},functionCalls:{...window?.test?.functionCalls||{},[e]:[...window?.test?.functionCalls&&window?.test?.functionCalls[e]||[],{calledAt:new Date().toISOString(),args:t}]}})};var le=(e={},t={})=>{try{return Object.entries(t).reduce((r={},[i,o])=>(r[i]=(...s)=>(p(`ui.${e?.options?.test?.name||f()}.methods.${i}`,[...s,{...e,setState:e.setState.bind(e),...e.renderMethods||{}}]),o(...s,{...e,setState:e.setState.bind(e),...e.renderMethods||{}})),r),{})}catch{d("component.methods.compile")}};var S=(e={})=>{try{return{...e,query:{...e?.query||{},set:(t="",r="")=>{if(typeof window!="undefined"){let i=new URL(window.location);i.searchParams.append(t,r),window.history.pushState({},"",i)}},unset:(t="")=>{if(typeof window!="undefined"){let r=new URL(window.location);r.searchParams.delete(t),window.history.pushState({},"",r)}}},isActive:(t="")=>y(t)&&e?.route!=="*"?t===(typeof location!="undefined"?location.pathname:e.path):!1}}catch(t){d("component.url.compile",t)}};var me=()=>typeof window=="undefined";var g=null,E=0,ce=(e={},t=null)=>{try{if(window?.__joystick_test__)return t();let r=e?.url;e?.query&&(r=`${r}?${new URLSearchParams(e.query).toString()}`);let i=new WebSocket(r);g&&(clearInterval(g),g=null);let o={client:i,send:(s={})=>(p(`ui.websockets.${e?.test?.name||f()}.send`,[s]),i.send(JSON.stringify(s)))};return i.addEventListener("open",()=>{e?.options?.logging&&console.log(`[joystick.websockets] Connected to ${e?.url}`),e?.events?.onOpen&&(e.events.onOpen(o),p(`ui.websockets.${e?.test?.name||f()}.onOpen`,[o])),E=0}),i.addEventListener("message",s=>{s?.data&&e?.events?.onMessage&&(e.events.onMessage(JSON.parse(s.data||{}),o),p(`ui.websockets.${e?.test?.name||f()}.onMessage`,[s.data||{},o]))}),i.addEventListener("close",s=>{e?.options?.logging&&console.log(`[joystick.websockets] Disconnected from ${e?.url}`),e?.events?.onClose&&(e.events.onClose(s?.code,s?.reason,o),p(`ui.websockets.${e?.test?.name||f()}.onClose`,[s.data||{},o])),i=null;let n=[1e3,1001].includes(s?.code);e?.options?.autoReconnect&&!g&&!n&&(g=setInterval(()=>{i=null,E<(e?.options?.reconnectAttempts||12)?(ce(e,t),e?.options?.logging&&console.log(`[joystick.websockets] Attempting to reconnect (${E+1}/12)...`),E+=1):clearInterval(g)},e?.options?.reconnectDelayInSeconds*1e3||5e3))}),t&&t(o),o}catch(r){d("websockets.client",r)}},ue=ce;var xe=(e={},t=null)=>{try{let r=t(e);return r&&c(r)&&!x(r)?Object.assign({},r):{}}catch(r){d("component.props.compileDefaultProps.compile",r)}},fe=(e={},t={})=>{try{return h(t)?xe(e,t):Object.assign({},t)}catch(r){d("component.props.compileDefaultProps",r)}};var tr=(e={},t={})=>{try{e.options=t||{},e.id=t?._componentId||null,e.instanceId=f(8),e.ssrId=t?._ssrId||null,e.css=de(),e.data=C(t?.dataFromSSR,t?._componentId),e.defaultProps=fe(e,t?.defaultProps),e.props=se(e?.defaultProps,t?.props),e.state=ae(e,t?.state),e.events=t?.events||{},e.lifecycle=ne(e,t?.lifecycle),e.methods=le(e,t?.methods),e.wrapper=t?.wrapper||{},e.translations=t?.translations||{},e.validateForm=oe,e.DOMNode=null,e.dom={},e.dom.virtual={},e.dom.actual={};let r=!me();if(r||(e.url=S(t?.url)),r&&window.__joystick_url__&&(e.url=S(window.__joystick_url__)),r&&window.__joystick_user__&&(e.user=window.__joystick_user__),r&&t?.websockets&&h(t?.websockets)){let i=t.websockets(e),o=c(i)&&Object.entries(i);for(let s=0;s<o?.length;s+=1){let[n,a]=o[s];ue({test:e?.test,url:`${window?.process?.env.NODE_ENV==="development"?"ws":"wss"}://${location.host}/api/_websockets/${n}`,options:a?.options||{},query:a?.query||{},events:a?.events||{}},(b={})=>{e.websockets={...e.websockets||{},[n]:b}})}}}catch(r){d("component.registerOptions",r)}};export{tr as default};
@@ -1 +1 @@
1
- var o=(e="",t={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${t.message||t.reason||t}`)};var p=["render"];var c=(e={})=>{try{return p.every(t=>Object.keys(e).includes(t))}catch(t){o("component.hasAllRequiredOptions",t)}};var l=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","translations","url","websockets","wrapper"];var m=e=>{try{return!!Array.isArray(e)}catch(t){o("types.isArray",t)}};var r=e=>{try{return typeof e=="function"}catch(t){o("types.isFunction",t)}};var i=e=>{try{return!!(e&&typeof e=="object"&&!Array.isArray(e))}catch(t){o("types.isObject",t)}};var s=e=>{try{return typeof e=="string"}catch(t){o("types.isString",t)}};var d=(e=null)=>{try{!s(e)&&!r(e)&&!i(e)&&o("component.optionValidators.css","options.css must be a string, function returning a string, or an object returning breakpoints.")}catch(t){o("component.optionValidators.css",t)}};var u=["readystatechange","pointerlockchange","pointerlockerror","beforecopy","beforecut","beforepaste","freeze","resume","search","securitypolicyviolation","visibilitychange","fullscreenchange","fullscreenerror","webkitfullscreenchange","webkitfullscreenerror","beforexrselect","abort","blur","cancel","canplay","canplaythrough","change","click","close","contextmenu","cuechange","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","formdata","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","pause","play","playing","progress","ratechange","reset","resize","scroll","seeked","seeking","select","stalled","submit","suspend","timeupdate","toggle","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel","auxclick","gotpointercapture","lostpointercapture","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","selectstart","selectionchange","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitionend","transitioncancel","copy","cut","paste","pointerrawupdate"];var f=(e=null)=>{try{i(e)||o("component.optionValidators.events","options.events must be an object.");for(let t of Object.keys(e)){let[n]=t.split(" ");u.includes(n)||o("component.optionValidators.events",`${n} is not a supported JavaScript event type.`)}for(let[t,n]of Object.entries(e))r(n)||o("component.optionValidators.events",`options.events.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.events",t)}};var y=["onBeforeMount","onMount","onUpdateProps","onBeforeUnmount","onRefetchData"];var w=(e=null)=>{try{i(e)||o("component.optionValidators.lifecycle","options.lifecycle must be an object.");for(let[t,n]of Object.entries(e))y.includes(t)||o("component.optionValidators.lifecycle",`options.lifecycle.${t} is not supported.`),r(n)||o("component.optionValidators.lifecycle",`options.lifecycle.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.lifecycle",t)}};var b=(e=null)=>{try{i(e)||o("component.optionValidators.methods","options.methods must be an object.");for(let[t,n]of Object.entries(e))r(n)||o("component.optionValidators.methods",`options.methods.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.methods",t)}};var h=(e=null)=>{typeof e!="string"&&o("component.optionValidators.name","options.name must be a string.")};var g=(e=null)=>{try{r(e)||o("component.optionValidators.render","options.render must be a function returning a string.")}catch(t){o("component.optionValidators.render",t)}};var x=(e=null)=>{try{r(e)||o("component.optionValidators.websockets","options.websockets must be a function returning an object.")}catch(t){o("component.optionValidators.websockets",t)}};var k=(e=null)=>{try{i(e)||o("component.optionValidators.wrapper","options.wrapper must be an object.");for(let[t,n]of Object.entries(e))t==="id"&&!s(n)&&o("component.optionValidators.wrapper",`options.wrapper.${t} must be assigned a string.`),t==="classList"&&!m(n)&&o("component.optionValidators.wrapper",`options.wrapper.${t} must be assigned an array of strings.`)}catch(t){o("component.optionValidators.wrapper",t)}};var F={css:d,events:f,lifecycle:w,methods:b,name:h,render:g,websockets:x,wrapper:k};var gt=(e={})=>{try{c(e)||o("component.validateOptions",`component options must include ${required.options.join(",")}.`);for(let[t,n]of Object.entries(e)){l.includes(t)||o("component.validateOptions",`${t} is not supported by joystick.component.`);let a=F[t];a&&r(a)&&a(n)}}catch(t){o("component.validateOptions",t)}};export{gt as default};
1
+ var o=(e="",t={})=>{throw new Error(`[joystick${e?`.${e}`:""}] ${t.message||t.reason||t}`)};var p=["render"];var c=(e={})=>{try{return p.every(t=>Object.keys(e).includes(t))}catch(t){o("component.hasAllRequiredOptions",t)}};var m=["_componentId","_ssrId","api","dataFromSSR","existingProps","existingState","instanceId","parent","req","css","data","defaultProps","events","id","lifecycle","methods","name","props","render","state","test","translations","url","websockets","wrapper"];var l=e=>{try{return!!Array.isArray(e)}catch(t){o("types.isArray",t)}};var r=e=>{try{return typeof e=="function"}catch(t){o("types.isFunction",t)}};var i=e=>{try{return!!(e&&typeof e=="object"&&!Array.isArray(e))}catch(t){o("types.isObject",t)}};var s=e=>{try{return typeof e=="string"}catch(t){o("types.isString",t)}};var d=(e=null)=>{try{!s(e)&&!r(e)&&!i(e)&&o("component.optionValidators.css","options.css must be a string, function returning a string, or an object returning breakpoints.")}catch(t){o("component.optionValidators.css",t)}};var u=["readystatechange","pointerlockchange","pointerlockerror","beforecopy","beforecut","beforepaste","freeze","resume","search","securitypolicyviolation","visibilitychange","fullscreenchange","fullscreenerror","webkitfullscreenchange","webkitfullscreenerror","beforexrselect","abort","blur","cancel","canplay","canplaythrough","change","click","close","contextmenu","cuechange","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","formdata","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","pause","play","playing","progress","ratechange","reset","resize","scroll","seeked","seeking","select","stalled","submit","suspend","timeupdate","toggle","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel","auxclick","gotpointercapture","lostpointercapture","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","selectstart","selectionchange","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitionend","transitioncancel","copy","cut","paste","pointerrawupdate"];var f=(e=null)=>{try{i(e)||o("component.optionValidators.events","options.events must be an object.");for(let t of Object.keys(e)){let[n]=t.split(" ");u.includes(n)||o("component.optionValidators.events",`${n} is not a supported JavaScript event type.`)}for(let[t,n]of Object.entries(e))r(n)||o("component.optionValidators.events",`options.events.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.events",t)}};var y=["onBeforeMount","onMount","onUpdateProps","onBeforeUnmount","onRefetchData"];var b=(e=null)=>{try{i(e)||o("component.optionValidators.lifecycle","options.lifecycle must be an object.");for(let[t,n]of Object.entries(e))y.includes(t)||o("component.optionValidators.lifecycle",`options.lifecycle.${t} is not supported.`),r(n)||o("component.optionValidators.lifecycle",`options.lifecycle.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.lifecycle",t)}};var w=(e=null)=>{try{i(e)||o("component.optionValidators.methods","options.methods must be an object.");for(let[t,n]of Object.entries(e))r(n)||o("component.optionValidators.methods",`options.methods.${t} must be assigned a function.`)}catch(t){o("component.optionValidators.methods",t)}};var h=(e=null)=>{typeof e!="string"&&o("component.optionValidators.name","options.name must be a string.")};var g=(e=null)=>{try{r(e)||o("component.optionValidators.render","options.render must be a function returning a string.")}catch(t){o("component.optionValidators.render",t)}};var x=(e=null)=>{try{i(e)||o("component.optionValidators.test","options.test must be an object."),e?.name&&!s(e.name)&&o("component.optionValidators.test","options.test.name must be assigned a string.")}catch(t){o("component.optionValidators.test",t)}};var k=(e=null)=>{try{r(e)||o("component.optionValidators.websockets","options.websockets must be a function returning an object.")}catch(t){o("component.optionValidators.websockets",t)}};var F=(e=null)=>{try{i(e)||o("component.optionValidators.wrapper","options.wrapper must be an object.");for(let[t,n]of Object.entries(e))t==="id"&&!s(n)&&o("component.optionValidators.wrapper",`options.wrapper.${t} must be assigned a string.`),t==="classList"&&!l(n)&&o("component.optionValidators.wrapper",`options.wrapper.${t} must be assigned an array of strings.`)}catch(t){o("component.optionValidators.wrapper",t)}};var V={css:d,events:f,lifecycle:b,methods:w,name:h,render:g,test:x,websockets:k,wrapper:F};var Ot=(e={})=>{try{c(e)||o("component.validateOptions",`component options must include ${required.options.join(",")}.`);for(let[t,n]of Object.entries(e)){m.includes(t)||o("component.validateOptions",`${t} is not supported by joystick.component.`);let a=V[t];a&&r(a)&&a(n)}}catch(t){o("component.validateOptions",t)}};export{Ot as default};