@thebase/ui 1.1.6 → 1.2.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/CHANGELOG.md +80 -1
- package/README.md +9 -5
- package/bin/create-baseui-app.mjs +31 -8
- package/dist/baseui.apidoc.esm.js +68 -60
- package/dist/baseui.apidoc.min.js +68 -60
- package/dist/baseui.esm.js +44 -47
- package/dist/baseui.icons.esm.js +1 -1
- package/dist/baseui.min.css +2 -2
- package/dist/baseui.min.js +62 -46
- package/dist/baseui.pwa.esm.js +71 -9
- package/dist/baseui.registry.json +26 -33
- package/dist/baseui.templates.xml +353 -370
- package/dist/baseui.vite.esm.js +116 -0
- package/dist/runtime/lazy/apidoc.logic.js +20 -0
- package/dist/runtime/milkdown/milkdown-editor.js +1 -1
- package/dist/runtime/milkdown/milkdown-text-editor.js +1 -1
- package/dist/themes/baseui-dark.css +80 -1
- package/dist/themes/baseui-dark.min.css +1 -0
- package/dist/themes/baseui-light.css +81 -1
- package/dist/themes/baseui-light.min.css +1 -0
- package/dist/types/pwa.d.ts +1 -45
- package/dist/types/vite.d.ts +4 -0
- package/docs/analytics.md +3 -3
- package/docs/base-ui-skill.md +54 -0
- package/docs/blocks.md +1 -1
- package/docs/components/accordion.md +4 -4
- package/docs/components/apidoc.md +1 -1
- package/docs/components/block-viewer.md +1 -1
- package/docs/components/breadcrumb.md +1 -1
- package/docs/components/button.md +1 -1
- package/docs/components/chart.md +2 -0
- package/docs/components/code-editor.md +77 -0
- package/docs/components/combobox.md +10 -0
- package/docs/components/data-table.md +2 -2
- package/docs/components/date-picker.md +10 -0
- package/docs/components/dialog.md +5 -5
- package/docs/components/empty.md +1 -1
- package/docs/components/field.md +8 -0
- package/docs/components/form.md +29 -29
- package/docs/components/input.md +28 -2
- package/docs/components/kbd.md +3 -6
- package/docs/components/markdown.md +3 -1
- package/docs/components/message-scroller.md +3 -8
- package/docs/components/native-select.md +13 -0
- package/docs/components/navigation-menu.md +2 -0
- package/docs/components/pwa.md +1 -1
- package/docs/components/select.md +16 -0
- package/docs/components/shell.md +4 -2
- package/docs/components/sidebar.md +18 -16
- package/docs/components/switch.md +11 -0
- package/docs/components/text-editor.md +1 -1
- package/docs/components/textarea.md +23 -0
- package/docs/components/theme-button.md +1 -1
- package/docs/components/toast.md +10 -10
- package/docs/components/typography.md +21 -2
- package/docs/icons.md +1 -1
- package/docs/installation.md +2 -2
- package/docs/owl-components.md +1 -1
- package/docs/runtime-api.md +2 -2
- package/docs/theming.md +33 -3
- package/docs/usage-guide.md +23 -6
- package/package.json +6 -1
- package/docs/components/input-group.md +0 -68
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
/* Vendored from @odoo/owl@2.8.3's dist/owl.iife.min.js, patched to key off globalThis instead of top-level `this` (safe in both classic scripts and ES modules) — see scripts/build.mjs and src/owl/owl-dev-shim.js. */
|
|
2
2
|
!function(t){"use strict";function e(t){t=t.slice();const e=[];let n;for(;(n=t[0])&&"string"==typeof n;)e.push(t.shift());return{modifiers:e,data:t}}const n={shouldNormalizeDom:!0,mainEventHandler:(t,n,o)=>("function"==typeof t?t(n):Array.isArray(t)&&(t=e(t).data)[0](t[1],n),!1)};class o{constructor(t,e){this.key=t,this.child=e}mount(t,e){this.parentEl=t,this.child.mount(t,e)}moveBeforeDOMNode(t,e){this.child.moveBeforeDOMNode(t,e)}moveBeforeVNode(t,e){this.moveBeforeDOMNode(t&&t.firstNode()||e)}patch(t,e){if(this===t)return;let n=this.child,o=t.child;this.key===t.key?n.patch(o,e):(o.mount(this.parentEl,n.firstNode()),e&&n.beforeRemove(),n.remove(),this.child=o,this.key=t.key)}beforeRemove(){this.child.beforeRemove()}remove(){this.child.remove()}firstNode(){return this.child.firstNode()}toString(){return this.child.toString()}}function s(t,e){return new o(t,e)}class r extends Error{}let i,l,a,c;if("undefined"!=typeof Element){({setAttribute:i,removeAttribute:l}=Element.prototype);const t=DOMTokenList.prototype;a=t.add,c=t.remove}const h=Array.isArray,{split:u,trim:d}=String.prototype,f=/\s+/;function p(t,e){switch(e){case!1:case void 0:l.call(this,t);break;case!0:i.call(this,t,"");break;default:i.call(this,t,e)}}function m(t){return function(e){p.call(this,t,e)}}function g(t){if(h(t))"class"===t[0]?y.call(this,t[1]):p.call(this,t[0],t[1]);else for(let e in t)"class"===e?y.call(this,t[e]):p.call(this,e,t[e])}function b(t,e){if(h(t)){const n=t[0],o=t[1];if(n===e[0]){if(o===e[1])return;"class"===n?w.call(this,o,e[1]):p.call(this,n,o)}else l.call(this,e[0]),p.call(this,n,o)}else{for(let n in e)n in t||("class"===n?w.call(this,"",e[n]):l.call(this,n));for(let n in t){const o=t[n];o!==e[n]&&("class"===n?w.call(this,o,e[n]):p.call(this,n,o))}}}function v(t){const e={};switch(typeof t){case"string":const n=d.call(t);if(!n)return{};let o=u.call(n,f);for(let t=0,n=o.length;t<n;t++)e[o[t]]=!0;return e;case"object":for(let n in t){const o=t[n];if(o){if(n=d.call(n),!n)continue;const t=u.call(n,f);for(let n of t)e[n]=o}}return e;case"undefined":return{};case"number":return{[t]:!0};default:return{[t]:!0}}}function y(t){t=""===t?{}:v(t);const e=this.classList;for(let n in t)a.call(e,n)}function w(t,e){e=""===e?{}:v(e),t=""===t?{}:v(t);const n=this.classList;for(let o in e)o in t||c.call(n,o);for(let o in t)o in e||a.call(n,o)}function $(t){let e=!1;return async(...n)=>{e||(e=!0,await Promise.resolve(),e=!1,t(...n))}}function x(t){if(!t)return!1;if(t.ownerDocument.contains(t))return!0;const e=t.getRootNode();return e instanceof ShadowRoot&&t.ownerDocument.contains(e.host)}class N extends EventTarget{trigger(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e}))}}class k extends String{}function T(t){return t instanceof k?t:void 0===t?E(""):"number"==typeof t?E(String(t)):([["&","&"],["<","<"],[">",">"],["'","'"],['"',"""],["`","`"]].forEach((e=>{t=String(t).replace(new RegExp(e[0],"g"),e[1])})),E(t))}function E(t,...e){if(!Array.isArray(t))return new k(t);const n=t;let o="",s=0;for(;s<e.length;++s)o+=n[s]+T(e[s]);return o+=n[s],new k(o)}function A(t){const e=t.split(".")[0],o=t.includes(".capture");return t.includes(".synthetic")?function(t,e=!1){let o=`__event__synthetic_${t}`;e&&(o=`${o}_capture`);!function(t,e,o=!1){if(D[e])return;document.addEventListener(t,(t=>function(t,e){let o=e.target;for(;null!==o;){const s=o[t];if(s)for(const t of Object.values(s)){if(n.mainEventHandler(t,e,o))return}o=o.parentNode}}(e,t)),{capture:o}),D[e]=!0}(t,o,e);const s=C++;function r(t){const e=this[o]||{};e[s]=t,this[o]=e}function i(){delete this[o]}return{setup:r,update:r,remove:i}}(e,o):function(t,e=!1){let o=`__event__${t}_${_++}`;e&&(o=`${o}_capture`);function s(t){const e=t.currentTarget;if(!e||!x(e))return;const s=e[o];s&&n.mainEventHandler(s,t,e)}function r(n){this[o]=n,this.addEventListener(t,s,{capture:e})}function i(){delete this[o],this.removeEventListener(t,s,{capture:e})}function l(t){this[o]=t}return{setup:r,update:l,remove:i}}(e,o)}let _=1;let C=1;const D={};let S,O,R;if("undefined"!=typeof Node){const t=Node.prototype;S=t.insertBefore,O=(L=t,B="textContent",Object.getOwnPropertyDescriptor(L,B)).set,R=t.removeChild}var L,B;class P{constructor(t){this.children=t}mount(t,e){const n=this.children,o=n.length,s=new Array(o);for(let r=0;r<o;r++){let o=n[r];if(o)o.mount(t,e);else{const n=document.createTextNode("");s[r]=n,S.call(t,n,e)}}this.anchors=s,this.parentEl=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;const n=this.children,o=this.anchors;for(let s=0,r=n.length;s<r;s++){let r=n[s];if(r)r.moveBeforeDOMNode(t,e);else{const n=o[s];S.call(e,n,t)}}}moveBeforeVNode(t,e){if(t){const n=t.children[0];e=(n?n.firstNode():t.anchors[0])||null}const n=this.children,o=this.parentEl,s=this.anchors;for(let t=0,r=n.length;t<r;t++){let r=n[t];if(r)r.moveBeforeVNode(null,e);else{const n=s[t];S.call(o,n,e)}}}patch(t,e){if(this===t)return;const n=this.children,o=t.children,s=this.anchors,r=this.parentEl;for(let t=0,i=n.length;t<i;t++){const i=n[t],l=o[t];if(i)if(l)i.patch(l,e);else{const o=i.firstNode(),l=document.createTextNode("");s[t]=l,S.call(r,l,o),e&&i.beforeRemove(),i.remove(),n[t]=void 0}else if(l){n[t]=l;const e=s[t];l.mount(r,e),R.call(r,e)}}}beforeRemove(){const t=this.children;for(let e=0,n=t.length;e<n;e++){const n=t[e];n&&n.beforeRemove()}}remove(){const t=this.parentEl;if(this.isOnlyChild)O.call(t,"");else{const e=this.children,n=this.anchors;for(let o=0,s=e.length;o<s;o++){const s=e[o];s?s.remove():R.call(t,n[o])}}}firstNode(){const t=this.children[0];return t?t.firstNode():this.anchors[0]}toString(){return this.children.map((t=>t?t.toString():"")).join("")}}function j(t){return new P(t)}let M,I,W;if("undefined"!=typeof Node){const t=Node.prototype;M=t.insertBefore,W=t.removeChild,I=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(CharacterData.prototype,"data").set}class V{constructor(t){this.text=t}mountNode(t,e,n){this.parentEl=e,M.call(e,t,n),this.el=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,M.call(e,this.el,t)}moveBeforeVNode(t,e){M.call(this.parentEl,this.el,t?t.el:e)}beforeRemove(){}remove(){W.call(this.parentEl,this.el)}firstNode(){return this.el}toString(){return this.text}}class F extends V{mount(t,e){this.mountNode(document.createTextNode(U(this.text)),t,e)}patch(t){const e=t.text;this.text!==e&&(I.call(this.el,U(e)),this.text=e)}}class K extends V{mount(t,e){this.mountNode(document.createComment(U(this.text)),t,e)}patch(){}}function z(t){return new F(t)}function H(t){return new K(t)}function U(t){switch(typeof t){case"string":return t;case"number":return String(t);case"boolean":return t?"true":"false";default:return t||""}}const q=(t,e)=>Object.getOwnPropertyDescriptor(t,e);let G,X,Y,Z,J;"undefined"!=typeof Node&&(G=Node.prototype,X=Element.prototype,Y=q(CharacterData.prototype,"data").set,Z=q(G,"firstChild").get,J=q(G,"nextSibling").get);const Q=()=>{};function tt(t){return function(e){this[t]=0===e?0:e?e.valueOf():""}}const et={};function nt(t){if(t in et)return et[t];const e=(new DOMParser).parseFromString(`<t>${t}</t>`,"text/xml").firstChild.firstChild;n.shouldNormalizeDom&&ot(e);const o=st(e),s=lt(o),r=function(t,e){let n=function(t,e){const{refN:n,collectors:o,children:s}=e,r=o.length;e.locations.sort(((t,e)=>t.idx-e.idx));const i=e.locations.map((t=>({refIdx:t.refIdx,setData:t.setData,updateData:t.updateData}))),l=i.length,a=s.length,c=s,h=n>0,u=G.cloneNode,d=G.insertBefore,f=X.remove;class p{constructor(t){this.data=t}beforeRemove(){}remove(){f.call(this.el)}firstNode(){return this.el}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,d.call(e,this.el,t)}moveBeforeVNode(t,e){d.call(this.parentEl,this.el,t?t.el:e)}toString(){const t=document.createElement("div");return this.mount(t,null),t.innerHTML}mount(e,n){const o=u.call(t,!0);d.call(e,o,n),this.el=o,this.parentEl=e}patch(t,e){}}h&&(p.prototype.mount=function(e,s){const h=u.call(t,!0),f=new Array(n);this.refs=f,f[0]=h;for(let t=0;t<r;t++){const e=o[t];f[e.idx]=e.getVal.call(f[e.prevIdx])}if(l){const t=this.data;for(let e=0;e<l;e++){const n=i[e];n.setData.call(f[n.refIdx],t[e])}}if(d.call(e,h,s),a){const t=this.children;for(let e=0;e<a;e++){const n=t[e];if(n){const t=c[e],o=t.afterRefIdx?f[t.afterRefIdx]:null;n.isOnlyChild=t.isOnlyChild,n.mount(f[t.parentRefIdx],o)}}}this.el=h,this.parentEl=e},p.prototype.patch=function(t,e){if(this===t)return;const n=this.refs;if(l){const e=this.data,o=t.data;for(let t=0;t<l;t++){const s=e[t],r=o[t];if(s!==r){const e=i[t];e.updateData.call(n[e.refIdx],r,s)}}this.data=o}if(a){let o=this.children;const s=t.children;for(let t=0;t<a;t++){const r=o[t],i=s[t];if(r)i?r.patch(i,e):(e&&r.beforeRemove(),r.remove(),o[t]=void 0);else if(i){const e=c[t],s=e.afterRefIdx?n[e.afterRefIdx]:null;i.mount(n[e.parentRefIdx],s),o[t]=i}}}});return p}(t,e);if(e.cbRefs.length){const t=e.cbRefs,o=e.refList;let s=t.length;n=class extends n{mount(t,e){o.push(new Array(s)),super.mount(t,e);for(let t of o.pop())t()}remove(){super.remove();for(let e of t){(0,this.data[e])(null)}}}}if(e.children.length)return n=class extends n{constructor(t,e){super(t),this.children=e}},n.prototype.beforeRemove=P.prototype.beforeRemove,(t,e=[])=>new n(t,e);return t=>new n(t)}(o.el,s);return et[t]=r,r}function ot(t){if(t.nodeType!==Node.TEXT_NODE||/\S/.test(t.textContent)){if(t.nodeType!==Node.ELEMENT_NODE||"pre"!==t.tagName)for(let e=t.childNodes.length-1;e>=0;--e)ot(t.childNodes.item(e))}else t.remove()}function st(t,e=null,n=null){switch(t.nodeType){case Node.ELEMENT_NODE:{let o=n&&n.currentNS;const s=t.tagName;let r;const i=[];if(s.startsWith("block-text-")){const t=parseInt(s.slice(11),10);i.push({type:"text",idx:t}),r=document.createTextNode("")}if(s.startsWith("block-child-")){n.isRef||rt(n);const t=parseInt(s.slice(12),10);i.push({type:"child",idx:t}),r=document.createTextNode("")}if(o||(o=t.namespaceURI),r||(r=o?document.createElementNS(o,s):document.createElement(s)),r instanceof Element){if(!n){document.createElement("template").content.appendChild(r)}const e=t.attributes;for(let t=0;t<e.length;t++){const n=e[t].name,o=e[t].value;if(n.startsWith("block-handler-")){const t=parseInt(n.slice(14),10);i.push({type:"handler",idx:t,event:o})}else if(n.startsWith("block-attribute-")){const t=parseInt(n.slice(16),10);i.push({type:"attribute",idx:t,name:o,tag:s})}else if(n.startsWith("block-property-")){const t=parseInt(n.slice(15),10);i.push({type:"property",idx:t,name:o,tag:s})}else"block-attributes"===n?i.push({type:"attributes",idx:parseInt(o,10)}):"block-ref"===n?i.push({type:"ref",idx:parseInt(o,10)}):r.setAttribute(e[t].name,o)}}const l={parent:e,firstChild:null,nextSibling:null,el:r,info:i,refN:0,currentNS:o};if(t.firstChild){const e=t.childNodes[0];if(1===t.childNodes.length&&e.nodeType===Node.ELEMENT_NODE&&e.tagName.startsWith("block-child-")){const t=e.tagName,n=parseInt(t.slice(12),10);i.push({idx:n,type:"child",isOnlyChild:!0})}else{l.firstChild=st(t.firstChild,l,l),r.appendChild(l.firstChild.el);let e=t.firstChild,n=l.firstChild;for(;e=e.nextSibling;)n.nextSibling=st(e,n,l),r.appendChild(n.nextSibling.el),n=n.nextSibling}}return l.info.length&&rt(l),l}case Node.TEXT_NODE:case Node.COMMENT_NODE:return{parent:e,firstChild:null,nextSibling:null,el:t.nodeType===Node.TEXT_NODE?document.createTextNode(t.textContent):document.createComment(t.textContent),info:[],refN:0,currentNS:null}}throw new r("boom")}function rt(t){t.isRef=!0;do{t.refN++}while(t=t.parent)}function it(t){let e=t.parent;for(;e&&e.nextSibling===t;)t=e,e=e.parent;return e}function lt(t,e,n){if(!e){e={collectors:[],locations:[],children:new Array(t.info.filter((t=>"child"===t.type)).length),cbRefs:[],refN:t.refN,refList:[]},n=0}if(t.refN){const o=n,s=t.isRef,r=t.firstChild?t.firstChild.refN:0,i=t.nextSibling?t.nextSibling.refN:0;if(s){for(let e of t.info)e.refIdx=o;t.refIdx=o,function(t,e){for(let n of e.info)switch(n.type){case"text":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:at,updateData:at});break;case"child":n.isOnlyChild?t.children[n.idx]={parentRefIdx:n.refIdx,isOnlyChild:!0}:t.children[n.idx]={parentRefIdx:it(e).refIdx,afterRefIdx:n.refIdx};break;case"property":{const e=n.refIdx,o=tt(n.name);t.locations.push({idx:n.idx,refIdx:e,setData:o,updateData:o});break}case"attribute":{const e=n.refIdx;let o,s;"class"===n.name?(s=y,o=w):(s=m(n.name),o=s),t.locations.push({idx:n.idx,refIdx:e,setData:s,updateData:o});break}case"attributes":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:g,updateData:b});break;case"handler":{const{setup:e,update:o}=A(n.event);t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:e,updateData:o});break}case"ref":const o=t.cbRefs.push(n.idx)-1;t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:ct(o,t.refList),updateData:Q})}}(e,t),n++}if(i){const s=n+r;e.collectors.push({idx:s,prevIdx:o,getVal:J}),lt(t.nextSibling,e,s)}r&&(e.collectors.push({idx:n,prevIdx:o,getVal:Z}),lt(t.firstChild,e,n))}return e}function at(t){Y.call(this,U(t))}function ct(t,e){return function(n){e[e.length-1][t]=()=>n(this)}}let ht,ut,dt,ft,pt,mt;if("undefined"!=typeof Node){const t=Node.prototype;ht=t.insertBefore,ut=t.appendChild,dt=t.removeChild,ft=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(t,"textContent").set}class gt{constructor(t){this.children=t}mount(t,e){const n=this.children,o=document.createTextNode("");this.anchor=o,ht.call(t,o,e);const s=n.length;if(s){const e=n[0].mount;for(let r=0;r<s;r++)e.call(n[r],t,o)}this.parentEl=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;const n=this.children;for(let o=0,s=n.length;o<s;o++)n[o].moveBeforeDOMNode(t,e);e.insertBefore(this.anchor,t)}moveBeforeVNode(t,e){if(t){const n=t.children[0];e=(n?n.firstNode():t.anchor)||null}const n=this.children;for(let t=0,o=n.length;t<o;t++)n[t].moveBeforeVNode(null,e);this.parentEl.insertBefore(this.anchor,e)}patch(t,e){if(this===t)return;const n=this.children,o=t.children;if(0===o.length&&0===n.length)return;this.children=o;const s=o[0]||n[0],{mount:r,patch:i,remove:l,beforeRemove:a,moveBeforeVNode:c,firstNode:h}=s,u=this.anchor,d=this.isOnlyChild,f=this.parentEl;if(0===o.length&&d){if(e)for(let t=0,e=n.length;t<e;t++)a.call(n[t]);return ft.call(f,""),void ut.call(f,u)}let p,m=0,g=0,b=n[0],v=o[0],y=n.length-1,w=o.length-1,$=n[y],x=o[w];for(;m<=y&&g<=w;){if(null===b){b=n[++m];continue}if(null===$){$=n[--y];continue}let t=b.key,s=v.key;if(t===s){i.call(b,v,e),o[g]=b,b=n[++m],v=o[++g];continue}let l=$.key,a=x.key;if(l===a){i.call($,x,e),o[w]=$,$=n[--y],x=o[--w];continue}if(t===a){i.call(b,x,e),o[w]=b;const t=o[w+1];c.call(b,t,u),b=n[++m],x=o[--w];continue}if(l===s){i.call($,v,e),o[g]=$;const t=n[m];c.call($,t,u),$=n[--y],v=o[++g];continue}p=p||vt(n,m,y);let d=p[s];if(void 0===d)r.call(v,f,h.call(b)||null);else{const t=n[d];c.call(t,b,null),i.call(t,v,e),o[g]=t,n[d]=null}v=o[++g]}if(m<=y||g<=w)if(m>y){const t=o[w+1],e=t?h.call(t)||null:u;for(let t=g;t<=w;t++)r.call(o[t],f,e)}else for(let t=m;t<=y;t++){let o=n[t];o&&(e&&a.call(o),l.call(o))}}beforeRemove(){const t=this.children,e=t.length;if(e){const n=t[0].beforeRemove;for(let o=0;o<e;o++)n.call(t[o])}}remove(){const{parentEl:t,anchor:e}=this;if(this.isOnlyChild)ft.call(t,"");else{const n=this.children,o=n.length;if(o){const t=n[0].remove;for(let e=0;e<o;e++)t.call(n[e])}dt.call(t,e)}}firstNode(){const t=this.children[0];return t?t.firstNode():void 0}toString(){return this.children.map((t=>t.toString())).join("")}}function bt(t){return new gt(t)}function vt(t,e,n){let o={};for(let s=e;s<=n;s++)o[t[s].key]=s;return o}if("undefined"!=typeof Node){const t=Node.prototype;pt=t.insertBefore,mt=t.removeChild}class yt{constructor(t){this.content=[],this.html=t}mount(t,e){this.parentEl=t;const n=document.createElement("template");n.innerHTML=this.html,this.content=[...n.content.childNodes];for(let n of this.content)pt.call(t,n,e);if(!this.content.length){const n=document.createTextNode("");this.content.push(n),pt.call(t,n,e)}}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;for(let n of this.content)pt.call(e,n,t)}moveBeforeVNode(t,e){const n=t?t.content[0]:e;this.moveBeforeDOMNode(n)}patch(t){if(this===t)return;const e=t.html;if(this.html!==e){const n=this.parentEl,o=this.content[0],s=document.createElement("template");s.innerHTML=e;const r=[...s.content.childNodes];for(let t of r)pt.call(n,t,o);if(!r.length){const t=document.createTextNode("");r.push(t),pt.call(n,t,o)}this.remove(),this.content=r,this.html=t.html}}beforeRemove(){}remove(){const t=this.parentEl;for(let e of this.content)mt.call(t,e)}firstNode(){return this.content[0]}toString(){return this.html}}function wt(t){return new yt(t)}function $t(t,e,n=null){t.mount(e,n)}const xt=new WeakMap,Nt=new WeakMap;function kt(t,e){if(!t)return!1;const n=t.fiber;n&&xt.set(n,e);const o=Nt.get(t);if(o){let t=!1;for(let n=o.length-1;n>=0;n--)try{o[n](e),t=!0;break}catch(t){e=t}if(t)return!0}return kt(t.parent,e)}function Tt(t){let{error:e}=t;e instanceof r||(e=Object.assign(new r('An error occured in the owl lifecycle (see this Error\'s "cause" property)'),{cause:e}));const n="node"in t?t.node:t.fiber.node,o="fiber"in t?t.fiber:n.fiber;if(o){let t=o;do{t.node.fiber=t,xt.set(t,e),t=t.parent}while(t);xt.set(o.root,e)}if(!kt(n,e)){console.warn("[Owl] Unhandled error. Destroying the root component");try{n.app.destroy()}catch(t){console.error(t)}throw e}}function Et(){throw new r("Attempted to render cancelled fiber")}function At(t){let e=0;for(let n of t){let t=n.node;n.render=Et,0===t.status&&t.cancel(),t.fiber=null,n.bdom?t.forceNextRender=!0:e++,e+=At(n.children)}return e}class _t{constructor(t,e){if(this.bdom=null,this.children=[],this.appliedToDom=!1,this.deep=!1,this.childrenMap={},this.node=t,this.parent=e,e){this.deep=e.deep;const t=e.root;t.setCounter(t.counter+1),this.root=t,e.children.push(this)}else this.root=this}render(){let t=this.root.node,e=t.app.scheduler,n=t.parent;for(;n;){if(n.fiber){let o=n.fiber.root;if(0!==o.counter||!(t.parentKey in n.fiber.childrenMap))return void e.delayedRenders.push(this);n=o.node}t=n,n=n.parent}this._render()}_render(){const t=this.node,e=this.root;if(e){try{this.bdom=!0,this.bdom=t.renderFn()}catch(e){t.app.handleError({node:t,error:e})}e.setCounter(e.counter-1)}}}class Ct extends _t{constructor(){super(...arguments),this.counter=1,this.willPatch=[],this.patched=[],this.mounted=[],this.locked=!1}complete(){const t=this.node;let e;this.locked=!0;let n=this.mounted;try{for(e of this.willPatch){let t=e.node;if(t.fiber===e){const e=t.component;for(let n of t.willPatch)n.call(e)}}for(e=void 0,t._patch(),this.locked=!1;e=n.pop();)if(e.appliedToDom)for(let t of e.node.mounted)t();let o=this.patched;for(;e=o.pop();)if(e.appliedToDom)for(let t of e.node.patched)t()}catch(o){for(let t of n)t.node.willUnmount=[];this.locked=!1,t.app.handleError({fiber:e||this,error:o})}}setCounter(t){this.counter=t,0===t&&this.node.app.scheduler.flush()}}class Dt extends Ct{constructor(t,e,n={}){super(t,null),this.target=e,this.position=n.position||"last-child"}complete(){let t=this;try{const e=this.node;if(e.children=this.childrenMap,e.app.constructor.validateTarget(this.target),e.bdom)e.updateDom();else if(e.bdom=this.bdom,"last-child"===this.position||0===this.target.childNodes.length)$t(e.bdom,this.target);else{const t=this.target.childNodes[0];$t(e.bdom,this.target,t)}e.fiber=null,e.status=1,this.appliedToDom=!0;let n=this.mounted;for(;t=n.pop();)if(t.appliedToDom)for(let e of t.node.mounted)e()}catch(e){this.node.app.handleError({fiber:t,error:e})}}}const St=Symbol("Key changes"),Ot=()=>{throw new Error("Called NO_CALLBACK. Owl is broken, please report this to the maintainers.")},Rt=Object.prototype.toString,Lt=Object.prototype.hasOwnProperty,Bt=["Object","Array","Set","Map","WeakMap"],Pt=["Set","Map","WeakMap"];function jt(t){return Rt.call(Ft(t)).slice(8,-1)}function Mt(t){return"object"==typeof t&&Bt.includes(jt(t))}function It(t,e){return Mt(t)?Yt(t,e):t}const Wt=new WeakSet;function Vt(t){return Wt.add(t),t}function Ft(t){return Gt.has(t)?Gt.get(t):t}const Kt=new WeakMap;function zt(t,e,n){if(n===Ot)return;Kt.get(t)||Kt.set(t,new Map);const o=Kt.get(t);o.get(e)||o.set(e,new Set),o.get(e).add(n),Ut.has(n)||Ut.set(n,new Set),Ut.get(n).add(t)}function Ht(t,e){const n=Kt.get(t);if(!n)return;const o=n.get(e);if(o)for(const t of[...o])qt(t),t()}const Ut=new WeakMap;function qt(t){const e=Ut.get(t);if(e){for(const n of e){const e=Kt.get(n);if(e)for(const[n,o]of e.entries())o.delete(t),o.size||e.delete(n)}e.clear()}}const Gt=new WeakMap,Xt=new WeakMap;function Yt(t,e=Ot){if(!Mt(t))throw new r("Cannot make the given value reactive");if(Wt.has(t))return t;if(Gt.has(t))return Yt(Gt.get(t),e);Xt.has(t)||Xt.set(t,new WeakMap);const n=Xt.get(t);if(!n.has(e)){const o=jt(t),s=Pt.includes(o)?function(t,e,n){const o=oe[n](t,e);return Object.assign(Zt(e),{get:(t,n)=>Lt.call(o,n)?o[n]:(zt(t,n,e),It(t[n],e))})}(t,e,o):Zt(e),r=new Proxy(t,s);n.set(e,r),Gt.set(r,t)}return n.get(e)}function Zt(t){return{get(e,n,o){const s=Object.getOwnPropertyDescriptor(e,n);return!s||s.writable||s.configurable?(zt(e,n,t),It(Reflect.get(e,n,o),t)):Reflect.get(e,n,o)},set(t,e,n,o){const s=Lt.call(t,e),r=Reflect.get(t,e,o),i=Reflect.set(t,e,Ft(n),o);return!s&&Lt.call(t,e)&&Ht(t,St),(r!==Reflect.get(t,e,o)||"length"===e&&Array.isArray(t))&&Ht(t,e),i},deleteProperty(t,e){const n=Reflect.deleteProperty(t,e);return Ht(t,St),Ht(t,e),n},ownKeys:e=>(zt(e,St,t),Reflect.ownKeys(e)),has:(e,n)=>(zt(e,St,t),Reflect.has(e,n))}}function Jt(t,e,n){return o=>(o=Ft(o),zt(e,o,n),It(e[t](o),n))}function Qt(t,e,n){return function*(){zt(e,St,n);const o=e.keys();for(const s of e[t]()){const t=o.next().value;zt(e,t,n),yield It(s,n)}}}function te(t,e){return function(n,o){zt(t,St,e),t.forEach((function(s,r,i){zt(t,r,e),n.call(o,It(s,e),It(r,e),It(i,e))}),o)}}function ee(t,e,n){return(o,s)=>{o=Ft(o);const r=n.has(o),i=n[e](o),l=n[t](o,s);return r!==n.has(o)&&Ht(n,St),i!==n[e](o)&&Ht(n,o),l}}function ne(t){return()=>{const e=[...t.keys()];t.clear(),Ht(t,St);for(const n of e)Ht(t,n)}}const oe={Set:(t,e)=>({has:Jt("has",t,e),add:ee("add","has",t),delete:ee("delete","has",t),keys:Qt("keys",t,e),values:Qt("values",t,e),entries:Qt("entries",t,e),[Symbol.iterator]:Qt(Symbol.iterator,t,e),forEach:te(t,e),clear:ne(t),get size(){return zt(t,St,e),t.size}}),Map:(t,e)=>({has:Jt("has",t,e),get:Jt("get",t,e),set:ee("set","get",t),delete:ee("delete","has",t),keys:Qt("keys",t,e),values:Qt("values",t,e),entries:Qt("entries",t,e),[Symbol.iterator]:Qt(Symbol.iterator,t,e),forEach:te(t,e),clear:ne(t),get size(){return zt(t,St,e),t.size}}),WeakMap:(t,e)=>({has:Jt("has",t,e),get:Jt("get",t,e),set:ee("set","get",t),delete:ee("delete","has",t)})};let se=null;function re(){if(!se)throw new r("No active component (a hook function should only be called in 'setup')");return se}function ie(t,e){for(let n in e)void 0===t[n]&&(t[n]=e[n])}const le=new WeakMap;function ae(t){const e=re();let n=le.get(e);if(!n){const t={fn:$(e.render.bind(e,!1))};n=(...e)=>t.fn(...e),le.set(e,n),e.willDestroy.push(he.bind(null,t,n))}return Yt(t,n)}const ce=()=>{};function he(t,e){t.fn=ce,qt(e)}class ue{constructor(t,e,n,o,s){this.fiber=null,this.bdom=null,this.status=0,this.forceNextRender=!1,this.nextProps=null,this.children=Object.create(null),this.refs={},this.willStart=[],this.willUpdateProps=[],this.willUnmount=[],this.mounted=[],this.willPatch=[],this.patched=[],this.willDestroy=[],se=this,this.app=n,this.parent=o,this.props=e,this.parentKey=s;const r=t.defaultProps;e=Object.assign({},e),r&&ie(e,r);const i=o&&o.childEnv||n.env;this.childEnv=i;for(const t in e){const n=e[t];n&&"object"==typeof n&&Gt.has(n)&&(e[t]=ae(n))}this.component=new t(e,i,this);const l=Object.assign(Object.create(this.component),{this:this.component});this.renderFn=n.getTemplate(t.template).bind(this.component,l,this),this.component.setup(),se=null}mountComponent(t,e){const n=new Dt(this,t,e);this.app.scheduler.addFiber(n),this.initiateRender(n)}async initiateRender(t){this.fiber=t,this.mounted.length&&t.root.mounted.push(t);const e=this.component;try{await Promise.all(this.willStart.map((t=>t.call(e))))}catch(t){return void this.app.handleError({node:this,error:t})}0===this.status&&this.fiber===t&&t.render()}async render(t){if(this.status>=2)return;let e=this.fiber;if(e&&(e.root.locked||!0===e.bdom)&&(await Promise.resolve(),e=this.fiber),e){if(!e.bdom&&!xt.has(e))return void(t&&(e.deep=t));t=t||e.deep}else if(!this.bdom)return;const n=function(t){let e=t.fiber;if(e){let t=e.root;return t.locked=!0,t.setCounter(t.counter+1-At(e.children)),t.locked=!1,e.children=[],e.childrenMap={},e.bdom=null,xt.has(e)&&(xt.delete(e),xt.delete(t),e.appliedToDom=!1,e instanceof Ct&&(e.mounted=e instanceof Dt?[e]:[])),e}const n=new Ct(t,null);return t.willPatch.length&&n.willPatch.push(n),t.patched.length&&n.patched.push(n),n}(this);n.deep=t,this.fiber=n,this.app.scheduler.addFiber(n),await Promise.resolve(),this.status>=2||this.fiber!==n||!e&&n.parent||n.render()}cancel(){this._cancel(),delete this.parent.children[this.parentKey],this.app.scheduler.scheduleDestroy(this)}_cancel(){this.status=2;const t=this.children;for(let e in t)t[e]._cancel()}destroy(){let t=1===this.status;this._destroy(),t&&this.bdom.remove()}_destroy(){const t=this.component;if(1===this.status)for(let e of this.willUnmount)e.call(t);for(let t of Object.values(this.children))t._destroy();if(this.willDestroy.length)try{for(let e of this.willDestroy)e.call(t)}catch(t){this.app.handleError({error:t,node:this})}this.status=3}async updateAndRender(t,e){this.nextProps=t,t=Object.assign({},t);const n=function(t,e){let n=t.fiber;return n&&(At(n.children),n.root=null),new _t(t,e)}(this,e);this.fiber=n;const o=this.component,s=o.constructor.defaultProps;s&&ie(t,s),se=this;for(const e in t){const n=t[e];n&&"object"==typeof n&&Gt.has(n)&&(t[e]=ae(n))}se=null;const r=Promise.all(this.willUpdateProps.map((e=>e.call(o,t))));if(await r,n!==this.fiber)return;o.props=t,n.render();const i=e.root;this.willPatch.length&&i.willPatch.push(n),this.patched.length&&i.patched.push(n)}updateDom(){if(this.fiber)if(this.bdom===this.fiber.bdom)for(let t in this.children){this.children[t].updateDom()}else this.bdom.patch(this.fiber.bdom,!1),this.fiber.appliedToDom=!0,this.fiber=null}setRef(t,e){e&&(this.refs[t]=e)}firstNode(){const t=this.bdom;return t?t.firstNode():void 0}mount(t,e){const n=this.fiber.bdom;this.bdom=n,n.mount(t,e),this.status=1,this.fiber.appliedToDom=!0,this.children=this.fiber.childrenMap,this.fiber=null}moveBeforeDOMNode(t,e){this.bdom.moveBeforeDOMNode(t,e)}moveBeforeVNode(t,e){this.bdom.moveBeforeVNode(t?t.bdom:null,e)}patch(){this.fiber&&this.fiber.parent&&(this._patch(),this.props=this.nextProps)}_patch(){let t=!1;for(let e in this.children){t=!0;break}const e=this.fiber;this.children=e.childrenMap,this.bdom.patch(e.bdom,t),e.appliedToDom=!0,this.fiber=null}beforeRemove(){this._destroy()}remove(){this.bdom.remove()}get name(){return this.component.constructor.name}get subscriptions(){const t=le.get(this);return t?(e=t,[...Ut.get(e)||[]].map((t=>{const n=Kt.get(t);let o=[];if(n)for(const[t,s]of n)s.has(e)&&o.push(t);return{target:t,keys:o}}))):[];var e}}const de=Symbol("timeout"),fe={onWillStart:3e3,onWillUpdateProps:3e3};function pe(t,e){const n=new r,o=new r,s=re();return(...r)=>{const i=t=>{throw n.cause=t,n.message=t instanceof Error?`The following error occurred in ${e}: "${t.message}"`:`Something that is not an Error was thrown in ${e} (see this Error's "cause" property)`,n};let l;try{l=t(...r)}catch(t){i(t)}if(!(l instanceof Promise))return l;const a=fe[e];if(a){const t=s.fiber;Promise.race([l.catch((()=>{})),new Promise((t=>setTimeout((()=>t(de)),a)))]).then((n=>{n===de&&s.fiber===t&&s.status<=2&&(o.message=`${e}'s promise hasn't resolved after ${a/1e3} seconds`,console.log(o))}))}return l.catch(i)}}function me(t){const e=re(),n=e.app.dev?pe:t=>t;e.mounted.push(n(t.bind(e.component),"onMounted"))}function ge(t){const e=re(),n=e.app.dev?pe:t=>t;e.patched.push(n(t.bind(e.component),"onPatched"))}function be(t){const e=re(),n=e.app.dev?pe:t=>t;e.willUnmount.unshift(n(t.bind(e.component),"onWillUnmount"))}class ve{constructor(t,e,n){this.props=t,this.env=e,this.__owl__=n}setup(){}render(t=!1){this.__owl__.render(!0===t)}}ve.template="";const ye=z("").constructor;class we extends ye{constructor(t,e){super(""),this.target=null,this.selector=t,this.content=e}mount(t,e){super.mount(t,e),this.target=document.querySelector(this.selector),this.target?this.content.mount(this.target,null):this.content.mount(t,e)}beforeRemove(){this.content.beforeRemove()}remove(){this.content&&(super.remove(),this.content.remove(),this.content=null)}patch(t){super.patch(t),this.content?this.content.patch(t.content,!0):(this.content=t.content,this.content.mount(this.target,null))}}class $e extends ve{setup(){const t=this.__owl__;me((()=>{const e=t.bdom;if(!e.target){const t=document.querySelector(this.props.target);if(!t)throw new r("invalid portal target");e.content.moveBeforeDOMNode(t.firstChild,t)}})),be((()=>{t.bdom.remove()}))}}$e.template="__portal__",$e.props={target:{type:String},slots:!0};const xe=t=>Array.isArray(t),Ne=t=>"object"!=typeof t,ke=t=>"object"==typeof t&&t&&"value"in t;function Te(t){return"object"==typeof t&&"optional"in t&&t.optional||!1}function Ee(t){return"*"===t||!0===t?"value":t.name.toLowerCase()}function Ae(t){return Ne(t)?Ee(t):xe(t)?t.map(Ae).join(" or "):ke(t)?String(t.value):"element"in t?`list of ${Ae({type:t.element,optional:!1})}s`:"shape"in t?"object":Ae(t.type||"*")}function _e(t,e){var n;Array.isArray(e)&&(n=e,e=Object.fromEntries(n.map((t=>t.endsWith("?")?[t.slice(0,-1),{optional:!0}]:[t,{type:"*",optional:!1}])))),t=Ft(t);let o=[];for(let n in t)if(n in e){let s=Ce(n,t[n],e[n]);s&&o.push(s)}else"*"in e||o.push(`unknown key '${n}'`);for(let n in e){const s=e[n];if("*"!==n&&!Te(s)&&!(n in t)){const t="object"==typeof s&&!Array.isArray(s);let e="*"===s||(t&&"type"in s?"*"===s.type:t)?"":` (should be a ${Ae(s)})`;o.push(`'${n}' is missing${e}`)}}return o}function Ce(t,e,n){if(void 0===e)return Te(n)?null:`'${t}' is undefined (should be a ${Ae(n)})`;if(Ne(n))return function(t,e,n){if("function"==typeof n)if("object"==typeof e){if(!(e instanceof n))return`'${t}' is not a ${Ee(n)}`}else if(typeof e!==n.name.toLowerCase())return`'${t}' is not a ${Ee(n)}`;return null}(t,e,n);if(ke(n))return e===n.value?null:`'${t}' is not equal to '${n.value}'`;if(xe(n)){let o=n.find((n=>!Ce(t,e,n)));return o?null:`'${t}' is not a ${Ae(n)}`}let o=null;if("element"in n)o=function(t,e,n){if(!Array.isArray(e))return`'${t}' is not a list of ${Ae(n)}s`;for(let o=0;o<e.length;o++){const s=Ce(`${t}[${o}]`,e[o],n);if(s)return s}return null}(t,e,n.element);else if("shape"in n)if("object"!=typeof e||Array.isArray(e))o=`'${t}' is not an object`;else{const s=_e(e,n.shape);s.length&&(o=`'${t}' doesn't have the correct shape (${s.join(", ")})`)}else if("values"in n)if("object"!=typeof e||Array.isArray(e))o=`'${t}' is not an object`;else{const s=Object.entries(e).map((([t,e])=>Ce(t,e,n.values))).filter(Boolean);s.length&&(o=`some of the values in '${t}' are invalid (${s.join(", ")})`)}return"type"in n&&!o&&(o=Ce(t,e,n.type)),"validate"in n&&!o&&(o=n.validate(e)?null:`'${t}' is not valid`),o}const De=Object.create;function Se(t){const e=De(t);for(let n in t)e[n]=t[n];return e}const Oe=Symbol("isBoundary");class Re{constructor(t,e,n,o,s){this.fn=t,this.ctx=Se(e),this.component=n,this.node=o,this.key=s}evaluate(){return this.fn.call(this.component,this.ctx,this.node,this.key)}toString(){return this.evaluate().toString()}}function Le(t,e,n){const o="string"!=typeof t?t:n.constructor.components[t];if(!o)return;const s=o.props;if(!s)return void(n.__owl__.app.warnIfNoStaticProps&&console.warn(`Component '${o.name}' does not have a static props description`));const i=o.defaultProps;if(i){let t=t=>Array.isArray(s)?s.includes(t):t in s&&!("*"in s)&&!Te(s[t]);for(let e in i)if(t(e))throw new r(`A default value cannot be defined for a mandatory prop (name: '${e}', component: ${o.name})`)}const l=_e(e,s);if(l.length)throw new r(`Invalid props for component '${o.name}': `+l.join(", "))}const Be={withDefault:function(t,e){return null==t||!1===t?e:t},zero:Symbol("zero"),isBoundary:Oe,callSlot:function(t,e,n,o,r,i,l){n=n+"__slot_"+o;const a=t.props.slots||{},{__render:c,__ctx:h,__scope:u}=a[o]||{},d=De(h||{});u&&(d[u]=i);const f=c?c(d,e,n):null;if(l){let i,a;return f?i=r?s(o,f):f:a=l(t,e,n),j([i,a])}return f||z("")},capture:Se,withKey:function(t,e){return t.key=e,t},prepareList:function(t){let e,n;if(Array.isArray(t))e=t,n=t;else if(t instanceof Map)e=[...t.keys()],n=[...t.values()];else if(Symbol.iterator in Object(t))e=[...t],n=e;else{if(!t||"object"!=typeof t)throw new r(`Invalid loop expression: "${t}" is not iterable`);n=Object.values(t),e=Object.keys(t)}const o=n.length;return[e,n,o,new Array(o)]},setContextValue:function(t,e,n){const o=t;for(;!t.hasOwnProperty(e)&&!t.hasOwnProperty(Oe);){const e=t.__proto__;if(!e){t=o;break}t=e}t[e]=n},shallowEqual:function(t,e){for(let n=0,o=t.length;n<o;n++)if(t[n]!==e[n])return!1;return!0},toNumber:function(t){const e=parseFloat(t);return isNaN(e)?t:e},validateProps:Le,LazyValue:Re,safeOutput:function(t,e){if(null==t)return e?s("default",e):s("undefined",z(""));let n,o;switch(typeof t){case"object":t instanceof k?(n="string_safe",o=wt(t)):t instanceof Re?(n="lazy_value",o=t.evaluate()):t instanceof String?(n="string_unsafe",o=z(t)):(n="block_safe",o=t);break;case"string":n="string_unsafe",o=z(t);break;default:n="string_unsafe",o=z(String(t))}return s(n,o)},createCatcher:function(t){const e=Object.keys(t).length;class n{constructor(t,e){this.handlerFns=[],this.afterNode=null,this.child=t,this.handlerData=e}mount(e,n){this.parentEl=e,this.child.mount(e,n),this.afterNode=document.createTextNode(""),e.insertBefore(this.afterNode,n),this.wrapHandlerData();for(let n in t){const o=t[n],s=A(n);this.handlerFns[o]=s,s.setup.call(e,this.handlerData[o])}}wrapHandlerData(){for(let t=0;t<e;t++){let e=this.handlerData[t],n=e.length-2,o=e[n];const s=this;e[n]=function(t){const e=t.target;let n=s.child.firstNode();const r=s.afterNode;for(;n&&n!==r;){if(n.contains(e))return o.call(this,t);n=n.nextSibling}}}}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,this.child.moveBeforeDOMNode(t,e),e.insertBefore(this.afterNode,t)}moveBeforeVNode(t,e){t&&(e=t.firstNode()||e),this.child.moveBeforeVNode(t?t.child:null,e),this.parentEl.insertBefore(this.afterNode,e)}patch(t,n){if(this!==t){this.handlerData=t.handlerData,this.wrapHandlerData();for(let t=0;t<e;t++)this.handlerFns[t].update.call(this.parentEl,this.handlerData[t]);this.child.patch(t.child,n)}}beforeRemove(){this.child.beforeRemove()}remove(){for(let t=0;t<e;t++)this.handlerFns[t].remove.call(this.parentEl);this.child.remove(),this.afterNode.remove()}firstNode(){return this.child.firstNode()}toString(){return this.child.toString()}}return function(t,e){return new n(t,e)}},markRaw:Vt,OwlError:r,makeRefWrapper:function(t){let e=new Set;return(n,o)=>{if(e.has(n))throw new r(`Cannot set the same ref more than once in the same component, ref "${n}" was set multiple times in ${t.name}`);return e.add(n),o}}};function Pe(t){const e=(new DOMParser).parseFromString(t,"text/xml");if(e.getElementsByTagName("parsererror").length){let n="Invalid XML in template.";const o=e.getElementsByTagName("parsererror")[0].textContent;if(o){n+="\nThe parser has produced the following error message:\n"+o;const e=/\d+/g,s=e.exec(o);if(s){const r=Number(s[0]),i=t.split("\n")[r-1],l=e.exec(o);if(i&&l){const t=Number(l[0])-1;i[t]&&(n+=`\nThe error might be located at xml line ${r} column ${t}\n${i}\n${"-".repeat(t-1)}^`)}}}throw new r(n)}return e}const je={text:z,createBlock:nt,list:bt,multi:j,html:wt,toggler:s,comment:H};class Me{constructor(t={}){if(this.rawTemplates=Object.create(Ie),this.templates={},this.Portal=$e,this.dev=t.dev||!1,this.translateFn=t.translateFn,this.translatableAttributes=t.translatableAttributes,t.templates)if(t.templates instanceof Document||"string"==typeof t.templates)this.addTemplates(t.templates);else for(const e in t.templates)this.addTemplate(e,t.templates[e]);this.getRawTemplate=t.getTemplate,this.customDirectives=t.customDirectives||{},this.runtimeUtils={...Be,__globals__:t.globalValues||{}},this.hasGlobalValues=Boolean(t.globalValues&&Object.keys(t.globalValues).length)}static registerTemplate(t,e){Ie[t]=e}addTemplate(t,e){if(t in this.rawTemplates){if(!this.dev)return;const n=this.rawTemplates[t];if(("string"==typeof n?n:n instanceof Element?n.outerHTML:n.toString())===("string"==typeof e?e:e.outerHTML))return;throw new r(`Template ${t} already defined with different content`)}this.rawTemplates[t]=e}addTemplates(t){if(t){t=t instanceof Document?t:Pe(t);for(const e of t.querySelectorAll("[t-name]")){const t=e.getAttribute("t-name");this.addTemplate(t,e)}}}getTemplate(t){var e;if(!(t in this.templates)){const n=(null===(e=this.getRawTemplate)||void 0===e?void 0:e.call(this,t))||this.rawTemplates[t];if(void 0===n){let e="";try{e=` (for component "${re().component.constructor.name}")`}catch{}throw new r(`Missing template: "${t}"${e}`)}const o="function"==typeof n&&!(n instanceof Element)?n:this._compileTemplate(t,n),s=this.templates;this.templates[t]=function(e,n){return s[t].call(this,e,n)};const i=o(this,je,this.runtimeUtils);this.templates[t]=i}return this.templates[t]}_compileTemplate(t,e){throw new r("Unable to compile a template. Please use owl full build instead")}callTemplate(t,e,n,o,r){return s(e,this.getTemplate(e).call(t,n,o,r+e))}}const Ie={};function We(...t){const e="__template__"+We.nextId++,n=String.raw(...t);return Ie[e]=n,e}We.nextId=1,Me.registerTemplate("__portal__",(function(t,e,n){let{callSlot:o}=n;return function(t,e,n=""){return new we(t.props.target,o(t,e,n,"default",!1,null))}}));const Ve="true,false,NaN,null,undefined,debugger,console,window,in,instanceof,new,function,return,eval,void,Math,RegExp,Array,Object,Date,__globals__".split(","),Fe=Object.assign(Object.create(null),{and:"&&",or:"||",gt:">",gte:">=",lt:"<",lte:"<="}),Ke=Object.assign(Object.create(null),{"{":"LEFT_BRACE","}":"RIGHT_BRACE","[":"LEFT_BRACKET","]":"RIGHT_BRACKET",":":"COLON",",":"COMMA","(":"LEFT_PAREN",")":"RIGHT_PAREN"}),ze="...,.,===,==,+,!==,!=,!,||,&&,>=,>,<=,<,?,-,*,/,%,typeof ,=>,=,;,in ,new ,|,&,^,~".split(",");const He=[function(t){let e=t[0],n=e;if("'"!==e&&'"'!==e&&"`"!==e)return!1;let o,s=1;for(;t[s]&&t[s]!==n;){if(o=t[s],e+=o,"\\"===o){if(s++,o=t[s],!o)throw new r("Invalid expression");e+=o}s++}if(t[s]!==n)throw new r("Invalid expression");return e+=n,"`"===n?{type:"TEMPLATE_STRING",value:e,replace:t=>e.replace(/\$\{(.*?)\}/g,((e,n)=>"${"+t(n)+"}"))}:{type:"VALUE",value:e}},function(t){let e=t[0];if(e&&e.match(/[0-9]/)){let n=1;for(;t[n]&&t[n].match(/[0-9]|\./);)e+=t[n],n++;return{type:"VALUE",value:e}}return!1},function(t){for(let e of ze)if(t.startsWith(e))return{type:"OPERATOR",value:e};return!1},function(t){let e=t[0];if(e&&e.match(/[a-zA-Z_\$]/)){let n=1;for(;t[n]&&t[n].match(/\w/);)e+=t[n],n++;return e in Fe?{type:"OPERATOR",value:Fe[e],size:e.length}:{type:"SYMBOL",value:e}}return!1},function(t){const e=t[0];return!(!e||!(e in Ke))&&{type:Ke[e],value:e}}];const Ue=t=>t&&("LEFT_BRACE"===t.type||"COMMA"===t.type),qe=t=>t&&("RIGHT_BRACE"===t.type||"COMMA"===t.type);function Ge(t){const e=new Set,n=function(t){const e=[];let n,o=!0,s=t;try{for(;o;)if(s=s.trim(),s){for(let t of He)if(o=t(s),o){e.push(o),s=s.slice(o.size||o.value.length);break}}else o=!1}catch(t){n=t}if(s.length||n)throw new r(`Tokenizer error: could not tokenize \`${t}\``);return e}(t);let o=0,s=[];for(;o<n.length;){let t=n[o],r=n[o-1],i=n[o+1],l=s[s.length-1];switch(t.type){case"LEFT_BRACE":case"LEFT_BRACKET":case"LEFT_PAREN":s.push(t.type);break;case"RIGHT_BRACE":case"RIGHT_BRACKET":case"RIGHT_PAREN":s.pop()}let a="SYMBOL"===t.type&&!Ve.includes(t.value);if("SYMBOL"!==t.type||Ve.includes(t.value)||r&&("LEFT_BRACE"===l&&Ue(r)&&qe(i)&&(n.splice(o+1,0,{type:"COLON",value:":"},{...t}),i=n[o+1]),"OPERATOR"===r.type&&"."===r.value?a=!1:"LEFT_BRACE"!==r.type&&"COMMA"!==r.type||i&&"COLON"===i.type&&(a=!1)),"TEMPLATE_STRING"===t.type&&(t.value=t.replace((t=>Ye(t)))),i&&"OPERATOR"===i.type&&"=>"===i.value)if("RIGHT_PAREN"===t.type){let t=o-1;for(;t>0&&"LEFT_PAREN"!==n[t].type;)"SYMBOL"===n[t].type&&n[t].originalValue&&(n[t].value=n[t].originalValue,e.add(n[t].value)),t--}else e.add(t.value);a&&(t.varName=t.value,e.has(t.value)||(t.originalValue=t.value,t.value=`ctx['${t.value}']`)),o++}for(const t of n)"SYMBOL"===t.type&&t.varName&&e.has(t.value)&&(t.originalValue=t.value,t.value=`_${t.value}`,t.isLocal=!0);return n}const Xe=new Map([["in "," in "]]);function Ye(t){return Ge(t).map((t=>Xe.get(t.value)||t.value)).join("")}const Ze=/\{\{.*?\}\}|\#\{.*?\}/g;function Je(t,e){let n=t.match(Ze);if(n&&n[0].length===t.length)return`(${e(t.slice(2,"{"===n[0][0]?-2:-1))})`;let o=t.replace(Ze,(t=>"${"+e(t.slice(2,"{"===t[0]?-2:-1))+"}"));return"`"+o+"`"}function Qe(t){return Je(t,Ye)}const tn=/\s+/g;let en;"undefined"!=typeof document&&(en=document.implementation.createDocument(null,null,null));const nn=new Set(["stop","capture","prevent","self","synthetic"]);let on={};function sn(t=""){return on[t]=(on[t]||0)+1,t+on[t]}function rn(t,e){switch(t){case"input":return"checked"===e||"indeterminate"===e||"value"===e||"readonly"===e||"readOnly"===e||"disabled"===e;case"option":return"selected"===e||"disabled"===e;case"textarea":return"value"===e||"readonly"===e||"readOnly"===e||"disabled"===e;case"select":return"value"===e||"disabled"===e;case"button":case"optgroup":return"disabled"===e}return!1}function ln(t){return`\`${t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/,"\\${")}\``}class an{constructor(t,e){this.dynamicTagName=null,this.isRoot=!1,this.hasDynamicChildren=!1,this.children=[],this.data=[],this.childNumber=0,this.parentVar="",this.id=an.nextBlockId++,this.varName="b"+this.id,this.blockName="block"+this.id,this.target=t,this.type=e}insertData(t,e="d"){const n=sn(e);return this.target.addLine(`let ${n} = ${t};`),this.data.push(n)-1}insert(t){this.currentDom?this.currentDom.appendChild(t):this.dom=t}generateExpr(t){if("block"===this.type){const t=this.children.length;let e=this.data.length?`[${this.data.join(", ")}]`:t?"[]":"";return t&&(e+=", ["+this.children.map((t=>t.varName)).join(", ")+"]"),this.dynamicTagName?`toggler(${this.dynamicTagName}, ${this.blockName}(${this.dynamicTagName})(${e}))`:`${this.blockName}(${e})`}return"list"===this.type?`list(c_block${this.id})`:t}asXmlString(){const t=en.createElement("t");return t.appendChild(this.dom),t.innerHTML}}function cn(t,e){return Object.assign({block:null,index:0,forceNewBlock:!0,translate:t.translate,translationCtx:t.translationCtx,tKeyExpr:null,nameSpace:t.nameSpace,tModelSelectedExpr:t.tModelSelectedExpr},e)}an.nextBlockId=1;class hn{constructor(t,e){this.indentLevel=0,this.loopLevel=0,this.code=[],this.hasRoot=!1,this.hasCache=!1,this.shouldProtectScope=!1,this.hasRefWrapper=!1,this.name=t,this.on=e||null}addLine(t,e){const n=new Array(this.indentLevel+2).join(" ");void 0===e?this.code.push(n+t):this.code.splice(e,0,n+t)}generateCode(){let t=[];t.push(`function ${this.name}(ctx, node, key = "") {`),this.shouldProtectScope&&(t.push(" ctx = Object.create(ctx);"),t.push(" ctx[isBoundary] = 1")),this.hasRefWrapper&&t.push(" let refWrapper = makeRefWrapper(this.__owl__);"),this.hasCache&&(t.push(" let cache = ctx.cache || {};"),t.push(" let nextCache = ctx.cache = {};"));for(let e of this.code)t.push(e);return this.hasRoot||t.push("return text('');"),t.push("}"),t.join("\n ")}currentKey(t){let e=this.loopLevel?`key${this.loopLevel}`:"key";return t.tKeyExpr&&(e=`${t.tKeyExpr} + ${e}`),e}}const un=["alt","aria-label","aria-placeholder","aria-roledescription","aria-valuetext","label","placeholder","title"],dn=/^(\s*)([\s\S]+?)(\s*)$/;class fn{constructor(t,e){if(this.blocks=[],this.nextBlockId=1,this.isDebug=!1,this.targets=[],this.target=new hn("template"),this.translatableAttributes=un,this.staticDefs=[],this.slotNames=new Set,this.helpers=new Set,this.translateFn=e.translateFn||(t=>t),e.translatableAttributes){const t=new Set(un);for(let n of e.translatableAttributes)n.startsWith("-")?t.delete(n.slice(1)):t.add(n);this.translatableAttributes=[...t]}this.hasSafeContext=e.hasSafeContext||!1,this.dev=e.dev||!1,this.ast=t,this.templateName=e.name,e.hasGlobalValues&&this.helpers.add("__globals__")}generateCode(){const t=this.ast;this.isDebug=12===t.type,an.nextBlockId=1,on={},this.compileAST(t,{block:null,index:0,forceNewBlock:!1,isLast:!0,translate:!0,translationCtx:"",tKeyExpr:null});let e=[" let { text, createBlock, list, multi, html, toggler, comment } = bdom;"];this.helpers.size&&e.push(`let { ${[...this.helpers].join(", ")} } = helpers;`),this.templateName&&e.push(`// Template name: "${this.templateName}"`);for(let{id:t,expr:n}of this.staticDefs)e.push(`const ${t} = ${n};`);if(this.blocks.length){e.push("");for(let t of this.blocks)if(t.dom){let n=ln(t.asXmlString());t.dynamicTagName?(n=n.replace(/^`<\w+/,`\`<\${tag || '${t.dom.nodeName}'}`),n=n.replace(/\w+>`$/,`\${tag || '${t.dom.nodeName}'}>\``),e.push(`let ${t.blockName} = tag => createBlock(${n});`)):e.push(`let ${t.blockName} = createBlock(${n});`)}}if(this.targets.length)for(let t of this.targets)e.push(""),e=e.concat(t.generateCode());e.push(""),e=e.concat("return "+this.target.generateCode());const n=e.join("\n ");if(this.isDebug){const t=`[Owl Debug]\n${n}`;console.log(t)}return n}compileInNewTarget(t,e,n,o){const s=sn(t),r=this.target,i=new hn(s,o);return this.targets.push(i),this.target=i,this.compileAST(e,cn(n)),this.target=r,s}addLine(t,e){this.target.addLine(t,e)}define(t,e){this.addLine(`const ${t} = ${e};`)}insertAnchor(t,e=t.children.length){const n=`block-child-${e}`,o=en.createElement(n);t.insert(o)}createBlock(t,e,n){const o=this.target.hasRoot,s=new an(this.target,e);return o||(this.target.hasRoot=!0,s.isRoot=!0),t&&(t.children.push(s),"list"===t.type&&(s.parentVar=`c_block${t.id}`)),s}insertBlock(t,e,n){let o=e.generateExpr(t);if(e.parentVar){let t=this.target.currentKey(n);return this.helpers.add("withKey"),void this.addLine(`${e.parentVar}[${n.index}] = withKey(${o}, ${t});`)}n.tKeyExpr&&(o=`toggler(${n.tKeyExpr}, ${o})`),e.isRoot?(this.target.on&&(o=this.wrapWithEventCatcher(o,this.target.on)),this.addLine(`return ${o};`)):this.define(e.varName,o)}captureExpression(t,e=!1){if(!e&&!t.includes("=>"))return Ye(t);const n=Ge(t),o=new Map;return n.map((t=>{if(t.varName&&!t.isLocal){if(!o.has(t.varName)){const e=sn("v");o.set(t.varName,e),this.define(e,t.value)}t.value=o.get(t.varName)}return t.value})).join("")}translate(t,e){const n=dn.exec(t);return n[1]+this.translateFn(n[2],e)+n[3]}compileAST(t,e){switch(t.type){case 1:return this.compileComment(t,e);case 0:return this.compileText(t,e);case 2:return this.compileTDomNode(t,e);case 4:return this.compileTEsc(t,e);case 8:return this.compileTOut(t,e);case 5:return this.compileTIf(t,e);case 9:return this.compileTForeach(t,e);case 10:return this.compileTKey(t,e);case 3:return this.compileMulti(t,e);case 7:return this.compileTCall(t,e);case 15:return this.compileTCallBlock(t,e);case 6:return this.compileTSet(t,e);case 11:return this.compileComponent(t,e);case 12:return this.compileDebug(t,e);case 13:return this.compileLog(t,e);case 14:return this.compileTSlot(t,e);case 16:return this.compileTTranslation(t,e);case 17:return this.compileTTranslationContext(t,e);case 18:return this.compileTPortal(t,e)}}compileDebug(t,e){return this.addLine("debugger;"),t.content?this.compileAST(t.content,e):null}compileLog(t,e){return this.addLine(`console.log(${Ye(t.expr)});`),t.content?this.compileAST(t.content,e):null}compileComment(t,e){let{block:n,forceNewBlock:o}=e;if(!n||o)n=this.createBlock(n,"comment",e),this.insertBlock(`comment(${ln(t.value)})`,n,{...e,forceNewBlock:o&&!n});else{const e=en.createComment(t.value);n.insert(e)}return n.varName}compileText(t,e){let{block:n,forceNewBlock:o}=e,s=t.value;if(s&&!1!==e.translate&&(s=this.translate(s,e.translationCtx)),e.inPreTag||(s=s.replace(tn," ")),!n||o)n=this.createBlock(n,"text",e),this.insertBlock(`text(${ln(s)})`,n,{...e,forceNewBlock:o&&!n});else{const e=0===t.type?en.createTextNode:en.createComment;n.insert(e.call(en,s))}return n.varName}generateHandlerCode(t,e){const n=t.split(".").slice(1).map((t=>{if(!nn.has(t))throw new r(`Unknown event modifier: '${t}'`);return`"${t}"`}));let o="";return n.length&&(o=`${n.join(",")}, `),`[${o}${this.captureExpression(e)}, ctx]`}compileTDomNode(t,e){var n;let{block:o,forceNewBlock:s}=e;const r=!o||s||null!==t.dynamicTag||t.ns;let i=this.target.code.length;if(r&&((t.dynamicTag||e.tKeyExpr||t.ns)&&e.block&&this.insertAnchor(e.block),o=this.createBlock(o,"block",e),this.blocks.push(o),t.dynamicTag)){const e=sn("tag");this.define(e,Ye(t.dynamicTag)),o.dynamicTagName=e}const l={};for(let s in t.attrs){let r,i;if(s.startsWith("t-attf")){r=Qe(t.attrs[s]);const e=o.insertData(r,"attr");i=s.slice(7),l["block-attribute-"+e]=i}else if(s.startsWith("t-att"))if(i="t-att"===s?null:s.slice(6),r=Ye(t.attrs[s]),i&&rn(t.tag,i)){"readonly"===i&&(i="readOnly"),r="value"===i?`new String((${r}) === 0 ? 0 : ((${r}) || ""))`:`new Boolean(${r})`;l[`block-property-${o.insertData(r,"prop")}`]=i}else{const t=o.insertData(r,"attr");"t-att"===s?l["block-attributes"]=String(t):l[`block-attribute-${t}`]=i}else if(this.translatableAttributes.includes(s)){const o=(null===(n=t.attrsTranslationCtx)||void 0===n?void 0:n[s])||e.translationCtx;l[s]=this.translateFn(t.attrs[s],o)}else r=`"${t.attrs[s]}"`,i=s,l[s]=t.attrs[s];if("value"===i&&e.tModelSelectedExpr){l[`block-attribute-${o.insertData(`${e.tModelSelectedExpr} === ${r}`,"attr")}`]="selected"}}let a;if(t.model){const{hasDynamicChildren:e,baseExpr:n,expr:s,eventType:r,shouldNumberize:i,shouldTrim:c,targetAttr:h,specialInitTargetAttr:u}=t.model,d=Ye(n),f=sn("bExpr");this.define(f,d);const p=Ye(s),m=sn("expr");this.define(m,p);const g=`${f}[${m}]`;let b;if(u){let e=h in l&&`'${l[h]}'`;if(!e&&t.attrs){const n=t.attrs[`t-att-${h}`];n&&(e=Ye(n))}b=o.insertData(`${g} === ${e}`,"prop"),l[`block-property-${b}`]=u}else if(e){a=`${sn("bValue")}`,this.define(a,g)}else b=o.insertData(`${g}`,"prop"),l[`block-property-${b}`]=h;this.helpers.add("toNumber");let v=`ev.target.${h}`;v=c?`${v}.trim()`:v,v=i?`toNumber(${v})`:v;const y=`[(ev) => { ${g} = ${v}; }]`;b=o.insertData(y,"hdlr"),l[`block-handler-${b}`]=r}for(let e in t.on){const n=this.generateHandlerCode(e,t.on[e]);l[`block-handler-${o.insertData(n,"hdlr")}`]=e}if(t.ref){this.dev&&(this.helpers.add("makeRefWrapper"),this.target.hasRefWrapper=!0);const e=Ze.test(t.ref);let n=`\`${t.ref}\``;e&&(n=Je(t.ref,(t=>this.captureExpression(t,!0))));let s=`(el) => this.__owl__.setRef((${n}), el)`;this.dev&&(s=`refWrapper(${n}, ${s})`);const r=o.insertData(s,"ref");l["block-ref"]=String(r)}const c=t.ns||e.nameSpace,h=c?en.createElementNS(c,t.tag):en.createElement(t.tag);for(const[t,e]of Object.entries(l))"class"===t&&""===e||h.setAttribute(t,e);if(o.insert(h),t.content.length){const n=o.currentDom;o.currentDom=h;const s=t.content;for(let n=0;n<s.length;n++){const r=t.content[n],i=cn(e,{block:o,index:o.childNumber,forceNewBlock:!1,isLast:e.isLast&&n===s.length-1,tKeyExpr:e.tKeyExpr,nameSpace:c,tModelSelectedExpr:a,inPreTag:e.inPreTag||"pre"===t.tag});this.compileAST(r,i)}o.currentDom=n}if(r&&(this.insertBlock(`${o.blockName}(ddd)`,o,e),o.children.length&&o.hasDynamicChildren)){const t=this.target.code,e=o.children.slice();let n=e.shift();for(let o=i;o<t.length&&(!t[o].trimStart().startsWith(`const ${n.varName} `)||(t[o]=t[o].replace(`const ${n.varName}`,n.varName),n=e.shift(),n));o++);this.addLine(`let ${o.children.map((t=>t.varName)).join(", ")};`,i)}return o.varName}compileTEsc(t,e){let n,{block:o,forceNewBlock:s}=e;if("0"===t.expr?(this.helpers.add("zero"),n="ctx[zero]"):(n=Ye(t.expr),t.defaultValue&&(this.helpers.add("withDefault"),n=`withDefault(${n}, ${ln(t.defaultValue)})`)),!o||s)o=this.createBlock(o,"text",e),this.insertBlock(`text(${n})`,o,{...e,forceNewBlock:s&&!o});else{const t=o.insertData(n,"txt"),e=en.createElement(`block-text-${t}`);o.insert(e)}return o.varName}compileTOut(t,e){let n,{block:o}=e;if(o&&this.insertAnchor(o),o=this.createBlock(o,"html",e),"0"===t.expr)this.helpers.add("zero"),n="ctx[zero]";else if(t.body){let o=null;o=an.nextBlockId;const s=cn(e);this.compileAST({type:3,content:t.body},s),this.helpers.add("safeOutput"),n=`safeOutput(${Ye(t.expr)}, b${o})`}else this.helpers.add("safeOutput"),n=`safeOutput(${Ye(t.expr)})`;return this.insertBlock(n,o,e),o.varName}compileTIfBranch(t,e,n){this.target.indentLevel++;let o=e.children.length;this.compileAST(t,cn(n,{block:e,index:n.index})),e.children.length>o&&this.insertAnchor(e,o),this.target.indentLevel--}compileTIf(t,e,n){let{block:o,forceNewBlock:s}=e;const r=this.target.code.length,i=!o||"multi"!==o.type&&s;if(o&&(o.hasDynamicChildren=!0),(!o||"multi"!==o.type&&s)&&(o=this.createBlock(o,"multi",e)),this.addLine(`if (${Ye(t.condition)}) {`),this.compileTIfBranch(t.content,o,e),t.tElif)for(let n of t.tElif)this.addLine(`} else if (${Ye(n.condition)}) {`),this.compileTIfBranch(n.content,o,e);if(t.tElse&&(this.addLine("} else {"),this.compileTIfBranch(t.tElse,o,e)),this.addLine("}"),i){if(o.children.length){const t=this.target.code,e=o.children.slice();let n=e.shift();for(let o=r;o<t.length&&(!t[o].trimStart().startsWith(`const ${n.varName} `)||(t[o]=t[o].replace(`const ${n.varName}`,n.varName),n=e.shift(),n));o++);this.addLine(`let ${o.children.map((t=>t.varName)).join(", ")};`,r)}const t=o.children.map((t=>t.varName)).join(", ");this.insertBlock(`multi([${t}])`,o,e)}return o.varName}compileTForeach(t,e){let{block:n}=e;n&&this.insertAnchor(n),n=this.createBlock(n,"list",e),this.target.loopLevel++;const o=`i${this.target.loopLevel}`;this.addLine("ctx = Object.create(ctx);");const s=`v_block${n.id}`,r=`k_block${n.id}`,i=`l_block${n.id}`,l=`c_block${n.id}`;let a;this.helpers.add("prepareList"),this.define(`[${r}, ${s}, ${i}, ${l}]`,`prepareList(${Ye(t.collection)});`),this.dev&&this.define(`keys${n.id}`,"new Set()"),this.addLine(`for (let ${o} = 0; ${o} < ${i}; ${o}++) {`),this.target.indentLevel++,this.addLine(`ctx[\`${t.elem}\`] = ${r}[${o}];`),t.hasNoFirst||this.addLine(`ctx[\`${t.elem}_first\`] = ${o} === 0;`),t.hasNoLast||this.addLine(`ctx[\`${t.elem}_last\`] = ${o} === ${r}.length - 1;`),t.hasNoIndex||this.addLine(`ctx[\`${t.elem}_index\`] = ${o};`),t.hasNoValue||this.addLine(`ctx[\`${t.elem}_value\`] = ${s}[${o}];`),this.define(`key${this.target.loopLevel}`,t.key?Ye(t.key):o),this.dev&&(this.helpers.add("OwlError"),this.addLine(`if (keys${n.id}.has(String(key${this.target.loopLevel}))) { throw new OwlError(\`Got duplicate key in t-foreach: \${key${this.target.loopLevel}}\`)}`),this.addLine(`keys${n.id}.add(String(key${this.target.loopLevel}));`)),t.memo&&(this.target.hasCache=!0,a=sn(),this.define(`memo${a}`,Ye(t.memo)),this.define(`vnode${a}`,`cache[key${this.target.loopLevel}];`),this.addLine(`if (vnode${a}) {`),this.target.indentLevel++,this.addLine(`if (shallowEqual(vnode${a}.memo, memo${a})) {`),this.target.indentLevel++,this.addLine(`${l}[${o}] = vnode${a};`),this.addLine(`nextCache[key${this.target.loopLevel}] = vnode${a};`),this.addLine("continue;"),this.target.indentLevel--,this.addLine("}"),this.target.indentLevel--,this.addLine("}"));const c=cn(e,{block:n,index:o});return this.compileAST(t.body,c),t.memo&&this.addLine(`nextCache[key${this.target.loopLevel}] = Object.assign(${l}[${o}], {memo: memo${a}});`),this.target.indentLevel--,this.target.loopLevel--,this.addLine("}"),e.isLast||this.addLine("ctx = ctx.__proto__;"),this.insertBlock("l",n,e),n.varName}compileTKey(t,e){const n=sn("tKey_");return this.define(n,Ye(t.expr)),e=cn(e,{tKeyExpr:n,block:e.block,index:e.index}),this.compileAST(t.content,e)}compileMulti(t,e){let{block:n,forceNewBlock:o}=e;const s=!n||o;let r=this.target.code.length;if(s){let o=null;if(t.content.filter((t=>!t.hasNoRepresentation)).length<=1){for(let n of t.content){const t=this.compileAST(n,e);o=o||t}return o}n=this.createBlock(n,"multi",e)}let i=0;for(let o=0,s=t.content.length;o<s;o++){const r=t.content[o],l=!r.hasNoRepresentation,a=cn(e,{block:n,index:i,forceNewBlock:l,isLast:e.isLast&&o===s-1});this.compileAST(r,a),l&&i++}if(s){if(n.hasDynamicChildren&&n.children.length){const t=this.target.code,e=n.children.slice();let o=e.shift();for(let n=r;n<t.length&&(!t[n].trimStart().startsWith(`const ${o.varName} `)||(t[n]=t[n].replace(`const ${o.varName}`,o.varName),o=e.shift(),o));n++);this.addLine(`let ${n.children.map((t=>t.varName)).join(", ")};`,r)}const t=n.children.map((t=>t.varName)).join(", ");this.insertBlock(`multi([${t}])`,n,e)}return n.varName}compileTCall(t,e){let{block:n,forceNewBlock:o}=e,s=e.ctxVar||"ctx";t.context&&(s=sn("ctx"),this.addLine(`let ${s} = ${Ye(t.context)};`));const r=Ze.test(t.name),i=r?Qe(t.name):"`"+t.name+"`";if(n&&!o&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),t.body){this.addLine(`${s} = Object.create(${s});`),this.addLine(`${s}[isBoundary] = 1;`),this.helpers.add("isBoundary");const n=cn(e,{ctxVar:s}),o=this.compileMulti({type:3,content:t.body},n);o&&(this.helpers.add("zero"),this.addLine(`${s}[zero] = ${o};`))}const l=this.generateComponentKey();if(r){const t=sn("template");this.staticDefs.find((t=>"call"===t.id))||this.staticDefs.push({id:"call",expr:"app.callTemplate.bind(app)"}),this.define(t,i),this.insertBlock(`call(this, ${t}, ${s}, node, ${l})`,n,{...e,forceNewBlock:!n})}else{const t=sn("callTemplate_");this.staticDefs.push({id:t,expr:`app.getTemplate(${i})`}),this.insertBlock(`${t}.call(this, ${s}, node, ${l})`,n,{...e,forceNewBlock:!n})}return t.body&&!e.isLast&&this.addLine(`${s} = ${s}.__proto__;`),n.varName}compileTCallBlock(t,e){let{block:n,forceNewBlock:o}=e;return n&&(o||this.insertAnchor(n)),n=this.createBlock(n,"multi",e),this.insertBlock(Ye(t.name),n,{...e,forceNewBlock:!n}),n.varName}compileTSet(t,e){this.target.shouldProtectScope=!0,this.helpers.add("isBoundary").add("withDefault");const n=t.value?Ye(t.value||""):"null";if(t.body){this.helpers.add("LazyValue");const o={type:3,content:t.body};let s=`new LazyValue(${this.compileInNewTarget("value",o,e)}, ctx, this, node, ${this.target.currentKey(e)})`;s=t.value?s?`withDefault(${n}, ${s})`:n:s,this.addLine(`ctx[\`${t.name}\`] = ${s};`)}else{let o;if(t.defaultValue){const s=ln(e.translate?this.translate(t.defaultValue,e.translationCtx):t.defaultValue);o=t.value?`withDefault(${n}, ${s})`:s}else o=n;this.helpers.add("setContextValue"),this.addLine(`setContextValue(${e.ctxVar||"ctx"}, "${t.name}", ${o});`)}return null}generateComponentKey(t="key"){const e=[sn("__")];for(let t=0;t<this.target.loopLevel;t++)e.push(`\${key${t+1}}`);return`${t} + \`${e.join("__")}\``}formatProp(t,e,n,o){if(t.endsWith(".translate")){const s=(null==n?void 0:n[t])||o;e=ln(this.translateFn(e,s))}else e=this.captureExpression(e);if(t.includes(".")){let[n,o]=t.split(".");switch(t=n,o){case"bind":e=`(${e}).bind(this)`;break;case"alike":case"translate":break;default:throw new r(`Invalid prop suffix: ${o}`)}}return`${t=/^[a-z_]+$/i.test(t)?t:`'${t}'`}: ${e||void 0}`}formatPropObject(t,e,n){return Object.entries(t).map((([t,o])=>this.formatProp(t,o,e,n)))}getPropString(t,e){let n=`{${t.join(",")}}`;return e&&(n=`Object.assign({}, ${Ye(e)}${t.length?", "+n:""})`),n}compileComponent(t,e){let{block:n}=e;const o="slots"in(t.props||{}),s=t.props?this.formatPropObject(t.props,t.propsTranslationCtx,e.translationCtx):[];let r="";if(t.slots){let n="ctx";!this.target.loopLevel&&this.hasSafeContext||(n=sn("ctx"),this.helpers.add("capture"),this.define(n,"capture(ctx)"));let o=[];for(let s in t.slots){const r=t.slots[s],i=[];if(r.content){const t=this.compileInNewTarget("slot",r.content,e,r.on);i.push(`__render: ${t}.bind(this), __ctx: ${n}`)}const l=t.slots[s].scope;l&&i.push(`__scope: "${l}"`),t.slots[s].attrs&&i.push(...this.formatPropObject(t.slots[s].attrs,t.slots[s].attrsTranslationCtx,e.translationCtx));const a=`{${i.join(", ")}}`;o.push(`'${s}': ${a}`)}r=`{${o.join(", ")}}`}!r||t.dynamicProps||o||(this.helpers.add("markRaw"),s.push(`slots: markRaw(${r})`));let i,l,a=this.getPropString(s,t.dynamicProps);(r&&(t.dynamicProps||o)||this.dev)&&(i=sn("props"),this.define(i,a),a=i),r&&(t.dynamicProps||o)&&(this.helpers.add("markRaw"),this.addLine(`${i}.slots = markRaw(Object.assign(${r}, ${i}.slots))`)),t.isDynamic?(l=sn("Comp"),this.define(l,Ye(t.name))):l=`\`${t.name}\``,this.dev&&this.addLine(`helpers.validateProps(${l}, ${i}, this);`),n&&(!1===e.forceNewBlock||e.tKeyExpr)&&this.insertAnchor(n);let c=this.generateComponentKey();e.tKeyExpr&&(c=`${e.tKeyExpr} + ${c}`);let h=sn("comp");const u=[];for(let e in t.props||{}){let[t,n]=e.split(".");n||u.push(`"${t}"`)}this.staticDefs.push({id:h,expr:`app.createComponent(${t.isDynamic?null:l}, ${!t.isDynamic}, ${!!t.slots}, ${!!t.dynamicProps}, [${u}])`}),t.isDynamic&&(c=`(${l}).name + ${c}`);let d=`${h}(${a}, ${c}, node, this, ${t.isDynamic?l:null})`;return t.isDynamic&&(d=`toggler(${l}, ${d})`),t.on&&(d=this.wrapWithEventCatcher(d,t.on)),n=this.createBlock(n,"multi",e),this.insertBlock(d,n,e),n.varName}wrapWithEventCatcher(t,e){this.helpers.add("createCatcher");let n=sn("catcher"),o={},s=[];for(let t in e){let n=sn("hdlr"),r=s.push(n)-1;o[t]=r;const i=this.generateHandlerCode(t,e[t]);this.define(n,i)}return this.staticDefs.push({id:n,expr:`createCatcher(${JSON.stringify(o)})`}),`${n}(${t}, [${s.join(",")}])`}compileTSlot(t,e){this.helpers.add("callSlot");let n,o,{block:s}=e,r=!1,i=!1;t.name.match(Ze)?(r=!0,i=!0,o=Qe(t.name)):(o="'"+t.name+"'",i=i||this.slotNames.has(t.name),this.slotNames.add(t.name));const l={...t.attrs},a=l["t-props"];delete l["t-props"];let c=this.target.loopLevel?`key${this.target.loopLevel}`:"key";i&&(c=this.generateComponentKey(c));const h=t.attrs?this.formatPropObject(l,t.attrsTranslationCtx,e.translationCtx):[],u=this.getPropString(h,a);if(t.defaultContent){n=`callSlot(ctx, node, ${c}, ${o}, ${r}, ${u}, ${this.compileInNewTarget("defaultContent",t.defaultContent,e)}.bind(this))`}else if(r){let t=sn("slot");this.define(t,o),n=`toggler(${t}, callSlot(ctx, node, ${c}, ${t}, ${r}, ${u}))`}else n=`callSlot(ctx, node, ${c}, ${o}, ${r}, ${u})`;return t.on&&(n=this.wrapWithEventCatcher(n,t.on)),s&&this.insertAnchor(s),s=this.createBlock(s,"multi",e),this.insertBlock(n,s,{...e,forceNewBlock:!1}),s.varName}compileTTranslation(t,e){return t.content?this.compileAST(t.content,Object.assign({},e,{translate:!1})):null}compileTTranslationContext(t,e){return t.content?this.compileAST(t.content,Object.assign({},e,{translationCtx:t.translationCtx})):null}compileTPortal(t,e){this.staticDefs.find((t=>"Portal"===t.id))||this.staticDefs.push({id:"Portal",expr:"app.Portal"});let{block:n}=e;const o=this.compileInNewTarget("slot",t.content,e);let s="ctx";!this.target.loopLevel&&this.hasSafeContext||(s=sn("ctx"),this.helpers.add("capture"),this.define(s,"capture(ctx)"));let r=sn("comp");this.staticDefs.push({id:r,expr:"app.createComponent(null, false, true, false, false)"});const i=`${r}({target: ${Ye(t.target)},slots: {'default': {__render: ${o}.bind(this), __ctx: ${s}}}}, ${this.generateComponentKey()}, node, ctx, Portal)`;return n&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),this.insertBlock(i,n,{...e,forceNewBlock:!1}),n.varName}}const pn=new WeakMap;function mn(t,e){var n;return function(t){let e=t.querySelectorAll("[t-elif], [t-else]");for(let t=0,n=e.length;t<n;t++){let n=e[t],o=n.previousElementSibling,s=t=>o.getAttribute(t),i=t=>+!!n.getAttribute(t);if(!o||!s("t-if")&&!s("t-elif"))throw new r("t-elif and t-else directives must be preceded by a t-if or t-elif directive");{if(s("t-foreach"))throw new r("t-if cannot stay at the same level as t-foreach when using t-elif or t-else");if(["t-if","t-elif","t-else"].map(i).reduce((function(t,e){return t+e}))>1)throw new r("Only one conditional branching directive is allowed per node");let t;for(;(t=n.previousSibling)!==o;){if(t.nodeValue.trim().length&&8!==t.nodeType)throw new r("text is not allowed between branching directives");t.remove()}}}}(n=t),function(t){for(const e of["t-esc","t-out"]){const n=[...t.querySelectorAll(`[${e}]`)].filter((t=>t.tagName[0]===t.tagName[0].toUpperCase()||t.hasAttribute("t-component")));for(const t of n){if(t.childNodes.length)throw new r(`Cannot have ${e} on a component that already has content`);const n=t.getAttribute(e);t.removeAttribute(e);const o=t.ownerDocument.createElement("t");null!=n&&o.setAttribute(e,n),t.appendChild(o)}}}(n),gn(t,e)||{type:0,value:""}}function gn(t,e){return t instanceof Element?function(t,e){if(!e.customDirectives)return null;const n=t.getAttributeNames();for(let o of n){if("t-custom"===o||"t-custom-"===o)throw new r("Missing custom directive name with t-custom directive");if(o.startsWith("t-custom-")){const n=o.split(".")[0].slice(9),s=e.customDirectives[n];if(!s)throw new r(`Custom directive "${n}" is not defined`);const i=t.getAttribute(o),l=o.split(".").slice(1);t.removeAttribute(o);try{s(t,i,l)}catch(t){throw new r(`Custom directive "${n}" throw the following error: ${t}`)}return gn(t,e)}}return null}(t,e)||function(t,e){if(t.hasAttribute("t-debug")){t.removeAttribute("t-debug");const n=gn(t,e),o={type:12,content:n};return(null==n?void 0:n.hasNoRepresentation)&&(o.hasNoRepresentation=!0),o}if(t.hasAttribute("t-log")){const n=t.getAttribute("t-log");t.removeAttribute("t-log");const o=gn(t,e),s={type:13,expr:n,content:o};return(null==o?void 0:o.hasNoRepresentation)&&(s.hasNoRepresentation=!0),s}return null}(t,e)||function(t,e){if(!t.hasAttribute("t-foreach"))return null;const n=t.outerHTML,o=t.getAttribute("t-foreach");t.removeAttribute("t-foreach");const s=t.getAttribute("t-as")||"";t.removeAttribute("t-as");const i=t.getAttribute("t-key");if(!i)throw new r(`"Directive t-foreach should always be used with a t-key!" (expression: t-foreach="${o}" t-as="${s}")`);t.removeAttribute("t-key");const l=t.getAttribute("t-memo")||"";t.removeAttribute("t-memo");const a=gn(t,e);if(!a)return null;const c=!n.includes("t-call"),h=c&&!n.includes(`${s}_first`),u=c&&!n.includes(`${s}_last`),d=c&&!n.includes(`${s}_index`),f=c&&!n.includes(`${s}_value`);return{type:9,collection:o,elem:s,body:a,memo:l,key:i,hasNoFirst:h,hasNoLast:u,hasNoIndex:d,hasNoValue:f}}(t,e)||function(t,e){if(!t.hasAttribute("t-if"))return null;const n=t.getAttribute("t-if");t.removeAttribute("t-if");const o=gn(t,e)||{type:0,value:""};let s=t.nextElementSibling;const r=[];for(;s&&s.hasAttribute("t-elif");){const t=s.getAttribute("t-elif");s.removeAttribute("t-elif");const n=gn(s,e),o=s.nextElementSibling;s.remove(),s=o,n&&r.push({condition:t,content:n})}let i=null;s&&s.hasAttribute("t-else")&&(s.removeAttribute("t-else"),i=gn(s,e),s.remove());return{type:5,condition:n,content:o,tElif:r.length?r:null,tElse:i}}(t,e)||function(t,e){if(!t.hasAttribute("t-portal"))return null;const n=t.getAttribute("t-portal");t.removeAttribute("t-portal");const o=gn(t,e);if(!o)return{type:0,value:""};return{type:18,target:n,content:o}}(t,e)||function(t,e){if(!t.hasAttribute("t-call"))return null;const n=t.getAttribute("t-call"),o=t.getAttribute("t-call-context");if(t.removeAttribute("t-call"),t.removeAttribute("t-call-context"),"t"!==t.tagName){const s=gn(t,e),r={type:7,name:n,body:null,context:o};if(s&&2===s.type)return s.content=[r],s;if(s&&11===s.type)return{...s,slots:{default:{content:r,scope:null,on:null,attrs:null,attrsTranslationCtx:null}}}}const s=kn(t,e);return{type:7,name:n,body:s.length?s:null,context:o}}(t,e)||function(t,e){if(!t.hasAttribute("t-call-block"))return null;const n=t.getAttribute("t-call-block");return{type:15,name:n}}(t)||function(t,e){if("off"!==t.getAttribute("t-translation"))return null;t.removeAttribute("t-translation");const n=gn(t,e);if(3===(null==n?void 0:n.type)){return Tn(n.content.map(xn))}return xn(n)}(t,e)||function(t,e){const n=t.getAttribute("t-translation-context");if(!n)return null;t.removeAttribute("t-translation-context");const o=gn(t,e);if(3===(null==o?void 0:o.type)){return Tn(o.content.map((t=>Nn(t,n))))}return Nn(o,n)}(t,e)||function(t,e){if(!t.hasAttribute("t-key"))return null;const n=t.getAttribute("t-key");t.removeAttribute("t-key");const o=gn(t,e);if(!o)return null;const s={type:10,expr:n,content:o};o.hasNoRepresentation&&(s.hasNoRepresentation=!0);return s}(t,e)||function(t,e){if(!t.hasAttribute("t-esc"))return null;const n=t.getAttribute("t-esc");t.removeAttribute("t-esc");const o={type:4,expr:n,defaultValue:t.textContent||""};let s=t.getAttribute("t-ref");t.removeAttribute("t-ref");const r=gn(t,e);if(!r)return o;if(2===r.type)return{...r,ref:s,content:[o]};return o}(t,e)||function(t,e){if(!t.hasAttribute("t-out")&&!t.hasAttribute("t-raw"))return null;t.hasAttribute("t-raw")&&console.warn('t-raw has been deprecated in favor of t-out. If the value to render is not wrapped by the "markup" function, it will be escaped');const n=t.getAttribute("t-out")||t.getAttribute("t-raw");t.removeAttribute("t-out"),t.removeAttribute("t-raw");const o={type:8,expr:n,body:null},s=t.getAttribute("t-ref");t.removeAttribute("t-ref");const r=gn(t,e);if(!r)return o;if(2===r.type)return o.body=r.content.length?r.content:null,{...r,ref:s,content:[o]};return o}(t,e)||function(t,e){if(!t.hasAttribute("t-slot"))return null;const n=t.getAttribute("t-slot");t.removeAttribute("t-slot");let o=null,s=null,r=null;for(let e of t.getAttributeNames()){const n=t.getAttribute(e);if(e.startsWith("t-on-"))r=r||{},r[e.slice(5)]=n;else if(e.startsWith("t-translation-context-")){s=s||{},s[e.slice(22)]=n}else o=o||{},o[e]=n}return{type:14,name:n,attrs:o,attrsTranslationCtx:s,on:r,defaultContent:En(t,e)}}(t,e)||function(t,e){let n=t.tagName;const o=n[0];let s=t.hasAttribute("t-component");if(s&&"t"!==n)throw new r(`Directive 't-component' can only be used on <t> nodes (used on a <${n}>)`);if(o!==o.toUpperCase()&&!s)return null;s&&(n=t.getAttribute("t-component"),t.removeAttribute("t-component"));const i=t.getAttribute("t-props");t.removeAttribute("t-props");const l=t.getAttribute("t-slot-scope");t.removeAttribute("t-slot-scope");let a=null,c=null,h=null;for(let e of t.getAttributeNames()){const n=t.getAttribute(e);if(e.startsWith("t-translation-context-")){h=h||{},h[e.slice(22)]=n}else if(e.startsWith("t-")){if(!e.startsWith("t-on-")){const t=$n.get(e.split("-").slice(0,2).join("-"));throw new r(t||`unsupported directive on Component: ${e}`)}a=a||{},a[e.slice(5)]=n}else c=c||{},c[e]=n}let u=null;if(t.hasChildNodes()){const n=t.cloneNode(!0),o=Array.from(n.querySelectorAll("[t-set-slot]"));for(let t of o){if("t"!==t.tagName)throw new r(`Directive 't-set-slot' can only be used on <t> nodes (used on a <${t.tagName}>)`);const o=t.getAttribute("t-set-slot");let s=t.parentElement,i=!1;for(;s&&s!==n;){if(s.hasAttribute("t-component")||s.tagName[0]===s.tagName[0].toUpperCase()){i=!0;break}s=s.parentElement}if(i||!s)continue;t.removeAttribute("t-set-slot"),t.remove();const l=gn(t,e);let a=null,c=null,h=null,d=null;for(let e of t.getAttributeNames()){const n=t.getAttribute(e);if("t-slot-scope"!==e)if(e.startsWith("t-translation-context-")){h=h||{},h[e.slice(22)]=n}else e.startsWith("t-on-")?(a=a||{},a[e.slice(5)]=n):(c=c||{},c[e]=n);else d=n}u=u||{},u[o]={content:l,on:a,attrs:c,attrsTranslationCtx:h,scope:d}}const s=En(n,e);u=u||{},s&&!u.default&&(u.default={content:s,on:a,attrs:null,attrsTranslationCtx:null,scope:l})}return{type:11,name:n,isDynamic:s,dynamicProps:i,props:c,propsTranslationCtx:h,slots:u,on:a}}(t,e)||function(t,e){const{tagName:n}=t,o=t.getAttribute("t-tag");if(t.removeAttribute("t-tag"),"t"===n&&!o)return null;if(n.startsWith("block-"))throw new r(`Invalid tag name: '${n}'`);e=Object.assign({},e),"pre"===n&&(e.inPreTag=!0);let s=!e.nameSpace&&wn.has(n)?"http://www.w3.org/2000/svg":null;const i=t.getAttribute("t-ref");t.removeAttribute("t-ref");const l=t.getAttributeNames();let a=null,c=null,h=null,u=null;for(let o of l){const i=t.getAttribute(o);if("t-on"===o||"t-on-"===o)throw new r("Missing event name with t-on directive");if(o.startsWith("t-on-"))h=h||{},h[o.slice(5)]=i;else if(o.startsWith("t-model")){if(!["input","select","textarea"].includes(n))throw new r("The t-model directive only works with <input>, <textarea> and <select>");let s,l;if(vn.test(i)){const t=i.lastIndexOf(".");s=i.slice(0,t),l=`'${i.slice(t+1)}'`}else{if(!yn.test(i))throw new r(`Invalid t-model expression: "${i}" (it should be assignable)`);{const t=i.lastIndexOf("[");s=i.slice(0,t),l=i.slice(t+1,-1)}}const a=t.getAttribute("type"),c="input"===n,h="select"===n,d=c&&"checkbox"===a,f=c&&"radio"===a,p=o.includes(".trim"),m=p||o.includes(".lazy");u={baseExpr:s,expr:l,targetAttr:d?"checked":"value",specialInitTargetAttr:f?"checked":null,eventType:f?"click":h||m?"change":"input",hasDynamicChildren:!1,shouldTrim:p,shouldNumberize:o.includes(".number")},h&&((e=Object.assign({},e)).tModelInfo=u)}else{if(o.startsWith("block-"))throw new r(`Invalid attribute: '${o}'`);if("xmlns"===o)s=i;else if(o.startsWith("t-translation-context-")){c=c||{},c[o.slice(22)]=i}else if("t-name"!==o){if(o.startsWith("t-")&&!o.startsWith("t-att"))throw new r(`Unknown QWeb directive: '${o}'`);const t=e.tModelInfo;t&&["t-att-value","t-attf-value"].includes(o)&&(t.hasDynamicChildren=!0),a=a||{},a[o]=i}}}s&&(e.nameSpace=s);const d=kn(t,e);return{type:2,tag:n,dynamicTag:o,attrs:a,attrsTranslationCtx:c,on:h,ref:i,content:d,model:u,ns:s}}(t,e)||function(t,e){if(!t.hasAttribute("t-set"))return null;const n=t.getAttribute("t-set"),o=t.getAttribute("t-value")||null,s=t.innerHTML===t.textContent&&t.textContent||null;let r=null;t.textContent!==t.innerHTML&&(r=kn(t,e));return{type:6,name:n,value:o,defaultValue:s,body:r,hasNoRepresentation:!0}}(t,e)||function(t,e){if("t"!==t.tagName)return null;return En(t,e)}(t,e):function(t,e){if(t.nodeType===Node.TEXT_NODE){let n=t.textContent||"";return e.inPreTag||!bn.test(n)||n.trim()?{type:0,value:n}:null}if(t.nodeType===Node.COMMENT_NODE)return{type:1,value:t.textContent||""};return null}(t,e)}const bn=/[\r\n]/;const vn=/\.[\w_]+\s*$/,yn=/\[[^\[]+\]\s*$/,wn=new Set(["svg","g","path"]);const $n=new Map([["t-ref","t-ref is no longer supported on components. Consider exposing only the public part of the component's API through a callback prop."],["t-att","t-att makes no sense on component: props are already treated as expressions"],["t-attf","t-attf is not supported on components: use template strings for string interpolation in props"]]);function xn(t){const e={type:16,content:t};return(null==t?void 0:t.hasNoRepresentation)&&(e.hasNoRepresentation=!0),e}function Nn(t,e){const n={type:17,content:t,translationCtx:e};return(null==t?void 0:t.hasNoRepresentation)&&(n.hasNoRepresentation=!0),n}function kn(t,e){const n=[];for(let o of t.childNodes){const t=gn(o,e);t&&(3===t.type?n.push(...t.content):n.push(t))}return n}function Tn(t){const e={type:3,content:t};return t.every((t=>t.hasNoRepresentation))&&(e.hasNoRepresentation=!0),e}function En(t,e){const n=kn(t,e);switch(n.length){case 0:return null;case 1:return n[0];default:return Tn(n)}}function An(t,e={hasGlobalValues:!1}){const n=function(t,e){const n={inPreTag:!1,customDirectives:e};if("string"==typeof t)return mn(Pe(`<t>${t}</t>`).firstChild,n);let o=pn.get(t);return o||(o=mn(t.cloneNode(!0),n),pn.set(t,o)),o}(t,e.customDirectives),o=t instanceof Node?!(t instanceof Element)||null===t.querySelector("[t-set], [t-call]"):!t.includes("t-set")&&!t.includes("t-call"),s=new fn(n,{...e,hasSafeContext:o}).generateCode();try{return new Function("app, bdom, helpers",s)}catch(t){const{name:n}=e,o=new r(`Failed to compile ${n?`template "${n}"`:"anonymous template"}: ${t.message}\n\ngenerated code:\nfunction(app, bdom, helpers) {\n${s}\n}`);throw o.cause=t,o}}let _n;"undefined"!=typeof window&&(_n=window.requestAnimationFrame.bind(window));class Cn{constructor(){this.tasks=new Set,this.frame=0,this.delayedRenders=[],this.cancelledNodes=new Set,this.processing=!1,this.requestAnimationFrame=Cn.requestAnimationFrame}addFiber(t){this.tasks.add(t.root)}scheduleDestroy(t){this.cancelledNodes.add(t),0===this.frame&&(this.frame=this.requestAnimationFrame((()=>this.processTasks())))}flush(){if(this.delayedRenders.length){let t=this.delayedRenders;this.delayedRenders=[];for(let e of t)e.root&&3!==e.node.status&&e.node.fiber===e&&e.render()}0===this.frame&&(this.frame=this.requestAnimationFrame((()=>this.processTasks())))}processTasks(){if(!this.processing){this.processing=!0,this.frame=0;for(let t of this.cancelledNodes)t._destroy();this.cancelledNodes.clear();for(let t of this.tasks)this.processFiber(t);for(let t of this.tasks)3===t.node.status&&this.tasks.delete(t);this.processing=!1}}processFiber(t){if(t.root!==t)return void this.tasks.delete(t);const e=xt.has(t);e&&0!==t.counter?this.tasks.delete(t):3!==t.node.status?0===t.counter&&(e||t.complete(),t.appliedToDom&&this.tasks.delete(t)):this.tasks.delete(t)}}Cn.requestAnimationFrame=_n;let Dn=!1;const Sn=new Set;"undefined"!=typeof window&&(window.__OWL_DEVTOOLS__||(window.__OWL_DEVTOOLS__={apps:Sn,Fiber:_t,RootFiber:Ct,toRaw:Ft,reactive:Yt}));class On extends Me{constructor(t,e={}){super(e),this.scheduler=new Cn,this.subRoots=new Set,this.root=null,this.name=e.name||"",this.Root=t,Sn.add(this),e.test&&(this.dev=!0),this.warnIfNoStaticProps=e.warnIfNoStaticProps||!1,!this.dev||e.test||Dn||(console.info("Owl is running in 'dev' mode."),Dn=!0);const n=e.env||{},o=Object.getOwnPropertyDescriptors(n);this.env=Object.freeze(Object.create(Object.getPrototypeOf(n),o)),this.props=e.props||{}}mount(t,e){const n=this.createRoot(this.Root,{props:this.props});return this.root=n.node,this.subRoots.delete(n.node),n.mount(t,e)}createRoot(t,e={}){const n=e.props||{},o=this.env;e.env&&(this.env=e.env);const s=function(){let t=se;return()=>{se=t}}(),r=this.makeNode(t,n);return s(),e.env&&(this.env=o),this.subRoots.add(r),{node:r,mount:(e,o)=>{On.validateTarget(e),this.dev&&Le(t,n,{__owl__:{app:this}});return this.mountNode(r,e,o)},destroy:()=>{this.subRoots.delete(r),r.destroy(),this.scheduler.processTasks()}}}makeNode(t,e){return new ue(t,e,this,null,null)}mountNode(t,e,n){const o=new Promise(((e,n)=>{let o=!1;t.mounted.push((()=>{e(t.component),o=!0}));let s=Nt.get(t);s||(s=[],Nt.set(t,s)),s.unshift((t=>{throw o||n(t),t}))}));return t.mountComponent(e,n),o}destroy(){if(this.root){for(let t of this.subRoots)t.destroy();this.root.destroy(),this.scheduler.processTasks()}Sn.delete(this)}createComponent(t,e,n,o,s){const i=!e;let l;const a=0===s.length;l=n?(t,e)=>!0:o?function(t,e){for(let n in t)if(t[n]!==e[n])return!0;return Object.keys(t).length!==Object.keys(e).length}:a?(t,e)=>!1:function(t,e){for(let n of s)if(t[n]!==e[n])return!0;return!1};const c=ue.prototype.updateAndRender,h=ue.prototype.initiateRender;return(n,o,s,a,u)=>{let d=s.children,f=d[o];i&&f&&f.component.constructor!==u&&(f=void 0);const p=s.fiber;if(f)(l(f.props,n)||p.deep||f.forceNextRender)&&(f.forceNextRender=!1,c.call(f,n,p));else{if(e){const e=a.constructor.components;if(!e)throw new r(`Cannot find the definition of component "${t}", missing static components key in parent`);if(!(u=e[t]))throw new r(`Cannot find the definition of component "${t}"`);if(!(u.prototype instanceof ve))throw new r(`"${t}" is not a Component. It must inherit from the Component class`)}f=new ue(u,n,this,s,o),d[o]=f,h.call(f,new _t(f,p))}return p.childrenMap[o]=f,f}}handleError(...t){return Tt(...t)}}On.validateTarget=function(t){const e=t&&t.ownerDocument;if(e){if(!e.defaultView)throw new r("Cannot mount a component: the target document is not attached to a window (defaultView is missing)");if(t instanceof e.defaultView.HTMLElement||t instanceof ShadowRoot){if(!function(t,e){let n=t;const o=e.defaultView.ShadowRoot;for(;n;){if(n===e)return!0;if(n.parentNode)n=n.parentNode;else{if(!(n instanceof o&&n.host))return!1;n=n.host}}return!1}(t,e))throw new r("Cannot mount a component on a detached dom node");return}}throw new r("Cannot mount component: the target is not a valid DOM element")},On.apps=Sn,On.version="2.8.3";function Rn(t,e){const n=Object.create(t),o=Object.getOwnPropertyDescriptors(e);return Object.freeze(Object.defineProperties(n,o))}function Ln(t){const e=re();e.childEnv=Rn(e.childEnv,t)}n.shouldNormalizeDom=!1,n.mainEventHandler=(t,n,o)=>{const{data:s,modifiers:i}=e(t);t=s;let l=!1;if(i.length){let t=!1;const e=n.target===o;for(const o of i)switch(o){case"self":if(t=!0,e)continue;return l;case"prevent":(t&&e||!t)&&n.preventDefault();continue;case"stop":(t&&e||!t)&&n.stopPropagation(),l=!0;continue}}if(Object.hasOwnProperty.call(t,0)){const e=t[0];if("function"!=typeof e)throw new r(`Invalid handler (expected a function, received: '${e}')`);let o=t[1]?t[1].__owl__:null;o&&1!==o.status||e.call(o?o.component:null,n)}return l};const Bn={config:n,mount:$t,patch:function(t,e,n=!1){t.patch(e,n)},remove:function(t,e=!1){e&&t.beforeRemove(),t.remove()},list:bt,multi:j,text:z,toggler:s,createBlock:nt,html:wt,comment:H},Pn={version:On.version};Me.prototype._compileTemplate=function(t,e){return An(e,{name:t,dev:this.dev,translateFn:this.translateFn,translatableAttributes:this.translatableAttributes,customDirectives:this.customDirectives,hasGlobalValues:this.hasGlobalValues})},t.App=On,t.Component=ve,t.EventBus=N,t.OwlError=r,t.__info__=Pn,t.batched=$,t.blockDom=Bn,t.htmlEscape=T,t.loadFile=async function(t){const e=await fetch(t);if(!e.ok)throw new r("Error while fetching xml templates");return await e.text()},t.markRaw=Vt,t.markup=E,t.mount=async function(t,e,n={}){return new On(t,n).mount(e,n)},t.onError=function(t){const e=re();let n=Nt.get(e);n||(n=[],Nt.set(e,n)),n.push(t.bind(e.component))},t.onMounted=me,t.onPatched=ge,t.onRendered=function(t){const e=re(),n=e.renderFn,o=e.app.dev?pe:t=>t;t=o(t.bind(e.component),"onRendered"),e.renderFn=()=>{const e=n();return t(),e}},t.onWillDestroy=function(t){const e=re(),n=e.app.dev?pe:t=>t;e.willDestroy.push(n(t.bind(e.component),"onWillDestroy"))},t.onWillPatch=function(t){const e=re(),n=e.app.dev?pe:t=>t;e.willPatch.unshift(n(t.bind(e.component),"onWillPatch"))},t.onWillRender=function(t){const e=re(),n=e.renderFn,o=e.app.dev?pe:t=>t;t=o(t.bind(e.component),"onWillRender"),e.renderFn=()=>(t(),n())},t.onWillStart=function(t){const e=re(),n=e.app.dev?pe:t=>t;e.willStart.push(n(t.bind(e.component),"onWillStart"))},t.onWillUnmount=be,t.onWillUpdateProps=function(t){const e=re(),n=e.app.dev?pe:t=>t;e.willUpdateProps.push(n(t.bind(e.component),"onWillUpdateProps"))},t.reactive=Yt,t.status=function(t){switch(t.__owl__.status){case 0:return"new";case 2:return"cancelled";case 1:return"mounted";case 3:return"destroyed"}},t.toRaw=Ft,t.useChildSubEnv=Ln,t.useComponent=function(){return se.component},t.useEffect=function(t,e=(()=>[NaN])){let n,o;me((()=>{o=e(),n=t(...o)})),ge((()=>{const s=e();s.some(((t,e)=>t!==o[e]))&&(o=s,n&&n(),n=t(...o))})),be((()=>n&&n()))},t.useEnv=function(){return re().component.env},t.useExternalListener=function(t,e,n,o){const s=re(),r=n.bind(s.component);me((()=>t.addEventListener(e,r,o))),be((()=>t.removeEventListener(e,r,o)))},t.useRef=function(t){const e=re().refs;return{get el(){const n=e[t];return x(n)?n:null}}},t.useState=ae,t.useSubEnv=function(t){const e=re();e.component.env=Rn(e.component.env,t),Ln(t)},t.validate=function(t,e){let n=_e(t,e);if(n.length)throw new r("Invalid object: "+n.join(", "))},t.validateType=Ce,t.whenReady=function(t){return new Promise((function(t){"loading"!==document.readyState?t(!0):document.addEventListener("DOMContentLoaded",t,!1)})).then(t||function(){})},t.xml=We,Object.defineProperty(t,"__esModule",{value:!0}),Pn.date="2026-03-30T13:05:32.099Z",Pn.hash="efae3e4",Pn.url="https://github.com/odoo/owl"}(globalThis.owl=globalThis.owl||{});
|
|
3
3
|
|
|
4
|
-
var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var a=(t,e,r)=>Je(t,typeof e!="symbol"?e+"":e,r);var h=globalThis.owl;if(!h)throw new Error("BaseUI: load dist/baseui.min.js or dist/baseui.esm.js before this script (globalThis.owl is not set).");var Ye=h.App,be=h.Component,Xe=h.EventBus,tr=h.OwlError,er=h.__info__,rr=h.batched,nr=h.blockDom,sr=h.htmlEscape,Bt=h.loadFile,or=h.markRaw,Mt=h.markup,ge=h.mount,ir=h.onError,N=h.onMounted,W=h.onPatched,ar=h.onRendered,mt=h.onWillDestroy,ur=h.onWillPatch,cr=h.onWillRender,ft=h.onWillStart,U=h.onWillUnmount,L=h.onWillUpdateProps,lr=h.reactive,pr=h.status,dr=h.toRaw,bt=h.useChildSubEnv,hr=h.useComponent,zt=h.useEffect,mr=h.useEnv,fr=h.useExternalListener,C=h.useRef,E=h.useState,br=h.useSubEnv,gr=h.validate,yr=h.validateType,wr=h.whenReady,Ht=h.xml;var Ct={};function Sr(t){let e=t.components;e?e!==Ct&&Object.getPrototypeOf(e)===Object.prototype&&Object.setPrototypeOf(e,Ct):t.components=Object.create(Ct)}var d=class extends be{constructor(...e){super(...e),Sr(this.constructor)}};function ye(t){return typeof t!="string"||!/\st-(att|attf|model)([.\s=-]|$)/.test(t)?t:t.replace(/<([A-Z][\w.:-]*)(\s[^<>]*?)?(\/?)>/g,(e,r,n="",s="")=>`<${r}${xr(r,n)}${s}>`)}function xr(t,e){let r=/\st-(att|attf|model|on)([.\s=-]|$)/.test(e),n=e.replace(/(\s)t-att\s*=/g,"$1t-props=").replace(/(\s)t-att-([A-Za-z_][\w:.-]*)\s*=/g,"$1$2=").replace(/(\s)t-attf-([A-Za-z_][\w:.-]*)\s*=\s*(["'])(.*?)\3/g,(s,i,u,c,p)=>`${i}${u}=${c}${Er(p)}${c}`);return n=n.replace(/(\s)t-model((?:\.[\w-]+)*)\s*=\s*(["'])(.*?)\3/g,(s,i,u,c,p)=>Tr(t,i,u,c,p,n)),r?vr(n):n}function vr(t){return t.replace(/(\s)([A-Za-z_][\w:.-]*)\s*=\s*(["'])(.*?)\3/g,(e,r,n,s,i)=>n.startsWith("t-")||n==="t-props"||Cr(i)?e:`${r}${n}=${s}${Ar(i)}${s}`)}function Ar(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Cr(t){let e=t.trim();return!e||/^(['"`[{(]|-?\d+(?:\.\d+)?$)/.test(e)||/[?.()[\]+*/]|=>|===|!==|&&|\|\|/.test(e)||/^(true|false|null|undefined)$/.test(e)}function Er(t){return`\`${t.replace(/`/g,"\\`").replace(/{{\s*([\s\S]*?)\s*}}|#\{\s*([\s\S]*?)\s*\}/g,(e,r,n)=>`\${${r||n}}`)}\``}function Tr(t,e,r,n,s,i){let u=/^(Checkbox|Switch)$/.test(t),c=Or(t,r),p=u?"checked":"value",f=new RegExp(`\\s${p}\\s*=`).test(i)?"":`${e}${p}=${n}${s}${n}`,y=new RegExp(`\\s${c}\\s*=`).test(i)?"":`${e}${c}=${n}${Nr(s,r,u)}${n}`;return`${f}${y}`}function Or(t,e){return e.includes(".lazy")?"onChange":/^(Input|Textarea|InputGroupInput|InputGroupTextarea)$/.test(t)?"onInput":"onChange"}function Nr(t,e,r){if(r)return`(value) => { ${t} = value; }`;let n="value";return e.includes(".trim")&&(n=`(typeof ${n} === 'string' ? ${n}.trim() : ${n})`),e.includes(".number")&&(n=`Number.isNaN(Number(${n})) ? ${n} : Number(${n})`),`(value) => { ${t} = ${n}; }`}function we(t,...e){return Array.isArray(t?.raw)?Ht({raw:t.raw.map(ye)},...e):Ht(t,...e)}function Et(t,e,r={}){let n=ye(r.templates);return t.components={...Ct,...t.components||{}},ge(t,e,n===r.templates?r:{...r,templates:n})}function b(...t){let e=[];for(let r of t)if(r){if(typeof r=="string")e.push(r);else if(Array.isArray(r)){let n=b(...r);n&&e.push(n)}else if(typeof r=="object")for(let[n,s]of Object.entries(r))s&&e.push(n)}return e.join(" ")}function o(t){return{type:t,optional:!0}}var g={className:o(String),style:o([String,Object]),slots:o(Object)};function P(t,e,r){return t[e]??(r?t[r]:void 0)}function Tt(t){return t===!0||t==="open"||t==="on"||t==="active"}function Ot(...t){let e=[];for(let r of t)if(r){if(typeof r=="string"){let n=r.trim().replace(/;$/,"");n&&e.push(n)}else if(typeof r=="object")for(let[n,s]of Object.entries(r)){if(s==null||s==="")continue;let i=n.replace(/[A-Z]/g,u=>"-"+u.toLowerCase());e.push(`${i}:${s}`)}}return e.join(";")}function Nt(t){return t.state!==void 0?Tt(t.state):t.open!==void 0?t.open:t["default-open"]!==void 0?t["default-open"]:t.defaultOpen??!1}function qt(t){return t.state!==void 0||t.open!==void 0}var Dt={primary:"bu-badge-primary",secondary:"bu-badge-secondary",success:"bu-badge-success",warning:"bu-badge-warning",danger:"bu-badge-danger",info:"bu-badge-info",muted:"bu-badge-muted"};var j=class extends d{get classNames(){return b("badge",Dt[this.props.variant]||Dt.secondary,this.props.pill&&"rounded-pill",this.props.className)}};a(j,"template","baseui.Badge"),a(j,"props",{variant:o(String),pill:o(Boolean),label:o(String),...g});var kr="__BASEUI_VERSION__",Ft=new Map,gt=new WeakMap,kt="[b-ui], [b-icon]",$r="[data-bs-toggle], [data-bs-target], [data-bs-dismiss]";function Rr(t){return typeof t=="string"?document.querySelector(t):t instanceof Element?t:null}function Wt(t,e,r={}){t.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:r}))}function Lr(t,e={}){return t.hasAttribute("b-icon")?"icon":e.name||t.getAttribute("b-ui")}function Ir(t,e){return e===document||e===t||e.contains(t)}function Ur(t,e={}){return!e.allowBootstrapControl&&t.matches($r)}var Vt=typeof window<"u"?window.thebase:void 0,V=Vt?.register?Vt:Object.assign(Vt||{},{version:kr,register(t,e){if(!t||!e)throw new Error("BaseUI.register requires a name and component definition.");return Ft.set(t,e),this},component(t){return Ft.get(t)},mount(t,e={}){let r=Rr(t);if(!r||Ur(r,e))return null;let n=Lr(r,e),s=Ft.get(n);if(!s)return null;let i=gt.get(r);if(i?.name===n)return i;i&&(i.destroy?.(),gt.delete(r),Wt(r,"baseui:destroyed",{name:i.name}));let u=s.mount?.(r,this,e)||{},c={name:n,element:r,destroy:u.destroy};return gt.set(r,c),Wt(r,"baseui:mounted",{name:n,instance:c}),c},mountAll(t=document){let e=t||document,r=[...e.querySelectorAll?.(kt)||[]];return e instanceof Element&&e.matches(kt)&&r.unshift(e),r.map(n=>this.mount(n)).filter(Boolean)},destroy(t=document){let e=t||document,r=[...e.querySelectorAll?.(kt)||[]];e instanceof Element&&e.matches(kt)&&r.unshift(e);for(let n of r){let s=gt.get(n);s&&Ir(n,e)&&(s.destroy?.(),gt.delete(n),Wt(n,"baseui:destroyed",{name:s.name}))}},theme:{set(t){let e=document.documentElement;if(typeof t=="string"){e.setAttribute("b-theme",t),e.dataset.bsTheme=t;return}for(let[r,n]of Object.entries(t||{})){let s=r==="radius"||r==="--b-radius"?"--base-radius":r.startsWith("--")?r:`--b-${r}`;e.style.setProperty(s,n)}}}});typeof window<"u"&&(window.thebase=V,window.BaseUI=V);var Se="1.31.0",Pr=`https://cdn.jsdelivr.net/npm/lucide-static@${Se}/icons`,Rt="file",jr=/^[a-z0-9][a-z0-9-]*$/,Gt=new Map;function _r(t){return typeof Image>"u"?Promise.resolve(!0):(Gt.has(t)||Gt.set(t,new Promise(e=>{let r=new Image;r.onload=()=>e(!0),r.onerror=()=>e(!1),r.src=t})),Gt.get(t))}function $t(t){return String(t||"").trim().replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function yt(t,e={}){let r=$t(t);if(!jr.test(r))throw new Error(`BaseUI icon name is invalid: ${t}`);return`${String(e.baseUrl||V.icons.lucide.cdnBaseUrl).replace(/\/+$/,"")}/${r}.svg`}function Zt(t,e,r={}){let n=r.url||yt(e,r),s=r.label??t.getAttribute("aria-label")??"";t.classList.add("bu-icon"),t.style.setProperty("--b-icon-url",`url("${n.replace(/"/g,"%22")}")`),(r.size||t.getAttribute("b-att-size"))&&t.style.setProperty("--b-icon-size",r.size||t.getAttribute("b-att-size")),s?(t.setAttribute("role","img"),t.setAttribute("aria-label",s)):t.setAttribute("aria-hidden","true");let i=r.fallback===!1?null:r.fallback||Rt;return i&&!r.url&&$t(e)!==$t(i)&&_r(n).then(u=>{if(u||!t.isConnected)return;let c=yt(i,r);t.style.setProperty("--b-icon-url",`url("${c.replace(/"/g,"%22")}")`)}),t}V.icons={...V.icons||{},lucide:{version:Se,cdnBaseUrl:Pr,normalizeName:$t,url:yt,render:Zt}};var wt={default:"btn-primary",secondary:"btn-secondary",destructive:"btn-danger",outline:"btn-outline-secondary",ghost:"btn-light",link:"btn-link"},Lt={xs:"btn-xs",sm:"btn-sm",lg:"btn-lg",icon:"btn-icon","icon-xs":"btn-icon-xs","icon-sm":"btn-icon-sm","icon-lg":"btn-icon-lg"};var ps=["btn","bu-button","bu-clipboard-button",...Object.values(wt),...Object.values(Lt)];async function xe(t){let e=String(t??"");if(globalThis.navigator?.clipboard?.writeText)try{await globalThis.navigator.clipboard.writeText(e);return}catch{}if(typeof document>"u")throw new Error("BaseUI ClipboardButton: no clipboard API available in this environment.");let r=document.createElement("textarea");r.value=e,r.setAttribute("readonly",""),r.style.position="fixed",r.style.opacity="0",r.style.pointerEvents="none",document.body.append(r),r.select(),r.setSelectionRange(0,e.length);let n;try{n=document.execCommand("copy")}catch{n=!1}if(r.remove(),!n)throw new Error("BaseUI ClipboardButton: clipboard copy is unavailable in this browser/context.")}var Kt,Qt,Jt,Br=0;function Mr(){return Kt??(Kt=import("./runtime/marked/marked.min.js").then(t=>{let e=t.marked||t.default?.marked||globalThis.marked;if(!e?.parse)throw new Error("BaseUI markdown: failed to load src/runtime/marked/marked.min.js");return e})),Kt}function zr(t){let e=t.closest("[data-bs-theme]")?.getAttribute("data-bs-theme")||document.documentElement.getAttribute("data-bs-theme");return(e?e==="dark":window.matchMedia?.("(prefers-color-scheme: dark)").matches)?"dark":"default"}function Hr(){return Qt??(Qt=import("./runtime/mermaid/mermaid.esm.min.mjs").then(t=>{let e=t.default||t;return e.initialize({startOnLoad:!1,securityLevel:"strict"}),e})),Qt}function qr(){return Jt??(Jt=import("./runtime/milkdown/milkdown-editor.js")),Jt}async function ve(t,e={}){return(await Mr()).parse(String(t??""),{gfm:!0,breaks:!1,...e})}function Xt(t,e,r,n=""){t.classList.add("bu-markdown-diagram-error"),t.replaceChildren();let s=document.createElement("p");if(s.className="bu-markdown-diagram-error-message",s.textContent=`Unable to render ${e} diagram: ${r?.message||r}`,t.append(s),n){let i=document.createElement("pre"),u=document.createElement("code");u.textContent=n,i.append(u),t.append(i)}}async function Dr(t){let e=[...t.querySelectorAll("pre > code.language-mermaid")];if(!e.length)return;let r;try{r=await Hr()}catch(n){e.forEach(s=>{let i=s.closest("pre");i.replaceChildren(),i.className="bu-markdown-diagram bu-markdown-mermaid",Xt(i,"mermaid",n,s.textContent)});return}r.initialize({startOnLoad:!1,securityLevel:"strict",theme:zr(t)});for(let n of e){let s=n.textContent,i=n.closest("pre");i.replaceChildren(),i.className="bu-markdown-diagram bu-markdown-mermaid";try{let{svg:u}=await r.render(`bu-mermaid-${++Br}`,s);i.innerHTML=u}catch(u){Xt(i,"mermaid",u,s)}}}function Fr(t){let e=globalThis.thebase;if(!e?.mountAll)return;let r=document.createElement("div");r.setAttribute("b-ui","toast"),r.setAttribute("b-att-state","open"),r.setAttribute("b-att-delay","2000"),r.className="bu-markdown-bu-copy-toast",r.textContent=t,document.body.append(r),e.mountAll(r),r.addEventListener("baseui:close",()=>r.remove(),{once:!0})}function Wr(t){let e=document.createElement("div");e.className="bu-markdown-bu-code";let r=document.createElement("button");r.type="button",r.className="bu-markdown-bu-copy";let n=document.createElement("span");Zt(n,"copy",{label:"Copy code"}),r.append(n),r.addEventListener("click",async()=>{try{await xe(t),r.dispatchEvent(new CustomEvent("baseui:markdown-copy",{bubbles:!0,detail:{source:t}})),Fr("Copied to clipboard")}catch(u){r.dispatchEvent(new CustomEvent("baseui:markdown-copy-error",{bubbles:!0,detail:{error:u}}))}}),e.append(r);let s=document.createElement("pre"),i=document.createElement("code");i.className="bu-markdown-bu-code-lines";for(let u of t.replace(/\n$/,"").split(`
|
|
5
|
-
`)){let c=document.createElement("span");c.className="bu-markdown-bu-code-line",c.textContent=u,i.append(c)}return s.append(i),e.append(s),e}var Yt;function Vr(){return Yt??(Yt=Bt("/dist/baseui.templates.xml")),Yt}var te=new WeakMap;function ee(t){let e=te.get(t);if(e){te.delete(t);for(let r of e)try{r.destroy()}catch{}}}var Gr=/\bstate\.([A-Za-z_$][\w$]*)/g;function Zr(t){return new Set([...t.matchAll(Gr)].map(e=>e[1]))}var Kr=/\bthis\.([A-Za-z_$][\w$]*)\s*\(/g,Qr=/\bt-on-[\w:-]+\s*=\s*(["'])([A-Za-z_$][\w$]*)\1/g;function Jr(t){let e=new Set;for(let r of t.matchAll(Kr))e.add(r[1]);for(let r of t.matchAll(Qr))e.add(r[2]);return e}function Yr(t){let e=we({raw:[t]}),r=Zr(t);class n extends d{setup(){this.state=E(Object.fromEntries([...r].map(i=>[i,""])))}}a(n,"template",e);for(let s of Jr(t))n.prototype[s]=function(){};return n}function Ae(t){t.querySelector("[data-slot='dropdown-menu'], .bu-dropdown-menu, [b-ui='dropdown-menu'], [b-dropdown-menu]")&&t.classList.add("bu-markdown-bu-preview-overlay")}async function Xr(t,e){let[r,n]=await Promise.all([Vr(),Yr(e)]),s=await Et(n,t,{templates:r});return Ae(t),s}function tn(t,e){let r=globalThis.thebase;if(!r?.mountAll)throw new Error("BaseUI runtime not found on the page \u2014 load dist/baseui.min.js before mounting Markdown.");t.innerHTML=e,Ae(t),r.mountAll(t)}async function en(t){ee(t);let e=[...t.querySelectorAll("pre > code.language-base-ui")];if(!e.length)return;let r=new Set;for(let n of e){let s=n.textContent,i=n.closest("pre");i.replaceChildren(),i.className="bu-markdown-live bu-markdown-baseui";let u=document.createElement("div");u.className="bu-markdown-bu-preview",i.append(u,Wr(s));try{/<[A-Z]/.test(s)?r.add(await Xr(u,s)):tn(u,s)}catch(c){Xt(i,"BaseUI component",c,s)}}r.size&&te.set(t,r)}async function Ce(t,{mermaid:e=!0,baseUi:r=!0}={}){e&&await Dr(t),r&&await en(t)}async function Ee(t){return(await qr()).createMilkdownMarkdownEditor(t)}function Oe(t){let e=String(t??""),r=/^---\r?\n([\s\S]*?)\r?\n---[ \t]*\r?\n?/.exec(e);if(!r)return{data:{},content:e};let n={};for(let s of r[1].split(/\r?\n/)){let i=s.trim();if(!i||i.startsWith("#"))continue;let u=i.indexOf(":");if(u===-1)continue;let c=i.slice(0,u).trim();c&&(n[c]=rn(i.slice(u+1).trim()))}return{data:n,content:e.slice(r[0].length)}}function Te(t){return t.length>=2&&(t[0]==='"'&&t.at(-1)==='"'||t[0]==="'"&&t.at(-1)==="'")?t.slice(1,-1):t}function rn(t){if(t==="")return"";if(t==="true")return!0;if(t==="false")return!1;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith("[")&&t.endsWith("]")){let e=t.slice(1,-1).trim();return e?e.split(",").map(r=>Te(r.trim())):[]}return Te(t)}var _=class extends d{setup(){this.rootRef=C("root"),this.editorRef=C("editor"),this.editorHandle=null,this.state=E({html:"",source:"",status:"loading",error:"",frontmatter:{}}),ft(()=>this.load(this.props)),L(e=>{if(this.shouldReload(e))return this.load(e);this.shouldRestartEditor(e)&&this.destroyEditor()}),N(()=>this.afterRender()),W(()=>this.afterRender()),mt(()=>{this.destroyEditor(),this.rootRef.el&&ee(this.rootRef.el)})}get classNames(){return b("bu-markdown",this.props.className)}get editorLabel(){return this.props.collaborative?"Collaborative Markdown editor":"Markdown editor"}shouldReload(e){return e.content!==this.props.content||e.src!==this.props.src}shouldRestartEditor(e){return e.editable!==this.props.editable||e.collaborative!==this.props.collaborative||e.room!==this.props.room||e.password!==this.props.password||e.signaling!==this.props.signaling}async load(e){this.destroyEditor(),this.state.status="loading",this.state.error="";let r=e.content??"";if(e.src)try{let n=await fetch(e.src);if(!n.ok)throw new Error(`${n.status} ${n.statusText}`);r=await n.text()}catch(n){this.state.status="error",this.state.error=n.message||String(n);return}try{this.state.source=r;let{data:n,content:s}=Oe(r);this.state.frontmatter=n,this.state.html=Mt(await ve(s)),this.state.status="ready"}catch(n){this.state.status="error",this.state.error=n.message||String(n)}}get hasFrontmatterMeta(){let e=this.state.frontmatter;return!!(e.tags?.length||e.authors?.length)}enhance(){let e=this.rootRef.el;!e||this.state.status!=="ready"||Ce(e,{mermaid:this.props.mermaid!==!1,baseUi:this.props.baseUi!==!1})}afterRender(){this.props.editable?this.mountEditor():this.enhance()}async mountEditor(){let e=this.editorRef.el;if(!(!e||this.editorHandle||this.state.status!=="ready"))try{this.editorHandle=await Ee({root:e,value:this.state.source,collaborative:!!this.props.collaborative,room:this.props.room||"bu-markdown",password:this.props.password,signaling:this.props.signaling,user:this.props.user,onChange:(r,n,s)=>{this.state.source=r,this.props.onChange?.(r,n,s)}})}catch(r){this.state.status="error",this.state.error=r.message||String(r)}}destroyEditor(){this.editorHandle?.destroy?.(),this.editorHandle=null}};a(_,"template","baseui.Markdown"),a(_,"components",{Badge:j}),a(_,"props",{content:o(String),src:o(String),mermaid:o(Boolean),baseUi:o(Boolean),editable:o(Boolean),collaborative:o(Boolean),room:o(String),password:o(String),signaling:o(Array),user:o(Object),onChange:o(Function),className:o(String),style:o([String,Object])});var O=class extends d{setup(){this.state=E({failed:!1}),zt(e=>{if(this.state.failed=!1,typeof Image>"u"||!e||e===Rt)return;let r=new Image;return r.onerror=()=>{this.state.failed=!0},r.src=this.buildUrl(e),()=>{r.onload=null,r.onerror=null}},()=>[this.name])}buildUrl(e){return yt(e,{baseUrl:P(this.props,"base-url","baseUrl")})}get name(){return P(this.props,"icon","name")}get url(){return this.buildUrl(this.state.failed?Rt:this.name)}get style(){let e=[`--b-icon-url:url("${this.url.replace(/"/g,"%22")}")`];return this.props.size&&e.push(`--b-icon-size:${this.props.size}`),Ot(e.join(";"),this.props.style)}get classNames(){return b("bu-icon",this.props.className)}};a(O,"template","baseui.Icon"),a(O,"props",{icon:o(String),name:o(String),label:o(String),title:o(String),size:o(String),"base-url":o(String),baseUrl:o(String),className:o(String),style:o([String,Object])});var $=class extends d{setup(){this.rootRef=C("root"),this.props.getRef&&(N(()=>this.props.getRef(this.rootRef.el)),U(()=>this.props.getRef(null)))}get classNames(){return this.props.unstyled?b(this.props.className):b("btn","bu-button",wt[this.props.variant]||wt.default,Lt[this.props.size],this.isIconOnly&&"bu-button-icon",this.props.className)}get iconPosition(){return P(this.props,"icon-position","iconPosition")==="end"?"end":"start"}get ariaLabel(){return P(this.props,"aria-label","ariaLabel")}get ariaPressed(){return P(this.props,"aria-pressed","ariaPressed")}get ariaInvalid(){let e=P(this.props,"aria-invalid","ariaInvalid");return e===!0?"true":e}get isIconOnly(){return!!(this.props.icon&&!this.props.label&&!this.props.slots?.default)}onClick(e){if(this.props.href&&this.props.disabled){e.preventDefault();return}this.props.onClick?.(e)}};a($,"template","baseui.Button"),a($,"components",{Icon:O}),a($,"props",{variant:o(String),size:o(String),type:o(String),href:o(String),disabled:o(Boolean),label:o(String),icon:o(String),"icon-position":o(String),iconPosition:o(String),unstyled:o(Boolean),attrs:o(Object),getRef:o(Function),...g,id:o(String),title:o(String),"aria-label":o(String),ariaLabel:o(String),"aria-pressed":o(String),ariaPressed:o(String),"aria-invalid":o([String,Boolean]),ariaInvalid:o([String,Boolean]),onClick:o(Function)});var G=class extends d{onChange(e){this.props.onChange?.(e.target.checked,e)}};a(G,"template","baseui.Checkbox"),a(G,"props",{checked:o(Boolean),disabled:o(Boolean),...g,id:o(String),onChange:o(Function)});function B(){let t=globalThis.bootstrap;if(!t)throw new Error("BaseUI: load dist/bootstrap.bundle.min.js before this script (globalThis.bootstrap is not set).");return t}function Ne(t,e){L(r=>{qt(r)&&(t.open=Nt(r),t.open?e?.instance?.show():e?.instance?.hide())})}function ke(t,e,r){qt(t)||(e.open=r),t.onOpenChange?.(r)}var Z=class extends d{setup(){this.dialogState=E({open:Nt(this.props)}),this.control={instance:null},bt({dialog:this.dialogState,dialogControl:this.control,setDialogOpen:e=>this.setOpen(e)}),Ne(this.dialogState,this.control)}setOpen(e){ke(this.props,this.dialogState,e)}};a(Z,"template","baseui.Dialog"),a(Z,"props",{open:o(Boolean),state:o(String),"default-open":o(Boolean),defaultOpen:o(Boolean),onOpenChange:o(Function),style:o([String,Object]),slots:o(Object)});var M=class extends d{setup(){this.rootRef=C("root"),this.previousFocus=null,this.onShow=()=>{this.previousFocus=document.activeElement},this.onShown=()=>this.env.setDialogOpen(!0),this.onHidden=()=>{this.env.setDialogOpen(!1),this.previousFocus?.focus?.(),this.previousFocus=null},N(()=>{this.env.dialogControl.instance=B().Modal.getOrCreateInstance(this.rootRef.el,{backdrop:!0,keyboard:!0,focus:!0}),this.rootRef.el.addEventListener("show.bs.modal",this.onShow),this.rootRef.el.addEventListener("shown.bs.modal",this.onShown),this.rootRef.el.addEventListener("hidden.bs.modal",this.onHidden),this.env.dialog.open&&this.env.dialogControl.instance.show()}),U(()=>{this.rootRef.el.removeEventListener("show.bs.modal",this.onShow),this.rootRef.el.removeEventListener("shown.bs.modal",this.onShown),this.rootRef.el.removeEventListener("hidden.bs.modal",this.onHidden),this.env.dialogControl.instance?.dispose(),this.env.dialogControl.instance=null})}get showCloseButton(){return this.props.showCloseButton!==!1&&this.props["show-close-button"]!==!1}};a(M,"template","baseui.DialogContent"),a(M,"components",{Button:$}),a(M,"props",{...g,showCloseButton:o(Boolean),"show-close-button":o(Boolean)});var K=class extends d{};a(K,"template","baseui.DialogHeader"),a(K,"props",g);var Q=class extends d{};a(Q,"template","baseui.DialogFooter"),a(Q,"props",g);var J=class extends d{};a(J,"template","baseui.DialogTitle"),a(J,"props",g);var Y=class extends d{};a(Y,"template","baseui.DialogDescription"),a(Y,"props",g);var X=class extends d{setup(){this.state=E({open:Tt(this.props.state)}),this.triggerRef=C("trigger"),this.bufferRef=C("buffer"),this.bootstrapTooltip=null,this.lastContentHtml=null,this.onShown=()=>{this.state.open=!0},this.onHidden=()=>{this.state.open=!1},N(()=>{this.lastContentHtml=this.currentContentHtml();let e=this.triggerElement();this.bootstrapTooltip=new(B()).Tooltip(e,{title:this.lastContentHtml,html:!0,trigger:"hover focus"}),e.addEventListener("shown.bs.tooltip",this.onShown),e.addEventListener("hidden.bs.tooltip",this.onHidden),Tt(this.props.state)&&this.bootstrapTooltip.show()}),W(()=>{let e=this.currentContentHtml();e!==this.lastContentHtml&&(this.lastContentHtml=e,this.bootstrapTooltip?.setContent({".tooltip-inner":e}))}),U(()=>{let e=this.triggerElement();e?.removeEventListener("shown.bs.tooltip",this.onShown),e?.removeEventListener("hidden.bs.tooltip",this.onHidden),this.bootstrapTooltip?.dispose()})}triggerElement(){return this.triggerRef.el?.firstElementChild||this.triggerRef.el}currentContentHtml(){return this.props.content??this.bufferRef.el?.innerHTML??""}show(){this.bootstrapTooltip?.show()}hide(){this.bootstrapTooltip?.hide()}};a(X,"template","baseui.Tooltip"),a(X,"props",{content:o(String),state:o(String),...g});var nn=0,tt={label:o(String),labelBackground:o(String),supportingText:o(String),useTip:o(Number),errorText:o(String),leadingIcon:o(String),trailingIcon:o(String),maxLength:o(Number),invalid:o(Boolean),placeholder:o(String),disabled:o(Boolean)},I=class extends d{setup(){this.supportId=`bu-input-support-${nn++}`}get field(){return this.env.fieldProps?.()??{}}get label(){return this.props.label??this.field.label}get labelStyle(){let e=this.props.labelBackground??this.field.labelBackground;return e?`--bu-label-bg:${e}`:void 0}get isOutlined(){return!!this.label}get isInvalid(){return!!(this.props.invalid||this.field.invalid||this.errorText)}get errorText(){return this.props.errorText??this.field.error}get helperText(){return this.props.supportingText||this.field.description}get useTip(){return Number(this.props.useTip??this.field.useTip??0)===1}get supportingText(){return this.errorText||(this.useTip?void 0:this.helperText)}get tipText(){return this.useTip&&!this.errorText?this.helperText:void 0}get leadingIcon(){return this.props.leadingIcon}get trailingIcon(){return this.isInvalid?"circle-alert":this.props.trailingIcon}get fieldPlaceholder(){return this.props.placeholder??(this.isOutlined?" ":void 0)}get counter(){return`${(this.props.value??"").length}/${this.props.maxLength}`}get controlClass(){return this.isOutlined&&"bu-outlined-control"}get describedBy(){return this.supportingText?this.supportId:void 0}get outlinedClassNames(){return b("bu-input-outlined",this.isInvalid&&"is-invalid",this.props.disabled&&"is-disabled",this.props.placeholder&&"has-placeholder",this.tipText&&"has-tip",this.leadingIcon&&"has-leading",this.trailingIcon&&"has-trailing")}};a(I,"components",{Icon:O,Tooltip:X});function $e({tag:t="input",type:e}={}){return t==="select"?"form-select":e==="checkbox"||e==="radio"?"form-check-input":"form-control"}var et=class extends I{get ariaLabel(){return this.props["aria-label"]??this.props.ariaLabel}get classNames(){return b("bu-input",$e({tag:"input",type:this.props.type}),this.controlClass,this.isInvalid&&"is-invalid",this.props.className)}onInput(e){this.props.onInput?.(e.target.value,e)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(et,"template","baseui.Input"),a(et,"props",{...tt,value:o(String),type:o(String),readonly:o(Boolean),className:o(String),style:o([String,Object]),id:o(String),list:o(String),autocomplete:o(String),"aria-label":o(String),ariaLabel:o(String),min:o([String,Number]),max:o([String,Number]),step:o([String,Number]),onInput:o(Function),onChange:o(Function)});var rt=class extends I{get ariaLabel(){return this.props["aria-label"]??this.props.ariaLabel}get classNames(){return b("bu-native-select","form-select",this.controlClass,this.isInvalid&&"is-invalid",(this.props.size==="sm"||this.props.size==="lg")&&`form-select-${this.props.size}`,this.props.className)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(rt,"template","baseui.NativeSelect"),a(rt,"props",{...tt,value:o(String),size:o(String),...g,"aria-label":o(String),ariaLabel:o(String),id:o(String),onChange:o(Function)});var nt=class extends I{get outlinedClassNames(){return b(super.outlinedClassNames,"is-anchored")}get classNames(){return b("form-control",this.controlClass,this.isInvalid&&"is-invalid",this.props.resize==="none"&&"bu-textarea-no-resize",this.props.className)}onInput(e){this.props.onInput?.(e.target.value,e)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(nt,"template","baseui.Textarea"),a(nt,"props",{...tt,value:o(String),rows:o(Number),readonly:o(Boolean),resize:o(String),className:o(String),style:o([String,Object]),id:o(String),onInput:o(Function),onChange:o(Function)});var re={default:"bu-tabs-list-default",line:"bu-tabs-list-line"};function Re(t,e,r,n="horizontal"){let s=n==="vertical",c=t===(s?"ArrowDown":"ArrowRight")?1:t===(s?"ArrowUp":"ArrowLeft")?-1:0;return!c||r===0?-1:(e+c+r)%r}var sn=0;function Le(t){return String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}var st=class extends d{setup(){this.tabsState=E({active:this.props.value??this.props.defaultValue??""}),this.instanceId=`t${++sn}`,bt({tabs:this.tabsState,selectTab:e=>this.select(e),tabsId:this.instanceId,orientation:this.orientation}),L(e=>{e.value!==void 0&&(this.tabsState.active=e.value)})}get orientation(){return this.props.orientation==="vertical"?"vertical":"horizontal"}get classNames(){return b("bu-tabs",this.props.className)}select(e){this.props.value===void 0&&(this.tabsState.active=e),this.props.onChange?.(e)}};a(st,"template","baseui.Tabs"),a(st,"props",{value:o(String),defaultValue:o(String),orientation:o(String),onChange:o(Function),...g});var ot=class extends d{};a(ot,"template","baseui.TabsContainer"),a(ot,"props",{...g});var it=class extends d{setup(){this.listRef=C("list")}get classNames(){return b("bu-tabs-list",re[this.props.variant]||re.default,this.props.className)}onKeyDown(e){let r=[...this.listRef.el.querySelectorAll("[role='tab']")],n=r.indexOf(e.target),s=Re(e.key,n,r.length,this.env.orientation);s!==-1&&(e.preventDefault(),r[s].focus(),r[s].click())}};a(it,"template","baseui.TabsList"),a(it,"props",{variant:o(String),...g});var z=class extends d{setup(){this.rootEl=null,this.tabInstance=null,this.onShown=()=>this.env.selectTab(this.props.value)}onRootRef(e){e?(this.rootEl=e,this.tabInstance=B().Tab.getOrCreateInstance(e),e.addEventListener("shown.bs.tab",this.onShown)):this.rootEl&&(this.rootEl.removeEventListener("shown.bs.tab",this.onShown),this.tabInstance?.dispose(),this.tabInstance=null,this.rootEl=null)}get isActive(){return this.env.tabs.active===this.props.value}get panelId(){return`bu-tabs-panel-${this.env.tabsId}-${Le(this.props.value)}`}get classNames(){return b("bu-tabs-trigger",this.isActive&&"active",this.props.className)}get tabAttrs(){return{role:"tab","data-bs-target":`#${this.panelId}`,"aria-selected":this.isActive?"true":"false",tabindex:this.isActive?0:-1}}onClick(){this.props.disabled||this.tabInstance?.show()}};a(z,"template","baseui.TabTrigger"),a(z,"components",{Button:$}),a(z,"props",{value:{type:String},disabled:o(Boolean),...g});var at=class extends d{setup(){this.initialActive=this.isActive}get isActive(){return this.env.tabs.active===this.props.value}get panelId(){return`bu-tabs-panel-${this.env.tabsId}-${Le(this.props.value)}`}};a(at,"template","baseui.TabContent"),a(at,"props",{value:{type:String},...g});var ut=class extends d{};a(ut,"template","baseui.Breadcrumb"),a(ut,"props",{...g});var ct=class extends d{};a(ct,"template","baseui.BreadcrumbList"),a(ct,"props",{...g});var lt=class extends d{get classNames(){return b("bu-breadcrumb-item",this.props.current&&"bu-breadcrumb-page",this.props.className)}};a(lt,"template","baseui.BreadcrumbItem"),a(lt,"props",{current:o(Boolean),...g});var pt=class extends d{get classNames(){return b("bu-breadcrumb-link",this.props.className)}onClick(e){this.props.onClick?.(e)}};a(pt,"template","baseui.BreadcrumbLink"),a(pt,"props",{href:o(String),target:o(String),rel:o(String),...g,onClick:o(Function)});var dt=class extends d{get classNames(){return b("bu-breadcrumb-page",this.props.className)}};a(dt,"template","baseui.BreadcrumbPage"),a(dt,"props",{...g});var H=class extends d{get classNames(){return b("bu-breadcrumb-separator",this.props.className)}get hasCustomContent(){return!!this.props.slots?.default}};a(H,"template","baseui.BreadcrumbSeparator"),a(H,"components",{Icon:O}),a(H,"props",{...g});var St=class extends d{get classNames(){return b("bu-breadcrumb-ellipsis",this.props.className)}get hasCustomContent(){return!!this.props.slots?.default}};a(St,"template","baseui.BreadcrumbEllipsis"),a(St,"components",{Icon:O}),a(St,"props",{...g});var oe=["get","post","put","patch","delete","options","head","trace","query"];function on(t,e,r){let n=String(t||"").trim();if(!n)return"";let s=n.replace(/\{([^}]+)\}/g,(i,u)=>{let c=r&&typeof r=="object"?r[u]:null;return c&&c.default!==void 0?String(c.default):`{${u}}`});try{return new URL(s,`${e}/`).href.replace(/\/$/,"")}catch{return s.replace(/\/$/,"")}}function A(t,e){if(t&&typeof t=="object"&&typeof t.$ref=="string"){let r=t.$ref.replace(/^#\//,"").split("/"),n=e;for(let s of r)n=n?.[decodeURIComponent(s.replace(/~1/g,"/").replace(/~0/g,"~"))];return n?{...n}:{}}return t}function ae(t,e){if(!Array.isArray(t?.allOf))return t;let r={...t,properties:{...t.properties},required:[...t.required||[]]};delete r.allOf;for(let n of t.allOf){let s=ae(A(n,e),e)||{};Object.assign(r.properties,s.properties),r.required.push(...s.required||[]),r.type||(r.type=s.type)}return r}function an(t,e){if(!t)return null;let r=A(t,e);return!r||typeof r!="object"?null:r}function ie(t){return t&&typeof t.$ref=="string"?t.$ref.split("/").pop():null}function Ue(t,e){if(!t||typeof t!="object")return null;for(let[r,n]of Object.entries(t)){let s=an(n,e);if(s){if(s.dataValue!==void 0)return{key:r,label:s.summary||r,value:s.dataValue,isAuto:!1};if(s.serializedValue!==void 0)return{key:r,label:s.summary||r,value:s.serializedValue,isAuto:!1};if(s.value!==void 0)return{key:r,label:s.summary||r,value:s.value,isAuto:!1};if(s.externalValue)return{key:r,label:s.summary||r,value:s.externalValue,isAuto:!1}}}return null}function ue(t){if(t){if(t.example!==void 0)return t.example;if(t.default!==void 0)return t.default;if(Array.isArray(t.enum)&&t.enum.length)return t.enum[0]}}function ne(t,e){if(!t)return null;let r=Ue(t.examples,e);if(r)return r;if(t.example!==void 0)return{label:"media example",value:t.example,isAuto:!1};let n=A(t.schema,e),s=ue(n);return s!==void 0?{label:"schema example",value:s,isAuto:!1}:null}function Pe(t,e){let r=Ue(t.examples,e);if(r)return r;if(t.example!==void 0)return{label:"example",value:t.example,isAuto:!1};let n=A(t.schema,e),s=ue(n);return s!==void 0?{label:"schema example",value:s,isAuto:!1}:null}function ht(t,e,r=new Set){if(!t)return null;let n=ie(t);if(n){if(r.has(n))return{};r=new Set(r).add(n)}let s=ae(A(t,e),e);if(!s)return null;let i=ue(s);if(i!==void 0)return i;if(s.type==="array"||s.items)return[ht(s.items||{},e,r)];if(s.properties||s.type==="object"){let u={};for(let[c,p]of Object.entries(s.properties||{}))u[c]=ht(p,e,r);return u}switch(s.type){case"integer":return s.minimum??0;case"number":return s.minimum??0;case"boolean":return!0;case"string":return s.format==="date-time"?new Date().toISOString():s.format==="date"?new Date().toISOString().slice(0,10):s.format==="byte"?"base64==":s.title||"string";default:return null}}function xt(t,e,{depth:r=0,prefix:n="",seen:s=new Set,required:i=!1,selfRow:u=!0}={}){if(!t||r>4)return[];let c=ie(t);if(c){if(s.has(c))return[];s=new Set(s).add(c)}let p=ae(A(t,e),e),f=[],y=p.contentMediaType||p.contentEncoding?[p.contentMediaType,p.contentEncoding&&`encoding:${p.contentEncoding}`].filter(Boolean).join(", "):"",S=p.discriminator?.propertyName?`discriminator: ${p.discriminator.propertyName}`:"";if(Array.isArray(p.prefixItems))return u&&f.push({path:n||"items",type:"tuple",required:i,description:p.description||""}),p.prefixItems.forEach((x,v)=>{f.push(...xt(x,e,{depth:r+1,prefix:`${n}[${v}]`,seen:s,required:!1}))}),p.items&&f.push(...xt(p.items,e,{depth:r+1,prefix:`${n}[n]`,seen:s,required:!1})),f;if(p.type==="array"||p.items)return u&&f.push({path:n||"items",type:"array",required:i,description:p.description||""}),f.push(...xt(p.items||{},e,{depth:r+1,prefix:`${n}[]`,seen:s,required:!1})),f;if(p.properties||p.type==="object"||p.patternProperties){let x=new Set(p.required||[]);for(let[v,l]of Object.entries(p.properties||{})){let w=A(l,e),k=n?`${n}.${v}`:v;f.push({path:k,type:w.type||(w.$ref?ie(l):"any")||"any",format:w.format||"",enum:w.enum,required:x.has(v),description:w.description||""}),(w.type==="object"||w.properties||w.type==="array"||w.items)&&f.push(...xt(l,e,{depth:r+1,prefix:k,seen:s,required:x.has(v),selfRow:!1}))}for(let[v,l]of Object.entries(p.patternProperties||{})){let w=A(l,e);f.push({path:n?`${n}.<${v}>`:`<${v}>`,type:w.type||"any",format:w.format||"",required:!1,description:w.description||""})}return f}return f.push({path:n||"value",type:p.type||"any",format:p.format||"",enum:p.enum,required:i,description:[p.description,y,S].filter(Boolean).join(" \u2014 ")}),f}function un(t){let e=Pe(t,this);return{name:t.name,in:t.in,required:!!t.required,type:t.type||t.schema?.type||"string",format:t.format||t.schema?.format||"",description:t.description||"",default:t.default??t.schema?.default,enum:t.enum||t.schema?.enum,example:e?e.value:void 0,exampleLabel:e?e.label:""}}var cn={authorizationCode:"accessCode",implicit:"implicit",password:"password",clientCredentials:"application"};function ln(t){if(t.type==="http")return{...t,type:String(t.scheme).toLowerCase()==="basic"?"basic":"bearer"};if(t.type==="openIdConnect")return{...t,type:"bearer",oauth2MetadataUrl:t.openIdConnectUrl};if(t.type!=="oauth2"||!t.flows)return t;let[e,r]=Object.entries(t.flows)[0]||[];return{...t,...r,flow:cn[e]||e,scopes:r?.scopes||{}}}function je(t){let e=t.securityDefinitions||t.components?.securitySchemes||{};return Object.fromEntries(Object.entries(e).map(([r,n])=>[r,ln(A(n,t))]))}function pn(t,e){let r=je(e),n=t.security||e.security||[],s=[];for(let i of n)for(let u of Object.keys(i)){let c=r[u];c&&s.push({key:u,...c})}return s}function se(t,e,r,n){let s={path:[],query:[],header:[],formData:[],body:null};for(let f of n.parameters||[]){let y=A(f,t);if(y.in==="body"){let S={schema:y.schema},x=ne(S,t);s.body={required:!!y.required,schema:y.schema,description:y.description||"",contentType:"application/json",example:x?x.value:ht(y.schema,t),exampleLabel:x?x.label:"auto",exampleIsAuto:!x}}else s[y.in]&&s[y.in].push(un.call(t,y))}if(n.requestBody){let f=A(n.requestBody,t)||{},[y,S]=Object.entries(f.content||{})[0]||[];if(y&&S){let x=ne(S,t);s.body={required:!!f.required,schema:S.schema||null,description:f.description||"",contentType:y,encoding:S.encoding||null,itemSchema:S.itemSchema||null,example:x?x.value:ht(S.schema,t),exampleLabel:x?x.label:"auto",exampleIsAuto:!x}}}let i=Object.entries(n.responses||{}).map(([f,y])=>{let S=A(y,t)||{},[x,v]=Object.entries(S.content||{})[0]||[],l=v?ne(v,t):null;return{status:f,summary:S.summary||"",description:S.description||"",contentType:x||"application/json",schema:v?.schema||S.schema||null,encoding:v?.encoding||null,headers:dn(S.headers,t),links:hn(S.links,t),example:l?l.value:v?.schema?ht(v.schema,t):null,exampleLabel:l?l.label:"auto",exampleIsAuto:!l&&!!v?.schema}}).sort((f,y)=>{let S=Ie(f.status),x=Ie(y.status);return S-x}),u=mn(n.callbacks,t),c=r.toUpperCase();return{id:(n.operationId||`${r}-${e}`).replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase(),method:c,path:e,tag:n.tags&&n.tags[0]||"default",summary:n.summary||n.operationId||`${c} ${e}`,description:n.description||"",deprecated:!!n.deprecated,produces:n.produces||t.produces||["application/json"],consumes:n.consumes||t.consumes||(s.body?["application/json"]:[]),parameters:s,responses:i,callbacks:u,externalDocs:n.externalDocs||null,security:pn(n,t)}}function dn(t,e){return!t||typeof t!="object"?[]:Object.entries(t).map(([r,n])=>{let s=A(n,e)||{},i=Pe({...s,in:"header"},e);return{name:r,required:!!s.required,deprecated:!!s.deprecated,type:s.schema?.type||"string",description:s.description||"",example:i?i.value:void 0}})}function hn(t,e){return!t||typeof t!="object"?[]:Object.entries(t).map(([r,n])=>{let s=A(n,e)||{};return{name:r,operationId:s.operationId||"",operationRef:s.operationRef||"",description:s.description||"",parameters:s.parameters||{}}})}function mn(t,e){if(!t||typeof t!="object")return[];let r=[];for(let[n,s]of Object.entries(t)){let i=A(s,e)||{};for(let[u,c]of Object.entries(i)){let p=A(c,e)||{};for(let f of oe)p[f]&&r.push({name:n,expression:u,method:f.toUpperCase(),summary:p[f].summary||"",description:p[f].description||""})}}return r}function Ie(t){if(t==="default")return 999;let e=parseInt(t,10);return Number.isNaN(e)?998:e}async function ce(t,e=""){let r=await fetch(t);if(!r.ok)throw new Error(`Failed to fetch spec: HTTP ${r.status}`);return It(await r.json(),e)}function It(t,e=""){if(!t||typeof t!="object"||!t.paths&&!t.webhooks)throw new Error("Not an OpenAPI document (missing paths).");let r=t.schemes&&t.schemes.includes("https")?"https":t.schemes?.[0]||"https",n=t.host||location.host,s=t.basePath||"",i=`${r}://${n}${s}`.replace(/\/$/,""),u=e?[{name:"",url:e.replace(/\/$/,""),description:""}]:Array.isArray(t.servers)&&t.servers.length?t.servers.map(l=>({name:l?.name||"",url:on(l?.url,i,l?.variables),description:String(l?.description||"").trim()})).filter(l=>l.url):[{name:"",url:i,description:""}],c=u[0]?.url||i,p=(t.tags||[]).map(l=>l.name),f=new Map((t.tags||[]).map(l=>[l.name,l])),y=[];for(let[l,w]of Object.entries(t.paths||{})){let k=A(w,t)||{};for(let R of oe)k[R]&&y.push(se(t,l,R,k[R]));for(let[R,Ke]of Object.entries(k.additionalOperations||{}))y.push(se(t,l,R.toLowerCase(),Ke))}let S=[];for(let[l,w]of Object.entries(t.webhooks||{})){let k=A(w,t)||{};for(let R of oe)k[R]&&S.push(se(t,l,R,k[R]))}let v=[...new Set([...p,...y.map(l=>l.tag)])].map(l=>{let w=f.get(l);return{id:l.replace(/[^a-zA-Z0-9]+/g,"-").toLowerCase(),name:l,summary:w?.summary||"",description:w?.description||"",parent:w?.parent||"",kind:w?.kind||"",items:y.filter(k=>k.tag===l)}}).filter(l=>l.items.length);return{spec:t,info:t.info||{},baseUrl:c,derivedBaseUrl:i,servers:u,securityDefinitions:je(t),groups:v,webhooks:S,resolveRef:l=>A(l,t),generateExample:l=>ht(l,t),schemaRows:l=>xt(l,t),findOperation:l=>y.find(w=>w.id===l)||S.find(w=>w.id===l),firstOperation:()=>y[0]}}var vt=[{id:"curl",label:"CURL",icon:"img/bash-plain.svg"},{id:"csharp",label:"CSHARP",icon:"img/csharp-original.svg"},{id:"go",label:"GO",icon:"img/go-original-wordmark.svg"},{id:"node",label:"NODEJS",icon:"img/nodejs-original.svg"},{id:"ruby",label:"RUBY",icon:"img/ruby-plain.svg"},{id:"php",label:"PHP",icon:"img/php-original.svg"},{id:"javascript",label:"JAVASCRIPT",icon:"img/javascript-original.svg"},{id:"python",label:"PYTHON",icon:"img/python-original.svg"},{id:"java",label:"JAVA",icon:"img/java-original.svg"},{id:"c",label:"C",icon:"img/c-original.svg"},{id:"swift",label:"SWIFT",icon:"img/swift-original.svg"},{id:"objc",label:"OBJECTIVE-C",icon:"img/objectivec-plain.svg"},{id:"kotlin",label:"KOTLIN",icon:"img/kotlin-original.svg"},{id:"rust",label:"RUST",icon:"img/rust-original.svg"},{id:"powershell",label:"POWERSHELL",icon:"img/windows8-original.svg"},{id:"dart",label:"DART",icon:"img/dart-original.svg"},{id:"lua",label:"LUA",icon:"img/lua.svg"}];function fn(t){let e=new URL(t.url);return(t.query||[]).forEach(([r,n])=>{r&&e.searchParams.set(r,String(n||""))}),e.toString()}function bn(t,e){let r=[];return(t.headers||[]).forEach(([s,i])=>{s&&r.push([s,String(i??"")])}),e&&t.bodyText&&!gn(r,"Content-Type")&&r.push(["Content-Type",t.mimeType||"application/json"]),r}function gn(t,e){let r=e.toLowerCase();return t.some(function(n){return String(n[0]||"").toLowerCase()===r})}function yn(t,e){return String(t||"").split(`
|
|
4
|
+
var fe=Object.defineProperty;var nr=(t,e,r)=>e in t?fe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var jt=(t,e,r)=>()=>{if(r)throw r[0];try{return t&&(e=t(t=0)),e}catch(s){throw r=[s],s}};var or=(t,e)=>{for(var r in e)fe(t,r,{get:e[r],enumerable:!0})};var a=(t,e,r)=>nr(t,typeof e!="symbol"?e+"":e,r);function gs(t,e,r){let s=String(t||"").trim();if(!s)return"";let n=s.replace(/\{([^}]+)\}/g,(i,c)=>{let l=r&&typeof r=="object"?r[c]:null;return l&&l.default!==void 0?String(l.default):`{${c}}`});try{return new URL(n,`${e}/`).href.replace(/\/$/,"")}catch{return n.replace(/\/$/,"")}}function E(t,e){if(t&&typeof t=="object"&&typeof t.$ref=="string"){let r=t.$ref.replace(/^#\//,"").split("/"),s=e;for(let n of r)s=s?.[decodeURIComponent(n.replace(/~1/g,"/").replace(/~0/g,"~"))];return s?{...s}:{}}return t}function pe(t,e){if(!Array.isArray(t?.allOf))return t;let r={...t,properties:{...t.properties},required:[...t.required||[]]};delete r.allOf;for(let s of t.allOf){let n=pe(E(s,e),e)||{};Object.assign(r.properties,n.properties),r.required.push(...n.required||[]),r.type||(r.type=n.type)}return r}function ys(t,e){if(!t)return null;let r=E(t,e);return!r||typeof r!="object"?null:r}function ue(t){return t&&typeof t.$ref=="string"?t.$ref.split("/").pop():null}function We(t,e){if(!t||typeof t!="object")return null;for(let[r,s]of Object.entries(t)){let n=ys(s,e);if(n){if(n.dataValue!==void 0)return{key:r,label:n.summary||r,value:n.dataValue,isAuto:!1};if(n.serializedValue!==void 0)return{key:r,label:n.summary||r,value:n.serializedValue,isAuto:!1};if(n.value!==void 0)return{key:r,label:n.summary||r,value:n.value,isAuto:!1};if(n.externalValue)return{key:r,label:n.summary||r,value:n.externalValue,isAuto:!1}}}return null}function de(t){if(t){if(t.example!==void 0)return t.example;if(t.default!==void 0)return t.default;if(Array.isArray(t.enum)&&t.enum.length)return t.enum[0]}}function ae(t,e){if(!t)return null;let r=We(t.examples,e);if(r)return r;if(t.example!==void 0)return{label:"media example",value:t.example,isAuto:!1};let s=E(t.schema,e),n=de(s);return n!==void 0?{label:"schema example",value:n,isAuto:!1}:null}function Ve(t,e){let r=We(t.examples,e);if(r)return r;if(t.example!==void 0)return{label:"example",value:t.example,isAuto:!1};let s=E(t.schema,e),n=de(s);return n!==void 0?{label:"schema example",value:n,isAuto:!1}:null}function ht(t,e,r=new Set){if(!t)return null;let s=ue(t);if(s){if(r.has(s))return{};r=new Set(r).add(s)}let n=pe(E(t,e),e);if(!n)return null;let i=de(n);if(i!==void 0)return i;if(n.type==="array"||n.items)return[ht(n.items||{},e,r)];if(n.properties||n.type==="object"){let c={};for(let[l,p]of Object.entries(n.properties||{}))c[l]=ht(p,e,r);return c}switch(n.type){case"integer":return n.minimum??0;case"number":return n.minimum??0;case"boolean":return!0;case"string":return n.format==="date-time"?new Date().toISOString():n.format==="date"?new Date().toISOString().slice(0,10):n.format==="byte"?"base64==":n.title||"string";default:return null}}function vt(t,e,{depth:r=0,prefix:s="",seen:n=new Set,required:i=!1,selfRow:c=!0}={}){if(!t||r>4)return[];let l=ue(t);if(l){if(n.has(l))return[];n=new Set(n).add(l)}let p=pe(E(t,e),e),f=[],y=p.contentMediaType||p.contentEncoding?[p.contentMediaType,p.contentEncoding&&`encoding:${p.contentEncoding}`].filter(Boolean).join(", "):"",S=p.discriminator?.propertyName?`discriminator: ${p.discriminator.propertyName}`:"";if(Array.isArray(p.prefixItems))return c&&f.push({path:s||"items",type:"tuple",required:i,description:p.description||""}),p.prefixItems.forEach((x,A)=>{f.push(...vt(x,e,{depth:r+1,prefix:`${s}[${A}]`,seen:n,required:!1}))}),p.items&&f.push(...vt(p.items,e,{depth:r+1,prefix:`${s}[n]`,seen:n,required:!1})),f;if(p.type==="array"||p.items)return c&&f.push({path:s||"items",type:"array",required:i,description:p.description||""}),f.push(...vt(p.items||{},e,{depth:r+1,prefix:`${s}[]`,seen:n,required:!1})),f;if(p.properties||p.type==="object"||p.patternProperties){let x=new Set(p.required||[]);for(let[A,u]of Object.entries(p.properties||{})){let w=E(u,e),k=s?`${s}.${A}`:A;f.push({path:k,type:w.type||(w.$ref?ue(u):"any")||"any",format:w.format||"",enum:w.enum,required:x.has(A),description:w.description||""}),(w.type==="object"||w.properties||w.type==="array"||w.items)&&f.push(...vt(u,e,{depth:r+1,prefix:k,seen:n,required:x.has(A),selfRow:!1}))}for(let[A,u]of Object.entries(p.patternProperties||{})){let w=E(u,e);f.push({path:s?`${s}.<${A}>`:`<${A}>`,type:w.type||"any",format:w.format||"",required:!1,description:w.description||""})}return f}return f.push({path:s||"value",type:p.type||"any",format:p.format||"",enum:p.enum,required:i,description:[p.description,y,S].filter(Boolean).join(" \u2014 ")}),f}function ws(t){let e=Ve(t,this);return{name:t.name,in:t.in,required:!!t.required,type:t.type||t.schema?.type||"string",format:t.format||t.schema?.format||"",description:t.description||"",default:t.default??t.schema?.default,enum:t.enum||t.schema?.enum,example:e?e.value:void 0,exampleLabel:e?e.label:""}}function xs(t){if(t.type==="http")return{...t,type:String(t.scheme).toLowerCase()==="basic"?"basic":"bearer"};if(t.type==="openIdConnect")return{...t,type:"bearer",oauth2MetadataUrl:t.openIdConnectUrl};if(t.type!=="oauth2"||!t.flows)return t;let[e,r]=Object.entries(t.flows)[0]||[];return{...t,...r,flow:Ss[e]||e,scopes:r?.scopes||{}}}function Ze(t){let e=t.securityDefinitions||t.components?.securitySchemes||{};return Object.fromEntries(Object.entries(e).map(([r,s])=>[r,xs(E(s,t))]))}function vs(t,e){let r=Ze(e),s=t.security||e.security||[],n=[];for(let i of s)for(let c of Object.keys(i)){let l=r[c];l&&n.push({key:c,...l})}return n}function ce(t,e,r,s){let n={path:[],query:[],header:[],formData:[],body:null};for(let f of s.parameters||[]){let y=E(f,t);if(y.in==="body"){let S={schema:y.schema},x=ae(S,t);n.body={required:!!y.required,schema:y.schema,description:y.description||"",contentType:"application/json",example:x?x.value:ht(y.schema,t),exampleLabel:x?x.label:"auto",exampleIsAuto:!x}}else n[y.in]&&n[y.in].push(ws.call(t,y))}if(s.requestBody){let f=E(s.requestBody,t)||{},[y,S]=Object.entries(f.content||{})[0]||[];if(y&&S){let x=ae(S,t);n.body={required:!!f.required,schema:S.schema||null,description:f.description||"",contentType:y,encoding:S.encoding||null,itemSchema:S.itemSchema||null,example:x?x.value:ht(S.schema,t),exampleLabel:x?x.label:"auto",exampleIsAuto:!x}}}let i=Object.entries(s.responses||{}).map(([f,y])=>{let S=E(y,t)||{},[x,A]=Object.entries(S.content||{})[0]||[],u=A?ae(A,t):null;return{status:f,summary:S.summary||"",description:S.description||"",contentType:x||"application/json",schema:A?.schema||S.schema||null,encoding:A?.encoding||null,headers:As(S.headers,t),links:Es(S.links,t),example:u?u.value:A?.schema?ht(A.schema,t):null,exampleLabel:u?u.label:"auto",exampleIsAuto:!u&&!!A?.schema}}).sort((f,y)=>{let S=Fe(f.status),x=Fe(y.status);return S-x}),c=Cs(s.callbacks,t),l=r.toUpperCase();return{id:(s.operationId||`${r}-${e}`).replace(/[^a-zA-Z0-9]+/g,"-").replace(/^-+|-+$/g,"").toLowerCase(),method:l,path:e,tag:s.tags&&s.tags[0]||"default",summary:s.summary||s.operationId||`${l} ${e}`,description:s.description||"",deprecated:!!s.deprecated,produces:s.produces||t.produces||["application/json"],consumes:s.consumes||t.consumes||(n.body?["application/json"]:[]),parameters:n,responses:i,callbacks:c,externalDocs:s.externalDocs||null,security:vs(s,t)}}function As(t,e){return!t||typeof t!="object"?[]:Object.entries(t).map(([r,s])=>{let n=E(s,e)||{},i=Ve({...n,in:"header"},e);return{name:r,required:!!n.required,deprecated:!!n.deprecated,type:n.schema?.type||"string",description:n.description||"",example:i?i.value:void 0}})}function Es(t,e){return!t||typeof t!="object"?[]:Object.entries(t).map(([r,s])=>{let n=E(s,e)||{};return{name:r,operationId:n.operationId||"",operationRef:n.operationRef||"",description:n.description||"",parameters:n.parameters||{}}})}function Cs(t,e){if(!t||typeof t!="object")return[];let r=[];for(let[s,n]of Object.entries(t)){let i=E(n,e)||{};for(let[c,l]of Object.entries(i)){let p=E(l,e)||{};for(let f of le)p[f]&&r.push({name:s,expression:c,method:f.toUpperCase(),summary:p[f].summary||"",description:p[f].description||""})}}return r}function Fe(t){if(t==="default")return 999;let e=parseInt(t,10);return Number.isNaN(e)?998:e}async function Ge(t,e=""){let r=await fetch(t);if(!r.ok)throw new Error(`Failed to fetch spec: HTTP ${r.status}`);return he(await r.json(),e)}function he(t,e=""){if(!t||typeof t!="object"||!t.paths&&!t.webhooks)throw new Error("Not an OpenAPI document (missing paths).");let r=t.schemes&&t.schemes.includes("https")?"https":t.schemes?.[0]||"https",s=t.host||location.host,n=t.basePath||"",i=`${r}://${s}${n}`.replace(/\/$/,""),c=e?[{name:"",url:e.replace(/\/$/,""),description:""}]:Array.isArray(t.servers)&&t.servers.length?t.servers.map(u=>({name:u?.name||"",url:gs(u?.url,i,u?.variables),description:String(u?.description||"").trim()})).filter(u=>u.url):[{name:"",url:i,description:""}],l=c[0]?.url||i,p=(t.tags||[]).map(u=>u.name),f=new Map((t.tags||[]).map(u=>[u.name,u])),y=[];for(let[u,w]of Object.entries(t.paths||{})){let k=E(w,t)||{};for(let R of le)k[R]&&y.push(ce(t,u,R,k[R]));for(let[R,sr]of Object.entries(k.additionalOperations||{}))y.push(ce(t,u,R.toLowerCase(),sr))}let S=[];for(let[u,w]of Object.entries(t.webhooks||{})){let k=E(w,t)||{};for(let R of le)k[R]&&S.push(ce(t,u,R,k[R]))}let A=[...new Set([...p,...y.map(u=>u.tag)])].map(u=>{let w=f.get(u);return{id:u.replace(/[^a-zA-Z0-9]+/g,"-").toLowerCase(),name:u,summary:w?.summary||"",description:w?.description||"",parent:w?.parent||"",kind:w?.kind||"",items:y.filter(k=>k.tag===u)}}).filter(u=>u.items.length);return{spec:t,info:t.info||{},baseUrl:l,derivedBaseUrl:i,servers:c,securityDefinitions:Ze(t),groups:A,webhooks:S,resolveRef:u=>E(u,t),generateExample:u=>ht(u,t),schemaRows:u=>vt(u,t),findOperation:u=>y.find(w=>w.id===u)||S.find(w=>w.id===u),firstOperation:()=>y[0]}}var le,Ss,Ke=jt(()=>{le=["get","post","put","patch","delete","options","head","trace","query"];Ss={authorizationCode:"accessCode",implicit:"implicit",password:"password",clientCredentials:"application"}});function Ts(t){let e=new URL(t.url);return(t.query||[]).forEach(([r,s])=>{r&&e.searchParams.set(r,String(s||""))}),e.toString()}function Os(t,e){let r=[];return(t.headers||[]).forEach(([n,i])=>{n&&r.push([n,String(i??"")])}),e&&t.bodyText&&!Ns(r,"Content-Type")&&r.push(["Content-Type",t.mimeType||"application/json"]),r}function Ns(t,e){let r=e.toLowerCase();return t.some(function(s){return String(s[0]||"").toLowerCase()===r})}function ks(t,e){return String(t||"").split(`
|
|
6
5
|
`).map(function(r){return e+r}).join(`
|
|
7
|
-
`)}function
|
|
8
|
-
`)}function
|
|
9
|
-
`)}function
|
|
10
|
-
`)}function
|
|
11
|
-
`)}function
|
|
12
|
-
`)}function
|
|
13
|
-
`)}function
|
|
14
|
-
`)}function
|
|
15
|
-
`)}function
|
|
16
|
-
`)}function
|
|
17
|
-
`)}function
|
|
18
|
-
`)}function
|
|
19
|
-
`)}function
|
|
20
|
-
`)}function
|
|
21
|
-
`)}function
|
|
22
|
-
`)}function
|
|
23
|
-
`)}function
|
|
24
|
-
`)}var zn={curl:Cn,javascript:_e,node:En,python:Tn,go:On,java:Nn,csharp:kn,php:$n,ruby:Rn,c:Ln,swift:In,objc:Un,kotlin:Pn,rust:jn,powershell:_n,dart:Bn,lua:Mn};async function le(t,e){let r=vt.find(function(i){return i.id===t});if(!r)throw new Error("Unknown language: "+t);let n=bn(e,!0),s=fn(e);return zn[r.id](e,s,n)}var Be={implicit:"Implicit",password:"Resource Owner Password Credentials",application:"Client Credentials",accessCode:"Authorization Code"},Hn=["POST","PUT","PATCH"];function q(t){try{return sessionStorage.getItem(t)||""}catch{return""}}function At(t,e){try{e?sessionStorage.setItem(t,e):sessionStorage.removeItem(t)}catch{}}function de(){return!!(q("apikey")||q("oauthkey"))}function pe(t){return t.example!==void 0?String(t.example):t.default!==void 0?String(t.default):t.enum?.length?String(t.enum[0]):t.type==="integer"||t.type==="number"?t.format==="int64"?"10":"1":t.type==="boolean"?"true":t.required&&t.in==="path"?"string":""}function he(t,e){let r=q("apikey"),n=q("oauthkey");for(let s of t.security)s.type==="apiKey"&&s.in==="header"?e.header[s.name]=r:s.type==="apiKey"&&s.in==="query"?e.query[s.name]=r:s.type==="basic"?e.header.Authorization=r?`Basic ${r}`:"":(s.type==="oauth2"||s.type==="bearer")&&(e.header.Authorization=n?`Bearer ${n}`:"")}function Me(t,e){let r={baseUrl:e,path:{},query:{},header:{},bodyText:"",mimeType:t.consumes?.[0]||"application/json"};return t.parameters.path.forEach(n=>{r.path[n.name]=pe(n)}),t.parameters.query.forEach(n=>{r.query[n.name]=n.required?pe(n):""}),t.parameters.header.forEach(n=>{r.header[n.name]=n.required?pe(n):""}),t.produces?.length&&(r.header.Accept=t.produces.includes("application/json")?"application/json":t.produces[0]),t.parameters.body&&(r.mimeType=t.parameters.body.contentType||r.mimeType,r.bodyText=me(t.parameters.body.example)),he(t,r),r}function me(t){return typeof t=="string"?t:JSON.stringify(t,null,2)??""}function fe(t,e){let r=t.path;for(let[s,i]of Object.entries(e.path))r=r.replace(`{${s}}`,encodeURIComponent(i??""));let n=!!t.parameters.body&&Hn.includes(t.method);return{method:t.method,url:`${e.baseUrl}${r}`,query:Object.entries(e.query).filter(([,s])=>s!==""),headers:Object.entries(e.header).filter(([,s])=>s!==""),bodyText:n?e.bodyText:"",mimeType:e.mimeType}}function ze(t){let e=t.query.length?`${t.url}?${new URLSearchParams(t.query)}`:t.url,r=Object.fromEntries(t.headers);return t.bodyText&&(r["Content-Type"]=r["Content-Type"]||t.mimeType),{url:e,headers:r,headerLines:Object.entries(r).map(([n,s])=>`${n}: ${s}`).join(`
|
|
25
|
-
`)}}async function He(t,e){let r=performance.now(),n=await fetch(e.url,{method:t.method,headers:e.headers,body:t.bodyText||void 0}),s=Math.round(performance.now()-r),i=await n.text();return{status:n.status,statusText:n.statusText,ms:s,headerLines:[...n.headers.entries()].map(([u,c])=>`${u}: ${c}`).join(`
|
|
26
|
-
`)
|
|
27
|
-
`)
|
|
6
|
+
`)}function O(t){return String(t).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}function m(t){return String(t).replace(/\\/g,"\\\\").replace(/"/g,'\\"')}function $s(t){return String(t).replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}function Rs(t){return String(t).replace(/`/g,'` + "`" + `')}function Ls(t){return String(t).replace(/\\/g,"\\\\").replace(/"""/g,'\\"\\"\\"')}function Lt(t){return String(t).replace(/\\/g,"\\\\").replace(/'/g,"\\'")}function It(t){return String(t).replace(/\\/g,"\\\\").replace(/'/g,"\\\\'")}function Ut(t){return String(t).replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n")}function Pt(t){return String(t).replace(/`/g,"``").replace(/"/g,'`"')}function Is(t){return String(t).replace(/\]=\]/g,']==] .. "]=" .. [=[')}function Us(t,e){let r=e&&e.quote==="double"?'"':"'";return t.map(function(n){let i=r==='"'?m(n[0]):O(n[0]),c=r==='"'?m(n[1]):O(n[1]);return r+i+r+": "+r+c+r}).join(`,
|
|
7
|
+
`)}function Ps(t,e,r){let s=["curl --request "+t.method];return r.forEach(function(n){s.push("--header '"+O(n[0]+": "+n[1])+"'")}),t.bodyText&&s.push("--data '"+O(t.bodyText)+"'"),s.push("'"+O(e)+"'"),s.join(` \\
|
|
8
|
+
`)}function Qe(t,e,r){let s=["const url = '"+O(e)+"';","const options = {"," method: '"+O(t.method)+"',"];return r.length&&(s.push(" headers: {"),s.push(ks(Us(r)," ")),s.push(" },")),t.bodyText&&s.push(" body: `"+$s(t.bodyText)+"`,"),s.push("};","","const response = await fetch(url, options);","const data = await response.text();","console.log(response.status, data);"),s.join(`
|
|
9
|
+
`)}function js(t,e,r){return Qe(t,e,r)}function Bs(t,e,r){let s=["import requests","","url = '"+O(e)+"'"];return r.length?(s.push("headers = {"),r.forEach(function(n){s.push(" '"+O(n[0])+"': '"+O(n[1])+"',")}),s.push("}")):s.push("headers = {}"),t.bodyText?(s.push("",'payload = """'+Ls(t.bodyText)+'"""'),s.push("response = requests.request('"+O(t.method)+"', url, headers=headers, data=payload)")):s.push("","response = requests.request('"+O(t.method)+"', url, headers=headers)"),s.push("print(response.status_code)","print(response.text)"),s.join(`
|
|
10
|
+
`)}function _s(t,e,r){let s=["package main","","import (",' "fmt"',' "io"',' "net/http"'];return t.bodyText&&s.push(' "strings"'),s.push(")","","func main() {"),t.bodyText?(s.push(" body := strings.NewReader(`"+Rs(t.bodyText)+"`)"),s.push(' req, err := http.NewRequest("'+t.method+'", "'+e+'", body)')):s.push(' req, err := http.NewRequest("'+t.method+'", "'+e+'", nil)'),s.push(" if err != nil {"," panic(err)"," }"),r.forEach(function(n){s.push(' req.Header.Set("'+m(n[0])+'", "'+m(n[1])+'")')}),s.push(""," res, err := http.DefaultClient.Do(req)"," if err != nil {"," panic(err)"," }"," defer res.Body.Close()",""," data, err := io.ReadAll(res.Body)"," if err != nil {"," panic(err)"," }",""," fmt.Println(res.StatusCode)"," fmt.Println(string(data))","}"),s.join(`
|
|
11
|
+
`)}function Ms(t,e,r){let s=["OkHttpClient client = new OkHttpClient();","","Request.Builder builder = new Request.Builder()",' .url("'+m(e)+'")'];return r.forEach(function(n){s.push(' .addHeader("'+m(n[0])+'", "'+m(n[1])+'")')}),t.bodyText?s.push(";","",'MediaType mediaType = MediaType.parse("'+m(t.mimeType||"application/json")+'");','RequestBody body = RequestBody.create("""'+m(t.bodyText)+'""", mediaType);','Request request = builder.method("'+t.method+'", body).build();'):s.push(";","",'Request request = builder.method("'+t.method+'", null).build();'),s.push("","try (Response response = client.newCall(request).execute()) {"," System.out.println(response.code());",' System.out.println(response.body() != null ? response.body().string() : "");',"}"),s.join(`
|
|
12
|
+
`)}function zs(t,e,r){let n=["using var client = new HttpClient();","using var request = new HttpRequestMessage(HttpMethod."+(t.method.charAt(0)+t.method.slice(1).toLowerCase())+', "'+m(e)+'");'];return r.forEach(function(i){n.push('request.Headers.TryAddWithoutValidation("'+m(i[0])+'", "'+m(i[1])+'");')}),t.bodyText&&n.push('request.Content = new StringContent("""'+m(t.bodyText)+'""", Encoding.UTF8, "'+m(t.mimeType||"application/json")+'");'),n.push("","using var response = await client.SendAsync(request);","var body = await response.Content.ReadAsStringAsync();","Console.WriteLine((int)response.StatusCode);","Console.WriteLine(body);"),n.join(`
|
|
13
|
+
`)}function Hs(t,e,r){let s=["$ch = curl_init();","curl_setopt_array($ch, ["," CURLOPT_URL => '"+Lt(e)+"',"," CURLOPT_CUSTOMREQUEST => '"+Lt(t.method)+"',"," CURLOPT_RETURNTRANSFER => true,"];return r.length&&(s.push(" CURLOPT_HTTPHEADER => ["),r.forEach(function(n){s.push(" '"+Lt(n[0]+": "+n[1])+"',")}),s.push(" ],")),t.bodyText&&s.push(" CURLOPT_POSTFIELDS => '"+Lt(t.bodyText)+"',"),s.push("]);","","$response = curl_exec($ch);","echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE) . PHP_EOL;","echo $response;","curl_close($ch);"),s.join(`
|
|
14
|
+
`)}function qs(t,e,r){let s=t.method.charAt(0)+t.method.slice(1).toLowerCase(),n=['require "uri"','require "net/http"',"","uri = URI('"+It(e)+"')","http = Net::HTTP.new(uri.host, uri.port)",'http.use_ssl = uri.scheme == "https"',"","request = Net::HTTP::"+s+".new(uri)"];return r.forEach(function(i){n.push("request['"+It(i[0])+"'] = '"+It(i[1])+"'")}),t.bodyText&&n.push("request.body = '"+It(t.bodyText)+"'"),n.push("","response = http.request(request)","puts response.code","puts response.body"),n.join(`
|
|
15
|
+
`)}function Ds(t,e,r){let s=["#include <curl/curl.h>","","int main(void) {"," CURL *curl = curl_easy_init();"," if (!curl) return 1;",""," struct curl_slist *headers = NULL;"];return r.forEach(function(n){s.push(' headers = curl_slist_append(headers, "'+Ut(n[0]+": "+n[1])+'");')}),s.push(' curl_easy_setopt(curl, CURLOPT_URL, "'+Ut(e)+'");'),s.push(' curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "'+Ut(t.method)+'");'),r.length&&s.push(" curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);"),t.bodyText&&s.push(' curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "'+Ut(t.bodyText)+'");'),s.push(""," curl_easy_perform(curl);"," curl_slist_free_all(headers);"," curl_easy_cleanup(curl);"," return 0;","}"),s.join(`
|
|
16
|
+
`)}function Fs(t,e,r){let s=['var request = URLRequest(url: URL(string: "'+m(e)+'")!)','request.httpMethod = "'+m(t.method)+'"'];return r.forEach(function(n){s.push('request.setValue("'+m(n[1])+'", forHTTPHeaderField: "'+m(n[0])+'")')}),t.bodyText&&s.push('request.httpBody = """',t.bodyText,'""".data(using: .utf8)'),s.push("","URLSession.shared.dataTask(with: request) { data, response, error in"," if let error = error {"," print(error)"," return"," }"," let status = (response as? HTTPURLResponse)?.statusCode ?? 0"," print(status)",' print(String(data: data ?? Data(), encoding: .utf8) ?? "")',"}.resume()"),s.join(`
|
|
17
|
+
`)}function Ws(t,e,r){let s=['NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"'+m(e)+'"]];','request.HTTPMethod = @"'+m(t.method)+'";'];return r.forEach(function(n){s.push('[request setValue:@"'+m(n[1])+'" forHTTPHeaderField:@"'+m(n[0])+'"];')}),t.bodyText&&s.push('request.HTTPBody = [@"'+m(t.bodyText)+'" dataUsingEncoding:NSUTF8StringEncoding];'),s.push("","NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request"," completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {"," if (error) {",' NSLog(@"%@", error);'," return;"," }"," NSInteger status = [(NSHTTPURLResponse *)response statusCode];"," NSString *body = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];",' NSLog(@"%ld", (long)status);',' NSLog(@"%@", body);',"}];","[task resume];"),s.join(`
|
|
18
|
+
`)}function Vs(t,e,r){let s=["val client = OkHttpClient()"];return t.bodyText&&s.push('val body = """',t.bodyText,'""".trimIndent().toRequestBody("'+m(t.mimeType||"application/json")+'".toMediaType())'),s.push("val request = Request.Builder()",' .url("'+m(e)+'")'),r.forEach(function(n){s.push(' .addHeader("'+m(n[0])+'", "'+m(n[1])+'")')}),s.push(t.bodyText?' .method("'+t.method+'", body)':' .method("'+t.method+'", null)'," .build()","","client.newCall(request).execute().use { response ->"," println(response.code)"," println(response.body?.string().orEmpty())","}"),s.join(`
|
|
19
|
+
`)}function Zs(t,e,r){let s=["let client = reqwest::Client::new();","let response = client"," ."+t.method.toLowerCase()+'("'+m(e)+'")'];return r.forEach(function(n){s.push(' .header("'+m(n[0])+'", "'+m(n[1])+'")')}),t.bodyText&&s.push(' .body(r#"'+t.bodyText.replace(/"#/g,'"#""#')+'"#)'),s.push(" .send()"," .await?;","",'println!("{}", response.status());','println!("{}", response.text().await?);'),s.join(`
|
|
20
|
+
`)}function Gs(t,e,r){let s=["$headers = @{"];return r.forEach(function(n){s.push(' "'+Pt(n[0])+'" = "'+Pt(n[1])+'"')}),s.push("}",""),t.bodyText&&s.push('$body = @"',t.bodyText,'"@',""),s.push("$response = Invoke-RestMethod -Method "+t.method+' -Uri "'+Pt(e)+'" -Headers $headers'+(t.bodyText?' -Body $body -ContentType "'+Pt(t.mimeType||"application/json")+'"':""),"$response | ConvertTo-Json -Depth 10"),s.join(`
|
|
21
|
+
`)}function Ks(t,e,r){let s=["import 'package:http/http.dart' as http;","","final uri = Uri.parse('"+O(e)+"');","final headers = <String, String>{"];return r.forEach(function(n){s.push(" '"+O(n[0])+"': '"+O(n[1])+"',")}),s.push("};",""),t.bodyText?s.push("final response = await http."+t.method.toLowerCase()+"(uri, headers: headers, body: '''"+t.bodyText.replace(/'''/g,"'' '")+"''');"):s.push("final response = await http."+t.method.toLowerCase()+"(uri, headers: headers);"),s.push("print('Status: ${response.statusCode}');","print(response.body);"),s.join(`
|
|
22
|
+
`)}function Qs(t,e,r){let s=['local http = require("socket.http")','local ltn12 = require("ltn12")',"","local response_body = {}","local headers = {"];return r.forEach(function(n){s.push(' ["'+m(n[0])+'"] = "'+m(n[1])+'",')}),s.push("}",""),t.bodyText&&(s.push("local body = [==["+Is(t.bodyText)+"]==]",""),s.push('headers["Content-Length"] = tostring(#body)')),s.push("local _, code = http.request{",' url = "'+m(e)+'",',' method = "'+m(t.method)+'",'," headers = headers,"),t.bodyText&&s.push(" source = ltn12.source.string(body),"),s.push(" sink = ltn12.sink.table(response_body),","}","",'print("Status: " .. tostring(code))',"print(table.concat(response_body))"),s.join(`
|
|
23
|
+
`)}async function Je(t,e){let r=me.find(function(i){return i.id===t});if(!r)throw new Error("Unknown language: "+t);let s=Os(e,!0),n=Ts(e);return Js[r.id](e,n,s)}var me,Js,Ye=jt(()=>{me=[{id:"curl",label:"CURL",icon:"img/bash-plain.svg"},{id:"csharp",label:"CSHARP",icon:"img/csharp-original.svg"},{id:"go",label:"GO",icon:"img/go-original-wordmark.svg"},{id:"node",label:"NODEJS",icon:"img/nodejs-original.svg"},{id:"ruby",label:"RUBY",icon:"img/ruby-plain.svg"},{id:"php",label:"PHP",icon:"img/php-original.svg"},{id:"javascript",label:"JAVASCRIPT",icon:"img/javascript-original.svg"},{id:"python",label:"PYTHON",icon:"img/python-original.svg"},{id:"java",label:"JAVA",icon:"img/java-original.svg"},{id:"c",label:"C",icon:"img/c-original.svg"},{id:"swift",label:"SWIFT",icon:"img/swift-original.svg"},{id:"objc",label:"OBJECTIVE-C",icon:"img/objectivec-plain.svg"},{id:"kotlin",label:"KOTLIN",icon:"img/kotlin-original.svg"},{id:"rust",label:"RUST",icon:"img/rust-original.svg"},{id:"powershell",label:"POWERSHELL",icon:"img/windows8-original.svg"},{id:"dart",label:"DART",icon:"img/dart-original.svg"},{id:"lua",label:"LUA",icon:"img/lua.svg"}];Js={curl:Ps,javascript:Qe,node:js,python:Bs,go:_s,java:Ms,csharp:zs,php:Hs,ruby:qs,c:Ds,swift:Fs,objc:Ws,kotlin:Vs,rust:Zs,powershell:Gs,dart:Ks,lua:Qs}});var Xe={};or(Xe,{LANGUAGES:()=>me,buildOpenApiDoc:()=>he,generateSnippet:()=>Je,loadOpenApiDoc:()=>Ge});var tr=jt(()=>{Ke();Ye()});var h=globalThis.owl;if(!h)throw new Error("BaseUI: load dist/baseui.min.js or dist/baseui.esm.js before this script (globalThis.owl is not set).");var ir=h.App,be=h.Component,ar=h.EventBus,cr=h.OwlError,lr=h.__info__,ur=h.batched,pr=h.blockDom,dr=h.htmlEscape,Bt=h.loadFile,hr=h.markRaw,_t=h.markup,ge=h.mount,mr=h.onError,N=h.onMounted,P=h.onPatched,fr=h.onRendered,mt=h.onWillDestroy,br=h.onWillPatch,gr=h.onWillRender,ft=h.onWillStart,j=h.onWillUnmount,L=h.onWillUpdateProps,yr=h.reactive,wr=h.status,Sr=h.toRaw,bt=h.useChildSubEnv,xr=h.useComponent,Mt=h.useEffect,vr=h.useEnv,Ar=h.useExternalListener,v=h.useRef,C=h.useState,Er=h.useSubEnv,Cr=h.validate,Tr=h.validateType,Or=h.whenReady,zt=h.xml;var At={};function Nr(t){let e=t.components;e?e!==At&&Object.getPrototypeOf(e)===Object.prototype&&Object.setPrototypeOf(e,At):t.components=Object.create(At)}var d=class extends be{constructor(...e){super(...e),Nr(this.constructor)}};function ye(t){return typeof t!="string"||!/\st-(att|attf|model)([.\s=-]|$)/.test(t)?t:t.replace(/<([A-Z][\w.:-]*)(\s[^<>]*?)?(\/?)>/g,(e,r,s="",n="")=>`<${r}${kr(r,s)}${n}>`)}function kr(t,e){let r=/\st-(att|attf|model|on)([.\s=-]|$)/.test(e),s=e.replace(/(\s)t-att\s*=/g,"$1t-props=").replace(/(\s)t-att-([A-Za-z_][\w:.-]*)\s*=/g,"$1$2=").replace(/(\s)t-attf-([A-Za-z_][\w:.-]*)\s*=\s*(["'])(.*?)\3/g,(n,i,c,l,p)=>`${i}${c}=${l}${Ir(p)}${l}`);return s=s.replace(/(\s)t-model((?:\.[\w-]+)*)\s*=\s*(["'])(.*?)\3/g,(n,i,c,l,p)=>Ur(t,i,c,l,p,s)),r?$r(s):s}function $r(t){return t.replace(/(\s)([A-Za-z_][\w:.-]*)\s*=\s*(["'])(.*?)\3/g,(e,r,s,n,i)=>s.startsWith("t-")||s==="t-props"||Lr(i)?e:`${r}${s}=${n}${Rr(i)}${n}`)}function Rr(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`}function Lr(t){let e=t.trim();return!e||/^(['"`[{(]|-?\d+(?:\.\d+)?$)/.test(e)||/[?.()[\]+*/]|=>|===|!==|&&|\|\|/.test(e)||/^(true|false|null|undefined)$/.test(e)}function Ir(t){return`\`${t.replace(/`/g,"\\`").replace(/{{\s*([\s\S]*?)\s*}}|#\{\s*([\s\S]*?)\s*\}/g,(e,r,s)=>`\${${r||s}}`)}\``}function Ur(t,e,r,s,n,i){let c=/^(Checkbox|Switch)$/.test(t),l=Pr(t,r),p=c?"checked":"value",f=new RegExp(`\\s${p}\\s*=`).test(i)?"":`${e}${p}=${s}${n}${s}`,y=new RegExp(`\\s${l}\\s*=`).test(i)?"":`${e}${l}=${s}${jr(n,r,c)}${s}`;return`${f}${y}`}function Pr(t,e){return e.includes(".lazy")?"onChange":/^(Input|Textarea)$/.test(t)?"onInput":"onChange"}function jr(t,e,r){if(r)return`(value) => { ${t} = value; }`;let s="value";return e.includes(".trim")&&(s=`(typeof ${s} === 'string' ? ${s}.trim() : ${s})`),e.includes(".number")&&(s=`Number.isNaN(Number(${s})) ? ${s} : Number(${s})`),`(value) => { ${t} = ${s}; }`}function we(t,...e){return Array.isArray(t?.raw)?zt({raw:t.raw.map(ye)},...e):zt(t,...e)}function Et(t,e,r={}){let s=ye(r.templates);return t.components={...At,...t.components||{}},ge(t,e,s===r.templates?r:{...r,templates:s})}function b(...t){let e=[];for(let r of t)if(r){if(typeof r=="string")e.push(r);else if(Array.isArray(r)){let s=b(...r);s&&e.push(s)}else if(typeof r=="object")for(let[s,n]of Object.entries(r))n&&e.push(s)}return e.join(" ")}function o(t){return{type:t,optional:!0}}var g={className:o(String),style:o([String,Object]),slots:o(Object)};function I(t,e,r){return t[e]??(r?t[r]:void 0)}function Ct(t){return t===!0||t==="open"||t==="on"||t==="active"}function Tt(...t){let e=[];for(let r of t)if(r){if(typeof r=="string"){let s=r.trim().replace(/;$/,"");s&&e.push(s)}else if(typeof r=="object")for(let[s,n]of Object.entries(r)){if(n==null||n==="")continue;let i=s.replace(/[A-Z]/g,c=>"-"+c.toLowerCase());e.push(`${i}:${n}`)}}return e.join(";")}function Ot(t){return t.state!==void 0?Ct(t.state):t.open!==void 0?t.open:t["default-open"]!==void 0?t["default-open"]:t.defaultOpen??!1}function Ht(t){return t.state!==void 0||t.open!==void 0}var qt={primary:"b-badge-primary",secondary:"b-badge-secondary",success:"b-badge-success",warning:"b-badge-warning",danger:"b-badge-danger",info:"b-badge-info",muted:"b-badge-muted"};var B=class extends d{get classNames(){return b("badge",qt[this.props.variant]||qt.secondary,this.props.pill&&"rounded-pill",this.props.className)}};a(B,"template","baseui.Badge"),a(B,"props",{variant:o(String),pill:o(Boolean),label:o(String),...g});var Br="__BASEUI_VERSION__",Dt=new Map,gt=new WeakMap,Nt="[b-ui], [b-icon]",_r="[data-bs-toggle], [data-bs-target], [data-bs-dismiss]";function Mr(t){return typeof t=="string"?document.querySelector(t):t instanceof Element?t:null}function Ft(t,e,r={}){t.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:r}))}function zr(t,e={}){return t.hasAttribute("b-icon")?"icon":e.name||t.getAttribute("b-ui")}function Hr(t,e){return e===document||e===t||e.contains(t)}function qr(t,e={}){return!e.allowBootstrapControl&&t.matches(_r)}var Wt=typeof window<"u"?window.thebase:void 0,V=Wt?.register?Wt:Object.assign(Wt||{},{version:Br,register(t,e){if(!t||!e)throw new Error("BaseUI.register requires a name and component definition.");return Dt.set(t,e),this},component(t){return Dt.get(t)},mount(t,e={}){let r=Mr(t);if(!r||qr(r,e))return null;let s=zr(r,e),n=Dt.get(s);if(!n)return null;let i=gt.get(r);if(i?.name===s)return i;i&&(i.destroy?.(),gt.delete(r),Ft(r,"baseui:destroyed",{name:i.name}));let c=n.mount?.(r,this,e)||{},l={name:s,element:r,destroy:c.destroy};return gt.set(r,l),Ft(r,"baseui:mounted",{name:s,instance:l}),l},mountAll(t=document){let e=t||document,r=[...e.querySelectorAll?.(Nt)||[]];return e instanceof Element&&e.matches(Nt)&&r.unshift(e),r.map(s=>this.mount(s)).filter(Boolean)},destroy(t=document){let e=t||document,r=[...e.querySelectorAll?.(Nt)||[]];e instanceof Element&&e.matches(Nt)&&r.unshift(e);for(let s of r){let n=gt.get(s);n&&Hr(s,e)&&(n.destroy?.(),gt.delete(s),Ft(s,"baseui:destroyed",{name:n.name}))}},theme:{set(t){let e=document.documentElement;if(typeof t=="string"){e.setAttribute("b-theme",t),e.dataset.bsTheme=t;return}for(let[r,s]of Object.entries(t||{})){let n=r==="radius"||r==="--b-radius"?"--base-radius":r.startsWith("--")?r:`--b-${r}`;e.style.setProperty(n,s)}}}});typeof window<"u"&&(window.thebase=V,window.BaseUI=V);var Se="1.31.0",Dr=`https://cdn.jsdelivr.net/npm/lucide-static@${Se}/icons`,$t="file",Fr=/^[a-z0-9][a-z0-9-]*$/,Vt=new Map;function Wr(t){return typeof Image>"u"?Promise.resolve(!0):(Vt.has(t)||Vt.set(t,new Promise(e=>{let r=new Image;r.onload=()=>e(!0),r.onerror=()=>e(!1),r.src=t})),Vt.get(t))}function kt(t){return String(t||"").trim().replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase()}function yt(t,e={}){let r=kt(t);if(!Fr.test(r))throw new Error(`BaseUI icon name is invalid: ${t}`);return`${String(e.baseUrl||V.icons.lucide.cdnBaseUrl).replace(/\/+$/,"")}/${r}.svg`}function Zt(t,e,r={}){let s=r.url||yt(e,r),n=r.label??t.getAttribute("aria-label")??"";t.classList.add("b-icon"),t.style.setProperty("--b-icon-url",`url("${s.replace(/"/g,"%22")}")`),(r.size||t.getAttribute("b-att-size"))&&t.style.setProperty("--b-icon-size",r.size||t.getAttribute("b-att-size")),n?(t.setAttribute("role","img"),t.setAttribute("aria-label",n)):t.setAttribute("aria-hidden","true");let i=r.fallback===!1?null:r.fallback||$t;return i&&!r.url&&kt(e)!==kt(i)&&Wr(s).then(c=>{if(c||!t.isConnected)return;let l=yt(i,r);t.style.setProperty("--b-icon-url",`url("${l.replace(/"/g,"%22")}")`)}),t}V.icons={...V.icons||{},lucide:{version:Se,cdnBaseUrl:Dr,normalizeName:kt,url:yt,render:Zt}};var wt={default:"btn-primary",secondary:"btn-secondary",destructive:"btn-danger",outline:"btn-outline-secondary",ghost:"btn-light",link:"btn-link"},Rt={xs:"btn-xs",sm:"btn-sm",lg:"btn-lg",icon:"btn-icon","icon-xs":"btn-icon-xs","icon-sm":"btn-icon-sm","icon-lg":"btn-icon-lg"};var vn=["btn","b-button","b-clipboard-button",...Object.values(wt),...Object.values(Rt)];async function xe(t){let e=String(t??"");if(globalThis.navigator?.clipboard?.writeText)try{await globalThis.navigator.clipboard.writeText(e);return}catch{}if(typeof document>"u")throw new Error("BaseUI ClipboardButton: no clipboard API available in this environment.");let r=document.createElement("textarea");r.value=e,r.setAttribute("readonly",""),r.style.position="fixed",r.style.opacity="0",r.style.pointerEvents="none",document.body.append(r),r.select(),r.setSelectionRange(0,e.length);let s;try{s=document.execCommand("copy")}catch{s=!1}if(r.remove(),!s)throw new Error("BaseUI ClipboardButton: clipboard copy is unavailable in this browser/context.")}var Gt,Kt,Qt,Vr=0;function Zr(){return Gt??(Gt=import("./runtime/marked/marked.min.js").then(t=>{let e=t.marked||t.default?.marked||globalThis.marked;if(!e?.parse)throw new Error("BaseUI markdown: failed to load src/runtime/marked/marked.min.js");return e})),Gt}function Gr(t){let e=t.closest("[data-bs-theme]")?.getAttribute("data-bs-theme")||document.documentElement.getAttribute("data-bs-theme");return(e?e==="dark":window.matchMedia?.("(prefers-color-scheme: dark)").matches)?"dark":"default"}function Kr(){return Kt??(Kt=import("./runtime/mermaid/mermaid.esm.min.mjs").then(t=>{let e=t.default||t;return e.initialize({startOnLoad:!1,securityLevel:"strict"}),e})),Kt}function Qr(){return Qt??(Qt=import("./runtime/milkdown/milkdown-editor.js")),Qt}async function ve(t,e={}){return(await Zr()).parse(String(t??""),{gfm:!0,breaks:!1,...e})}function Yt(t,e,r,s=""){t.classList.add("b-markdown-diagram-error"),t.replaceChildren();let n=document.createElement("p");if(n.className="b-markdown-diagram-error-message",n.textContent=`Unable to render ${e} diagram: ${r?.message||r}`,t.append(n),s){let i=document.createElement("pre"),c=document.createElement("code");c.textContent=s,i.append(c),t.append(i)}}async function Jr(t){let e=[...t.querySelectorAll("pre > code.language-mermaid")];if(!e.length)return;let r;try{r=await Kr()}catch(s){e.forEach(n=>{let i=n.closest("pre");i.replaceChildren(),i.className="b-markdown-diagram b-markdown-mermaid",Yt(i,"mermaid",s,n.textContent)});return}r.initialize({startOnLoad:!1,securityLevel:"strict",theme:Gr(t)});for(let s of e){let n=s.textContent,i=s.closest("pre");i.replaceChildren(),i.className="b-markdown-diagram b-markdown-mermaid";try{let{svg:c}=await r.render(`b-mermaid-${++Vr}`,n);i.innerHTML=c}catch(c){Yt(i,"mermaid",c,n)}}}function Yr(t){let e=globalThis.thebase;if(!e?.mountAll)return;let r=document.createElement("div");r.setAttribute("b-ui","toast"),r.setAttribute("b-att-state","open"),r.setAttribute("b-att-delay","2000"),r.className="b-markdown-b-copy-toast",r.textContent=t,document.body.append(r),e.mountAll(r),r.addEventListener("baseui:close",()=>r.remove(),{once:!0})}function Xr(t){let e=document.createElement("div");e.className="b-markdown-b-code";let r=document.createElement("button");r.type="button",r.className="b-markdown-b-copy";let s=document.createElement("span");Zt(s,"copy",{label:"Copy code"}),r.append(s),r.addEventListener("click",async()=>{try{await xe(t),r.dispatchEvent(new CustomEvent("baseui:markdown-copy",{bubbles:!0,detail:{source:t}})),Yr("Copied to clipboard")}catch(c){r.dispatchEvent(new CustomEvent("baseui:markdown-copy-error",{bubbles:!0,detail:{error:c}}))}}),e.append(r);let n=document.createElement("pre"),i=document.createElement("code");i.className="b-markdown-b-code-lines";for(let c of t.replace(/\n$/,"").split(`
|
|
24
|
+
`)){let l=document.createElement("span");l.className="b-markdown-b-code-line",l.textContent=c,i.append(l)}return n.append(i),e.append(n),e}var Jt;function ts(){return Jt??(Jt=Bt("/dist/baseui.templates.xml")),Jt}var Xt=new WeakMap;function te(t){let e=Xt.get(t);if(e){Xt.delete(t);for(let r of e)try{r.destroy()}catch{}}}var es=/\bstate\.([A-Za-z_$][\w$]*)/g;function rs(t){return new Set([...t.matchAll(es)].map(e=>e[1]))}var ss=/\bthis\.([A-Za-z_$][\w$]*)\s*\(/g,ns=/\bt-on-[\w:-]+\s*=\s*(["'])([A-Za-z_$][\w$]*)\1/g;function os(t){let e=new Set;for(let r of t.matchAll(ss))e.add(r[1]);for(let r of t.matchAll(ns))e.add(r[2]);return e}function is(t){let e=we({raw:[t]}),r=rs(t);class s extends d{setup(){this.state=C(Object.fromEntries([...r].map(i=>[i,""])))}}a(s,"template",e);for(let n of os(t))s.prototype[n]=function(){};return s}function Ae(t){t.querySelector("[data-slot='dropdown-menu'], .b-dropdown-menu, [b-ui='dropdown-menu'], [b-dropdown-menu]")&&t.classList.add("b-markdown-b-preview-overlay")}async function as(t,e){let[r,s]=await Promise.all([ts(),is(e)]),n=await Et(s,t,{templates:r});return Ae(t),n}function cs(t,e){let r=globalThis.thebase;if(!r?.mountAll)throw new Error("BaseUI runtime not found on the page \u2014 load dist/baseui.min.js before mounting Markdown.");t.innerHTML=e,Ae(t),r.mountAll(t)}async function ls(t){te(t);let e=[...t.querySelectorAll("pre > code.language-base-ui")];if(!e.length)return;let r=new Set;for(let s of e){let n=s.textContent,i=s.closest("pre");i.replaceChildren(),i.className="b-markdown-live b-markdown-baseui";let c=document.createElement("div");c.className="b-markdown-b-preview",i.append(c,Xr(n));try{/<[A-Z]/.test(n)?r.add(await as(c,n)):cs(c,n)}catch(l){Yt(i,"BaseUI component",l,n)}}r.size&&Xt.set(t,r)}function us(t){for(let e of t.querySelectorAll("li > input[type=checkbox]:not([aria-label])"))e.setAttribute("aria-label",e.parentElement.textContent.trim())}async function Ee(t,{mermaid:e=!0,baseUi:r=!0}={}){us(t),e&&await Jr(t),r&&await ls(t)}async function Ce(t){return(await Qr()).createMilkdownMarkdownEditor(t)}function Oe(t){let e=String(t??""),r=/^---\r?\n([\s\S]*?)\r?\n---[ \t]*\r?\n?/.exec(e);if(!r)return{data:{},content:e};let s={};for(let n of r[1].split(/\r?\n/)){let i=n.trim();if(!i||i.startsWith("#"))continue;let c=i.indexOf(":");if(c===-1)continue;let l=i.slice(0,c).trim();l&&(s[l]=ps(i.slice(c+1).trim()))}return{data:s,content:e.slice(r[0].length)}}function Te(t){return t.length>=2&&(t[0]==='"'&&t.at(-1)==='"'||t[0]==="'"&&t.at(-1)==="'")?t.slice(1,-1):t}function ps(t){if(t==="")return"";if(t==="true")return!0;if(t==="false")return!1;if(/^-?\d+(\.\d+)?$/.test(t))return Number(t);if(t.startsWith("[")&&t.endsWith("]")){let e=t.slice(1,-1).trim();return e?e.split(",").map(r=>Te(r.trim())):[]}return Te(t)}var _=class extends d{setup(){this.rootRef=v("root"),this.editorRef=v("editor"),this.editorHandle=null,this.state=C({html:"",source:"",status:"loading",error:"",frontmatter:{}}),ft(()=>this.load(this.props)),L(e=>{if(this.shouldReload(e))return this.load(e);this.shouldRestartEditor(e)&&this.destroyEditor()}),N(()=>this.afterRender()),P(()=>this.afterRender()),mt(()=>{this.destroyEditor(),this.rootRef.el&&te(this.rootRef.el)})}get classNames(){return b("b-markdown",this.props.className)}get editorLabel(){return this.props.collaborative?"Collaborative Markdown editor":"Markdown editor"}shouldReload(e){return e.content!==this.props.content||e.src!==this.props.src}shouldRestartEditor(e){return e.editable!==this.props.editable||e.collaborative!==this.props.collaborative||e.room!==this.props.room||e.password!==this.props.password||e.signaling!==this.props.signaling}async load(e){this.destroyEditor(),this.state.status="loading",this.state.error="";let r=e.content??"";if(e.src)try{let s=await fetch(e.src);if(!s.ok)throw new Error(`${s.status} ${s.statusText}`);r=await s.text()}catch(s){this.state.status="error",this.state.error=s.message||String(s);return}try{this.state.source=r;let{data:s,content:n}=Oe(r);this.state.frontmatter=s,this.state.html=_t(await ve(n)),this.state.status="ready"}catch(s){this.state.status="error",this.state.error=s.message||String(s)}}get hasFrontmatterMeta(){let e=this.state.frontmatter;return!!(e.tags?.length||e.authors?.length)}enhance(){let e=this.rootRef.el;!e||this.state.status!=="ready"||Ee(e,{mermaid:this.props.mermaid!==!1,baseUi:this.props.baseUi!==!1})}afterRender(){this.props.editable?this.mountEditor():this.enhance()}async mountEditor(){let e=this.editorRef.el;if(!(!e||this.editorHandle||this.state.status!=="ready"))try{this.editorHandle=await Ce({root:e,value:this.state.source,collaborative:!!this.props.collaborative,room:this.props.room||"b-markdown",password:this.props.password,signaling:this.props.signaling,user:this.props.user,onChange:(r,s,n)=>{this.state.source=r,this.props.onChange?.(r,s,n)}})}catch(r){this.state.status="error",this.state.error=r.message||String(r)}}destroyEditor(){this.editorHandle?.destroy?.(),this.editorHandle=null}};a(_,"template","baseui.Markdown"),a(_,"components",{Badge:B}),a(_,"props",{content:o(String),src:o(String),mermaid:o(Boolean),baseUi:o(Boolean),editable:o(Boolean),collaborative:o(Boolean),room:o(String),password:o(String),signaling:o(Array),user:o(Object),onChange:o(Function),className:o(String),style:o([String,Object])});var T=class extends d{setup(){this.state=C({failed:!1}),Mt(e=>{if(this.state.failed=!1,typeof Image>"u"||!e||e===$t)return;let r=new Image;return r.onerror=()=>{this.state.failed=!0},r.src=this.buildUrl(e),()=>{r.onload=null,r.onerror=null}},()=>[this.name])}buildUrl(e){return yt(e,{baseUrl:I(this.props,"base-url","baseUrl")})}get name(){return I(this.props,"icon","name")}get url(){return this.buildUrl(this.state.failed?$t:this.name)}get style(){let e=[`--b-icon-url:url("${this.url.replace(/"/g,"%22")}")`];return this.props.size&&e.push(`--b-icon-size:${this.props.size}`),Tt(e.join(";"),this.props.style)}get classNames(){return b("b-icon",this.props.className)}};a(T,"template","baseui.Icon"),a(T,"props",{icon:o(String),name:o(String),label:o(String),title:o(String),size:o(String),"base-url":o(String),baseUrl:o(String),className:o(String),style:o([String,Object])});function Ne(t){return class extends T{get name(){return I(this.props,"icon","name")||t}}}var $=class extends d{setup(){this.rootRef=v("root"),this.props.getRef&&(N(()=>this.props.getRef(this.rootRef.el)),j(()=>this.props.getRef(null)))}get classNames(){return this.props.unstyled?b(this.props.className):b("btn","b-button",wt[this.props.variant]||wt.default,Rt[this.props.size],this.isIconOnly&&"b-button-icon",this.props.className)}get iconPosition(){return I(this.props,"icon-position","iconPosition")==="end"?"end":"start"}get ariaLabel(){return I(this.props,"aria-label","ariaLabel")}get ariaPressed(){return I(this.props,"aria-pressed","ariaPressed")}get ariaInvalid(){let e=I(this.props,"aria-invalid","ariaInvalid");return e===!0?"true":e}get isIconOnly(){return!!(this.props.icon&&!this.props.label&&!this.props.slots?.default)}onClick(e){if(this.props.href&&this.props.disabled){e.preventDefault();return}this.props.onClick?.(e)}};a($,"template","baseui.Button"),a($,"components",{Icon:T}),a($,"props",{variant:o(String),size:o(String),type:o(String),href:o(String),disabled:o(Boolean),label:o(String),icon:o(String),"icon-position":o(String),iconPosition:o(String),unstyled:o(Boolean),attrs:o(Object),getRef:o(Function),...g,id:o(String),title:o(String),"aria-label":o(String),ariaLabel:o(String),"aria-pressed":o(String),ariaPressed:o(String),"aria-invalid":o([String,Boolean]),ariaInvalid:o([String,Boolean]),onClick:o(Function)});var Z=class extends d{onChange(e){this.props.onChange?.(e.target.checked,e)}};a(Z,"template","baseui.Checkbox"),a(Z,"props",{checked:o(Boolean),disabled:o(Boolean),...g,id:o(String),onChange:o(Function)});function M(){let t=globalThis.bootstrap;if(!t)throw new Error("BaseUI: load dist/bootstrap.bundle.min.js before this script (globalThis.bootstrap is not set).");return t}function ke(t,e){L(r=>{Ht(r)&&(t.open=Ot(r),t.open?e?.instance?.show():e?.instance?.hide())})}function $e(t,e,r){Ht(t)||(e.open=r),t.onOpenChange?.(r)}var G=class extends d{setup(){this.dialogState=C({open:Ot(this.props)}),this.control={instance:null},bt({dialog:this.dialogState,dialogControl:this.control,setDialogOpen:e=>this.setOpen(e)}),ke(this.dialogState,this.control)}setOpen(e){$e(this.props,this.dialogState,e)}};a(G,"template","baseui.Dialog"),a(G,"props",{open:o(Boolean),state:o(String),"default-open":o(Boolean),defaultOpen:o(Boolean),onOpenChange:o(Function),style:o([String,Object]),slots:o(Object)});var z=class extends d{setup(){this.rootRef=v("root"),this.previousFocus=null,this.onShow=()=>{this.previousFocus=document.activeElement},this.onShown=()=>this.env.setDialogOpen(!0),this.onHidden=()=>{this.env.setDialogOpen(!1),this.previousFocus?.focus?.(),this.previousFocus=null},N(()=>{this.env.dialogControl.instance=M().Modal.getOrCreateInstance(this.rootRef.el,{backdrop:!0,keyboard:!0,focus:!0}),this.rootRef.el.addEventListener("show.bs.modal",this.onShow),this.rootRef.el.addEventListener("shown.bs.modal",this.onShown),this.rootRef.el.addEventListener("hidden.bs.modal",this.onHidden),this.env.dialog.open&&this.env.dialogControl.instance.show()}),j(()=>{this.rootRef.el.removeEventListener("show.bs.modal",this.onShow),this.rootRef.el.removeEventListener("shown.bs.modal",this.onShown),this.rootRef.el.removeEventListener("hidden.bs.modal",this.onHidden),this.env.dialogControl.instance?.dispose(),this.env.dialogControl.instance=null})}get showCloseButton(){return this.props.showCloseButton!==!1&&this.props["show-close-button"]!==!1}};a(z,"template","baseui.DialogContent"),a(z,"components",{Button:$}),a(z,"props",{...g,showCloseButton:o(Boolean),"show-close-button":o(Boolean)});var K=class extends d{};a(K,"template","baseui.DialogHeader"),a(K,"props",g);var Q=class extends d{};a(Q,"template","baseui.DialogFooter"),a(Q,"props",g);var J=class extends d{};a(J,"template","baseui.DialogTitle"),a(J,"props",g);var Y=class extends d{};a(Y,"template","baseui.DialogDescription"),a(Y,"props",g);var X=class extends d{setup(){this.state=C({open:Ct(this.props.state)}),this.triggerRef=v("trigger"),this.bufferRef=v("buffer"),this.bootstrapTooltip=null,this.lastContentHtml=null,this.onShown=()=>{this.state.open=!0},this.onHidden=()=>{this.state.open=!1},N(()=>{this.lastContentHtml=this.currentContentHtml();let e=this.triggerElement();this.bootstrapTooltip=new(M()).Tooltip(e,{title:this.lastContentHtml,html:!0,trigger:"hover focus"}),e.addEventListener("shown.bs.tooltip",this.onShown),e.addEventListener("hidden.bs.tooltip",this.onHidden),Ct(this.props.state)&&this.bootstrapTooltip.show()}),P(()=>{let e=this.currentContentHtml();e!==this.lastContentHtml&&(this.lastContentHtml=e,this.bootstrapTooltip?.setContent({".tooltip-inner":e}))}),j(()=>{let e=this.triggerElement();e?.removeEventListener("shown.bs.tooltip",this.onShown),e?.removeEventListener("hidden.bs.tooltip",this.onHidden),this.bootstrapTooltip?.dispose()})}triggerElement(){return this.triggerRef.el?.firstElementChild||this.triggerRef.el}currentContentHtml(){return this.props.content??this.bufferRef.el?.innerHTML??""}show(){this.bootstrapTooltip?.show()}hide(){this.bootstrapTooltip?.hide()}};a(X,"template","baseui.Tooltip"),a(X,"props",{content:o(String),state:o(String),...g});var ds=Ne("circle-question-mark"),hs=0,tt={label:o(String),labelBackground:o(String),supportingText:o(String),useTip:o(Number),errorText:o(String),leadingIcon:o(String),trailingIcon:o(String),maxLength:o(Number),invalid:o(Boolean),placeholder:o(String),disabled:o(Boolean),slots:o(Object)},U=class extends d{setup(){this.supportId=`b-input-support-${hs++}`,this.box=v("box"),this.slotRefs={start:v("start"),end:v("end"),footer:v("footer")},N(()=>this.measureSlots()),P(()=>this.measureSlots())}get field(){return this.env.fieldProps?.()??{}}get label(){return this.props.label??this.field.label}get labelStyle(){let e=this.props.labelBackground??this.field.labelBackground;return e?`--b-label-bg:${e}`:void 0}get isOutlined(){return!!this.label||this.hasStart||this.hasEnd||this.hasFooter}get hasStart(){return!!this.props.slots?.start}get hasEnd(){return!!this.props.slots?.end}get hasFooter(){return!!this.props.slots?.footer}measureSlots(){let e=this.box.el;if(!e)return;let{start:r,end:s,footer:n}=this.slotRefs;e.style.setProperty("--b-slot-start",`${r.el?.offsetWidth??0}px`),e.style.setProperty("--b-slot-end",`${s.el?.offsetWidth??0}px`),e.style.setProperty("--b-slot-footer",`${n.el?.offsetHeight??0}px`)}get isInvalid(){return!!(this.props.invalid||this.field.invalid||this.errorText)}get errorText(){return this.props.errorText??this.field.error}get helperText(){return this.props.supportingText||this.field.description}get useTip(){return Number(this.props.useTip??this.field.useTip??0)===1}get supportingText(){return this.errorText||(this.useTip?void 0:this.helperText)}get tipText(){return this.useTip&&!this.errorText?this.helperText:void 0}get leadingIcon(){return this.props.leadingIcon}get trailingIcon(){return this.isInvalid?"circle-alert":this.props.trailingIcon}get fieldPlaceholder(){return this.props.placeholder??(this.isOutlined?" ":void 0)}get counter(){return`${(this.props.value??"").length}/${this.props.maxLength}`}get controlClass(){return this.isOutlined&&"b-outlined-control"}get describedBy(){return this.supportingText?this.supportId:void 0}get outlinedClassNames(){return b("b-input-outlined",this.isInvalid&&"is-invalid",this.props.disabled&&"is-disabled",this.props.placeholder&&"has-placeholder",this.leadingIcon&&"has-leading",this.trailingIcon&&"has-trailing",this.hasStart&&"has-start",this.hasEnd&&"has-end",this.hasFooter&&"has-footer")}};a(U,"components",{Icon:T,IconCircleQuestionMark:ds,Tooltip:X});function Re({tag:t="input",type:e}={}){return t==="select"?"form-select":e==="checkbox"||e==="radio"?"form-check-input":"form-control"}var et=class extends U{get ariaLabel(){return this.props["aria-label"]??this.props.ariaLabel}get classNames(){return b("b-input",Re({tag:"input",type:this.props.type}),this.controlClass,this.isInvalid&&"is-invalid",this.props.className)}onInput(e){this.props.onInput?.(e.target.value,e)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(et,"template","baseui.Input"),a(et,"props",{...tt,value:o(String),type:o(String),readonly:o(Boolean),className:o(String),style:o([String,Object]),id:o(String),list:o(String),autocomplete:o(String),"aria-label":o(String),ariaLabel:o(String),min:o([String,Number]),max:o([String,Number]),step:o([String,Number]),onInput:o(Function),onChange:o(Function)});var rt=class extends U{get ariaLabel(){return this.props["aria-label"]??this.props.ariaLabel}get classNames(){return b("b-native-select","form-select",this.controlClass,this.isInvalid&&"is-invalid",(this.props.size==="sm"||this.props.size==="lg")&&`form-select-${this.props.size}`,this.props.className)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(rt,"template","baseui.NativeSelect"),a(rt,"props",{...tt,value:o(String),size:o(String),...g,"aria-label":o(String),ariaLabel:o(String),id:o(String),onChange:o(Function)});var st=class extends U{get outlinedClassNames(){return b(super.outlinedClassNames,"is-anchored")}get classNames(){return b("form-control",this.controlClass,this.isInvalid&&"is-invalid",this.props.resize==="none"&&"b-textarea-no-resize",this.props.className)}onInput(e){this.props.onInput?.(e.target.value,e)}onChange(e){this.props.onChange?.(e.target.value,e)}};a(st,"template","baseui.Textarea"),a(st,"props",{...tt,value:o(String),rows:o(Number),readonly:o(Boolean),resize:o(String),className:o(String),style:o([String,Object]),id:o(String),onInput:o(Function),onChange:o(Function)});var ee={default:"b-tabs-list-default",line:"b-tabs-list-line"};function Le(t,e,r,s="horizontal"){let n=s==="vertical",l=t===(n?"ArrowDown":"ArrowRight")?1:t===(n?"ArrowUp":"ArrowLeft")?-1:0;return!l||r===0?-1:(e+l+r)%r}var ms=0;function Ie(t){return String(t).replace(/[^a-zA-Z0-9_-]/g,"_")}var nt=class extends d{setup(){this.tabsState=C({active:this.props.value??this.props.defaultValue??""}),this.instanceId=`t${++ms}`,bt({tabs:this.tabsState,selectTab:e=>this.select(e),tabsId:this.instanceId,orientation:this.orientation}),L(e=>{e.value!==void 0&&(this.tabsState.active=e.value)})}get orientation(){return this.props.orientation==="vertical"?"vertical":"horizontal"}get classNames(){return b("b-tabs",this.props.className)}select(e){this.props.value===void 0&&(this.tabsState.active=e),this.props.onChange?.(e)}};a(nt,"template","baseui.Tabs"),a(nt,"props",{value:o(String),defaultValue:o(String),orientation:o(String),onChange:o(Function),...g});var ot=class extends d{};a(ot,"template","baseui.TabsContainer"),a(ot,"props",{...g});var it=class extends d{setup(){this.listRef=v("list")}get classNames(){return b("nav","b-tabs-list",ee[this.props.variant]||ee.default,this.props.className)}onKeyDown(e){let r=[...this.listRef.el.querySelectorAll("[role='tab']")],s=r.indexOf(e.target),n=Le(e.key,s,r.length,this.env.orientation);n!==-1&&(e.preventDefault(),r[n].focus(),r[n].click())}};a(it,"template","baseui.TabsList"),a(it,"props",{variant:o(String),...g});var H=class extends d{setup(){this.rootEl=null,this.tabInstance=null,this.onShown=()=>this.env.selectTab(this.props.value)}onRootRef(e){e?(this.rootEl=e,this.tabInstance=M().Tab.getOrCreateInstance(e),e.addEventListener("shown.bs.tab",this.onShown)):this.rootEl&&(this.rootEl.removeEventListener("shown.bs.tab",this.onShown),this.tabInstance?.dispose(),this.tabInstance=null,this.rootEl=null)}get isActive(){return this.env.tabs.active===this.props.value}get panelId(){return`b-tabs-panel-${this.env.tabsId}-${Ie(this.props.value)}`}get classNames(){return b("nav-link","b-tabs-trigger",this.isActive&&"active",this.props.className)}get tabAttrs(){return{role:"tab","data-bs-target":`#${this.panelId}`,"aria-selected":this.isActive?"true":"false",tabindex:this.isActive?0:-1}}onClick(){this.props.disabled||this.tabInstance?.show()}};a(H,"template","baseui.TabTrigger"),a(H,"components",{Button:$}),a(H,"props",{value:{type:String},disabled:o(Boolean),...g});var at=class extends d{setup(){this.initialActive=this.isActive}get isActive(){return this.env.tabs.active===this.props.value}get panelId(){return`b-tabs-panel-${this.env.tabsId}-${Ie(this.props.value)}`}};a(at,"template","baseui.TabContent"),a(at,"props",{value:{type:String},...g});var ct=class extends d{};a(ct,"template","baseui.Breadcrumb"),a(ct,"props",{...g});var lt=class extends d{};a(lt,"template","baseui.BreadcrumbList"),a(lt,"props",{...g});var ut=class extends d{get classNames(){return b("b-breadcrumb-item",this.props.current&&"b-breadcrumb-page",this.props.className)}};a(ut,"template","baseui.BreadcrumbItem"),a(ut,"props",{current:o(Boolean),...g});var pt=class extends d{get classNames(){return b("b-breadcrumb-link",this.props.className)}onClick(e){this.props.onClick?.(e)}};a(pt,"template","baseui.BreadcrumbLink"),a(pt,"props",{href:o(String),target:o(String),rel:o(String),...g,onClick:o(Function)});var dt=class extends d{get classNames(){return b("b-breadcrumb-page",this.props.className)}};a(dt,"template","baseui.BreadcrumbPage"),a(dt,"props",{...g});var q=class extends d{get classNames(){return b("b-breadcrumb-separator",this.props.className)}get hasCustomContent(){return!!this.props.slots?.default}};a(q,"template","baseui.BreadcrumbSeparator"),a(q,"components",{Icon:T}),a(q,"props",{...g});var St=class extends d{get classNames(){return b("b-breadcrumb-ellipsis",this.props.className)}get hasCustomContent(){return!!this.props.slots?.default}};a(St,"template","baseui.BreadcrumbEllipsis"),a(St,"components",{Icon:T}),a(St,"props",{...g});var Ue={implicit:"Implicit",password:"Resource Owner Password Credentials",application:"Client Credentials",accessCode:"Authorization Code"},fs=["POST","PUT","PATCH"];function D(t){try{return sessionStorage.getItem(t)||""}catch{return""}}function xt(t,e){try{e?sessionStorage.setItem(t,e):sessionStorage.removeItem(t)}catch{}}function se(){return!!(D("apikey")||D("oauthkey"))}function re(t){return t.example!==void 0?String(t.example):t.default!==void 0?String(t.default):t.enum?.length?String(t.enum[0]):t.type==="integer"||t.type==="number"?t.format==="int64"?"10":"1":t.type==="boolean"?"true":t.required&&t.in==="path"?"string":""}function ne(t,e){let r=D("apikey"),s=D("oauthkey");for(let n of t.security)n.type==="apiKey"&&n.in==="header"?e.header[n.name]=r:n.type==="apiKey"&&n.in==="query"?e.query[n.name]=r:n.type==="basic"?e.header.Authorization=r?`Basic ${r}`:"":(n.type==="oauth2"||n.type==="bearer")&&(e.header.Authorization=s?`Bearer ${s}`:"")}function Pe(t,e){let r={baseUrl:e,path:{},query:{},header:{},bodyText:"",mimeType:t.consumes?.[0]||"application/json"};return t.parameters.path.forEach(s=>{r.path[s.name]=re(s)}),t.parameters.query.forEach(s=>{r.query[s.name]=s.required?re(s):""}),t.parameters.header.forEach(s=>{r.header[s.name]=s.required?re(s):""}),t.produces?.length&&(r.header.Accept=t.produces.includes("application/json")?"application/json":t.produces[0]),t.parameters.body&&(r.mimeType=t.parameters.body.contentType||r.mimeType,r.bodyText=oe(t.parameters.body.example)),ne(t,r),r}function oe(t){return typeof t=="string"?t:JSON.stringify(t,null,2)??""}function ie(t,e){let r=t.path;for(let[n,i]of Object.entries(e.path))r=r.replace(`{${n}}`,encodeURIComponent(i??""));let s=!!t.parameters.body&&fs.includes(t.method);return{method:t.method,url:`${e.baseUrl}${r}`,query:Object.entries(e.query).filter(([,n])=>n!==""),headers:Object.entries(e.header).filter(([,n])=>n!==""),bodyText:s?e.bodyText:"",mimeType:e.mimeType}}function je(t){let e=t.query.length?`${t.url}?${new URLSearchParams(t.query)}`:t.url,r=Object.fromEntries(t.headers);return t.bodyText&&(r["Content-Type"]=r["Content-Type"]||t.mimeType),{url:e,headers:r,headerLines:Object.entries(r).map(([s,n])=>`${s}: ${n}`).join(`
|
|
25
|
+
`)}}async function Be(t,e){let r=performance.now(),s=await fetch(e.url,{method:t.method,headers:e.headers,body:t.bodyText||void 0}),n=Math.round(performance.now()-r),i=await s.text();return{status:s.status,statusText:s.statusText,ms:n,headerLines:[...s.headers.entries()].map(([c,l])=>`${c}: ${l}`).join(`
|
|
26
|
+
`),bodyText:bs(i)}}function bs(t){try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}function _e(t){let e=parseInt(t,10);return t==="default"||Number.isNaN(e)?"default":e<300?"2xx":e<400?"3xx":e<500?"4xx":"5xx"}function Me(t,e,r){if(!t)return"";try{let s=new URL(e),n=new URL(r.derivedBaseUrl||r.baseUrl||e),i=new URL(t,`${s.href.replace(/\/$/,"")}/`);return i.host===n.host&&(i.protocol=s.protocol,i.username=s.username,i.password=s.password,i.host=s.host),i.href}catch{return String(t)}}function ze(){return Array.from(crypto.getRandomValues(new Uint8Array(16)),t=>t.toString(16).padStart(2,"0")).join("")}function He({def:t,clientId:e,scopes:r,state:s,redirectUri:n,baseUrl:i,doc:c}){let l=new URL(Me(t.authorizationUrl,i,c));return l.searchParams.set("response_type",t.flow==="implicit"?"token":"code"),e&&l.searchParams.set("client_id",e),l.searchParams.set("redirect_uri",n),r.length&&l.searchParams.set("scope",r.join(" ")),l.searchParams.set("state",s),l.toString()}async function qe(t,e,r,s){if(!t)throw new Error("No tokenUrl defined for this scheme.");let n=new URLSearchParams;for(let[l,p]of Object.entries(e))p&&n.set(l,p);let i=await fetch(Me(t,r,s),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:n.toString()}),c=await i.json().catch(()=>({}));if(!i.ok||!c.access_token)throw new Error(c.error_description||c.error||`HTTP ${i.status}`);return c.access_token}function De(t,e,r){let s={client_id:e.clientId,client_secret:e.clientSecret,scope:r.join(" ")};return t==="password"?{grant_type:"password",username:e.username,password:e.password,...s}:{grant_type:"client_credentials",...s}}var er;function Ys(){return er??(er=Promise.resolve().then(()=>(tr(),Xe)))}var Xs=["curl","csharp","go","node","ruby","php"],tn="(max-width: 1100px)";function rr(t){return t==="DELETE"?"DEL":t}function en(){let t=[...document.scripts].find(e=>/\/baseui(\.[\w-]+)*\.(min\.)?js(\?|$)/.test(e.src));return t?`${t.src.replace(/[?#].*$/,"").replace(/\/[^/]*$/,"")}/apidoc`:""}var W=class extends d{get children(){return this.props.groups.filter(e=>e.parent===this.props.group.name)}methodLabel(e){return rr(e)}};a(W,"template","baseui.ApiDocGroup"),a(W,"props",{group:Object,groups:Array,current:String,href:Function,onSelect:Function});W.components={ApiDocGroup:W,Icon:T};var F=class extends d{setup(){this.rootRef=v("root"),this.mainRef=v("main"),this.doc=null,this.pendingOAuth=new Map,this.watchers=new Set,this.rowsCache=new WeakMap,this.overlayQuery=window.matchMedia(tn),this.state=C({status:"loading",error:"",current:"introduction",lang:this.props.language||"curl",sidebarOpen:!this.overlayQuery.matches,systemTheme:"light",themeOverride:"",drafts:{},snippet:"",result:null,respTab:0,respView:{},authOpen:!1,authed:se(),stored:{apikey:"",oauthkey:""},inputs:{apikey:"",oauthkey:""},oauth:{},oauthStatus:{}}),this.onHashChange=()=>this.setCurrent(this.routeId()),this.onViewportChange=()=>{this.state.sidebarOpen=!this.overlayQuery.matches},this.onDocumentClick=e=>this.closeSidebarOnOutsideClick(e),this.onOAuthMessage=e=>this.handleOAuthMessage(e),this.onThemeChange=()=>this.readSystemTheme(),ft(()=>this.load(this.props)),L(e=>this.shouldReload(e)?this.load(e):void 0),N(()=>this.addListeners()),mt(()=>this.removeListeners())}get classNames(){return b("b-apidoc",this.props.className)}get rootStyle(){return Tt(this.props.height?`--b-apidoc-height:${this.props.height}`:"",this.props.style)}get theme(){return(this.props.theme==="light"||this.props.theme==="dark"?this.props.theme:"")||this.state.themeOverride||this.state.systemTheme}get title(){return this.props.title||this.doc?.info.title||"API Documentation"}get tryItEnabled(){return this.props.tryIt!==!1}get hasSecurity(){return this.props.authorize!==!1&&Object.keys(this.doc?.securityDefinitions||{}).length>0}get languages(){let e=this.logic?.LANGUAGES||[],r=this.props.languages;return r?.length?e.filter(s=>r.includes(s.id)):e}get currentLanguage(){return this.languages.find(e=>e.id===this.state.lang)||this.languages[0]}get op(){return this.state.current==="introduction"?null:this.doc.findOperation(this.state.current)}get draft(){return this.state.drafts[this.state.current]}get showTryIt(){return this.tryItEnabled&&!!this.op}get sidebarGroups(){let e=this.doc.groups.filter(r=>!r.parent);return this.doc.webhooks.length&&e.push({id:"webhooks",name:"Webhooks",items:this.doc.webhooks,kind:""}),e}get breadcrumb(){let e=this.op;if(!e)return[{label:"Home",id:"introduction",home:!0},{label:"Introduction"}];let r=this.doc.groups.find(s=>s.name===e.tag);return[{label:"Home",id:"introduction",home:!0},{label:this.title,id:"introduction"},{label:e.tag,id:r?r.items[0].id:"introduction"},{label:e.summary}]}get authSchemes(){return Object.entries(this.doc.securityDefinitions).map(([e,r])=>({key:e,def:r,scopes:Object.entries(r.scopes||{})}))}get serverOptions(){return this.doc.servers.length?this.doc.servers:[{url:this.doc.baseUrl,name:"",description:""}]}get tryItParams(){let{path:e,query:r,header:s}=this.op.parameters;return[...e.map(n=>({...n,group:"path"})),...r.map(n=>({...n,group:"query"})),...s.map(n=>({...n,group:"header"}))]}get selectedBaseUrl(){return this.draft?.baseUrl||this.doc.baseUrl}methodLabel(e){return rr(e)}statusClass(e){return _e(e)}formatExample(e){return oe(e)}serverLabel(e){let r=[e.name,e.description].filter(Boolean).join(" \u2014 ");return r?`${r} (${e.url})`:e.url}languageTone(e){return Xs.includes(e)?e:"default"}encodingEntries(e){return Object.entries(e)}oauthFlowLabel(e){return Ue[e]||e||"unknown"}schemaRows(e){return this.rowsCache.has(e)||this.rowsCache.set(e,this.doc.schemaRows(e)),this.rowsCache.get(e)}depth(e){return(e.match(/\./g)||[]).length}lineNumbers(e){return String(e||"").split(`
|
|
27
|
+
`).map((r,s)=>s+1)}iconUrl(e){let r=this.props.assetBase??this.assetBase??(this.assetBase=en());return r?`${r.replace(/\/$/,"")}/${e.icon}`:""}href(e){return this.props.hash?`#/${e}`:"#"}shouldReload(e){return e.src!==this.props.src||e.spec!==this.props.spec||e.serverUrl!==this.props.serverUrl}async load(e){this.state.status="loading";try{this.logic=await Ys(),this.doc=e.spec?this.logic.buildOpenApiDoc(e.spec,e.serverUrl):await this.logic.loadOpenApiDoc(e.src,e.serverUrl)}catch(r){this.state.status="error",this.state.error=r.message||String(r),e.onError?.(r);return}this.state.drafts={},this.state.current=this.routeId(e),this.ensureDraft(),this.state.status="ready",this.updateSnippet(),e.onLoad?.(this.doc)}routeId(e=this.props){let r=e.hash?location.hash.replace(/^#\//,""):e.operation;return r&&this.doc.findOperation(r)?r:"introduction"}go(e,r){this.props.hash||(e.preventDefault(),this.setCurrent(r)),this.overlayQuery.matches&&(this.state.sidebarOpen=!1)}setCurrent(e){let r=this.state;r.current=e,r.result=null,r.respTab=0,r.respView={},this.ensureDraft(),this.updateSnippet(),this.mainRef.el&&(this.mainRef.el.scrollTop=0),this.props.onNavigate?.(e)}ensureDraft(){let e=this.op;e&&!this.state.drafts[e.id]&&(this.state.drafts[e.id]=Pe(e,this.doc.baseUrl))}toggleSidebar(){this.state.sidebarOpen=!this.state.sidebarOpen}closeSidebarOnOutsideClick(e){!this.overlayQuery.matches||!this.state.sidebarOpen||e.target.closest?.(".sidebar-shell, .sidebar-toggle")||(this.state.sidebarOpen=!1)}selectResponse(e){this.state.respTab=Number(e)}setResponseView(e,r){this.state.respView[e]=r}setLanguage(e){this.state.lang=e,this.updateSnippet()}onBaseUrl(e){this.draft.baseUrl=e,this.updateSnippet()}onParam(e,r,s){this.draft[r][s]=e,this.updateSnippet()}onBody(e){this.draft.bodyText=e,this.updateSnippet()}async updateSnippet(){let e=this.op;if(!e||!this.tryItEnabled)return;let r=this.currentLanguage;try{this.state.snippet=await this.logic.generateSnippet(r.id,ie(e,this.draft))}catch(s){this.state.snippet=`// Could not generate ${r.label} snippet: ${s.message}`}}async send(){let e=this.op,r=ie(e,this.draft),s=je(r),n={method:r.method,url:s.url,headerLines:s.headerLines,bodyText:r.bodyText};this.state.result={phase:"sending",sent:n};let i;try{i={phase:"done",sent:n,res:await Be(r,s)}}catch(c){i={phase:"error",sent:n,message:c.message}}this.state.current===e.id&&(this.state.result=i)}clearResult(){this.state.result=null}collapseRequest(){this.rootRef.el.querySelectorAll(".tryit-card details").forEach((e,r)=>{r<3&&(e.open=!1)})}toggleTheme(){this.state.themeOverride=this.theme==="dark"?"light":"dark"}readSystemTheme(){let e=document.documentElement.getAttribute("data-bs-theme"),r=e?e==="dark":window.matchMedia("(prefers-color-scheme: dark)").matches;this.state.systemTheme=r?"dark":"light"}openAuth(){var r;let e=this.state;e.stored.apikey=D("apikey"),e.stored.oauthkey=D("oauthkey"),e.inputs.apikey=e.stored.apikey,e.inputs.oauthkey=e.stored.oauthkey;for(let{key:s,def:n}of this.authSchemes)(r=e.oauth)[s]??(r[s]={clientId:"",clientSecret:"",username:"",password:"",scopes:Object.keys(n.scopes||{})});e.authOpen=!0}closeAuth(){this.state.authOpen=!1}setAuthOpen(e){this.state.authOpen=e}setAuthInput(e,r){this.state.inputs[e]=r}setField(e,r,s){e[r]=s}saveAuth(){xt("apikey",this.state.inputs.apikey.trim()),xt("oauthkey",this.state.inputs.oauthkey.trim()),this.closeAuth(),this.applyAuthToAll()}clearAuth(e){xt(e,""),this.state.stored[e]="",this.state.inputs[e]="",this.applyAuthToAll()}applyAuthToAll(){for(let[e,r]of Object.entries(this.state.drafts))ne(this.doc.findOperation(e),r);this.state.authed=se(),this.updateSnippet()}toggleScope(e,r){let s=this.state.oauth[e].scopes,n=s.indexOf(r);n<0?s.push(r):s.splice(n,1)}setOAuthStatus(e,r,s=!1){this.state.oauthStatus[e]={message:r,isError:s}}applyOAuthToken(e,r,s){xt("oauthkey",r),this.state.stored.oauthkey=r,this.state.inputs.oauthkey=r,Object.assign(this.state.oauth[e],{clientId:s.clientId,clientSecret:s.clientSecret}),this.applyAuthToAll(),this.setOAuthStatus(e,"Token acquired.")}async fetchToken(e,r,s){try{let n=await qe(this.doc.securityDefinitions[e].tokenUrl,r,this.selectedBaseUrl,this.doc);this.applyOAuthToken(e,n,s)}catch(n){this.setOAuthStatus(e,`Token request failed: ${n.message}. This is usually a CORS restriction on the auth server.`,!0)}}startOAuth2Flow(e){let r=this.doc.securityDefinitions[e],s=this.state.oauth[e],n=[...s.scopes];if(r.flow==="implicit"||r.flow==="accessCode")return this.openOAuthPopup(e,r,s,n);if(r.flow==="password"||r.flow==="application")return this.setOAuthStatus(e,"Requesting token\u2026"),this.fetchToken(e,De(r.flow,s,n),s);this.setOAuthStatus(e,`Unsupported OAuth2 flow: ${r.flow}`,!0)}openOAuthPopup(e,r,s,n){if(!r.authorizationUrl)return this.setOAuthStatus(e,"No authorizationUrl defined for this scheme.",!0);let i=ze(),c=He({def:r,clientId:s.clientId,scopes:n,state:i,redirectUri:this.redirectUri,baseUrl:this.selectedBaseUrl,doc:this.doc}),l=window.open(c,`oauth2-authorize-${e}`,"width=560,height=680");if(!l)return this.setOAuthStatus(e,"Popup blocked \u2014 allow popups for this site and try again.",!0);this.pendingOAuth.set(i,{key:e,flow:r.flow,fields:{...s}}),this.setOAuthStatus(e,"Waiting for authorization in the popup\u2026"),this.watchPopup(l,i,e)}watchPopup(e,r,s){let n=setInterval(()=>{e.closed&&(clearInterval(n),this.watchers.delete(n),this.pendingOAuth.delete(r)&&this.setOAuthStatus(s,"Authorization window was closed before completing.",!0))},500);this.watchers.add(n)}get redirectUri(){return this.props.oauthRedirectUri||new URL("oauth2-redirect.html",document.baseURI).href}handleOAuthMessage(e){let r=e.data;if(e.origin!==window.location.origin||r?.source!=="oauth2-redirect")return;let s=this.pendingOAuth.get(r.state);if(!s)return;this.pendingOAuth.delete(r.state);let{key:n,flow:i,fields:c}=s;if(r.error)return this.setOAuthStatus(n,`Authorization failed: ${r.error}${r.errorDescription?" - "+r.errorDescription:""}`,!0);if(i==="implicit")return r.accessToken?this.applyOAuthToken(n,r.accessToken,c):this.setOAuthStatus(n,"Authorization server did not return an access token.",!0);if(!r.code)return this.setOAuthStatus(n,"Authorization server did not return a code.",!0);this.setOAuthStatus(n,"Exchanging code for token\u2026"),this.fetchToken(n,{grant_type:"authorization_code",code:r.code,redirect_uri:this.redirectUri,client_id:c.clientId,client_secret:c.clientSecret},c)}addListeners(){this.readSystemTheme(),this.themeObserver=new MutationObserver(this.onThemeChange),this.themeObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-bs-theme"]}),window.addEventListener("hashchange",this.onHashChange),window.addEventListener("message",this.onOAuthMessage),document.addEventListener("click",this.onDocumentClick),this.overlayQuery.addEventListener("change",this.onViewportChange)}removeListeners(){this.themeObserver?.disconnect(),window.removeEventListener("hashchange",this.onHashChange),window.removeEventListener("message",this.onOAuthMessage),document.removeEventListener("click",this.onDocumentClick),this.overlayQuery.removeEventListener("change",this.onViewportChange),this.watchers.forEach(clearInterval)}};a(F,"template","baseui.ApiDoc"),a(F,"components",{ApiDocGroup:W,Markdown:_,Badge:B,Breadcrumb:ct,BreadcrumbItem:ut,BreadcrumbLink:pt,BreadcrumbList:lt,BreadcrumbPage:dt,BreadcrumbSeparator:q,Button:$,Checkbox:Z,Dialog:G,DialogContent:z,DialogDescription:Y,DialogFooter:Q,DialogHeader:K,DialogTitle:J,Icon:T,Input:et,NativeSelect:rt,TabContent:at,Tabs:nt,TabsContainer:ot,TabsList:it,TabTrigger:H,Textarea:st}),a(F,"props",{src:o(String),spec:o(Object),title:o(String),serverUrl:o(String),theme:o(String),themeToggle:o(Boolean),hash:o(Boolean),operation:o(String),tryIt:o(Boolean),authorize:o(Boolean),languages:o(Array),language:o(String),assetBase:o(String),oauthRedirectUri:o(String),height:o(String),onLoad:o(Function),onError:o(Function),onNavigate:o(Function),className:o(String),style:o([String,Object])});var rn=`<templates>
|
|
28
28
|
<t t-name="baseui.ApiDoc">
|
|
29
29
|
<div t-ref="root" t-att-class="classNames" t-att-style="rootStyle" t-att-data-theme="theme" t-att-data-bs-theme="theme" data-slot="apidoc" t-att-data-status="state.status">
|
|
30
30
|
<header class="app-header">
|
|
@@ -476,28 +476,28 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
476
476
|
</div>
|
|
477
477
|
</t>
|
|
478
478
|
<t t-name="baseui.markdown">
|
|
479
|
-
<div class="
|
|
479
|
+
<div class="b-markdown"/>
|
|
480
480
|
</t>
|
|
481
481
|
<t t-name="baseui.Markdown">
|
|
482
482
|
<div t-ref="root" t-att-class="classNames" t-att-style="props.style" data-slot="markdown" t-att-data-status="state.status">
|
|
483
|
-
<div t-if="state.status === 'loading'" class="
|
|
484
|
-
<div t-elif="state.status === 'error'" class="
|
|
483
|
+
<div t-if="state.status === 'loading'" class="b-markdown-loading" role="status">Loading\u2026</div>
|
|
484
|
+
<div t-elif="state.status === 'error'" class="b-markdown-error" role="alert">
|
|
485
485
|
<t t-esc="state.error"/>
|
|
486
486
|
</div>
|
|
487
487
|
<div
|
|
488
488
|
t-elif="props.editable"
|
|
489
489
|
t-ref="editor"
|
|
490
|
-
class="
|
|
490
|
+
class="b-markdown-editor"
|
|
491
491
|
data-slot="markdown-editor"
|
|
492
492
|
role="group"
|
|
493
493
|
t-att-aria-label="editorLabel"
|
|
494
494
|
/>
|
|
495
495
|
<t t-else="">
|
|
496
|
-
<div t-if="hasFrontmatterMeta" class="
|
|
497
|
-
<div t-if="state.frontmatter.authors and state.frontmatter.authors.length" class="
|
|
496
|
+
<div t-if="hasFrontmatterMeta" class="b-markdown-meta">
|
|
497
|
+
<div t-if="state.frontmatter.authors and state.frontmatter.authors.length" class="b-markdown-meta-authors">
|
|
498
498
|
By <t t-esc="state.frontmatter.authors.join(', ')"/>
|
|
499
499
|
</div>
|
|
500
|
-
<div t-if="state.frontmatter.tags and state.frontmatter.tags.length" class="
|
|
500
|
+
<div t-if="state.frontmatter.tags and state.frontmatter.tags.length" class="b-markdown-meta-tags">
|
|
501
501
|
<Badge t-foreach="state.frontmatter.tags" t-as="tag" t-key="tag" variant="'secondary'" pill="true"><t t-esc="tag"/></Badge>
|
|
502
502
|
</div>
|
|
503
503
|
</div>
|
|
@@ -508,9 +508,9 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
508
508
|
<t t-name="Markdown" t-call="baseui.Markdown"/>
|
|
509
509
|
|
|
510
510
|
<t t-name="baseui.MarkdownTree">
|
|
511
|
-
<div t-att-class="'
|
|
512
|
-
<div t-if="state.status === 'loading'" class="
|
|
513
|
-
<div t-elif="state.status === 'error'" class="
|
|
511
|
+
<div t-att-class="'b-markdown-tree' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="markdown-tree">
|
|
512
|
+
<div t-if="state.status === 'loading'" class="b-markdown-tree-loading" role="status">Loading\u2026</div>
|
|
513
|
+
<div t-elif="state.status === 'error'" class="b-markdown-tree-error" role="alert">
|
|
514
514
|
<t t-esc="state.error"/>
|
|
515
515
|
</div>
|
|
516
516
|
<SidebarGroup t-else="">
|
|
@@ -553,7 +553,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
553
553
|
<t t-else="">
|
|
554
554
|
<SidebarMenuItem>
|
|
555
555
|
<DropdownMenu>
|
|
556
|
-
<DropdownMenuTrigger className="'
|
|
556
|
+
<DropdownMenuTrigger className="'b-sidebar-menu-button b-markdown-tree-folder-trigger'"><Icon name="'folder'" className="'b-sidebar-menu-icon'"/><span class="b-sidebar-menu-label"><t t-esc="label"/></span><Icon name="'chevron-right'" className="'b-markdown-tree-folder-trigger-icon'"/></DropdownMenuTrigger>
|
|
557
557
|
<DropdownMenuContent>
|
|
558
558
|
<t t-foreach="props.node.children" t-as="child" t-key="child.path || child.name">
|
|
559
559
|
<MarkdownTreeNode node="child" activePath="props.activePath" onSelect="props.onSelect" nested="true"/>
|
|
@@ -575,7 +575,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
575
575
|
</DropdownMenuSub>
|
|
576
576
|
</t>
|
|
577
577
|
<t t-else="">
|
|
578
|
-
<div class="
|
|
578
|
+
<div class="b-markdown-tree-group">
|
|
579
579
|
<SidebarGroupLabel><t t-esc="label"/></SidebarGroupLabel>
|
|
580
580
|
<SidebarMenu>
|
|
581
581
|
<t t-foreach="props.node.children" t-as="child" t-key="child.path || child.name">
|
|
@@ -647,7 +647,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
647
647
|
<label b-ui="checkbox"><input type="checkbox"/><t t-slot="default"/></label>
|
|
648
648
|
</t>
|
|
649
649
|
<t t-name="baseui.Checkbox">
|
|
650
|
-
<label t-att-class="'form-check
|
|
650
|
+
<label t-att-class="'form-check b-check ' + (props.className || '')" t-att-style="props.style">
|
|
651
651
|
<input
|
|
652
652
|
type="checkbox"
|
|
653
653
|
class="form-check-input"
|
|
@@ -668,22 +668,22 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
668
668
|
<t t-name="Dialog" t-call="baseui.Dialog"/>
|
|
669
669
|
|
|
670
670
|
<t t-name="baseui.DialogTrigger">
|
|
671
|
-
<span class="
|
|
671
|
+
<span class="b-dialog-trigger" data-slot="dialog-trigger" t-att-style="props.style" t-on-click="onClick">
|
|
672
672
|
<t t-slot="default"/>
|
|
673
673
|
</span>
|
|
674
674
|
</t>
|
|
675
675
|
<t t-name="DialogTrigger" t-call="baseui.DialogTrigger"/>
|
|
676
676
|
|
|
677
677
|
<t t-name="baseui.DialogContent">
|
|
678
|
-
<div t-ref="root" class="modal fade
|
|
678
|
+
<div t-ref="root" class="modal fade b-dialog-backdrop" data-slot="dialog-overlay" tabindex="-1" aria-hidden="true" t-att-style="props.style">
|
|
679
679
|
<div class="modal-dialog modal-dialog-centered">
|
|
680
|
-
<div t-att-class="'modal-content
|
|
680
|
+
<div t-att-class="'modal-content b-dialog-panel' + (props.className ? ' ' + props.className : '')" data-slot="dialog-content">
|
|
681
681
|
<t t-slot="default"/>
|
|
682
682
|
<Button
|
|
683
683
|
t-if="showCloseButton"
|
|
684
684
|
variant="'ghost'"
|
|
685
685
|
size="'icon-sm'"
|
|
686
|
-
className="'
|
|
686
|
+
className="'b-dialog-close b-dialog-close-control'"
|
|
687
687
|
aria-label="'Close'"
|
|
688
688
|
icon="'x'"
|
|
689
689
|
attrs="{'data-slot': 'dialog-close', 'data-bs-dismiss': 'modal'}"
|
|
@@ -697,28 +697,28 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
697
697
|
<t t-name="DialogContent" t-call="baseui.DialogContent"/>
|
|
698
698
|
|
|
699
699
|
<t t-name="baseui.DialogHeader">
|
|
700
|
-
<div t-att-class="'
|
|
700
|
+
<div t-att-class="'b-dialog-header' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-header">
|
|
701
701
|
<t t-slot="default"/>
|
|
702
702
|
</div>
|
|
703
703
|
</t>
|
|
704
704
|
<t t-name="DialogHeader" t-call="baseui.DialogHeader"/>
|
|
705
705
|
|
|
706
706
|
<t t-name="baseui.DialogFooter">
|
|
707
|
-
<div t-att-class="'
|
|
707
|
+
<div t-att-class="'b-dialog-footer' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-footer">
|
|
708
708
|
<t t-slot="default"/>
|
|
709
709
|
</div>
|
|
710
710
|
</t>
|
|
711
711
|
<t t-name="DialogFooter" t-call="baseui.DialogFooter"/>
|
|
712
712
|
|
|
713
713
|
<t t-name="baseui.DialogTitle">
|
|
714
|
-
<h2 t-att-class="'
|
|
714
|
+
<h2 t-att-class="'b-dialog-title' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-title">
|
|
715
715
|
<t t-slot="default"/>
|
|
716
716
|
</h2>
|
|
717
717
|
</t>
|
|
718
718
|
<t t-name="DialogTitle" t-call="baseui.DialogTitle"/>
|
|
719
719
|
|
|
720
720
|
<t t-name="baseui.DialogDescription">
|
|
721
|
-
<p t-att-class="'
|
|
721
|
+
<p t-att-class="'b-dialog-description' + (props.className ? ' ' + props.className : '')" t-att-style="props.style" data-slot="dialog-description">
|
|
722
722
|
<t t-slot="default"/>
|
|
723
723
|
</p>
|
|
724
724
|
</t>
|
|
@@ -727,7 +727,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
727
727
|
<t t-name="baseui.DialogClose">
|
|
728
728
|
<Button
|
|
729
729
|
variant="'outline'"
|
|
730
|
-
className="'
|
|
730
|
+
className="'b-dialog-close' + (props.className ? ' ' + props.className : '')"
|
|
731
731
|
style="props.style"
|
|
732
732
|
attrs="{'data-slot': 'dialog-close', 'data-bs-dismiss': 'modal'}"
|
|
733
733
|
>
|
|
@@ -747,18 +747,26 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
747
747
|
></span>
|
|
748
748
|
</t>
|
|
749
749
|
<t t-name="Icon" t-call="baseui.Icon"/>
|
|
750
|
-
<t t-name="baseui.Outlined">
|
|
750
|
+
<t t-name="baseui.Outlined.label">
|
|
751
|
+
<div t-if="label" class="b-input-label">
|
|
752
|
+
<span class="b-input-label-text" t-esc="label"/>
|
|
753
|
+
<Tooltip t-if="tipText" content="tipText" className="'b-input-tip'"><t t-set-slot="trigger"><IconCircleQuestionMark/></t></Tooltip>
|
|
754
|
+
</div>
|
|
755
|
+
</t>
|
|
756
|
+
<t t-name="baseui.Outlined">
|
|
751
757
|
<div t-if="isOutlined" t-att-class="outlinedClassNames" t-att-style="labelStyle">
|
|
752
|
-
<div class="
|
|
753
|
-
<Icon t-if="leadingIcon" name="leadingIcon" className="'
|
|
758
|
+
<div class="b-input-box" t-ref="box">
|
|
759
|
+
<Icon t-if="leadingIcon" name="leadingIcon" className="'b-input-icon b-input-leading'"/>
|
|
754
760
|
<t t-out="0"/>
|
|
755
|
-
<
|
|
756
|
-
<Icon t-if="trailingIcon" name="trailingIcon" className="'
|
|
757
|
-
<
|
|
761
|
+
<t t-call="baseui.Outlined.label"/>
|
|
762
|
+
<Icon t-if="trailingIcon" name="trailingIcon" className="'b-input-icon b-input-trailing'"/>
|
|
763
|
+
<div t-if="hasStart" class="b-input-slot b-input-slot-start" t-ref="start"><t t-slot="start"/></div>
|
|
764
|
+
<div t-if="hasEnd" class="b-input-slot b-input-slot-end" t-ref="end"><t t-slot="end"/></div>
|
|
765
|
+
<div t-if="hasFooter" class="b-input-slot b-input-slot-footer" t-ref="footer"><t t-slot="footer"/></div>
|
|
758
766
|
</div>
|
|
759
|
-
<div t-if="supportingText or props.maxLength" class="
|
|
767
|
+
<div t-if="supportingText or props.maxLength" class="b-input-support">
|
|
760
768
|
<span t-att-id="supportId" t-esc="supportingText"/>
|
|
761
|
-
<span t-if="props.maxLength" class="
|
|
769
|
+
<span t-if="props.maxLength" class="b-input-counter" t-esc="counter"/>
|
|
762
770
|
</div>
|
|
763
771
|
</div>
|
|
764
772
|
<t t-else="" t-out="0"/>
|
|
@@ -851,14 +859,14 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
851
859
|
<t t-name="TabTrigger" t-call="baseui.TabTrigger"/>
|
|
852
860
|
|
|
853
861
|
<t t-name="baseui.TabsContainer">
|
|
854
|
-
<div t-att-class="'tab-content
|
|
862
|
+
<div t-att-class="'tab-content b-tabs-contents' + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
|
|
855
863
|
<t t-slot="default"/>
|
|
856
864
|
</div>
|
|
857
865
|
</t>
|
|
858
866
|
<t t-name="TabsContainer" t-call="baseui.TabsContainer"/>
|
|
859
867
|
|
|
860
868
|
<t t-name="baseui.TabContent">
|
|
861
|
-
<div t-att-id="panelId" role="tabpanel" t-att-class="'tab-pane fade
|
|
869
|
+
<div t-att-id="panelId" role="tabpanel" t-att-class="'tab-pane fade b-tabs-panel' + (initialActive ? ' show active' : '') + (props.className ? ' ' + props.className : '')" t-att-style="props.style">
|
|
862
870
|
<t t-slot="default"/>
|
|
863
871
|
</div>
|
|
864
872
|
</t>
|
|
@@ -869,7 +877,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
869
877
|
<t t-name="baseui.Breadcrumb">
|
|
870
878
|
<nav
|
|
871
879
|
data-slot="breadcrumb"
|
|
872
|
-
t-att-class="'
|
|
880
|
+
t-att-class="'b-breadcrumb' + (props.className ? ' ' + props.className : '')"
|
|
873
881
|
aria-label="breadcrumb"
|
|
874
882
|
t-att-style="props.style"
|
|
875
883
|
>
|
|
@@ -880,7 +888,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
880
888
|
<t t-name="baseui.BreadcrumbList">
|
|
881
889
|
<ol
|
|
882
890
|
data-slot="breadcrumb-list"
|
|
883
|
-
t-att-class="'breadcrumb
|
|
891
|
+
t-att-class="'breadcrumb b-breadcrumb-list' + (props.className ? ' ' + props.className : '')"
|
|
884
892
|
t-att-style="props.style"
|
|
885
893
|
>
|
|
886
894
|
<t t-slot="default"/>
|
|
@@ -929,7 +937,7 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
929
937
|
t-att-style="props.style"
|
|
930
938
|
>
|
|
931
939
|
<t t-if="hasCustomContent" t-slot="default"/>
|
|
932
|
-
<Icon t-else="" name="'chevron-right'" className="'
|
|
940
|
+
<Icon t-else="" name="'chevron-right'" className="'b-breadcrumb-separator-icon'"/>
|
|
933
941
|
</li>
|
|
934
942
|
</t>
|
|
935
943
|
<t t-name="BreadcrumbSeparator" t-call="baseui.BreadcrumbSeparator"/>
|
|
@@ -942,9 +950,9 @@ var Qe=Object.defineProperty;var Je=(t,e,r)=>e in t?Qe(t,e,{enumerable:!0,config
|
|
|
942
950
|
t-att-style="props.style"
|
|
943
951
|
>
|
|
944
952
|
<t t-if="hasCustomContent" t-slot="default"/>
|
|
945
|
-
<Icon t-else="" name="'ellipsis'" className="'
|
|
953
|
+
<Icon t-else="" name="'ellipsis'" className="'b-breadcrumb-ellipsis-icon'"/>
|
|
946
954
|
<span class="visually-hidden">More</span>
|
|
947
955
|
</span>
|
|
948
956
|
</t>
|
|
949
957
|
<t t-name="BreadcrumbEllipsis" t-call="baseui.BreadcrumbEllipsis"/>
|
|
950
|
-
</templates>`;function
|
|
958
|
+
</templates>`;function wi(t,e={}){let r=typeof t=="string"?document.querySelector(t):t;return Et(F,r,{templates:rn,props:e})}export{F as ApiDoc,wi as mountApiDoc};
|