@nordcraft/runtime 1.0.59 → 1.0.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom-element.main.esm.js +3 -3
- package/dist/custom-element.main.esm.js.map +2 -2
- package/dist/editor-preview.main.js +69 -89
- package/dist/editor-preview.main.js.map +1 -1
- package/dist/page.main.esm.js +3 -3
- package/dist/page.main.esm.js.map +3 -3
- package/dist/page.main.js +138 -133
- package/dist/page.main.js.map +1 -1
- package/package.json +3 -3
- package/src/editor-preview.main.ts +70 -99
- package/src/page.main.ts +162 -152
|
@@ -77,8 +77,8 @@ var Ko=Object.create;var Oe=Object.defineProperty;var Wo=Object.getOwnPropertyDe
|
|
|
77
77
|
${Object.values(r).map(l=>kl(l)).join(`
|
|
78
78
|
`)}
|
|
79
79
|
|
|
80
|
-
${Object.entries(n.propertyDefinitions??{}).map(([l,i])=>Co(l,i,n)).join(`
|
|
81
|
-
`)}
|
|
80
|
+
${n?Object.entries(n.propertyDefinitions??{}).map(([l,i])=>Co(l,i,n)).join(`
|
|
81
|
+
`):""}
|
|
82
82
|
|
|
83
83
|
${be(":host, :root",n)}
|
|
84
84
|
${be(":host, :root",a,"@media (prefers-color-scheme: dark)")}
|
|
@@ -270,7 +270,7 @@ ${y}::-webkit-scrollbar {
|
|
|
270
270
|
}
|
|
271
271
|
`)).join(`
|
|
272
272
|
`):""}
|
|
273
|
-
`}catch(A){return console.error(A),""}},h=new Set;function u(d,m){if(!h.has(d.name)){if(h.add(d.name),!d.nodes){console.warn("Unable to find nodes for component",d.name);return}Object.entries(d.nodes).forEach(([A,C])=>{if(C.type==="component"){let y=t.find(j=>j.name===[C.package??m,C.name].filter(D=>D).join("/"));if(y){u(y,C.package??m),l+=c(C,ye(`${d.name}:${A}`,!0));return}}if(C.type!=="element")return;let F=ge([C.style,C.variants]);if(n.has(F))return"";n.add(F),l+=c(C,F)})}}return u(e),l},Pl=e=>new Set(e.flatMap(t=>Object.values(t.nodes).flatMap(r=>r.type==="element"?[r.style.fontFamily,r.style["font-family"],...r.variants?.map(o=>o.style.fontFamily??o.style["font-family"])??[]].filter(O):[])).map(t=>t.replace("var(","").replace(")","").replace(/'/g,"")));var ee=e=>"triggerActions"in e;var Do=le(oe(),1);function Ll(e){for(var t=[],r=0;r<e.length;){var o=e[r];if(o==="*"||o==="+"||o==="?"){t.push({type:"MODIFIER",index:r,value:e[r++]});continue}if(o==="\\"){t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});continue}if(o==="{"){t.push({type:"OPEN",index:r,value:e[r++]});continue}if(o==="}"){t.push({type:"CLOSE",index:r,value:e[r++]});continue}if(o===":"){for(var n="",a=r+1;a<e.length;){var s=e.charCodeAt(a);if(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||s===95){n+=e[a++];continue}break}if(!n)throw new TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:n}),r=a;continue}if(o==="("){var l=1,i="",a=r+1;if(e[a]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(a));for(;a<e.length;){if(e[a]==="\\"){i+=e[a++]+e[a++];continue}if(e[a]===")"){if(l--,l===0){a++;break}}else if(e[a]==="("&&(l++,e[a+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(a));i+=e[a++]}if(l)throw new TypeError("Unbalanced pattern at ".concat(r));if(!i)throw new TypeError("Missing pattern at ".concat(r));t.push({type:"PATTERN",index:r,value:i}),r=a;continue}t.push({type:"CHAR",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}function Il(e,t){t===void 0&&(t={});for(var r=Ll(e),o=t.prefixes,n=o===void 0?"./":o,a=t.delimiter,s=a===void 0?"/#?":a,l=[],i=0,c=0,h="",u=function(g){if(c<r.length&&r[c].type===g)return r[c++].value},d=function(g){var w=u(g);if(w!==void 0)return w;var E=r[c],T=E.type,L=E.index;throw new TypeError("Unexpected ".concat(T," at ").concat(L,", expected ").concat(g))},m=function(){for(var g="",w;w=u("CHAR")||u("ESCAPED_CHAR");)g+=w;return g},A=function(g){for(var w=0,E=s;w<E.length;w++){var T=E[w];if(g.indexOf(T)>-1)return!0}return!1},C=function(g){var w=l[l.length-1],E=g||(w&&typeof w=="string"?w:"");if(w&&!E)throw new TypeError('Must have text between two parameters, missing text after "'.concat(w.name,'"'));return!E||A(E)?"[^".concat(Ur(s),"]+?"):"(?:(?!".concat(Ur(E),")[^").concat(Ur(s),"])+?")};c<r.length;){var F=u("CHAR"),y=u("NAME"),j=u("PATTERN");if(y||j){var D=F||"";n.indexOf(D)===-1&&(h+=D,D=""),h&&(l.push(h),h=""),l.push({name:y||i++,prefix:D,suffix:"",pattern:j||C(D),modifier:u("MODIFIER")||""});continue}var R=F||u("ESCAPED_CHAR");if(R){h+=R;continue}h&&(l.push(h),h="");var $=u("OPEN");if($){var D=m(),p=u("NAME")||"",v=u("PATTERN")||"",b=m();d("CLOSE"),l.push({name:p||(v?i++:""),pattern:p&&!v?C(D):v,prefix:D,suffix:b,modifier:u("MODIFIER")||""});continue}d("END")}return l}function Oo(e,t){return Ml(Il(e,t),t)}function Ml(e,t){t===void 0&&(t={});var r=ql(t),o=t.encode,n=o===void 0?function(i){return i}:o,a=t.validate,s=a===void 0?!0:a,l=e.map(function(i){if(typeof i=="object")return new RegExp("^(?:".concat(i.pattern,")$"),r)});return function(i){for(var c="",h=0;h<e.length;h++){var u=e[h];if(typeof u=="string"){c+=u;continue}var d=i?i[u.name]:void 0,m=u.modifier==="?"||u.modifier==="*",A=u.modifier==="*"||u.modifier==="+";if(Array.isArray(d)){if(!A)throw new TypeError('Expected "'.concat(u.name,'" to not repeat, but got an array'));if(d.length===0){if(m)continue;throw new TypeError('Expected "'.concat(u.name,'" to not be empty'))}for(var C=0;C<d.length;C++){var F=n(d[C],u);if(s&&!l[h].test(F))throw new TypeError('Expected all "'.concat(u.name,'" to match "').concat(u.pattern,'", but got "').concat(F,'"'));c+=u.prefix+F+u.suffix}continue}if(typeof d=="string"||typeof d=="number"){var F=n(String(d),u);if(s&&!l[h].test(F))throw new TypeError('Expected "'.concat(u.name,'" to match "').concat(u.pattern,'", but got "').concat(F,'"'));c+=u.prefix+F+u.suffix;continue}if(!m){var y=A?"an array":"a string";throw new TypeError('Expected "'.concat(u.name,'" to be ').concat(y))}}return c}}function Ur(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function ql(e){return e&&e.sensitive?"":"i"}var se=({query:e,page:t,route:r,params:o,hash:n})=>{let a;if(r){let i=[];for(let c of r.path)if(c.type==="static")i.push(c.name);else{let h=o[c.name];if(O(h))i.push(h);else break}a="/"+i.join("/")}else a=Oo(t,{encode:encodeURIComponent})(o);let s=n===void 0||n===""?"":"#"+n,l=Object.entries(e).filter(([i,c])=>c!==null).map(([i,c])=>`${encodeURIComponent(r?.query[i]?.name??i)}=${encodeURIComponent(String(c))}`).join("&");return`${a}${s}${l.length>0?"?"+l:""}`};function x(e,t,r,o,n){try{if(!e)throw new Error("Action does not exist");switch(e.type){case"Switch":{let a=e.cases.find(({condition:s})=>N(S(s,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})))??e.default;if(!a)return;for(let s of a.actions)x(s,{...t,...r.dataSignal.get()},r,o,n);break}case"SetVariable":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});r.dataSignal.update(s=>({...s,Variables:{...s.Variables,[e.variable]:a}}));break}case"TriggerEvent":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});r.triggerEvent(e.event,a);break}case"TriggerWorkflowCallback":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});n?.(e.event,a);break}case"SetURLParameter":{r.toddle.locationSignal.update(a=>{let s=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env}),l,i;if(a.route?.path.some(u=>u.name===e.parameter)?(l="push",i={...a,params:{...W(a.params,[e.parameter]),[e.parameter]:s}}):(l="replace",i={...a,query:{...W(a.query,[e.parameter]),...O(s)?{[e.parameter]:s}:null}}),!l)return a;let c=se(a),h=se(i);return h!==c&&(l=e.historyMode??l,l==="push"?window.history.pushState({},"",h):window.history.replaceState({},"",h)),i});break}case"SetURLParameters":{let a=Object.entries(e.parameters??{});if(a.length===0)return;r.toddle.locationSignal.update(s=>{if(!s.route)return s;let l="replace",i={},c={},h={data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env},u=F=>s.route?.path.some(y=>y.name===F&&y.type==="param"),d=F=>Object.values(s.route?.query??{}).some(y=>y.name===F);for(let[F,y]of a){let j=S(y,h)??null;u(F)?(l="push",c[F]=j):d(F)&&(i[F]=j)}if(Object.keys(c).length===0&&Object.keys(i).length===0)return s;let m={...s,params:{...W(s.params,Object.keys(c)),...c},query:{...W(s.query,Object.keys(i)),...i}};if((0,Do.default)(m,s))return s;let A=se(s),C=se(m);return C!==A&&(l=e.historyMode??l,l==="push"?window.history.pushState({},"",C):window.history.replaceState({},"",C)),m});break}case"Fetch":{let a=r.apis[e.api];if(!a){console.error("The api ",e.api,"does not exist");return}if(ee(a)){let s=ne(e.inputs??{},i=>S(i.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})),l={onCompleted:e.onSuccess?.actions??[],onFailed:e.onError?.actions??[],onMessage:e.onMessage?.actions??[]};a.fetch({actionInputs:s,actionModels:l,componentData:t,workflowCallback:n})}else{let s=l=>{for(let i of l)x(i,{...t,...r.dataSignal.get()},r,o,n)};a.fetch().then(()=>{s(e.onSuccess.actions)},()=>{s(e.onError.actions)})}break}case"TriggerWorkflow":{let a=ne(e.parameters??{},i=>S(i.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})),s=e.callbacks;if(e.contextProvider){let i=r.providers[[r.package,e.contextProvider].filter(O).join("/")]??r.providers[e.contextProvider],c=i?.component.workflows?.[e.workflow];if(!c){i&&console.warn(`Cannot find workflow "${e.workflow}" on component "${e.contextProvider}". It has likely been removed or modified.`);return}c.actions.forEach(h=>x(h,{...t,...i.ctx.dataSignal.get(),Parameters:a},i.ctx,o,(u,d)=>{s?.[u]?.actions.forEach(A=>x(A,{...t,...r.dataSignal.get(),Parameters:a,Event:d},r,o,n))}));return}let l=r.component.workflows?.[e.workflow];if(!l){console.warn(`Workflow ${e.workflow} does not exist on component ${r.component.name}`);return}l.actions.forEach(i=>x(i,{...t,...r.dataSignal.get(),Parameters:a},r,o,(c,h)=>{s?.[c]?.actions.forEach(d=>x(d,{...t,...r.dataSignal.get(),Parameters:a,Event:h},r,o,n))}));break}default:try{let a=(l,i)=>{let c=e.events?.[l];c&&c.actions.forEach(h=>x(h,i?{...t,...r.dataSignal.get(),Event:i}:{...t,...r.dataSignal.get()},r,i??o,n))},s=e.version===2?(r.toddle.getCustomAction??r.toddle.getCustomAction)(e.name,e.package??r.package):void 0;if(s){let l=(e.arguments??[]).reduce((c,h)=>h?{...c,[h.name]:S(h.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})}:c,{}),i=s.handler?.(l,{root:r.root,triggerActionEvent:a},o);return i&&(typeof i=="function"||i instanceof Promise)&&r.dataSignal.subscribe(c=>c,{destroy:()=>{i instanceof Promise?i.then(c=>{typeof c=="function"&&c()}).catch(c=>console.error(c)):i()}}),i}else{let l=r.toddle.getAction(e.name);if(!l){console.error("Missing custom action",e.name);return}let i=e.arguments?.map(c=>S(c?.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env}))??[S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})];return l(i,{...r,triggerActionEvent:a},o)}}catch(a){console.error("Error in Custom Action",a)}}}catch(a){return console.error(a),null}}function Se(e,t){let r=null;function o(u,d){let m={data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env},A=S(u.url,m)??"",C=u.path&&u.path.length>0?"/"+u.path.map(p=>S(p.formula,m)).join("/"):"",F=Object.values(u.queryParams??{}),y=F.length>0?"?"+F.map(p=>`${p.name}=${encodeURIComponent(S(p.formula,m))}`).join("&"):"",j=K(u.headers)?S(u.headers,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}):ne(u.headers??{},p=>S(p,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env})),D=String(Object.entries(j).find(([p])=>p.toLocaleLowerCase()==="content-type")?.[1]),R=u.method??"GET",$=u.body&&["POST","PUT","PATCH","DELETE"].includes(R)?a(S(u.body,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}),D):void 0;return{url:A+C+y,method:R,auth:u.auth,headers:j,body:$}}async function n(u){let d=await u.text();try{return re(d)}catch{return d}}function a(u,d){switch(d){case"application/x-www-form-urlencoded":return typeof u=="object"&&u!==null?Object.entries(u).map(([m,A])=>Array.isArray(A)?A.map(C=>`${encodeURIComponent(m)}=${encodeURIComponent(C)}`).join("&"):`${encodeURIComponent(m)}=${encodeURIComponent(String(A))}`).join("&"):"";case"multipart/form-data":{let m=new FormData;return typeof u=="object"&&u!==null&&Object.entries(u).forEach(([A,C])=>{m.set(A,C)}),m}case"text/plain":return String(u);default:return JSON.stringify(u)}}function s(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:u,error:null,isLoading:!1}}}),e.onCompleted?.actions?.forEach(d=>{x(d,t.dataSignal.get(),t)})}function l(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:null,isLoading:!1,error:u}}}),e.onFailed?.actions?.forEach(d=>{x(d,t.dataSignal.get(),t)})}async function i(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:t.dataSignal.get().Apis?.[e.name]?.data??null,isLoading:!0,error:null}}});let d;try{e.proxy===!1?d=await fetch(u.url,{method:u.method,headers:u.headers,body:u.body}):d=await fetch(`/_query/${encodeURIComponent(t.component.name)}.${encodeURIComponent(e.name)}`,{method:"POST",body:JSON.stringify(u),signal:t.abortSignal,headers:{"Content-Type":"application/json"}});let m=await n(d);if(d.ok)s(m);else throw m}catch(m){return l(m),Promise.reject(m)}}function c(u){return typeof e.debounce=="number"?new Promise((d,m)=>{typeof r=="number"&&clearTimeout(r),r=setTimeout(()=>{i(u).then(d,m)},e.debounce)}):typeof e.throttle=="number"?typeof r=="number"?new Promise(()=>{}):(r=setTimeout(()=>{typeof r=="number"&&clearTimeout(r)},e.throttle),i(u)):i(u)}let h;if(t.dataSignal.update(u=>({...u,Apis:{...u.Apis??{},[e.name]:u.Apis?.[e.name]??{data:null,isLoading:!!(e.autoFetch&&S(e.autoFetch,{data:t.dataSignal.get(),component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env})),error:null}}})),e.autoFetch){h=t.dataSignal.map(d=>o(e,d));let u=!0;h.subscribe(d=>{if(e.autoFetch&&S(e.autoFetch,{data:t.dataSignal.get(),component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}))if(u&&t.isRootComponent){u=!1;let m=t.toddle?.pageState?.Apis?.[e.name];m&&m.data?typeof m.data=="string"?s(re(m.data)):s(m.data):c(d)}else c(d)})}return{fetch:u=>{let d=o(e,t.dataSignal.get()),m=d.body,A=new Headers({...d.headers,...u?.headers??{}});u?.body&&(m=a(u.body,A.get("Content-Type")??void 0)),m instanceof FormData&&A.delete("Content-Type");let C={url:u?.url??d.url,method:u?.method??d.method,auth:u?.auth??d.auth,headers:z(A),body:m};return c(C)},destroy:()=>h?.destroy()}}var To=({path:e,origin:t})=>{if(typeof e!="string")return!1;try{let r=new URL(e,t),o=new URLSearchParams(r.searchParams);return o.forEach((n,a)=>{r.searchParams.delete(a,n)}),o.forEach((n,a)=>{r.searchParams.append(a,n)}),r}catch{return!1}},ko="x-nordcraft-url",$o="x-nordcraft-templates-in-body";function Ae({apiRequest:e,componentData:t,ctx:r}){let o=null,n={...e};function a(p,v){let b=window.origin;try{new URL(b)}catch{b=void 0}let g=go({api:p,formulaContext:s(p,v),baseUrl:b,defaultHeaders:void 0});return{...g,requestSettings:{...g.requestSettings,credentials:p.client?.credentials&&["include","same-origin","omit"].includes(p.client.credentials)?p.client.credentials:void 0}}}function s(p,v){let b={data:r.dataSignal.get(),component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env},g=Object.entries(p.inputs).reduce((E,[T,L])=>(E[T]=S(L.formula,b),E),{}),w={...v,...b.data,ApiInputs:{...g}};return{component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,data:w,toddle:r.toddle,env:r.env}}function l(p,v){for(let[b,g]of de(p.redirectRules??{},([w,E])=>E.index)){let w=s(p,v),E=S(g.formula,{...w,data:{...w.data,Apis:{[p.name]:r.dataSignal.get().Apis?.[p.name]}}});if(typeof E=="string"){let T=To({path:E,origin:window.location.origin});if(T){if(r.env.runtime==="preview")return window.parent?.postMessage({type:"blockedNavigation",url:T.href},"*"),{name:b,index:g.index,url:T};window.location.replace(T.href)}}}}function i({eventName:p,api:v,data:b,componentData:g,workflowCallback:w}){switch(p){case"message":{let E=me("message",b.body);v.client?.onMessage?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}case"success":{let E=me("success",b.body);v.client?.onCompleted?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}case"failed":{let E=me("failed",{error:b.body,status:b.status});v.client?.onFailed?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}}}function c({api:p,componentData:v,data:b,performance:g}){let w=r.dataSignal.get().Apis?.[p.name]?.response?.performance?.requestStart;if(typeof w=="number"&&w>(g.requestStart??0))return;r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:b.body,error:null,response:{status:b.status,headers:b.headers,performance:g}}}});let E=l(p,v);E&&r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:b.body,error:null,response:{status:b.status,headers:b.headers,performance:g,...r.env.runtime==="preview"?{debug:{appliedRedirectRule:E}}:{}}}}})}function h({api:p,componentData:v,data:b,performance:g}){let w=r.dataSignal.get().Apis?.[p.name]?.response?.performance?.requestStart;if(typeof w=="number"&&w>(g.requestStart??0))return;r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:null,error:b.body,response:{status:b.status,headers:b.headers,performance:g}}}});let E=l(p,v);E&&r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:null,error:b.body,response:{status:b.status,headers:b.headers,performance:g,...r.env.runtime==="preview"?{debug:{appliedRedirectRule:E}}:{}}}}})}async function u({api:p,url:v,requestSettings:b,componentData:g,workflowCallback:w}){let E=async()=>{let T={requestStart:Date.now(),responseStart:null,responseEnd:null};r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!0,data:r.dataSignal.get().Apis?.[p.name]?.data??null,error:null}}});let L;try{if((p.server?.proxy?S(p.server.proxy.enabled.formula,s(p,g))??!1:!1)===!1)L=await fetch(v,b);else{let q=`/.toddle/omvej/components/${encodeURIComponent(r.component.name)}/apis/${encodeURIComponent(r.component.name)}:${encodeURIComponent(p.name)}`,P=new Headers(b.headers);P.set(ko,decodeURIComponent(v.href.replace(/\+/g," "))),N(S(p.server?.proxy?.useTemplatesInBody?.formula,s(p,g)))&&P.set($o,"true"),b.headers=P,L=await fetch(q,b)}T.responseStart=Date.now(),await d({api:p,componentData:g,res:L,performance:T,workflowCallback:w});return}catch(I){let q=I.cause?{message:I.message,data:I.cause}:I.message;return h({api:p,componentData:g,data:{body:q},performance:{...T,responseEnd:Date.now()}}),i({eventName:"failed",api:p,data:{body:q},componentData:g,workflowCallback:w}),Promise.reject(I)}};return p.client?.debounce?.formula?new Promise((T,L)=>{typeof o=="number"&&clearTimeout(o),o=setTimeout(()=>{E().then(T,L)},S(p.client?.debounce?.formula,s(p,g)))}):E()}function d({api:p,componentData:v,res:b,performance:g,workflowCallback:w}){let E=p.client?.parserMode??"auto";if(E==="auto"){let T=b.headers.get("content-type");fo(T)?E="event-stream":ce(T)?E="json":po(T)?E="text":mo(T)?E="json-stream":ho(T)?E="blob":E="text"}switch(E){case"text":return m({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"json":return C({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"event-stream":return y({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"json-stream":return A({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"blob":return F({api:p,componentData:v,res:b,performance:g,workflowCallback:w});default:return m({api:p,componentData:v,res:b,performance:g,workflowCallback:w})}}function m({api:p,res:v,performance:b,componentData:g,workflowCallback:w}){return j({api:p,res:v,performance:b,streamType:"text",useTextDecoder:!0,parseChunk:E=>E,parseChunksForData:E=>E.join(""),componentData:g,workflowCallback:w})}function A({api:p,res:v,performance:b,componentData:g,workflowCallback:w}){return j({api:p,res:v,performance:b,streamType:"json",useTextDecoder:!0,parseChunk:T=>{let L=T;try{L=JSON.parse(T)}catch{throw new Error("Error occurred while parsing the json chunk.",{cause:L})}return L},parseChunksForData:T=>[...T],delimiters:[`\r
|
|
273
|
+
`}catch(A){return console.error(A),""}},h=new Set;function u(d,m){if(!h.has(d.name)){if(h.add(d.name),!d.nodes){console.warn("Unable to find nodes for component",d.name);return}Object.entries(d.nodes).forEach(([A,C])=>{if(C.type==="component"){let y=t.find(j=>j.name===[C.package??m,C.name].filter(D=>D).join("/"));if(y){u(y,C.package??m),l+=c(C,ye(`${d.name}:${A}`,!0));return}}if(C.type!=="element")return;let F=ge([C.style,C.variants]);if(n.has(F))return"";n.add(F),l+=c(C,F)})}}return u(e),l},Pl=e=>new Set(e.flatMap(t=>Object.values(t.nodes).flatMap(r=>r.type==="element"?[r.style?.fontFamily,r.style?.["font-family"],...r.variants?.map(o=>o.style.fontFamily??o.style["font-family"])??[]].filter(O):[])).map(t=>t.replace("var(","").replace(")","").replace(/'/g,"")));var ee=e=>"triggerActions"in e;var Do=le(oe(),1);function Ll(e){for(var t=[],r=0;r<e.length;){var o=e[r];if(o==="*"||o==="+"||o==="?"){t.push({type:"MODIFIER",index:r,value:e[r++]});continue}if(o==="\\"){t.push({type:"ESCAPED_CHAR",index:r++,value:e[r++]});continue}if(o==="{"){t.push({type:"OPEN",index:r,value:e[r++]});continue}if(o==="}"){t.push({type:"CLOSE",index:r,value:e[r++]});continue}if(o===":"){for(var n="",a=r+1;a<e.length;){var s=e.charCodeAt(a);if(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||s===95){n+=e[a++];continue}break}if(!n)throw new TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:n}),r=a;continue}if(o==="("){var l=1,i="",a=r+1;if(e[a]==="?")throw new TypeError('Pattern cannot start with "?" at '.concat(a));for(;a<e.length;){if(e[a]==="\\"){i+=e[a++]+e[a++];continue}if(e[a]===")"){if(l--,l===0){a++;break}}else if(e[a]==="("&&(l++,e[a+1]!=="?"))throw new TypeError("Capturing groups are not allowed at ".concat(a));i+=e[a++]}if(l)throw new TypeError("Unbalanced pattern at ".concat(r));if(!i)throw new TypeError("Missing pattern at ".concat(r));t.push({type:"PATTERN",index:r,value:i}),r=a;continue}t.push({type:"CHAR",index:r,value:e[r++]})}return t.push({type:"END",index:r,value:""}),t}function Il(e,t){t===void 0&&(t={});for(var r=Ll(e),o=t.prefixes,n=o===void 0?"./":o,a=t.delimiter,s=a===void 0?"/#?":a,l=[],i=0,c=0,h="",u=function(g){if(c<r.length&&r[c].type===g)return r[c++].value},d=function(g){var w=u(g);if(w!==void 0)return w;var E=r[c],T=E.type,L=E.index;throw new TypeError("Unexpected ".concat(T," at ").concat(L,", expected ").concat(g))},m=function(){for(var g="",w;w=u("CHAR")||u("ESCAPED_CHAR");)g+=w;return g},A=function(g){for(var w=0,E=s;w<E.length;w++){var T=E[w];if(g.indexOf(T)>-1)return!0}return!1},C=function(g){var w=l[l.length-1],E=g||(w&&typeof w=="string"?w:"");if(w&&!E)throw new TypeError('Must have text between two parameters, missing text after "'.concat(w.name,'"'));return!E||A(E)?"[^".concat(Ur(s),"]+?"):"(?:(?!".concat(Ur(E),")[^").concat(Ur(s),"])+?")};c<r.length;){var F=u("CHAR"),y=u("NAME"),j=u("PATTERN");if(y||j){var D=F||"";n.indexOf(D)===-1&&(h+=D,D=""),h&&(l.push(h),h=""),l.push({name:y||i++,prefix:D,suffix:"",pattern:j||C(D),modifier:u("MODIFIER")||""});continue}var R=F||u("ESCAPED_CHAR");if(R){h+=R;continue}h&&(l.push(h),h="");var $=u("OPEN");if($){var D=m(),p=u("NAME")||"",v=u("PATTERN")||"",b=m();d("CLOSE"),l.push({name:p||(v?i++:""),pattern:p&&!v?C(D):v,prefix:D,suffix:b,modifier:u("MODIFIER")||""});continue}d("END")}return l}function Oo(e,t){return Ml(Il(e,t),t)}function Ml(e,t){t===void 0&&(t={});var r=ql(t),o=t.encode,n=o===void 0?function(i){return i}:o,a=t.validate,s=a===void 0?!0:a,l=e.map(function(i){if(typeof i=="object")return new RegExp("^(?:".concat(i.pattern,")$"),r)});return function(i){for(var c="",h=0;h<e.length;h++){var u=e[h];if(typeof u=="string"){c+=u;continue}var d=i?i[u.name]:void 0,m=u.modifier==="?"||u.modifier==="*",A=u.modifier==="*"||u.modifier==="+";if(Array.isArray(d)){if(!A)throw new TypeError('Expected "'.concat(u.name,'" to not repeat, but got an array'));if(d.length===0){if(m)continue;throw new TypeError('Expected "'.concat(u.name,'" to not be empty'))}for(var C=0;C<d.length;C++){var F=n(d[C],u);if(s&&!l[h].test(F))throw new TypeError('Expected all "'.concat(u.name,'" to match "').concat(u.pattern,'", but got "').concat(F,'"'));c+=u.prefix+F+u.suffix}continue}if(typeof d=="string"||typeof d=="number"){var F=n(String(d),u);if(s&&!l[h].test(F))throw new TypeError('Expected "'.concat(u.name,'" to match "').concat(u.pattern,'", but got "').concat(F,'"'));c+=u.prefix+F+u.suffix;continue}if(!m){var y=A?"an array":"a string";throw new TypeError('Expected "'.concat(u.name,'" to be ').concat(y))}}return c}}function Ur(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function ql(e){return e&&e.sensitive?"":"i"}var se=({query:e,page:t,route:r,params:o,hash:n})=>{let a;if(r){let i=[];for(let c of r.path)if(c.type==="static")i.push(c.name);else{let h=o[c.name];if(O(h))i.push(h);else break}a="/"+i.join("/")}else a=Oo(t,{encode:encodeURIComponent})(o);let s=n===void 0||n===""?"":"#"+n,l=Object.entries(e).filter(([i,c])=>c!==null).map(([i,c])=>`${encodeURIComponent(r?.query[i]?.name??i)}=${encodeURIComponent(String(c))}`).join("&");return`${a}${s}${l.length>0?"?"+l:""}`};function x(e,t,r,o,n){try{if(!e)throw new Error("Action does not exist");switch(e.type){case"Switch":{let a=e.cases.find(({condition:s})=>N(S(s,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})))??e.default;if(!a)return;for(let s of a.actions)x(s,{...t,...r.dataSignal.get()},r,o,n);break}case"SetVariable":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});r.dataSignal.update(s=>({...s,Variables:{...s.Variables,[e.variable]:a}}));break}case"TriggerEvent":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});r.triggerEvent(e.event,a);break}case"TriggerWorkflowCallback":{let a=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env});n?.(e.event,a);break}case"SetURLParameter":{r.toddle.locationSignal.update(a=>{let s=S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env}),l,i;if(a.route?.path.some(u=>u.name===e.parameter)?(l="push",i={...a,params:{...W(a.params,[e.parameter]),[e.parameter]:s}}):(l="replace",i={...a,query:{...W(a.query,[e.parameter]),...O(s)?{[e.parameter]:s}:null}}),!l)return a;let c=se(a),h=se(i);return h!==c&&(l=e.historyMode??l,l==="push"?window.history.pushState({},"",h):window.history.replaceState({},"",h)),i});break}case"SetURLParameters":{let a=Object.entries(e.parameters??{});if(a.length===0)return;r.toddle.locationSignal.update(s=>{if(!s.route)return s;let l="replace",i={},c={},h={data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env},u=F=>s.route?.path.some(y=>y.name===F&&y.type==="param"),d=F=>Object.values(s.route?.query??{}).some(y=>y.name===F);for(let[F,y]of a){let j=S(y,h)??null;u(F)?(l="push",c[F]=j):d(F)&&(i[F]=j)}if(Object.keys(c).length===0&&Object.keys(i).length===0)return s;let m={...s,params:{...W(s.params,Object.keys(c)),...c},query:{...W(s.query,Object.keys(i)),...i}};if((0,Do.default)(m,s))return s;let A=se(s),C=se(m);return C!==A&&(l=e.historyMode??l,l==="push"?window.history.pushState({},"",C):window.history.replaceState({},"",C)),m});break}case"Fetch":{let a=r.apis[e.api];if(!a){console.error("The api ",e.api,"does not exist");return}if(ee(a)){let s=ne(e.inputs??{},i=>S(i.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})),l={onCompleted:e.onSuccess?.actions??[],onFailed:e.onError?.actions??[],onMessage:e.onMessage?.actions??[]};a.fetch({actionInputs:s,actionModels:l,componentData:t,workflowCallback:n})}else{let s=l=>{for(let i of l)x(i,{...t,...r.dataSignal.get()},r,o,n)};a.fetch().then(()=>{s(e.onSuccess.actions)},()=>{s(e.onError.actions)})}break}case"TriggerWorkflow":{let a=ne(e.parameters??{},i=>S(i.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})),s=e.callbacks;if(e.contextProvider){let i=r.providers[[r.package,e.contextProvider].filter(O).join("/")]??r.providers[e.contextProvider],c=i?.component.workflows?.[e.workflow];if(!c){i&&console.warn(`Cannot find workflow "${e.workflow}" on component "${e.contextProvider}". It has likely been removed or modified.`);return}c.actions.forEach(h=>x(h,{...t,...i.ctx.dataSignal.get(),Parameters:a},i.ctx,o,(u,d)=>{s?.[u]?.actions.forEach(A=>x(A,{...t,...r.dataSignal.get(),Parameters:a,Event:d},r,o,n))}));return}let l=r.component.workflows?.[e.workflow];if(!l){console.warn(`Workflow ${e.workflow} does not exist on component ${r.component.name}`);return}l.actions.forEach(i=>x(i,{...t,...r.dataSignal.get(),Parameters:a},r,o,(c,h)=>{s?.[c]?.actions.forEach(d=>x(d,{...t,...r.dataSignal.get(),Parameters:a,Event:h},r,o,n))}));break}default:try{let a=(l,i)=>{let c=e.events?.[l];c&&c.actions.forEach(h=>x(h,i?{...t,...r.dataSignal.get(),Event:i}:{...t,...r.dataSignal.get()},r,i??o,n))},s=e.version===2?(r.toddle.getCustomAction??r.toddle.getCustomAction)(e.name,e.package??r.package):void 0;if(s){let l=(e.arguments??[]).reduce((c,h)=>h?{...c,[h.name]:S(h.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})}:c,{}),i=s.handler?.(l,{root:r.root,triggerActionEvent:a},o);return i&&(typeof i=="function"||i instanceof Promise)&&r.dataSignal.subscribe(c=>c,{destroy:()=>{i instanceof Promise?i.then(c=>{typeof c=="function"&&c()}).catch(c=>console.error(c)):i()}}),i}else{let l=r.toddle.getAction(e.name);if(!l){console.error("Missing custom action",e.name);return}let i=e.arguments?.map(c=>S(c?.formula,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env}))??[S(e.data,{data:t,component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env})];return l(i,{...r,triggerActionEvent:a},o)}}catch(a){console.error("Error in Custom Action",a)}}}catch(a){return console.error(a),null}}function Se(e,t){let r=null;function o(u,d){let m={data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env},A=S(u.url,m)??"",C=u.path&&u.path.length>0?"/"+u.path.map(p=>S(p.formula,m)).join("/"):"",F=Object.values(u.queryParams??{}),y=F.length>0?"?"+F.map(p=>`${p.name}=${encodeURIComponent(S(p.formula,m))}`).join("&"):"",j=K(u.headers)?S(u.headers,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}):ne(u.headers??{},p=>S(p,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env})),D=String(Object.entries(j).find(([p])=>p.toLocaleLowerCase()==="content-type")?.[1]),R=u.method??"GET",$=u.body&&["POST","PUT","PATCH","DELETE"].includes(R)?a(S(u.body,{data:d,component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}),D):void 0;return{url:A+C+y,method:R,auth:u.auth,headers:j,body:$}}async function n(u){let d=await u.text();try{return re(d)}catch{return d}}function a(u,d){switch(d){case"application/x-www-form-urlencoded":return typeof u=="object"&&u!==null?Object.entries(u).map(([m,A])=>Array.isArray(A)?A.map(C=>`${encodeURIComponent(m)}=${encodeURIComponent(C)}`).join("&"):`${encodeURIComponent(m)}=${encodeURIComponent(String(A))}`).join("&"):"";case"multipart/form-data":{let m=new FormData;return typeof u=="object"&&u!==null&&Object.entries(u).forEach(([A,C])=>{m.set(A,C)}),m}case"text/plain":return String(u);default:return JSON.stringify(u)}}function s(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:u,error:null,isLoading:!1}}}),e.onCompleted?.actions?.forEach(d=>{x(d,t.dataSignal.get(),t)})}function l(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:null,isLoading:!1,error:u}}}),e.onFailed?.actions?.forEach(d=>{x(d,t.dataSignal.get(),t)})}async function i(u){t.dataSignal.set({...t.dataSignal.get(),Apis:{...t.dataSignal.get().Apis,[e.name]:{data:t.dataSignal.get().Apis?.[e.name]?.data??null,isLoading:!0,error:null}}});let d;try{e.proxy===!1?d=await fetch(u.url,{method:u.method,headers:u.headers,body:u.body}):d=await fetch(`/_query/${encodeURIComponent(t.component.name)}.${encodeURIComponent(e.name)}`,{method:"POST",body:JSON.stringify(u),signal:t.abortSignal,headers:{"Content-Type":"application/json"}});let m=await n(d);if(d.ok)s(m);else throw m}catch(m){return l(m),Promise.reject(m)}}function c(u){return typeof e.debounce=="number"?new Promise((d,m)=>{typeof r=="number"&&clearTimeout(r),r=setTimeout(()=>{i(u).then(d,m)},e.debounce)}):typeof e.throttle=="number"?typeof r=="number"?new Promise(()=>{}):(r=setTimeout(()=>{typeof r=="number"&&clearTimeout(r)},e.throttle),i(u)):i(u)}let h;if(t.dataSignal.update(u=>({...u,Apis:{...u.Apis??{},[e.name]:u.Apis?.[e.name]??{data:null,isLoading:!!(e.autoFetch&&S(e.autoFetch,{data:t.dataSignal.get(),component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env})),error:null}}})),e.autoFetch){h=t.dataSignal.map(d=>o(e,d));let u=!0;h.subscribe(d=>{if(e.autoFetch&&S(e.autoFetch,{data:t.dataSignal.get(),component:t.component,formulaCache:t.formulaCache,root:t.root,package:t.package,toddle:t.toddle,env:t.env}))if(u&&t.isRootComponent){u=!1;let m=t.toddle?.pageState?.Apis?.[e.name];m&&m.data?typeof m.data=="string"?s(re(m.data)):s(m.data):c(d)}else c(d)})}return{fetch:u=>{let d=o(e,t.dataSignal.get()),m=d.body,A=new Headers({...d.headers,...u?.headers??{}});u?.body&&(m=a(u.body,A.get("Content-Type")??void 0)),m instanceof FormData&&A.delete("Content-Type");let C={url:u?.url??d.url,method:u?.method??d.method,auth:u?.auth??d.auth,headers:z(A),body:m};return c(C)},destroy:()=>h?.destroy()}}var To=({path:e,origin:t})=>{if(typeof e!="string")return!1;try{let r=new URL(e,t),o=new URLSearchParams(r.searchParams);return o.forEach((n,a)=>{r.searchParams.delete(a,n)}),o.forEach((n,a)=>{r.searchParams.append(a,n)}),r}catch{return!1}},ko="x-nordcraft-url",$o="x-nordcraft-templates-in-body";function Ae({apiRequest:e,componentData:t,ctx:r}){let o=null,n={...e};function a(p,v){let b=window.origin;try{new URL(b)}catch{b=void 0}let g=go({api:p,formulaContext:s(p,v),baseUrl:b,defaultHeaders:void 0});return{...g,requestSettings:{...g.requestSettings,credentials:p.client?.credentials&&["include","same-origin","omit"].includes(p.client.credentials)?p.client.credentials:void 0}}}function s(p,v){let b={data:r.dataSignal.get(),component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,toddle:r.toddle,env:r.env},g=Object.entries(p.inputs).reduce((E,[T,L])=>(E[T]=S(L.formula,b),E),{}),w={...v,...b.data,ApiInputs:{...g}};return{component:r.component,formulaCache:r.formulaCache,root:r.root,package:r.package,data:w,toddle:r.toddle,env:r.env}}function l(p,v){for(let[b,g]of de(p.redirectRules??{},([w,E])=>E.index)){let w=s(p,v),E=S(g.formula,{...w,data:{...w.data,Apis:{[p.name]:r.dataSignal.get().Apis?.[p.name]}}});if(typeof E=="string"){let T=To({path:E,origin:window.location.origin});if(T){if(r.env.runtime==="preview")return window.parent?.postMessage({type:"blockedNavigation",url:T.href},"*"),{name:b,index:g.index,url:T};window.location.replace(T.href)}}}}function i({eventName:p,api:v,data:b,componentData:g,workflowCallback:w}){switch(p){case"message":{let E=me("message",b.body);v.client?.onMessage?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}case"success":{let E=me("success",b.body);v.client?.onCompleted?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}case"failed":{let E=me("failed",{error:b.body,status:b.status});v.client?.onFailed?.actions?.forEach(T=>{x(T,{...s(v,g).data,Event:E},r,E,w)});break}}}function c({api:p,componentData:v,data:b,performance:g}){let w=r.dataSignal.get().Apis?.[p.name]?.response?.performance?.requestStart;if(typeof w=="number"&&w>(g.requestStart??0))return;r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:b.body,error:null,response:{status:b.status,headers:b.headers,performance:g}}}});let E=l(p,v);E&&r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:b.body,error:null,response:{status:b.status,headers:b.headers,performance:g,...r.env.runtime==="preview"?{debug:{appliedRedirectRule:E}}:{}}}}})}function h({api:p,componentData:v,data:b,performance:g}){let w=r.dataSignal.get().Apis?.[p.name]?.response?.performance?.requestStart;if(typeof w=="number"&&w>(g.requestStart??0))return;r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:null,error:b.body,response:{status:b.status,headers:b.headers,performance:g}}}});let E=l(p,v);E&&r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!1,data:null,error:b.body,response:{status:b.status,headers:b.headers,performance:g,...r.env.runtime==="preview"?{debug:{appliedRedirectRule:E}}:{}}}}})}async function u({api:p,url:v,requestSettings:b,componentData:g,workflowCallback:w}){let E=async()=>{let T={requestStart:Date.now(),responseStart:null,responseEnd:null};r.dataSignal.set({...r.dataSignal.get(),Apis:{...r.dataSignal.get().Apis,[p.name]:{isLoading:!0,data:r.dataSignal.get().Apis?.[p.name]?.data??null,error:null}}});let L;try{if((p.server?.proxy?S(p.server.proxy.enabled.formula,s(p,g))??!1:!1)===!1)L=await fetch(v,b);else{let q=`/.toddle/omvej/components/${encodeURIComponent(r.component.name)}/apis/${encodeURIComponent(r.component.name)}:${encodeURIComponent(p.name)}`,P=new Headers(b.headers);P.set(ko,decodeURIComponent(v.href.replace(/\+/g," "))),N(S(p.server?.proxy?.useTemplatesInBody?.formula,s(p,g)))&&P.set($o,"true"),b.headers=P,L=await fetch(q,b)}T.responseStart=Date.now(),await d({api:p,componentData:g,res:L,performance:T,workflowCallback:w});return}catch(I){let q=I.cause?{message:I.message,data:I.cause}:I.message;return h({api:p,componentData:g,data:{body:q},performance:{...T,responseEnd:Date.now()}}),i({eventName:"failed",api:p,data:{body:q},componentData:g,workflowCallback:w}),Promise.reject(I)}};return p.client?.debounce?.formula?new Promise((T,L)=>{typeof o=="number"&&clearTimeout(o),o=setTimeout(()=>{E().then(T,L)},S(p.client?.debounce?.formula,s(p,g)))}):E()}function d({api:p,componentData:v,res:b,performance:g,workflowCallback:w}){let E=p.client?.parserMode??"auto";if(E==="auto"){let T=b.headers.get("content-type");fo(T)?E="event-stream":ce(T)?E="json":po(T)?E="text":mo(T)?E="json-stream":ho(T)?E="blob":E="text"}switch(E){case"text":return m({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"json":return C({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"event-stream":return y({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"json-stream":return A({api:p,componentData:v,res:b,performance:g,workflowCallback:w});case"blob":return F({api:p,componentData:v,res:b,performance:g,workflowCallback:w});default:return m({api:p,componentData:v,res:b,performance:g,workflowCallback:w})}}function m({api:p,res:v,performance:b,componentData:g,workflowCallback:w}){return j({api:p,res:v,performance:b,streamType:"text",useTextDecoder:!0,parseChunk:E=>E,parseChunksForData:E=>E.join(""),componentData:g,workflowCallback:w})}function A({api:p,res:v,performance:b,componentData:g,workflowCallback:w}){return j({api:p,res:v,performance:b,streamType:"json",useTextDecoder:!0,parseChunk:T=>{let L=T;try{L=JSON.parse(T)}catch{throw new Error("Error occurred while parsing the json chunk.",{cause:L})}return L},parseChunksForData:T=>[...T],delimiters:[`\r
|
|
274
274
|
`,`
|
|
275
275
|
`],componentData:g,workflowCallback:w})}async function C({api:p,componentData:v,res:b,performance:g,workflowCallback:w}){let T={data:await b.json(),isLoading:!1,error:null,response:{status:b.status,headers:z(b.headers)}};return D({api:p,apiStatus:T,componentData:v,performance:g,workflowCallback:w})}async function F({api:p,componentData:v,res:b,performance:g,workflowCallback:w}){let E=await b.blob(),T={isLoading:!1,data:URL.createObjectURL(E),error:null,response:{status:b.status,headers:z(b.headers)}};return D({api:p,apiStatus:T,componentData:v,performance:g,workflowCallback:w})}function y({api:p,res:v,performance:b,componentData:g,workflowCallback:w}){return j({api:p,res:v,performance:b,streamType:"event",useTextDecoder:!0,parseChunk:T=>{let L=T.match(/event: (.*)/)?.[1]??"message",I=T.match(/data: (.*)/)?.[1]??"",q=T.match(/id: (.*)/)?.[1],P=T.match(/retry: (.*)/)?.[1],Z=I;try{Z=JSON.parse(I??"")}catch{}return{event:L,data:Z,...q?{id:q}:{},...P?{retry:P}:{}}},parseChunksForData:T=>[...T],delimiters:[`
|
|
276
276
|
|