@rat.md/laika 0.1.0

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/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) RatMD <sam@rat.md> (Sam)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,128 @@
1
+ LAIKA for Vue and Vite
2
+ ======================
3
+
4
+ > [!CAUTION]
5
+ > LAIKA is currently experimental. APIs may change before a stable release.
6
+
7
+ **LAIKA** is an Inertia-inspired Vue and Vite adapter for October CMS. It lets you build an October
8
+ CMS theme with Vue while continuing to use October components, partials, content blocks, snippets,
9
+ AJAX handlers, and other CMS features.
10
+
11
+ This package provides the browser runtime, Vue components, composables, TypeScript declarations,
12
+ and Vite integration. It is designed to be used with the
13
+ [LAIKA plugin for October CMS](https://github.com/RatMD/laika-plugin).
14
+
15
+ ## Requirements
16
+
17
+ - PHP 8.4+
18
+ - October CMS 4.2+
19
+ - Vue 3
20
+ - Vite
21
+ - [LAIKA plugin](https://github.com/RatMD/laika-plugin)
22
+
23
+ ## Installation
24
+
25
+ Install the JavaScript package from npm:
26
+
27
+ ```sh
28
+ npm install @rat.md/laika
29
+ ```
30
+
31
+ Install and configure the companion October CMS plugin separately:
32
+
33
+ ```sh
34
+ php artisan plugin:install RatMD.Laika
35
+ ```
36
+
37
+ ## Vite Configuration
38
+
39
+ Add the LAIKA plugin to your Vite configuration:
40
+
41
+ ```ts
42
+ import vue from '@vitejs/plugin-vue';
43
+ import laika from '@rat.md/laika/vite';
44
+ import { defineConfig } from 'vite';
45
+
46
+ export default defineConfig({
47
+ plugins: [
48
+ laika(),
49
+ vue(),
50
+ ],
51
+ });
52
+ ```
53
+
54
+ The Vite integration extracts translation keys and removes server-side `<october>` and `<php>`
55
+ blocks from Vue components during frontend compilation.
56
+
57
+ ## Creating the Vue Application
58
+
59
+ Use `createLaikaApp` to resolve page components and mount the Vue application:
60
+
61
+ ```ts
62
+ import { createApp, h } from 'vue';
63
+ import { createLaikaApp, type ResolveResult } from '@rat.md/laika';
64
+
65
+ const pages = import.meta.glob('./pages/**/*.vue', { eager: true });
66
+
67
+ createLaikaApp({
68
+ resolve(name: string): ResolveResult {
69
+ const component = pages[`./pages/${name}.vue`];
70
+
71
+ if (!component) {
72
+ throw new Error(`Page component "${name}" was not found.`);
73
+ }
74
+
75
+ return component as ResolveResult;
76
+ },
77
+
78
+ setup({ App, root, props, plugin }) {
79
+ const app = createApp({
80
+ render: () => h(App, props),
81
+ });
82
+
83
+ app.use(plugin);
84
+ app.mount(root);
85
+
86
+ return app;
87
+ },
88
+ });
89
+ ```
90
+
91
+ By default, LAIKA mounts the application on the first element matching `.app`. A different selector
92
+ can be supplied using the `rootId` option.
93
+
94
+ ## Public API
95
+
96
+ The main `@rat.md/laika` entry point exports:
97
+
98
+ - `createLaikaApp` for application bootstrapping
99
+ - `useLaika`, `usePayload`, `useSite`, `usePage`, `useShared`, and `useTheme`
100
+ - `useRouter`, `useOctober`, `useComponent`, and `useOctoberFilter`
101
+ - `Head`, `Link`, `Flash`, `ProgressBar`, and other LAIKA Vue components
102
+ - TypeScript declarations for payloads, routing, October components, and application configuration
103
+
104
+ The `@rat.md/laika/vite` entry point exports the LAIKA Vite plugin.
105
+
106
+ ## Demo
107
+
108
+ See the [LAIKA demo theme](https://github.com/RatMD/laika-demo-theme) for a complete October CMS
109
+ theme built with Vue and Vite.
110
+
111
+ ## Development
112
+
113
+ ```sh
114
+ npm install
115
+ npm run type-check
116
+ npm run build
117
+ ```
118
+
119
+ Use `npm run watch` to rebuild the package while developing.
120
+
121
+ ## Documentation
122
+
123
+ The documentation can be found on [docs.laika.works](https://docs.laika.works).
124
+
125
+ ## License
126
+
127
+ Copyright © 2025–2026 [rat.md](https://rat.md).
128
+ Published under the MIT License.
package/dist/laika.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("vue");const t=e.reactive({color:"#DE3163",active:!1,percent:0,timestamp:0});let n=null;function r(){function e(e=!1){n&&(window.clearInterval(n),n=null),(t.active||e)&&(t.percent=100,window.setTimeout(()=>{t.active=!1,t.percent=0},150))}return{state:t,start:function(){t.active=!0,t.percent=10,t.timestamp=Date.now(),n&&window.clearInterval(n),n=window.setInterval(()=>{t.active&&t.percent<90&&(t.percent+=Math.max(1,Math.round(.08*(90-t.percent))))},200)},done:e,fail:function(){e(!0)}}}const a=e.defineComponent({name:"LaikaProgressBar",setup(t){const n=r();return()=>n.state.active?e.h("div",{class:"laika-progress-bar",style:{top:0,left:0,width:`${n.state.percent}%`,height:"0.2rem",position:"fixed",backgroundColor:`var(--laika-progress-bar, ${n.state.color})`,transition:"width 120ms linear",zIndex:99999}}):void 0}}),o=Symbol("laika:october"),i=Symbol("laika:router");let s=null,l=!1;function u(e,t,n){return e.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n}))}function c(e){const t={};return new FormData(e).forEach((e,n)=>{const r=n.endsWith("[]"),a=r?n.slice(0,-2):n;t[a]=a in t?Array.isArray(t[a])?[...t[a],e]:[t[a],e]:r?[e]:e}),t}function d(e){if(!e?.trim())return{};try{return JSON.parse(e)}catch{const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_.-]+))\s*:\s*(?:['"]([^'"]*)['"]|([^,}\s]+))/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3]??r[4]??"";e&&(t[e]="true"===n||"false"!==n&&n)}return t}}function p(e,t){e.toggleAttribute("data-request-loading",t),e.setAttribute("aria-busy",t?"true":"false"),(e instanceof HTMLButtonElement||e instanceof HTMLInputElement)&&(e.disabled=t)}async function f(e,t){const n=e.getAttribute("data-request")??t?.getAttribute("data-request");if(!n||!s||e.hasAttribute("data-request-loading"))return;const r=function(e){if(!e?.trim())return{};const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_./:-]+))\s*:\s*['"]([^'"]+)['"]/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3];e&&n&&(t[e]=n)}return t}(e.getAttribute("data-request-update")??t?.getAttribute("data-request-update")??null),a={...t?c(t):{},...d(t?.getAttribute("data-request-data")??null),...d(e.getAttribute("data-request-data"))};if(u(e,"ajax:before",{handler:n,data:a})){p(e,!0);try{const o=await s(n,{data:a,flash:e.hasAttribute("data-request-flash")||Boolean(t?.hasAttribute("data-request-flash")),partials:Object.keys(r),preserveState:!0});!function(e,t){for(const[n,r]of Object.entries(t)){const t=e.partials[n];if(void 0!==t)for(const e of Array.from(document.querySelectorAll(r)))e.innerHTML=t}}(o,r),u(e,o.ok?"ajax:success":"ajax:error",o)}catch(t){u(e,"ajax:error",{handler:n,error:t})}finally{p(e,!1),u(e,"ajax:complete",{handler:n})}}}function m(e){const t=e.target instanceof HTMLFormElement?e.target:null;if(!t?.matches("[data-request]"))return;e.preventDefault();f(e.submitter instanceof HTMLElement?e.submitter:t,t)}function h(e){const t=e.target instanceof Element?e.target:null,n=t?.closest("[data-request]");!n||n instanceof HTMLFormElement||(n instanceof HTMLButtonElement||n instanceof HTMLInputElement)&&n.form?.matches("[data-request]")||(e.preventDefault(),f(n,n.closest("form")??void 0))}const g=new Set(["info","error","success","warning"]);function y(e){return"string"==typeof e&&g.has(e)?e:"info"}function v(e,t,n){if("string"!=typeof n||!n.trim())return;const r=e[t],a=Array.isArray(r)?r:r?[r]:[],o=n.trim();a.includes(o)||(e[t]=[...a,o])}function w(e,t){return t?/^(https?:)?\/\//.test(t)||t.startsWith("#")||t.startsWith("mailto:")||t.startsWith("tel:")||t.startsWith("sms:")?t:`${e.replace(/\/+$/,"")}/${t.replace(/^\/+/,"")}`:e}function b(e){const t=new URLSearchParams;for(const[n,r]of Object.entries(e))null!=r&&t.set(n,String(r));const n=t.toString();return n?`?${n}`:""}function k(e,t){return e.replace(/:([A-Za-z0-9_]+\*?)/g,(e,n)=>{const r=n.endsWith("*");n=n.endsWith("*")?n.slice(0,-1):n;const a=t[n];if(delete t[n],null==a)return"";const o=encodeURIComponent(String(a));return r?o.replace(/%2F/g,"/"):o})}function A(t,n,r){const a=e.reactive({});function o(){const e=t();if(!e)throw new Error("October Functions: runtime not ready");return e}function i(){const e=o(),t=e.payload?.october;if(!t)throw new Error("October Functions: missing october payload.");return t}function u(e){return w(i().baseUrl,e)}function c(e){const t=o(),n=t.payload?.site?.locale||"",r=t.payload?.october?.fallbackLocale||"",a=t.payload?.october?.strings?.[n]||{},i=t.payload?.october?.strings?.[r]||{};return e in a?a[e]:e in i?i[e]:null}function d(e,t){if(!t)return e;for(const[n,r]of Object.entries(t)){if(null==r)continue;const t=String(n),a=String(r);e=e.replaceAll(`:${t}`,a);const o=t.charAt(0).toUpperCase()+t.slice(1);e=(e=e.replaceAll(`:${o}`,a.charAt(0).toUpperCase()+a.slice(1))).replaceAll(`:${t.toUpperCase()}`,a.toUpperCase())}return e}function p(e,t,n){let r=c(e);if(null===r)return e;return d(function(e,t){const n=e.split("|").map(e=>e.trim()).filter(Boolean);for(const e of n){const n=e.match(/^\{(\d+)\}\s*(.*)$/);if(n){if(t===Number(n[1]))return n[2];continue}const r=e.match(/^\[(\d+|\-?\*),(\d+|\-?\*)\]\s*(.*)$/);if(r){const e=r[1],n=r[2],a=r[3],o="*"===e?-1/0:Number(e),i="*"===n?1/0:Number(n);if(t>=o&&t<=i)return a;continue}}return 1===n.length?n[0]:2===n.length?1===t?n[0]:n[1]:n[n.length-1]}(r,t),{count:t,...n})}async function f(e,t={}){if(!/^(?:\w+::)?on[A-Z][\w+]*$/.test(e))throw new Error(`October AJAX handler name is invalid: ${e}`);const a=t.only??["token","page.props","page.flash","components","shared"],o={"X-AJAX-HANDLER":e,"X-AJAX-FLASH":!1===t.flash?"0":"1"};t.partials?.length&&(o["X-AJAX-PARTIALS"]=t.partials.join("&"));const i=await n.raw(window.location.pathname+window.location.search,{method:"post",data:t.data??{},headers:o,only:a,preserveState:t.preserveState??!0}),s=await i.json(),l=s.__ajax??{},u=s.__laika;if(delete s.__ajax,delete s.__laika,u&&!1!==t.flash){const e=function(e){const t={};for(const n of e.ops??[])"flash"===n.op&&v(t,y(n.level??n.severity),n.text??n.message);const n=Object.values(e.invalid??{}).flatMap(e=>Array.isArray(e)?e:[e]);for(const e of n)v(t,"error",e);return 0===Object.keys(t).length&&"string"==typeof e.message&&v(t,y(e.severity),e.message),t}(l);Object.keys(e).length>0&&u.page&&(u.page.flash={...u.page.flash??{},...e})}u&&await r(u,a);const c={};for(const e of l.ops??[])"partial"===e.op&&"string"==typeof e.name?c[e.name]=String(e.html??""):"dispatch"===e.op&&"string"==typeof e.event?window.dispatchEvent(new CustomEvent(e.event,{detail:e.detail})):"redirect"===e.op&&e.url?window.location.assign(String(e.url)):"reload"===e.op&&window.location.reload();if(!i.ok&&!("ok"in l))throw new Error(`October AJAX request failed (${i.status}).`);return{ok:l.ok??i.ok,status:i.status,data:s,invalid:l.invalid??{},message:l.message??null,severity:l.severity??"info",partials:c}}async function g(e,t){const r=await n.raw(u("/x-laika/filter"),{method:"post",data:{filter:e,payload:t}});if(!r.ok)throw new Error(`October filter failed: ${e}. (${r.status})`);const a=await r.json();if("success"!==a.status)throw new Error(`October filter failed: ${e}. (${r.status}) - (${a.message||"An unknown error occurred."})`);return a.result.content}const A={app:u,theme:function(e){return Array.isArray(e)?e.map(e=>w(i().themeBaseUrl,e??"")):w(i().themeBaseUrl,e)},page:function(e=null,t={},n=!0){const r=i(),a=r.pages??{},s={...r.currentParams??{}};if("boolean"==typeof t&&(n=t,t={}),t&&"object"==typeof t&&!Array.isArray(t)||(t={}),!e){const e=o().payload?.page?.url??"/",n=b(t);return n?e+(e.includes("?")?`&${n.slice(1)}`:n):e}if("string"!=typeof e)return;const l=a[e=e.toLowerCase()];if(!l?.pattern)return;const c=n?{...s,...t}:{...t},d={...t},p=k(l.pattern,c);return k(l.pattern,d),u(p)+b(d)},link:function(e){if(e.startsWith("http"))return e;{const t=o();return u(`/x-laika/resolve?path=${btoa(e)}&theme=${t.payload?.page?.theme||"0"}`)}},media:function(e){const t=i(),n=("/"+String(e??"").replace(/\\/g,"/").replace(/^\/+/,"")).split("/").map(e=>encodeURIComponent(e)).join("/").replace(/%2F/g,"/");return w(t.mediaBaseUrl,n)},resize:function(e,t=null,n=null,r={}){const a=i(),o=a.resizer?.basePath??"/resize",s={src:e};null!=t&&(s.w=t),null!=n&&(s.h=n);for(const[e,t]of Object.entries(r??{}))s[`o_${e}`]=t;return u(o+b(s))},currency:function(e,t={}){const n="number"==typeof e?e:Number(String(e).replace(",","."));if(!Number.isFinite(n))return String(e);const{locale:r="de-AT",currency:a="EUR",style:o="currency",minimumFractionDigits:i,maximumFractionDigits:s}=t;return new Intl.NumberFormat(r,{style:o,currency:a,minimumFractionDigits:i,maximumFractionDigits:s}).format(n)},trans:function(e,t){let n=c(e);return null===n?e:d(n,t)},transChoice:p,placeholder:function(e,t=null){const n=o();return e in(n.payload?.page?.placeholders||{})?(n.payload?.page?.placeholders||{})[e]:e in a?a[e]:t},hasPlaceholder:function(e){const t=o();return e in(t.payload?.page?.placeholders||{})||e in a},setPlaceholder:function(e,t){a[e]=t},request:f,renderPartial:async function(e,t={}){const n=await f("onLaikaRenderPartial",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render partial: ${e}`);return n.data.html??""},content:async function(e,t={}){const n=await f("onLaikaRenderContent",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render content: ${e}`);return n.data.html??""},filter:function(e,t){return g(e,{content:t})},htmlLimit:function(e,t=100,n="..."){if(t<=0)return n;const r=document.createElement("template");r.innerHTML=e;const a=document.createElement("div");let o=t,i=!1;const s=e=>{if(i)return null;if(e.nodeType===Node.TEXT_NODE){const t=Array.from(e.textContent??"");return t.length<=o?(o-=t.length,document.createTextNode(t.join(""))):(i=!0,document.createTextNode(t.slice(0,o).join("")+n))}if(e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!1);const t=e.cloneNode(!1);for(const n of Array.from(e.childNodes)){const e=s(n);if(e&&t.appendChild(e),i)break}return t};for(const e of Array.from(r.content.childNodes)){const t=s(e);if(t&&a.appendChild(t),i)break}return a.innerHTML},md:e=>g("md",{content:e}),mdSafe:e=>g("md_safe",{content:e}),mdClean:e=>g("md_clean",{content:e}),mdIndent:e=>g("md_indent",{content:e}),trans_choice:p,md_safe:e=>g("md_safe",{content:e}),md_clean:e=>g("md_clean",{content:e}),md_indent:e=>g("md_indent",{content:e})};return s=A.request,l||"undefined"==typeof document||(l=!0,document.addEventListener("submit",m),document.addEventListener("click",h)),A}function L(){const t=e.inject(o,null);if(!t)throw new Error("useOctober(): OctoberAPI not provided");return t}function S(e){return e?.default??e}function E(e,t){return t.split(".").reduce((e,t)=>null==e?void 0:e[t],e)}function P(e,t,n){const r=t.split(".");if(!r.length)return e;const a=Array.isArray(e)?e.slice():{...e??{}},o=r[r.length-1];let i=a,s=e??{};for(let e=0;e<r.length-1;e++){const t=r[e],n=s?.[t];let a;a=Array.isArray(n)?n.slice():n&&"object"==typeof n?{...n}:{},i[t]=a,i=a,s=n}return i[o]=n,a}function O(e,t){function n(t,n={}){const r=function(){const t=e();if(!t)throw new Error("Laika Router: runtime not ready");return t}(),a=(n.method??"GET").toUpperCase(),o=n.data??void 0,i=new Headers({Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-Laika":"1",...n.headers??{}}),s=r.payload?.token;if(s){const[e,t]=s.split("|");i.set("X-CSRF-TOKEN",e),i.set("X-Laika-Token",t)}return n.force&&i.set("X-Laika-Force","1"),n.require?.length&&i.set("X-Laika-Require",n.require.join(",")),n.only?.length&&i.set("X-Laika-Only",n.only.join(",")),n.preserveState&&i.set("X-Laika-Preserve-State","1"),"GET"!==a&&i.set("Content-Type","application/json"),new Request(t,{method:a.toUpperCase(),headers:i,body:"GET"!==a?JSON.stringify(o??{}):null,credentials:"same-origin"})}async function r(e,r={}){const a=n(e,r);let o;try{await t.onBefore(a),o=await fetch(a),"GET"===a.method&&(r.replace?history.replaceState({},"",e):history.pushState({},"",e)),await t.onSuccess(a,o)}catch(e){throw await t.onFailure(e,a,o),e}}return{raw:async function(e,t={}){const r=n(e,t);try{return await fetch(r)}catch(e){throw e}},visit:r,get:(e,t)=>r(e,{...t??{},method:"GET"}),post:(e,t,n)=>r(e,{...n??{},method:"POST",data:t}),put:(e,t,n)=>r(e,{...n??{},method:"PUT",data:t}),patch:(e,t,n)=>r(e,{...n??{},method:"PATCH",data:t}),delete:(e,t,n)=>r(e,{...n??{},method:"DELETE",data:t})}}function x(){const t=e.inject(i,null);if(!t)throw new Error("useRouter(): Laika router not provided");return t}const C=e.shallowRef(),$=new Map;function j(t){const n=$.get(t);if(n)return n;const r=x(),a=L(),o=e.computed(()=>C.value?.components?.[t]??null);function i(e){const t=o.value;return!!t?.props&&Object.prototype.hasOwnProperty.call(t.props,e)}function s(e){const t=o.value;return!!t&&(!(!t.props||!(e in t.props))||(!(!Array.isArray(t.methods)||!t.methods.includes(e))||!(!Array.isArray(t.vars)||!t.vars.includes(e))))}function l(e,t){const n=o.value;return n?.props&&e in n.props?n.props[e]:t}async function u(n){const a=(Array.isArray(n)?n:[n]).filter(e=>!i(e));if(!a.length)return;const s=a.map(e=>`components.${t}.props.${e}`);return await r.get(window.location.pathname+window.location.search,{only:s,preserveState:!0,replace:!0}),await e.nextTick(),Array.isArray(n)?o.value?.props:o.value?.props[n]}async function c(){return void 0!==o.value?.html?o.value.html:(await r.get(window.location.pathname+window.location.search,{only:[`components.${t}.html`],preserveState:!0,replace:!0}),await e.nextTick(),o.value?.html??"")}const d=new Proxy({},{get(e,n){if("get"===n)return l;if("load"===n)return u;if("loadHtml"===n)return c;if("loaded"===n)return i;if("exists"===n)return s;if("request"===n)return(e,n)=>a.request(`${t}::${e}`,n);const r=o.value;return r?r[n]:void 0},has(e,t){if("get"===t||"load"===t||"loadHtml"===t||"loaded"===t||"exists"===t||"request"===t)return!0;{const e=o.value;return!!e&&t in e}}});return $.set(t,d),d}const q=e.shallowRef(),T=e.shallowRef(null),F=e.ref(void 0),R={get component(){return q.value},get payload(){return C.value},get layout(){return T.value},get key(){return F.value},title:e=>e,resolver:()=>{throw new Error("not implemented")},getLayout:()=>T.value,setLayout:e=>{T.value=e}};let H,M;const _=e.defineComponent({name:"Laika",props:{initialPayload:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!0},title:{type:Function,required:!1,default:e=>e}},setup:({initialPayload:t,initialComponent:n,resolveComponent:r,title:o})=>(C.value=t,F.value=void 0,q.value=n?e.markRaw(S(n)):void 0,q.value||Promise.resolve(r(t.page.component)).then(t=>{q.value=e.markRaw(S(t))}).catch(console.error),R.title=o??R.title,R.resolver=r,"page"in t&&"title"in t.page&&(document.title=(R.title??(e=>e))(t.page.title)||""),window.addEventListener("popstate",()=>window.location.reload()),()=>{if(!q.value||!C.value)return null;const t=C.value.page.props??{},n=e.h(q.value,{...t,key:F.value});let r;T.value&&(q.value.layout=T.value,T.value=null);const o=q.value.layout;if(o)if("function"==typeof o)r=o(e.h,n);else{r=(Array.isArray(o)?o:[o]).slice().reverse().reduce((n,r)=>e.h(r,{...t},()=>n),n)}else r=n;return e.h(e.Fragment,null,[e.h(a),r])})});const N={install(e){const t=this,n=()=>R,a=function(){const{components:e}=X();return new Proxy({},{get:(t,n)=>"has"===n?t=>!!e.value&&t in e.value:"get"===n?t=>e.value&&t in e.value?j(t):null:"string"==typeof n?e.value&&n in e.value?j(n):null:void 0})}(),s=r();H=O(n,{onBefore:async e=>{s.start(),await t.onRouterBefore(e)},onSuccess:async(e,n)=>{s.done(),await t.onRouterSuccess(e,n)},onFailure:async(e,n)=>{s.fail(),await t.onRouterFailure(e,n)}}),function(e,t){t.provide(i,e)}(H,e),M=A(n,H,async(e,t)=>this.swap(e,!0,t)),function(e,t){t.provide(o,e)}(M,e),Object.defineProperty(e.config.globalProperties,"$laika",{get:()=>R}),Object.defineProperty(e.config.globalProperties,"$router",{get:()=>H}),Object.defineProperty(e.config.globalProperties,"$payload",{get:()=>R.payload}),Object.defineProperty(e.config.globalProperties,"$site",{get:()=>R.payload?.site||{}}),Object.defineProperty(e.config.globalProperties,"$theme",{get:()=>R.payload?.theme||{}}),Object.defineProperty(e.config.globalProperties,"$page",{get:()=>R.payload?.page||{}}),Object.defineProperty(e.config.globalProperties,"$components",{get:()=>a}),Object.defineProperty(e.config.globalProperties,"$october",{get:()=>M}),Object.defineProperty(e.config.globalProperties,"$shared",{get:()=>R.payload?.shared||{}})},async onRouterBefore(e){},async onRouterSuccess(e,t){if(409===t.status){const e=t.headers.get("X-Laika-Location");throw e&&window.location.assign(e),new Error("Laika redirect")}if(!t.ok)throw window.location.assign(e.url),new Error("Navigation fallback");const n=(r=e.headers.get("X-Laika-Only")??t.headers.get("X-Laika-Only"))?r.split(",").map(e=>e.trim()).filter(Boolean):[];var r;const a=await t.json(),o="1"===e.headers.get("X-Laika-Preserve-State");await this.swap(a,o,n)},async onRouterFailure(e,t){},async swap(t,n,r){if("page"in t&&t.page?.component){const n=await R.resolver(t.page.component);q.value=e.markRaw(S(n))}if(r&&r.length&&C.value?C.value=this.patch(C.value,t,r):C.value=t,"page"in t&&t.page){const e=document.body.dataset.theme,n=(t.page.theme||"").trim().toLowerCase();e!==n&&""!==n&&(document.body.classList.remove(`theme-${e}`),document.body.classList.add(`theme-${n}`),document.body.dataset.theme=n);const r=document.body.dataset.layout,a=(t.page.layout||"").trim().toLowerCase();r!==a&&""!==a&&(document.body.classList.remove(`layout-${r}`),document.body.classList.add(`layout-${a}`),document.body.dataset.layout=a);const o=document.body.dataset.page,i=(t.page.id||"").trim().toLowerCase();o!==i&&""!==i&&(document.body.classList.remove(`page-${o}`),document.body.classList.add(`page-${i}`),document.body.dataset.page=i);const s={...t.page.head??{}},l=new Map,u=document.createElement("head");for(const[e,t]of Object.entries(s)){u.innerHTML=t.trim();const n=u.firstElementChild;n&&(n.setAttribute("data-laika-id",e),u.removeChild(n),l.set(e,n))}const c=new Set,d=document.head.querySelectorAll("[data-laika-id]");for(const e of t.page.head?Array.from(d):[]){const t=e.getAttribute("data-laika-id");if(!t)continue;const n=l.get(t);n?(c.add(t),e.outerHTML!==n.outerHTML&&document.head.replaceChild(n,e)):e.remove()}const p=document.head.querySelectorAll("[data-laika-id]"),f=p.length>0?p[p.length-1]?.nextElementSibling:null;for(const[e,n]of t.page.head?l:[])c.has(e)||(f?document.head.insertBefore(n,f):document.head.appendChild(n))}if("page"in t&&"title"in t.page){const e=C.value?.page?.title;e&&(document.title=(R.title??(e=>e))(e)||"Laika Unknown Title")}F.value=n?F.value:Date.now()},patch(e,t,n){let r={...e};for(const e of n){if(!e)continue;if(!e.includes(".")){e in t&&(r[e]=t[e]);continue}const n=E(t,e);void 0!==n&&(r=P(r,e,n))}return r}};function X(){return{version:e.computed(()=>C.value?.version),token:e.computed(()=>C.value?.token),site:e.computed(()=>C.value?.site),theme:e.computed(()=>C.value?.theme),page:e.computed(()=>C.value?.page),components:e.computed(()=>C.value?.components),october:e.computed(()=>C.value?.october),shared:e.computed(()=>C.value?.shared)}}const U=e.defineComponent({name:"LaikaFlash",props:{type:{type:String,required:!1}},slots:Object,setup(t,{slots:n}){const r=X();return()=>{const a=r.page.value.flash;if(null!=t.type&&!(t.type in a))return null;if(!n.default)return null;const o=[];for(const[e,r]of Object.entries(a)){if(null!=t.type&&t.type!==e)continue;const a=Array.isArray(r)?r:[r];for(const t of a)o.push(n.default({type:e,message:t}))}return o.length>0?e.h("div",{},o):null}}}),B=e.defineComponent({name:"LaikaHead",props:{watchKey:{type:[String,Number],required:!1}},slots:Object,setup(t,{slots:n}){const r=X(),a=e.ref(0),o=()=>t.watchKey??r.page.value.id??r.page.value.url??null;return e.watch(()=>o(),()=>{a.value++}),()=>{const t=n.default?.();return t?e.h(e.Teleport,{to:"head",key:`${String(o())}:${a.value}`},t):null}}});const D=e.defineComponent({name:"LaikaLink",inheritAttrs:!1,props:{page:{type:String,required:!1},params:{type:Object,default:{},required:!1},persistence:{type:Boolean,default:!0,required:!1},link:{type:String,required:!1},target:{type:String,required:!1}},slots:Object,setup(t,{slots:n,attrs:r}){const a=L(),o=x(),i=e.computed(()=>{if(t.page&&t.page.trim().length)return a.page(t.page.trim(),t.params,t.persistence);const e=(t.link??"").trim();return e?e.startsWith("http")?e:a.app(e.replace(/^\/+/,"")):"#"}),s=e.computed(()=>"_blank"===t.target||i.value.indexOf(`//${window.location.hostname}/`)<0);return()=>{const a={...r,href:i.value,target:t.target};s.value||(a.onClick=e=>{var t;e.preventDefault(),t=e,s.value||0===t.button&&(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||o.visit(i.value))});const l=n.default?n.default(a,r):void 0;return e.h("a",a,l||void 0)}}}),I=e.defineComponent({name:"LaikaPageComponent",props:{name:{type:String,required:!0}},slots:Object,setup(t,{slots:n}){const r=X(),a=j(t.name),o=e.ref(!1);return e.watch(()=>r.components.value?.[t.name],async e=>{if(e&&void 0===e.html&&!o.value){o.value=!0;try{await a.loadHtml()}finally{o.value=!1}}},{immediate:!0}),()=>{if(!r.components.value||!(t.name in r.components.value))return null;const o=r.components.value[t.name]||void 0;if(!o)return null;const i=n.default?.(a);return i?e.h("div",{},i):o.html?e.h("div",{innerHTML:o.html}):null}}}),W=e.defineComponent({name:"LaikaPageContent",setup(t){const n=X();return()=>{const t=n.page.value.content??"";return e.h("div",{innerHTML:t})}}}),J=e.defineComponent({name:"LaikaServerPartial",props:{name:{type:String,required:!0},parameters:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},setup(t){const n=L(),r=e.ref(""),a=e.ref(!1),o=e.ref(null);let i=0;return e.watch(()=>[t.name,t.parameters],async()=>{const e=++i;a.value=!0,o.value=null;try{const a=await n.renderPartial(t.name,t.parameters);e===i&&(r.value=a)}catch(t){e===i&&(o.value=t instanceof Error?t:new Error(String(t)))}finally{e===i&&(a.value=!1)}},{immediate:!0,deep:!0}),()=>e.h(t.tag,{innerHTML:r.value,"data-laika-partial":t.name,"data-loading":a.value?"true":void 0,"data-error":o.value?.message})}}),z=new Map,K=new Map;function G(t,n){const r=L(),a=e.ref(""),o=e.ref(!1),i=e.ref(null);let s=0;async function l(){const l=++s,u=e.toValue(t),c=e.toValue(n)??"",d=`${u}\0${c}`;o.value=!0,i.value=null;try{const e=z.get(d);let t;if(void 0!==e)t=e;else{const e=K.get(d),n=e??r.filter(u,c);void 0===e&&K.set(d,n),t=await n,K.delete(d),z.set(d,t)}l===s&&(a.value=t)}catch(e){K.delete(d),l===s&&(i.value=e instanceof Error?e:new Error(String(e)))}finally{l===s&&(o.value=!1)}}return e.watch(()=>[e.toValue(t),e.toValue(n)],l,{immediate:!0}),{value:e.readonly(a),pending:e.readonly(o),error:e.readonly(i),refresh:l}}const V=e.defineComponent({name:"LaikaOctoberFilter",props:{name:{type:String,required:!0},value:{type:String,default:""},tag:{type:String,default:"div"}},setup(t,{slots:n}){const r=G(()=>t.name,()=>t.value);return()=>n.default?n.default({value:r.value.value,pending:r.pending.value,error:r.error.value,refresh:r.refresh}):e.h(t.tag,{innerHTML:r.value.value,"data-loading":r.pending.value?"true":void 0,"data-error":r.error.value?.message})}});exports.Flash=U,exports.Head=B,exports.Link=D,exports.OctoberFilter=V,exports.PageComponent=I,exports.PageContent=W,exports.ProgressBar=a,exports.ServerPartial=J,exports.createLaikaApp=async function(e){const t=e.rootId?document.querySelector(e.rootId):document.querySelector(".app");if(!t)throw new Error(`Laika: root element not found (${e.rootId??".app"})`);const n=function(e='[data-laika="payload"]'){const t=document.head.querySelector(e);if(!t?.textContent?.trim())throw new Error("Laika: payload missing/empty");return JSON.parse(t.textContent)}(),r={initialPayload:n,initialComponent:S(await Promise.resolve(e.resolve(n.page.component))),resolveComponent:e.resolve,...e.title?{title:e.title}:{}};return e.setup({root:t,App:_,props:r,plugin:N,payload:n})},exports.getProgressBar=r,exports.laikaPlugin=N,exports.useComponent=j,exports.useLaika=function(){return R},exports.useOctober=L,exports.useOctoberFilter=G,exports.usePage=function(){return e.computed(()=>C.value?.page)},exports.usePayload=X,exports.useRouter=x,exports.useShared=function(){return e.computed(()=>C.value?.shared)},exports.useSite=function(){return e.computed(()=>C.value?.site)},exports.useTheme=function(){return e.computed(()=>C.value?.theme)};
2
+ //# sourceMappingURL=laika.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laika.cjs","sources":["../src/plugins/get-progress-bar.ts","../src/components/progress-bar.ts","../src/symbols.ts","../src/larajax.ts","../src/plugins/use-october.ts","../src/utils.ts","../src/plugins/use-router.ts","../src/state.ts","../src/plugins/use-component.ts","../src/app.ts","../src/components/flash.ts","../src/components/head.ts","../src/components/link.ts","../src/components/page-component.ts","../src/components/page-content.ts","../src/components/server-partial.ts","../src/plugins/use-october-filter.ts","../src/components/october-filter.ts","../src/laika.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["progress","reactive","color","active","percent","timestamp","progressTimer","getProgressBar","done","force","window","clearInterval","setTimeout","state","start","Date","now","setInterval","Math","max","round","fail","ProgressBar","defineComponent","name","setup","props","h","class","style","top","left","width","height","position","backgroundColor","transition","zIndex","LAIKA_OCTOBER_KEY","Symbol","LAIKA_ROUTER_KEY","requester","listenersInstalled","dispatch","element","detail","dispatchEvent","CustomEvent","bubbles","cancelable","collectFormData","form","data","FormData","forEach","value","rawName","isArray","endsWith","slice","Array","parseRequestData","trim","JSON","parse","result","expression","match","exec","key","raw","setLoading","loading","toggleAttribute","setAttribute","HTMLButtonElement","HTMLInputElement","disabled","async","runRequest","handler","getAttribute","hasAttribute","targets","partial","selector","parsePartialTargets","flash","Boolean","partials","Object","keys","preserveState","entries","html","undefined","target","from","document","querySelectorAll","innerHTML","updatePartialTargets","ok","error","handleSubmit","event","HTMLFormElement","matches","preventDefault","submitter","HTMLElement","handleClick","origin","Element","closest","FLASH_TYPES","Set","normalizeFlashType","severity","has","appendFlashMessage","type","message","current","messages","nextMessage","includes","joinUrl","base","path","test","startsWith","replace","encodeQuery","params","qs","URLSearchParams","k","v","set","String","str","toString","fillPattern","pattern","_","escapeSlash","val","encodedVal","encodeURIComponent","createOctober","getRuntime","router","applyPayload","placeholders","requireRuntime","runtime","Error","boot","october","payload","app","baseUrl","getLocalizationString","locale","site","fallbackLocale","localeStrings","strings","fallbackStrings","transformLocalizationString","string","replacements","rawKey","rawVal","replaceAll","uc","charAt","toUpperCase","transChoice","number","localeString","n","parts","split","map","s","filter","part","exact","Number","range","minRaw","maxRaw","text","min","Infinity","length","choosePluralForm","count","request","options","only","headers","join","response","location","pathname","search","method","json","ajax","__ajax","nextPayload","__laika","ajaxFlash","operation","ops","op","level","invalidMessages","values","invalid","flatMap","collectAjaxFlash","page","url","assign","reload","status","callFilter","content","api","theme","p","themeBaseUrl","persistence","oc","pages","currentParams","query","pageInfo","toLowerCase","routeParams","queryParams","link","btoa","media","file","encoded","mediaBaseUrl","resize","input","basePath","resizer","src","w","currency","num","isFinite","minimumFractionDigits","maximumFractionDigits","Intl","NumberFormat","format","trans","placeholder","defaultValue","hasPlaceholder","setPlaceholder","renderPartial","parameters","htmlLimit","maxLength","end","source","createElement","output","remaining","truncated","cloneNode","node","nodeType","Node","TEXT_NODE","characters","textContent","createTextNode","ELEMENT_NODE","clone","child","childNodes","childClone","appendChild","md","mdSafe","mdClean","mdIndent","trans_choice","md_safe","md_clean","md_indent","addEventListener","useOctober","inject","unwrapModule","mod","default","getByPath","obj","reduce","acc","setByPath","root","out","last","curOut","curIn","i","nextIn","nextOut","createRouter","hooks","prepare","Headers","Accept","token","csrfToken","laikaToken","require","Request","body","stringify","credentials","visit","onBefore","fetch","history","replaceState","pushState","onSuccess","err","onFailure","get","post","put","patch","delete","useRouter","shallowRef","cache","Map","useComponent","alias","existing","computed","components","loaded","cur","prototype","hasOwnProperty","call","exists","methods","vars","fallback","load","missing","nextTick","loadHtml","handle","Proxy","_t","prop","component","layout","ref","title","resolver","getLayout","setLayout","next","App","initialPayload","required","initialComponent","resolveComponent","Function","t","titleCallback","markRaw","Promise","resolve","then","catch","console","x","userComponent","childLayout","reverse","L","Fragment","plugin","install","self","this","componentsFacade","usePayload","createComponentsFacade","onRouterBefore","onRouterSuccess","onRouterFailure","provide","provideRouter","swap","provideOctober","defineProperty","config","globalProperties","shared","loc","header","currTheme","dataset","nextTheme","classList","remove","add","currLayout","nextLayout","currPage","nextPage","id","newTags","head","newNodes","temp","el","firstElementChild","removeChild","usedIds","oldTags","newEl","outerHTML","replaceChild","childs","nextElementSibling","insertBefore","version","Flash","slots","children","push","Head","watchKey","revision","getUniqueKey","watch","Teleport","to","Link","inheritAttrs","attrs","resolvedUrl","isExternal","indexOf","hostname","customProps","href","onClick","ev","button","metaKey","ctrlKey","shiftKey","altKey","PageComponent","loadingHtml","componentData","immediate","PageContent","ServerPartial","tag","pending","currentRevision","reason","deep","valueCache","requestCache","useOctoberFilter","refresh","filterName","toValue","cacheKey","cachedValue","cachedRequest","activeRequest","readonly","OctoberFilter","rootId","querySelector","readInitialPayload"],"mappings":"kCAEA,MAAMA,EAAWC,EAAAA,SAAS,CACtBC,MAAO,UACPC,QAAQ,EACRC,QAAS,EACTC,UAAW,IAEf,IAAIC,EAA+B,cAMnBC,IA0BZ,SAASC,EAAKC,GAAiB,GACvBH,IACAI,OAAOC,cAAcL,GACrBA,EAAgB,OAGfN,EAASG,QAAWM,KAIzBT,EAASI,QAAU,IAGnBM,OAAOE,WAAW,KACdZ,EAASG,QAAS,EAClBH,EAASI,QAAU,GACpB,KACP,CAWA,MAAO,CACHS,MAAOb,EACPc,MApDJ,WACId,EAASG,QAAS,EAClBH,EAASI,QAAU,GACnBJ,EAASK,UAAYU,KAAKC,MAEtBV,GACAI,OAAOC,cAAcL,GAIzBA,EAAgBI,OAAOO,YAAY,KAC1BjB,EAASG,QACVH,EAASI,QAAU,KACnBJ,EAASI,SAAWc,KAAKC,IAAI,EAAGD,KAAKE,MAAgC,KAAzB,GAAKpB,EAASI,aAE/D,IACP,EAqCII,OACAa,KATJ,WACIb,GAAK,EACT,EASJ,CCvEO,MAAMc,EAA+BC,EAAAA,gBAAgB,CAIxDC,KAAM,mBAON,KAAAC,CAAMC,GACF,MAAM1B,EAAWO,IACjB,MAAO,IACEP,EAASa,MAAMV,OAGTwB,EAAAA,EAAE,MAAO,CACZC,MAAO,qBACPC,MAAO,CACHC,IAAK,EACLC,KAAM,EACNC,MAAO,GAAGhC,EAASa,MAAMT,WACzB6B,OAAQ,SACRC,SAAU,QACVC,gBAAiB,6BAA6BnC,EAASa,MAAMX,SAC7DkC,WAAY,qBACZC,OAAQ,cAZhB,CAiBZ,IClCSC,EAAoBC,OAAO,iBAC3BC,EAAmBD,OAAO,gBCOvC,IAAIE,EAAqC,KACrCC,GAAqB,EA0BzB,SAASC,EAASC,EAAsBpB,EAAcqB,GAClD,OAAOD,EAAQE,cAAc,IAAIC,YAAYvB,EAAM,CAC/CwB,SAAS,EACTC,YAAY,EACZJ,WAER,CAOA,SAASK,EAAgBC,GACrB,MAAMC,EAAgC,CAAA,EAgBtC,OAdA,IAAIC,SAASF,GAAMG,QAAQ,CAACC,EAAOC,KAC/B,MAAMC,EAAUD,EAAQE,SAAS,MAC3BlC,EAAOiC,EAAUD,EAAQG,MAAM,GAAG,GAAMH,EAO9CJ,EAAK5B,GALCA,KAAQ4B,EAKDQ,MAAMH,QAAQL,EAAK5B,IAC1B,IAAI4B,EAAK5B,GAAoB+B,GAC7B,CAACH,EAAK5B,GAAO+B,GANFE,EAAU,CAACF,GAASA,IASlCH,CACX,CAOA,SAASS,EAAiBN,GACtB,IAAKA,GAAOO,OACR,MAAO,CAAA,EAGX,IACI,OAAOC,KAAKC,MAAMT,EACtB,CAAE,MACE,MAAMU,EAAkC,CAAA,EAClCC,EAAa,gFACnB,IAAIC,EAEJ,KAA4C,QAApCA,EAAQD,EAAWE,KAAKb,KAAkB,CAC9C,MAAMc,EAAMF,EAAM,IAAMA,EAAM,GACxBG,EAAMH,EAAM,IAAMA,EAAM,IAAM,GAC/BE,IAGLJ,EAAOI,GAAe,SAARC,GAAgC,UAARA,GAA0BA,EACpE,CAEA,OAAOL,CACX,CACJ,CAgCA,SAASM,EAAW3B,EAAsB4B,GACtC5B,EAAQ6B,gBAAgB,uBAAwBD,GAChD5B,EAAQ8B,aAAa,YAAaF,EAAU,OAAS,UAEjD5B,aAAmB+B,mBAAqB/B,aAAmBgC,oBAC3DhC,EAAQiC,SAAWL,EAE3B,CA0BAM,eAAeC,EAAWnC,EAAsBO,GAC5C,MAAM6B,EAAUpC,EAAQqC,aAAa,iBAAmB9B,GAAM8B,aAAa,gBAC3E,IAAKD,IAAYvC,GAAaG,EAAQsC,aAAa,wBAC/C,OAGJ,MAAMC,EAhEV,SAA6B5B,GACzB,IAAKA,GAAOO,OACR,MAAO,CAAA,EAGX,MAAMqB,EAA0B,CAAA,EAC1BjB,EAAa,mEACnB,IAAIC,EAEJ,KAA4C,QAApCA,EAAQD,EAAWE,KAAKb,KAAkB,CAC9C,MAAM6B,EAAUjB,EAAM,IAAMA,EAAM,GAC5BkB,EAAWlB,EAAM,GACnBiB,GAAWC,IACXF,EAAQC,GAAWC,EAE3B,CAEA,OAAOF,CACX,CA8CoBG,CACZ1C,EAAQqC,aAAa,wBAA0B9B,GAAM8B,aAAa,wBAA0B,MAE1F7B,EAAO,IACLD,EAAOD,EAAgBC,GAAQ,CAAA,KAChCU,EAAiBV,GAAM8B,aAAa,sBAAwB,SAC5DpB,EAAiBjB,EAAQqC,aAAa,uBAG7C,GAAKtC,EAASC,EAAS,cAAe,CAAEoC,UAAS5B,SAAjD,CAIAmB,EAAW3B,GAAS,GAEpB,IACI,MAAMqB,QAAexB,EAAUuC,EAAS,CACpC5B,OACAmC,MAAO3C,EAAQsC,aAAa,uBAAyBM,QAAQrC,GAAM+B,aAAa,uBAChFO,SAAUC,OAAOC,KAAKR,GACtBS,eAAe,KA7C3B,SAA8B3B,EAA8BkB,GACxD,IAAK,MAAOC,EAASC,KAAaK,OAAOG,QAAQV,GAAU,CACvD,MAAMW,EAAO7B,EAAOwB,SAASL,GAC7B,QAAaW,IAATD,EAIJ,IAAK,MAAME,KAAUpC,MAAMqC,KAAKC,SAASC,iBAA8Bd,IACnEW,EAAOI,UAAYN,CAE3B,CACJ,CAqCQO,CAAqBpC,EAAQkB,GAC7BxC,EAASC,EAASqB,EAAOqC,GAAK,eAAiB,aAAcrC,EACjE,CAAE,MAAOsC,GACL5D,EAASC,EAAS,aAAc,CAAEoC,UAASuB,SAC/C,SACIhC,EAAW3B,GAAS,GACpBD,EAASC,EAAS,gBAAiB,CAAEoC,WACzC,CAnBA,CAoBJ,CAOA,SAASwB,EAAaC,GAClB,MAAMtD,EAAOsD,EAAMT,kBAAkBU,gBAAkBD,EAAMT,OAAS,KACtE,IAAK7C,GAAMwD,QAAQ,kBACf,OAGJF,EAAMG,iBAED7B,EADa0B,EAAMI,qBAAqBC,YAAcL,EAAMI,UAAY1D,EAClDA,EAC/B,CAOA,SAAS4D,EAAYN,GACjB,MAAMO,EAASP,EAAMT,kBAAkBiB,QAAUR,EAAMT,OAAS,KAC1DpD,EAAUoE,GAAQE,QAAqB,mBACxCtE,GAAWA,aAAmB8D,kBAI9B9D,aAAmB+B,mBAAqB/B,aAAmBgC,mBACzDhC,EAAQO,MAAMwD,QAAQ,oBAI7BF,EAAMG,iBACD7B,EAAWnC,EAASA,EAAQsE,QAAQ,cAAWnB,GACxD,CC3NA,MAAMoB,EAAc,IAAIC,IAAgB,CAAC,OAAQ,QAAS,UAAW,YAOrE,SAASC,EAAmBC,GACxB,MAA2B,iBAAbA,GAAyBH,EAAYI,IAAID,GACjDA,EACA,MACV,CAQA,SAASE,EAAmBjC,EAAoBkC,EAAkBC,GAC9D,GAAuB,iBAAZA,IAAyBA,EAAQ5D,OACxC,OAGJ,MAAM6D,EAAUpC,EAAMkC,GAChBG,EAAWhE,MAAMH,QAAQkE,GAAWA,EAAUA,EAAU,CAACA,GAAW,GACpEE,EAAcH,EAAQ5D,OAEvB8D,EAASE,SAASD,KACnBtC,EAAMkC,GAAQ,IAAIG,EAAUC,GAEpC,CAwCA,SAASE,EAAQC,EAAcC,GAC3B,OAAKA,EAGD,kBAAkBC,KAAKD,IAGvBA,EAAKE,WAAW,MAAQF,EAAKE,WAAW,YAAcF,EAAKE,WAAW,SAAWF,EAAKE,WAAW,QAF1FF,EAKJ,GAAGD,EAAKI,QAAQ,OAAQ,OAAOH,EAAKG,QAAQ,OAAQ,MARhDJ,CASf,CAOA,SAASK,EAAYC,GACjB,MAAMC,EAAK,IAAIC,gBACf,IAAK,MAAOC,EAAGC,KAAMhD,OAAOG,QAAQyC,GAC5BI,SAGJH,EAAGI,IAAIF,EAAGG,OAAOF,IAErB,MAAMG,EAAMN,EAAGO,WACf,OAAOD,EAAM,IAAIA,IAAQ,EAC7B,CAQA,SAASE,EAAYC,EAAiBV,GAClC,OAAOU,EAAQZ,QAAQ,uBAAwB,CAACa,EAAG5E,KAC/C,MAAM6E,EAAc7E,EAAIX,SAAS,KACjCW,EAAMA,EAAIX,SAAS,KAAOW,EAAIV,MAAM,GAAG,GAAMU,EAE7C,MAAM8E,EAAMb,EAAOjE,GAGnB,UAFOiE,EAAOjE,GAEH,MAAP8E,EACA,MAAO,GAGX,MAAMC,EAAaC,mBAAmBT,OAAOO,IAC7C,OAAOD,EAAcE,EAAWhB,QAAQ,OAAQ,KAAOgB,GAE/D,UAWgBE,EACZC,EACAC,EACAC,GAEA,MAAMC,EAAezJ,EAAAA,SAAS,IAM9B,SAAS0J,IACL,MAAMC,EAAUL,IAChB,IAAKK,EACD,MAAM,IAAIC,MAAM,wCAEpB,OAAOD,CACX,CAMA,SAASE,IACL,MAAMF,EAA6CD,IAC7CI,EAAUH,EAAQI,SAASD,QACjC,IAAKA,EACD,MAAM,IAAIF,MAAM,+CAEpB,OAAOE,CACX,CAOA,SAASE,EAAIhC,GACT,OAAOF,EAAQ+B,IAAOI,QAASjC,EACnC,CA0JA,SAASkC,EAAsB9F,GAC3B,MAAMuF,EAAUD,IACVS,EAASR,EAAQI,SAASK,MAAMD,QAAU,GAC1CE,EAAiBV,EAAQI,SAASD,SAASO,gBAAkB,GAE7DC,EAAgBX,EAAQI,SAASD,SAASS,UAAUJ,IAAW,CAAA,EAC/DK,EAAkBb,EAAQI,SAASD,SAASS,UAAUF,IAAmB,CAAA,EAE/E,OAAIjG,KAAOkG,EACAA,EAAclG,GACdA,KAAOoG,EACPA,EAAgBpG,GAEhB,IAEf,CASA,SAASqG,EAA4BC,EAAgBC,GACjD,IAAKA,EACD,OAAOD,EAGX,IAAK,MAAOE,EAAQC,KAAWpF,OAAOG,QAAQ+E,GAAe,CACzD,GAAIE,QACA,SAGJ,MAAMzG,EAAMuE,OAAOiC,GACbtH,EAAQqF,OAAOkC,GAGrBH,EAASA,EAAOI,WAAW,IAAI1G,IAAOd,GAGtC,MAAMyH,EAAK3G,EAAI4G,OAAO,GAAGC,cAAgB7G,EAAIV,MAAM,GAInDgH,GAHAA,EAASA,EAAOI,WAAW,IAAIC,IAAMzH,EAAM0H,OAAO,GAAGC,cAAgB3H,EAAMI,MAAM,KAGjEoH,WAAW,IAAI1G,EAAI6G,gBAAiB3H,EAAM2H,cAC9D,CAEA,OAAOP,CACX,CA6EA,SAASQ,EAAY9G,EAAa+G,EAAgBR,GAC9C,IAAIS,EAAelB,EAAsB9F,GACzC,GAAqB,OAAjBgH,EACA,OAAOhH,EAIX,OAAOqG,EA3EX,SAA0BpG,EAAagH,GACnC,MAAMC,EAAQjH,EAAIkH,MAAM,KAAKC,IAAIC,GAAKA,EAAE5H,QAAQ6H,OAAOnG,SAEvD,IAAK,MAAMoG,KAAQL,EAAO,CAGtB,MAAMM,EAAQD,EAAKzH,MAAM,sBACzB,GAAI0H,EAAO,CAEP,GAAIP,IADQQ,OAAOD,EAAM,IAErB,OAAOA,EAAM,GAEjB,QACJ,CAGA,MAAME,EAAQH,EAAKzH,MAAM,wCACzB,GAAI4H,EAAO,CACP,MAAMC,EAASD,EAAM,GACfE,EAASF,EAAM,GACfG,EAAOH,EAAM,GAEbI,EAAiB,MAAXH,GAAiB,IAAYF,OAAOE,GAC1C7K,EAAiB,MAAX8K,EAAiBG,IAAWN,OAAOG,GAE/C,GAAIX,GAAKa,GAAOb,GAAKnK,EACjB,OAAO+K,EAEX,QACJ,CACJ,CAGA,OAAqB,IAAjBX,EAAMc,OACCd,EAAM,GAII,IAAjBA,EAAMc,OACQ,IAANf,EAAUC,EAAM,GAAKA,EAAM,GAIhCA,EAAMA,EAAMc,OAAS,EAChC,CA8BmBC,CAAiBjB,EAAcD,GACH,CAAEmB,MAAOnB,KAAWR,GACnE,CA6CA9F,eAAe0H,EACXxH,EACAyH,EAAiC,IAEjC,IAAK,4BAA4BvE,KAAKlD,GAClC,MAAM,IAAI6E,MAAM,yCAAyC7E,KAG7D,MAAM0H,EAAOD,EAAQC,MAAQ,CAAC,QAAS,aAAc,aAAc,aAAc,UAC3EC,EAAkC,CACpC,iBAAkB3H,EAClB,gBAAkC,IAAlByH,EAAQlH,MAAkB,IAAM,KAEhDkH,EAAQhH,UAAU4G,SAClBM,EAAQ,mBAAqBF,EAAQhH,SAASmH,KAAK,MAGvD,MAAMC,QAAiBrD,EAAOlF,IAAI5D,OAAOoM,SAASC,SAAWrM,OAAOoM,SAASE,OAAQ,CACjFC,OAAQ,OACR7J,KAAMqJ,EAAQrJ,MAAQ,CAAA,EACtBuJ,UACAD,OACA9G,cAAe6G,EAAQ7G,gBAAiB,IAEtCsH,QAAaL,EAASK,OACtBC,EAAQD,EAAKE,QAAU,GACvBC,EAAcH,EAAKI,QAKzB,UAHOJ,EAAKE,cACLF,EAAKI,QAERD,IAAiC,IAAlBZ,EAAQlH,MAAiB,CACxC,MAAMgI,EAnflB,SAA0BJ,GACtB,MAAM5H,EAAqB,CAAA,EAE3B,IAAK,MAAMiI,KAAcL,EAAKM,KAAO,GACZ,UAAjBD,EAAUE,IACVlG,EACIjC,EACA8B,EAAmBmG,EAAUG,OAASH,EAAUlG,UAChDkG,EAAUtB,MAAQsB,EAAU9F,SAKxC,MAAMkG,EAAkBlI,OAAOmI,OAAOV,EAAKW,SAAW,CAAA,GACjDC,QAASnG,GAAahE,MAAMH,QAAQmE,GAAYA,EAAW,CAACA,IAEjE,IAAK,MAAMF,KAAWkG,EAClBpG,EAAmBjC,EAAO,QAASmC,GAOvC,OAJkC,IAA9BhC,OAAOC,KAAKJ,GAAO8G,QAAwC,iBAAjBc,EAAKzF,SAC/CF,EAAmBjC,EAAO8B,EAAmB8F,EAAK7F,UAAW6F,EAAKzF,SAG/DnC,CACX,CA0d8ByI,CAAiBb,GAC/BzH,OAAOC,KAAK4H,GAAWlB,OAAS,GAAKgB,EAAYY,OACjDZ,EAAYY,KAAK1I,MAAQ,IACjB8H,EAAYY,KAAK1I,OAAS,MAC3BgI,GAGf,CAEIF,SACM5D,EAAa4D,EAAaX,GAGpC,MAAMjH,EAAmC,CAAA,EACzC,IAAK,MAAM+H,KAAcL,EAAKM,KAAO,GACZ,YAAjBD,EAAUE,IAA8C,iBAAnBF,EAAUhM,KAC/CiE,EAAS+H,EAAUhM,MAAQoH,OAAO4E,EAAU1H,MAAQ,IAC5B,aAAjB0H,EAAUE,IAAgD,iBAApBF,EAAU/G,MACvD/F,OAAOoC,cAAc,IAAIC,YAAYyK,EAAU/G,MAAO,CAAE5D,OAAQ2K,EAAU3K,UAClD,aAAjB2K,EAAUE,IAAqBF,EAAUU,IAChDxN,OAAOoM,SAASqB,OAAOvF,OAAO4E,EAAUU,MAChB,WAAjBV,EAAUE,IACjBhN,OAAOoM,SAASsB,SAIxB,IAAKvB,EAASvG,MAAQ,OAAQ6G,GAC1B,MAAM,IAAItD,MAAM,gCAAgCgD,EAASwB,YAG7D,MAAO,CACH/H,GAAI6G,EAAK7G,IAAMuG,EAASvG,GACxB+H,OAAQxB,EAASwB,OACjBjL,KAAM8J,EACNY,QAASX,EAAKW,SAAW,CAAA,EACzBpG,QAASyF,EAAKzF,SAAW,KACzBJ,SAAU6F,EAAK7F,UAAY,OAC3B7B,WAER,CA2GAX,eAAewJ,EAAW3C,EAAgB3B,GACtC,MAAM6C,QAAiBrD,EAAOlF,IAAI2F,EAAI,mBAAoB,CACtDgD,OAAQ,OACR7J,KAAM,CACFuI,SACA3B,aAGR,IAAK6C,EAASvG,GACV,MAAM,IAAIuD,MAAM,0BAA0B8B,OAAYkB,EAASwB,WAGnE,MAAMjL,QAAayJ,EAASK,OAC5B,GAAoB,YAAhB9J,EAAKiL,OACL,MAAM,IAAIxE,MAAM,0BAA0B8B,OAAYkB,EAASwB,cAAcjL,EAAKsE,SAAW,iCAGjG,OAAOtE,EAAKa,OAAOsK,OACvB,CAYA,MAAMC,EAAkB,CACpBvE,MACAwE,MAxhBJ,SAAsCxG,GAClC,OAAIrE,MAAMH,QAAQwE,GACPA,EAAKwD,IAAIiD,GAAK3G,EAAQ+B,IAAO6E,aAAcD,GAAK,KAEhD3G,EAAQ+B,IAAO6E,aAAc1G,EAE5C,EAmhBIgG,KA1gBJ,SAAczM,EAAsB,KAAM8G,EAAc,CAAA,EAAIsG,GAAuB,GAC/E,MAAMC,EAAK/E,IACLgF,EAAQD,EAAGC,OAAS,CAAA,EACpBC,EAAgB,IAAMF,EAAGE,eAAiB,CAAA,GAWhD,GATsB,kBAAXzG,IACPsG,EAActG,EACdA,EAAS,CAAA,GAERA,GAA4B,iBAAXA,IAAuB1E,MAAMH,QAAQ6E,KACvDA,EAAS,CAAA,IAIR9G,EAAM,CACP,MAAM0M,EAAMvE,IAAiBK,SAASiE,MAAMC,KAAO,IAC7Cc,EAAQ3G,EAAYC,GAC1B,OAAK0G,EAIEd,GAAOA,EAAIpG,SAAS,KAAO,IAAIkH,EAAMrL,MAAM,KAAOqL,GAH9Cd,CAIf,CAEA,GAAoB,iBAAT1M,EACP,OAIJ,MAAMyN,EAAWH,EADjBtN,EAAOA,EAAK0N,eAEZ,IAAKD,GAAUjG,QACX,OAGJ,MAAMmG,EAAcP,EAAc,IAAKG,KAAkBzG,GAAW,IAAKA,GACnE8G,EAAc,IAAK9G,GACnBL,EAAOc,EAAYkG,EAASjG,QAASmG,GAM3C,OAFApG,EAAYkG,EAASjG,QAASoG,GAEvBnF,EAAIhC,GAAQI,EAAY+G,EACnC,EAgeIC,KAzdJ,SAAcpH,GACV,GAAIA,EAAKE,WAAW,QAChB,OAAOF,EACJ,CACH,MAAM2B,EAAUD,IAChB,OAAOM,EAAI,yBAAyBqF,KAAKrH,YAAe2B,EAAQI,SAASiE,MAAMQ,OAAS,MAC5F,CACJ,EAmdIc,MA5cJ,SAAeC,GACX,MAAMX,EAAK/E,IAGL2F,GAFO,IAAM7G,OAAO4G,GAAQ,IAAIpH,QAAQ,MAAO,KAAKA,QAAQ,OAAQ,KACvDoD,MAAM,KAAKC,IAAKiD,GAAMrF,mBAAmBqF,IACtC9B,KAAK,KAAKxE,QAAQ,OAAQ,KAChD,OAAOL,EAAQ8G,EAAGa,aAAcD,EACpC,EAucIE,OA7bJ,SAAgBC,EAAe5N,EAAuB,KAAMC,EAAwB,KAAMwK,EAA+B,IACrH,MAAMoC,EAAK/E,IACL+F,EAAWhB,EAAGiB,SAASD,UAAY,UAEnCb,EAA6B,CAAEe,IAAKH,GAC7B,MAAT5N,IACAgN,EAAMgB,EAAIhO,GAEA,MAAVC,IACA+M,EAAMrN,EAAIM,GAEd,IAAK,MAAOoC,EAAK8E,KAAQzD,OAAOG,QAAQ4G,GAAW,CAAA,GAC/CuC,EAAM,KAAK3K,KAAS8E,EAGxB,OAAOc,EAAI4F,EAAWxH,EAAY2G,GACtC,EA8aIiB,SAtaJ,SAAkB1M,EAAwBkJ,EAA2B,IACjE,MAAMyD,EAAuB,iBAAV3M,EAAqBA,EAAQuI,OAAOlD,OAAOrF,GAAO6E,QAAQ,IAAK,MAClF,IAAK0D,OAAOqE,SAASD,GACjB,OAAOtH,OAAOrF,GAGlB,MAAM6G,OACFA,EAAS,QAAO6F,SAChBA,EAAW,MAAKpO,MAChBA,EAAQ,WAAUuO,sBAClBA,EAAqBC,sBACrBA,GACA5D,EAEJ,OAAO,IAAI6D,KAAKC,aAAanG,EAAQ,CACjCvI,QACAoO,WACAG,wBACAC,0BACDG,OAAON,EACd,EAmZIO,MA7RJ,SAAepM,EAAauG,GACxB,IAAIS,EAAelB,EAAsB9F,GACzC,OAAqB,OAAjBgH,EACOhH,EAGJqG,EAA4BW,EAAcT,EACrD,EAuRIO,cACAuF,YA/PJ,SAAqBlP,EAAcmP,EAAoB,MACnD,MAAM/G,EAAUD,IAChB,OAAInI,KAASoI,EAAQI,SAASiE,MAAMvE,cAAgB,CAAA,IACxCE,EAAQI,SAASiE,MAAMvE,cAAgB,CAAA,GAAIlI,GAC5CA,KAAQkI,EACRA,EAAalI,GAEbmP,CAEf,EAuPIC,eAhPJ,SAAwBpP,GACpB,MAAMoI,EAAUD,IAChB,OAAOnI,KAASoI,EAAQI,SAASiE,MAAMvE,cAAgB,CAAA,IAAOlI,KAAQkI,CAC1E,EA8OImH,eAtOJ,SAAwBrP,EAAc+B,GAClCmG,EAAalI,GAAQ+B,CACzB,EAqOIiJ,UACAsE,cA/IJhM,eAA6BtD,EAAcuP,EAAsC,IAC7E,MAAM9M,QAAeuI,EAA2B,uBAAwB,CACpEpJ,KAAM,CAAE5B,OAAMuP,cACdrE,KAAM,CAAC,SACP9G,eAAe,IAEnB,IAAK3B,EAAOqC,GACR,MAAM,IAAIuD,MAAM5F,EAAOyD,SAAW,6BAA6BlG,KAEnE,OAAOyC,EAAOb,KAAK0C,MAAQ,EAC/B,EAsIIyI,QA9HJzJ,eAAuBtD,EAAcuP,EAAsC,IACvE,MAAM9M,QAAeuI,EAA2B,uBAAwB,CACpEpJ,KAAM,CAAE5B,OAAMuP,cACdrE,KAAM,CAAC,SACP9G,eAAe,IAEnB,IAAK3B,EAAOqC,GACR,MAAM,IAAIuD,MAAM5F,EAAOyD,SAAW,6BAA6BlG,KAEnE,OAAOyC,EAAOb,KAAK0C,MAAQ,EAC/B,EAqHI6F,OArBJ,SAAgBnK,EAAmD+M,GAC/D,OAAOD,EAAW9M,EAAM,CAAE+M,WAC9B,EAoBIyC,UA7GJ,SAAmBlL,EAAcmL,EAAoB,IAAKC,EAAc,OACpE,GAAID,GAAa,EACb,OAAOC,EAGX,MAAMC,EAASjL,SAASkL,cAAc,YACtCD,EAAO/K,UAAYN,EACnB,MAAMuL,EAASnL,SAASkL,cAAc,OACtC,IAAIE,EAAYL,EACZM,GAAY,EAEhB,MAAMC,EAAaC,IACf,GAAIF,EACA,OAAO,KAEX,GAAIE,EAAKC,WAAaC,KAAKC,UAAW,CAClC,MAAMC,EAAajO,MAAMqC,KAAKwL,EAAKK,aAAe,IAClD,OAAID,EAAWxF,QAAUiF,GACrBA,GAAaO,EAAWxF,OACjBnG,SAAS6L,eAAeF,EAAWjF,KAAK,OAGnD2E,GAAY,EACLrL,SAAS6L,eAAeF,EAAWlO,MAAM,EAAG2N,GAAW1E,KAAK,IAAMsE,GAC7E,CACA,GAAIO,EAAKC,WAAaC,KAAKK,aACvB,OAAOP,EAAKD,WAAU,GAG1B,MAAMS,EAAQR,EAAKD,WAAU,GAC7B,IAAK,MAAMU,KAAStO,MAAMqC,KAAKwL,EAAKU,YAAa,CAC7C,MAAMC,EAAaZ,EAAUU,GAI7B,GAHIE,GACAH,EAAMI,YAAYD,GAElBb,EACA,KAER,CACA,OAAOU,GAGX,IAAK,MAAMC,KAAStO,MAAMqC,KAAKkL,EAAO5C,QAAQ4D,YAAa,CACvD,MAAMF,EAAQT,EAAUU,GAIxB,GAHID,GACAZ,EAAOgB,YAAYJ,GAEnBV,EACA,KAER,CAEA,OAAOF,EAAOjL,SAClB,EAyDIkM,GAAK/D,GAAYD,EAAW,KAAM,CAAEC,YACpCgE,OAAShE,GAAYD,EAAW,UAAW,CAAEC,YAC7CiE,QAAUjE,GAAYD,EAAW,WAAY,CAAEC,YAC/CkE,SAAWlE,GAAYD,EAAW,YAAa,CAAEC,YAGjDmE,aAAcvH,EACdwH,QAAUpE,GAAYD,EAAW,UAAW,CAAEC,YAC9CqE,SAAWrE,GAAYD,EAAW,WAAY,CAAEC,YAChDsE,UAAYtE,GAAYD,EAAW,YAAa,CAAEC,aAKtD,ODxuBA9L,ECsuBqB+L,EAAIhC,QDpuBrB9J,GAA0C,oBAAbwD,WAIjCxD,GAAqB,EACrBwD,SAAS4M,iBAAiB,SAAUtM,GACpCN,SAAS4M,iBAAiB,QAAS/L,ICguB5ByH,CACX,UAegBuE,IACZ,MAAMvJ,EAASwJ,EAAAA,OAAY1Q,EAAmB,MAC9C,IAAKkH,EACD,MAAM,IAAIK,MAAM,yCAIpB,OAAOL,CACX,CC7wBM,SAAUyJ,EAAgBC,GAC5B,OAAOA,GAAKC,SAAWD,CAC3B,CAqBM,SAAUE,EAAUC,EAAUpL,GAChC,OAAOA,EAAKuD,MAAM,KAAK8H,OAAO,CAACC,EAAKlP,IAAgB,MAAPkP,OAAcxN,EAAYwN,EAAIlP,GAAOgP,EACtF,UAQgBG,EAAUC,EAAWxL,EAAc1E,GAC/C,MAAMgI,EAAQtD,EAAKuD,MAAM,KACzB,IAAKD,EAAMc,OACP,OAAOoH,EAGX,MAAMC,EAAM9P,MAAMH,QAAQgQ,GAAQA,EAAK9P,QAAU,IAAM8P,GAAQ,CAAA,GACzDE,EAAOpI,EAAMA,EAAMc,OAAS,GAElC,IAAIuH,EAAcF,EACdG,EAAaJ,GAAQ,CAAA,EAEzB,IAAK,IAAIK,EAAI,EAAGA,EAAIvI,EAAMc,OAAS,EAAGyH,IAAK,CACvC,MAAMzP,EAAMkH,EAAMuI,GAEZC,EAASF,IAAQxP,GACvB,IAAI2P,EAGAA,EADApQ,MAAMH,QAAQsQ,GACJA,EAAOpQ,QACVoQ,GAA4B,iBAAXA,EACd,IAAKA,GAEL,CAAA,EAGdH,EAAOvP,GAAO2P,EACdJ,EAASI,EACTH,EAAQE,CACZ,CAGA,OADAH,EAAOD,GAAkBpQ,EAClBmQ,CACX,CC7DM,SAAUO,EAAa1K,EAA4C2K,GAmBrE,SAASC,EAAQjG,EAAazB,EAAe,IACzC,MAAM7C,EAfV,WACI,MAAMA,EAAUL,IAChB,IAAKK,EACD,MAAM,IAAIC,MAAM,mCAEpB,OAAOD,CACX,CASoBD,GACVsD,GAAUR,EAAQQ,QAAU,OAAO/B,cACnC9H,EAAOqJ,EAAQrJ,WAAQ2C,EAGvB4G,EAAmB,IAAIyH,QAAQ,CACjCC,OAAQ,mBACR,mBAAoB,iBACpB,UAAW,OACP5H,EAAQE,SAAW,KAGrB2H,EAAQ1K,EAAQI,SAASsK,MAC/B,GAAIA,EAAO,CACP,MAAOC,EAAWC,GAAcF,EAAM9I,MAAM,KAC5CmB,EAAQhE,IAAI,eAAgB4L,GAC5B5H,EAAQhE,IAAI,gBAAiB6L,EACjC,CAiBA,OAhBI/H,EAAQhM,OACRkM,EAAQhE,IAAI,gBAAiB,KAE7B8D,EAAQgI,SAASpI,QACjBM,EAAQhE,IAAI,kBAAmB8D,EAAQgI,QAAQ7H,KAAK,MAEpDH,EAAQC,MAAML,QACdM,EAAQhE,IAAI,eAAgB8D,EAAQC,KAAKE,KAAK,MAE9CH,EAAQ7G,eACR+G,EAAQhE,IAAI,yBAA0B,KAE3B,QAAXsE,GACAN,EAAQhE,IAAI,eAAgB,oBAGzB,IAAI+L,QAAQxG,EAAK,CACpBjB,OAAQA,EAAO/B,cACfyB,UACAgI,KAAiB,QAAX1H,EAAmBlJ,KAAK6Q,UAAUxR,GAAQ,CAAA,GAAM,KACtDyR,YAAa,eAErB,CAqBA/P,eAAegQ,EAAM5G,EAAazB,EAAe,IAC7C,MAAMD,EAAmB2H,EAAQjG,EAAKzB,GAGtC,IAAII,EACJ,UACUqH,EAAMa,SAASvI,GAGrBK,QAAiBmI,MAAMxI,GAGA,QAAnBA,EAAQS,SACJR,EAAQrE,QACR6M,QAAQC,aAAa,GAAI,GAAIhH,GAE7B+G,QAAQE,UAAU,GAAI,GAAIjH,UAK5BgG,EAAMkB,UAAU5I,EAASK,EACnC,CAAE,MAAOwI,GAEL,YADMnB,EAAMoB,UAAUD,EAAK7I,EAASK,GAC9BwI,CACV,CACJ,CAGA,MAAO,CACH/Q,IA5CJQ,eAAmBoJ,EAAazB,EAAe,IAC3C,MAAMD,EAAmB2H,EAAQjG,EAAKzB,GACtC,IACI,aAAauI,MAAMxI,EACvB,CAAE,MAAO6I,GACL,MAAMA,CACV,CACJ,EAsCIP,QACAS,IAAK,CAACrH,EAAazB,IAAkBqI,EAAM5G,EAAK,IAAMzB,GAAW,CAAA,EAAKQ,OAAQ,QAC9EuI,KAAM,CAACtH,EAAa9K,EAAYqJ,IAAkBqI,EAAM5G,EAAK,IAAMzB,GAAW,CAAA,EAAKQ,OAAQ,OAAQ7J,SACnGqS,IAAK,CAACvH,EAAa9K,EAAYqJ,IAAkBqI,EAAM5G,EAAK,IAAMzB,GAAW,CAAA,EAAKQ,OAAQ,MAAO7J,SACjGsS,MAAO,CAACxH,EAAa9K,EAAYqJ,IAAkBqI,EAAM5G,EAAK,IAAMzB,GAAW,CAAA,EAAKQ,OAAQ,QAAS7J,SACrGuS,OAAQ,CAACzH,EAAa9K,EAAYqJ,IAAkBqI,EAAM5G,EAAK,IAAMzB,GAAW,CAAA,EAAKQ,OAAQ,SAAU7J,SAE/G,UAegBwS,IACZ,MAAMpM,EAASwJ,EAAAA,OAAYxQ,EAAkB,MAC7C,IAAKgH,EACD,MAAM,IAAIK,MAAM,0CAIpB,OAAOL,CACX,CClJO,MAAMQ,EAAU6L,EAAAA,aCAjBC,EAAQ,IAAIC,IAEZ,SAAUC,EAAaC,GACzB,MAAMC,EAAWJ,EAAMP,IAAIU,GAC3B,GAAIC,EACA,OAAOA,EAIX,MAAM1M,EAASoM,IACT7L,EAAUgJ,IAGVpL,EAAUwO,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO6S,aAAaH,IAAU,MAOrE,SAASI,EAAOhS,GACZ,MAAMiS,EAAW3O,EAAQpE,MACzB,QAAK+S,GAAK5U,OAGCgE,OAAO6Q,UAAUC,eAAeC,KAAKH,EAAI5U,MAAO2C,EAE/D,CAOA,SAASqS,EAAOrS,GACZ,MAAMiS,EAAW3O,EAAQpE,MACzB,QAAK+S,OAIDA,EAAI5U,SAAU2C,KAAOiS,EAAI5U,aAKzBkC,MAAMH,QAAQ6S,EAAIK,WAAYL,EAAIK,QAAQ7O,SAASzD,QAGnDT,MAAMH,QAAQ6S,EAAIM,QAASN,EAAIM,KAAK9O,SAASzD,KAIrD,CAQA,SAASkR,EAAalR,EAAawS,GAC/B,MAAMP,EAAW3O,EAAQpE,MACzB,OAAK+S,GAAK5U,OAGE2C,KAAOiS,EAAI5U,MAAU4U,EAAI5U,MAAM2C,GAFhCwS,CAIf,CAOA/R,eAAegS,EAAKnR,GAChB,MACMoR,GADOnT,MAAMH,QAAQkC,GAAQA,EAAO,CAACA,IACtBgG,OAAOtH,IAAQgS,EAAOhS,IAC3C,IAAK0S,EAAQ1K,OACT,OAGJ,MAAMK,EAAOqK,EAAQtL,IAAIpH,GAAO,cAAc4R,WAAe5R,KAQ7D,aAPMmF,EAAO+L,IAAI7U,OAAOoM,SAASC,SAAWrM,OAAOoM,SAASE,OAAQ,CAChEN,OACA9G,eAAe,EACfwC,SAAS,UAEP4O,aAEFpT,MAAMH,QAAQkC,GACPgC,EAAQpE,OAAO7B,MAEfiG,EAAQpE,OAAO7B,MAAMiE,EAEpC,CAKAb,eAAemS,IACX,YAA4BlR,IAAxB4B,EAAQpE,OAAOuC,KACR6B,EAAQpE,MAAMuC,YAGnB0D,EAAO+L,IAAI7U,OAAOoM,SAASC,SAAWrM,OAAOoM,SAASE,OAAQ,CAChEN,KAAM,CAAC,cAAcuJ,UACrBrQ,eAAe,EACfwC,SAAS,UAEP4O,aAECrP,EAAQpE,OAAOuC,MAAQ,GAClC,CAEA,MAAMoR,EAAS,IAAIC,MAAM,GAA8B,CACnD,GAAA5B,CAAI6B,EAAIC,GACJ,GAAa,QAATA,EACA,OAAO9B,EAEX,GAAa,SAAT8B,EACA,OAAOP,EAEX,GAAa,aAATO,EACA,OAAOJ,EAEX,GAAa,WAATI,EACA,OAAOhB,EAEX,GAAa,WAATgB,EACA,OAAOX,EAEX,GAAa,YAATW,EACA,MAAO,CAACrS,EAAiByH,IAAkB1C,EAAQyC,QAAQ,GAAGyJ,MAAUjR,IAAWyH,GAGvF,MAAM6J,EAAW3O,EAAQpE,MACzB,OAAO+S,EAAMA,EAAIe,QAAetR,CACpC,EACA,GAAAwB,CAAI6P,EAAIC,GACJ,GAAa,QAATA,GAA2B,SAATA,GAA4B,aAATA,GAAgC,WAATA,GAA8B,WAATA,GAA8B,YAATA,EACtG,OAAO,EACJ,CACH,MAAMf,EAAW3O,EAAQpE,MACzB,QAAS+S,GAAOe,KAAQf,CAC5B,CACJ,IAIJ,OADAR,EAAMnN,IAAIsN,EAAOiB,GACVA,CACX,CCvHA,MAAMI,EAAYzB,EAAAA,aACZ0B,EAAS1B,EAAAA,WAAgB,MACzBxR,EAAMmT,EAAAA,SAAwBzR,GAG9B6D,EAAwB,CAC1B,aAAI0N,GAAc,OAAOA,EAAU/T,KAAO,EAC1C,WAAIyG,GAAY,OAAOA,EAAQzG,KAAO,EACtC,UAAIgU,GAAW,OAAOA,EAAOhU,KAAO,EACpC,OAAIc,GAAQ,OAAOA,EAAId,KAAO,EAC9BkU,MAAQA,GAAkBA,EAC1BC,SAAU,KAAQ,MAAM,IAAI7N,MAAM,oBAClC8N,UAAW,IAAMJ,EAAOhU,MACxBqU,UAAYC,IAAgBN,EAAOhU,MAAQsU,IAI/C,IAAIrO,EACAO,EAGG,MAAM+N,EAAyBvW,EAAAA,gBAAgB,CAIlDC,KAAM,QAKNE,MAAO,CACHqW,eAAgB,CACZtQ,KAAM/B,OACNsS,UAAU,GAEdC,iBAAkB,CACdxQ,KAAM/B,OACNsS,UAAU,GAEdE,iBAAkB,CACdzQ,KAAM0Q,SACNH,UAAU,GAEdP,MAAO,CACHhQ,KAAM0Q,SACNH,UAAU,EACV7E,QAAUiF,GAAcA,IAShC3W,MAAK,EAACsW,eAAEA,EAAcE,iBAAEA,EAAgBC,iBAAEA,EAAkBT,MAAOY,MAC/DrO,EAAQzG,MAAQwU,EAChB1T,EAAId,WAAQ,EAGZ+T,EAAU/T,MAAQ0U,EAAmBK,EAAAA,QAAQrF,EAAgCgF,SAAqB,EAC7FX,EAAU/T,OACXgV,QACKC,QAAQN,EAAiBH,EAAe9J,KAAKqJ,YAC7CmB,KAAKvF,IAASoE,EAAU/T,MAAQ+U,EAAAA,QAAQrF,EAAgCC,MACxEwF,MAAMC,QAAQpS,OAEvBqD,EAAQ6N,MAAQY,GAAiBzO,EAAQ6N,MACzC7N,EAAQ8N,SAAWQ,EAGf,SAAUH,GAAkB,UAAWA,EAAe9J,OACtD/H,SAASuR,OAAS7N,EAAQ6N,OAAK,CAAMmB,GAAMA,IAAIb,EAAe9J,KAAKwJ,QAAU,IAIjF/W,OAAOoS,iBAAiB,WAAY,IAAMpS,OAAOoM,SAASsB,UAGnD,KACH,IAAKkJ,EAAU/T,QAAUyG,EAAQzG,MAC7B,OAAO,KAGX,MAAM7B,EAAQsI,EAAQzG,MAAM0K,KAAKvM,OAAS,CAAA,EACpCwQ,EAAQvQ,IAAE2V,EAAU/T,MAAO,IAAM7B,EAAe2C,IAAKA,EAAId,QAS/D,IAAIsV,EANAtB,EAAOhU,QACP+T,EAAU/T,MAAMgU,OAASA,EAAOhU,MAChCgU,EAAOhU,MAAQ,MAMnB,MAAMuV,EAAcxB,EAAU/T,MAAMgU,OACpC,GAAKuB,EAEE,GAA2B,mBAAhBA,EACdD,EAAgBC,EAAYnX,EAAAA,EAAGuQ,OAC5B,CAEH2G,GADiBjV,MAAMH,QAAQqV,GAAeA,EAAc,CAACA,IAExDnV,QACAoV,UACAzF,OAAc,CAACC,EAAKyF,IAAMrX,IAAEqX,EAAG,IAAMtX,GAAiB,IAAM6R,GAAMrB,EAC3E,MATI2G,EAAgB3G,EAYpB,OAAOvQ,EAAAA,EAAEsX,EAAAA,SAAU,KAAM,CACrBtX,EAAAA,EAAEL,GACFuX,QAwCT,MAAMK,EAAyB,CAKlC,OAAAC,CAAQlP,GACJ,MAAMmP,EAAOC,KACP9P,EAAa,IAAMK,EAGnB0P,aAvCV,MAAMlD,WAAEA,GAAemD,IAEvB,OAAO,IAAIpC,MAAM,GAAwB,CACrC5B,IAAG,CAAC6B,EAAIC,IACS,QAATA,EACQpB,KAAoBG,EAAW7S,OAAS0S,KAASG,EAAW7S,MAE3D,QAAT8T,EACQpB,GACCG,EAAW7S,OAAW0S,KAASG,EAAW7S,MAGpCyS,EAAaC,GAFb,KAOH,iBAAToB,EAGNjB,EAAW7S,OAAW8T,KAAQjB,EAAW7S,MACnCyS,EAAaqB,GADqC,UAH7D,GAOR,CAeiCmC,GACnBxZ,EAAWO,IAGjBiJ,EAASyK,EAAa1K,EAAY,CAC9BwL,SAAUjQ,MAAO0H,IACbxM,EAASc,cACHsY,EAAKK,eAAejN,IAE9B4I,UAAWtQ,MAAO0H,EAASK,KACvB7M,EAASQ,aACH4Y,EAAKM,gBAAgBlN,EAASK,IAExCyI,UAAWxQ,MAAO0H,EAASK,KACvB7M,EAASqB,aACH+X,EAAKO,gBAAgBnN,EAASK,MH9E9C,SAAwBrD,EAAaS,GACvCA,EAAI2P,QAAQpX,EAAkBgH,EAClC,CG+EQqQ,CAAcrQ,EAAQS,GAGtBF,EAAUT,EACNC,EACAC,EACA1E,MAAOuI,EAAaX,IAAS2M,KAAKS,KAAKzM,GAA6B,EAAMX,ILmiBhF,SAAyBlD,EAAaS,GACxCA,EAAI2P,QAAQtX,EAAmBkH,EACnC,CKniBQuQ,CAAehQ,EAASE,GAGxBvE,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,SAAU,CACzD3E,IAAK,IAAM3L,IAEflE,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,UAAW,CAC1D3E,IAAK,IAAM/L,IAEf9D,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,WAAY,CAC3D3E,IAAK,IAAM3L,EAAQI,UAEvBtE,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,QAAS,CACxD3E,IAAK,IAAM3L,EAAQI,SAASK,MAAQ,CAAA,IAExC3E,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,SAAU,CACzD3E,IAAK,IAAM3L,EAAQI,SAASyE,OAAS,CAAA,IAEzC/I,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,QAAS,CACxD3E,IAAK,IAAM3L,EAAQI,SAASiE,MAAQ,CAAA,IAExCvI,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,cAAe,CAC9D3E,IAAK,IAAM+D,IAEf5T,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,WAAY,CAC3D3E,IAAK,IAAMxL,IAEfrE,OAAOsU,eAAe/P,EAAIgQ,OAAOC,iBAAkB,UAAW,CAC1D3E,IAAK,IAAM3L,EAAQI,SAASmQ,QAAU,CAAA,GAE9C,EAMA,oBAAMV,CAAejN,GAErB,EAOA,qBAAMkN,CAAgBlN,EAASK,GAG3B,GAAwB,MAApBA,EAASwB,OAAgB,CACzB,MAAM+L,EAAMvN,EAASF,QAAQ4I,IAAI,oBAIjC,MAHI6E,GACA1Z,OAAOoM,SAASqB,OAAOiM,GAErB,IAAIvQ,MAAM,iBACpB,CAEA,IAAKgD,EAASvG,GAEV,MADA5F,OAAOoM,SAASqB,OAAO3B,EAAQ0B,KACzB,IAAIrE,MAAM,uBAGpB,MAAM6C,GJhRkB2N,EIiRpB7N,EAAQG,QAAQ4I,IAAI,iBAAmB1I,EAASF,QAAQ4I,IAAI,iBJ7QzD8E,EAAO7O,MAAM,KAAKC,IAAIC,GAAKA,EAAE5H,QAAQ6H,OAAOnG,SAF5C,GAFT,IAA0B6U,EImRxB,MAAMjX,QAAcyJ,EAASK,OACvBtH,EAAkE,MAAlD4G,EAAQG,QAAQ4I,IAAI,gCACpC8D,KAAKS,KAAK1W,EAAMwC,EAAe8G,EACzC,EAOA,qBAAMiN,CAAgBnN,EAASK,GAE/B,EAQA,UAAMiN,CAAKzM,EAA2BzH,EAAyB8G,GAC3D,GAAI,SAAUW,GAAeA,EAAYY,MAAMqJ,UAAW,CACtD,MAAMpE,QAAYtJ,EAAQ8N,SAASrK,EAAYY,KAAKqJ,WACpDA,EAAU/T,MAAQ+U,EAAAA,QAAQrF,EAAgCC,GAC9D,CAUA,GAPIxG,GAAQA,EAAKL,QAAUrC,EAAQzG,MAC/ByG,EAAQzG,MAAQ8V,KAAK3D,MAAM1L,EAAQzG,MAAO8J,EAAaX,GAEvD1C,EAAQzG,MAAQ8J,EAIhB,SAAUA,GAAeA,EAAYY,KAAM,CAC3C,MAAMqM,EAAYpU,SAASyO,KAAK4F,QAAQ9L,MAClC+L,GAAanN,EAAYY,KAAKQ,OAAS,IAAI3K,OAAOoL,cACpDoL,IAAcE,GAA2B,KAAdA,IAC3BtU,SAASyO,KAAK8F,UAAUC,OAAO,SAASJ,KACxCpU,SAASyO,KAAK8F,UAAUE,IAAI,SAASH,KACrCtU,SAASyO,KAAK4F,QAAQ9L,MAAQ+L,GAGlC,MAAMI,EAAa1U,SAASyO,KAAK4F,QAAQhD,OACnCsD,GAAcxN,EAAYY,KAAKsJ,QAAU,IAAIzT,OAAOoL,cACtD0L,IAAeC,GAA6B,KAAfA,IAC7B3U,SAASyO,KAAK8F,UAAUC,OAAO,UAAUE,KACzC1U,SAASyO,KAAK8F,UAAUE,IAAI,UAAUE,KACtC3U,SAASyO,KAAK4F,QAAQhD,OAASsD,GAGnC,MAAMC,EAAW5U,SAASyO,KAAK4F,QAAQtM,KACjC8M,GAAY1N,EAAYY,KAAK+M,IAAM,IAAIlX,OAAOoL,cAChD4L,IAAaC,GAAyB,KAAbA,IACzB7U,SAASyO,KAAK8F,UAAUC,OAAO,QAAQI,KACvC5U,SAASyO,KAAK8F,UAAUE,IAAI,QAAQI,KACpC7U,SAASyO,KAAK4F,QAAQtM,KAAO8M,GAIjC,MAAME,EAAU,IAAM5N,EAAYY,KAAKiN,MAAQ,CAAA,GACzCC,EAAW,IAAIpF,IAEfqF,EAAOlV,SAASkL,cAAc,QACpC,IAAK,MAAO4J,EAAIlV,KAASJ,OAAOG,QAAQoV,GAAU,CAC9CG,EAAKhV,UAAYN,EAAKhC,OACtB,MAAMuX,EAAKD,EAAKE,kBACXD,IAILA,EAAG3W,aAAa,gBAAiBsW,GACjCI,EAAKG,YAAYF,GAEjBF,EAASxS,IAAIqS,EAAIK,GACrB,CAGA,MAAMG,EAAU,IAAIpU,IACdqU,EAAUvV,SAASgV,KAAK/U,iBAA8B,mBAC5D,IAAK,MAAMkV,KAAMhO,EAAYY,KAAKiN,KAAOtX,MAAMqC,KAAKwV,GAAW,GAAI,CAC/D,MAAMT,EAAKK,EAAGpW,aAAa,iBAC3B,IAAK+V,EACD,SAGJ,MAAMU,EAAQP,EAAS5F,IAAIyF,GACtBU,GAKLF,EAAQb,IAAIK,GACRK,EAAGM,YAAcD,EAAMC,WAI3BzV,SAASgV,KAAKU,aAAaF,EAAOL,IAT9BA,EAAGX,QAUX,CAGA,MAAMmB,EAAS3V,SAASgV,KAAK/U,iBAA8B,mBACrDwN,EAAOkI,EAAOxP,OAAS,EAAIwP,EAAOA,EAAOxP,OAAO,IAAIyP,mBAAqB,KAC/E,IAAK,MAAOd,EAAIK,KAAOhO,EAAYY,KAAKiN,KAAOC,EAAW,GACjDK,EAAQjU,IAAIyT,KACTrH,EACAzN,SAASgV,KAAKa,aAAaV,EAAI1H,GAE/BzN,SAASgV,KAAK7I,YAAYgJ,GAI1C,CAGA,GAAI,SAAUhO,GAAe,UAAWA,EAAYY,KAAM,CACtD,MAAMwJ,EAAQzN,EAAQzG,OAAO0K,MAAMwJ,MAC/BA,IACAvR,SAASuR,OAAS7N,EAAQ6N,OAAK,CAAMmB,GAAMA,IAAInB,IAAU,sBAEjE,CAEApT,EAAId,MAAQqC,EAAgBvB,EAAId,MAAQxC,KAAKC,KACjD,EASA,KAAA0U,CAAM/N,EAAuBkQ,EAAoBnL,GAC7C,IAAIgH,EAAW,IAAM/L,GAErB,IAAK,MAAMM,KAAQyE,EAAM,CACrB,IAAKzE,EACD,SAIJ,IAAKA,EAAKH,SAAS,KAAM,CACjBG,KAAS4P,IACTnE,EAAIzL,GAAS4P,EAAa5P,IAE9B,QACJ,CAGA,MAAMkB,EAAMiK,EAAUyE,EAAa5P,QACvBlC,IAARoD,IACAuK,EAAMF,EAAUE,EAAYzL,EAAMkB,GAE1C,CAEA,OAAOuK,CACX,YAeY6F,IACZ,MAAO,CACHyC,QAAS7F,EAAAA,SAAS,IAAMnM,EAAQzG,OAAOyY,SACvC1H,MAAO6B,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO+Q,OACrCjK,KAAM8L,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO8G,MACpCoE,MAAO0H,EAAAA,SAAS,IAAMnM,EAAQzG,OAAOkL,OACrCR,KAAMkI,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO0K,MACpCmI,WAAYD,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO6S,YAC1CrM,QAASoM,EAAAA,SAAS,IAAMnM,EAAQzG,OAAOwG,SACvCoQ,OAAQhE,EAAAA,SAAS,IAAMnM,EAAQzG,OAAO4W,QAE9C,CCpcO,MAAM8B,EAIT1a,EAAAA,gBAAgB,CAIhBC,KAAM,aAKNE,MAAO,CACH+F,KAAM,CACFA,KAAMmB,OACNoP,UAAU,IAOlBkE,MAAOxW,OAUP,KAAAjE,CAAMC,GAAOwa,MAAEA,IACX,MAAMlS,EAAUuP,IAGhB,MAAO,KACH,MAAMhU,EAAQyE,EAAQiE,KAAK1K,MAAMgC,MACjC,GAAkB,MAAd7D,EAAM+F,QAAkB/F,EAAM+F,QAAQlC,GACtC,OAAO,KAEX,IAAK2W,EAAM/I,QACP,OAAO,KAGX,MAAMgJ,EAAyB,GAC/B,IAAK,MAAO1U,EAAMlE,KAAUmC,OAAOG,QAAQN,GAAQ,CAC/C,GAAkB,MAAd7D,EAAM+F,MAAgB/F,EAAM+F,OAASA,EACrC,SAGJ,MAAMG,EAAWhE,MAAMH,QAAQF,GAASA,EAAQ,CAACA,GACjD,IAAK,MAAMmE,KAAWE,EAClBuU,EAASC,KAAKF,EAAM/I,QAAQ,CAAE1L,KAAMA,EAAoBC,YAEhE,CAEA,OAAOyU,EAAS9P,OAAS,EAAI1K,EAAAA,EAAE,MAAO,CAAA,EAAKwa,GAAY,KAE/D,ICpDSE,EAIT9a,EAAAA,gBAAgB,CAIhBC,KAAM,YAKNE,MAAO,CACH4a,SAAU,CACN7U,KAAM,CAACmB,OAAQkD,QACfkM,UAAU,IAOlBkE,MAAOxW,OAUP,KAAAjE,CAAMC,GAAOwa,MAAEA,IACX,MAAMlS,EAAUuP,IACVgD,EAAW/E,EAAAA,IAAY,GACvBgF,EAAe,IACV9a,EAAM4a,UAAYtS,EAAQiE,KAAK1K,MAAMyX,IAAMhR,EAAQiE,KAAK1K,MAAM2K,KAAO,KAShF,OALAuO,QAAM,IAAMD,IAAgB,KACxBD,EAAShZ,UAIN,KACH,MAAM4Y,EAAWD,EAAM/I,YACvB,OAAKgJ,EAGMxa,EAAAA,EACH+a,EAAAA,SACA,CAAEC,GAAI,OAAQtY,IAAK,GAAGuE,OAAO4T,QAAmBD,EAAShZ,SACzD4Y,GALG,KASnB,IChCG,MAAMS,EAAOrb,EAAAA,gBAAgB,CAIhCC,KAAM,YAKNqb,cAAc,EAKdnb,MAAO,CACHuM,KAAM,CACFxG,KAAMmB,OACNoP,UAAU,GAEd1P,OAAQ,CACJb,KAAM/B,OACNyN,QAAS,CAAA,EACT6E,UAAU,GAEdpJ,YAAa,CACTnH,KAAMjC,QACN2N,SAAS,EACT6E,UAAU,GAEd3I,KAAM,CACF5H,KAAMmB,OACNoP,UAAU,GAEdhS,OAAQ,CACJyB,KAAMmB,OACNoP,UAAU,IAOlBkE,MAAOxW,OAUP,KAAAjE,CAAMC,GAAOwa,MAAEA,EAAKY,MAAEA,IAClB,MAAM/S,EAAUgJ,IACVvJ,EAASoM,IAGTmH,EAAc5G,EAAAA,SAAS,KACzB,GAAIzU,EAAMuM,MAAQvM,EAAMuM,KAAKnK,OAAOuI,OAChC,OAAOtC,EAAQkE,KAAKvM,EAAMuM,KAAKnK,OAAQpC,EAAM4G,OAAQ5G,EAAMkN,aAG/D,MAAMtK,GAAO5C,EAAM2N,MAAQ,IAAIvL,OAC/B,OAAKQ,EAIEA,EAAI6D,WAAW,QAAU7D,EAAMyF,EAAQE,IAAsB3F,EAtEhE8D,QAAQ,OAAQ,KAmET,MAKT4U,EAAa7G,EAAAA,SAAS,IACH,WAAjBzU,EAAMsE,QAGC+W,EAAYxZ,MAAM0Z,QAAQ,KAAKvc,OAAOoM,SAASoQ,aAAe,GAwB7E,MAAO,KACH,MAAMC,EAAuC,IACtCL,EACHM,KAAML,EAAYxZ,MAClByC,OAAQtE,EAAMsE,QAEbgX,EAAWzZ,QACZ4Z,EAAYE,QAAW5W,IAtB/B,IAAiB6W,EAuBL7W,EAAMG,iBAvBD0W,EAwBG7W,EAvBZuW,EAAWzZ,OAGG,IAAd+Z,EAAGC,SAGHD,EAAGE,SAAWF,EAAGG,SAAWH,EAAGI,UAAYJ,EAAGK,QAIlDnU,EAAOsL,MAAMiI,EAAYxZ,UAiBzB,MAAM4Y,EAAWD,EAAM/I,QAAU+I,EAAM/I,QAAQgK,EAAaL,QAAS/W,EACrE,OAAOpE,EAAAA,EAAE,IAAKwb,EAAahB,QAAY,GAE/C,IClJSyB,EAITrc,EAAAA,gBAAgB,CAIhBC,KAAM,qBAKNE,MAAO,CACHF,KAAM,CACFiG,KAAMmB,OACNoP,UAAU,IAOlBkE,MAAOxW,OASP,KAAAjE,CAAMC,GAAOwa,MAAEA,IACX,MAAMlS,EAAUuP,IACVjC,EAAYtB,EAAatU,EAAMF,MAC/Bqc,EAAcrG,EAAAA,KAAI,GAoBxB,OAlBAiF,QACI,IAAMzS,EAAQoM,WAAW7S,QAAQ7B,EAAMF,MACvCsD,MAAOgZ,IACH,GAAKA,QAAwC/X,IAAvB+X,EAAchY,OAAsB+X,EAAYta,MAAtE,CAIAsa,EAAYta,OAAQ,EACpB,UACU+T,EAAUL,UACpB,SACI4G,EAAYta,OAAQ,CACxB,CAPA,GASJ,CAAEwa,WAAW,IAIV,KACH,IAAM/T,EAAQoM,WAAW7S,SAAS7B,EAAMF,QAAQwI,EAAQoM,WAAW7S,OAC/D,OAAO,KAGX,MAAMua,EAAgB9T,EAAQoM,WAAW7S,MAAM7B,EAAMF,YAA6BuE,EAClF,IAAK+X,EACD,OAAO,KAGX,MAAM3B,EAAWD,EAAM/I,UAAUmE,GACjC,OAAI6E,EACOxa,IAAE,MAAO,CAAA,EAAKwa,GAGlB2B,EAAchY,KAAOnE,EAAAA,EAAE,MAAO,CAAEyE,UAAW0X,EAAchY,OAAU,KAElF,ICzFSkY,EAA+Bzc,EAAAA,gBAAgB,CAIxDC,KAAM,mBAON,KAAAC,CAAMC,GACF,MAAMsI,EAAUuP,IAChB,MAAO,KACH,MAAMnT,EAAY4D,EAAQiE,KAAK1K,MAAMgL,SAAW,GAChD,OAAO5M,IAAE,MAAO,CAAEyE,cAE1B,ICjBS6X,EAAgB1c,EAAAA,gBAAgB,CAIzCC,KAAM,qBAKNE,MAAO,CACHF,KAAM,CACFiG,KAAMmB,OACNoP,UAAU,GAEdjH,WAAY,CACRtJ,KAAM/B,OACNyN,QAAS,KAAA,CAAS,IAEtB+K,IAAK,CACDzW,KAAMmB,OACNuK,QAAS,QASjB,KAAA1R,CAAMC,GACF,MAAMqI,EAAUgJ,IACVjN,EAAO0R,EAAAA,IAAI,IACX2G,EAAU3G,EAAAA,KAAI,GACdjR,EAAQiR,EAAAA,IAAkB,MAChC,IAAI+E,EAAW,EA0Bf,OAxBAE,EAAAA,MACI,IAAM,CAAC/a,EAAMF,KAAME,EAAMqP,YACzBjM,UACI,MAAMsZ,IAAoB7B,EAC1B4B,EAAQ5a,OAAQ,EAChBgD,EAAMhD,MAAQ,KACd,IACI,MAAMU,QAAe8F,EAAQ+G,cAAcpP,EAAMF,KAAME,EAAMqP,YACzDqN,IAAoB7B,IACpBzW,EAAKvC,MAAQU,EAErB,CAAE,MAAOoa,GACDD,IAAoB7B,IACpBhW,EAAMhD,MAAQ8a,aAAkBxU,MAAQwU,EAAS,IAAIxU,MAAMjB,OAAOyV,IAE1E,SACQD,IAAoB7B,IACpB4B,EAAQ5a,OAAQ,EAExB,GAEJ,CAAEwa,WAAW,EAAMO,MAAM,IAGtB,IAAM3c,EAAAA,EAAED,EAAMwc,IAAK,CACtB9X,UAAWN,EAAKvC,MAChB,qBAAsB7B,EAAMF,KAC5B,eAAgB2c,EAAQ5a,MAAQ,YAASwC,EACzC,aAAcQ,EAAMhD,OAAOmE,SAEnC,IChEE6W,EAAa,IAAIxI,IACjByI,EAAe,IAAIzI,IAQnB,SAAU0I,EACZjd,EACA2P,GAEA,MAAMpH,EAAUgJ,IACVxP,EAAQiU,EAAAA,IAAI,IACZ2G,EAAU3G,EAAAA,KAAI,GACdjR,EAAQiR,EAAAA,IAAkB,MAChC,IAAI+E,EAAW,EAKfzX,eAAe4Z,IACX,MAAMN,IAAoB7B,EACpBoC,EAAaC,EAAAA,QAAQpd,GACrB+M,EAAUqQ,EAAAA,QAAQzN,IAAW,GAC7B0N,EAAW,GAAGF,MAAmBpQ,IAEvC4P,EAAQ5a,OAAQ,EAChBgD,EAAMhD,MAAQ,KACd,IACI,MAAMub,EAAcP,EAAWhJ,IAAIsJ,GACnC,IAAI5a,EAEJ,QAAoB8B,IAAhB+Y,EACA7a,EAAS6a,MACN,CACH,MAAMC,EAAgBP,EAAajJ,IAAIsJ,GACjCG,EAAgBD,GAAiBhV,EAAQ4B,OAAOgT,EAAYpQ,QAC5CxI,IAAlBgZ,GACAP,EAAa7V,IAAIkW,EAAUG,GAG/B/a,QAAe+a,EACfR,EAAa7I,OAAOkJ,GACpBN,EAAW5V,IAAIkW,EAAU5a,EAC7B,CAEIma,IAAoB7B,IACpBhZ,EAAMA,MAAQU,EAEtB,CAAE,MAAOoa,GACLG,EAAa7I,OAAOkJ,GAChBT,IAAoB7B,IACpBhW,EAAMhD,MAAQ8a,aAAkBxU,MAAQwU,EAAS,IAAIxU,MAAMjB,OAAOyV,IAE1E,SACQD,IAAoB7B,IACpB4B,EAAQ5a,OAAQ,EAExB,CACJ,CASA,OAPAkZ,EAAAA,MACI,IAAM,CAACmC,UAAQpd,GAAOod,EAAAA,QAAQzN,IAC9BuN,EACA,CAAEX,WAAW,IAIV,CACHxa,MAAO0b,EAAAA,SAAS1b,GAChB4a,QAASc,EAAAA,SAASd,GAClB5X,MAAO0Y,EAAAA,SAAS1Y,GAChBmY,UAER,CC9EO,MAAMQ,EAAgB3d,EAAAA,gBAAgB,CAIzCC,KAAM,qBAKNE,MAAO,CACHF,KAAM,CACFiG,KAAMmB,OACNoP,UAAU,GAEdzU,MAAO,CACHkE,KAAMmB,OACNuK,QAAS,IAEb+K,IAAK,CACDzW,KAAMmB,OACNuK,QAAS,QAUjB,KAAA1R,CAAMC,GAAOwa,MAAEA,IACX,MAAMrb,EAAQ4d,EAAiB,IAAM/c,EAAMF,KAAM,IAAME,EAAM6B,OAE7D,MAAO,IACC2Y,EAAM/I,QACC+I,EAAM/I,QAAQ,CACjB5P,MAAO1C,EAAM0C,MAAMA,MACnB4a,QAAStd,EAAMsd,QAAQ5a,MACvBgD,MAAO1F,EAAM0F,MAAMhD,MACnBmb,QAAS7d,EAAM6d,UAIhB/c,EAAAA,EAAED,EAAMwc,IAAK,CAChB9X,UAAWvF,EAAM0C,MAAMA,MACvB,eAAgB1C,EAAMsd,QAAQ5a,MAAQ,YAASwC,EAC/C,aAAclF,EAAM0F,MAAMhD,OAAOmE,SAG7C,6LCzBG5C,eACH2H,GAEA,MAAMgH,EAAQhH,EAAQ0S,OAASjZ,SAASkZ,cAAc3S,EAAQ0S,QAAUjZ,SAASkZ,cAAc,QAC/F,IAAK3L,EACD,MAAM,IAAI5J,MAAM,kCAAkC4C,EAAQ0S,QAAU,WAGxE,MAAMnV,EAvBV,SACI3E,EAAW,0BAEX,MAAMzC,EAAUsD,SAASgV,KAAKkE,cAAc/Z,GAC5C,IAAKzC,GAASkP,aAAahO,OACvB,MAAM,IAAI+F,MAAM,gCAEpB,OAAO9F,KAAKC,MAAMpB,EAAQkP,YAC9B,CAeoBuN,GAKV3d,EAAsE,CACxEqW,eAAgB/N,EAChBiO,iBALqBhF,QADFsF,QAAQC,QAAQ/L,EAAQ+L,QAAQxO,EAAQiE,KAAKqJ,aAOhEY,iBAAkBzL,EAAQ+L,WACtB/L,EAAQgL,MAAQ,CAAEA,MAAOhL,EAAQgL,OAAU,IAInD,OAAOhL,EAAQhL,MAAM,CACjBgS,OACAqE,MACApW,QACAwX,SACAlP,WAER,oGT8YI,OAAOJ,CACX,6EAgCI,OAAOuM,WAAS,IAAMnM,EAAQzG,OAAO0K,KACzC,wEAOI,OAAOkI,WAAS,IAAMnM,EAAQzG,OAAO4W,OACzC,6BAjBI,OAAOhE,WAAS,IAAMnM,EAAQzG,OAAO8G,KACzC,8BAuBI,OAAO8L,WAAS,IAAMnM,EAAQzG,OAAOkL,MACzC"}
@@ -0,0 +1,534 @@
1
+ import * as vue from 'vue';
2
+ import { DefineComponent, Component, Plugin, App, ComputedRef, ObjectPlugin, VNodeChild, PropType, SlotsType, MaybeRefOrGetter } from 'vue';
3
+
4
+ type ResolveResult = DefineComponent | Promise<DefineComponent> | {
5
+ default: DefineComponent;
6
+ } | Promise<{
7
+ default: DefineComponent;
8
+ }>;
9
+ type ResolveCallback = (name: string) => ResolveResult;
10
+ type ResolveTitle = (title: string) => string;
11
+ type ResolvedComponent = DefineComponent & {
12
+ layout?: any;
13
+ inheritAttrs?: boolean;
14
+ };
15
+ type Props = Record<string, unknown>;
16
+
17
+ interface CurrencyOptions {
18
+ from?: string;
19
+ to?: string;
20
+ format?: string;
21
+ site?: boolean;
22
+ }
23
+ interface OctoberComponent<ComponentProps extends Props = Props, ComponentOptions extends Props = Props> {
24
+ component: string;
25
+ alias: string;
26
+ class: string;
27
+ options: ComponentOptions;
28
+ props: ComponentProps;
29
+ methods: string[];
30
+ vars: string[];
31
+ html?: string;
32
+ }
33
+ interface OctoberComponents {
34
+ [alias: string]: OctoberComponent<Props, Props>;
35
+ }
36
+ type OctoberComponentExtras = {
37
+ get<T = any>(key: string, fallback?: T): T;
38
+ load(keys: string | string[]): Promise<void>;
39
+ loadHtml(): Promise<string>;
40
+ loaded(key: string): boolean;
41
+ exists(key: string): boolean;
42
+ request<T = Record<string, unknown>>(handler: string, options?: OctoberRequestOptions): Promise<OctoberRequestResult<T>>;
43
+ };
44
+ type OctoberComponentHandle = OctoberComponent<Props, Props> & OctoberComponentExtras;
45
+ type ComponentsFacade = {
46
+ has(alias: string): boolean;
47
+ get(alias: string): OctoberComponentHandle | null;
48
+ } & Record<string, OctoberComponentHandle>;
49
+ interface OctoberLocaleSet {
50
+ [locale: string]: Record<string, string>;
51
+ }
52
+ interface OctoberPayload {
53
+ baseUrl: string;
54
+ themeBaseUrl: string;
55
+ mediaBaseUrl: string;
56
+ relativeLinks: boolean;
57
+ pages: Record<string, {
58
+ pattern: string;
59
+ }>;
60
+ currentParams: Record<string, string>;
61
+ resizer: {
62
+ mode: 'route' | 'controller';
63
+ basePath: string;
64
+ };
65
+ linkTypes?: Record<string, any>;
66
+ fallbackLocale: string;
67
+ strings: OctoberLocaleSet;
68
+ }
69
+ interface OctoberRequestOptions {
70
+ data?: Record<string, unknown>;
71
+ only?: string[];
72
+ partials?: string[];
73
+ flash?: boolean;
74
+ preserveState?: boolean;
75
+ }
76
+ interface OctoberAjaxOperation {
77
+ op: string;
78
+ [key: string]: unknown;
79
+ }
80
+ interface OctoberRequestResult<T = Record<string, unknown>> {
81
+ ok: boolean;
82
+ status: number;
83
+ data: T;
84
+ invalid: Record<string, string[]>;
85
+ message: string | null;
86
+ severity: string;
87
+ partials: Record<string, string>;
88
+ }
89
+ interface OctoberAPI {
90
+ app(path: string): string;
91
+ theme<T = string | string[]>(path: T): T;
92
+ page(name?: string | null, params?: Record<string, any> | boolean, persistence?: boolean): string | undefined;
93
+ link(path: string): string;
94
+ media(file: string): string;
95
+ resize(input: string, width?: number | null, height?: number | null, options?: Record<string, any>): string;
96
+ currency(value: string | number, options?: CurrencyOptions): string;
97
+ trans(key: string, replacements?: Record<string, unknown>): string;
98
+ transChoice(key: string, number: number, replacements?: Record<string, unknown>): string;
99
+ placeholder(name: string, defaultValue?: string): any;
100
+ hasPlaceholder(name: string): boolean;
101
+ setPlaceholder(name: string, value: any): undefined;
102
+ request<T = Record<string, unknown>>(handler: string, options?: OctoberRequestOptions): Promise<OctoberRequestResult<T>>;
103
+ renderPartial(name: string, parameters?: Record<string, unknown>): Promise<string>;
104
+ content(name: string, parameters?: Record<string, unknown>): Promise<string>;
105
+ filter(name: 'md' | 'md_safe' | 'md_clean' | 'md_indent', content: string): Promise<string>;
106
+ htmlLimit(html: string, maxLength?: number, end?: string): string;
107
+ md(markdown: string): Promise<string>;
108
+ mdSafe(markdown: string): Promise<string>;
109
+ mdClean(markdown: string): Promise<string>;
110
+ mdIndent(markdown: string): Promise<string>;
111
+ trans_choice(key: string, number: number, replacements?: Record<string, unknown>): string;
112
+ md_safe(markdown: string): Promise<string>;
113
+ md_clean(markdown: string): Promise<string>;
114
+ md_indent(markdown: string): Promise<string>;
115
+ }
116
+
117
+ interface ThemeObject<ThemeOptions extends Props = Props> {
118
+ name: string | null;
119
+ description: string | null;
120
+ homepage: string | null;
121
+ author: string | null;
122
+ authorCode: string | null;
123
+ code: string | null;
124
+ options: ThemeOptions;
125
+ }
126
+ interface SiteObject {
127
+ name: string;
128
+ code: string;
129
+ url: string;
130
+ prefix: string;
131
+ theme: string;
132
+ locale: string;
133
+ timezone: string;
134
+ }
135
+ type FlashTypes = 'info' | 'error' | 'success' | 'warning';
136
+ interface FlashObject {
137
+ info?: string | string[];
138
+ error?: string | string[];
139
+ success?: string | string[];
140
+ warning?: string | string[];
141
+ }
142
+ interface PageObject<PageProps extends Props = Props> {
143
+ id: string | null;
144
+ url: string | null;
145
+ file: string | null;
146
+ component: string;
147
+ props: PageProps;
148
+ layout: string;
149
+ theme: string;
150
+ locale: string;
151
+ title: string;
152
+ head: {
153
+ [id: string]: string;
154
+ };
155
+ flash: FlashObject;
156
+ content: string | null;
157
+ placeholders: Record<string, unknown>;
158
+ }
159
+ interface LaikaPayload<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> {
160
+ version: string | null;
161
+ token: string | null;
162
+ site: SiteObject;
163
+ theme: ThemeObject<ThemeOptions>;
164
+ page: PageObject<PageProps>;
165
+ components: OctoberComponents;
166
+ october: OctoberPayload;
167
+ shared: SharedProps;
168
+ }
169
+ interface LaikaAppComponentProps<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> {
170
+ initialPayload: LaikaPayload<PageProps, SharedProps, ThemeOptions>;
171
+ initialComponent?: DefineComponent;
172
+ resolveComponent: ResolveCallback;
173
+ title?: ResolveTitle;
174
+ }
175
+ type LaikaAppComponent<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> = DefineComponent<LaikaAppComponentProps<PageProps, SharedProps, ThemeOptions>>;
176
+ type LaikaPlugin = Plugin;
177
+ interface LaikaRuntime<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> {
178
+ get component(): DefineComponent | undefined;
179
+ get payload(): LaikaPayload | undefined;
180
+ get layout(): any;
181
+ get key(): number | undefined;
182
+ title: ResolveTitle;
183
+ resolver: ResolveCallback;
184
+ getLayout(): any;
185
+ setLayout(next: any): void;
186
+ }
187
+ interface LaikaSetup<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> {
188
+ root: HTMLElement;
189
+ App: LaikaAppComponent<PageProps, SharedProps, ThemeOptions> | Component;
190
+ props: LaikaAppComponentProps<PageProps, SharedProps, ThemeOptions>;
191
+ payload: LaikaPayload<PageProps, SharedProps, ThemeOptions>;
192
+ plugin: LaikaPlugin;
193
+ }
194
+ interface LaikaOptions<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> {
195
+ title?: (title: string) => string;
196
+ resolve: (name: string) => ResolveResult;
197
+ setup: (options: LaikaSetup<PageProps, SharedProps, ThemeOptions>) => App;
198
+ rootId?: string;
199
+ onError?: (err: unknown) => void;
200
+ }
201
+ interface LaikaVuePlugin extends ObjectPlugin {
202
+ onRouterBefore(request: Request): void;
203
+ onRouterSuccess(request: Request, response: Response): void;
204
+ onRouterFailure(request: Request, response?: Response): void;
205
+ swap(nextPayload: LaikaPayload, preserveState?: boolean, only?: string[]): void;
206
+ patch(current: LaikaPayload, next: LaikaPayload, only: string[]): LaikaPayload;
207
+ }
208
+ type LaikaPayloadRefs<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props> = {
209
+ version: ComputedRef<LaikaPayload['version']>;
210
+ token: ComputedRef<LaikaPayload['token']>;
211
+ site: ComputedRef<LaikaPayload['site']>;
212
+ theme: ComputedRef<LaikaPayload['theme']>;
213
+ page: ComputedRef<LaikaPayload['page']>;
214
+ components: ComputedRef<LaikaPayload['components']>;
215
+ october: ComputedRef<LaikaPayload['october']>;
216
+ shared: ComputedRef<LaikaPayload['shared']>;
217
+ };
218
+
219
+ type LaikaVisitOptions = {
220
+ method?: "get" | "post" | "put" | "patch" | "delete";
221
+ data?: Record<string, any>;
222
+ replace?: boolean;
223
+ preserveState?: boolean;
224
+ only?: string[];
225
+ force?: boolean;
226
+ require?: string[];
227
+ headers?: Record<string, string>;
228
+ };
229
+ type LaikaRouter = {
230
+ raw(url: string, options?: LaikaVisitOptions): Promise<Response>;
231
+ visit(url: string, options?: LaikaVisitOptions): Promise<void>;
232
+ get(url: string, options?: Omit<LaikaVisitOptions, "method">): Promise<void>;
233
+ post(url: string, data?: Record<string, any>, options?: Omit<LaikaVisitOptions, "method" | "data">): Promise<void>;
234
+ put(url: string, data?: Record<string, any>, options?: Omit<LaikaVisitOptions, "method" | "data">): Promise<void>;
235
+ patch(url: string, data?: Record<string, any>, options?: Omit<LaikaVisitOptions, "method" | "data">): Promise<void>;
236
+ delete(url: string, data?: Record<string, any>, options?: Omit<LaikaVisitOptions, "method" | "data">): Promise<void>;
237
+ };
238
+ interface LaikaRouterHooks {
239
+ onBefore(request: Request): void;
240
+ onSuccess(request: Request, response: Response): void;
241
+ onFailure(error: unknown, request: Request, response?: Response): void;
242
+ }
243
+
244
+ declare module 'vue' {
245
+ interface ComponentCustomProperties {
246
+ $laika: LaikaRuntime;
247
+ $router: LaikaRouter;
248
+ $payload: LaikaPayload | undefined;
249
+ $site: LaikaPayload['site'] | undefined;
250
+ $theme: LaikaPayload['theme'] | undefined;
251
+ $page: LaikaPayload['page'] | undefined;
252
+ $components: Record<string, OctoberComponentHandle> | undefined;
253
+ $october: OctoberAPI;
254
+ $shared: LaikaPayload['shared'] | undefined;
255
+ }
256
+ }
257
+ declare module "@vue/runtime-core" {
258
+ interface ComponentCustomProperties {
259
+ $laika: LaikaRuntime;
260
+ $router: LaikaRouter;
261
+ $payload: LaikaPayload | undefined;
262
+ $site: LaikaPayload['site'] | undefined;
263
+ $theme: LaikaPayload['theme'] | undefined;
264
+ $page: LaikaPayload['page'] | undefined;
265
+ $components: Record<string, OctoberComponentHandle> | undefined;
266
+ $october: OctoberAPI;
267
+ $shared: LaikaPayload['shared'] | undefined;
268
+ }
269
+ }
270
+
271
+ interface FlashProps {
272
+ /**
273
+ * Restrict to this specific flash type.
274
+ */
275
+ type?: FlashTypes;
276
+ }
277
+ interface FlashSlots {
278
+ /**
279
+ *
280
+ * @param props
281
+ */
282
+ default(props: {
283
+ type: FlashTypes;
284
+ message: string;
285
+ }): VNodeChild;
286
+ }
287
+ declare const Flash: DefineComponent<FlashProps, {}, {}, {}, {}, {}, {}, {}, string, any, any, FlashSlots>;
288
+
289
+ interface HeadProps {
290
+ /**
291
+ * Usable to force a soft head-reset, instead of using :key.
292
+ */
293
+ watchKey?: string | number;
294
+ }
295
+ interface HeadSlots {
296
+ /**
297
+ * The desired content to teleport between <head>.
298
+ * @returns
299
+ */
300
+ default?: () => VNodeChild;
301
+ }
302
+ declare const Head: DefineComponent<HeadProps, {}, {}, {}, {}, {}, {}, {}, string, any, any, HeadSlots>;
303
+
304
+ type LinkTarget = "_self" | "_blank" | "_parent" | "_top" | (string & {});
305
+ declare const Link: vue.DefineComponent<vue.ExtractPropTypes<{
306
+ page: {
307
+ type: PropType<string>;
308
+ required: false;
309
+ };
310
+ params: {
311
+ type: PropType<object>;
312
+ default: {};
313
+ required: false;
314
+ };
315
+ persistence: {
316
+ type: PropType<boolean>;
317
+ default: boolean;
318
+ required: false;
319
+ };
320
+ link: {
321
+ type: PropType<string>;
322
+ required: false;
323
+ };
324
+ target: {
325
+ type: PropType<LinkTarget>;
326
+ required: false;
327
+ };
328
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
329
+ [key: string]: any;
330
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
331
+ page: {
332
+ type: PropType<string>;
333
+ required: false;
334
+ };
335
+ params: {
336
+ type: PropType<object>;
337
+ default: {};
338
+ required: false;
339
+ };
340
+ persistence: {
341
+ type: PropType<boolean>;
342
+ default: boolean;
343
+ required: false;
344
+ };
345
+ link: {
346
+ type: PropType<string>;
347
+ required: false;
348
+ };
349
+ target: {
350
+ type: PropType<LinkTarget>;
351
+ required: false;
352
+ };
353
+ }>> & Readonly<{}>, {
354
+ params: object;
355
+ persistence: boolean;
356
+ }, SlotsType<{
357
+ default: (props: any, attrs: any) => VNodeChild;
358
+ }>, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
359
+
360
+ interface PageComponentProps {
361
+ /**
362
+ * The registered component name or alias.
363
+ */
364
+ name: string;
365
+ }
366
+ interface PageComponentSlots {
367
+ /**
368
+ *
369
+ * @param props
370
+ */
371
+ default(props: OctoberComponent): VNodeChild;
372
+ }
373
+ declare const PageComponent: DefineComponent<PageComponentProps, {}, {}, {}, {}, {}, {}, {}, string, any, any, PageComponentSlots>;
374
+
375
+ declare const PageContent: DefineComponent;
376
+
377
+ declare const ServerPartial: vue.DefineComponent<vue.ExtractPropTypes<{
378
+ name: {
379
+ type: StringConstructor;
380
+ required: true;
381
+ };
382
+ parameters: {
383
+ type: PropType<Record<string, unknown>>;
384
+ default: () => {};
385
+ };
386
+ tag: {
387
+ type: StringConstructor;
388
+ default: string;
389
+ };
390
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
391
+ [key: string]: any;
392
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
393
+ name: {
394
+ type: StringConstructor;
395
+ required: true;
396
+ };
397
+ parameters: {
398
+ type: PropType<Record<string, unknown>>;
399
+ default: () => {};
400
+ };
401
+ tag: {
402
+ type: StringConstructor;
403
+ default: string;
404
+ };
405
+ }>> & Readonly<{}>, {
406
+ parameters: Record<string, unknown>;
407
+ tag: string;
408
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
409
+
410
+ type OctoberFilterName = "md" | "md_safe" | "md_clean" | "md_indent";
411
+ /**
412
+ *
413
+ * @param name
414
+ * @param source
415
+ * @returns
416
+ */
417
+ declare function useOctoberFilter(name: MaybeRefOrGetter<OctoberFilterName>, source: MaybeRefOrGetter<string>): {
418
+ value: Readonly<vue.Ref<string, string>>;
419
+ pending: Readonly<vue.Ref<boolean, boolean>>;
420
+ error: Readonly<vue.Ref<Error | null, Error | null>>;
421
+ refresh: () => Promise<void>;
422
+ };
423
+
424
+ declare const OctoberFilter: vue.DefineComponent<vue.ExtractPropTypes<{
425
+ name: {
426
+ type: PropType<OctoberFilterName>;
427
+ required: true;
428
+ };
429
+ value: {
430
+ type: StringConstructor;
431
+ default: string;
432
+ };
433
+ tag: {
434
+ type: StringConstructor;
435
+ default: string;
436
+ };
437
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
438
+ [key: string]: any;
439
+ }> | vue.VNode<vue.RendererNode, vue.RendererElement, {
440
+ [key: string]: any;
441
+ }>[], {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
442
+ name: {
443
+ type: PropType<OctoberFilterName>;
444
+ required: true;
445
+ };
446
+ value: {
447
+ type: StringConstructor;
448
+ default: string;
449
+ };
450
+ tag: {
451
+ type: StringConstructor;
452
+ default: string;
453
+ };
454
+ }>> & Readonly<{}>, {
455
+ value: string;
456
+ tag: string;
457
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
458
+
459
+ declare const ProgressBar: DefineComponent;
460
+
461
+ declare function useComponent(alias: string): OctoberComponentHandle;
462
+
463
+ /**
464
+ * Provide Composable Support
465
+ * @returns
466
+ */
467
+ declare function useOctober(): any;
468
+
469
+ /**
470
+ * Provide Composable Support
471
+ * @returns
472
+ */
473
+ declare function useRouter(): LaikaRouter;
474
+
475
+ /**
476
+ * Progressbar Singleton
477
+ * @returns
478
+ */
479
+ declare function getProgressBar(): {
480
+ state: {
481
+ color: string;
482
+ active: boolean;
483
+ percent: number;
484
+ timestamp: number;
485
+ };
486
+ start: () => void;
487
+ done: (force?: boolean) => void;
488
+ fail: () => void;
489
+ };
490
+
491
+ /**
492
+ * Laika Vue Plugin
493
+ */
494
+ declare const plugin: LaikaVuePlugin;
495
+ /**
496
+ * Provide Composable Support
497
+ * @returns
498
+ */
499
+ declare function useLaika<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props>(): LaikaRuntime<PageProps, SharedProps, ThemeOptions>;
500
+ /**
501
+ * Provide Composable Support
502
+ * @returns
503
+ */
504
+ declare function usePayload<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props>(): LaikaPayloadRefs<PageProps, SharedProps, ThemeOptions>;
505
+ /**
506
+ * Provide Composable Support
507
+ * @returns
508
+ */
509
+ declare function useSite(): ComputedRef<LaikaPayload<Props, Props, Props>["site"] | undefined>;
510
+ /**
511
+ * Provide Composable Support
512
+ * @returns
513
+ */
514
+ declare function usePage<PageProps extends Props = Props>(): ComputedRef<LaikaPayload<PageProps, Props, Props>["page"] | undefined>;
515
+ /**
516
+ * Provide Composable Support
517
+ * @returns
518
+ */
519
+ declare function useShared<SharedProps extends Props = Props>(): ComputedRef<LaikaPayload<Props, SharedProps, Props>["shared"] | undefined>;
520
+ /**
521
+ * Provide Composable Support
522
+ * @returns
523
+ */
524
+ declare function useTheme<ThemeOptions extends Props = Props>(): ComputedRef<LaikaPayload<Props, Props, ThemeOptions>["theme"] | undefined>;
525
+
526
+ /**
527
+ * Create Laika Application
528
+ * @param options
529
+ * @returns
530
+ */
531
+ declare function createLaikaApp<PageProps extends Props = Props, SharedProps extends Props = Props, ThemeOptions extends Props = Props>(options: LaikaOptions<PageProps, SharedProps, ThemeOptions>): Promise<vue.App<any>>;
532
+
533
+ export { Flash, Head, Link, OctoberFilter, PageComponent, PageContent, ProgressBar, ServerPartial, createLaikaApp, getProgressBar, plugin as laikaPlugin, useComponent, useLaika, useOctober, useOctoberFilter, usePage, usePayload, useRouter, useShared, useSite, useTheme };
534
+ export type { ComponentsFacade, CurrencyOptions, FlashObject, FlashTypes, LaikaAppComponent, LaikaAppComponentProps, LaikaOptions, LaikaPayload, LaikaPayloadRefs, LaikaPlugin, LaikaRouter, LaikaRouterHooks, LaikaRuntime, LaikaSetup, LaikaVisitOptions, LaikaVuePlugin, OctoberAPI, OctoberAjaxOperation, OctoberComponent, OctoberComponentExtras, OctoberComponentHandle, OctoberComponents, OctoberFilterName, OctoberLocaleSet, OctoberPayload, OctoberRequestOptions, OctoberRequestResult, PageObject, Props, ResolveCallback, ResolveResult, ResolveTitle, ResolvedComponent, SiteObject, ThemeObject };
package/dist/laika.js ADDED
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Laika={},e.Vue)}(this,function(e,t){"use strict";const n=t.reactive({color:"#DE3163",active:!1,percent:0,timestamp:0});let r=null;function a(){function e(e=!1){r&&(window.clearInterval(r),r=null),(n.active||e)&&(n.percent=100,window.setTimeout(()=>{n.active=!1,n.percent=0},150))}return{state:n,start:function(){n.active=!0,n.percent=10,n.timestamp=Date.now(),r&&window.clearInterval(r),r=window.setInterval(()=>{n.active&&n.percent<90&&(n.percent+=Math.max(1,Math.round(.08*(90-n.percent))))},200)},done:e,fail:function(){e(!0)}}}const o=t.defineComponent({name:"LaikaProgressBar",setup(e){const n=a();return()=>n.state.active?t.h("div",{class:"laika-progress-bar",style:{top:0,left:0,width:`${n.state.percent}%`,height:"0.2rem",position:"fixed",backgroundColor:`var(--laika-progress-bar, ${n.state.color})`,transition:"width 120ms linear",zIndex:99999}}):void 0}}),i=Symbol("laika:october"),s=Symbol("laika:router");let l=null,u=!1;function c(e,t,n){return e.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n}))}function d(e){const t={};return new FormData(e).forEach((e,n)=>{const r=n.endsWith("[]"),a=r?n.slice(0,-2):n;t[a]=a in t?Array.isArray(t[a])?[...t[a],e]:[t[a],e]:r?[e]:e}),t}function p(e){if(!e?.trim())return{};try{return JSON.parse(e)}catch{const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_.-]+))\s*:\s*(?:['"]([^'"]*)['"]|([^,}\s]+))/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3]??r[4]??"";e&&(t[e]="true"===n||"false"!==n&&n)}return t}}function f(e,t){e.toggleAttribute("data-request-loading",t),e.setAttribute("aria-busy",t?"true":"false"),(e instanceof HTMLButtonElement||e instanceof HTMLInputElement)&&(e.disabled=t)}async function m(e,t){const n=e.getAttribute("data-request")??t?.getAttribute("data-request");if(!n||!l||e.hasAttribute("data-request-loading"))return;const r=function(e){if(!e?.trim())return{};const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_./:-]+))\s*:\s*['"]([^'"]+)['"]/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3];e&&n&&(t[e]=n)}return t}(e.getAttribute("data-request-update")??t?.getAttribute("data-request-update")??null),a={...t?d(t):{},...p(t?.getAttribute("data-request-data")??null),...p(e.getAttribute("data-request-data"))};if(c(e,"ajax:before",{handler:n,data:a})){f(e,!0);try{const o=await l(n,{data:a,flash:e.hasAttribute("data-request-flash")||Boolean(t?.hasAttribute("data-request-flash")),partials:Object.keys(r),preserveState:!0});!function(e,t){for(const[n,r]of Object.entries(t)){const t=e.partials[n];if(void 0!==t)for(const e of Array.from(document.querySelectorAll(r)))e.innerHTML=t}}(o,r),c(e,o.ok?"ajax:success":"ajax:error",o)}catch(t){c(e,"ajax:error",{handler:n,error:t})}finally{f(e,!1),c(e,"ajax:complete",{handler:n})}}}function h(e){const t=e.target instanceof HTMLFormElement?e.target:null;if(!t?.matches("[data-request]"))return;e.preventDefault();m(e.submitter instanceof HTMLElement?e.submitter:t,t)}function g(e){const t=e.target instanceof Element?e.target:null,n=t?.closest("[data-request]");!n||n instanceof HTMLFormElement||(n instanceof HTMLButtonElement||n instanceof HTMLInputElement)&&n.form?.matches("[data-request]")||(e.preventDefault(),m(n,n.closest("form")??void 0))}const y=new Set(["info","error","success","warning"]);function v(e){return"string"==typeof e&&y.has(e)?e:"info"}function w(e,t,n){if("string"!=typeof n||!n.trim())return;const r=e[t],a=Array.isArray(r)?r:r?[r]:[],o=n.trim();a.includes(o)||(e[t]=[...a,o])}function b(e,t){return t?/^(https?:)?\/\//.test(t)||t.startsWith("#")||t.startsWith("mailto:")||t.startsWith("tel:")||t.startsWith("sms:")?t:`${e.replace(/\/+$/,"")}/${t.replace(/^\/+/,"")}`:e}function k(e){const t=new URLSearchParams;for(const[n,r]of Object.entries(e))null!=r&&t.set(n,String(r));const n=t.toString();return n?`?${n}`:""}function A(e,t){return e.replace(/:([A-Za-z0-9_]+\*?)/g,(e,n)=>{const r=n.endsWith("*");n=n.endsWith("*")?n.slice(0,-1):n;const a=t[n];if(delete t[n],null==a)return"";const o=encodeURIComponent(String(a));return r?o.replace(/%2F/g,"/"):o})}function L(e,n,r){const a=t.reactive({});function o(){const t=e();if(!t)throw new Error("October Functions: runtime not ready");return t}function i(){const e=o(),t=e.payload?.october;if(!t)throw new Error("October Functions: missing october payload.");return t}function s(e){return b(i().baseUrl,e)}function c(e){const t=o(),n=t.payload?.site?.locale||"",r=t.payload?.october?.fallbackLocale||"",a=t.payload?.october?.strings?.[n]||{},i=t.payload?.october?.strings?.[r]||{};return e in a?a[e]:e in i?i[e]:null}function d(e,t){if(!t)return e;for(const[n,r]of Object.entries(t)){if(null==r)continue;const t=String(n),a=String(r);e=e.replaceAll(`:${t}`,a);const o=t.charAt(0).toUpperCase()+t.slice(1);e=(e=e.replaceAll(`:${o}`,a.charAt(0).toUpperCase()+a.slice(1))).replaceAll(`:${t.toUpperCase()}`,a.toUpperCase())}return e}function p(e,t,n){let r=c(e);if(null===r)return e;return d(function(e,t){const n=e.split("|").map(e=>e.trim()).filter(Boolean);for(const e of n){const n=e.match(/^\{(\d+)\}\s*(.*)$/);if(n){if(t===Number(n[1]))return n[2];continue}const r=e.match(/^\[(\d+|\-?\*),(\d+|\-?\*)\]\s*(.*)$/);if(r){const e=r[1],n=r[2],a=r[3],o="*"===e?-1/0:Number(e),i="*"===n?1/0:Number(n);if(t>=o&&t<=i)return a;continue}}return 1===n.length?n[0]:2===n.length?1===t?n[0]:n[1]:n[n.length-1]}(r,t),{count:t,...n})}async function f(e,t={}){if(!/^(?:\w+::)?on[A-Z][\w+]*$/.test(e))throw new Error(`October AJAX handler name is invalid: ${e}`);const a=t.only??["token","page.props","page.flash","components","shared"],o={"X-AJAX-HANDLER":e,"X-AJAX-FLASH":!1===t.flash?"0":"1"};t.partials?.length&&(o["X-AJAX-PARTIALS"]=t.partials.join("&"));const i=await n.raw(window.location.pathname+window.location.search,{method:"post",data:t.data??{},headers:o,only:a,preserveState:t.preserveState??!0}),s=await i.json(),l=s.__ajax??{},u=s.__laika;if(delete s.__ajax,delete s.__laika,u&&!1!==t.flash){const e=function(e){const t={};for(const n of e.ops??[])"flash"===n.op&&w(t,v(n.level??n.severity),n.text??n.message);const n=Object.values(e.invalid??{}).flatMap(e=>Array.isArray(e)?e:[e]);for(const e of n)w(t,"error",e);return 0===Object.keys(t).length&&"string"==typeof e.message&&w(t,v(e.severity),e.message),t}(l);Object.keys(e).length>0&&u.page&&(u.page.flash={...u.page.flash??{},...e})}u&&await r(u,a);const c={};for(const e of l.ops??[])"partial"===e.op&&"string"==typeof e.name?c[e.name]=String(e.html??""):"dispatch"===e.op&&"string"==typeof e.event?window.dispatchEvent(new CustomEvent(e.event,{detail:e.detail})):"redirect"===e.op&&e.url?window.location.assign(String(e.url)):"reload"===e.op&&window.location.reload();if(!i.ok&&!("ok"in l))throw new Error(`October AJAX request failed (${i.status}).`);return{ok:l.ok??i.ok,status:i.status,data:s,invalid:l.invalid??{},message:l.message??null,severity:l.severity??"info",partials:c}}async function m(e,t){const r=await n.raw(s("/x-laika/filter"),{method:"post",data:{filter:e,payload:t}});if(!r.ok)throw new Error(`October filter failed: ${e}. (${r.status})`);const a=await r.json();if("success"!==a.status)throw new Error(`October filter failed: ${e}. (${r.status}) - (${a.message||"An unknown error occurred."})`);return a.result.content}const y={app:s,theme:function(e){return Array.isArray(e)?e.map(e=>b(i().themeBaseUrl,e??"")):b(i().themeBaseUrl,e)},page:function(e=null,t={},n=!0){const r=i(),a=r.pages??{},l={...r.currentParams??{}};if("boolean"==typeof t&&(n=t,t={}),t&&"object"==typeof t&&!Array.isArray(t)||(t={}),!e){const e=o().payload?.page?.url??"/",n=k(t);return n?e+(e.includes("?")?`&${n.slice(1)}`:n):e}if("string"!=typeof e)return;const u=a[e=e.toLowerCase()];if(!u?.pattern)return;const c=n?{...l,...t}:{...t},d={...t},p=A(u.pattern,c);return A(u.pattern,d),s(p)+k(d)},link:function(e){if(e.startsWith("http"))return e;{const t=o();return s(`/x-laika/resolve?path=${btoa(e)}&theme=${t.payload?.page?.theme||"0"}`)}},media:function(e){const t=i(),n=("/"+String(e??"").replace(/\\/g,"/").replace(/^\/+/,"")).split("/").map(e=>encodeURIComponent(e)).join("/").replace(/%2F/g,"/");return b(t.mediaBaseUrl,n)},resize:function(e,t=null,n=null,r={}){const a=i(),o=a.resizer?.basePath??"/resize",l={src:e};null!=t&&(l.w=t),null!=n&&(l.h=n);for(const[e,t]of Object.entries(r??{}))l[`o_${e}`]=t;return s(o+k(l))},currency:function(e,t={}){const n="number"==typeof e?e:Number(String(e).replace(",","."));if(!Number.isFinite(n))return String(e);const{locale:r="de-AT",currency:a="EUR",style:o="currency",minimumFractionDigits:i,maximumFractionDigits:s}=t;return new Intl.NumberFormat(r,{style:o,currency:a,minimumFractionDigits:i,maximumFractionDigits:s}).format(n)},trans:function(e,t){let n=c(e);return null===n?e:d(n,t)},transChoice:p,placeholder:function(e,t=null){const n=o();return e in(n.payload?.page?.placeholders||{})?(n.payload?.page?.placeholders||{})[e]:e in a?a[e]:t},hasPlaceholder:function(e){const t=o();return e in(t.payload?.page?.placeholders||{})||e in a},setPlaceholder:function(e,t){a[e]=t},request:f,renderPartial:async function(e,t={}){const n=await f("onLaikaRenderPartial",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render partial: ${e}`);return n.data.html??""},content:async function(e,t={}){const n=await f("onLaikaRenderContent",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render content: ${e}`);return n.data.html??""},filter:function(e,t){return m(e,{content:t})},htmlLimit:function(e,t=100,n="..."){if(t<=0)return n;const r=document.createElement("template");r.innerHTML=e;const a=document.createElement("div");let o=t,i=!1;const s=e=>{if(i)return null;if(e.nodeType===Node.TEXT_NODE){const t=Array.from(e.textContent??"");return t.length<=o?(o-=t.length,document.createTextNode(t.join(""))):(i=!0,document.createTextNode(t.slice(0,o).join("")+n))}if(e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!1);const t=e.cloneNode(!1);for(const n of Array.from(e.childNodes)){const e=s(n);if(e&&t.appendChild(e),i)break}return t};for(const e of Array.from(r.content.childNodes)){const t=s(e);if(t&&a.appendChild(t),i)break}return a.innerHTML},md:e=>m("md",{content:e}),mdSafe:e=>m("md_safe",{content:e}),mdClean:e=>m("md_clean",{content:e}),mdIndent:e=>m("md_indent",{content:e}),trans_choice:p,md_safe:e=>m("md_safe",{content:e}),md_clean:e=>m("md_clean",{content:e}),md_indent:e=>m("md_indent",{content:e})};return l=y.request,u||"undefined"==typeof document||(u=!0,document.addEventListener("submit",h),document.addEventListener("click",g)),y}function S(){const e=t.inject(i,null);if(!e)throw new Error("useOctober(): OctoberAPI not provided");return e}function E(e){return e?.default??e}function P(e,t){return t.split(".").reduce((e,t)=>null==e?void 0:e[t],e)}function O(e,t,n){const r=t.split(".");if(!r.length)return e;const a=Array.isArray(e)?e.slice():{...e??{}},o=r[r.length-1];let i=a,s=e??{};for(let e=0;e<r.length-1;e++){const t=r[e],n=s?.[t];let a;a=Array.isArray(n)?n.slice():n&&"object"==typeof n?{...n}:{},i[t]=a,i=a,s=n}return i[o]=n,a}function j(e,t){function n(t,n={}){const r=function(){const t=e();if(!t)throw new Error("Laika Router: runtime not ready");return t}(),a=(n.method??"GET").toUpperCase(),o=n.data??void 0,i=new Headers({Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-Laika":"1",...n.headers??{}}),s=r.payload?.token;if(s){const[e,t]=s.split("|");i.set("X-CSRF-TOKEN",e),i.set("X-Laika-Token",t)}return n.force&&i.set("X-Laika-Force","1"),n.require?.length&&i.set("X-Laika-Require",n.require.join(",")),n.only?.length&&i.set("X-Laika-Only",n.only.join(",")),n.preserveState&&i.set("X-Laika-Preserve-State","1"),"GET"!==a&&i.set("Content-Type","application/json"),new Request(t,{method:a.toUpperCase(),headers:i,body:"GET"!==a?JSON.stringify(o??{}):null,credentials:"same-origin"})}async function r(e,r={}){const a=n(e,r);let o;try{await t.onBefore(a),o=await fetch(a),"GET"===a.method&&(r.replace?history.replaceState({},"",e):history.pushState({},"",e)),await t.onSuccess(a,o)}catch(e){throw await t.onFailure(e,a,o),e}}return{raw:async function(e,t={}){const r=n(e,t);try{return await fetch(r)}catch(e){throw e}},visit:r,get:(e,t)=>r(e,{...t??{},method:"GET"}),post:(e,t,n)=>r(e,{...n??{},method:"POST",data:t}),put:(e,t,n)=>r(e,{...n??{},method:"PUT",data:t}),patch:(e,t,n)=>r(e,{...n??{},method:"PATCH",data:t}),delete:(e,t,n)=>r(e,{...n??{},method:"DELETE",data:t})}}function C(){const e=t.inject(s,null);if(!e)throw new Error("useRouter(): Laika router not provided");return e}const $=t.shallowRef(),q=new Map;function T(e){const n=q.get(e);if(n)return n;const r=C(),a=S(),o=t.computed(()=>$.value?.components?.[e]??null);function i(e){const t=o.value;return!!t?.props&&Object.prototype.hasOwnProperty.call(t.props,e)}function s(e){const t=o.value;return!!t&&(!(!t.props||!(e in t.props))||(!(!Array.isArray(t.methods)||!t.methods.includes(e))||!(!Array.isArray(t.vars)||!t.vars.includes(e))))}function l(e,t){const n=o.value;return n?.props&&e in n.props?n.props[e]:t}async function u(n){const a=(Array.isArray(n)?n:[n]).filter(e=>!i(e));if(!a.length)return;const s=a.map(t=>`components.${e}.props.${t}`);return await r.get(window.location.pathname+window.location.search,{only:s,preserveState:!0,replace:!0}),await t.nextTick(),Array.isArray(n)?o.value?.props:o.value?.props[n]}async function c(){return void 0!==o.value?.html?o.value.html:(await r.get(window.location.pathname+window.location.search,{only:[`components.${e}.html`],preserveState:!0,replace:!0}),await t.nextTick(),o.value?.html??"")}const d=new Proxy({},{get(t,n){if("get"===n)return l;if("load"===n)return u;if("loadHtml"===n)return c;if("loaded"===n)return i;if("exists"===n)return s;if("request"===n)return(t,n)=>a.request(`${e}::${t}`,n);const r=o.value;return r?r[n]:void 0},has(e,t){if("get"===t||"load"===t||"loadHtml"===t||"loaded"===t||"exists"===t||"request"===t)return!0;{const e=o.value;return!!e&&t in e}}});return q.set(e,d),d}const x=t.shallowRef(),F=t.shallowRef(null),R=t.ref(void 0),H={get component(){return x.value},get payload(){return $.value},get layout(){return F.value},get key(){return R.value},title:e=>e,resolver:()=>{throw new Error("not implemented")},getLayout:()=>F.value,setLayout:e=>{F.value=e}};let M,_;const N=t.defineComponent({name:"Laika",props:{initialPayload:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!0},title:{type:Function,required:!1,default:e=>e}},setup:({initialPayload:e,initialComponent:n,resolveComponent:r,title:a})=>($.value=e,R.value=void 0,x.value=n?t.markRaw(E(n)):void 0,x.value||Promise.resolve(r(e.page.component)).then(e=>{x.value=t.markRaw(E(e))}).catch(console.error),H.title=a??H.title,H.resolver=r,"page"in e&&"title"in e.page&&(document.title=(H.title??(e=>e))(e.page.title)||""),window.addEventListener("popstate",()=>window.location.reload()),()=>{if(!x.value||!$.value)return null;const e=$.value.page.props??{},n=t.h(x.value,{...e,key:R.value});let r;F.value&&(x.value.layout=F.value,F.value=null);const a=x.value.layout;if(a)if("function"==typeof a)r=a(t.h,n);else{r=(Array.isArray(a)?a:[a]).slice().reverse().reduce((n,r)=>t.h(r,{...e},()=>n),n)}else r=n;return t.h(t.Fragment,null,[t.h(o),r])})});const X={install(e){const t=this,n=()=>H,r=function(){const{components:e}=U();return new Proxy({},{get:(t,n)=>"has"===n?t=>!!e.value&&t in e.value:"get"===n?t=>e.value&&t in e.value?T(t):null:"string"==typeof n?e.value&&n in e.value?T(n):null:void 0})}(),o=a();M=j(n,{onBefore:async e=>{o.start(),await t.onRouterBefore(e)},onSuccess:async(e,n)=>{o.done(),await t.onRouterSuccess(e,n)},onFailure:async(e,n)=>{o.fail(),await t.onRouterFailure(e,n)}}),function(e,t){t.provide(s,e)}(M,e),_=L(n,M,async(e,t)=>this.swap(e,!0,t)),function(e,t){t.provide(i,e)}(_,e),Object.defineProperty(e.config.globalProperties,"$laika",{get:()=>H}),Object.defineProperty(e.config.globalProperties,"$router",{get:()=>M}),Object.defineProperty(e.config.globalProperties,"$payload",{get:()=>H.payload}),Object.defineProperty(e.config.globalProperties,"$site",{get:()=>H.payload?.site||{}}),Object.defineProperty(e.config.globalProperties,"$theme",{get:()=>H.payload?.theme||{}}),Object.defineProperty(e.config.globalProperties,"$page",{get:()=>H.payload?.page||{}}),Object.defineProperty(e.config.globalProperties,"$components",{get:()=>r}),Object.defineProperty(e.config.globalProperties,"$october",{get:()=>_}),Object.defineProperty(e.config.globalProperties,"$shared",{get:()=>H.payload?.shared||{}})},async onRouterBefore(e){},async onRouterSuccess(e,t){if(409===t.status){const e=t.headers.get("X-Laika-Location");throw e&&window.location.assign(e),new Error("Laika redirect")}if(!t.ok)throw window.location.assign(e.url),new Error("Navigation fallback");const n=(r=e.headers.get("X-Laika-Only")??t.headers.get("X-Laika-Only"))?r.split(",").map(e=>e.trim()).filter(Boolean):[];var r;const a=await t.json(),o="1"===e.headers.get("X-Laika-Preserve-State");await this.swap(a,o,n)},async onRouterFailure(e,t){},async swap(e,n,r){if("page"in e&&e.page?.component){const n=await H.resolver(e.page.component);x.value=t.markRaw(E(n))}if(r&&r.length&&$.value?$.value=this.patch($.value,e,r):$.value=e,"page"in e&&e.page){const t=document.body.dataset.theme,n=(e.page.theme||"").trim().toLowerCase();t!==n&&""!==n&&(document.body.classList.remove(`theme-${t}`),document.body.classList.add(`theme-${n}`),document.body.dataset.theme=n);const r=document.body.dataset.layout,a=(e.page.layout||"").trim().toLowerCase();r!==a&&""!==a&&(document.body.classList.remove(`layout-${r}`),document.body.classList.add(`layout-${a}`),document.body.dataset.layout=a);const o=document.body.dataset.page,i=(e.page.id||"").trim().toLowerCase();o!==i&&""!==i&&(document.body.classList.remove(`page-${o}`),document.body.classList.add(`page-${i}`),document.body.dataset.page=i);const s={...e.page.head??{}},l=new Map,u=document.createElement("head");for(const[e,t]of Object.entries(s)){u.innerHTML=t.trim();const n=u.firstElementChild;n&&(n.setAttribute("data-laika-id",e),u.removeChild(n),l.set(e,n))}const c=new Set,d=document.head.querySelectorAll("[data-laika-id]");for(const t of e.page.head?Array.from(d):[]){const e=t.getAttribute("data-laika-id");if(!e)continue;const n=l.get(e);n?(c.add(e),t.outerHTML!==n.outerHTML&&document.head.replaceChild(n,t)):t.remove()}const p=document.head.querySelectorAll("[data-laika-id]"),f=p.length>0?p[p.length-1]?.nextElementSibling:null;for(const[t,n]of e.page.head?l:[])c.has(t)||(f?document.head.insertBefore(n,f):document.head.appendChild(n))}if("page"in e&&"title"in e.page){const e=$.value?.page?.title;e&&(document.title=(H.title??(e=>e))(e)||"Laika Unknown Title")}R.value=n?R.value:Date.now()},patch(e,t,n){let r={...e};for(const e of n){if(!e)continue;if(!e.includes(".")){e in t&&(r[e]=t[e]);continue}const n=P(t,e);void 0!==n&&(r=O(r,e,n))}return r}};function U(){return{version:t.computed(()=>$.value?.version),token:t.computed(()=>$.value?.token),site:t.computed(()=>$.value?.site),theme:t.computed(()=>$.value?.theme),page:t.computed(()=>$.value?.page),components:t.computed(()=>$.value?.components),october:t.computed(()=>$.value?.october),shared:t.computed(()=>$.value?.shared)}}const B=t.defineComponent({name:"LaikaFlash",props:{type:{type:String,required:!1}},slots:Object,setup(e,{slots:n}){const r=U();return()=>{const a=r.page.value.flash;if(null!=e.type&&!(e.type in a))return null;if(!n.default)return null;const o=[];for(const[t,r]of Object.entries(a)){if(null!=e.type&&e.type!==t)continue;const a=Array.isArray(r)?r:[r];for(const e of a)o.push(n.default({type:t,message:e}))}return o.length>0?t.h("div",{},o):null}}}),D=t.defineComponent({name:"LaikaHead",props:{watchKey:{type:[String,Number],required:!1}},slots:Object,setup(e,{slots:n}){const r=U(),a=t.ref(0),o=()=>e.watchKey??r.page.value.id??r.page.value.url??null;return t.watch(()=>o(),()=>{a.value++}),()=>{const e=n.default?.();return e?t.h(t.Teleport,{to:"head",key:`${String(o())}:${a.value}`},e):null}}});const I=t.defineComponent({name:"LaikaLink",inheritAttrs:!1,props:{page:{type:String,required:!1},params:{type:Object,default:{},required:!1},persistence:{type:Boolean,default:!0,required:!1},link:{type:String,required:!1},target:{type:String,required:!1}},slots:Object,setup(e,{slots:n,attrs:r}){const a=S(),o=C(),i=t.computed(()=>{if(e.page&&e.page.trim().length)return a.page(e.page.trim(),e.params,e.persistence);const t=(e.link??"").trim();return t?t.startsWith("http")?t:a.app(t.replace(/^\/+/,"")):"#"}),s=t.computed(()=>"_blank"===e.target||i.value.indexOf(`//${window.location.hostname}/`)<0);return()=>{const a={...r,href:i.value,target:e.target};s.value||(a.onClick=e=>{var t;e.preventDefault(),t=e,s.value||0===t.button&&(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||o.visit(i.value))});const l=n.default?n.default(a,r):void 0;return t.h("a",a,l||void 0)}}}),W=t.defineComponent({name:"LaikaPageComponent",props:{name:{type:String,required:!0}},slots:Object,setup(e,{slots:n}){const r=U(),a=T(e.name),o=t.ref(!1);return t.watch(()=>r.components.value?.[e.name],async e=>{if(e&&void 0===e.html&&!o.value){o.value=!0;try{await a.loadHtml()}finally{o.value=!1}}},{immediate:!0}),()=>{if(!r.components.value||!(e.name in r.components.value))return null;const o=r.components.value[e.name]||void 0;if(!o)return null;const i=n.default?.(a);return i?t.h("div",{},i):o.html?t.h("div",{innerHTML:o.html}):null}}}),J=t.defineComponent({name:"LaikaPageContent",setup(e){const n=U();return()=>{const e=n.page.value.content??"";return t.h("div",{innerHTML:e})}}}),z=t.defineComponent({name:"LaikaServerPartial",props:{name:{type:String,required:!0},parameters:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},setup(e){const n=S(),r=t.ref(""),a=t.ref(!1),o=t.ref(null);let i=0;return t.watch(()=>[e.name,e.parameters],async()=>{const t=++i;a.value=!0,o.value=null;try{const a=await n.renderPartial(e.name,e.parameters);t===i&&(r.value=a)}catch(e){t===i&&(o.value=e instanceof Error?e:new Error(String(e)))}finally{t===i&&(a.value=!1)}},{immediate:!0,deep:!0}),()=>t.h(e.tag,{innerHTML:r.value,"data-laika-partial":e.name,"data-loading":a.value?"true":void 0,"data-error":o.value?.message})}}),K=new Map,G=new Map;function V(e,n){const r=S(),a=t.ref(""),o=t.ref(!1),i=t.ref(null);let s=0;async function l(){const l=++s,u=t.toValue(e),c=t.toValue(n)??"",d=`${u}\0${c}`;o.value=!0,i.value=null;try{const e=K.get(d);let t;if(void 0!==e)t=e;else{const e=G.get(d),n=e??r.filter(u,c);void 0===e&&G.set(d,n),t=await n,G.delete(d),K.set(d,t)}l===s&&(a.value=t)}catch(e){G.delete(d),l===s&&(i.value=e instanceof Error?e:new Error(String(e)))}finally{l===s&&(o.value=!1)}}return t.watch(()=>[t.toValue(e),t.toValue(n)],l,{immediate:!0}),{value:t.readonly(a),pending:t.readonly(o),error:t.readonly(i),refresh:l}}const Z=t.defineComponent({name:"LaikaOctoberFilter",props:{name:{type:String,required:!0},value:{type:String,default:""},tag:{type:String,default:"div"}},setup(e,{slots:n}){const r=V(()=>e.name,()=>e.value);return()=>n.default?n.default({value:r.value.value,pending:r.pending.value,error:r.error.value,refresh:r.refresh}):t.h(e.tag,{innerHTML:r.value.value,"data-loading":r.pending.value?"true":void 0,"data-error":r.error.value?.message})}});e.Flash=B,e.Head=D,e.Link=I,e.OctoberFilter=Z,e.PageComponent=W,e.PageContent=J,e.ProgressBar=o,e.ServerPartial=z,e.createLaikaApp=async function(e){const t=e.rootId?document.querySelector(e.rootId):document.querySelector(".app");if(!t)throw new Error(`Laika: root element not found (${e.rootId??".app"})`);const n=function(e='[data-laika="payload"]'){const t=document.head.querySelector(e);if(!t?.textContent?.trim())throw new Error("Laika: payload missing/empty");return JSON.parse(t.textContent)}(),r={initialPayload:n,initialComponent:E(await Promise.resolve(e.resolve(n.page.component))),resolveComponent:e.resolve,...e.title?{title:e.title}:{}};return e.setup({root:t,App:N,props:r,plugin:X,payload:n})},e.getProgressBar=a,e.laikaPlugin=X,e.useComponent=T,e.useLaika=function(){return H},e.useOctober=S,e.useOctoberFilter=V,e.usePage=function(){return t.computed(()=>$.value?.page)},e.usePayload=U,e.useRouter=C,e.useShared=function(){return t.computed(()=>$.value?.shared)},e.useSite=function(){return t.computed(()=>$.value?.site)},e.useTheme=function(){return t.computed(()=>$.value?.theme)}});
2
+ //# sourceMappingURL=laika.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laika.js","sources":["../src/plugins/get-progress-bar.ts","../src/components/progress-bar.ts","../src/symbols.ts","../src/larajax.ts","../src/plugins/use-october.ts","../src/utils.ts","../src/plugins/use-router.ts","../src/state.ts","../src/plugins/use-component.ts","../src/app.ts","../src/components/flash.ts","../src/components/head.ts","../src/components/link.ts","../src/components/page-component.ts","../src/components/page-content.ts","../src/components/server-partial.ts","../src/plugins/use-october-filter.ts","../src/components/october-filter.ts","../src/laika.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["progress","reactive","color","active","percent","timestamp","progressTimer","getProgressBar","done","force","window","clearInterval","setTimeout","state","start","Date","now","setInterval","Math","max","round","fail","ProgressBar","defineComponent","name","setup","props","h","class","style","top","left","width","height","position","backgroundColor","transition","zIndex","LAIKA_OCTOBER_KEY","Symbol","LAIKA_ROUTER_KEY","requester","listenersInstalled","dispatch","element","detail","dispatchEvent","CustomEvent","bubbles","cancelable","collectFormData","form","data","FormData","forEach","value","rawName","isArray","endsWith","slice","Array","parseRequestData","trim","JSON","parse","result","expression","match","exec","key","raw","setLoading","loading","toggleAttribute","setAttribute","HTMLButtonElement","HTMLInputElement","disabled","async","runRequest","handler","getAttribute","hasAttribute","targets","partial","selector","parsePartialTargets","flash","Boolean","partials","Object","keys","preserveState","entries","html","undefined","target","from","document","querySelectorAll","innerHTML","updatePartialTargets","ok","error","handleSubmit","event","HTMLFormElement","matches","preventDefault","submitter","HTMLElement","handleClick","origin","Element","closest","FLASH_TYPES","Set","normalizeFlashType","severity","has","appendFlashMessage","type","message","current","messages","nextMessage","includes","joinUrl","base","path","test","startsWith","replace","encodeQuery","params","qs","URLSearchParams","k","v","set","String","str","toString","fillPattern","pattern","_","escapeSlash","val","encodedVal","encodeURIComponent","createOctober","getRuntime","router","applyPayload","placeholders","requireRuntime","runtime","Error","boot","october","payload","app","baseUrl","getLocalizationString","locale","site","fallbackLocale","localeStrings","strings","fallbackStrings","transformLocalizationString","string","replacements","rawKey","rawVal","replaceAll","uc","charAt","toUpperCase","transChoice","number","localeString","n","parts","split","map","s","filter","part","exact","Number","range","minRaw","maxRaw","text","min","Infinity","length","choosePluralForm","count","request","options","only","headers","join","response","location","pathname","search","method","json","ajax","__ajax","nextPayload","__laika","ajaxFlash","operation","ops","op","level","invalidMessages","values","invalid","flatMap","collectAjaxFlash","page","url","assign","reload","status","callFilter","content","api","theme","p","themeBaseUrl","persistence","oc","pages","currentParams","query","pageInfo","toLowerCase","routeParams","queryParams","link","btoa","media","file","encoded","mediaBaseUrl","resize","input","basePath","resizer","src","w","currency","num","isFinite","minimumFractionDigits","maximumFractionDigits","Intl","NumberFormat","format","trans","placeholder","defaultValue","hasPlaceholder","setPlaceholder","renderPartial","parameters","htmlLimit","maxLength","end","source","createElement","output","remaining","truncated","cloneNode","node","nodeType","Node","TEXT_NODE","characters","textContent","createTextNode","ELEMENT_NODE","clone","child","childNodes","childClone","appendChild","md","mdSafe","mdClean","mdIndent","trans_choice","md_safe","md_clean","md_indent","addEventListener","useOctober","inject","unwrapModule","mod","default","getByPath","obj","reduce","acc","setByPath","root","out","last","curOut","curIn","i","nextIn","nextOut","createRouter","hooks","prepare","Headers","Accept","token","csrfToken","laikaToken","require","Request","body","stringify","credentials","visit","onBefore","fetch","history","replaceState","pushState","onSuccess","err","onFailure","get","post","put","patch","delete","useRouter","shallowRef","cache","Map","useComponent","alias","existing","computed","components","loaded","cur","prototype","hasOwnProperty","call","exists","methods","vars","fallback","load","missing","nextTick","loadHtml","handle","Proxy","_t","prop","component","layout","ref","title","resolver","getLayout","setLayout","next","App","initialPayload","required","initialComponent","resolveComponent","Function","t","titleCallback","markRaw","Promise","resolve","then","catch","console","x","userComponent","childLayout","reverse","L","Fragment","plugin","install","self","this","componentsFacade","usePayload","createComponentsFacade","onRouterBefore","onRouterSuccess","onRouterFailure","provide","provideRouter","swap","provideOctober","defineProperty","config","globalProperties","shared","loc","header","currTheme","dataset","nextTheme","classList","remove","add","currLayout","nextLayout","currPage","nextPage","id","newTags","head","newNodes","temp","el","firstElementChild","removeChild","usedIds","oldTags","newEl","outerHTML","replaceChild","childs","nextElementSibling","insertBefore","version","Flash","slots","children","push","Head","watchKey","revision","getUniqueKey","watch","Teleport","to","Link","inheritAttrs","attrs","resolvedUrl","isExternal","indexOf","hostname","customProps","href","onClick","ev","button","metaKey","ctrlKey","shiftKey","altKey","PageComponent","loadingHtml","componentData","immediate","PageContent","ServerPartial","tag","pending","currentRevision","reason","deep","valueCache","requestCache","useOctoberFilter","refresh","filterName","toValue","cacheKey","cachedValue","cachedRequest","activeRequest","readonly","OctoberFilter","rootId","querySelector","readInitialPayload"],"mappings":"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"}
package/dist/laika.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import{reactive as e,defineComponent as t,h as n,inject as r,shallowRef as a,computed as o,nextTick as i,ref as s,markRaw as l,Fragment as c,watch as u,Teleport as d,toValue as p,readonly as f}from"vue";const m=e({color:"#DE3163",active:!1,percent:0,timestamp:0});let g=null;function y(){function e(e=!1){g&&(window.clearInterval(g),g=null),(m.active||e)&&(m.percent=100,window.setTimeout(()=>{m.active=!1,m.percent=0},150))}return{state:m,start:function(){m.active=!0,m.percent=10,m.timestamp=Date.now(),g&&window.clearInterval(g),g=window.setInterval(()=>{m.active&&m.percent<90&&(m.percent+=Math.max(1,Math.round(.08*(90-m.percent))))},200)},done:e,fail:function(){e(!0)}}}const h=t({name:"LaikaProgressBar",setup(e){const t=y();return()=>t.state.active?n("div",{class:"laika-progress-bar",style:{top:0,left:0,width:`${t.state.percent}%`,height:"0.2rem",position:"fixed",backgroundColor:`var(--laika-progress-bar, ${t.state.color})`,transition:"width 120ms linear",zIndex:99999}}):void 0}}),v=Symbol("laika:october"),w=Symbol("laika:router");let b=null,k=!1;function A(e,t,n){return e.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n}))}function L(e){const t={};return new FormData(e).forEach((e,n)=>{const r=n.endsWith("[]"),a=r?n.slice(0,-2):n;t[a]=a in t?Array.isArray(t[a])?[...t[a],e]:[t[a],e]:r?[e]:e}),t}function S(e){if(!e?.trim())return{};try{return JSON.parse(e)}catch{const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_.-]+))\s*:\s*(?:['"]([^'"]*)['"]|([^,}\s]+))/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3]??r[4]??"";e&&(t[e]="true"===n||"false"!==n&&n)}return t}}function E(e,t){e.toggleAttribute("data-request-loading",t),e.setAttribute("aria-busy",t?"true":"false"),(e instanceof HTMLButtonElement||e instanceof HTMLInputElement)&&(e.disabled=t)}async function $(e,t){const n=e.getAttribute("data-request")??t?.getAttribute("data-request");if(!n||!b||e.hasAttribute("data-request-loading"))return;const r=function(e){if(!e?.trim())return{};const t={},n=/(?:['"]([^'"]+)['"]|([A-Za-z0-9_./:-]+))\s*:\s*['"]([^'"]+)['"]/g;let r;for(;null!==(r=n.exec(e));){const e=r[1]??r[2],n=r[3];e&&n&&(t[e]=n)}return t}(e.getAttribute("data-request-update")??t?.getAttribute("data-request-update")??null),a={...t?L(t):{},...S(t?.getAttribute("data-request-data")??null),...S(e.getAttribute("data-request-data"))};if(A(e,"ajax:before",{handler:n,data:a})){E(e,!0);try{const o=await b(n,{data:a,flash:e.hasAttribute("data-request-flash")||Boolean(t?.hasAttribute("data-request-flash")),partials:Object.keys(r),preserveState:!0});!function(e,t){for(const[n,r]of Object.entries(t)){const t=e.partials[n];if(void 0!==t)for(const e of Array.from(document.querySelectorAll(r)))e.innerHTML=t}}(o,r),A(e,o.ok?"ajax:success":"ajax:error",o)}catch(t){A(e,"ajax:error",{handler:n,error:t})}finally{E(e,!1),A(e,"ajax:complete",{handler:n})}}}function O(e){const t=e.target instanceof HTMLFormElement?e.target:null;if(!t?.matches("[data-request]"))return;e.preventDefault();$(e.submitter instanceof HTMLElement?e.submitter:t,t)}function j(e){const t=e.target instanceof Element?e.target:null,n=t?.closest("[data-request]");!n||n instanceof HTMLFormElement||(n instanceof HTMLButtonElement||n instanceof HTMLInputElement)&&n.form?.matches("[data-request]")||(e.preventDefault(),$(n,n.closest("form")??void 0))}const P=new Set(["info","error","success","warning"]);function q(e){return"string"==typeof e&&P.has(e)?e:"info"}function T(e,t,n){if("string"!=typeof n||!n.trim())return;const r=e[t],a=Array.isArray(r)?r:r?[r]:[],o=n.trim();a.includes(o)||(e[t]=[...a,o])}function C(e,t){return t?/^(https?:)?\/\//.test(t)||t.startsWith("#")||t.startsWith("mailto:")||t.startsWith("tel:")||t.startsWith("sms:")?t:`${e.replace(/\/+$/,"")}/${t.replace(/^\/+/,"")}`:e}function x(e){const t=new URLSearchParams;for(const[n,r]of Object.entries(e))null!=r&&t.set(n,String(r));const n=t.toString();return n?`?${n}`:""}function H(e,t){return e.replace(/:([A-Za-z0-9_]+\*?)/g,(e,n)=>{const r=n.endsWith("*");n=n.endsWith("*")?n.slice(0,-1):n;const a=t[n];if(delete t[n],null==a)return"";const o=encodeURIComponent(String(a));return r?o.replace(/%2F/g,"/"):o})}function M(t,n,r){const a=e({});function o(){const e=t();if(!e)throw new Error("October Functions: runtime not ready");return e}function i(){const e=o(),t=e.payload?.october;if(!t)throw new Error("October Functions: missing october payload.");return t}function s(e){return C(i().baseUrl,e)}function l(e){const t=o(),n=t.payload?.site?.locale||"",r=t.payload?.october?.fallbackLocale||"",a=t.payload?.october?.strings?.[n]||{},i=t.payload?.october?.strings?.[r]||{};return e in a?a[e]:e in i?i[e]:null}function c(e,t){if(!t)return e;for(const[n,r]of Object.entries(t)){if(null==r)continue;const t=String(n),a=String(r);e=e.replaceAll(`:${t}`,a);const o=t.charAt(0).toUpperCase()+t.slice(1);e=(e=e.replaceAll(`:${o}`,a.charAt(0).toUpperCase()+a.slice(1))).replaceAll(`:${t.toUpperCase()}`,a.toUpperCase())}return e}function u(e,t,n){let r=l(e);if(null===r)return e;return c(function(e,t){const n=e.split("|").map(e=>e.trim()).filter(Boolean);for(const e of n){const n=e.match(/^\{(\d+)\}\s*(.*)$/);if(n){if(t===Number(n[1]))return n[2];continue}const r=e.match(/^\[(\d+|\-?\*),(\d+|\-?\*)\]\s*(.*)$/);if(r){const e=r[1],n=r[2],a=r[3],o="*"===e?-1/0:Number(e),i="*"===n?1/0:Number(n);if(t>=o&&t<=i)return a;continue}}return 1===n.length?n[0]:2===n.length?1===t?n[0]:n[1]:n[n.length-1]}(r,t),{count:t,...n})}async function d(e,t={}){if(!/^(?:\w+::)?on[A-Z][\w+]*$/.test(e))throw new Error(`October AJAX handler name is invalid: ${e}`);const a=t.only??["token","page.props","page.flash","components","shared"],o={"X-AJAX-HANDLER":e,"X-AJAX-FLASH":!1===t.flash?"0":"1"};t.partials?.length&&(o["X-AJAX-PARTIALS"]=t.partials.join("&"));const i=await n.raw(window.location.pathname+window.location.search,{method:"post",data:t.data??{},headers:o,only:a,preserveState:t.preserveState??!0}),s=await i.json(),l=s.__ajax??{},c=s.__laika;if(delete s.__ajax,delete s.__laika,c&&!1!==t.flash){const e=function(e){const t={};for(const n of e.ops??[])"flash"===n.op&&T(t,q(n.level??n.severity),n.text??n.message);const n=Object.values(e.invalid??{}).flatMap(e=>Array.isArray(e)?e:[e]);for(const e of n)T(t,"error",e);return 0===Object.keys(t).length&&"string"==typeof e.message&&T(t,q(e.severity),e.message),t}(l);Object.keys(e).length>0&&c.page&&(c.page.flash={...c.page.flash??{},...e})}c&&await r(c,a);const u={};for(const e of l.ops??[])"partial"===e.op&&"string"==typeof e.name?u[e.name]=String(e.html??""):"dispatch"===e.op&&"string"==typeof e.event?window.dispatchEvent(new CustomEvent(e.event,{detail:e.detail})):"redirect"===e.op&&e.url?window.location.assign(String(e.url)):"reload"===e.op&&window.location.reload();if(!i.ok&&!("ok"in l))throw new Error(`October AJAX request failed (${i.status}).`);return{ok:l.ok??i.ok,status:i.status,data:s,invalid:l.invalid??{},message:l.message??null,severity:l.severity??"info",partials:u}}async function p(e,t){const r=await n.raw(s("/x-laika/filter"),{method:"post",data:{filter:e,payload:t}});if(!r.ok)throw new Error(`October filter failed: ${e}. (${r.status})`);const a=await r.json();if("success"!==a.status)throw new Error(`October filter failed: ${e}. (${r.status}) - (${a.message||"An unknown error occurred."})`);return a.result.content}const f={app:s,theme:function(e){return Array.isArray(e)?e.map(e=>C(i().themeBaseUrl,e??"")):C(i().themeBaseUrl,e)},page:function(e=null,t={},n=!0){const r=i(),a=r.pages??{},l={...r.currentParams??{}};if("boolean"==typeof t&&(n=t,t={}),t&&"object"==typeof t&&!Array.isArray(t)||(t={}),!e){const e=o().payload?.page?.url??"/",n=x(t);return n?e+(e.includes("?")?`&${n.slice(1)}`:n):e}if("string"!=typeof e)return;const c=a[e=e.toLowerCase()];if(!c?.pattern)return;const u=n?{...l,...t}:{...t},d={...t},p=H(c.pattern,u);return H(c.pattern,d),s(p)+x(d)},link:function(e){if(e.startsWith("http"))return e;{const t=o();return s(`/x-laika/resolve?path=${btoa(e)}&theme=${t.payload?.page?.theme||"0"}`)}},media:function(e){const t=i(),n=("/"+String(e??"").replace(/\\/g,"/").replace(/^\/+/,"")).split("/").map(e=>encodeURIComponent(e)).join("/").replace(/%2F/g,"/");return C(t.mediaBaseUrl,n)},resize:function(e,t=null,n=null,r={}){const a=i(),o=a.resizer?.basePath??"/resize",l={src:e};null!=t&&(l.w=t),null!=n&&(l.h=n);for(const[e,t]of Object.entries(r??{}))l[`o_${e}`]=t;return s(o+x(l))},currency:function(e,t={}){const n="number"==typeof e?e:Number(String(e).replace(",","."));if(!Number.isFinite(n))return String(e);const{locale:r="de-AT",currency:a="EUR",style:o="currency",minimumFractionDigits:i,maximumFractionDigits:s}=t;return new Intl.NumberFormat(r,{style:o,currency:a,minimumFractionDigits:i,maximumFractionDigits:s}).format(n)},trans:function(e,t){let n=l(e);return null===n?e:c(n,t)},transChoice:u,placeholder:function(e,t=null){const n=o();return e in(n.payload?.page?.placeholders||{})?(n.payload?.page?.placeholders||{})[e]:e in a?a[e]:t},hasPlaceholder:function(e){const t=o();return e in(t.payload?.page?.placeholders||{})||e in a},setPlaceholder:function(e,t){a[e]=t},request:d,renderPartial:async function(e,t={}){const n=await d("onLaikaRenderPartial",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render partial: ${e}`);return n.data.html??""},content:async function(e,t={}){const n=await d("onLaikaRenderContent",{data:{name:e,parameters:t},only:["token"],preserveState:!0});if(!n.ok)throw new Error(n.message??`Unable to render content: ${e}`);return n.data.html??""},filter:function(e,t){return p(e,{content:t})},htmlLimit:function(e,t=100,n="..."){if(t<=0)return n;const r=document.createElement("template");r.innerHTML=e;const a=document.createElement("div");let o=t,i=!1;const s=e=>{if(i)return null;if(e.nodeType===Node.TEXT_NODE){const t=Array.from(e.textContent??"");return t.length<=o?(o-=t.length,document.createTextNode(t.join(""))):(i=!0,document.createTextNode(t.slice(0,o).join("")+n))}if(e.nodeType!==Node.ELEMENT_NODE)return e.cloneNode(!1);const t=e.cloneNode(!1);for(const n of Array.from(e.childNodes)){const e=s(n);if(e&&t.appendChild(e),i)break}return t};for(const e of Array.from(r.content.childNodes)){const t=s(e);if(t&&a.appendChild(t),i)break}return a.innerHTML},md:e=>p("md",{content:e}),mdSafe:e=>p("md_safe",{content:e}),mdClean:e=>p("md_clean",{content:e}),mdIndent:e=>p("md_indent",{content:e}),trans_choice:u,md_safe:e=>p("md_safe",{content:e}),md_clean:e=>p("md_clean",{content:e}),md_indent:e=>p("md_indent",{content:e})};return b=f.request,k||"undefined"==typeof document||(k=!0,document.addEventListener("submit",O),document.addEventListener("click",j)),f}function _(){const e=r(v,null);if(!e)throw new Error("useOctober(): OctoberAPI not provided");return e}function F(e){return e?.default??e}function N(e,t){return t.split(".").reduce((e,t)=>null==e?void 0:e[t],e)}function X(e,t,n){const r=t.split(".");if(!r.length)return e;const a=Array.isArray(e)?e.slice():{...e??{}},o=r[r.length-1];let i=a,s=e??{};for(let e=0;e<r.length-1;e++){const t=r[e],n=s?.[t];let a;a=Array.isArray(n)?n.slice():n&&"object"==typeof n?{...n}:{},i[t]=a,i=a,s=n}return i[o]=n,a}function R(e,t){function n(t,n={}){const r=function(){const t=e();if(!t)throw new Error("Laika Router: runtime not ready");return t}(),a=(n.method??"GET").toUpperCase(),o=n.data??void 0,i=new Headers({Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-Laika":"1",...n.headers??{}}),s=r.payload?.token;if(s){const[e,t]=s.split("|");i.set("X-CSRF-TOKEN",e),i.set("X-Laika-Token",t)}return n.force&&i.set("X-Laika-Force","1"),n.require?.length&&i.set("X-Laika-Require",n.require.join(",")),n.only?.length&&i.set("X-Laika-Only",n.only.join(",")),n.preserveState&&i.set("X-Laika-Preserve-State","1"),"GET"!==a&&i.set("Content-Type","application/json"),new Request(t,{method:a.toUpperCase(),headers:i,body:"GET"!==a?JSON.stringify(o??{}):null,credentials:"same-origin"})}async function r(e,r={}){const a=n(e,r);let o;try{await t.onBefore(a),o=await fetch(a),"GET"===a.method&&(r.replace?history.replaceState({},"",e):history.pushState({},"",e)),await t.onSuccess(a,o)}catch(e){throw await t.onFailure(e,a,o),e}}return{raw:async function(e,t={}){const r=n(e,t);try{return await fetch(r)}catch(e){throw e}},visit:r,get:(e,t)=>r(e,{...t??{},method:"GET"}),post:(e,t,n)=>r(e,{...n??{},method:"POST",data:t}),put:(e,t,n)=>r(e,{...n??{},method:"PUT",data:t}),patch:(e,t,n)=>r(e,{...n??{},method:"PATCH",data:t}),delete:(e,t,n)=>r(e,{...n??{},method:"DELETE",data:t})}}function U(){const e=r(w,null);if(!e)throw new Error("useRouter(): Laika router not provided");return e}const B=a(),D=new Map;function I(e){const t=D.get(e);if(t)return t;const n=U(),r=_(),a=o(()=>B.value?.components?.[e]??null);function s(e){const t=a.value;return!!t?.props&&Object.prototype.hasOwnProperty.call(t.props,e)}function l(e){const t=a.value;return!!t&&(!(!t.props||!(e in t.props))||(!(!Array.isArray(t.methods)||!t.methods.includes(e))||!(!Array.isArray(t.vars)||!t.vars.includes(e))))}function c(e,t){const n=a.value;return n?.props&&e in n.props?n.props[e]:t}async function u(t){const r=(Array.isArray(t)?t:[t]).filter(e=>!s(e));if(!r.length)return;const o=r.map(t=>`components.${e}.props.${t}`);return await n.get(window.location.pathname+window.location.search,{only:o,preserveState:!0,replace:!0}),await i(),Array.isArray(t)?a.value?.props:a.value?.props[t]}async function d(){return void 0!==a.value?.html?a.value.html:(await n.get(window.location.pathname+window.location.search,{only:[`components.${e}.html`],preserveState:!0,replace:!0}),await i(),a.value?.html??"")}const p=new Proxy({},{get(t,n){if("get"===n)return c;if("load"===n)return u;if("loadHtml"===n)return d;if("loaded"===n)return s;if("exists"===n)return l;if("request"===n)return(t,n)=>r.request(`${e}::${t}`,n);const o=a.value;return o?o[n]:void 0},has(e,t){if("get"===t||"load"===t||"loadHtml"===t||"loaded"===t||"exists"===t||"request"===t)return!0;{const e=a.value;return!!e&&t in e}}});return D.set(e,p),p}const W=a(),J=a(null),z=s(void 0),K={get component(){return W.value},get payload(){return B.value},get layout(){return J.value},get key(){return z.value},title:e=>e,resolver:()=>{throw new Error("not implemented")},getLayout:()=>J.value,setLayout:e=>{J.value=e}};let G,Z;const Q=t({name:"Laika",props:{initialPayload:{type:Object,required:!0},initialComponent:{type:Object,required:!1},resolveComponent:{type:Function,required:!0},title:{type:Function,required:!1,default:e=>e}},setup:({initialPayload:e,initialComponent:t,resolveComponent:r,title:a})=>(B.value=e,z.value=void 0,W.value=t?l(F(t)):void 0,W.value||Promise.resolve(r(e.page.component)).then(e=>{W.value=l(F(e))}).catch(console.error),K.title=a??K.title,K.resolver=r,"page"in e&&"title"in e.page&&(document.title=(K.title??(e=>e))(e.page.title)||""),window.addEventListener("popstate",()=>window.location.reload()),()=>{if(!W.value||!B.value)return null;const e=B.value.page.props??{},t=n(W.value,{...e,key:z.value});let r;J.value&&(W.value.layout=J.value,J.value=null);const a=W.value.layout;if(a)if("function"==typeof a)r=a(n,t);else{r=(Array.isArray(a)?a:[a]).slice().reverse().reduce((t,r)=>n(r,{...e},()=>t),t)}else r=t;return n(c,null,[n(h),r])})});const V={install(e){const t=this,n=()=>K,r=function(){const{components:e}=ee();return new Proxy({},{get:(t,n)=>"has"===n?t=>!!e.value&&t in e.value:"get"===n?t=>e.value&&t in e.value?I(t):null:"string"==typeof n?e.value&&n in e.value?I(n):null:void 0})}(),a=y();G=R(n,{onBefore:async e=>{a.start(),await t.onRouterBefore(e)},onSuccess:async(e,n)=>{a.done(),await t.onRouterSuccess(e,n)},onFailure:async(e,n)=>{a.fail(),await t.onRouterFailure(e,n)}}),function(e,t){t.provide(w,e)}(G,e),Z=M(n,G,async(e,t)=>this.swap(e,!0,t)),function(e,t){t.provide(v,e)}(Z,e),Object.defineProperty(e.config.globalProperties,"$laika",{get:()=>K}),Object.defineProperty(e.config.globalProperties,"$router",{get:()=>G}),Object.defineProperty(e.config.globalProperties,"$payload",{get:()=>K.payload}),Object.defineProperty(e.config.globalProperties,"$site",{get:()=>K.payload?.site||{}}),Object.defineProperty(e.config.globalProperties,"$theme",{get:()=>K.payload?.theme||{}}),Object.defineProperty(e.config.globalProperties,"$page",{get:()=>K.payload?.page||{}}),Object.defineProperty(e.config.globalProperties,"$components",{get:()=>r}),Object.defineProperty(e.config.globalProperties,"$october",{get:()=>Z}),Object.defineProperty(e.config.globalProperties,"$shared",{get:()=>K.payload?.shared||{}})},async onRouterBefore(e){},async onRouterSuccess(e,t){if(409===t.status){const e=t.headers.get("X-Laika-Location");throw e&&window.location.assign(e),new Error("Laika redirect")}if(!t.ok)throw window.location.assign(e.url),new Error("Navigation fallback");const n=(r=e.headers.get("X-Laika-Only")??t.headers.get("X-Laika-Only"))?r.split(",").map(e=>e.trim()).filter(Boolean):[];var r;const a=await t.json(),o="1"===e.headers.get("X-Laika-Preserve-State");await this.swap(a,o,n)},async onRouterFailure(e,t){},async swap(e,t,n){if("page"in e&&e.page?.component){const t=await K.resolver(e.page.component);W.value=l(F(t))}if(n&&n.length&&B.value?B.value=this.patch(B.value,e,n):B.value=e,"page"in e&&e.page){const t=document.body.dataset.theme,n=(e.page.theme||"").trim().toLowerCase();t!==n&&""!==n&&(document.body.classList.remove(`theme-${t}`),document.body.classList.add(`theme-${n}`),document.body.dataset.theme=n);const r=document.body.dataset.layout,a=(e.page.layout||"").trim().toLowerCase();r!==a&&""!==a&&(document.body.classList.remove(`layout-${r}`),document.body.classList.add(`layout-${a}`),document.body.dataset.layout=a);const o=document.body.dataset.page,i=(e.page.id||"").trim().toLowerCase();o!==i&&""!==i&&(document.body.classList.remove(`page-${o}`),document.body.classList.add(`page-${i}`),document.body.dataset.page=i);const s={...e.page.head??{}},l=new Map,c=document.createElement("head");for(const[e,t]of Object.entries(s)){c.innerHTML=t.trim();const n=c.firstElementChild;n&&(n.setAttribute("data-laika-id",e),c.removeChild(n),l.set(e,n))}const u=new Set,d=document.head.querySelectorAll("[data-laika-id]");for(const t of e.page.head?Array.from(d):[]){const e=t.getAttribute("data-laika-id");if(!e)continue;const n=l.get(e);n?(u.add(e),t.outerHTML!==n.outerHTML&&document.head.replaceChild(n,t)):t.remove()}const p=document.head.querySelectorAll("[data-laika-id]"),f=p.length>0?p[p.length-1]?.nextElementSibling:null;for(const[t,n]of e.page.head?l:[])u.has(t)||(f?document.head.insertBefore(n,f):document.head.appendChild(n))}if("page"in e&&"title"in e.page){const e=B.value?.page?.title;e&&(document.title=(K.title??(e=>e))(e)||"Laika Unknown Title")}z.value=t?z.value:Date.now()},patch(e,t,n){let r={...e};for(const e of n){if(!e)continue;if(!e.includes(".")){e in t&&(r[e]=t[e]);continue}const n=N(t,e);void 0!==n&&(r=X(r,e,n))}return r}};function Y(){return K}function ee(){return{version:o(()=>B.value?.version),token:o(()=>B.value?.token),site:o(()=>B.value?.site),theme:o(()=>B.value?.theme),page:o(()=>B.value?.page),components:o(()=>B.value?.components),october:o(()=>B.value?.october),shared:o(()=>B.value?.shared)}}function te(){return o(()=>B.value?.site)}function ne(){return o(()=>B.value?.page)}function re(){return o(()=>B.value?.shared)}function ae(){return o(()=>B.value?.theme)}const oe=t({name:"LaikaFlash",props:{type:{type:String,required:!1}},slots:Object,setup(e,{slots:t}){const r=ee();return()=>{const a=r.page.value.flash;if(null!=e.type&&!(e.type in a))return null;if(!t.default)return null;const o=[];for(const[n,r]of Object.entries(a)){if(null!=e.type&&e.type!==n)continue;const a=Array.isArray(r)?r:[r];for(const e of a)o.push(t.default({type:n,message:e}))}return o.length>0?n("div",{},o):null}}}),ie=t({name:"LaikaHead",props:{watchKey:{type:[String,Number],required:!1}},slots:Object,setup(e,{slots:t}){const r=ee(),a=s(0),o=()=>e.watchKey??r.page.value.id??r.page.value.url??null;return u(()=>o(),()=>{a.value++}),()=>{const e=t.default?.();return e?n(d,{to:"head",key:`${String(o())}:${a.value}`},e):null}}});const se=t({name:"LaikaLink",inheritAttrs:!1,props:{page:{type:String,required:!1},params:{type:Object,default:{},required:!1},persistence:{type:Boolean,default:!0,required:!1},link:{type:String,required:!1},target:{type:String,required:!1}},slots:Object,setup(e,{slots:t,attrs:r}){const a=_(),i=U(),s=o(()=>{if(e.page&&e.page.trim().length)return a.page(e.page.trim(),e.params,e.persistence);const t=(e.link??"").trim();return t?t.startsWith("http")?t:a.app(t.replace(/^\/+/,"")):"#"}),l=o(()=>"_blank"===e.target||s.value.indexOf(`//${window.location.hostname}/`)<0);return()=>{const a={...r,href:s.value,target:e.target};l.value||(a.onClick=e=>{var t;e.preventDefault(),t=e,l.value||0===t.button&&(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||i.visit(s.value))});const o=t.default?t.default(a,r):void 0;return n("a",a,o||void 0)}}}),le=t({name:"LaikaPageComponent",props:{name:{type:String,required:!0}},slots:Object,setup(e,{slots:t}){const r=ee(),a=I(e.name),o=s(!1);return u(()=>r.components.value?.[e.name],async e=>{if(e&&void 0===e.html&&!o.value){o.value=!0;try{await a.loadHtml()}finally{o.value=!1}}},{immediate:!0}),()=>{if(!r.components.value||!(e.name in r.components.value))return null;const o=r.components.value[e.name]||void 0;if(!o)return null;const i=t.default?.(a);return i?n("div",{},i):o.html?n("div",{innerHTML:o.html}):null}}}),ce=t({name:"LaikaPageContent",setup(e){const t=ee();return()=>{const e=t.page.value.content??"";return n("div",{innerHTML:e})}}}),ue=t({name:"LaikaServerPartial",props:{name:{type:String,required:!0},parameters:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},setup(e){const t=_(),r=s(""),a=s(!1),o=s(null);let i=0;return u(()=>[e.name,e.parameters],async()=>{const n=++i;a.value=!0,o.value=null;try{const a=await t.renderPartial(e.name,e.parameters);n===i&&(r.value=a)}catch(e){n===i&&(o.value=e instanceof Error?e:new Error(String(e)))}finally{n===i&&(a.value=!1)}},{immediate:!0,deep:!0}),()=>n(e.tag,{innerHTML:r.value,"data-laika-partial":e.name,"data-loading":a.value?"true":void 0,"data-error":o.value?.message})}}),de=new Map,pe=new Map;function fe(e,t){const n=_(),r=s(""),a=s(!1),o=s(null);let i=0;async function l(){const s=++i,l=p(e),c=p(t)??"",u=`${l}\0${c}`;a.value=!0,o.value=null;try{const e=de.get(u);let t;if(void 0!==e)t=e;else{const e=pe.get(u),r=e??n.filter(l,c);void 0===e&&pe.set(u,r),t=await r,pe.delete(u),de.set(u,t)}s===i&&(r.value=t)}catch(e){pe.delete(u),s===i&&(o.value=e instanceof Error?e:new Error(String(e)))}finally{s===i&&(a.value=!1)}}return u(()=>[p(e),p(t)],l,{immediate:!0}),{value:f(r),pending:f(a),error:f(o),refresh:l}}const me=t({name:"LaikaOctoberFilter",props:{name:{type:String,required:!0},value:{type:String,default:""},tag:{type:String,default:"div"}},setup(e,{slots:t}){const r=fe(()=>e.name,()=>e.value);return()=>t.default?t.default({value:r.value.value,pending:r.pending.value,error:r.error.value,refresh:r.refresh}):n(e.tag,{innerHTML:r.value.value,"data-loading":r.pending.value?"true":void 0,"data-error":r.error.value?.message})}});async function ge(e){const t=e.rootId?document.querySelector(e.rootId):document.querySelector(".app");if(!t)throw new Error(`Laika: root element not found (${e.rootId??".app"})`);const n=function(e='[data-laika="payload"]'){const t=document.head.querySelector(e);if(!t?.textContent?.trim())throw new Error("Laika: payload missing/empty");return JSON.parse(t.textContent)}(),r={initialPayload:n,initialComponent:F(await Promise.resolve(e.resolve(n.page.component))),resolveComponent:e.resolve,...e.title?{title:e.title}:{}};return e.setup({root:t,App:Q,props:r,plugin:V,payload:n})}export{oe as Flash,ie as Head,se as Link,me as OctoberFilter,le as PageComponent,ce as PageContent,h as ProgressBar,ue as ServerPartial,ge as createLaikaApp,y as getProgressBar,V as laikaPlugin,I as useComponent,Y as useLaika,_ as useOctober,fe as useOctoberFilter,ne as usePage,ee as usePayload,U as useRouter,re as useShared,te as useSite,ae as useTheme};
2
+ //# sourceMappingURL=laika.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laika.mjs","sources":["../src/plugins/get-progress-bar.ts","../src/components/progress-bar.ts","../src/symbols.ts","../src/larajax.ts","../src/plugins/use-october.ts","../src/utils.ts","../src/plugins/use-router.ts","../src/state.ts","../src/plugins/use-component.ts","../src/app.ts","../src/components/flash.ts","../src/components/head.ts","../src/components/link.ts","../src/components/page-component.ts","../src/components/page-content.ts","../src/components/server-partial.ts","../src/plugins/use-october-filter.ts","../src/components/october-filter.ts","../src/laika.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["progress","reactive","color","active","percent","timestamp","progressTimer","getProgressBar","done","force","window","clearInterval","setTimeout","state","start","Date","now","setInterval","Math","max","round","fail","ProgressBar","defineComponent","name","setup","props","h","class","style","top","left","width","height","position","backgroundColor","transition","zIndex","LAIKA_OCTOBER_KEY","Symbol","LAIKA_ROUTER_KEY","requester","listenersInstalled","dispatch","element","detail","dispatchEvent","CustomEvent","bubbles","cancelable","collectFormData","form","data","FormData","forEach","value","rawName","isArray","endsWith","slice","Array","parseRequestData","trim","JSON","parse","result","expression","match","exec","key","raw","setLoading","loading","toggleAttribute","setAttribute","HTMLButtonElement","HTMLInputElement","disabled","async","runRequest","handler","getAttribute","hasAttribute","targets","partial","selector","parsePartialTargets","flash","Boolean","partials","Object","keys","preserveState","entries","html","undefined","target","from","document","querySelectorAll","innerHTML","updatePartialTargets","ok","error","handleSubmit","event","HTMLFormElement","matches","preventDefault","submitter","HTMLElement","handleClick","origin","Element","closest","FLASH_TYPES","Set","normalizeFlashType","severity","has","appendFlashMessage","type","message","current","messages","nextMessage","includes","joinUrl","base","path","test","startsWith","replace","encodeQuery","params","qs","URLSearchParams","k","v","set","String","str","toString","fillPattern","pattern","_","escapeSlash","val","encodedVal","encodeURIComponent","createOctober","getRuntime","router","applyPayload","placeholders","requireRuntime","runtime","Error","boot","october","payload","app","baseUrl","getLocalizationString","locale","site","fallbackLocale","localeStrings","strings","fallbackStrings","transformLocalizationString","string","replacements","rawKey","rawVal","replaceAll","uc","charAt","toUpperCase","transChoice","number","localeString","n","parts","split","map","s","filter","part","exact","Number","range","minRaw","maxRaw","text","min","Infinity","length","choosePluralForm","count","request","options","only","headers","join","response","location","pathname","search","method","json","ajax","__ajax","nextPayload","__laika","ajaxFlash","operation","ops","op","level","invalidMessages","values","invalid","flatMap","collectAjaxFlash","page","url","assign","reload","status","callFilter","content","api","theme","p","themeBaseUrl","persistence","oc","pages","currentParams","query","pageInfo","toLowerCase","routeParams","queryParams","link","btoa","media","file","encoded","mediaBaseUrl","resize","input","basePath","resizer","src","w","currency","num","isFinite","minimumFractionDigits","maximumFractionDigits","Intl","NumberFormat","format","trans","placeholder","defaultValue","hasPlaceholder","setPlaceholder","renderPartial","parameters","htmlLimit","maxLength","end","source","createElement","output","remaining","truncated","cloneNode","node","nodeType","Node","TEXT_NODE","characters","textContent","createTextNode","ELEMENT_NODE","clone","child","childNodes","childClone","appendChild","md","mdSafe","mdClean","mdIndent","trans_choice","md_safe","md_clean","md_indent","addEventListener","useOctober","inject","unwrapModule","mod","default","getByPath","obj","reduce","acc","setByPath","root","out","last","curOut","curIn","i","nextIn","nextOut","createRouter","hooks","prepare","Headers","Accept","token","csrfToken","laikaToken","require","Request","body","stringify","credentials","visit","onBefore","fetch","history","replaceState","pushState","onSuccess","err","onFailure","get","post","put","patch","delete","useRouter","shallowRef","cache","Map","useComponent","alias","existing","computed","components","loaded","cur","prototype","hasOwnProperty","call","exists","methods","vars","fallback","load","missing","nextTick","loadHtml","handle","Proxy","_t","prop","component","layout","ref","title","resolver","getLayout","setLayout","next","App","initialPayload","required","initialComponent","resolveComponent","Function","t","titleCallback","markRaw","Promise","resolve","then","catch","console","x","userComponent","childLayout","reverse","L","Fragment","plugin","install","self","this","componentsFacade","usePayload","createComponentsFacade","onRouterBefore","onRouterSuccess","onRouterFailure","provide","provideRouter","swap","provideOctober","defineProperty","config","globalProperties","shared","loc","header","currTheme","dataset","nextTheme","classList","remove","add","currLayout","nextLayout","currPage","nextPage","id","newTags","head","newNodes","temp","el","firstElementChild","removeChild","usedIds","oldTags","newEl","outerHTML","replaceChild","childs","nextElementSibling","insertBefore","useLaika","version","useSite","usePage","useShared","useTheme","Flash","slots","children","push","Head","watchKey","revision","getUniqueKey","watch","Teleport","to","Link","inheritAttrs","attrs","resolvedUrl","isExternal","indexOf","hostname","customProps","href","onClick","ev","button","metaKey","ctrlKey","shiftKey","altKey","PageComponent","loadingHtml","componentData","immediate","PageContent","ServerPartial","tag","pending","currentRevision","reason","deep","valueCache","requestCache","useOctoberFilter","refresh","filterName","toValue","cacheKey","cachedValue","cachedRequest","activeRequest","readonly","OctoberFilter","createLaikaApp","rootId","querySelector","readInitialPayload"],"mappings":"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"}
package/dist/vite.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { Plugin } from 'vite';
2
+
3
+ interface LaikaViteConfig {
4
+ i18n: {
5
+ output: string;
6
+ include: RegExp;
7
+ functions: string[];
8
+ writeOnDev: boolean;
9
+ extraKeys: string[];
10
+ };
11
+ stripOctober: boolean;
12
+ }
13
+ type LaikaVitePartialConfig = Omit<Partial<LaikaViteConfig>, 'i18n'> & {
14
+ i18n?: Partial<LaikaViteConfig['i18n']>;
15
+ };
16
+ declare function laikaPlugin(userConfig?: LaikaVitePartialConfig): Plugin;
17
+
18
+ export { laikaPlugin as default };
package/dist/vite.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import t from"node:fs";import e from"node:path";import n from"node:crypto";function r(t,e){for(const n in e){const i=e[n],s=t[n];i&&"object"==typeof i&&!Array.isArray(i)?t[n]=r(s??{},i):t[n]=i}return t}function i(t){return n.createHash("md5").update(t).digest("hex")}class s{pattern;strings;files;constructor(t){this.pattern=t,this.strings=new Set,this.files=new Map}toJson(t=[]){const e=new Set(this.strings);for(const n of t)n?.trim()&&e.add(n.trim());return{version:1,keys:Array.from(e).sort()}}extractFromFile(t,e){this.unsetFromFile(t);const n=this.extract(e);for(const t of n)this.strings.add(t);this.files.set(t,n)}extract(t){const e=new Set;let n;for(this.pattern.lastIndex=0;n=this.pattern.exec(t);){const t=n[2]?.trim();t&&e.add(t)}return e}unsetFromFile(t){const e=this.files.get(t);if(e)for(const t of e)this.strings.delete(t)}scanFile(e,n){if(!t.existsSync(e))return;if(!n.test(e))return;const r=t.readFileSync(e,"utf8");this.extractFromFile(e,r)}scanFiles(n,r){const i=[n];for(;i.length;){const n=i.pop();let s;try{s=t.readdirSync(n,{withFileTypes:!0})}catch{continue}for(const t of s){const s=e.join(n,t.name);if(t.isDirectory()){if("node_modules"===t.name||"vendor"===t.name||".git"===t.name)continue;i.push(s)}else t.isFile()&&this.scanFile(s,r)}}}}function o(n={}){const o=r({i18n:{output:"resources/laika.i18n.json",functions:["trans","transChoice","trans_choice"],include:/(\.vue|\.js|\.jsx|\.ts|\.tsx)$/,writeOnDev:!0,extraKeys:[]},stripOctober:!0},n);let c;const a=o.i18n.functions.map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),l=new RegExp(String.raw`(?:^|[^\w$])(?:${a})\(\s*(['"])([^'"]+?)\1`,"g"),u=new s(l);function f(){const n=e.resolve(c.root,o.i18n.output);t.mkdirSync(e.dirname(n),{recursive:!0});const r=JSON.stringify(u.toJson(o.i18n.extraKeys),null,4)+"\n",s=i(r);(t.existsSync(n)?i(t.readFileSync(n,"utf8")):null)!==s&&t.writeFileSync(n,r,"utf8")}return{name:"laika-plugin",enforce:"pre",configResolved(t){c=t},transform(t,e){if(o.i18n.include.test(e)&&u.extractFromFile(e,t),o.stripOctober&&e.endsWith(".vue")){const e=/<(october|php)\b[^>]*>[\s\S]*?<\/\1>/gi;if(e.test(t)){return{code:t.replace(e,""),map:null}}}return null},configureServer(t){if(!o.i18n.writeOnDev)return;u.scanFiles(c.root,o.i18n.include),f();const e=t=>{o.i18n.include.test(t)&&(u.scanFile(t,o.i18n.include),f())};t.watcher.on("add",e),t.watcher.on("change",e);t.watcher.on("unlink",t=>{o.i18n.include.test(t)&&(u.unsetFromFile(t),f())})},buildEnd(){f()}}}export{o as default};
2
+ //# sourceMappingURL=vite.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.mjs","sources":["../src/vite/utils.ts","../src/vite/extractor.ts","../src/vite/plugin.ts"],"sourcesContent":[null,null,null],"names":["merge","target","source","key","sourceValue","targetValue","Array","isArray","md5","input","crypto","createHash","update","digest","Extractor","pattern","strings","files","constructor","this","Set","Map","toJson","extraKeys","keys","trim","add","version","from","sort","extractFromFile","filePath","code","unsetFromFile","extract","set","result","match","lastIndex","exec","prev","get","delete","scanFile","include","fs","existsSync","test","readFileSync","scanFiles","root","stack","length","dir","pop","entries","readdirSync","withFileTypes","entry","entryPath","path","join","name","isDirectory","push","isFile","laikaPlugin","userConfig","config","i18n","output","functions","writeOnDev","stripOctober","viteConfig","funcPattern","map","s","replace","callPattern","RegExp","String","raw","extractor","writeLocaleFile","outPath","resolve","mkdirSync","dirname","recursive","json","JSON","stringify","newHash","writeFileSync","enforce","configResolved","resolved","transform","id","endsWith","configureServer","server","onChange","file","watcher","on","buildEnd"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@rat.md/laika",
3
+ "version": "0.1.0",
4
+ "description": "LAIKA is an Inertia-inspired Vue/Vite adapter which lets you build your entire OctoberCMS theme in Vue while still using everything October provides (This package provides the related Vue / Vite libraries).",
5
+ "keywords": [
6
+ "octobercms"
7
+ ],
8
+ "homepage": "https://github.com/ratmd/laika.js",
9
+ "license": "MIT",
10
+ "author": "Sam <sam@rat.md> (https://rat.md)",
11
+ "bugs": {
12
+ "url": "https://www.github.com/ratmd/laika.js",
13
+ "email": "sam@pytes.net"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://github.com/ratmd/laika.js"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "type": "module",
23
+ "main": "./dist/laika.cjs",
24
+ "module": "./dist/laika.js",
25
+ "types": "./dist/laika.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/laika.d.ts",
29
+ "import": "./dist/laika.mjs",
30
+ "require": "./dist/laika.cjs"
31
+ },
32
+ "./vite": {
33
+ "types": "./dist/vite.d.ts",
34
+ "import": "./dist/vite.mjs"
35
+ }
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "scripts": {
41
+ "build": "rimraf dist && rollup -c",
42
+ "watch": "rollup -c -w",
43
+ "type-check": "tsc --noEmit -p tsconfig.json --composite false",
44
+ "prepare": "npm run build"
45
+ },
46
+ "devDependencies": {
47
+ "@rollup/plugin-commonjs": "^29.0.0",
48
+ "@rollup/plugin-node-resolve": "^16.0.3",
49
+ "@rollup/plugin-terser": "0.4.4",
50
+ "@rollup/plugin-typescript": "^12.3.0",
51
+ "@types/node": "^24.8.0",
52
+ "@vue/runtime-core": "^3.5.27",
53
+ "rimraf": "^6.1.2",
54
+ "rollup": "^4.53.3",
55
+ "rollup-plugin-dts": "^6.2.3",
56
+ "tslib": "^2.8.1",
57
+ "typescript": "^5.9.3",
58
+ "vite": "^7.3.1",
59
+ "vue": "^3.5.28"
60
+ }
61
+ }