@odoo/owl 3.0.0-alpha.13 → 3.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compile_templates.mjs +2442 -2435
- package/dist/owl.cjs.js +6459 -6381
- package/dist/owl.es.js +6459 -6379
- package/dist/owl.iife.js +6459 -6381
- package/dist/owl.iife.min.js +1 -1
- package/dist/types/common/owl_error.d.ts +3 -3
- package/dist/types/common/utils.d.ts +8 -8
- package/dist/types/compiler/code_generator.d.ts +150 -150
- package/dist/types/compiler/index.d.ts +13 -13
- package/dist/types/compiler/inline_expressions.d.ts +59 -59
- package/dist/types/compiler/parser.d.ts +171 -171
- package/dist/types/compiler/standalone/index.d.ts +2 -2
- package/dist/types/compiler/standalone/setup_jsdom.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/owl.d.ts +669 -671
- package/dist/types/runtime/app.d.ts +57 -57
- package/dist/types/runtime/blockdom/attributes.d.ts +6 -6
- package/dist/types/runtime/blockdom/block_compiler.d.ts +21 -21
- package/dist/types/runtime/blockdom/config.d.ts +8 -8
- package/dist/types/runtime/blockdom/event_catcher.d.ts +7 -7
- package/dist/types/runtime/blockdom/events.d.ts +8 -8
- package/dist/types/runtime/blockdom/html.d.ts +17 -17
- package/dist/types/runtime/blockdom/index.d.ts +26 -26
- package/dist/types/runtime/blockdom/list.d.ts +18 -18
- package/dist/types/runtime/blockdom/multi.d.ts +17 -17
- package/dist/types/runtime/blockdom/text.d.ts +26 -26
- package/dist/types/runtime/blockdom/toggler.d.ts +17 -17
- package/dist/types/runtime/component.d.ts +18 -18
- package/dist/types/runtime/component_node.d.ts +61 -61
- package/dist/types/runtime/event_handling.d.ts +1 -1
- package/dist/types/runtime/hooks.d.ts +34 -33
- package/dist/types/runtime/index.d.ts +43 -43
- package/dist/types/runtime/lifecycle_hooks.d.ts +10 -10
- package/dist/types/runtime/plugins.d.ts +30 -29
- package/dist/types/runtime/portal.d.ts +12 -12
- package/dist/types/runtime/props.d.ts +21 -17
- package/dist/types/runtime/reactivity/computations.d.ts +31 -31
- package/dist/types/runtime/reactivity/computed.d.ts +7 -7
- package/dist/types/runtime/reactivity/effect.d.ts +2 -2
- package/dist/types/runtime/reactivity/proxy.d.ts +48 -48
- package/dist/types/runtime/reactivity/signal.d.ts +18 -18
- package/dist/types/runtime/registry.d.ts +20 -20
- package/dist/types/runtime/rendering/error_handling.d.ts +13 -13
- package/dist/types/runtime/rendering/fibers.d.ts +37 -37
- package/dist/types/runtime/rendering/scheduler.d.ts +21 -21
- package/dist/types/runtime/rendering/template_helpers.d.ts +50 -50
- package/dist/types/runtime/resource.d.ts +15 -15
- package/dist/types/runtime/status.d.ts +9 -9
- package/dist/types/runtime/template_set.d.ts +39 -39
- package/dist/types/runtime/types.d.ts +62 -31
- package/dist/types/runtime/utils.d.ts +24 -24
- package/dist/types/runtime/validation.d.ts +19 -2
- package/dist/types/version.d.ts +1 -1
- package/package.json +13 -11
package/dist/owl.iife.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!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)},o=document.createTextNode("");class i{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,i=t.child;if(this.key===t.key)n.patch(i,e);else{const r=n.firstNode();r.parentElement.insertBefore(o,r),e&&n.beforeRemove(),n.remove(),i.mount(this.parentEl,o),this.child=i,this.key=t.key}}beforeRemove(){this.child.beforeRemove()}remove(){this.child.remove()}firstNode(){return this.child.firstNode()}toString(){return this.child.toString()}}function r(t,e){return new i(t,e)}class s extends Error{}const{setAttribute:l,removeAttribute:a}=Element.prototype,c=DOMTokenList.prototype,h=c.add,u=c.remove,d=Array.isArray,{split:f,trim:p}=String.prototype,m=/\s+/;function g(t,e){switch(e){case!1:case void 0:a.call(this,t);break;case!0:l.call(this,t,"");break;default:l.call(this,t,e)}}function b(t){return function(e){g.call(this,t,e)}}function y(t){if(d(t))"class"===t[0]?x.call(this,t[1]):g.call(this,t[0],t[1]);else for(let e in t)"class"===e?x.call(this,t[e]):g.call(this,e,t[e])}function v(t,e){if(d(t)){const n=t[0],o=t[1];if(n===e[0]){if(o===e[1])return;"class"===n?N.call(this,o,e[1]):g.call(this,n,o)}else a.call(this,e[0]),g.call(this,n,o)}else{for(let n in e)n in t||("class"===n?N.call(this,"",e[n]):a.call(this,n));for(let n in t){const o=t[n];o!==e[n]&&("class"===n?N.call(this,o,e[n]):g.call(this,n,o))}}}function w(t){const e={};switch(typeof t){case"string":const n=p.call(t);if(!n)return{};let o=f.call(n,m);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=p.call(n),!n)continue;const t=f.call(n,m);for(let n of t)e[n]=o}}return e;case"undefined":return{};case"number":return{[t]:!0};default:return{[t]:!0}}}function x(t){t=""===t?{}:w(t);const e=this.classList;for(let n in t)h.call(e,n)}function N(t,e){e=""===e?{}:w(e),t=""===t?{}:w(t);const n=this.classList;for(let o in e)o in t||u.call(n,o);for(let o in t)o in e||h.call(n,o)}function $(t){let e=!1;return async(...n)=>{e||(e=!0,await Promise.resolve(),e=!1,t(...n))}}class k extends EventTarget{trigger(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e}))}}class E extends String{}function T(t){return t instanceof E?t:void 0===t?_(""):"number"==typeof t?_(String(t)):([["&","&"],["<","<"],[">",">"],["'","'"],['"',"""],["`","`"]].forEach(e=>{t=String(t).replace(new RegExp(e[0],"g"),e[1])}),_(t))}function _(t,...e){if(!Array.isArray(t))return new E(t);const n=t;let o="",i=0;for(;i<e.length;++i)o+=n[i]+T(e[i]);return o+=n[i],new E(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(S[e])return;document.addEventListener(t,t=>function(t,e){let o=e.target;for(;null!==o;){const i=o[t];if(i)for(const t of Object.values(i)){if(n.mainEventHandler(t,e,o))return}o=o.parentNode}}(e,t),{capture:o}),S[e]=!0}(t,o,e);const i=D++;function r(t){const e=this[o]||{};e[i]=t,this[o]=e}function s(){delete this[o]}return{setup:r,update:r,remove:s}}(e,o):function(t,e=!1){let o=`__event__${t}_${C++}`;e&&(o=`${o}_capture`);function i(t){const e=t.currentTarget;if(!e||!function(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)}(e))return;const i=e[o];i&&n.mainEventHandler(i,t,e)}function r(n){this[o]=n,this.addEventListener(t,i,{capture:e})}function s(){delete this[o],this.removeEventListener(t,i,{capture:e})}function l(t){this[o]=t}return{setup:r,update:l,remove:s}}(e,o)}let C=1;let D=1;const S={};const O=Node.prototype,R=O.insertBefore,L=(B=O,P="textContent",Object.getOwnPropertyDescriptor(B,P)).set;var B,P;const M=O.removeChild;class I{constructor(t){this.children=t}mount(t,e){const n=this.children,o=n.length,i=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("");i[r]=n,R.call(t,n,e)}}this.anchors=i,this.parentEl=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;const n=this.children,o=this.anchors;for(let i=0,r=n.length;i<r;i++){let r=n[i];if(r)r.moveBeforeDOMNode(t,e);else{const n=o[i];R.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,i=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=i[t];R.call(o,n,e)}}}patch(t,e){if(this===t)return;const n=this.children,o=t.children,i=this.anchors,r=this.parentEl;for(let t=0,s=n.length;t<s;t++){const s=n[t],l=o[t];if(s)if(l)s.patch(l,e);else{const o=s.firstNode(),l=document.createTextNode("");i[t]=l,R.call(r,l,o),e&&s.beforeRemove(),s.remove(),n[t]=void 0}else if(l){n[t]=l;const e=i[t];l.mount(r,e),M.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)L.call(t,"");else{const e=this.children,n=this.anchors;for(let o=0,i=e.length;o<i;o++){const i=e[o];i?i.remove():M.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 I(t)}const V=Node.prototype,W=CharacterData.prototype,F=V.insertBefore,K=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(W,"data").set,U=V.removeChild;class H{constructor(t){this.text=t}mountNode(t,e,n){this.parentEl=e,F.call(e,t,n),this.el=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,F.call(e,this.el,t)}moveBeforeVNode(t,e){F.call(this.parentEl,this.el,t?t.el:e)}beforeRemove(){}remove(){U.call(this.parentEl,this.el)}firstNode(){return this.el}toString(){return this.text}}class z extends H{mount(t,e){this.mountNode(document.createTextNode(Y(this.text)),t,e)}patch(t){const e=t.text;this.text!==e&&(K.call(this.el,Y(e)),this.text=e)}}class G extends H{mount(t,e){this.mountNode(document.createComment(Y(this.text)),t,e)}patch(){}}function q(t){return new z(t)}function X(t){return new G(t)}function Y(t){switch(typeof t){case"string":return t;case"number":return String(t);case"boolean":return t?"true":"false";default:return t||""}}const J=(t,e)=>Object.getOwnPropertyDescriptor(t,e),Z=Node.prototype,Q=Element.prototype,tt=J(CharacterData.prototype,"data").set,et=J(Z,"firstChild").get,nt=J(Z,"nextSibling").get,ot=()=>{};function it(t){return function(e){this[t]=0===e?0:e?e.valueOf():""}}const rt={};function st(t){if(t in rt)return rt[t];const e=(new DOMParser).parseFromString(`<t>${t}</t>`,"text/xml").firstChild.firstChild;n.shouldNormalizeDom&<(e);const o=at(e),i=ut(o),r=function(t,e){let n=function(t,e){const{refN:n,collectors:o,children:i,locations:r,cbRefs:s}=e,l=o.length;r.sort((t,e)=>t.idx-e.idx);const a=r.length,c=i.length,h=i,u=n>0,d=Z.cloneNode,f=Z.insertBefore,p=Q.remove;class m{constructor(t){this.data=t}beforeRemove(){}remove(){p.call(this.el)}firstNode(){return this.el}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,f.call(e,this.el,t)}moveBeforeVNode(t,e){f.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=d.call(t,!0);f.call(e,o,n),this.el=o,this.parentEl=e}patch(t,e){}}u&&(m.prototype.mount=function(e,i){const u=d.call(t,!0),p=new Array(n);this.refs=p,p[0]=u;for(let t=0;t<l;t++){const e=o[t];p[e.idx]=e.getVal.call(p[e.prevIdx])}if(a){const t=this.data;for(let e=0;e<a;e++){const n=r[e];n.setData.call(p[n.refIdx],t[e])}}if(f.call(e,u,i),c){const t=this.children;for(let e=0;e<c;e++){const n=t[e];if(n){const t=h[e],o=t.afterRefIdx?p[t.afterRefIdx]:null;n.isOnlyChild=t.isOnlyChild,n.mount(p[t.parentRefIdx],o)}}}if(this.el=u,this.parentEl=e,s.length){const t=this.data,e=this.refs;for(let n of s){const{idx:o,refIdx:i}=r[n];(0,t[o])(e[i],null)}}},m.prototype.patch=function(t,e){if(this===t)return;const n=this.refs;if(a){const e=this.data,o=t.data;for(let t=0;t<a;t++){const i=e[t],s=o[t];if(i!==s){const e=r[t];e.updateData.call(n[e.refIdx],s,i)}}this.data=o}if(c){let o=this.children;const i=t.children;for(let t=0;t<c;t++){const r=o[t],s=i[t];if(r)s?r.patch(s,e):(e&&r.beforeRemove(),r.remove(),o[t]=void 0);else if(s){const e=h[t],i=e.afterRefIdx?n[e.afterRefIdx]:null;s.mount(n[e.parentRefIdx],i),o[t]=s}}}},m.prototype.remove=function(){if(s.length){const t=this.data,e=this.refs;for(let n of s){const{idx:o,refIdx:i}=r[n];(0,t[o])(null,e[i])}}p.call(this.el)});return m}(t,e);if(e.children.length)return n=class extends n{constructor(t,e){super(t),this.children=e}},n.prototype.beforeRemove=I.prototype.beforeRemove,(t,e=[])=>new n(t,e);return t=>new n(t)}(o.el,i);return rt[t]=r,r}function lt(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)lt(t.childNodes.item(e))}else t.remove()}function at(t,e=null,n=null){switch(t.nodeType){case Node.ELEMENT_NODE:{let o=n&&n.currentNS;const i=t.tagName;let r;const s=[];if(i.startsWith("block-text-")){const t=parseInt(i.slice(11),10);s.push({type:"text",idx:t}),r=document.createTextNode("")}if(i.startsWith("block-child-")){n.isRef||ct(n);const t=parseInt(i.slice(12),10);s.push({type:"child",idx:t}),r=document.createTextNode("")}if(o||(o=t.namespaceURI),r||(r=o?document.createElementNS(o,i):document.createElement(i)),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);s.push({type:"handler",idx:t,event:o})}else if(n.startsWith("block-attribute-")){const t=parseInt(n.slice(16),10);s.push({type:"attribute",idx:t,name:o,tag:i})}else if(n.startsWith("block-property-")){const t=parseInt(n.slice(15),10);s.push({type:"property",idx:t,name:o,tag:i})}else"block-attributes"===n?s.push({type:"attributes",idx:parseInt(o,10)}):"block-ref"===n?s.push({type:"ref",idx:parseInt(o,10)}):r.setAttribute(e[t].name,o)}}const l={parent:e,firstChild:null,nextSibling:null,el:r,info:s,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);s.push({idx:n,type:"child",isOnlyChild:!0})}else{l.firstChild=at(t.firstChild,l,l),r.appendChild(l.firstChild.el);let e=t.firstChild,n=l.firstChild;for(;e=e.nextSibling;)n.nextSibling=at(e,n,l),r.appendChild(n.nextSibling.el),n=n.nextSibling}}return l.info.length&&ct(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 s("boom")}function ct(t){t.isRef=!0;do{t.refN++}while(t=t.parent)}function ht(t){let e=t.parent;for(;e&&e.nextSibling===t;)t=e,e=e.parent;return e}function ut(t,e,n){if(!e){e={collectors:[],locations:[],children:new Array(t.info.filter(t=>"child"===t.type).length),cbRefs:[],refN:t.refN},n=0}if(t.refN){const o=n,i=t.isRef,r=t.firstChild?t.firstChild.refN:0,s=t.nextSibling?t.nextSibling.refN:0;if(i){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:dt,updateData:dt});break;case"child":n.isOnlyChild?t.children[n.idx]={parentRefIdx:n.refIdx,isOnlyChild:!0}:t.children[n.idx]={parentRefIdx:ht(e).refIdx,afterRefIdx:n.refIdx};break;case"property":{const e=n.refIdx,o=it(n.name);t.locations.push({idx:n.idx,refIdx:e,setData:o,updateData:o});break}case"attribute":{const e=n.refIdx;let o,i;"class"===n.name?(i=x,o=N):(i=b(n.name),o=i),t.locations.push({idx:n.idx,refIdx:e,setData:i,updateData:o});break}case"attributes":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:y,updateData:v});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":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:ot,updateData:ot}),t.cbRefs.push(n.idx)}}(e,t),n++}if(s){const i=n+r;e.collectors.push({idx:i,prevIdx:o,getVal:nt}),ut(t.nextSibling,e,i)}r&&(e.collectors.push({idx:n,prevIdx:o,getVal:et}),ut(t.firstChild,e,n))}return e}function dt(t){tt.call(this,Y(t))}const ft=Node.prototype,pt=ft.insertBefore,mt=ft.appendChild,gt=ft.removeChild,bt=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(ft,"textContent").set;class yt{constructor(t){this.children=t}mount(t,e){const n=this.children,o=document.createTextNode("");this.anchor=o,pt.call(t,o,e);const i=n.length;if(i){const e=n[0].mount;for(let r=0;r<i;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,i=n.length;o<i;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 i=o[0]||n[0],{mount:r,patch:s,remove:l,beforeRemove:a,moveBeforeVNode:c,firstNode:h}=i,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 bt.call(f,""),void mt.call(f,u)}let p,m=0,g=0,b=n[0],y=o[0],v=n.length-1,w=o.length-1,x=n[v],N=o[w];for(;m<=v&&g<=w;){if(null===b){b=n[++m];continue}if(null===x){x=n[--v];continue}let t=b.key,i=y.key;if(t===i){s.call(b,y,e),o[g]=b,b=n[++m],y=o[++g];continue}let l=x.key,a=N.key;if(l===a){s.call(x,N,e),o[w]=x,x=n[--v],N=o[--w];continue}if(t===a){s.call(b,N,e),o[w]=b;const t=o[w+1];c.call(b,t,u),b=n[++m],N=o[--w];continue}if(l===i){s.call(x,y,e),o[g]=x;const t=n[m];c.call(x,t,u),x=n[--v],y=o[++g];continue}p=p||wt(n,m,v);let d=p[i];if(void 0===d)r.call(y,f,h.call(b)||null);else{const t=n[d];c.call(t,b,null),s.call(t,y,e),o[g]=t,n[d]=null}y=o[++g]}if(m<=v||g<=w)if(m>v){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<=v;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)bt.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])}gt.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 vt(t){return new yt(t)}function wt(t,e,n){let o={};for(let i=e;i<=n;i++)o[t[i].key]=i;return o}const xt=Node.prototype,Nt=xt.insertBefore,$t=xt.removeChild;class kt{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)Nt.call(t,n,e);if(!this.content.length){const n=document.createTextNode("");this.content.push(n),Nt.call(t,n,e)}}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;for(let n of this.content)Nt.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],i=document.createElement("template");i.innerHTML=e;const r=[...i.content.childNodes];for(let t of r)Nt.call(n,t,o);if(!r.length){const t=document.createTextNode("");r.push(t),Nt.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)$t.call(t,e)}firstNode(){return this.content[0]}toString(){return this.html}}function Et(t){return new kt(t)}function Tt(t,e,n=null){t.mount(e,n)}var _t;let At,Ct;function Dt(t){Ct&&(Ct.sources.add(t),t.observers.add(Ct))}function St(t){!function(t){if(At)return t();At=[];try{return t()}finally{}}(()=>{for(const e of t.observers)e.state===_t.EXECUTED&&(e.isDerived?jt(e):At.push(e)),e.state=_t.STALE}),Ot()}!function(t){t[t.EXECUTED=0]="EXECUTED",t[t.STALE=1]="STALE",t[t.PENDING=2]="PENDING"}(_t||(_t={}));const Ot=$(function(){if(!At)return;for(const t of At)Mt(t);At=void 0});function Rt(t){return Pt(void 0,t)}function Lt(){return Ct}function Bt(t){Ct=t}function Pt(t,e){const n=Ct;let o;Ct=t;try{o=e()}finally{Ct=n}return o}function Mt(t){var e;const n=t.state;if(n===_t.EXECUTED)return;if(n===_t.PENDING&&(function(t){for(const e of t.sources)"compute"in e&&Mt(e)}(t),t.state!==_t.STALE))return void(t.state=_t.EXECUTED);It(t);const o=Ct;Ct=t,t.value=null===(e=t.compute)||void 0===e?void 0:e.call(t),t.state=_t.EXECUTED,Ct=o}function It(t){const e=t.sources;for(const n of e){n.observers.delete(t)}e.clear()}function jt(t){for(const e of t.observers)e.state||(e.state=_t.PENDING,e.isDerived?jt(e):At.push(e))}const Vt=new WeakMap,Wt=new WeakMap;function Ft(t,e){try{t.destroy()}catch(t){}return Object.assign(new s("[Owl] Unhandled error. Destroying the root component"),{cause:e})}function Kt(t,e){if(!t)return!1;const n=t.fiber;n&&Vt.set(n,e);const o=Wt.get(t);if(o){let n=!1;const i=()=>Ft(t.app,e);for(let t=o.length-1;t>=0;t--)try{o[t](e,i),n=!0;break}catch(t){e=t}if(n)return!0}return Kt(t.parent,e)}function Ut(t){let{error:e}=t;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,t=t.parent}while(t);Vt.set(o.root,e)}if(!Kt(n,e))throw Ft(n.app,e)}function Ht(){throw new s("Attempted to render cancelled fiber")}function zt(t){let e=0;for(let n of t){let t=n.node;n.render=Ht,0===t.status&&t.cancel(),t.fiber=null,n.bdom?t.forceNextRender=!0:e++,e+=zt(n.children)}return e}class Gt{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;e&&(Pt(t.signalComputation,()=>{try{this.bdom=!0,this.bdom=t.renderFn()}catch(e){t.app.handleError({node:t,error:e})}}),e.setCounter(e.counter-1))}}class qt extends Gt{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 Xt extends qt{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)Tt(e.bdom,this.target);else{const t=this.target.childNodes[0];Tt(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})}}}let Yt=null;function Jt(){if(!Yt)throw new s("No active component (a hook function should only be called in 'setup')");return Yt}class Zt{constructor(t,e,n,o,i){this.fiber=null,this.bdom=null,this.status=0,this.forceNextRender=!1,this.children=Object.create(null),this.willStart=[],this.willUpdateProps=[],this.willUnmount=[],this.mounted=[],this.willPatch=[],this.patched=[],this.willDestroy=[],this.name=t.name,Yt=this,this.app=n,this.parent=o,this.parentKey=i,this.pluginManager=o?o.pluginManager:n.pluginManager,this.signalComputation={value:void 0,compute:()=>this.render(!1),sources:new Set,state:_t.EXECUTED},this.props=Object.assign({},e);const r=Lt();Bt(void 0),this.component=new t(this);const s={this:this.component,__owl__:this};this.renderFn=n.getTemplate(t.template).bind(this.component,s,this),this.component.setup(),Bt(r),Yt=null}mountComponent(t,e){const n=new Xt(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{let t;Pt(void 0,()=>{t=this.willStart.map(t=>t.call(e))}),await Promise.all(t)}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&&!Vt.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-zt(e.children)),t.locked=!1,e.children=[],e.childrenMap={},e.bdom=null,Vt.has(e)&&(Vt.delete(e),Vt.delete(t),e.appliedToDom=!1,e instanceof qt&&(e.mounted=e instanceof Xt?[e]:[])),e}const n=new qt(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){t=Object.assign({},t);const n=function(t,e){let n=t.fiber;return n&&(zt(n.children),n.root=null),new Gt(t,e)}(this,e);this.fiber=n;const o=this.component;let i;if(Rt(()=>{i=Promise.all(this.willUpdateProps.map(e=>e.call(o,t)))}),await i,n!==this.fiber)return;this.props=t,n.render();const r=e.root;this.willPatch.length&&r.willPatch.push(n),this.patched.length&&r.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}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()}_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()}}class Qt{constructor(t){this.__owl__=t}setup(){}render(t=!1){this.__owl__.render(!0===t)}}function te(t,e){const n=ee(t,e);if(n.length){const t=JSON.stringify(n,(t,e)=>"function"==typeof e?e.name:e,2);throw new s(`Value does not match the type\n${t}`)}}function ee(t,e){return e(t)}Qt.template="";const ne=function(t){return"string"!=typeof t?[{type:"type",expected:String,received:t}]:[]};function oe(...t){return function(e){if("object"!=typeof e)return[{type:"type",expected:Object,received:e}];const n=Object.keys(e),o=t.filter(t=>!!t.endsWith("?")||!n.includes(t));return o.length?[{type:"missing keys",value:e,missingKeys:o}]:[]}}function ie(t){return function(e){if("object"!=typeof e)return[{type:"type",expected:Object,received:e}];if(t){const n=[],o=[];for(let i in t){const r=ee(e[i],t[i]);i in e?o.push(...r):n.push(i)}return n.length&&o.push({type:"missing keys",value:e,missingKeys:n}),o}return[]}}var re={__proto__:null,any:function(){return[]},boolean:function(t){return"boolean"!=typeof t?[{type:"type",expected:Boolean,received:t}]:[]},number:function(t){return"number"!=typeof t?[{type:"type",expected:Number,received:t}]:[]},string:ne,array:function(t){return function(e){return Array.isArray(e)?t?e.flatMap(e=>ee(e,t)):[]:[{type:"type",expected:Array,received:e}]}},func:function(t,e){return function(t){return"function"!=typeof t?[{type:"type",expected:Function,received:t}]:[]}},instanceOf:function(t){return function(e){return e instanceof t?[]:[{type:"type",expected:t,received:e}]}},keys:oe,literal:function(t){return function(e){return e!==t?[{type:"exact value",expected:t,received:e}]:[]}},object:ie,optional:function(t){return function(e){return void 0===e?[]:ee(e,t)}},record:function(t){return function(e){if("object"!=typeof e)return[{type:"type",expected:Object,received:e}];const n=[];for(let o in e)n.push(...ee(e[o],t));return n}},tuple:function(...t){return function(e){return Array.isArray(e)?e.length!==t.length?[{type:"length",expected:t.length,received:e.length}]:t.flatMap((t,n)=>ee(e[n],t)):[{type:"type",expected:Array,received:e}]}},constructor:function(t){return function(e){return"function"==typeof e&&(e===t||e.prototype instanceof t)?[]:[{type:"type"}]}},union:function(...t){return function(e){return t.filter(t=>ee(e,t).length).length?[{type:"union"}]:[]}},signal:function(t){return function(t){return"function"!=typeof t?[{type:"type",expected:Function,received:t}]:"function"!=typeof t.set?[{type:"type",expected:Function,received:t.set}]:[]}},reactiveValue:function(t){return function(t){return"function"!=typeof t?[{type:"type",expected:Function,received:t}]:[]}}};let se={};class le{constructor(t){var e;this.children=[],this.onDestroyCb=[],this.status=0,this.parent=t||null,null===(e=this.parent)||void 0===e||e.children.push(this),this.plugins=this.parent?Object.create(this.parent.plugins):{}}destroy(){for(let t of this.children)t.destroy();const t=this.onDestroyCb;for(;t.length;)t.pop()();this.status=3}getPluginById(t){return this.plugins[t]||null}getPlugin(t){return this.getPluginById(t.id)}startPlugins(t,e={}){const n=le.current;le.current=this;const o=[];for(const i of t){if(!i.id)throw le.current=n,new s(`Plugin "${i.name}" has no id`);if(this.plugins.hasOwnProperty(i.id)){const t=this.getPluginById(i.id).constructor;if(t!==i)throw le.current=n,new s(`Trying to start a plugin with the same id as an other plugin (id: '${i.id}', existing plugin: '${t.name}', starting plugin: '${i.name}')`);continue}se=e[i.id]||{};const t=new i;this.plugins[i.id]=t,o.push(t)}se={};for(let t of o)t.setup();return le.current=n,le.current||(this.status=1),o}}function ae(t){const e=le.current||Jt().pluginManager;let n=e.getPluginById(t.id);if(!n){if(e!==le.current)throw new s(`Unknown plugin "${t.id}"`);e.startPlugins([t]),n=e.getPluginById(t.id)}return n}function ce(t,e,n){const o=e.bind(t.component);if(t.app.dev){const t=e.name?` <${e.name}>`:"";Reflect.defineProperty(o,"name",{value:n+t})}return o}function he(t){const e=Jt();e.mounted.push(ce(e,t,"onMounted"))}function ue(t){const e=Jt();e.willUnmount.unshift(ce(e,t,"onWillUnmount"))}function de(t){const e=le.current;if(e)e.onDestroyCb.push(t);else{const e=Jt();e.willDestroy.unshift(ce(e,t,"onWillDestroy"))}}function fe(t,e={}){const n=Jt();function o(t){return void 0===n.props[t]?e[t]:n.props[t]}const i=Object.create(null);function r(t){for(const e of t)Reflect.defineProperty(i,e,{enumerable:!0,get:o.bind(null,e)})}if(t){const e=t&&!Array.isArray(t);if(r((e?Object.keys(t):t).map(t=>t.endsWith("?")?t.slice(0,-1):t)),n.app.dev){const o=e?ie(t):oe(...t);te(n.props,o),n.willUpdateProps.push(t=>{te(t,o)})}}else r(Object.keys(n.props)),n.willUpdateProps.push(t=>{for(let t in i)Reflect.deleteProperty(i,t);r(Object.keys(t))});return i}le.current=null,ae.props=function(t,e={}){function n(t){return void 0===se[t]?e[t]:se[t]}const o=Object.create(null);function i(t){for(const e of t)Reflect.defineProperty(o,e,{enumerable:!0,get:n.bind(null,e)})}if(t){const e=t&&!Array.isArray(t);i((e?Object.keys(t):t).map(t=>t.endsWith("?")?t.slice(0,-1):t));if(Jt().app.dev){const n=e?ie(t):oe(...t);te(se,n)}}else i(Object.keys(se));return se};const pe=q("").constructor;class me extends pe{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 ge extends Qt{constructor(){super(...arguments),this.props=fe({target:ne})}setup(){const t=this.__owl__;he(()=>{const e=t.bdom;if(!e.target){const n=document.querySelector(t.props.target);if(!n)throw new s("invalid portal target");e.content.moveBeforeDOMNode(n.firstChild,n)}}),ue(()=>{t.bdom.remove()})}}ge.template="__portal__";const be=Symbol("Key changes"),ye=Object.prototype.toString,ve=Object.prototype.hasOwnProperty,we=["Object","Array","Set","Map","WeakMap"],xe=["Set","Map","WeakMap"];function Ne(t){return ye.call(_e(t)).slice(8,-1)}function $e(t){return"object"==typeof t&&we.includes(Ne(t))}function ke(t,e){return!e&&$e(t)?Le(t):t}const Ee=new WeakSet;function Te(t){return Ee.add(t),t}function _e(t){return Se.has(t)?Se.get(t):t}const Ae=new WeakMap;function Ce(t,e,n){Dt(null!=n?n:function(t,e){let n=Ae.get(t);n||(n=new Map,Ae.set(t,n));let o=n.get(e);return o||(o={value:void 0,observers:new Set},n.set(e,o)),o}(t,e))}function De(t,e,n){if(!n){const o=Ae.get(t);if(!o)return;if(!o.has(e))return;n=o.get(e)}St(n)}const Se=new WeakMap,Oe=new WeakMap;function Re(t,e){if(!$e(t))throw new s("Cannot make the given value reactive");if(Ee.has(t))return t;if(Se.has(t))return t;const n=Oe.get(t);if(n)return n;const o=Ne(t),i=xe.includes(o)?function(t,e,n){const o=We[e](t,n);return Object.assign(Be(n),{get:(t,e)=>ve.call(o,e)?o[e]:(Ce(t,e,n),ke(t[e],n))})}(t,o,e):Be(e),r=new Proxy(t,i);return Oe.set(t,r),Se.set(r,t),r}function Le(t){return Re(t,null)}function Be(t){return{get(e,n,o){const i=Object.getOwnPropertyDescriptor(e,n);return!i||i.writable||i.configurable?(Ce(e,n,t),ke(Reflect.get(e,n,o),t)):Reflect.get(e,n,o)},set(e,n,o,i){const r=ve.call(e,n),s=Reflect.get(e,n,i),l=Reflect.set(e,n,_e(o),i);return!r&&ve.call(e,n)&&De(e,be,t),(s!==Reflect.get(e,n,i)||"length"===n&&Array.isArray(e))&&De(e,n,t),l},deleteProperty(e,n){const o=Reflect.deleteProperty(e,n);return De(e,be,t),De(e,n,t),o},ownKeys:e=>(Ce(e,be,t),Reflect.ownKeys(e)),has:(e,n)=>(Ce(e,be,t),Reflect.has(e,n))}}function Pe(t,e,n){return o=>(o=_e(o),Ce(e,o,n),ke(e[t](o),n))}function Me(t,e,n){return function*(){Ce(e,be,n);const o=e.keys();for(const i of e[t]()){const t=o.next().value;Ce(e,t,n),yield ke(i,n)}}}function Ie(t,e){return function(n,o){Ce(t,be,e),t.forEach(function(i,r,s){Ce(t,r,e),n.call(o,ke(i,e),ke(r,e),ke(s,e))},o)}}function je(t,e,n,o){return(i,r)=>{i=_e(i);const s=n.has(i),l=n[e](i),a=n[t](i,r);return s!==n.has(i)&&De(n,be,o),l!==n[e](i)&&De(n,i,o),a}}function Ve(t,e){return()=>{const n=[...t.keys()];t.clear(),De(t,be,e);for(const o of n)De(t,o,e)}}const We={Set:(t,e)=>({has:Pe("has",t,e),add:je("add","has",t,e),delete:je("delete","has",t,e),keys:Me("keys",t,e),values:Me("values",t,e),entries:Me("entries",t,e),[Symbol.iterator]:Me(Symbol.iterator,t,e),forEach:Ie(t,e),clear:Ve(t,e),get size(){return Ce(t,be,e),t.size}}),Map:(t,e)=>({has:Pe("has",t,e),get:Pe("get",t,e),set:je("set","get",t,e),delete:je("delete","has",t,e),keys:Me("keys",t,e),values:Me("values",t,e),entries:Me("entries",t,e),[Symbol.iterator]:Me(Symbol.iterator,t,e),forEach:Ie(t,e),clear:Ve(t,e),get size(){return Ce(t,be,e),t.size}}),WeakMap:(t,e)=>({has:Pe("has",t,e),get:Pe("get",t,e),set:je("set","get",t,e),delete:je("delete","has",t,e)})};const Fe=Object.create;function Ke(t){const e=Fe(t);for(let n in t)e[n]=t[n];return e}const Ue=Symbol("isBoundary");class He{constructor(t,e,n,o,i){this.fn=t,this.ctx=Ke(e),this.component=n,this.node=o,this.key=i}evaluate(){return this.fn.call(this.component,this.ctx,this.node,this.key)}toString(){return this.evaluate().toString()}}const ze={withDefault:function(t,e){return null==t||!1===t?e:t},zero:Symbol("zero"),isBoundary:Ue,callSlot:function(t,e,n,o,i,s,l){n=n+"__slot_"+o;const a=t.__owl__.props.slots||{},{__render:c,__ctx:h,__scope:u}=a[o]||{},d=Fe(h||{});u&&(d[u]=s);const f=c?c(d,e,n):null;if(l){let s,a;return f?s=i?r(o,f):f:a=l(t,e,n),j([s,a])}return f||q("")},capture:Ke,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 s(`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(Ue);){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},LazyValue:He,safeOutput:function(t,e){if(null==t)return e?r("default",e):r("undefined",q(""));let n,o;return t instanceof E?(n="string_safe",o=Et(t)):t instanceof He?(n="lazy_value",o=t.evaluate()):(n="string_unsafe",o=q(t)),r(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],i=A(n);this.handlerFns[o]=i,i.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 i=this;e[n]=function(t){const e=t.target;let n=i.child.firstNode();const r=i.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:Te,OwlError:s,createRef:function(t){if(!t)throw new s("Ref is undefined or null");let e,n;if(t.add&&t.remove)e=t.add.bind(t),n=t.remove.bind(t);else{if(!t.set)throw new s("Ref should implement either a 'set' function or 'add' and 'remove' functions");e=t.set.bind(t),n=()=>t.set(null)}return(t,o)=>{o&&n(o),t&&e(t)}},modelExpr:function(t){if(!t.set||"function"!=typeof t)throw new s("Invalid t-model expression: expression should evaluate to a function with a 'set' method defined on it");return t}};function Ge(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,i=e.exec(o);if(i){const r=Number(i[0]),s=t.split("\n")[r-1],l=e.exec(o);if(s&&l){const t=Number(l[0])-1;s[t]&&(n+=`\nThe error might be located at xml line ${r} column ${t}\n${s}\n${"-".repeat(t-1)}^`)}}}throw new s(n)}return e}const qe={text:q,createBlock:st,list:vt,multi:j,html:Et,toggler:r,comment:X};class Xe{static registerTemplate(t,e){Ye[t]=e}constructor(t={}){if(this.rawTemplates=Object.create(Ye),this.templates={},this.Portal=ge,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={...ze,__globals__:t.globalValues||{}},this.hasGlobalValues=Boolean(t.globalValues&&Object.keys(t.globalValues).length)}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 s(`Template ${t} already defined with different content`)}this.rawTemplates[t]=e}addTemplates(t){if(t){t=t instanceof Document?t:Ge(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 "${Jt().component.constructor.name}")`}catch{}throw new s(`Missing template: "${t}"${e}`)}const o="function"==typeof n&&!(n instanceof Element)?n:this._compileTemplate(t,n),i=this.templates;this.templates[t]=function(e,n){return i[t].call(this,e,n)};const r=o(this,qe,this.runtimeUtils);this.templates[t]=r}return this.templates[t]}_compileTemplate(t,e){throw new s("Unable to compile a template. Please use owl full build instead")}callTemplate(t,e,n,o,i){return r(e,this.getTemplate(e).call(t,n,o,i+e))}}const Ye={};function Je(...t){const e="__template__"+Je.nextId++,n=String.raw(...t);return Ye[e]=n,e}Je.nextId=1,Xe.registerTemplate("__portal__",function(t,e,n){let{callSlot:o}=n;return function(t,e,n=""){return new me(t.this.props.target,o(t,e,n,"default",!1,null))}});const Ze="true,false,NaN,null,undefined,debugger,console,window,in,instanceof,new,function,return,eval,void,Math,RegExp,Array,Object,Date,__globals__".split(","),Qe=Object.assign(Object.create(null),{and:"&&",or:"||",gt:">",gte:">=",lt:"<",lte:"<="}),tn=Object.assign(Object.create(null),{"{":"LEFT_BRACE","}":"RIGHT_BRACE","[":"LEFT_BRACKET","]":"RIGHT_BRACKET",":":"COLON",",":"COMMA","(":"LEFT_PAREN",")":"RIGHT_PAREN"}),en="...,.,===,==,+,!==,!=,!,||,&&,>=,>,<=,<,?,-,*,/,%,typeof ,=>,=,;,in ,new ,|,&,^,~".split(",");const nn=[function(t){let e=t[0],n=e;if("'"!==e&&'"'!==e&&"`"!==e)return!1;let o,i=1;for(;t[i]&&t[i]!==n;){if(o=t[i],e+=o,"\\"===o){if(i++,o=t[i],!o)throw new s("Invalid expression");e+=o}i++}if(t[i]!==n)throw new s("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 en)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 Qe?{type:"OPERATOR",value:Qe[e],size:e.length}:{type:"SYMBOL",value:e}}return!1},function(t){const e=t[0];return!(!e||!(e in tn))&&{type:tn[e],value:e}}];const on=t=>t&&("LEFT_BRACE"===t.type||"COMMA"===t.type),rn=t=>t&&("RIGHT_BRACE"===t.type||"COMMA"===t.type);function sn(t){const e=new Set,n=function(t){const e=[];let n,o=!0,i=t;try{for(;o;)if(i=i.trim(),i){for(let t of nn)if(o=t(i),o){e.push(o),i=i.slice(o.size||o.value.length);break}}else o=!1}catch(t){n=t}if(i.length||n)throw new s(`Tokenizer error: could not tokenize \`${t}\``);return e}(t);let o=0,i=[];for(;o<n.length;){let t=n[o],r=n[o-1],s=n[o+1],l=i[i.length-1];switch(t.type){case"LEFT_BRACE":case"LEFT_BRACKET":case"LEFT_PAREN":i.push(t.type);break;case"RIGHT_BRACE":case"RIGHT_BRACKET":case"RIGHT_PAREN":i.pop()}let a="SYMBOL"===t.type&&!Ze.includes(t.value);if(a&&r&&("LEFT_BRACE"===l&&on(r)&&rn(s)&&(n.splice(o+1,0,{type:"COLON",value:":"},{...t}),s=n[o+1]),"OPERATOR"===r.type&&"."===r.value?a=!1:"LEFT_BRACE"!==r.type&&"COMMA"!==r.type||s&&"COLON"===s.type&&(a=!1)),"TEMPLATE_STRING"===t.type&&(t.value=t.replace(t=>an(t))),s&&"OPERATOR"===s.type&&"=>"===s.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 ln=new Map([["in "," in "]]);function an(t){return sn(t).map(t=>ln.get(t.value)||t.value).join("")}const cn=/\{\{.*?\}\}|\#\{.*?\}/g;function hn(t){return function(t,e){let n=t.match(cn);if(n&&n[0].length===t.length)return`(${e(t.slice(2,"{"===n[0][0]?-2:-1))})`;let o=t.replace(cn,t=>"${"+e(t.slice(2,"{"===t[0]?-2:-1))+"}");return"`"+o+"`"}(t,an)}const un=/\s+/g,dn=document.implementation.createDocument(null,null,null),fn=new Set(["stop","capture","prevent","self","synthetic"]);let pn={};function mn(t=""){return pn[t]=(pn[t]||0)+1,t+pn[t]}function gn(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 bn(t){return`\`${t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/,"\\${")}\``}class yn{constructor(t,e){this.dynamicTagName=null,this.isRoot=!1,this.hasDynamicChildren=!1,this.children=[],this.data=[],this.childNumber=0,this.parentVar="",this.id=yn.nextBlockId++,this.varName="b"+this.id,this.blockName="block"+this.id,this.target=t,this.type=e}insertData(t,e="d"){const n=mn(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=dn.createElement("t");return t.appendChild(this.dom),t.innerHTML}}function vn(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)}yn.nextBlockId=1;class wn{constructor(t,e){this.indentLevel=0,this.loopLevel=0,this.code=[],this.hasRoot=!1,this.hasCache=!1,this.shouldProtectScope=!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.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 xn=["alt","aria-label","aria-placeholder","aria-roledescription","aria-valuetext","label","placeholder","title"],Nn=/^(\s*)([\s\S]+?)(\s*)$/;class $n{constructor(t,e){if(this.blocks=[],this.nextBlockId=1,this.isDebug=!1,this.targets=[],this.target=new wn("template"),this.translatableAttributes=xn,this.staticDefs=[],this.slotNames=new Set,this.helpers=new Set,this.translateFn=e.translateFn||(t=>t),e.translatableAttributes){const t=new Set(xn);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=11===t.type,yn.nextBlockId=1,pn={},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=bn(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 i=mn(t),r=this.target,s=new wn(i,o);return this.targets.push(s),this.target=s,this.compileAST(e,vn(n)),this.target=r,i}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=dn.createElement(n);t.insert(o)}createBlock(t,e,n){const o=this.target.hasRoot,i=new yn(this.target,e);return o||(this.target.hasRoot=!0,i.isRoot=!0),t&&(t.children.push(i),"list"===t.type&&(i.parentVar=`c_block${t.id}`)),i}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 an(t);const n=sn(t),o=new Map;return n.map(t=>{if(t.varName&&!t.isLocal){if(!o.has(t.varName)){const e=mn("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=Nn.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 7:return this.compileTOut(t,e);case 4:return this.compileTIf(t,e);case 8:return this.compileTForeach(t,e);case 9:return this.compileTKey(t,e);case 3:return this.compileMulti(t,e);case 6:return this.compileTCall(t,e);case 14:return this.compileTCallBlock(t,e);case 5:return this.compileTSet(t,e);case 10:return this.compileComponent(t,e);case 11:return this.compileDebug(t,e);case 12:return this.compileLog(t,e);case 13:return this.compileTCallSlot(t,e);case 15:return this.compileTTranslation(t,e);case 16:return this.compileTTranslationContext(t,e);case 17: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(${an(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(${bn(t.value)})`,n,{...e,forceNewBlock:o&&!n});else{const e=dn.createComment(t.value);n.insert(e)}return n.varName}compileText(t,e){let{block:n,forceNewBlock:o}=e,i=t.value;if(i&&!1!==e.translate&&(i=this.translate(i,e.translationCtx)),e.inPreTag||(i=i.replace(un," ")),!n||o)n=this.createBlock(n,"text",e),this.insertBlock(`text(${bn(i)})`,n,{...e,forceNewBlock:o&&!n});else{const e=0===t.type?dn.createTextNode:dn.createComment;n.insert(e.call(dn,i))}return n.varName}generateHandlerCode(t,e){const n=t.split(".").slice(1).map(t=>{if(!fn.has(t))throw new s(`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:i}=e;const r=!o||i||null!==t.dynamicTag||t.ns;let s=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=mn("tag");this.define(e,an(t.dynamicTag)),o.dynamicTagName=e}const l={};for(let i in t.attrs){let r,s;if(i.startsWith("t-attf")){r=hn(t.attrs[i]);const e=o.insertData(r,"attr");s=i.slice(7),l["block-attribute-"+e]=s}else if(i.startsWith("t-att"))if(s="t-att"===i?null:i.slice(6),r=an(t.attrs[i]),s&&gn(t.tag,s)){"readonly"===s&&(s="readOnly"),r="value"===s?`new String((${r}) === 0 ? 0 : ((${r}) || ""))`:`new Boolean(${r})`;l[`block-property-${o.insertData(r,"prop")}`]=s}else{const t=o.insertData(r,"attr");"t-att"===i?l["block-attributes"]=String(t):l[`block-attribute-${t}`]=s}else if(this.translatableAttributes.includes(i)){const o=(null===(n=t.attrsTranslationCtx)||void 0===n?void 0:n[i])||e.translationCtx;l[i]=this.translateFn(t.attrs[i],o)}else r=`"${t.attrs[i]}"`,s=i,l[i]=t.attrs[i];if("value"===s&&e.tModelSelectedExpr){l[`block-attribute-${o.insertData(`${e.tModelSelectedExpr} === ${r}`,"attr")}`]="selected"}}let a;if(t.model){const{hasDynamicChildren:e,expr:n,eventType:i,shouldNumberize:r,shouldTrim:s,targetAttr:c,specialInitTargetAttr:h}=t.model,u=an(n),d=mn("expr");let f;if(this.helpers.add("modelExpr"),this.define(d,`modelExpr(${u})`),h){let e=c in l&&`'${l[c]}'`;if(!e&&t.attrs){const n=t.attrs[`t-att-${c}`];n&&(e=an(n))}f=o.insertData(`${d}() === ${e}`,"prop"),l[`block-property-${f}`]=h}else if(e){a=`${mn("bValue")}`,this.define(a,`${d}()`)}else f=o.insertData(`${d}()`,"prop"),l[`block-property-${f}`]=c;this.helpers.add("toNumber");let p=`ev.target.${c}`;p=s?`${p}.trim()`:p,p=r?`toNumber(${p})`:p;const m=`[(ev) => { ${d}.set(${p}); }]`;f=o.insertData(m,"hdlr"),l[`block-handler-${f}`]=i}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){const e=an(t.ref);this.helpers.add("createRef");const n=`createRef(${e})`,i=o.insertData(n,"ref");l["block-ref"]=String(i)}const c=t.ns||e.nameSpace,h=c?dn.createElementNS(c,t.tag):dn.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 i=t.content;for(let n=0;n<i.length;n++){const r=t.content[n],s=vn(e,{block:o,index:o.childNumber,forceNewBlock:!1,isLast:e.isLast&&n===i.length-1,tKeyExpr:e.tKeyExpr,nameSpace:c,tModelSelectedExpr:a,inPreTag:e.inPreTag||"pre"===t.tag});this.compileAST(r,s)}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=s;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(", ")};`,s)}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=yn.nextBlockId;const i=vn(e);this.compileAST({type:3,content:t.body},i),this.helpers.add("safeOutput"),n=`safeOutput(${an(t.expr)}, b${o})`}else this.helpers.add("safeOutput"),n=`safeOutput(${an(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,vn(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:i}=e;const r=this.target.code.length,s=!o||"multi"!==o.type&&i;if(o&&(o.hasDynamicChildren=!0),(!o||"multi"!==o.type&&i)&&(o=this.createBlock(o,"multi",e)),this.addLine(`if (${an(t.condition)}) {`),this.compileTIfBranch(t.content,o,e),t.tElif)for(let n of t.tElif)this.addLine(`} else if (${an(n.condition)}) {`),this.compileTIfBranch(n.content,o,e);if(t.tElse&&(this.addLine("} else {"),this.compileTIfBranch(t.tElse,o,e)),this.addLine("}"),s){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 i=`v_block${n.id}`,r=`k_block${n.id}`,s=`l_block${n.id}`,l=`c_block${n.id}`;let a;this.helpers.add("prepareList"),this.define(`[${r}, ${i}, ${s}, ${l}]`,`prepareList(${an(t.collection)});`),this.dev&&this.define(`keys${n.id}`,"new Set()"),this.addLine(`for (let ${o} = 0; ${o} < ${s}; ${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\`] = ${i}[${o}];`),this.define(`key${this.target.loopLevel}`,t.key?an(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=mn(),this.define(`memo${a}`,an(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=vn(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=mn("tKey_");return this.define(n,an(t.expr)),e=vn(e,{tKeyExpr:n,block:e.block,index:e.index}),this.compileAST(t.content,e)}compileMulti(t,e){let{block:n,forceNewBlock:o}=e;const i=!n||o;let r=this.target.code.length;if(i){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 s=0;for(let o=0,i=t.content.length;o<i;o++){const r=t.content[o],l=!r.hasNoRepresentation,a=vn(e,{block:n,index:s,forceNewBlock:l,isLast:e.isLast&&o===i-1});this.compileAST(r,a),l&&s++}if(i){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,i=e.ctxVar||"ctx";t.context&&(i=mn("ctx"),this.addLine(`let ${i} = {this: ${an(t.context)}, __owl__: this.__owl__};`));const r=cn.test(t.name),s=r?hn(t.name):"`"+t.name+"`";if(n&&!o&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),t.body){this.addLine(`${i} = Object.create(${i});`),this.addLine(`${i}[isBoundary] = 1;`),this.helpers.add("isBoundary");const n=vn(e,{ctxVar:i}),o=this.compileMulti({type:3,content:t.body},n);o&&(this.helpers.add("zero"),this.addLine(`${i}[zero] = ${o};`))}const l=this.generateComponentKey();if(r){const t=mn("template");this.staticDefs.find(t=>"call"===t.id)||this.staticDefs.push({id:"call",expr:"app.callTemplate.bind(app)"}),this.define(t,s),this.insertBlock(`call(this, ${t}, ${i}, node, ${l})`,n,{...e,forceNewBlock:!n})}else{const t=mn("callTemplate_");this.staticDefs.push({id:t,expr:`app.getTemplate(${s})`}),this.insertBlock(`${t}.call(this, ${i}, node, ${l})`,n,{...e,forceNewBlock:!n})}return t.body&&!e.isLast&&this.addLine(`${i} = ${i}.__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(an(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?an(t.value||""):"null";if(t.body){this.helpers.add("LazyValue");const o={type:3,content:t.body};let i=`new LazyValue(${this.compileInNewTarget("value",o,e)}, ctx, this, node, ${this.target.currentKey(e)})`;i=t.value?i?`withDefault(${n}, ${i})`:n:i,this.addLine(`ctx[\`${t.name}\`] = ${i};`)}else{let o;if(t.defaultValue){const i=bn(e.translate?this.translate(t.defaultValue,e.translationCtx):t.defaultValue);o=t.value?`withDefault(${n}, ${i})`:i}else o=n;this.helpers.add("setContextValue"),this.addLine(`setContextValue(${e.ctxVar||"ctx"}, "${t.name}", ${o});`)}return null}generateComponentKey(t="key"){const e=[mn("__")];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 i=(null==n?void 0:n[t])||o;e=bn(this.translateFn(e,i))}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 s(`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({}, ${an(e)}${t.length?", "+n:""})`),n}compileComponent(t,e){let{block:n}=e;const o="slots"in(t.props||{}),i=t.props?this.formatPropObject(t.props,t.propsTranslationCtx,e.translationCtx):[];let r="";if(t.slots){let n="ctx";!this.target.loopLevel&&this.hasSafeContext||(n=mn("ctx"),this.helpers.add("capture"),this.define(n,"capture(ctx)"));let o=[];for(let i in t.slots){const r=t.slots[i],s=[];if(r.content){const t=this.compileInNewTarget("slot",r.content,e,r.on);s.push(`__render: ${t}.bind(this), __ctx: ${n}`)}const l=t.slots[i].scope;l&&s.push(`__scope: "${l}"`),t.slots[i].attrs&&s.push(...this.formatPropObject(t.slots[i].attrs,t.slots[i].attrsTranslationCtx,e.translationCtx));const a=`{${s.join(", ")}}`;o.push(`'${i}': ${a}`)}r=`{${o.join(", ")}}`}!r||t.dynamicProps||o||(this.helpers.add("markRaw"),i.push(`slots: markRaw(${r})`));let s,l,a=this.getPropString(i,t.dynamicProps);(r&&(t.dynamicProps||o)||this.dev)&&(s=mn("props"),this.define(s,a),a=s),r&&(t.dynamicProps||o)&&(this.helpers.add("markRaw"),this.addLine(`${s}.slots = markRaw(Object.assign(${r}, ${s}.slots))`)),t.isDynamic?(l=mn("Comp"),this.define(l,an(t.name))):l=`\`${t.name}\``,n&&(!1===e.forceNewBlock||e.tKeyExpr)&&this.insertAnchor(n);let c=this.generateComponentKey();e.tKeyExpr&&(c=`${e.tKeyExpr} + ${c}`);let h=mn("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=mn("catcher"),o={},i=[];for(let t in e){let n=mn("hdlr"),r=i.push(n)-1;o[t]=r;const s=this.generateHandlerCode(t,e[t]);this.define(n,s)}return this.staticDefs.push({id:n,expr:`createCatcher(${JSON.stringify(o)})`}),`${n}(${t}, [${i.join(",")}])`}compileTCallSlot(t,e){this.helpers.add("callSlot");let n,o,{block:i}=e,r=!1,s=!1;t.name.match(cn)?(r=!0,s=!0,o=hn(t.name)):(o="'"+t.name+"'",s=s||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";s&&(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=mn("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)),i&&this.insertAnchor(i),i=this.createBlock(i,"multi",e),this.insertBlock(n,i,{...e,forceNewBlock:!1}),i.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 i="ctx";!this.target.loopLevel&&this.hasSafeContext||(i=mn("ctx"),this.helpers.add("capture"),this.define(i,"capture(ctx)"));let r=mn("comp");this.staticDefs.push({id:r,expr:"app.createComponent(null, false, true, false, false)"});const s=`${r}({target: ${an(t.target)},slots: {'default': {__render: ${o}.bind(this), __ctx: ${i}}}}, ${this.generateComponentKey()}, node, ctx, Portal)`;return n&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),this.insertBlock(s,n,{...e,forceNewBlock:!1}),n.varName}}const kn=new WeakMap;function En(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,i=t=>o.getAttribute(t),r=t=>+!!n.getAttribute(t);if(!o||!i("t-if")&&!i("t-elif"))throw new s("t-elif and t-else directives must be preceded by a t-if or t-elif directive");{if(i("t-foreach"))throw new s("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(r).reduce(function(t,e){return t+e})>1)throw new s("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 s("text is not allowed between branching directives");t.remove()}}}}(n=t),function(t){const e=[...t.querySelectorAll("[t-out]")].filter(t=>t.tagName[0]===t.tagName[0].toUpperCase()||t.hasAttribute("t-component"));for(const t of e){if(t.childNodes.length)throw new s("Cannot have t-out on a component that already has content");const e=t.getAttribute("t-out");t.removeAttribute("t-out");const n=t.ownerDocument.createElement("t");null!=e&&n.setAttribute("t-out",e),t.appendChild(n)}}(n),Tn(t,e)||{type:0,value:""}}function Tn(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 s("Missing custom directive name with t-custom directive");if(o.startsWith("t-custom-")){const n=o.split(".")[0].slice(9),i=e.customDirectives[n];if(!i)throw new s(`Custom directive "${n}" is not defined`);const r=t.getAttribute(o),l=o.split(".").slice(1);t.removeAttribute(o);try{i(t,r,l)}catch(t){throw new s(`Custom directive "${n}" throw the following error: ${t}`)}return Tn(t,e)}}return null}(t,e)||function(t,e){if(t.hasAttribute("t-debug")){t.removeAttribute("t-debug");const n=Tn(t,e),o={type:11,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=Tn(t,e),i={type:12,expr:n,content:o};return(null==o?void 0:o.hasNoRepresentation)&&(i.hasNoRepresentation=!0),i}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 i=t.getAttribute("t-as")||"";t.removeAttribute("t-as");const r=t.getAttribute("t-key");if(!r)throw new s(`"Directive t-foreach should always be used with a t-key!" (expression: t-foreach="${o}" t-as="${i}")`);t.removeAttribute("t-key");const l=t.getAttribute("t-memo")||"";t.removeAttribute("t-memo");const a=Tn(t,e);if(!a)return null;const c=!n.includes("t-call"),h=c&&!n.includes(`${i}_first`),u=c&&!n.includes(`${i}_last`),d=c&&!n.includes(`${i}_index`),f=c&&!n.includes(`${i}_value`);return{type:8,collection:o,elem:i,body:a,memo:l,key:r,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=Tn(t,e)||{type:0,value:""};let i=t.nextElementSibling;const r=[];for(;i&&i.hasAttribute("t-elif");){const t=i.getAttribute("t-elif");i.removeAttribute("t-elif");const n=Tn(i,e),o=i.nextElementSibling;i.remove(),i=o,n&&r.push({condition:t,content:n})}let s=null;i&&i.hasAttribute("t-else")&&(i.removeAttribute("t-else"),s=Tn(i,e),i.remove());return{type:4,condition:n,content:o,tElif:r.length?r:null,tElse:s}}(t,e)||function(t,e){if(!t.hasAttribute("t-portal"))return null;const n=t.getAttribute("t-portal");t.removeAttribute("t-portal");const o=Tn(t,e);if(!o)return{type:0,value:""};return{type:17,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 i=Tn(t,e),r={type:6,name:n,body:null,context:o};if(i&&2===i.type)return i.content=[r],i;if(i&&10===i.type)return{...i,slots:{default:{content:r,scope:null,on:null,attrs:null,attrsTranslationCtx:null}}}}const i=On(t,e);return{type:6,name:n,body:i.length?i:null,context:o}}(t,e)||function(t){if(!t.hasAttribute("t-call-block"))return null;const e=t.getAttribute("t-call-block");return{type:14,name:e}}(t)||function(t,e){if("off"!==t.getAttribute("t-translation"))return null;t.removeAttribute("t-translation");const n=Tn(t,e);if(3===(null==n?void 0:n.type)){return Rn(n.content.map(Dn))}return Dn(n)}(t,e)||function(t,e){const n=t.getAttribute("t-translation-context");if(!n)return null;t.removeAttribute("t-translation-context");const o=Tn(t,e);if(3===(null==o?void 0:o.type)){return Rn(o.content.map(t=>Sn(t,n)))}return Sn(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=Tn(t,e);if(!o)return null;const i={type:9,expr:n,content:o};o.hasNoRepresentation&&(i.hasNoRepresentation=!0);return i}(t,e)||function(t,e){if(!t.hasAttribute("t-out")&&!t.hasAttribute("t-esc"))return null;t.hasAttribute("t-esc")&&console.warn('t-esc 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-esc");t.removeAttribute("t-out"),t.removeAttribute("t-esc");const o={type:7,expr:n,body:null},i=t.getAttribute("t-ref");t.removeAttribute("t-ref");const r=Tn(t,e);if(!r)return o;if(2===r.type)return o.body=r.content.length?r.content:null,{...r,ref:i,content:[o]};return o}(t,e)||function(t,e){if(!t.hasAttribute("t-call-slot"))return null;const n=t.getAttribute("t-call-slot");t.removeAttribute("t-call-slot");let o=null,i=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-")){i=i||{},i[e.slice(22)]=n}else o=o||{},o[e]=n}return{type:13,name:n,attrs:o,attrsTranslationCtx:i,on:r,defaultContent:Ln(t,e)}}(t,e)||function(t,e){let n=t.tagName;const o=n[0];let i=t.hasAttribute("t-component");if(i&&"t"!==n)throw new s(`Directive 't-component' can only be used on <t> nodes (used on a <${n}>)`);if(o!==o.toUpperCase()&&!i)return null;i&&(n=t.getAttribute("t-component"),t.removeAttribute("t-component"));const r=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=Cn.get(e.split("-").slice(0,2).join("-"));throw new s(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 s(`Directive 't-set-slot' can only be used on <t> nodes (used on a <${t.tagName}>)`);const o=t.getAttribute("t-set-slot");let i=t.parentElement,r=!1;for(;i&&i!==n;){if(i.hasAttribute("t-component")||i.tagName[0]===i.tagName[0].toUpperCase()){r=!0;break}i=i.parentElement}if(r||!i)continue;t.removeAttribute("t-set-slot"),t.remove();const l=Tn(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 i=Ln(n,e);u=u||{},i&&!u.default&&(u.default={content:i,on:a,attrs:null,attrsTranslationCtx:null,scope:l})}return{type:10,name:n,isDynamic:i,dynamicProps:r,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 s(`Invalid tag name: '${n}'`);e=Object.assign({},e),"pre"===n&&(e.inPreTag=!0);let i=!e.nameSpace&&An.has(n)?"http://www.w3.org/2000/svg":null;const r=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 r=t.getAttribute(o);if("t-on"===o||"t-on-"===o)throw new s("Missing event name with t-on directive");if(o.startsWith("t-on-"))h=h||{},h[o.slice(5)]=r;else if(o.startsWith("t-model")){if(!["input","select","textarea"].includes(n))throw new s("The t-model directive only works with <input>, <textarea> and <select>");const i=t.getAttribute("type"),l="input"===n,a="select"===n,c=l&&"checkbox"===i,h=l&&"radio"===i,d=o.includes(".trim"),f=d||o.includes(".lazy");u={expr:r,targetAttr:c?"checked":"value",specialInitTargetAttr:h?"checked":null,eventType:h?"click":a||f?"change":"input",hasDynamicChildren:!1,shouldTrim:d,shouldNumberize:o.includes(".number")},a&&((e=Object.assign({},e)).tModelInfo=u)}else{if(o.startsWith("block-"))throw new s(`Invalid attribute: '${o}'`);if("xmlns"===o)i=r;else if(o.startsWith("t-translation-context-")){c=c||{},c[o.slice(22)]=r}else if("t-name"!==o){if(o.startsWith("t-")&&!o.startsWith("t-att"))throw new s(`Unknown QWeb directive: '${o}'`);const t=e.tModelInfo;t&&["t-att-value","t-attf-value"].includes(o)&&(t.hasDynamicChildren=!0),a=a||{},a[o]=r}}}i&&(e.nameSpace=i);const d=On(t,e);return{type:2,tag:n,dynamicTag:o,attrs:a,attrsTranslationCtx:c,on:h,ref:r,content:d,model:u,ns:i}}(t,e)||function(t,e){if(!t.hasAttribute("t-set"))return null;const n=t.getAttribute("t-set"),o=t.getAttribute("t-value")||null,i=t.innerHTML===t.textContent&&t.textContent||null;let r=null;t.textContent!==t.innerHTML&&(r=On(t,e));return{type:5,name:n,value:o,defaultValue:i,body:r,hasNoRepresentation:!0}}(t,e)||function(t,e){if("t"!==t.tagName)return null;return Ln(t,e)}(t,e):function(t,e){if(t.nodeType===Node.TEXT_NODE){let n=t.textContent||"";return e.inPreTag||!_n.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 _n=/[\r\n]/;const An=new Set(["svg","g","path"]);const Cn=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 Dn(t){const e={type:15,content:t};return(null==t?void 0:t.hasNoRepresentation)&&(e.hasNoRepresentation=!0),e}function Sn(t,e){const n={type:16,content:t,translationCtx:e};return(null==t?void 0:t.hasNoRepresentation)&&(n.hasNoRepresentation=!0),n}function On(t,e){const n=[];for(let o of t.childNodes){const t=Tn(o,e);t&&(3===t.type?n.push(...t.content):n.push(t))}return n}function Rn(t){const e={type:3,content:t};return t.every(t=>t.hasNoRepresentation)&&(e.hasNoRepresentation=!0),e}function Ln(t,e){const n=On(t,e);switch(n.length){case 0:return null;case 1:return n[0];default:return Rn(n)}}function Bn(t,e={hasGlobalValues:!1}){const n=function(t,e){const n={inPreTag:!1,customDirectives:e};if("string"==typeof t)return En(Ge(`<t>${t}</t>`).firstChild,n);let o=kn.get(t);return o||(o=En(t.cloneNode(!0),n),kn.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="),i=new $n(n,{...e,hasSafeContext:o}).generateCode();try{return new Function("app, bdom, helpers",i)}catch(t){const{name:n}=e,o=new s(`Failed to compile ${n?`template "${n}"`:"anonymous template"}: ${t.message}\n\ngenerated code:\nfunction(app, bdom, helpers) {\n${i}\n}`);throw o.cause=t,o}}class Pn{constructor(){this.tasks=new Set,this.frame=0,this.delayedRenders=[],this.cancelledNodes=new Set,this.processing=!1,this.requestAnimationFrame=Pn.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=Vt.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)}}Pn.requestAnimationFrame=window.requestAnimationFrame.bind(window);let Mn=!1;const In=new Set;window.__OWL_DEVTOOLS__||(window.__OWL_DEVTOOLS__={apps:In,Fiber:Gt,RootFiber:qt,toRaw:_e,proxy:Le});class jn extends Xe{constructor(t={}){super(t),this.scheduler=new Pn,this.roots=new Set,this.name=t.name||"",In.add(this),this.pluginManager=t.pluginManager||new le(null),t.plugins&&this.pluginManager.startPlugins(t.plugins),t.test&&(this.dev=!0),!this.dev||t.test||Mn||(console.info("Owl is running in 'dev' mode."),Mn=!0)}createRoot(t,e={}){const n=e.props||{};let o,i;const r=new Promise((t,e)=>{o=t,i=e}),s=function(){let t=Yt;return()=>{Yt=t}}();let l,a=null;try{l=this.makeNode(t,n)}catch(t){a=t,i(t)}finally{s()}const c={node:l,promise:r,mount:(t,e)=>(a||(jn.validateTarget(t),this.mountNode(l,t,o,i,e)),r),destroy:()=>{this.roots.delete(c),l.destroy(),this.scheduler.processTasks()}};return this.roots.add(c),c}makeNode(t,e){return new Zt(t,e,this,null,null)}mountNode(t,e,n,o,i){let r=Wt.get(t);r||(r=[],Wt.set(t,r)),r.unshift((t,e)=>{const n=e();o(n)}),t.mounted.push(()=>{n(t.component),r.shift()}),t.mountComponent(e,i)}destroy(){for(let t of this.roots)t.destroy();this.scheduler.processTasks(),In.delete(this)}createComponent(t,e,n,o,i){const r=!e;let l;const a=0===i.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 i)if(t[n]!==e[n])return!0;return!1};const c=Zt.prototype.updateAndRender,h=Zt.prototype.initiateRender;return(n,o,i,a,u)=>{let d=i.children,f=d[o];r&&f&&f.component.constructor!==u&&(f=void 0);const p=i.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 s(`Cannot find the definition of component "${t}", missing static components key in parent`);if(!(u=e[t]))throw new s(`Cannot find the definition of component "${t}"`);if(!(u.prototype instanceof Qt))throw new s(`"${t}" is not a Component. It must inherit from the Component class`)}f=new Zt(u,n,this,i,o),d[o]=f,h.call(f,new Gt(f,p))}return p.childrenMap[o]=f,f}}handleError(...t){return Ut(...t)}}jn.validateTarget=function(t){const e=t&&t.ownerDocument;if(e){if(!e.defaultView)throw new s("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 s("Cannot mount a component on a detached dom node");return}}throw new s("Cannot mount component: the target is not a valid DOM element")},jn.apps=In,jn.version="3.0.0-alpha";function Vn(t,e){let n;return()=>(null!=n||(n={state:_t.STALE,sources:new Set,compute:()=>(St(n),t()),isDerived:!0,value:void 0,observers:new Set,name:null==e?void 0:e.name}),Mt(n),Dt(n),n.value)}const Wn=Symbol("Signal");function Fn(t,e,n){const o={value:t,observers:new Set,name:null==n?void 0:n.name};let i=e(o);const r=()=>(Dt(o),i);return r[Wn]=o,r.set=t=>{Object.is(o.value,t)||(o.value=t,i=e(o),St(o))},r}function Kn(t,e){return Fn(t,t=>t.value,e)}Kn.invalidate=function(t){if(!(Wn in t))throw new s(`Value is not a signal (${t})`);St(t[Wn])},Kn.Array=function(t,e){return Fn(t,t=>Re(t.value,t),e)},Kn.Object=function(t,e){return Fn(t,t=>Re(t.value,t),e)},Kn.Map=function(t,e){return Fn(t,t=>Re(t.value,t),e)},Kn.Set=function(t,e){return Fn(t,t=>Re(t.value,t),e)};function Un(t,e){var n,o,i;const r={state:_t.STALE,value:void 0,compute:()=>(Bt(void 0),Hn(r),Bt(r),t()),sources:new Set,childrenEffect:[],name:null==e?void 0:e.name};return null===(i=null===(o=null===(n=Lt())||void 0===n?void 0:n.childrenEffect)||void 0===o?void 0:o.push)||void 0===i||i.call(o,r),Mt(r),()=>{const t=Lt();Bt(void 0),Hn(r),Bt(t)}}function Hn(t){It(t),function(t){const e=t.value;e&&"function"==typeof e&&(e(),t.value=void 0)}(t);for(const e of t.childrenEffect)e.state=_t.EXECUTED,It(e),Hn(e);t.childrenEffect.length=0}n.shouldNormalizeDom=!1,n.mainEventHandler=(t,n,o)=>{const{data:i,modifiers:r}=e(t);t=i;let l=!1;if(r.length){let t=!1;const e=n.target===o;for(const o of r)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 s(`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 zn={config:n,mount:Tt,patch:function(t,e,n=!1){t.patch(e,n)},remove:function(t,e=!1){e&&t.beforeRemove(),t.remove()},list:vt,multi:j,text:q,toggler:r,createBlock:st,html:Et,comment:X},Gn={version:jn.version};Xe.prototype._compileTemplate=function(t,e){return Bn(e,{name:t,dev:this.dev,translateFn:this.translateFn,translatableAttributes:this.translatableAttributes,customDirectives:this.customDirectives,hasGlobalValues:this.hasGlobalValues})},t.App=jn,t.Component=Qt,t.EventBus=k,t.OwlError=s,t.Plugin=class{static get id(){var t;return null!==(t=this._shadowId)&&void 0!==t?t:this.name}static set id(t){this._shadowId=t}setup(){}},t.PluginManager=le,t.Registry=class{constructor(t={}){this._map=Kn.Object(Object.create(null)),this.entries=Vn(()=>Object.entries(this._map()).sort((t,e)=>t[1][0]-e[1][0]).map(([t,e])=>[t,e[1]])),this.items=Vn(()=>this.entries().map(t=>t[1])),this._name=t.name||"registry",this._validation=t.validation}addById(t,e=50){if(!t.id)throw new s(`Item should have an id key (registry '${this._name}')`);return this.add(t.id,t,e)}add(t,e,n=50){return this._validation&&te(e,this._validation),this._map()[t]=[n,e],this}get(t,e){const n=t in this._map();if(!n&&arguments.length<2)throw new Error(`KeyNotFoundError: Cannot find key "${t}" (registry '${this._name}')`);return n?this._map()[t][1]:e}remove(t){delete this._map()[t]}has(t){return t in this._map()}},t.Resource=class{constructor(t={}){this._items=Kn.Array([]),this.items=Vn(()=>this._items().sort((t,e)=>t[0]-e[0]).map(t=>t[1])),this._validation=t.validation}add(t,e=50){return this._validation&&te(t,this._validation),this._items().push([e,t]),this}remove(t){const e=this._items().filter(([e,n])=>n!==t);return this._items.set(e),this}has(t){return this._items().some(([e,n])=>n===t)}},t.__info__=Gn,t.assertType=te,t.batched=$,t.blockDom=zn,t.computed=Vn,t.effect=Un,t.htmlEscape=T,t.markRaw=Te,t.markup=_,t.mount=async function(t,e,n={}){return new jn(n).createRoot(t,n).mount(e,n)},t.onError=function(t){const e=Jt();let n=Wt.get(e);n||(n=[],Wt.set(e,n)),n.push(t.bind(e.component))},t.onMounted=he,t.onPatched=function(t){const e=Jt();e.patched.push(ce(e,t,"onPatched"))},t.onWillDestroy=de,t.onWillPatch=function(t){const e=Jt();e.willPatch.unshift(ce(e,t,"onWillPatch"))},t.onWillStart=function(t){const e=Jt();e.willStart.push(ce(e,t,"onWillStart"))},t.onWillUnmount=ue,t.onWillUpdateProps=function(t){const e=Jt();e.willUpdateProps.push(ce(e,t,"onWillUpdateProps"))},t.plugin=ae,t.props=fe,t.providePlugins=function(t,e){const n=Jt(),o=new le(n.pluginManager);return n.pluginManager=o,de(()=>o.destroy()),o.startPlugins(t,e)},t.signal=Kn,t.state=Le,t.status=function(){const t=le.current,e=t||Jt();return()=>{switch(e.status){case 0:return"new";case 2:return"cancelled";case 1:return t?"started":"mounted";case 3:return"destroyed"}}},t.toRaw=_e,t.types=re,t.untrack=Rt,t.useComponent=function(){return Yt.component},t.useEffect=function(t){de(Un(t))},t.useListener=function(t,e,n,o){t.addEventListener(e,n,o),de(()=>t.removeEventListener(e,n,o))},t.useResource=function(t,e){for(let n of e)t.add(n);de(()=>{for(let n of e)t.remove(n)})},t.validateType=ee,t.whenReady=function(t){return new Promise(function(t){"loading"!==document.readyState?t(!0):document.addEventListener("DOMContentLoaded",t,!1)}).then(t||function(){})},t.xml=Je,Object.defineProperty(t,"__esModule",{value:!0}),Gn.date="2026-01-18T08:00:45.537Z",Gn.hash="08a7334",Gn.url="https://github.com/odoo/owl"}(this.owl=this.owl||{});
|
|
1
|
+
!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,s)=>("function"==typeof t?t(n):Array.isArray(t)&&(t=e(t).data)[0](t[1],n),!1)},s=document.createTextNode("");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;if(this.key===t.key)n.patch(o,e);else{const i=n.firstNode();i.parentElement.insertBefore(s,i),e&&n.beforeRemove(),n.remove(),o.mount(this.parentEl,s),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 i(t,e){return new o(t,e)}class r extends Error{}const{setAttribute:l,removeAttribute:a}=Element.prototype,c=DOMTokenList.prototype,h=c.add,u=c.remove,d=Array.isArray,{split:f,trim:p}=String.prototype,m=/\s+/;function g(t,e){switch(e){case!1:case void 0:a.call(this,t);break;case!0:l.call(this,t,"");break;default:l.call(this,t,e)}}function v(t){return function(e){g.call(this,t,e)}}function b(t){if(d(t))"class"===t[0]?x.call(this,t[1]):g.call(this,t[0],t[1]);else for(let e in t)"class"===e?x.call(this,t[e]):g.call(this,e,t[e])}function y(t,e){if(d(t)){const n=t[0],s=t[1];if(n===e[0]){if(s===e[1])return;"class"===n?N.call(this,s,e[1]):g.call(this,n,s)}else a.call(this,e[0]),g.call(this,n,s)}else{for(let n in e)n in t||("class"===n?N.call(this,"",e[n]):a.call(this,n));for(let n in t){const s=t[n];s!==e[n]&&("class"===n?N.call(this,s,e[n]):g.call(this,n,s))}}}function w(t){const e={};switch(typeof t){case"string":const n=p.call(t);if(!n)return{};let s=f.call(n,m);for(let t=0,n=s.length;t<n;t++)e[s[t]]=!0;return e;case"object":for(let n in t){const s=t[n];if(s){if(n=p.call(n),!n)continue;const t=f.call(n,m);for(let n of t)e[n]=s}}return e;case"undefined":return{};case"number":return{[t]:!0};default:return{[t]:!0}}}function x(t){t=""===t?{}:w(t);const e=this.classList;for(let n in t)h.call(e,n)}function N(t,e){e=""===e?{}:w(e),t=""===t?{}:w(t);const n=this.classList;for(let s in e)s in t||u.call(n,s);for(let s in t)s in e||h.call(n,s)}function $(t){let e=!1;return async(...n)=>{e||(e=!0,await Promise.resolve(),e=!1,t(...n))}}class k extends EventTarget{trigger(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e}))}}class E extends String{}function T(t){return t instanceof E?t:void 0===t?A(""):"number"==typeof t?A(String(t)):([["&","&"],["<","<"],[">",">"],["'","'"],['"',"""],["`","`"]].forEach(e=>{t=String(t).replace(new RegExp(e[0],"g"),e[1])}),A(t))}function A(t,...e){if(!Array.isArray(t))return new E(t);const n=t;let s="",o=0;for(;o<e.length;++o)s+=n[o]+T(e[o]);return s+=n[o],new E(s)}function _(t){const e=t.split(".")[0],s=t.includes(".capture");return t.includes(".synthetic")?function(t,e=!1){let s=`__event__synthetic_${t}`;e&&(s=`${s}_capture`);!function(t,e,s=!1){if(S[e])return;document.addEventListener(t,t=>function(t,e){let s=e.target;for(;null!==s;){const o=s[t];if(o)for(const t of Object.values(o)){if(n.mainEventHandler(t,e,s))return}s=s.parentNode}}(e,t),{capture:s}),S[e]=!0}(t,s,e);const o=D++;function i(t){const e=this[s]||{};e[o]=t,this[s]=e}function r(){delete this[s]}return{setup:i,update:i,remove:r}}(e,s):function(t,e=!1){let s=`__event__${t}_${C++}`;e&&(s=`${s}_capture`);function o(t){const e=t.currentTarget;if(!e||!function(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)}(e))return;const o=e[s];o&&n.mainEventHandler(o,t,e)}function i(n){this[s]=n,this.addEventListener(t,o,{capture:e})}function r(){delete this[s],this.removeEventListener(t,o,{capture:e})}function l(t){this[s]=t}return{setup:i,update:l,remove:r}}(e,s)}let C=1;let D=1;const S={};const O=Node.prototype,R=O.insertBefore,L=(B=O,I="textContent",Object.getOwnPropertyDescriptor(B,I)).set;var B,I;const P=O.removeChild;class M{constructor(t){this.children=t}mount(t,e){const n=this.children,s=n.length,o=new Array(s);for(let i=0;i<s;i++){let s=n[i];if(s)s.mount(t,e);else{const n=document.createTextNode("");o[i]=n,R.call(t,n,e)}}this.anchors=o,this.parentEl=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;const n=this.children,s=this.anchors;for(let o=0,i=n.length;o<i;o++){let i=n[o];if(i)i.moveBeforeDOMNode(t,e);else{const n=s[o];R.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,s=this.parentEl,o=this.anchors;for(let t=0,i=n.length;t<i;t++){let i=n[t];if(i)i.moveBeforeVNode(null,e);else{const n=o[t];R.call(s,n,e)}}}patch(t,e){if(this===t)return;const n=this.children,s=t.children,o=this.anchors,i=this.parentEl;for(let t=0,r=n.length;t<r;t++){const r=n[t],l=s[t];if(r)if(l)r.patch(l,e);else{const s=r.firstNode(),l=document.createTextNode("");o[t]=l,R.call(i,l,s),e&&r.beforeRemove(),r.remove(),n[t]=void 0}else if(l){n[t]=l;const e=o[t];l.mount(i,e),P.call(i,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)L.call(t,"");else{const e=this.children,n=this.anchors;for(let s=0,o=e.length;s<o;s++){const o=e[s];o?o.remove():P.call(t,n[s])}}}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 M(t)}const V=Node.prototype,W=CharacterData.prototype,F=V.insertBefore,K=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(W,"data").set,U=V.removeChild;class H{constructor(t){this.text=t}mountNode(t,e,n){this.parentEl=e,F.call(e,t,n),this.el=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,F.call(e,this.el,t)}moveBeforeVNode(t,e){F.call(this.parentEl,this.el,t?t.el:e)}beforeRemove(){}remove(){U.call(this.parentEl,this.el)}firstNode(){return this.el}toString(){return this.text}}let z=class extends H{mount(t,e){this.mountNode(document.createTextNode(Y(this.text)),t,e)}patch(t){const e=t.text;this.text!==e&&(K.call(this.el,Y(e)),this.text=e)}};class G extends H{mount(t,e){this.mountNode(document.createComment(Y(this.text)),t,e)}patch(){}}function q(t){return new z(t)}function X(t){return new G(t)}function Y(t){switch(typeof t){case"string":return t;case"number":return String(t);case"boolean":return t?"true":"false";default:return t||""}}const J=(t,e)=>Object.getOwnPropertyDescriptor(t,e),Z=Node.prototype,Q=Element.prototype,tt=J(CharacterData.prototype,"data").set,et=J(Z,"firstChild").get,nt=J(Z,"nextSibling").get,st=()=>{};function ot(t){return function(e){this[t]=0===e?0:e?e.valueOf():""}}const it={};function rt(t){if(t in it)return it[t];const e=(new DOMParser).parseFromString(`<t>${t}</t>`,"text/xml").firstChild.firstChild;n.shouldNormalizeDom&<(e);const s=at(e),o=ut(s),i=function(t,e){let n=function(t,e){const{refN:n,collectors:s,children:o,locations:i,cbRefs:r}=e,l=s.length;i.sort((t,e)=>t.idx-e.idx);const a=i.length,c=o.length,h=o,u=n>0,d=Z.cloneNode,f=Z.insertBefore,p=Q.remove;class m{constructor(t){this.data=t}beforeRemove(){}remove(){p.call(this.el)}firstNode(){return this.el}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e,f.call(e,this.el,t)}moveBeforeVNode(t,e){f.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 s=d.call(t,!0);f.call(e,s,n),this.el=s,this.parentEl=e}patch(t,e){}}u&&(m.prototype.mount=function(e,o){const u=d.call(t,!0),p=new Array(n);this.refs=p,p[0]=u;for(let t=0;t<l;t++){const e=s[t];p[e.idx]=e.getVal.call(p[e.prevIdx])}if(a){const t=this.data;for(let e=0;e<a;e++){const n=i[e];n.setData.call(p[n.refIdx],t[e])}}if(f.call(e,u,o),c){const t=this.children;for(let e=0;e<c;e++){const n=t[e];if(n){const t=h[e],s=t.afterRefIdx?p[t.afterRefIdx]:null;n.isOnlyChild=t.isOnlyChild,n.mount(p[t.parentRefIdx],s)}}}if(this.el=u,this.parentEl=e,r.length){const t=this.data,e=this.refs;for(let n of r){const{idx:s,refIdx:o}=i[n];(0,t[s])(e[o],null)}}},m.prototype.patch=function(t,e){if(this===t)return;const n=this.refs;if(a){const e=this.data,s=t.data;for(let t=0;t<a;t++){const o=e[t],r=s[t];if(o!==r){const e=i[t];e.updateData.call(n[e.refIdx],r,o)}}this.data=s}if(c){let s=this.children;const o=t.children;for(let t=0;t<c;t++){const i=s[t],r=o[t];if(i)r?i.patch(r,e):(e&&i.beforeRemove(),i.remove(),s[t]=void 0);else if(r){const e=h[t],o=e.afterRefIdx?n[e.afterRefIdx]:null;r.mount(n[e.parentRefIdx],o),s[t]=r}}}},m.prototype.remove=function(){if(r.length){const t=this.data,e=this.refs;for(let n of r){const{idx:s,refIdx:o}=i[n];(0,t[s])(null,e[o])}}p.call(this.el)});return m}(t,e);if(e.children.length)return n=class extends n{constructor(t,e){super(t),this.children=e}},n.prototype.beforeRemove=M.prototype.beforeRemove,(t,e=[])=>new n(t,e);return t=>new n(t)}(s.el,o);return it[t]=i,i}function lt(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)lt(t.childNodes.item(e))}else t.remove()}function at(t,e=null,n=null){switch(t.nodeType){case Node.ELEMENT_NODE:{let s=n&&n.currentNS;const o=t.tagName;let i;const r=[];if(o.startsWith("block-text-")){const t=parseInt(o.slice(11),10);r.push({type:"text",idx:t}),i=document.createTextNode("")}if(o.startsWith("block-child-")){n.isRef||ct(n);const t=parseInt(o.slice(12),10);r.push({type:"child",idx:t}),i=document.createTextNode("")}if(s||(s=t.namespaceURI),i||(i=s?document.createElementNS(s,o):document.createElement(o)),i instanceof Element){if(!n){document.createElement("template").content.appendChild(i)}const e=t.attributes;for(let t=0;t<e.length;t++){const n=e[t].name,s=e[t].value;if(n.startsWith("block-handler-")){const t=parseInt(n.slice(14),10);r.push({type:"handler",idx:t,event:s})}else if(n.startsWith("block-attribute-")){const t=parseInt(n.slice(16),10);r.push({type:"attribute",idx:t,name:s,tag:o})}else if(n.startsWith("block-property-")){const t=parseInt(n.slice(15),10);r.push({type:"property",idx:t,name:s,tag:o})}else"block-attributes"===n?r.push({type:"attributes",idx:parseInt(s,10)}):"block-ref"===n?r.push({type:"ref",idx:parseInt(s,10)}):i.setAttribute(e[t].name,s)}}const l={parent:e,firstChild:null,nextSibling:null,el:i,info:r,refN:0,currentNS:s};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);r.push({idx:n,type:"child",isOnlyChild:!0})}else{l.firstChild=at(t.firstChild,l,l),i.appendChild(l.firstChild.el);let e=t.firstChild,n=l.firstChild;for(;e=e.nextSibling;)n.nextSibling=at(e,n,l),i.appendChild(n.nextSibling.el),n=n.nextSibling}}return l.info.length&&ct(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 ct(t){t.isRef=!0;do{t.refN++}while(t=t.parent)}function ht(t){let e=t.parent;for(;e&&e.nextSibling===t;)t=e,e=e.parent;return e}function ut(t,e,n){if(!e){e={collectors:[],locations:[],children:new Array(t.info.filter(t=>"child"===t.type).length),cbRefs:[],refN:t.refN},n=0}if(t.refN){const s=n,o=t.isRef,i=t.firstChild?t.firstChild.refN:0,r=t.nextSibling?t.nextSibling.refN:0;if(o){for(let e of t.info)e.refIdx=s;t.refIdx=s,function(t,e){for(let n of e.info)switch(n.type){case"text":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:dt,updateData:dt});break;case"child":n.isOnlyChild?t.children[n.idx]={parentRefIdx:n.refIdx,isOnlyChild:!0}:t.children[n.idx]={parentRefIdx:ht(e).refIdx,afterRefIdx:n.refIdx};break;case"property":{const e=n.refIdx,s=ot(n.name);t.locations.push({idx:n.idx,refIdx:e,setData:s,updateData:s});break}case"attribute":{const e=n.refIdx;let s,o;"class"===n.name?(o=x,s=N):(o=v(n.name),s=o),t.locations.push({idx:n.idx,refIdx:e,setData:o,updateData:s});break}case"attributes":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:b,updateData:y});break;case"handler":{const{setup:e,update:s}=_(n.event);t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:e,updateData:s});break}case"ref":t.locations.push({idx:n.idx,refIdx:n.refIdx,setData:st,updateData:st}),t.cbRefs.push(n.idx)}}(e,t),n++}if(r){const o=n+i;e.collectors.push({idx:o,prevIdx:s,getVal:nt}),ut(t.nextSibling,e,o)}i&&(e.collectors.push({idx:n,prevIdx:s,getVal:et}),ut(t.firstChild,e,n))}return e}function dt(t){tt.call(this,Y(t))}const ft=Node.prototype,pt=ft.insertBefore,mt=ft.appendChild,gt=ft.removeChild,vt=((t,e)=>Object.getOwnPropertyDescriptor(t,e))(ft,"textContent").set;class bt{constructor(t){this.children=t}mount(t,e){const n=this.children,s=document.createTextNode("");this.anchor=s,pt.call(t,s,e);const o=n.length;if(o){const e=n[0].mount;for(let i=0;i<o;i++)e.call(n[i],t,s)}this.parentEl=t}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;const n=this.children;for(let s=0,o=n.length;s<o;s++)n[s].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,s=n.length;t<s;t++)n[t].moveBeforeVNode(null,e);this.parentEl.insertBefore(this.anchor,e)}patch(t,e){if(this===t)return;const n=this.children,s=t.children;if(0===s.length&&0===n.length)return;this.children=s;const o=s[0]||n[0],{mount:i,patch:r,remove:l,beforeRemove:a,moveBeforeVNode:c,firstNode:h}=o,u=this.anchor,d=this.isOnlyChild,f=this.parentEl;if(0===s.length&&d){if(e)for(let t=0,e=n.length;t<e;t++)a.call(n[t]);return vt.call(f,""),void mt.call(f,u)}let p,m=0,g=0,v=n[0],b=s[0],y=n.length-1,w=s.length-1,x=n[y],N=s[w];for(;m<=y&&g<=w;){if(null===v){v=n[++m];continue}if(null===x){x=n[--y];continue}let t=v.key,o=b.key;if(t===o){r.call(v,b,e),s[g]=v,v=n[++m],b=s[++g];continue}let l=x.key,a=N.key;if(l===a){r.call(x,N,e),s[w]=x,x=n[--y],N=s[--w];continue}if(t===a){r.call(v,N,e),s[w]=v;const t=s[w+1];c.call(v,t,u),v=n[++m],N=s[--w];continue}if(l===o){r.call(x,b,e),s[g]=x;const t=n[m];c.call(x,t,u),x=n[--y],b=s[++g];continue}p=p||wt(n,m,y);let d=p[o];if(void 0===d)i.call(b,f,h.call(v)||null);else{const t=n[d];c.call(t,v,null),r.call(t,b,e),s[g]=t,n[d]=null}b=s[++g]}if(m<=y||g<=w)if(m>y){const t=s[w+1],e=t?h.call(t)||null:u;for(let t=g;t<=w;t++)i.call(s[t],f,e)}else for(let t=m;t<=y;t++){let s=n[t];s&&(e&&a.call(s),l.call(s))}}beforeRemove(){const t=this.children,e=t.length;if(e){const n=t[0].beforeRemove;for(let s=0;s<e;s++)n.call(t[s])}}remove(){const{parentEl:t,anchor:e}=this;if(this.isOnlyChild)vt.call(t,"");else{const n=this.children,s=n.length;if(s){const t=n[0].remove;for(let e=0;e<s;e++)t.call(n[e])}gt.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 yt(t){return new bt(t)}function wt(t,e,n){let s={};for(let o=e;o<=n;o++)s[t[o].key]=o;return s}const xt=Node.prototype,Nt=xt.insertBefore,$t=xt.removeChild;class kt{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)Nt.call(t,n,e);if(!this.content.length){const n=document.createTextNode("");this.content.push(n),Nt.call(t,n,e)}}moveBeforeDOMNode(t,e=this.parentEl){this.parentEl=e;for(let n of this.content)Nt.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,s=this.content[0],o=document.createElement("template");o.innerHTML=e;const i=[...o.content.childNodes];for(let t of i)Nt.call(n,t,s);if(!i.length){const t=document.createTextNode("");i.push(t),Nt.call(n,t,s)}this.remove(),this.content=i,this.html=t.html}}beforeRemove(){}remove(){const t=this.parentEl;for(let e of this.content)$t.call(t,e)}firstNode(){return this.content[0]}toString(){return this.html}}function Et(t){return new kt(t)}function Tt(t,e,n=null){t.mount(e,n)}var At;let _t,Ct;function Dt(t){Ct&&(Ct.sources.add(t),t.observers.add(Ct))}function St(t){!function(t){if(_t)return t();_t=[];try{return t()}finally{}}(()=>{for(const e of t.observers)e.state===At.EXECUTED&&(e.isDerived?jt(e):_t.push(e)),e.state=At.STALE}),Ot()}!function(t){t[t.EXECUTED=0]="EXECUTED",t[t.STALE=1]="STALE",t[t.PENDING=2]="PENDING"}(At||(At={}));const Ot=$(function(){if(!_t)return;for(const t of _t)Pt(t);_t=void 0});function Rt(t){return It(void 0,t)}function Lt(){return Ct}function Bt(t){Ct=t}function It(t,e){const n=Ct;let s;Ct=t;try{s=e()}finally{Ct=n}return s}function Pt(t){var e;const n=t.state;if(n===At.EXECUTED)return;if(n===At.PENDING&&(function(t){for(const e of t.sources)"compute"in e&&Pt(e)}(t),t.state!==At.STALE))return void(t.state=At.EXECUTED);Mt(t);const s=Ct;Ct=t,t.value=null===(e=t.compute)||void 0===e?void 0:e.call(t),t.state=At.EXECUTED,Ct=s}function Mt(t){const e=t.sources;for(const n of e){n.observers.delete(t)}e.clear()}function jt(t){for(const e of t.observers)e.state||(e.state=At.PENDING,e.isDerived?jt(e):_t.push(e))}const Vt=new WeakMap,Wt=new WeakMap;function Ft(t,e){try{t.destroy()}catch(t){}return Object.assign(new r("[Owl] Unhandled error. Destroying the root component"),{cause:e})}function Kt(t,e){if(!t)return!1;const n=t.fiber;n&&Vt.set(n,e);const s=Wt.get(t);if(s){let n=!1;const o=()=>Ft(t.app,e);for(let t=s.length-1;t>=0;t--)try{s[t](e,o),n=!0;break}catch(t){e=t}if(n)return!0}return Kt(t.parent,e)}function Ut(t){let{error:e}=t;const n="node"in t?t.node:t.fiber.node,s="fiber"in t?t.fiber:n.fiber;if(s){let t=s;do{t.node.fiber=t,t=t.parent}while(t);Vt.set(s.root,e)}if(!Kt(n,e))throw Ft(n.app,e)}function Ht(){throw new r("Attempted to render cancelled fiber")}function zt(t){let e=0;for(let n of t){let t=n.node;n.render=Ht,0===t.status&&t.cancel(),t.fiber=null,n.bdom?t.forceNextRender=!0:e++,e+=zt(n.children)}return e}class Gt{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 s=n.fiber.root;if(0!==s.counter||!(t.parentKey in n.fiber.childrenMap))return void e.delayedRenders.push(this);n=s.node}t=n,n=n.parent}this._render()}_render(){const t=this.node,e=this.root;e&&(It(t.signalComputation,()=>{try{this.bdom=!0,this.bdom=t.renderFn()}catch(e){t.app.handleError({node:t,error:e})}}),e.setCounter(e.counter-1))}}class qt extends Gt{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 s=this.patched;for(;e=s.pop();)if(e.appliedToDom)for(let t of e.node.patched)t()}catch(s){for(let t of n)t.node.willUnmount=[];this.locked=!1,t.app.handleError({fiber:e||this,error:s})}}setCounter(t){this.counter=t,0===t&&this.node.app.scheduler.flush()}}class Xt extends qt{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)Tt(e.bdom,this.target);else{const t=this.target.childNodes[0];Tt(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})}}}let Yt=null;function Jt(){if(!Yt)throw new r("No active component (a hook function should only be called in 'setup')");return Yt}class Zt{constructor(t,e,n,s,o){this.fiber=null,this.bdom=null,this.status=0,this.forceNextRender=!1,this.children=Object.create(null),this.willStart=[],this.willUpdateProps=[],this.willUnmount=[],this.mounted=[],this.willPatch=[],this.patched=[],this.willDestroy=[],this.name=t.name,Yt=this,this.app=n,this.parent=s,this.parentKey=o,this.pluginManager=s?s.pluginManager:n.pluginManager,this.signalComputation={value:void 0,compute:()=>this.render(!1),sources:new Set,state:At.EXECUTED},this.props=Object.assign({},e);const i=Lt();Bt(void 0),this.component=new t(this);const r={this:this.component,__owl__:this};this.renderFn=n.getTemplate(t.template).bind(this.component,r,this),this.component.setup(),Bt(i),Yt=null}mountComponent(t,e){const n=new Xt(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{let t;It(void 0,()=>{t=this.willStart.map(t=>t.call(e))}),await Promise.all(t)}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&&!Vt.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-zt(e.children)),t.locked=!1,e.children=[],e.childrenMap={},e.bdom=null,Vt.has(e)&&(Vt.delete(e),Vt.delete(t),e.appliedToDom=!1,e instanceof qt&&(e.mounted=e instanceof Xt?[e]:[])),e}const n=new qt(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){t=Object.assign({},t);const n=function(t,e){let n=t.fiber;return n&&(zt(n.children),n.root=null),new Gt(t,e)}(this,e);this.fiber=n;const s=this.component;let o;if(Rt(()=>{o=Promise.all(this.willUpdateProps.map(e=>e.call(s,t)))}),await o,n!==this.fiber)return;this.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}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()}_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()}}class Qt{constructor(t){this.__owl__=t}setup(){}render(t=!1){this.__owl__.render(!0===t)}}Qt.template="";const te={any:function(){},array:function(t){return function(e){if(Array.isArray(e.value)){if(t)for(let n=0;n<e.value.length;n++)e.withKey(n).validate(t)}else e.addIssue({message:"value is not an array"})}},boolean:function(t){"boolean"!=typeof t.value&&t.addIssue({message:"value is not a boolean"})},constructor:function(t){return function(e){"function"==typeof e.value&&(e.value===t||e.value.prototype instanceof t)||e.addIssue({message:`value is not '${t.name}' or an extension`})}},customValidator:function(t,e,n="value does not match custom validation"){return function(s){s.validate(t),s.isValid&&(e(s.value)||s.addIssue({message:n}))}},function:function(t=[],e=void 0){return function(t){"function"!=typeof t.value&&t.addIssue({message:"value is not a function"})}},instanceOf:function(t){return function(e){e.value instanceof t||e.addIssue({message:`value is not an instance of '${t.name}'`})}},literal:function(t){return function(e){e.value!==t&&e.addIssue({message:`value is not equal to ${"string"==typeof t?`'${t}'`:t}`})}},number:function(t){"number"!=typeof t.value&&t.addIssue({message:"value is not a number"})},object:function(t={}){return function(e){"object"!=typeof e.value||Array.isArray(e.value)||null===e.value?e.addIssue({message:"value is not an object"}):t&&(Array.isArray(t)?function(t,e){const n=e.filter(e=>!e.endsWith("?")&&!(e in t.value));n.length&&t.addIssue({message:"object value have missing keys",missingKeys:n})}(e,t):function(t,e){const n=[];for(const s in e){const o=s.endsWith("?")?s.slice(0,-1):s;void 0!==t.value[o]?t.withKey(o).validate(e[s]):s.endsWith("?")||n.push(o)}n.length&&t.addIssue({message:"object value have missing keys",missingKeys:n})}(e,t))}},promise:function(t){return function(t){t.value instanceof Promise||t.addIssue({message:"value is not a promise"})}},reactiveValue:function(t){return function(t){"function"!=typeof t.value&&t.addIssue({message:"value is not a reactive (it should be function)"})}},record:function(t){return function(e){if("object"!=typeof e.value||Array.isArray(e.value)||null===e.value)e.addIssue({message:"value is not an object"});else if(t)for(const n in e.value)e.withKey(n).validate(t)}},signal:function(t){return function(t){"function"!=typeof t.value&&t.addIssue({message:"value is not a signal (it should be function)"}),"function"!=typeof t.value.set&&t.addIssue({message:"value is not a signal (method 'set' should be defined as a function)"})}},string:function(t){"string"!=typeof t.value&&t.addIssue({message:"value is not a string"})},tuple:function(t){return function(e){if(Array.isArray(e.value))if(e.value.length===t.length)for(let n=0;n<t.length;n++)e.withKey(n).validate(t[n]);else e.addIssue({message:"tuple value does not have the correct length"});else e.addIssue({message:"value is not an array"})}},union:function(t){return function(e){let n=0;const s=[];for(const o of t){const t=e.withIssues(s);if(t.validate(o),s.length===n||t.issueDepth>0)return void e.mergeIssues(s.slice(n));n=s.length}e.addIssue({message:"value does not match union type",subIssues:s})}}};function ee(t,e,n="Value does not match the type"){const s=se(t,e);if(s.length){const t=JSON.stringify(s,(t,e)=>"function"==typeof e?e.name:e,2);throw new r(`${n}\n${t}`)}}function ne(t,e,n,s){return{issueDepth:0,path:n,value:e,get isValid(){return!t.length},addIssue(e){t.push({received:this.value,path:this.path,...e})},mergeIssues(e){t.push(...e)},validate(t){t(this),!this.isValid&&s&&(s.issueDepth=this.issueDepth+1)},withIssues(t){return ne(t,this.value,this.path,this)},withKey(e){return ne(t,this.value[e],this.path.concat(e),this)}}}function se(t,e){const n=[];return e(ne(n,t,[])),n}let oe={};class ie{constructor(t){var e;this.children=[],this.onDestroyCb=[],this.status=0,this.parent=t||null,null===(e=this.parent)||void 0===e||e.children.push(this),this.plugins=this.parent?Object.create(this.parent.plugins):{}}destroy(){for(let t of this.children)t.destroy();const t=this.onDestroyCb;for(;t.length;)t.pop()();this.status=3}getPluginById(t){return this.plugins[t]||null}getPlugin(t){return this.getPluginById(t.id)}startPlugins(t,e={}){const n=ie.current;ie.current=this;const s=[];for(const o of t){if(!o.id)throw ie.current=n,new r(`Plugin "${o.name}" has no id`);if(this.plugins.hasOwnProperty(o.id)){const t=this.getPluginById(o.id).constructor;if(t!==o)throw ie.current=n,new r(`Trying to start a plugin with the same id as an other plugin (id: '${o.id}', existing plugin: '${t.name}', starting plugin: '${o.name}')`);continue}oe=e[o.id]||{};const t=new o;this.plugins[o.id]=t,s.push(t)}oe={};for(let t of s)t.setup();return ie.current=n,ie.current||(this.status=1),s}}function re(t){const e=ie.current||Jt().pluginManager;let n=e.getPluginById(t.id);if(!n){if(e!==ie.current)throw new r(`Unknown plugin "${t.id}"`);e.startPlugins([t]),n=e.getPluginById(t.id)}return n}function le(t,e,n){const s=e.bind(t.component);if(t.app.dev){const t=e.name?` <${e.name}>`:"";Reflect.defineProperty(s,"name",{value:n+t})}return s}function ae(t){const e=Jt();e.mounted.push(le(e,t,"onMounted"))}function ce(t){const e=Jt();e.willUnmount.unshift(le(e,t,"onWillUnmount"))}function he(t){const e=ie.current;if(e)e.onDestroyCb.push(t);else{const e=Jt();e.willDestroy.unshift(le(e,t,"onWillDestroy"))}}function ue(t,e){const n=Jt();function s(t){return void 0===n.props[t]&&e?e[t]:n.props[t]}const o=Object.create(null);function i(t){for(const e of t)Reflect.defineProperty(o,e,{enumerable:!0,get:s.bind(null,e)})}if(t){if(i((Array.isArray(t)?t:Object.keys(t)).map(t=>t.endsWith("?")?t.slice(0,-1):t)),n.app.dev){const s=e?function(t,e){const n=(Array.isArray(t)?t:Object.keys(t)).filter(t=>!t.endsWith("?")&&t in e);return e=>{n.length&&e.addIssue({message:"props have default values on mandatory keys",keys:n}),e.validate(te.object(t))}}(t,e):te.object(t);ee(n.props,s,`Invalid component props (${n.name})`),n.willUpdateProps.push(t=>{ee(t,s,`Invalid component props (${n.name})`)})}}else i(Object.keys(n.props)),n.willUpdateProps.push(t=>{for(let t in o)Reflect.deleteProperty(o,t);i(Object.keys(t))});return o}ie.current=null,re.props=function(t,e={}){function n(t){return void 0===oe[t]?e[t]:oe[t]}const s=Object.create(null);function o(t){for(const e of t)Reflect.defineProperty(s,e,{enumerable:!0,get:n.bind(null,e)})}if(t){o((t&&!Array.isArray(t)?Object.keys(t):t).map(t=>t.endsWith("?")?t.slice(0,-1):t));if(Jt().app.dev){const e=te.object(t);ee(oe,e)}}else o(Object.keys(oe));return oe};const de=q("").constructor;class fe extends de{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 pe extends Qt{constructor(){super(...arguments),this.props=ue({target:te.string})}setup(){const t=this.__owl__;ae(()=>{const e=t.bdom;if(!e.target){const n=document.querySelector(t.props.target);if(!n)throw new r("invalid portal target");e.content.moveBeforeDOMNode(n.firstChild,n)}}),ce(()=>{t.bdom.remove()})}}pe.template="__portal__";const me=Symbol("Key changes"),ge=Object.prototype.toString,ve=Object.prototype.hasOwnProperty,be=["Object","Array","Set","Map","WeakMap"],ye=["Set","Map","WeakMap"];function we(t){return ge.call(Ee(t)).slice(8,-1)}function xe(t){return"object"==typeof t&&be.includes(we(t))}function Ne(t,e){return!e&&xe(t)?Oe(t):t}const $e=new WeakSet;function ke(t){return $e.add(t),t}function Ee(t){return Ce.has(t)?Ce.get(t):t}const Te=new WeakMap;function Ae(t,e,n){Dt(null!=n?n:function(t,e){let n=Te.get(t);n||(n=new Map,Te.set(t,n));let s=n.get(e);return s||(s={value:void 0,observers:new Set},n.set(e,s)),s}(t,e))}function _e(t,e,n){if(!n){const s=Te.get(t);if(!s)return;if(!s.has(e))return;n=s.get(e)}St(n)}const Ce=new WeakMap,De=new WeakMap;function Se(t,e){if(!xe(t))throw new r("Cannot make the given value reactive");if($e.has(t))return t;if(Ce.has(t))return t;const n=De.get(t);if(n)return n;const s=we(t),o=ye.includes(s)?function(t,e,n){const s=je[e](t,n);return Object.assign(Re(n),{get:(t,e)=>ve.call(s,e)?s[e]:(Ae(t,e,n),Ne(t[e],n))})}(t,s,e):Re(e),i=new Proxy(t,o);return De.set(t,i),Ce.set(i,t),i}function Oe(t){return Se(t,null)}function Re(t){return{get(e,n,s){const o=Object.getOwnPropertyDescriptor(e,n);return!o||o.writable||o.configurable?(Ae(e,n,t),Ne(Reflect.get(e,n,s),t)):Reflect.get(e,n,s)},set(e,n,s,o){const i=ve.call(e,n),r=Reflect.get(e,n,o),l=Reflect.set(e,n,Ee(s),o);return!i&&ve.call(e,n)&&_e(e,me,t),(r!==Reflect.get(e,n,o)||"length"===n&&Array.isArray(e))&&_e(e,n,t),l},deleteProperty(e,n){const s=Reflect.deleteProperty(e,n);return _e(e,me,t),_e(e,n,t),s},ownKeys:e=>(Ae(e,me,t),Reflect.ownKeys(e)),has:(e,n)=>(Ae(e,me,t),Reflect.has(e,n))}}function Le(t,e,n){return s=>(s=Ee(s),Ae(e,s,n),Ne(e[t](s),n))}function Be(t,e,n){return function*(){Ae(e,me,n);const s=e.keys();for(const o of e[t]()){const t=s.next().value;Ae(e,t,n),yield Ne(o,n)}}}function Ie(t,e){return function(n,s){Ae(t,me,e),t.forEach(function(o,i,r){Ae(t,i,e),n.call(s,Ne(o,e),Ne(i,e),Ne(r,e))},s)}}function Pe(t,e,n,s){return(o,i)=>{o=Ee(o);const r=n.has(o),l=n[e](o),a=n[t](o,i);return r!==n.has(o)&&_e(n,me,s),l!==n[e](o)&&_e(n,o,s),a}}function Me(t,e){return()=>{const n=[...t.keys()];t.clear(),_e(t,me,e);for(const s of n)_e(t,s,e)}}const je={Set:(t,e)=>({has:Le("has",t,e),add:Pe("add","has",t,e),delete:Pe("delete","has",t,e),keys:Be("keys",t,e),values:Be("values",t,e),entries:Be("entries",t,e),[Symbol.iterator]:Be(Symbol.iterator,t,e),forEach:Ie(t,e),clear:Me(t,e),get size(){return Ae(t,me,e),t.size}}),Map:(t,e)=>({has:Le("has",t,e),get:Le("get",t,e),set:Pe("set","get",t,e),delete:Pe("delete","has",t,e),keys:Be("keys",t,e),values:Be("values",t,e),entries:Be("entries",t,e),[Symbol.iterator]:Be(Symbol.iterator,t,e),forEach:Ie(t,e),clear:Me(t,e),get size(){return Ae(t,me,e),t.size}}),WeakMap:(t,e)=>({has:Le("has",t,e),get:Le("get",t,e),set:Pe("set","get",t,e),delete:Pe("delete","has",t,e)})};const Ve=Object.create;function We(t){const e=Ve(t);for(let n in t)e[n]=t[n];return e}const Fe=Symbol("isBoundary");class Ke{constructor(t,e,n,s,o){this.fn=t,this.ctx=We(e),this.component=n,this.node=s,this.key=o}evaluate(){return this.fn.call(this.component,this.ctx,this.node,this.key)}toString(){return this.evaluate().toString()}}const Ue={withDefault:function(t,e){return null==t||!1===t?e:t},zero:Symbol("zero"),isBoundary:Fe,callSlot:function(t,e,n,s,o,r,l){n=n+"__slot_"+s;const a=t.__owl__.props.slots||{},{__render:c,__ctx:h,__scope:u}=a[s]||{},d=Ve(h||{});u&&(d[u]=r);const f=c?c(d,e,n):null;if(l){let r,a;return f?r=o?i(s,f):f:a=l(t,e,n),j([r,a])}return f||q("")},capture:We,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 s=n.length;return[e,n,s,new Array(s)]},setContextValue:function(t,e,n){const s=t;for(;!t.hasOwnProperty(e)&&!t.hasOwnProperty(Fe);){const e=t.__proto__;if(!e){t=s;break}t=e}t[e]=n},shallowEqual:function(t,e){for(let n=0,s=t.length;n<s;n++)if(t[n]!==e[n])return!1;return!0},toNumber:function(t){const e=parseFloat(t);return isNaN(e)?t:e},LazyValue:Ke,safeOutput:function(t,e){if(null==t)return e?i("default",e):i("undefined",q(""));let n,s;return t instanceof E?(n="string_safe",s=Et(t)):t instanceof Ke?(n="lazy_value",s=t.evaluate()):(n="string_unsafe",s=q(t)),i(n,s)},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 s=t[n],o=_(n);this.handlerFns[s]=o,o.setup.call(e,this.handlerData[s])}}wrapHandlerData(){for(let t=0;t<e;t++){let e=this.handlerData[t],n=e.length-2,s=e[n];const o=this;e[n]=function(t){const e=t.target;let n=o.child.firstNode();const i=o.afterNode;for(;n&&n!==i;){if(n.contains(e))return s.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:ke,OwlError:r,createRef:function(t){if(!t)throw new r("Ref is undefined or null");let e,n;if(t.add&&t.delete)e=t.add.bind(t),n=t.delete.bind(t);else{if(!t.set)throw new r("Ref should implement either a 'set' function or 'add' and 'delete' functions");e=t.set.bind(t),n=()=>t.set(null)}return(t,s)=>{s&&n(s),t&&e(t)}},modelExpr:function(t){if("function"!=typeof t||"function"!=typeof t.set)throw new r("Invalid t-model expression: expression should evaluate to a function with a 'set' method defined on it");return t}};function He(t){const e=(new DOMParser).parseFromString(t,"text/xml");if(e.getElementsByTagName("parsererror").length){let n="Invalid XML in template.";const s=e.getElementsByTagName("parsererror")[0].textContent;if(s){n+="\nThe parser has produced the following error message:\n"+s;const e=/\d+/g,o=e.exec(s);if(o){const i=Number(o[0]),r=t.split("\n")[i-1],l=e.exec(s);if(r&&l){const t=Number(l[0])-1;r[t]&&(n+=`\nThe error might be located at xml line ${i} column ${t}\n${r}\n${"-".repeat(t-1)}^`)}}}throw new r(n)}return e}const ze={text:q,createBlock:rt,list:yt,multi:j,html:Et,toggler:i,comment:X};class Ge{static registerTemplate(t,e){qe[t]=e}constructor(t={}){if(this.rawTemplates=Object.create(qe),this.templates={},this.Portal=pe,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={...Ue,__globals__:t.globalValues||{}},this.hasGlobalValues=Boolean(t.globalValues&&Object.keys(t.globalValues).length)}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:He(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 "${Jt().component.constructor.name}")`}catch{}throw new r(`Missing template: "${t}"${e}`)}const s="function"==typeof n&&!(n instanceof Element)?n:this._compileTemplate(t,n),o=this.templates;this.templates[t]=function(e,n){return o[t].call(this,e,n)};const i=s(this,ze,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,s,o){return i(e,this.getTemplate(e).call(t,n,s,o+e))}}const qe={};function Xe(...t){const e="__template__"+Xe.nextId++,n=String.raw(...t);return qe[e]=n,e}Xe.nextId=1,Ge.registerTemplate("__portal__",function(t,e,n){let{callSlot:s}=n;return function(t,e,n=""){return new fe(t.this.props.target,s(t,e,n,"default",!1,null))}});const Ye="true,false,NaN,null,undefined,debugger,console,window,in,instanceof,new,function,return,eval,void,Math,RegExp,Array,Object,Date,__globals__".split(","),Je=Object.assign(Object.create(null),{and:"&&",or:"||",gt:">",gte:">=",lt:"<",lte:"<="}),Ze=Object.assign(Object.create(null),{"{":"LEFT_BRACE","}":"RIGHT_BRACE","[":"LEFT_BRACKET","]":"RIGHT_BRACKET",":":"COLON",",":"COMMA","(":"LEFT_PAREN",")":"RIGHT_PAREN"}),Qe="...,.,===,==,+,!==,!=,!,||,&&,>=,>,<=,<,?,-,*,/,%,typeof ,=>,=,;,in ,new ,|,&,^,~".split(",");const tn=[function(t){let e=t[0],n=e;if("'"!==e&&'"'!==e&&"`"!==e)return!1;let s,o=1;for(;t[o]&&t[o]!==n;){if(s=t[o],e+=s,"\\"===s){if(o++,s=t[o],!s)throw new r("Invalid expression");e+=s}o++}if(t[o]!==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 Qe)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 Je?{type:"OPERATOR",value:Je[e],size:e.length}:{type:"SYMBOL",value:e}}return!1},function(t){const e=t[0];return!(!e||!(e in Ze))&&{type:Ze[e],value:e}}];const en=t=>t&&("LEFT_BRACE"===t.type||"COMMA"===t.type),nn=t=>t&&("RIGHT_BRACE"===t.type||"COMMA"===t.type);function sn(t){const e=new Set,n=function(t){const e=[];let n,s=!0,o=t;try{for(;s;)if(o=o.trim(),o){for(let t of tn)if(s=t(o),s){e.push(s),o=o.slice(s.size||s.value.length);break}}else s=!1}catch(t){n=t}if(o.length||n)throw new r(`Tokenizer error: could not tokenize \`${t}\``);return e}(t);let s=0,o=[];for(;s<n.length;){let t=n[s],i=n[s-1],r=n[s+1],l=o[o.length-1];switch(t.type){case"LEFT_BRACE":case"LEFT_BRACKET":case"LEFT_PAREN":o.push(t.type);break;case"RIGHT_BRACE":case"RIGHT_BRACKET":case"RIGHT_PAREN":o.pop()}let a="SYMBOL"===t.type&&!Ye.includes(t.value);if(a&&i&&("LEFT_BRACE"===l&&en(i)&&nn(r)&&(n.splice(s+1,0,{type:"COLON",value:":"},{...t}),r=n[s+1]),"OPERATOR"===i.type&&"."===i.value?a=!1:"LEFT_BRACE"!==i.type&&"COMMA"!==i.type||r&&"COLON"===r.type&&(a=!1)),"TEMPLATE_STRING"===t.type&&(t.value=t.replace(t=>rn(t))),r&&"OPERATOR"===r.type&&"=>"===r.value)if("RIGHT_PAREN"===t.type){let t=s-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}']`)),s++}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 on=new Map([["in "," in "]]);function rn(t){return sn(t).map(t=>on.get(t.value)||t.value).join("")}const ln=/\{\{.*?\}\}|\#\{.*?\}/g;function an(t){return function(t,e){let n=t.match(ln);if(n&&n[0].length===t.length)return`(${e(t.slice(2,"{"===n[0][0]?-2:-1))})`;let s=t.replace(ln,t=>"${"+e(t.slice(2,"{"===t[0]?-2:-1))+"}");return"`"+s+"`"}(t,rn)}const cn=/\s+/g,hn=document.implementation.createDocument(null,null,null),un=new Set(["stop","capture","prevent","self","synthetic"]);let dn={};function fn(t=""){return dn[t]=(dn[t]||0)+1,t+dn[t]}function pn(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 mn(t){return`\`${t.replace(/\\/g,"\\\\").replace(/`/g,"\\`").replace(/\$\{/,"\\${")}\``}class gn{constructor(t,e){this.dynamicTagName=null,this.isRoot=!1,this.hasDynamicChildren=!1,this.children=[],this.data=[],this.childNumber=0,this.parentVar="",this.id=gn.nextBlockId++,this.varName="b"+this.id,this.blockName="block"+this.id,this.target=t,this.type=e}insertData(t,e="d"){const n=fn(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=hn.createElement("t");return t.appendChild(this.dom),t.innerHTML}}function vn(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)}gn.nextBlockId=1;class bn{constructor(t,e){this.indentLevel=0,this.loopLevel=0,this.code=[],this.hasRoot=!1,this.hasCache=!1,this.shouldProtectScope=!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.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 yn=["alt","aria-label","aria-placeholder","aria-roledescription","aria-valuetext","label","placeholder","title"],wn=/^(\s*)([\s\S]+?)(\s*)$/;class xn{constructor(t,e){if(this.blocks=[],this.nextBlockId=1,this.isDebug=!1,this.targets=[],this.target=new bn("template"),this.translatableAttributes=yn,this.staticDefs=[],this.slotNames=new Set,this.helpers=new Set,this.translateFn=e.translateFn||(t=>t),e.translatableAttributes){const t=new Set(yn);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=11===t.type,gn.nextBlockId=1,dn={},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=mn(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,s){const o=fn(t),i=this.target,r=new bn(o,s);return this.targets.push(r),this.target=r,this.compileAST(e,vn(n)),this.target=i,o}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}`,s=hn.createElement(n);t.insert(s)}createBlock(t,e,n){const s=this.target.hasRoot,o=new gn(this.target,e);return s||(this.target.hasRoot=!0,o.isRoot=!0),t&&(t.children.push(o),"list"===t.type&&(o.parentVar=`c_block${t.id}`)),o}insertBlock(t,e,n){let s=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(${s}, ${t});`)}n.tKeyExpr&&(s=`toggler(${n.tKeyExpr}, ${s})`),e.isRoot?(this.target.on&&(s=this.wrapWithEventCatcher(s,this.target.on)),this.addLine(`return ${s};`)):this.define(e.varName,s)}captureExpression(t,e=!1){if(!e&&!t.includes("=>"))return rn(t);const n=sn(t),s=new Map;return n.map(t=>{if(t.varName&&!t.isLocal){if(!s.has(t.varName)){const e=fn("v");s.set(t.varName,e),this.define(e,t.value)}t.value=s.get(t.varName)}return t.value}).join("")}translate(t,e){const n=wn.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 7:return this.compileTOut(t,e);case 4:return this.compileTIf(t,e);case 8:return this.compileTForeach(t,e);case 9:return this.compileTKey(t,e);case 3:return this.compileMulti(t,e);case 6:return this.compileTCall(t,e);case 14:return this.compileTCallBlock(t,e);case 5:return this.compileTSet(t,e);case 10:return this.compileComponent(t,e);case 11:return this.compileDebug(t,e);case 12:return this.compileLog(t,e);case 13:return this.compileTCallSlot(t,e);case 15:return this.compileTTranslation(t,e);case 16:return this.compileTTranslationContext(t,e);case 17: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(${rn(t.expr)});`),t.content?this.compileAST(t.content,e):null}compileComment(t,e){let{block:n,forceNewBlock:s}=e;if(!n||s)n=this.createBlock(n,"comment",e),this.insertBlock(`comment(${mn(t.value)})`,n,{...e,forceNewBlock:s&&!n});else{const e=hn.createComment(t.value);n.insert(e)}return n.varName}compileText(t,e){let{block:n,forceNewBlock:s}=e,o=t.value;if(o&&!1!==e.translate&&(o=this.translate(o,e.translationCtx)),e.inPreTag||(o=o.replace(cn," ")),!n||s)n=this.createBlock(n,"text",e),this.insertBlock(`text(${mn(o)})`,n,{...e,forceNewBlock:s&&!n});else{const e=0===t.type?hn.createTextNode:hn.createComment;n.insert(e.call(hn,o))}return n.varName}generateHandlerCode(t,e){const n=t.split(".").slice(1).map(t=>{if(!un.has(t))throw new r(`Unknown event modifier: '${t}'`);return`"${t}"`});let s="";return n.length&&(s=`${n.join(",")}, `),`[${s}${this.captureExpression(e)}, ctx]`}compileTDomNode(t,e){var n;let{block:s,forceNewBlock:o}=e;const i=!s||o||null!==t.dynamicTag||t.ns;let r=this.target.code.length;if(i&&((t.dynamicTag||e.tKeyExpr||t.ns)&&e.block&&this.insertAnchor(e.block),s=this.createBlock(s,"block",e),this.blocks.push(s),t.dynamicTag)){const e=fn("tag");this.define(e,rn(t.dynamicTag)),s.dynamicTagName=e}const l={};for(let o in t.attrs){let i,r;if(o.startsWith("t-attf")){i=an(t.attrs[o]);const e=s.insertData(i,"attr");r=o.slice(7),l["block-attribute-"+e]=r}else if(o.startsWith("t-att"))if(r="t-att"===o?null:o.slice(6),i=rn(t.attrs[o]),r&&pn(t.tag,r)){"readonly"===r&&(r="readOnly"),i="value"===r?`new String((${i}) === 0 ? 0 : ((${i}) || ""))`:`new Boolean(${i})`;l[`block-property-${s.insertData(i,"prop")}`]=r}else{const t=s.insertData(i,"attr");"t-att"===o?l["block-attributes"]=String(t):l[`block-attribute-${t}`]=r}else if(this.translatableAttributes.includes(o)){const s=(null===(n=t.attrsTranslationCtx)||void 0===n?void 0:n[o])||e.translationCtx;l[o]=this.translateFn(t.attrs[o],s)}else i=`"${t.attrs[o]}"`,r=o,l[o]=t.attrs[o];if("value"===r&&e.tModelSelectedExpr){l[`block-attribute-${s.insertData(`${e.tModelSelectedExpr} === ${i}`,"attr")}`]="selected"}}let a;if(t.model){const{hasDynamicChildren:e,expr:n,eventType:o,shouldNumberize:i,shouldTrim:r,targetAttr:c,specialInitTargetAttr:h}=t.model,u=rn(n),d=fn("expr");let f;if(this.helpers.add("modelExpr"),this.define(d,`modelExpr(${u})`),h){let e=c in l&&`'${l[c]}'`;if(!e&&t.attrs){const n=t.attrs[`t-att-${c}`];n&&(e=rn(n))}f=s.insertData(`${d}() === ${e}`,"prop"),l[`block-property-${f}`]=h}else if(e){a=`${fn("bValue")}`,this.define(a,`${d}()`)}else f=s.insertData(`${d}()`,"prop"),l[`block-property-${f}`]=c;this.helpers.add("toNumber");let p=`ev.target.${c}`;p=r?`${p}.trim()`:p,p=i?`toNumber(${p})`:p;const m=`[(ev) => { ${d}.set(${p}); }]`;f=s.insertData(m,"hdlr"),l[`block-handler-${f}`]=o}for(let e in t.on){const n=this.generateHandlerCode(e,t.on[e]);l[`block-handler-${s.insertData(n,"hdlr")}`]=e}if(t.ref){const e=rn(t.ref);this.helpers.add("createRef");const n=`createRef(${e})`,o=s.insertData(n,"ref");l["block-ref"]=String(o)}const c=t.ns||e.nameSpace,h=c?hn.createElementNS(c,t.tag):hn.createElement(t.tag);for(const[t,e]of Object.entries(l))"class"===t&&""===e||h.setAttribute(t,e);if(s.insert(h),t.content.length){const n=s.currentDom;s.currentDom=h;const o=t.content;for(let n=0;n<o.length;n++){const i=t.content[n],r=vn(e,{block:s,index:s.childNumber,forceNewBlock:!1,isLast:e.isLast&&n===o.length-1,tKeyExpr:e.tKeyExpr,nameSpace:c,tModelSelectedExpr:a,inPreTag:e.inPreTag||"pre"===t.tag});this.compileAST(i,r)}s.currentDom=n}if(i&&(this.insertBlock(`${s.blockName}(ddd)`,s,e),s.children.length&&s.hasDynamicChildren)){const t=this.target.code,e=s.children.slice();let n=e.shift();for(let s=r;s<t.length&&(!t[s].trimStart().startsWith(`const ${n.varName} `)||(t[s]=t[s].replace(`const ${n.varName}`,n.varName),n=e.shift(),n));s++);this.addLine(`let ${s.children.map(t=>t.varName).join(", ")};`,r)}return s.varName}compileTOut(t,e){let n,{block:s}=e;if(s&&this.insertAnchor(s),s=this.createBlock(s,"html",e),"0"===t.expr)this.helpers.add("zero"),n="ctx[zero]";else if(t.body){let s=null;s=gn.nextBlockId;const o=vn(e);this.compileAST({type:3,content:t.body},o),this.helpers.add("safeOutput"),n=`safeOutput(${rn(t.expr)}, b${s})`}else this.helpers.add("safeOutput"),n=`safeOutput(${rn(t.expr)})`;return this.insertBlock(n,s,e),s.varName}compileTIfBranch(t,e,n){this.target.indentLevel++;let s=e.children.length;this.compileAST(t,vn(n,{block:e,index:n.index})),e.children.length>s&&this.insertAnchor(e,s),this.target.indentLevel--}compileTIf(t,e,n){let{block:s,forceNewBlock:o}=e;const i=this.target.code.length,r=!s||"multi"!==s.type&&o;if(s&&(s.hasDynamicChildren=!0),(!s||"multi"!==s.type&&o)&&(s=this.createBlock(s,"multi",e)),this.addLine(`if (${rn(t.condition)}) {`),this.compileTIfBranch(t.content,s,e),t.tElif)for(let n of t.tElif)this.addLine(`} else if (${rn(n.condition)}) {`),this.compileTIfBranch(n.content,s,e);if(t.tElse&&(this.addLine("} else {"),this.compileTIfBranch(t.tElse,s,e)),this.addLine("}"),r){if(s.children.length){const t=this.target.code,e=s.children.slice();let n=e.shift();for(let s=i;s<t.length&&(!t[s].trimStart().startsWith(`const ${n.varName} `)||(t[s]=t[s].replace(`const ${n.varName}`,n.varName),n=e.shift(),n));s++);this.addLine(`let ${s.children.map(t=>t.varName).join(", ")};`,i)}const t=s.children.map(t=>t.varName).join(", ");this.insertBlock(`multi([${t}])`,s,e)}return s.varName}compileTForeach(t,e){let{block:n}=e;n&&this.insertAnchor(n),n=this.createBlock(n,"list",e),this.target.loopLevel++;const s=`i${this.target.loopLevel}`;this.addLine("ctx = Object.create(ctx);");const o=`v_block${n.id}`,i=`k_block${n.id}`,r=`l_block${n.id}`,l=`c_block${n.id}`;let a;this.helpers.add("prepareList"),this.define(`[${i}, ${o}, ${r}, ${l}]`,`prepareList(${rn(t.collection)});`),this.dev&&this.define(`keys${n.id}`,"new Set()"),this.addLine(`for (let ${s} = 0; ${s} < ${r}; ${s}++) {`),this.target.indentLevel++,this.addLine(`ctx[\`${t.elem}\`] = ${i}[${s}];`),t.hasNoFirst||this.addLine(`ctx[\`${t.elem}_first\`] = ${s} === 0;`),t.hasNoLast||this.addLine(`ctx[\`${t.elem}_last\`] = ${s} === ${i}.length - 1;`),t.hasNoIndex||this.addLine(`ctx[\`${t.elem}_index\`] = ${s};`),t.hasNoValue||this.addLine(`ctx[\`${t.elem}_value\`] = ${o}[${s}];`),this.define(`key${this.target.loopLevel}`,t.key?rn(t.key):s),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=fn(),this.define(`memo${a}`,rn(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}[${s}] = 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=vn(e,{block:n,index:s});return this.compileAST(t.body,c),t.memo&&this.addLine(`nextCache[key${this.target.loopLevel}] = Object.assign(${l}[${s}], {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=fn("tKey_");return this.define(n,rn(t.expr)),e=vn(e,{tKeyExpr:n,block:e.block,index:e.index}),this.compileAST(t.content,e)}compileMulti(t,e){let{block:n,forceNewBlock:s}=e;const o=!n||s;let i=this.target.code.length;if(o){let s=null;if(t.content.filter(t=>!t.hasNoRepresentation).length<=1){for(let n of t.content){const t=this.compileAST(n,e);s=s||t}return s}n=this.createBlock(n,"multi",e)}let r=0;for(let s=0,o=t.content.length;s<o;s++){const i=t.content[s],l=!i.hasNoRepresentation,a=vn(e,{block:n,index:r,forceNewBlock:l,isLast:e.isLast&&s===o-1});this.compileAST(i,a),l&&r++}if(o){if(n.hasDynamicChildren&&n.children.length){const t=this.target.code,e=n.children.slice();let s=e.shift();for(let n=i;n<t.length&&(!t[n].trimStart().startsWith(`const ${s.varName} `)||(t[n]=t[n].replace(`const ${s.varName}`,s.varName),s=e.shift(),s));n++);this.addLine(`let ${n.children.map(t=>t.varName).join(", ")};`,i)}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:s}=e,o=e.ctxVar||"ctx";t.context&&(o=fn("ctx"),this.addLine(`let ${o} = {this: ${rn(t.context)}, __owl__: this.__owl__};`));const i=ln.test(t.name),r=i?an(t.name):"`"+t.name+"`";if(n&&!s&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),t.body){this.addLine(`${o} = Object.create(${o});`),this.addLine(`${o}[isBoundary] = 1;`),this.helpers.add("isBoundary");const n=vn(e,{ctxVar:o}),s=this.compileMulti({type:3,content:t.body},n);s&&(this.helpers.add("zero"),this.addLine(`${o}[zero] = ${s};`))}const l=this.generateComponentKey();if(i){const t=fn("template");this.staticDefs.find(t=>"call"===t.id)||this.staticDefs.push({id:"call",expr:"app.callTemplate.bind(app)"}),this.define(t,r),this.insertBlock(`call(this, ${t}, ${o}, node, ${l})`,n,{...e,forceNewBlock:!n})}else{const t=fn("callTemplate_");this.staticDefs.push({id:t,expr:`app.getTemplate(${r})`}),this.insertBlock(`${t}.call(this, ${o}, node, ${l})`,n,{...e,forceNewBlock:!n})}return t.body&&!e.isLast&&this.addLine(`${o} = ${o}.__proto__;`),n.varName}compileTCallBlock(t,e){let{block:n,forceNewBlock:s}=e;return n&&(s||this.insertAnchor(n)),n=this.createBlock(n,"multi",e),this.insertBlock(rn(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?rn(t.value||""):"null";if(t.body){this.helpers.add("LazyValue");const s={type:3,content:t.body};let o=`new LazyValue(${this.compileInNewTarget("value",s,e)}, ctx, this, node, ${this.target.currentKey(e)})`;o=t.value?o?`withDefault(${n}, ${o})`:n:o,this.addLine(`ctx[\`${t.name}\`] = ${o};`)}else{let s;if(t.defaultValue){const o=mn(e.translate?this.translate(t.defaultValue,e.translationCtx):t.defaultValue);s=t.value?`withDefault(${n}, ${o})`:o}else s=n;this.helpers.add("setContextValue"),this.addLine(`setContextValue(${e.ctxVar||"ctx"}, "${t.name}", ${s});`)}return null}generateComponentKey(t="key"){const e=[fn("__")];for(let t=0;t<this.target.loopLevel;t++)e.push(`\${key${t+1}}`);return`${t} + \`${e.join("__")}\``}formatProp(t,e,n,s){if(t.endsWith(".translate")){const o=(null==n?void 0:n[t])||s;e=mn(this.translateFn(e,o))}else e=this.captureExpression(e);if(t.includes(".")){let[n,s]=t.split(".");switch(t=n,s){case"bind":e=`(${e}).bind(this)`;break;case"alike":case"translate":break;default:throw new r(`Invalid prop suffix: ${s}`)}}return`${t=/^[a-z_]+$/i.test(t)?t:`'${t}'`}: ${e||void 0}`}formatPropObject(t,e,n){return Object.entries(t).map(([t,s])=>this.formatProp(t,s,e,n))}getPropString(t,e){let n=`{${t.join(",")}}`;return e&&(n=`Object.assign({}, ${rn(e)}${t.length?", "+n:""})`),n}compileComponent(t,e){let{block:n}=e;const s="slots"in(t.props||{}),o=t.props?this.formatPropObject(t.props,t.propsTranslationCtx,e.translationCtx):[];let i="";if(t.slots){let n="ctx";!this.target.loopLevel&&this.hasSafeContext||(n=fn("ctx"),this.helpers.add("capture"),this.define(n,"capture(ctx)"));let s=[];for(let o in t.slots){const i=t.slots[o],r=[];if(i.content){const t=this.compileInNewTarget("slot",i.content,e,i.on);r.push(`__render: ${t}.bind(this), __ctx: ${n}`)}const l=t.slots[o].scope;l&&r.push(`__scope: "${l}"`),t.slots[o].attrs&&r.push(...this.formatPropObject(t.slots[o].attrs,t.slots[o].attrsTranslationCtx,e.translationCtx));const a=`{${r.join(", ")}}`;s.push(`'${o}': ${a}`)}i=`{${s.join(", ")}}`}!i||t.dynamicProps||s||(this.helpers.add("markRaw"),o.push(`slots: markRaw(${i})`));let r,l,a=this.getPropString(o,t.dynamicProps);(i&&(t.dynamicProps||s)||this.dev)&&(r=fn("props"),this.define(r,a),a=r),i&&(t.dynamicProps||s)&&(this.helpers.add("markRaw"),this.addLine(`${r}.slots = markRaw(Object.assign(${i}, ${r}.slots))`)),t.isDynamic?(l=fn("Comp"),this.define(l,rn(t.name))):l=`\`${t.name}\``,n&&(!1===e.forceNewBlock||e.tKeyExpr)&&this.insertAnchor(n);let c=this.generateComponentKey();e.tKeyExpr&&(c=`${e.tKeyExpr} + ${c}`);let h=fn("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=fn("catcher"),s={},o=[];for(let t in e){let n=fn("hdlr"),i=o.push(n)-1;s[t]=i;const r=this.generateHandlerCode(t,e[t]);this.define(n,r)}return this.staticDefs.push({id:n,expr:`createCatcher(${JSON.stringify(s)})`}),`${n}(${t}, [${o.join(",")}])`}compileTCallSlot(t,e){this.helpers.add("callSlot");let n,s,{block:o}=e,i=!1,r=!1;t.name.match(ln)?(i=!0,r=!0,s=an(t.name)):(s="'"+t.name+"'",r=r||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";r&&(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}, ${s}, ${i}, ${u}, ${this.compileInNewTarget("defaultContent",t.defaultContent,e)}.bind(this))`}else if(i){let t=fn("slot");this.define(t,s),n=`toggler(${t}, callSlot(ctx, node, ${c}, ${t}, ${i}, ${u}))`}else n=`callSlot(ctx, node, ${c}, ${s}, ${i}, ${u})`;return t.on&&(n=this.wrapWithEventCatcher(n,t.on)),o&&this.insertAnchor(o),o=this.createBlock(o,"multi",e),this.insertBlock(n,o,{...e,forceNewBlock:!1}),o.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 s=this.compileInNewTarget("slot",t.content,e);let o="ctx";!this.target.loopLevel&&this.hasSafeContext||(o=fn("ctx"),this.helpers.add("capture"),this.define(o,"capture(ctx)"));let i=fn("comp");this.staticDefs.push({id:i,expr:"app.createComponent(null, false, true, false, false)"});const r=`${i}({target: ${rn(t.target)},slots: {'default': {__render: ${s}.bind(this), __ctx: ${o}}}}, ${this.generateComponentKey()}, node, ctx, Portal)`;return n&&this.insertAnchor(n),n=this.createBlock(n,"multi",e),this.insertBlock(r,n,{...e,forceNewBlock:!1}),n.varName}}const Nn=new WeakMap;function $n(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],s=n.previousElementSibling,o=t=>s.getAttribute(t),i=t=>+!!n.getAttribute(t);if(!s||!o("t-if")&&!o("t-elif"))throw new r("t-elif and t-else directives must be preceded by a t-if or t-elif directive");{if(o("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)!==s;){if(t.nodeValue.trim().length&&8!==t.nodeType)throw new r("text is not allowed between branching directives");t.remove()}}}}(n=t),function(t){const e=[...t.querySelectorAll("[t-out]")].filter(t=>t.tagName[0]===t.tagName[0].toUpperCase()||t.hasAttribute("t-component"));for(const t of e){if(t.childNodes.length)throw new r("Cannot have t-out on a component that already has content");const e=t.getAttribute("t-out");t.removeAttribute("t-out");const n=t.ownerDocument.createElement("t");null!=e&&n.setAttribute("t-out",e),t.appendChild(n)}}(n),kn(t,e)||{type:0,value:""}}function kn(t,e){return t instanceof Element?function(t,e){if(!e.customDirectives)return null;const n=t.getAttributeNames();for(let s of n){if("t-custom"===s||"t-custom-"===s)throw new r("Missing custom directive name with t-custom directive");if(s.startsWith("t-custom-")){const n=s.split(".")[0].slice(9),o=e.customDirectives[n];if(!o)throw new r(`Custom directive "${n}" is not defined`);const i=t.getAttribute(s),l=s.split(".").slice(1);t.removeAttribute(s);try{o(t,i,l)}catch(t){throw new r(`Custom directive "${n}" throw the following error: ${t}`)}return kn(t,e)}}return null}(t,e)||function(t,e){if(t.hasAttribute("t-debug")){t.removeAttribute("t-debug");const n=kn(t,e),s={type:11,content:n};return(null==n?void 0:n.hasNoRepresentation)&&(s.hasNoRepresentation=!0),s}if(t.hasAttribute("t-log")){const n=t.getAttribute("t-log");t.removeAttribute("t-log");const s=kn(t,e),o={type:12,expr:n,content:s};return(null==s?void 0:s.hasNoRepresentation)&&(o.hasNoRepresentation=!0),o}return null}(t,e)||function(t,e){if(!t.hasAttribute("t-foreach"))return null;const n=t.outerHTML,s=t.getAttribute("t-foreach");t.removeAttribute("t-foreach");const o=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="${s}" t-as="${o}")`);t.removeAttribute("t-key");const l=t.getAttribute("t-memo")||"";t.removeAttribute("t-memo");const a=kn(t,e);if(!a)return null;const c=!n.includes("t-call"),h=c&&!n.includes(`${o}_first`),u=c&&!n.includes(`${o}_last`),d=c&&!n.includes(`${o}_index`),f=c&&!n.includes(`${o}_value`);return{type:8,collection:s,elem:o,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 s=kn(t,e)||{type:0,value:""};let o=t.nextElementSibling;const i=[];for(;o&&o.hasAttribute("t-elif");){const t=o.getAttribute("t-elif");o.removeAttribute("t-elif");const n=kn(o,e),s=o.nextElementSibling;o.remove(),o=s,n&&i.push({condition:t,content:n})}let r=null;o&&o.hasAttribute("t-else")&&(o.removeAttribute("t-else"),r=kn(o,e),o.remove());return{type:4,condition:n,content:s,tElif:i.length?i:null,tElse:r}}(t,e)||function(t,e){if(!t.hasAttribute("t-portal"))return null;const n=t.getAttribute("t-portal");t.removeAttribute("t-portal");const s=kn(t,e);if(!s)return{type:0,value:""};return{type:17,target:n,content:s}}(t,e)||function(t,e){if(!t.hasAttribute("t-call"))return null;const n=t.getAttribute("t-call"),s=t.getAttribute("t-call-context");if(t.removeAttribute("t-call"),t.removeAttribute("t-call-context"),"t"!==t.tagName){const o=kn(t,e),i={type:6,name:n,body:null,context:s};if(o&&2===o.type)return o.content=[i],o;if(o&&10===o.type)return{...o,slots:{default:{content:i,scope:null,on:null,attrs:null,attrsTranslationCtx:null}}}}const o=Dn(t,e);return{type:6,name:n,body:o.length?o:null,context:s}}(t,e)||function(t){if(!t.hasAttribute("t-call-block"))return null;const e=t.getAttribute("t-call-block");return{type:14,name:e}}(t)||function(t,e){if("off"!==t.getAttribute("t-translation"))return null;t.removeAttribute("t-translation");const n=kn(t,e);if(3===(null==n?void 0:n.type)){return Sn(n.content.map(_n))}return _n(n)}(t,e)||function(t,e){const n=t.getAttribute("t-translation-context");if(!n)return null;t.removeAttribute("t-translation-context");const s=kn(t,e);if(3===(null==s?void 0:s.type)){return Sn(s.content.map(t=>Cn(t,n)))}return Cn(s,n)}(t,e)||function(t,e){if(!t.hasAttribute("t-key"))return null;const n=t.getAttribute("t-key");t.removeAttribute("t-key");const s=kn(t,e);if(!s)return null;const o={type:9,expr:n,content:s};s.hasNoRepresentation&&(o.hasNoRepresentation=!0);return o}(t,e)||function(t,e){if(!t.hasAttribute("t-out")&&!t.hasAttribute("t-esc"))return null;t.hasAttribute("t-esc")&&console.warn('t-esc 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-esc");t.removeAttribute("t-out"),t.removeAttribute("t-esc");const s={type:7,expr:n,body:null},o=t.getAttribute("t-ref");t.removeAttribute("t-ref");const i=kn(t,e);if(!i)return s;if(2===i.type)return s.body=i.content.length?i.content:null,{...i,ref:o,content:[s]};return s}(t,e)||function(t,e){if(!t.hasAttribute("t-call-slot")||!t.hasAttribute("t-slot"))return null;t.hasAttribute("t-slot")&&console.warn("t-slot has been renamed t-call-slot.");const n=t.getAttribute("t-call-slot");t.removeAttribute("t-call-slot");let s=null,o=null,i=null;for(let e of t.getAttributeNames()){const n=t.getAttribute(e);if(e.startsWith("t-on-"))i=i||{},i[e.slice(5)]=n;else if(e.startsWith("t-translation-context-")){o=o||{},o[e.slice(22)]=n}else s=s||{},s[e]=n}return{type:13,name:n,attrs:s,attrsTranslationCtx:o,on:i,defaultContent:On(t,e)}}(t,e)||function(t,e){let n=t.tagName;const s=n[0];let o=t.hasAttribute("t-component");if(o&&"t"!==n)throw new r(`Directive 't-component' can only be used on <t> nodes (used on a <${n}>)`);if(s!==s.toUpperCase()&&!o)return null;o&&(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=An.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),s=Array.from(n.querySelectorAll("[t-set-slot]"));for(let t of s){if("t"!==t.tagName)throw new r(`Directive 't-set-slot' can only be used on <t> nodes (used on a <${t.tagName}>)`);const s=t.getAttribute("t-set-slot");let o=t.parentElement,i=!1;for(;o&&o!==n;){if(o.hasAttribute("t-component")||o.tagName[0]===o.tagName[0].toUpperCase()){i=!0;break}o=o.parentElement}if(i||!o)continue;t.removeAttribute("t-set-slot"),t.remove();const l=kn(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[s]={content:l,on:a,attrs:c,attrsTranslationCtx:h,scope:d}}const o=On(n,e);u=u||{},o&&!u.default&&(u.default={content:o,on:a,attrs:null,attrsTranslationCtx:null,scope:l})}return{type:10,name:n,isDynamic:o,dynamicProps:i,props:c,propsTranslationCtx:h,slots:u,on:a}}(t,e)||function(t,e){const{tagName:n}=t,s=t.getAttribute("t-tag");if(t.removeAttribute("t-tag"),"t"===n&&!s)return null;if(n.startsWith("block-"))throw new r(`Invalid tag name: '${n}'`);e=Object.assign({},e),"pre"===n&&(e.inPreTag=!0);let o=!e.nameSpace&&Tn.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 s of l){const i=t.getAttribute(s);if("t-on"===s||"t-on-"===s)throw new r("Missing event name with t-on directive");if(s.startsWith("t-on-"))h=h||{},h[s.slice(5)]=i;else if(s.startsWith("t-model")){if(!["input","select","textarea"].includes(n))throw new r("The t-model directive only works with <input>, <textarea> and <select>");const o=t.getAttribute("type"),l="input"===n,a="select"===n,c=l&&"checkbox"===o,h=l&&"radio"===o,d=s.includes(".trim"),f=d||s.includes(".lazy");u={expr:i,targetAttr:c?"checked":"value",specialInitTargetAttr:h?"checked":null,eventType:h?"click":a||f?"change":"input",hasDynamicChildren:!1,shouldTrim:d,shouldNumberize:s.includes(".number")},a&&((e=Object.assign({},e)).tModelInfo=u)}else{if(s.startsWith("block-"))throw new r(`Invalid attribute: '${s}'`);if("xmlns"===s)o=i;else if(s.startsWith("t-translation-context-")){c=c||{},c[s.slice(22)]=i}else if("t-name"!==s){if(s.startsWith("t-")&&!s.startsWith("t-att"))throw new r(`Unknown QWeb directive: '${s}'`);const t=e.tModelInfo;t&&["t-att-value","t-attf-value"].includes(s)&&(t.hasDynamicChildren=!0),a=a||{},a[s]=i}}}o&&(e.nameSpace=o);const d=Dn(t,e);return{type:2,tag:n,dynamicTag:s,attrs:a,attrsTranslationCtx:c,on:h,ref:i,content:d,model:u,ns:o}}(t,e)||function(t,e){if(!t.hasAttribute("t-set"))return null;const n=t.getAttribute("t-set"),s=t.getAttribute("t-value")||null,o=t.innerHTML===t.textContent&&t.textContent||null;let i=null;t.textContent!==t.innerHTML&&(i=Dn(t,e));return{type:5,name:n,value:s,defaultValue:o,body:i,hasNoRepresentation:!0}}(t,e)||function(t,e){if("t"!==t.tagName)return null;return On(t,e)}(t,e):function(t,e){if(t.nodeType===Node.TEXT_NODE){let n=t.textContent||"";return e.inPreTag||!En.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 En=/[\r\n]/;const Tn=new Set(["svg","g","path"]);const An=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 _n(t){const e={type:15,content:t};return(null==t?void 0:t.hasNoRepresentation)&&(e.hasNoRepresentation=!0),e}function Cn(t,e){const n={type:16,content:t,translationCtx:e};return(null==t?void 0:t.hasNoRepresentation)&&(n.hasNoRepresentation=!0),n}function Dn(t,e){const n=[];for(let s of t.childNodes){const t=kn(s,e);t&&(3===t.type?n.push(...t.content):n.push(t))}return n}function Sn(t){const e={type:3,content:t};return t.every(t=>t.hasNoRepresentation)&&(e.hasNoRepresentation=!0),e}function On(t,e){const n=Dn(t,e);switch(n.length){case 0:return null;case 1:return n[0];default:return Sn(n)}}function Rn(t,e={hasGlobalValues:!1}){const n=function(t,e){const n={inPreTag:!1,customDirectives:e};if("string"==typeof t)return $n(He(`<t>${t}</t>`).firstChild,n);let s=Nn.get(t);return s||(s=$n(t.cloneNode(!0),n),Nn.set(t,s)),s}(t,e.customDirectives),s=t instanceof Node?!(t instanceof Element)||null===t.querySelector("[t-set], [t-call]"):!t.includes("t-set=")&&!t.includes("t-call="),o=new xn(n,{...e,hasSafeContext:s}).generateCode();try{return new Function("app, bdom, helpers",o)}catch(t){const{name:n}=e,s=new r(`Failed to compile ${n?`template "${n}"`:"anonymous template"}: ${t.message}\n\ngenerated code:\nfunction(app, bdom, helpers) {\n${o}\n}`);throw s.cause=t,s}}class Ln{constructor(){this.tasks=new Set,this.frame=0,this.delayedRenders=[],this.cancelledNodes=new Set,this.processing=!1,this.requestAnimationFrame=Ln.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=Vt.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)}}Ln.requestAnimationFrame=window.requestAnimationFrame.bind(window);let Bn=!1;const In=new Set;window.__OWL_DEVTOOLS__||(window.__OWL_DEVTOOLS__={apps:In,Fiber:Gt,RootFiber:qt,toRaw:Ee,proxy:Oe});class Pn extends Ge{constructor(t={}){super(t),this.scheduler=new Ln,this.roots=new Set,this.name=t.name||"",In.add(this),this.pluginManager=t.pluginManager||new ie(null),t.plugins&&this.pluginManager.startPlugins(t.plugins),t.test&&(this.dev=!0),!this.dev||t.test||Bn||(console.info("Owl is running in 'dev' mode."),Bn=!0)}createRoot(t,e={}){const n=e.props||{};let s,o;const i=new Promise((t,e)=>{s=t,o=e}),r=function(){let t=Yt;return()=>{Yt=t}}();let l,a=null;try{l=this.makeNode(t,n)}catch(t){a=t,o(t)}finally{r()}const c={node:l,promise:i,mount:(t,e)=>(a||(Pn.validateTarget(t),this.mountNode(l,t,s,o,e)),i),destroy:()=>{this.roots.delete(c),l.destroy(),this.scheduler.processTasks()}};return this.roots.add(c),c}makeNode(t,e){return new Zt(t,e,this,null,null)}mountNode(t,e,n,s,o){let i=Wt.get(t);i||(i=[],Wt.set(t,i)),i.unshift((t,e)=>{const n=e();s(n)}),t.mounted.push(()=>{n(t.component),i.shift()}),t.mountComponent(e,o)}destroy(){for(let t of this.roots)t.destroy();this.scheduler.processTasks(),In.delete(this)}createComponent(t,e,n,s,o){const i=!e;let l;const a=0===o.length;l=n?(t,e)=>!0:s?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 o)if(t[n]!==e[n])return!0;return!1};const c=Zt.prototype.updateAndRender,h=Zt.prototype.initiateRender;return(n,s,o,a,u)=>{let d=o.children,f=d[s];i&&f&&f.component.constructor!==u&&(f=void 0);const p=o.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 Qt))throw new r(`"${t}" is not a Component. It must inherit from the Component class`)}f=new Zt(u,n,this,o,s),d[s]=f,h.call(f,new Gt(f,p))}return p.childrenMap[s]=f,f}}handleError(...t){return Ut(...t)}}Pn.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 s=e.defaultView.ShadowRoot;for(;n;){if(n===e)return!0;if(n.parentNode)n=n.parentNode;else{if(!(n instanceof s&&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")},Pn.apps=In,Pn.version="3.0.0-alpha";function Mn(t,e){let n;return()=>(null!=n||(n={state:At.STALE,sources:new Set,compute:()=>(St(n),t()),isDerived:!0,value:void 0,observers:new Set,name:null==e?void 0:e.name}),Pt(n),Dt(n),n.value)}const jn=Symbol("Signal");function Vn(t,e,n){const s={value:t,observers:new Set,name:null==n?void 0:n.name};let o=e(s);const i=()=>(Dt(s),o);return i[jn]=s,i.set=t=>{Object.is(s.value,t)||(s.value=t,o=e(s),St(s))},i}function Wn(t,e){return Vn(t,t=>t.value,e)}Wn.invalidate=function(t){if(!(jn in t))throw new r(`Value is not a signal (${t})`);St(t[jn])},Wn.Array=function(t,e){return Vn(t,t=>Se(t.value,t),e)},Wn.Object=function(t,e){return Vn(t,t=>Se(t.value,t),e)},Wn.Map=function(t,e){return Vn(t,t=>Se(t.value,t),e)},Wn.Set=function(t,e){return Vn(t,t=>Se(t.value,t),e)};function Fn(t,e){var n,s,o;const i={state:At.STALE,value:void 0,compute:()=>(Bt(void 0),Kn(i),Bt(i),t()),sources:new Set,childrenEffect:[],name:null==e?void 0:e.name};return null===(o=null===(s=null===(n=Lt())||void 0===n?void 0:n.childrenEffect)||void 0===s?void 0:s.push)||void 0===o||o.call(s,i),Pt(i),()=>{const t=Lt();Bt(void 0),Kn(i),Bt(t)}}function Kn(t){Mt(t),function(t){const e=t.value;e&&"function"==typeof e&&(e(),t.value=void 0)}(t);for(const e of t.childrenEffect)e.state=At.EXECUTED,Mt(e),Kn(e);t.childrenEffect.length=0}function Un(t){he(Fn(t))}n.shouldNormalizeDom=!1,n.mainEventHandler=(t,n,s)=>{const{data:o,modifiers:i}=e(t);t=o;let l=!1;if(i.length){let t=!1;const e=n.target===s;for(const s of i)switch(s){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 s=t[1]?t[1].__owl__:null;s&&1!==s.status||e.call(s?s.component:null,n)}return l};const Hn={config:n,mount:Tt,patch:function(t,e,n=!1){t.patch(e,n)},remove:function(t,e=!1){e&&t.beforeRemove(),t.remove()},list:yt,multi:j,text:q,toggler:i,createBlock:rt,html:Et,comment:X},zn={version:Pn.version};Ge.prototype._compileTemplate=function(t,e){return Rn(e,{name:t,dev:this.dev,translateFn:this.translateFn,translatableAttributes:this.translatableAttributes,customDirectives:this.customDirectives,hasGlobalValues:this.hasGlobalValues})},t.App=Pn,t.Component=Qt,t.EventBus=k,t.OwlError=r,t.Plugin=class{static get id(){var t;return null!==(t=this._shadowId)&&void 0!==t?t:this.name}static set id(t){this._shadowId=t}setup(){}},t.PluginManager=ie,t.Registry=class{constructor(t={}){this._map=Wn.Object(Object.create(null)),this.entries=Mn(()=>Object.entries(this._map()).sort((t,e)=>t[1][0]-e[1][0]).map(([t,e])=>[t,e[1]])),this.items=Mn(()=>this.entries().map(t=>t[1])),this._name=t.name||"registry",this._validation=t.validation}addById(t,e=50){if(!t.id)throw new r(`Item should have an id key (registry '${this._name}')`);return this.add(t.id,t,e)}add(t,e,n=50){return this._validation&&ee(e,this._validation),this._map()[t]=[n,e],this}get(t,e){const n=t in this._map();if(!n&&arguments.length<2)throw new Error(`KeyNotFoundError: Cannot find key "${t}" (registry '${this._name}')`);return n?this._map()[t][1]:e}delete(t){delete this._map()[t]}has(t){return t in this._map()}},t.Resource=class{constructor(t={}){this._items=Wn.Array([]),this.items=Mn(()=>this._items().sort((t,e)=>t[0]-e[0]).map(t=>t[1])),this._validation=t.validation}add(t,e=50){return this._validation&&ee(t,this._validation),this._items().push([e,t]),this}delete(t){const e=this._items().filter(([e,n])=>n!==t);return this._items.set(e),this}has(t){return this._items().some(([e,n])=>n===t)}},t.__info__=zn,t.assertType=ee,t.batched=$,t.blockDom=Hn,t.computed=Mn,t.effect=Fn,t.htmlEscape=T,t.markRaw=ke,t.markup=A,t.mount=async function(t,e,n={}){return new Pn(n).createRoot(t,n).mount(e,n)},t.onError=function(t){const e=Jt();let n=Wt.get(e);n||(n=[],Wt.set(e,n)),n.push(t.bind(e.component))},t.onMounted=ae,t.onPatched=function(t){const e=Jt();e.patched.push(le(e,t,"onPatched"))},t.onWillDestroy=he,t.onWillPatch=function(t){const e=Jt();e.willPatch.unshift(le(e,t,"onWillPatch"))},t.onWillStart=function(t){const e=Jt();e.willStart.push(le(e,t,"onWillStart"))},t.onWillUnmount=ce,t.onWillUpdateProps=function(t){const e=Jt();e.willUpdateProps.push(le(e,t,"onWillUpdateProps"))},t.plugin=re,t.props=ue,t.providePlugins=function(t,e){const n=Jt(),s=new ie(n.pluginManager);return n.pluginManager=s,he(()=>s.destroy()),s.startPlugins(t,e)},t.proxy=Oe,t.signal=Wn,t.status=function(){const t=ie.current,e=t||Jt();return()=>{switch(e.status){case 0:return"new";case 2:return"cancelled";case 1:return t?"started":"mounted";case 3:return"destroyed"}}},t.toRaw=Ee,t.types=te,t.untrack=Rt,t.useComponent=function(){return Yt.component},t.useEffect=Un,t.useListener=function(t,e,n,s){"function"==typeof t?Un(()=>{const o=t();if(o)return o.addEventListener(e,n,s),()=>o.removeEventListener(e,n,s)}):(t.addEventListener(e,n,s),he(()=>t.removeEventListener(e,n,s)))},t.useResource=function(t,e){for(let n of e)t.add(n);he(()=>{for(let n of e)t.delete(n)})},t.validateType=se,t.whenReady=function(t){return new Promise(function(t){"loading"!==document.readyState?t(!0):document.addEventListener("DOMContentLoaded",t,!1)}).then(t||function(){})},t.xml=Xe,zn.date="2026-01-19T17:41:43.775Z",zn.hash="3aafa18",zn.url="https://github.com/odoo/owl"}(this.owl=this.owl||{});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare class OwlError extends Error {
|
|
2
|
-
cause?: any;
|
|
3
|
-
}
|
|
1
|
+
export declare class OwlError extends Error {
|
|
2
|
+
cause?: any;
|
|
3
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parses an XML string into an XML document, throwing errors on parser errors
|
|
3
|
-
* instead of returning an XML document containing the parseerror.
|
|
4
|
-
*
|
|
5
|
-
* @param xml the string to parse
|
|
6
|
-
* @returns an XML document corresponding to the content of the string
|
|
7
|
-
*/
|
|
8
|
-
export declare function parseXML(xml: string): XMLDocument;
|
|
1
|
+
/**
|
|
2
|
+
* Parses an XML string into an XML document, throwing errors on parser errors
|
|
3
|
+
* instead of returning an XML document containing the parseerror.
|
|
4
|
+
*
|
|
5
|
+
* @param xml the string to parse
|
|
6
|
+
* @returns an XML document corresponding to the content of the string
|
|
7
|
+
*/
|
|
8
|
+
export declare function parseXML(xml: string): XMLDocument;
|