@microsoft/fast-element 2.8.1 → 2.8.2

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.
@@ -1,3 +1,3 @@
1
- void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",{value:Object.create(null),configurable:!1,enumerable:!1,writable:!1});const e=globalThis.FAST,t={1101:"Must call ArrayObserver.enable() before observing arrays.",1201:"The DOM Policy can only be set once.",1202:"To bind innerHTML, you must use a TrustedTypesPolicy.",1203:"View=>Model update skipped. To use twoWay binding, the target property must be observable.",1204:"No host element is present. Cannot bind host with ${name}.",1205:"The requested binding behavior is not supported by the binding engine.",1206:"Calling html`` as a normal function invalidates the security guarantees provided by FAST.",1207:"The DOM Policy for an HTML template can only be set once.",1208:"The DOM Policy cannot be set after a template is compiled.",1209:"'${aspectName}' on '${tagName}' is blocked by the current DOMPolicy.",1401:"Missing FASTElement definition.",1501:"No registration for Context/Interface '${name}'.",1502:"Dependency injection resolver for '${key}' returned a null factory.",1503:"Invalid dependency injection resolver strategy specified '${strategy}'.",1504:"Unable to autoregister dependency.",1505:"Unable to resolve dependency injection key '${key}'.",1506:"'${name}' is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.",1507:"Attempted to jitRegister something that is not a constructor '${value}'. Did you forget to register this dependency?",1508:"Attempted to jitRegister an intrinsic type '${value}'. Did you forget to add @inject(Key)?",1509:"Attempted to jitRegister an interface '${value}'.",1510:"A valid resolver was not returned from the register method.",1511:"Key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?",1512:"'${key}' not registered. Did you forget to add @singleton()?",1513:"Cyclic dependency found '${name}'.",1514:"Injected properties that are updated on changes to DOM connectivity require the target object to be an instance of FASTElement."},s=/(\$\{\w+?})/g,n=/\$\{(\w+?)}/g,i=Object.freeze({});function r(e,t){return e.split(s).map((e=>{var s;const i=e.replace(n,"$1");return String(null!==(s=t[i])&&void 0!==s?s:e)})).join("")}let o;Object.assign(e,{addMessages(e){Object.assign(t,e)},warn(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Warning";console.warn(r(o,s))},error(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Error";return new Error(r(o,s))}});const a="fast-kernel";try{if(document.currentScript)o=document.currentScript.getAttribute(a);else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute(a)}}catch(e){o="isolate"}let l;switch(o){case"share":l=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":l=Object.freeze({updateQueue:1.2,observable:2.2,contextEvent:3.2,elementRegistry:4.2});break;default:const e=`-${Math.random().toString(36).substring(2,8)}`;l=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const c=e=>"function"==typeof e,d=e=>"string"==typeof e,h=()=>{};!function(){if("undefined"==typeof globalThis)if("undefined"!=typeof global)global.globalThis=global;else if("undefined"!=typeof self)self.globalThis=self;else if("undefined"!=typeof window)window.globalThis=window;else{const e=new Function("return this")();e.globalThis=e}}(),"requestIdleCallback"in globalThis||(globalThis.requestIdleCallback=function(e,t){const s=Date.now();return setTimeout((()=>{e({didTimeout:!!(null==t?void 0:t.timeout)&&Date.now()-s>=t.timeout,timeRemaining:()=>0})}),1)},globalThis.cancelIdleCallback=function(e){clearTimeout(e)});const u={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},u));const f=globalThis.FAST;if(void 0===f.getById){const e=Object.create(null);Reflect.defineProperty(f,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},u))}void 0===f.error&&Object.assign(f,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const p=Object.freeze([]);function g(){const e=new Map;return Object.freeze({register:t=>!e.has(t.type)&&(e.set(t.type,t),!0),getByType:t=>e.get(t),getForInstance(t){if(null!=t)return e.get(t.constructor)}})}function b(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let n=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==n;)s=e.get(n),n=Reflect.getPrototypeOf(n);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}function v(e){e.prototype.toJSON=h}const m=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,w=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let C=Object.freeze({createHTML:e=>w.createHTML(e),protect:(e,t,s,n)=>n});const S=C,T=Object.freeze({get policy(){return C},setPolicy(e){if(C!==S)throw f.error(1201);C=e},setAttribute(e,t,s){null==s?e.removeAttribute(t):e.setAttribute(t,s)},setBooleanAttribute(e,t,s){s?e.setAttribute(t,""):e.removeAttribute(t)}});function $(e,t,s,n){return(e,t,s,...i)=>{d(s)&&(s=s.replace(/(javascript:|vbscript:|data:)/,"")),n(e,t,s,...i)}}function x(e,t,s,n){throw f.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:x,onauxclick:x,onbeforeinput:x,onbeforematch:x,onblur:x,oncancel:x,oncanplay:x,oncanplaythrough:x,onchange:x,onclick:x,onclose:x,oncontextlost:x,oncontextmenu:x,oncontextrestored:x,oncopy:x,oncuechange:x,oncut:x,ondblclick:x,ondrag:x,ondragend:x,ondragenter:x,ondragleave:x,ondragover:x,ondragstart:x,ondrop:x,ondurationchange:x,onemptied:x,onended:x,onerror:x,onfocus:x,onformdata:x,oninput:x,oninvalid:x,onkeydown:x,onkeypress:x,onkeyup:x,onload:x,onloadeddata:x,onloadedmetadata:x,onloadstart:x,onmousedown:x,onmouseenter:x,onmouseleave:x,onmousemove:x,onmouseout:x,onmouseover:x,onmouseup:x,onpaste:x,onpause:x,onplay:x,onplaying:x,onprogress:x,onratechange:x,onreset:x,onresize:x,onscroll:x,onsecuritypolicyviolation:x,onseeked:x,onseeking:x,onselect:x,onslotchange:x,onstalled:x,onsubmit:x,onsuspend:x,ontimeupdate:x,ontoggle:x,onvolumechange:x,onwaiting:x,onwebkitanimationend:x,onwebkitanimationiteration:x,onwebkitanimationstart:x,onwebkittransitionend:x,onwheel:x},B={elements:{a:{[m.attribute]:{href:$},[m.property]:{href:$}},area:{[m.attribute]:{href:$},[m.property]:{href:$}},button:{[m.attribute]:{formaction:$},[m.property]:{formAction:$}},embed:{[m.attribute]:{src:x},[m.property]:{src:x}},form:{[m.attribute]:{action:$},[m.property]:{action:$}},frame:{[m.attribute]:{src:$},[m.property]:{src:$}},iframe:{[m.attribute]:{src:$},[m.property]:{src:$,srcdoc:x}},input:{[m.attribute]:{formaction:$},[m.property]:{formAction:$}},link:{[m.attribute]:{href:x},[m.property]:{href:x}},object:{[m.attribute]:{codebase:x,data:x},[m.property]:{codeBase:x,data:x}},script:{[m.attribute]:{src:x,text:x},[m.property]:{src:x,text:x,innerText:x,textContent:x}},style:{[m.property]:{innerText:x,textContent:x}}},aspects:{[m.attribute]:Object.assign({},O),[m.property]:Object.assign({innerHTML:x},O),[m.event]:Object.assign({},O)}};function k(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=r;break;default:s[n]=i}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function N(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=k(r,{});break;default:s[n]=k(i,r)}}for(const t in e)t in s||(s[t]=k(e[t],{}));return Object.freeze(s)}function A(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=N(i,{});break;default:s[n]=N(i,r)}}for(const t in e)t in s||(s[t]=N(e[t],{}));return Object.freeze(s)}function E(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const M=Object.freeze({create(e={}){var t,s;const n=null!==(t=e.trustedType)&&void 0!==t?t:function(){const e=e=>e;return globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:e}):{createHTML:e}}(),i=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=B,Object.freeze({elements:r.elements?A(r.elements,o.elements):o.elements,aspects:r.aspects?N(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>n.createHTML(e),protect(e,t,s,n){var r;const o=(null!=e?e:"").toLowerCase(),a=i.elements[o];if(a){const i=E(a,e,t,s,n);if(i)return i}return null!==(r=E(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),j=f.getById(l.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let n=!0;function i(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!n)throw e.length=0,s;t.push(s),setTimeout(i,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,n=e.length-t;s<n;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function a(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:a,next:()=>new Promise(a),process:o,setMode:e=>n=e})}));class I{constructor(e,t){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.subject=e,this.sub1=t}has(e){return void 0===this.spillover?this.sub1===e||this.sub2===e:-1!==this.spillover.indexOf(e)}subscribe(e){const t=this.spillover;if(void 0===t){if(this.has(e))return;if(void 0===this.sub1)return void(this.sub1=e);if(void 0===this.sub2)return void(this.sub2=e);this.spillover=[this.sub1,this.sub2,e],this.sub1=void 0,this.sub2=void 0}else{-1===t.indexOf(e)&&t.push(e)}}unsubscribe(e){const t=this.spillover;if(void 0===t)this.sub1===e?this.sub1=void 0:this.sub2===e&&(this.sub2=void 0);else{const s=t.indexOf(e);-1!==s&&t.splice(s,1)}}notify(e){const t=this.spillover,s=this.subject;if(void 0===t){const t=this.sub1,n=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==n&&n.handleChange(s,e)}else for(let n=0,i=t.length;n<i;++n)t[n].handleChange(s,e)}}class V{constructor(e){this.subscribers={},this.subjectSubscribers=null,this.subject=e}notify(e){var t,s;null===(t=this.subscribers[e])||void 0===t||t.notify(e),null===(s=this.subjectSubscribers)||void 0===s||s.notify(e)}subscribe(e,t){var s,n;let i;i=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new I(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new I(this.subject),i.subscribe(e)}unsubscribe(e,t){var s,n;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(n=this.subjectSubscribers)||void 0===n||n.unsubscribe(e)}}const R=Object.freeze({unknown:void 0,coupled:1}),_=f.getById(l.observable,(()=>{const e=j.enqueue,t=/(:|&&|\|\||if|\?\.)/,s=new WeakMap;let n,i=e=>{throw f.error(1101)};function r(e){var t;let n=null!==(t=e.$fastController)&&void 0!==t?t:s.get(e);return void 0===n&&(Array.isArray(e)?n=i(e):s.set(e,n=new V(e))),n}const o=b();class a{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==n&&n.watch(e,this.name),e[this.field]}setValue(e,t){const s=this.field,n=e[s];if(n!==t){e[s]=t;const i=e[this.callback];c(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class l extends I{constructor(e,t,s=!1){super(e,t),this.expression=e,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.isAsync=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}setMode(e){this.isAsync=this.needsQueue=e}bind(e){this.controller=e;const t=this.observe(e.source,e.context);return!e.isBound&&this.requiresUnbind(e)&&e.onUnbind(this),t}requiresUnbind(e){return e.sourceLifetime!==R.coupled||this.first!==this.last||this.first.propertySource!==e.source}unbind(e){this.dispose()}observe(e,t){this.needsRefresh&&null!==this.last&&this.dispose();const s=n;let i;n=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{n=s}return i}disconnect(){this.dispose()}dispose(){if(null!==this.last){let e=this.first;for(;void 0!==e;)e.notifier.unsubscribe(this,e.propertyName),e=e.next;this.last=null,this.needsRefresh=this.needsQueue=this.isAsync}}watch(e,t){const s=this.last,i=r(e),o=null===s?this.first:{};if(o.propertySource=e,o.propertyName=t,o.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;n=void 0,t=s.propertySource[s.propertyName],n=this,e===t&&(this.needsRefresh=!0)}s.next=o}this.last=o}handleChange(){this.needsQueue?(this.needsQueue=!1,e(this)):this.isAsync||this.call()}call(){null!==this.last&&(this.needsQueue=this.isAsync,this.notify(this))}*records(){let e=this.first;for(;void 0!==e;)yield e,e=e.next}}return v(l),Object.freeze({setArrayObserverFactory(e){i=e},getNotifier:r,track(e,t){n&&n.watch(e,t)},trackVolatile(){n&&(n.needsRefresh=!0)},notify(e,t){r(e).notify(t)},defineProperty(e,t){d(t)&&(t=new a(t)),o(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:o,binding(e,t,s=this.isVolatileBinding(e)){return new l(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function z(e,t){_.defineProperty(e,t)}function L(e,t,s){return Object.assign({},s,{get(){return _.trackVolatile(),s.get.apply(this)}})}const F=f.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),H=Object.freeze({default:{index:0,length:0,get event(){return H.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>F.get(),setEvent(e){F.set(e)}});class D{constructor(e,t,s){this.index=e,this.removed=t,this.addedCount=s}adjustTo(e){let t=this.index;const s=e.length;return t>s?t=s-this.addedCount:t<0&&(t=s+this.removed.length+t-this.addedCount),this.index=t<0?0:t,this}}class P{constructor(e){this.sorted=e}}const U=Object.freeze({reset:1,splice:2,optimized:3}),q=new D(0,p,0);q.reset=!0;const Q=[q];function W(e,t,s,n,i,r){let o=0,a=0;const l=Math.min(s-t,r-i);if(0===t&&0===i&&(o=function(e,t,s){for(let n=0;n<s;++n)if(e[n]!==t[n])return n;return s}(e,n,l)),s===e.length&&r===n.length&&(a=function(e,t,s){let n=e.length,i=t.length,r=0;for(;r<s&&e[--n]===t[--i];)r++;return r}(e,n,l-o)),i+=o,r-=a,(s-=a)-(t+=o)==0&&r-i==0)return p;if(t===s){const e=new D(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new D(t,[],s-t)];const c=function(e){let t=e.length-1,s=e[0].length-1,n=e[t][s];const i=[];for(;t>0||s>0;){if(0===t){i.push(2),s--;continue}if(0===s){i.push(3),t--;continue}const r=e[t-1][s-1],o=e[t-1][s],a=e[t][s-1];let l;l=o<a?o<r?o:r:a<r?a:r,l===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):l===o?(i.push(3),t--,n=o):(i.push(2),s--,n=a)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,a=s-t+1,l=new Array(o);let c,d;for(let e=0;e<o;++e)l[e]=new Array(a),l[e][0]=e;for(let e=0;e<a;++e)l[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<a;++r)e[t+r-1]===n[i+s-1]?l[s][r]=l[s-1][r-1]:(c=l[s-1][r]+1,d=l[s][r-1]+1,l[s][r]=c<d?c:d);return l}(e,t,s,n,i,r)),d=[];let h,u=t,f=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==h&&(d.push(h),h=void 0),u++,f++;break;case 1:void 0===h&&(h=new D(u,[],0)),h.addedCount++,u++,h.removed.push(n[f]),f++;break;case 2:void 0===h&&(h=new D(u,[],0)),h.addedCount++,u++;break;case 3:void 0===h&&(h=new D(u,[],0)),h.removed.push(n[f]),f++}return void 0!==h&&d.push(h),d}function X(e,t){let s=!1,n=0;for(let l=0;l<t.length;l++){const c=t[l];if(c.index+=n,s)continue;const d=(i=e.index,r=e.index+e.removed.length,o=c.index,a=c.index+c.addedCount,r<o||a<i?-1:r===o||a===i?0:i<o?r<a?r-o:a-o:a<r?a-i:r-i);if(d>=0){t.splice(l,1),l--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-d;const i=e.removed.length+c.removed.length-d;if(e.addedCount||i){let t=c.removed;if(e.index<c.index){const s=e.removed.slice(0,c.index-e.index);s.push(...t),t=s}if(e.index+e.removed.length>c.index+c.addedCount){const s=e.removed.slice(c.index+c.addedCount-e.index);t.push(...s)}e.removed=t,c.index<e.index&&(e.index=c.index)}else s=!0}else if(e.index<c.index){s=!0,t.splice(l,0,e),l++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,a;s||t.push(e)}let J=Object.freeze({support:U.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?p:function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)X(t[e],n);for(let t=0,i=n.length;t<i;++t){const i=n[t];1!==i.addedCount||1!==i.removed.length?s=s.concat(W(e,i.index,i.index+i.addedCount,i.removed,0,i.removed.length)):i.removed[0]!==e[i.index]&&s.push(i)}return s}(t,s):Q,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new D(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);e.sorted++;const r=[];for(let t=e.length-1;t>=0;t--)r.push(t);return t.addSort(new P(r)),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new D(0,[r],0)),r},sort(e,t,s,n){const i=new Map;for(let t=0,s=e.length;t<s;++t){const s=i.get(e[t])||[];i.set(e[t],[...s,t])}const r=s.apply(e,n);e.sorted++;const o=[];for(let t=0,s=e.length;t<s;++t){const s=i.get(e[t]);o.push(s[0]),i.set(e[t],s.splice(1))}return t.addSort(new P(o)),r},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(+n[0],i,n.length>2?n.length-2:0).adjustTo(e)),i},unshift(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(0,[],n.length).adjustTo(e)),i}});const K=Object.freeze({reset:Q,setDefaultStrategy(e){J=e}});function G(e,t,s,n=!0){Reflect.defineProperty(e,t,{value:s,enumerable:!1,writable:n})}class Y extends I{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.sorts=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this._sortObserver=void 0,this.call=this.flush,G(e,"$fastController",this)}get strategy(){return this._strategy}set strategy(e){this._strategy=e}get lengthObserver(){let e=this._lengthObserver;if(void 0===e){const t=this.subject;this._lengthObserver=e={length:t.length,handleChange(){this.length!==t.length&&(this.length=t.length,_.notify(e,"length"))}},this.subscribe(e)}return e}get sortObserver(){let e=this._sortObserver;if(void 0===e){const t=this.subject;this._sortObserver=e={sorted:t.sorted,handleChange(){this.sorted!==t.sorted&&(this.sorted=t.sorted,_.notify(e,"sorted"))}},this.subscribe(e)}return e}subscribe(e){this.flush(),super.subscribe(e)}addSplice(e){void 0===this.splices?this.splices=[e]:this.splices.push(e),this.enqueue()}addSort(e){void 0===this.sorts?this.sorts=[e]:this.sorts.push(e),this.enqueue()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.sorts,n=this.oldCollection;void 0===t&&void 0===n&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.sorts=void 0,this.oldCollection=void 0,void 0!==s?this.notify(s):this.notify((null!==(e=this._strategy)&&void 0!==e?e:J).normalize(n,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,j.enqueue(this))}}let Z=!1;const ee=Object.freeze({sorted:0,enable(){if(Z)return;Z=!0,_.setArrayObserverFactory((e=>new Y(e)));const e=Array.prototype;e.$fastPatch||(G(e,"$fastPatch",1),G(e,"sorted",0),[e.pop,e.push,e.reverse,e.shift,e.sort,e.splice,e.unshift].forEach((t=>{e[t.name]=function(...e){var s;const n=this.$fastController;return void 0===n?t.apply(this,e):(null!==(s=n.strategy)&&void 0!==s?s:J)[t.name](this,n,t,e)}})))}});function te(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(ee.enable(),t=_.getNotifier(e)),_.track(t.lengthObserver,"length"),e.length}function se(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(ee.enable(),t=_.getNotifier(e)),_.track(t.sortObserver,"sorted"),e.sorted}class ne{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class ie extends ne{createObserver(e){return _.binding(this.evaluate,e,this.isVolatile)}}function re(e,t,s=_.isVolatileBinding(e)){return new ie(e,t,s)}function oe(e,t){const s=new ie(e);return s.options=t,s}class ae extends ne{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function le(e,t){return new ae(e,t)}function ce(e){return c(e)?re(e):e instanceof ne?e:le((()=>e))}let de;function he(e){return e.map((e=>e instanceof ue?he(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}v(ae);class ue{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ue?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(de),this._strategy}addStylesTo(e){this.strategy.addStylesTo(e),this.targets.add(e)}removeStylesFrom(e){this.strategy.removeStylesFrom(e),this.targets.delete(e)}isAttachedTo(e){return this.targets.has(e)}withBehaviors(...e){return this.behaviors=null===this.behaviors?e:this.behaviors.concat(e),this}withStrategy(e){return this._strategy=new e(he(this.styles)),this}static setDefaultStrategy(e){de=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ue(e):e instanceof ue?e:new ue([e])}}ue.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const fe=g(),pe=Object.freeze({getForInstance:fe.getForInstance,getByType:fe.getByType,define:e=>(fe.register({type:e}),e)});function ge(){return function(e){pe.define(e)}}function be(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class ve{constructor(e,t){this.dataBinding=e,this.targetAspect=t}createCSS(e){return e(this),`var(${this.targetAspect})`}addedCallback(e){var t;const s=e.source;if(!s.$cssBindings){s.$cssBindings=new Map;const e=s.setAttribute;s.setAttribute=(t,n)=>{e.call(s,t,n),"style"===t&&s.$cssBindings.forEach(((e,t)=>be(t,e.controller,e.observer)))}}const n=null!==(t=e[this.targetAspect])&&void 0!==t?t:e[this.targetAspect]=this.dataBinding.createObserver(this,this);n.controller=e,e.source.$cssBindings.set(this,{controller:e,observer:n})}connectedCallback(e){be(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){be(this,t.controller,t)}}pe.define(ve);const me=`${Math.random().toString(36).substring(2,8)}`;let ye=0;const we=()=>`--v${me}${++ye}`;function Ce(e,t){const s=[];let n="";const i=[],r=e=>{i.push(e)};for(let i=0,o=e.length-1;i<o;++i){n+=e[i];let o=t[i];c(o)?o=new ve(re(o),we()).createCSS(r):o instanceof ne?o=new ve(o,we()).createCSS(r):void 0!==pe.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ue||o instanceof CSSStyleSheet?(""!==n.trim()&&(s.push(n),n=""),s.push(o)):n+=o}return n+=e[e.length-1],""!==n.trim()&&s.push(n),{styles:s,behaviors:i}}const Se=(e,...t)=>{const{styles:s,behaviors:n}=Ce(e,t),i=new ue(s);return n.length?i.withBehaviors(...n):i};class Te{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(d(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ue(s))}createCSS(e){return this.behaviors.forEach(e),this.styles&&e(this),this.css}addedCallback(e){e.addStyles(this.styles)}removedCallback(e){e.removeStyles(this.styles)}}pe.define(Te),Se.partial=(e,...t)=>{const{styles:s,behaviors:n}=Ce(e,t);return new Te(s,n)};const $e=/fe-b\$\$start\$\$(\d+)\$\$(.+)\$\$fe-b/,xe=/fe-b\$\$end\$\$(\d+)\$\$(.+)\$\$fe-b/,Oe=/fe-repeat\$\$start\$\$(\d+)\$\$fe-repeat/,Be=/fe-repeat\$\$end\$\$(\d+)\$\$fe-repeat/,ke=/^(?:.{0,1000})fe-eb\$\$start\$\$(.+?)\$\$fe-eb/,Ne=/fe-eb\$\$end\$\$(.{0,1000})\$\$fe-eb(?:.{0,1000})$/;function Ae(e){return e&&e.nodeType===Node.COMMENT_NODE}const Ee=Object.freeze({attributeMarkerName:"data-fe-b",attributeBindingSeparator:" ",contentBindingStartMarker:(e,t)=>`fe-b$$start$$${e}$$${t}$$fe-b`,contentBindingEndMarker:(e,t)=>`fe-b$$end$$${e}$$${t}$$fe-b`,repeatStartMarker:e=>`fe-repeat$$start$$${e}$$fe-repeat`,repeatEndMarker:e=>`fe-repeat$$end$$${e}$$fe-repeat`,isContentBindingStartMarker:e=>$e.test(e),isContentBindingEndMarker:e=>xe.test(e),isRepeatViewStartMarker:e=>Oe.test(e),isRepeatViewEndMarker:e=>Be.test(e),isElementBoundaryStartMarker:e=>Ae(e)&&ke.test(e.data.trim()),isElementBoundaryEndMarker:e=>Ae(e)&&Ne.test(e.data),parseAttributeBinding(e){const t=e.getAttribute(this.attributeMarkerName);return null===t?t:t.split(this.attributeBindingSeparator).map((e=>parseInt(e)))},parseEnumeratedAttributeBinding(e){const t=[],s=this.attributeMarkerName.length+1,n=`${this.attributeMarkerName}-`;for(const i of e.getAttributeNames())if(i.startsWith(n)){const e=Number(i.slice(s));if(Number.isNaN(e))throw new Error(`Invalid attribute marker name: ${i}. Expected format is ${n}<number>.`);t.push(e)}return 0===t.length?null:t},parseContentBindingStartMarker:e=>Ie($e,e),parseContentBindingEndMarker:e=>Ie(xe,e),parseRepeatStartMarker:e=>Me(Oe,e),parseRepeatEndMarker:e=>Me(Be,e),parseElementBoundaryStartMarker:e=>je(ke,e.trim()),parseElementBoundaryEndMarker:e=>je(Ne,e)});function Me(e,t){const s=e.exec(t);return null===s?s:parseInt(s[1])}function je(e,t){const s=e.exec(t);return null===s?s:s[1]}function Ie(e,t){const s=e.exec(t);return null===s?s:[parseInt(s[1]),s[2]]}const Ve=Symbol.for("fe-hydration");function Re(e){return e[Ve]===Ve}const _e=`fast-${Math.random().toString(36).substring(2,8)}`,ze=`${_e}{`,Le=`}${_e}`,Fe=Le.length;let He=0;const De=()=>`${_e}-${++He}`,Pe=Object.freeze({interpolation:e=>`${ze}${e}${Le}`,attribute:e=>`${De()}="${ze}${e}${Le}"`,comment:e=>`\x3c!--${ze}${e}${Le}--\x3e`}),Ue=Object.freeze({parse(e,t){const s=e.split(ze);if(1===s.length)return null;const n=[];for(let e=0,i=s.length;e<i;++e){const i=s[e],r=i.indexOf(Le);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Fe)}""!==o&&n.push(o)}return n}}),qe=g(),Qe=Object.freeze({getForInstance:qe.getForInstance,getByType:qe.getByType,define:(e,t)=>((t=t||{}).type=e,qe.register(t),e),assignAspect(e,t){if(t)switch(e.sourceAspect=t,t[0]){case":":e.targetAspect=t.substring(1),e.aspectType="classList"===e.targetAspect?m.tokenList:m.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=m.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=m.event;break;default:e.targetAspect=t,e.aspectType=m.attribute}else e.aspectType=m.content}});function We(e){return function(t){Qe.define(t,e)}}class Xe{constructor(e){this.options=e}createHTML(e){return Pe.attribute(e(this))}createBehavior(){return this}}v(Xe);class Je extends Error{constructor(e,t,s){super(e),this.factories=t,this.node=s}}function Ke(e){return e.nodeType===Node.COMMENT_NODE}function Ge(e){return e.nodeType===Node.TEXT_NODE}function Ye(e,t){const s=document.createRange();return s.setStart(e,0),s.setEnd(t,Ke(t)||Ge(t)?t.data.length:t.childNodes.length),s}function Ze(e,t,s){var n;const i=null!==(n=Ee.parseAttributeBinding(e))&&void 0!==n?n:Ee.parseEnumeratedAttributeBinding(e);if(null!==i){for(const n of i){if(!t[n])throw new Je(`HydrationView was unable to successfully target factory on ${e.nodeName} inside ${e.getRootNode().host.nodeName}. This likely indicates a template mismatch between SSR rendering and hydration.`,t,e);tt(t[n],e,s)}e.removeAttribute(Ee.attributeMarkerName)}}function et(e,t,s,n,i){if(Ee.isElementBoundaryStartMarker(e))!function(e,t){const s=Ee.parseElementBoundaryStartMarker(e.data);let n=t.nextSibling();for(;null!==n;){if(Ke(n)){const e=Ee.parseElementBoundaryEndMarker(n.data);if(e&&e===s)break}n=t.nextSibling()}}(e,t);else if(Ee.isContentBindingStartMarker(e.data)){const r=Ee.parseContentBindingStartMarker(e.data);if(null===r)return;const[o,a]=r,l=s[o],c=[];let d=t.nextSibling();e.data="";const h=d;for(;null!==d;){if(Ke(d)){const e=Ee.parseContentBindingEndMarker(d.data);if(e&&e[1]===a)break}c.push(d),d=t.nextSibling()}if(null===d){const t=e.getRootNode();throw new Error(`Error hydrating Comment node inside "${function(e){return e instanceof DocumentFragment&&"mode"in e}(t)?t.host.nodeName:t.nodeName}".`)}if(d.data="",1===c.length&&Ge(c[0]))tt(l,c[0],n);else{d!==h&&null!==d.previousSibling&&(i[l.targetNodeId]={first:h,last:d.previousSibling});tt(l,d.parentNode.insertBefore(document.createTextNode(""),d),n)}}}function tt(e,t,s){if(void 0===e.targetNodeId)throw new Error("Factory could not be target to the node");s[e.targetNodeId]=t}var st;function nt(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;){if(n=i.nextSibling,!n)throw new Error(`Unmatched first/last child inside "${t.getRootNode().host.nodeName}".`);s.removeChild(i),i=n}s.removeChild(t)}class it{constructor(){this.index=0,this.length=0}get event(){return H.getEvent()}get isEven(){return this.index%2==0}get isOdd(){return this.index%2!=0}get isFirst(){return 0===this.index}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}eventDetail(){return this.event.detail}eventTarget(){return this.event.target}}class rt extends it{constructor(e,t,s){super(),this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=R.unknown,this.context=this,this.firstChild=e.firstChild,this.lastChild=e.lastChild}appendTo(e){e.appendChild(this.fragment)}insertBefore(e){if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,n=this.firstChild;for(;n!==t;)s=n.nextSibling,e.appendChild(n),n=s;e.appendChild(t)}dispose(){nt(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}bind(e,t=this){if(this.source===e)return;let s=this.behaviors;if(null===s){this.source=e,this.context=t,this.behaviors=s=new Array(this.factories.length);const n=this.factories;for(let e=0,t=n.length;e<t;++e){const t=n[e].createBehavior();t.bind(this),s[e]=t}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=s.length;e<t;++e)s[e].bind(this)}this.isBound=!0}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}static disposeContiguousBatch(e){if(0!==e.length){nt(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}v(rt),_.defineProperty(rt.prototype,"index"),_.defineProperty(rt.prototype,"length");const ot="unhydrated",at="hydrating",lt="hydrated";class ct extends Error{constructor(e,t,s,n){super(e),this.factory=t,this.fragment=s,this.templateString=n}}st=Ve,v(class extends it{constructor(e,t,s,n){super(),this.firstChild=e,this.lastChild=t,this.sourceTemplate=s,this.hostBindingTarget=n,this[st]=Ve,this.context=this,this.source=null,this.isBound=!1,this.sourceLifetime=R.unknown,this.unbindables=[],this.fragment=null,this.behaviors=null,this._hydrationStage=ot,this._bindingViewBoundaries={},this._targets={},this.factories=s.compile().factories}get hydrationStage(){return this._hydrationStage}get targets(){return this._targets}get bindingViewBoundaries(){return this._bindingViewBoundaries}insertBefore(e){if(null!==this.fragment)if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}appendTo(e){null!==this.fragment&&e.appendChild(this.fragment)}remove(){const e=this.fragment||(this.fragment=document.createDocumentFragment()),t=this.lastChild;let s,n=this.firstChild;for(;n!==t;){if(s=n.nextSibling,!s)throw new Error(`Unmatched first/last child inside "${t.getRootNode().host.nodeName}".`);e.appendChild(n),n=s}e.appendChild(t)}bind(e,t=this){var s;if(this.hydrationStage!==lt&&(this._hydrationStage=at),this.source===e)return;let n=this.behaviors;if(null===n){this.source=e,this.context=t;try{const{targets:e,boundaries:t}=function(e,t,s){const n=Ye(e,t),i=n.commonAncestorContainer,r=document.createTreeWalker(i,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_COMMENT+NodeFilter.SHOW_TEXT,{acceptNode:e=>0===n.comparePoint(e,0)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),o={},a={};let l=r.currentNode=e;for(;null!==l;){switch(l.nodeType){case Node.ELEMENT_NODE:Ze(l,s,o);break;case Node.COMMENT_NODE:et(l,r,s,o,a)}l=r.nextNode()}return n.detach(),{targets:o,boundaries:a}}(this.firstChild,this.lastChild,this.factories);this._targets=e,this._bindingViewBoundaries=t}catch(e){if(e instanceof Je){let t=this.sourceTemplate.html;"string"!=typeof t&&(t=t.innerHTML),e.templateString=t}throw e}this.behaviors=n=new Array(this.factories.length);const i=this.factories;for(let e=0,t=i.length;e<t;++e){const t=i[e];if("h"===t.targetNodeId&&this.hostBindingTarget&&tt(t,this.hostBindingTarget,this._targets),!(t.targetNodeId in this.targets)){let e=this.sourceTemplate.html;"string"!=typeof e&&(e=e.innerHTML);const n=(null===(s=this.firstChild)||void 0===s?void 0:s.getRootNode()).host,i=t,r=[`HydrationView was unable to successfully target bindings inside "<${((null==n?void 0:n.nodeName)||"unknown").toLowerCase()}>".`,"\nMismatch Details:",` - Expected target node ID: "${t.targetNodeId}"`,` - Available target IDs: [${Object.keys(this.targets).join(", ")||"none"}]`];throw t.targetTagName&&r.push(` - Expected tag name: "${t.targetTagName}"`),i.sourceAspect&&r.push(` - Source aspect: "${i.sourceAspect}"`),void 0!==i.aspectType&&r.push(` - Aspect type: ${i.aspectType}`),r.push("\nThis usually means:"," 1. The server-rendered HTML doesn't match the client template"," 2. The hydration markers are missing or corrupted"," 3. The DOM structure was modified before hydration",`\nTemplate: ${e.slice(0,200)}${e.length>200?"...":""}`),new ct(r.join("\n"),t,Ye(this.firstChild,this.lastChild).cloneContents(),e)}{const s=t.createBehavior();s.bind(this),n[e]=s}}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=n.length;e<t;++e)n[e].bind(this)}this.isBound=!0,this._hydrationStage=lt}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}dispose(){nt(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}});const dt={[m.attribute]:T.setAttribute,[m.booleanAttribute]:T.setBooleanAttribute,[m.property]:(e,t,s)=>e[t]=s,[m.content]:function(e,t,s,n){if(null==s&&(s=""),function(e){return void 0!==e.create}(s)){e.textContent="";let t=e.$fastView;if(void 0===t)if(Re(n)&&Re(s)&&void 0!==n.bindingViewBoundaries[this.targetNodeId]&&n.hydrationStage!==lt){const e=n.bindingViewBoundaries[this.targetNodeId];t=s.hydrate(e.first,e.last)}else t=s.create();else e.$fastTemplate!==s&&(t.isComposed&&(t.remove(),t.unbind()),t=s.create());t.isComposed?t.needsBindOnly&&(t.needsBindOnly=!1,t.bind(n.source,n.context)):(t.isComposed=!0,t.bind(n.source,n.context),t.insertBefore(e),e.$fastView=t,e.$fastTemplate=s)}else{const t=e.$fastView;void 0!==t&&t.isComposed&&(t.isComposed=!1,t.remove(),t.needsBindOnly?t.needsBindOnly=!1:t.unbind()),e.textContent=s}},[m.tokenList]:function(e,t,s){var n;const i=`${this.id}-t`,r=null!==(n=e[i])&&void 0!==n?n:e[i]={v:0,cv:Object.create(null)},o=r.cv;let a=r.v;const l=e[t];if(null!=s&&s.length){const e=s.split(/\s+/);for(let t=0,s=e.length;t<s;++t){const s=e[t];""!==s&&(o[s]=a,l.add(s))}}if(r.v=a+1,0!==a){a-=1;for(const e in o)o[e]===a&&l.remove(e)}},[m.event]:()=>{}};class ht{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=m.content}createHTML(e){return Pe.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=dt[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw f.error(1205);this.data=`${this.id}-d`,this.updateTarget=s.protect(this.targetTagName,this.aspectType,this.targetAspect,t)}return this}bind(e){var t;const s=e.targets[this.targetNodeId],n=Re(e)&&e.hydrationStage&&e.hydrationStage!==lt;switch(this.aspectType){case m.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case m.content:e.onUnbind(this);default:const i=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);if(i.target=s,i.controller=e,n&&(this.aspectType===m.attribute||this.aspectType===m.booleanAttribute)){i.bind(e);break}this.updateTarget(s,this.targetAspect,i.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){H.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);H.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,n=t.controller;this.updateTarget(s,this.targetAspect,t.bind(n),n)}}Qe.define(ht,{aspected:!0});const ut=(e,t)=>`${e}.${t}`,ft={},pt={index:0,node:null};function gt(e){e.startsWith("fast-")||f.warn(1204,{name:e})}const bt=new Proxy(document.createElement("div"),{get(e,t){gt(t);const s=Reflect.get(e,t);return c(s)?s.bind(e):s},set:(e,t,s)=>(gt(t),Reflect.set(e,t,s))});class vt{constructor(e,t,s){this.fragment=e,this.directives=t,this.policy=s,this.proto=null,this.nodeIds=new Set,this.descriptors={},this.factories=[]}addFactory(e,t,s,n,i){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,n)),e.id=null!==(r=e.id)&&void 0!==r?r:De(),e.targetNodeId=s,e.targetTagName=i,e.policy=null!==(o=e.policy)&&void 0!==o?o:this.policy,this.factories.push(e)}freeze(){return this.proto=Object.create(null,this.descriptors),this}addTargetDescriptor(e,t,s){const n=this.descriptors;if("r"===t||"h"===t||n[t])return;if(!n[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),n=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,n)}let i=ft[t];if(!i){const n=`_${t}`;ft[t]=i={get(){var t;return null!==(t=this[n])&&void 0!==t?t:this[n]=this[e].childNodes[s]}}}n[t]=i}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:bt;for(const e of this.nodeIds)s[e];return new rt(t,this.factories,s)}}function mt(e,t,s,n,i,r=!1){const o=s.attributes,a=e.directives;for(let l=0,c=o.length;l<c;++l){const d=o[l],h=d.value,u=Ue.parse(h,a);let f=null;null===u?r&&(f=new ht(le((()=>h),e.policy)),Qe.assignAspect(f,d.name)):f=St.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(d),l--,c--,e.addFactory(f,t,n,i,s.tagName))}}function yt(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=wt(e,s,i,n);i=t.node,n=t.index}}function wt(e,t,s,n){const i=ut(t,n);switch(s.nodeType){case 1:mt(e,t,s,i,n),yt(e,s,i);break;case 3:return function(e,t,s,n,i){const r=Ue.parse(t.textContent,e.directives);if(null===r)return pt.node=t.nextSibling,pt.index=i+1,pt;let o,a=o=t;for(let t=0,l=r.length;t<l;++t){const l=r[t];0!==t&&(i++,n=ut(s,i),o=a.parentNode.insertBefore(document.createTextNode(""),a.nextSibling)),d(l)?o.textContent=l:(o.textContent=" ",Qe.assignAspect(l),e.addFactory(l,s,n,i,null)),a=o}return pt.index=i+1,pt.node=a.nextSibling,pt}(e,s,t,i,n);case 8:const r=Ue.parse(s.data,e.directives);null!==r&&e.addFactory(St.aggregate(r),t,i,n,null)}return pt.index=n+1,pt.node=s.nextSibling,pt}const Ct="TEMPLATE",St={compile(e,t,s=T.policy){let n;if(d(e)){n=document.createElement(Ct),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&t.tagName===Ct&&(n=t)}else n=e;n.content.firstChild||n.content.lastChild||n.content.appendChild(document.createComment(""));const i=document.adoptNode(n.content),r=new vt(i,t,s);var o,a;return mt(r,"",n,"h",0,!0),o=i.firstChild,a=t,(o&&8==o.nodeType&&null!==Ue.parse(o.data,a)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),yt(r,i,"r"),pt.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=T.policy){if(1===e.length)return e[0];let s,n,i=!1;const r=e.length,o=e.map((e=>d(e)?()=>e:(s=e.sourceAspect||s,i=i||e.dataBinding.isVolatile,n=n||e.dataBinding.policy,e.dataBinding.evaluate))),a=new ht(re(((e,t)=>{let s="";for(let n=0;n<r;++n)s+=o[n](e,t);return s}),null!=n?n:t,i));return Qe.assignAspect(a,s),a}},Tt=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,$t=Object.create(null);class xt{constructor(e,t=$t){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ot(e,t,s,n=Qe.getForInstance(e)){if(n.aspected){const s=Tt.exec(t);null!==s&&Qe.assignAspect(e,s[2])}return e.createHTML(s)}xt.empty=new xt(""),Qe.define(xt);class Bt{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}compile(){return null===this.result&&(this.result=St.compile(this.html,this.factories,this.policy)),this.result}create(e){return this.compile().createView(e)}inline(){return new xt(d(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw f.error(1208);if(this.policy)throw f.error(1207);return this.policy=e,this}render(e,t,s){const n=this.create(s);return n.bind(e),n.appendTo(t),n}static create(e,t,s){let n="";const i=Object.create(null),r=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=De();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,a=t[s];if(n+=i,c(a))a=new ht(re(a));else if(a instanceof ne)a=new ht(a);else if(!(o=Qe.getForInstance(a))){const e=a;a=new ht(le((()=>e)))}n+=Ot(a,i,r,o)}return new Bt(n+e[e.length-1],i,s)}}v(Bt);const kt=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Bt.create(e,t);throw f.error(1206)};kt.partial=e=>new xt(e);class Nt extends Xe{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}Qe.define(Nt);const At=e=>new Nt(e),Et=()=>null;function Mt(e){return void 0===e?Et:c(e)?e:()=>e}function jt(e,t,s){const n=c(e)?e:()=>e,i=Mt(t),r=Mt(s);return(e,t)=>n(e,t)?i(e,t):r(e,t)}const It=Object.freeze({positioning:!1,recycle:!0});function Vt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.bind(t[s])}function Rt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}function _t(e){return e.nodeType===Node.COMMENT_NODE}class zt extends Error{constructor(e,t){super(e),this.propertyBag=t}}class Lt{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=Vt,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=Rt)}bind(e){this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.items=this.itemsBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),this.observeItems(!0),Re(this.template)&&Re(e)&&e.hydrationStage!==lt?this.hydrateViews(this.template):this.refreshAllViews(),e.onUnbind(this)}unbind(){null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews()}handleChange(e,t){if(t===this.itemsBindingObserver)this.items=this.itemsBindingObserver.bind(this.controller),this.observeItems(),this.refreshAllViews();else if(t===this.templateBindingObserver)this.template=this.templateBindingObserver.bind(this.controller),this.refreshAllViews(!0);else{if(!t[0])return;t[0].reset?this.refreshAllViews():t[0].sorted?this.updateSortedViews(t):this.updateSplicedViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=p);const t=this.itemsObserver,s=this.itemsObserver=_.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateSortedViews(e){const t=this.views;for(let s=0,n=e.length;s<n;++s){const n=e[s].sorted.slice(),i=n.slice().sort();for(let e=0,s=n.length;e<s;++e){const s=n.find((t=>n[e]===i[t]));if(s!==e){const n=i.splice(s,1);i.splice(e,0,...n);const r=t[e],o=r?r.firstChild:this.location;t[s].remove(),t[s].insertBefore(o);const a=t.splice(s,1);t.splice(e,0,...a)}}}}updateSplicedViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,a=[];let l=0,c=0;for(let d=0,h=e.length;d<h;++d){const h=e[d],u=h.removed;let f=0,p=h.index;const g=p+h.addedCount,b=t.splice(h.index,u.length),v=c=a.length+b.length;for(;p<g;++p){const e=t[p],d=e?e.firstChild:this.location;let h;o&&c>0?(f<=v&&b.length>0?(h=b[f],f++):(h=a[l],l++),c--):h=i.create(),t.splice(p,0,h),s(h,n,p,r),h.insertBefore(d)}b[f]&&a.push(...b.slice(f))}for(let e=l,t=a.length;e<t;++e)a[e].dispose();if(this.directive.options.positioning)for(let e=0,s=t.length;e<s;++e){const n=t[e].context;n.length=s,n.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,n=this.location,i=this.bindView,r=this.controller;let o=t.length,a=this.views,l=a.length;if(0!==o&&!e&&this.directive.options.recycle||(rt.disposeContiguousBatch(a),l=0),0===l){this.views=a=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),a[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<l){const n=a[e];if(!n){const t=new XMLSerializer;throw new zt(`View is null or undefined inside "${this.location.getRootNode().host.nodeName}".`,{index:e,hydrationStage:this.controller.hydrationStage,itemsLength:o,viewsState:a.map((e=>e?"hydrated":"empty")),viewTemplateString:t.serializeToString(s.create().fragment),rootNodeContent:t.serializeToString(this.location.getRootNode())})}i(n,t,e,r)}else{const o=s.create();i(o,t,e,r),a.push(o),o.insertBefore(n)}const c=a.splice(e,l-e);for(e=0,o=c.length;e<o;++e)c[e].dispose()}}unbindAllViews(){const e=this.views;for(let t=0,s=e.length;t<s;++t){const s=e[t];if(!s){const s=new XMLSerializer;throw new zt(`View is null or undefined inside "${this.location.getRootNode().host.nodeName}".`,{index:t,hydrationStage:this.controller.hydrationStage,viewsState:e.map((e=>e?"hydrated":"empty")),rootNodeContent:s.serializeToString(this.location.getRootNode())})}s.unbind()}}hydrateViews(e){if(!this.items)return;this.views=new Array(this.items.length);let t=this.location.previousSibling;for(;null!==t;){if(!_t(t)){t=t.previousSibling;continue}const s=Ee.parseRepeatEndMarker(t.data);if(null===s){t=t.previousSibling;continue}t.data="";const n=t.previousSibling;if(!n)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": end should never be null.`);let i=n,r=0;for(;null!==i;){if(_t(i))if(Ee.isRepeatViewEndMarker(i.data))r++;else if(Ee.isRepeatViewStartMarker(i.data)){if(!r){if(Ee.parseRepeatStartMarker(i.data)!==s)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": Mismatched start and end markers.`);i.data="",t=i.previousSibling,i=i.nextSibling;const r=e.hydrate(i,n);this.views[s]=r,this.bindView(r,this.items,s,this.controller);break}r--}i=i.previousSibling}if(!i)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": start should never be null.`)}}}class Ft{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,ee.enable()}createHTML(e){return Pe.comment(e(this))}createBehavior(){return new Lt(this)}}function Ht(e,t,s=It){const n=ce(e),i=ce(t);return new Ft(n,i,Object.assign(Object.assign({},It),s))}Qe.define(Ft);const Dt=e=>1===e.nodeType,Pt=e=>e?t=>1===t.nodeType&&t.matches(e):Dt;class Ut extends Xe{get id(){return this._id}set id(e){this._id=e,this._controllerProperty=`${e}-c`}bind(e){const t=e.targets[this.targetNodeId];t[this._controllerProperty]=e,this.updateTarget(e.source,this.computeNodes(t)),this.observe(t),e.onUnbind(this)}unbind(e){const t=e.targets[this.targetNodeId];this.updateTarget(e.source,p),this.disconnect(t),t[this._controllerProperty]=null}getSource(e){return e[this._controllerProperty].source}updateTarget(e,t){e[this.options.property]=t}computeNodes(e){let t=this.getNodes(e);return"filter"in this.options&&(t=t.filter(this.options.filter)),t}}const qt="slotchange";class Qt extends Ut{observe(e){e.addEventListener(qt,this)}disconnect(e){e.removeEventListener(qt,this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function Wt(e){return d(e)&&(e={property:e}),new Qt(e)}Qe.define(Qt);class Xt extends Ut{constructor(e){super(e),this.observerProperty=Symbol(),this.handleEvent=(e,t)=>{const s=t.target;this.updateTarget(this.getSource(s),this.computeNodes(s))},e.childList=!0}observe(e){let t=e[this.observerProperty];t||(t=new MutationObserver(this.handleEvent),t.toJSON=h,e[this.observerProperty]=t),t.target=e,t.observe(e,this.options)}disconnect(e){const t=e[this.observerProperty];t.target=null,t.disconnect()}getNodes(e){return"selector"in this.options?Array.from(e.querySelectorAll(this.options.selector)):Array.from(e.childNodes)}}function Jt(e){return d(e)&&(e={property:e}),new Xt(e)}function Kt(e,t,s,n){return new(s||(s=Promise))((function(i,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))}Qe.define(Xt),"function"==typeof SuppressedError&&SuppressedError;const Gt="boolean",Yt="reflect",Zt=Object.freeze({locate:b()}),es={toView:e=>e?"true":"false",fromView:e=>!(null==e||"false"===e||!1===e||0===e)},ts={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:es.fromView(e)};function ss(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const ns={toView(e){const t=ss(e);return t?t.toString():t},fromView:ss};class is{constructor(e,t,s=t.toLowerCase(),n=Yt,i){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=n,this.converter=i,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,n===Gt&&void 0===i&&(this.converter=es)}setValue(e,t){const s=e[this.fieldName],n=this.converter;void 0!==n&&(t=n.fromView(t)),s!==t&&(e[this.fieldName]=t,this.tryReflectToAttribute(e),this.hasCallback&&e[this.callbackName](s,t),e.$fastController.notify(this.name))}getValue(e){return _.track(e,this.name),e[this.fieldName]}onAttributeChangedCallback(e,t){this.guards.has(e)||(this.guards.add(e),this.setValue(e,t),this.guards.delete(e))}tryReflectToAttribute(e){const t=this.mode,s=this.guards;s.has(e)||"fromView"===t||j.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case Yt:const t=this.converter;T.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case Gt:T.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(Zt.locate(e));for(let n=0,i=t.length;n<i;++n){const i=t[n];if(void 0!==i)for(let t=0,n=i.length;t<n;++t){const n=i[t];d(n)?s.push(new is(e,n)):s.push(new is(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function rs(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),Zt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const os={mode:"open"},as={},ls=new Set,cs=f.getById(l.elementRegistry,(()=>g())),ds={deferAndHydrate:"defer-and-hydrate"};class hs{constructor(e,t=e.definition){var s;this.platformDefined=!1,d(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.templateOptions=t.templateOptions,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=is.collect(e,t.attributes),r=new Array(i.length),o={},a={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,a[t.attribute]=t,_.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=a,this.shadowOptions=void 0===t.shadowOptions?os:null===t.shadowOptions?void 0:Object.assign(Object.assign({},os),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?as:Object.assign(Object.assign({},as),t.elementOptions),this.styles=ue.normalize(t.styles),cs.register(this),_.defineProperty(hs.isRegistered,this.name),hs.isRegistered[this.name]=this.type}get isDefined(){return this.platformDefined}define(e=this.registry){var t,s;const n=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,n,this.elementOptions),null===(s=null===(t=this.lifecycleCallbacks)||void 0===t?void 0:t.elementDidDefine)||void 0===s||s.call(t,this.name)),this}static compose(e,t){return ls.has(e)||cs.getByType(e)?new hs(class extends e{},t):new hs(e,t)}static registerBaseType(e){ls.add(e)}static composeAsync(e,t){return new Promise((s=>{(ls.has(e)||cs.getByType(e))&&s(new hs(class extends e{},t));const n=new hs(e,t);_.getNotifier(n).subscribe({handleChange:()=>{var e,t;null===(t=null===(e=n.lifecycleCallbacks)||void 0===e?void 0:e.templateDidUpdate)||void 0===t||t.call(e,n.name),s(n)}},"template")}))}}hs.isRegistered={},hs.getByType=cs.getByType,hs.getForInstance=cs.getForInstance,hs.registerAsync=e=>Kt(void 0,void 0,void 0,(function*(){return new Promise((t=>{hs.isRegistered[e]&&t(hs.isRegistered[e]),_.getNotifier(hs.isRegistered).subscribe({handleChange:()=>t(hs.isRegistered[e])},e)}))})),_.defineProperty(hs.prototype,"template");class us{constructor(e){this.directive=e,this.location=null,this.controller=null,this.view=null,this.data=null,this.dataBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e)}bind(e){if(this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.data=this.dataBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),e.onUnbind(this),Re(this.template)&&Re(e)&&e.hydrationStage!==lt&&!this.view){const t=e.bindingViewBoundaries[this.directive.targetNodeId];t&&(this.view=this.template.hydrate(t.first,t.last),this.bindView(this.view))}else this.refreshView()}unbind(e){const t=this.view;null!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleChange(e,t){t===this.dataBindingObserver&&(this.data=this.dataBindingObserver.bind(this.controller)),(this.directive.templateBindingDependsOnData||t===this.templateBindingObserver)&&(this.template=this.templateBindingObserver.bind(this.controller)),this.refreshView()}bindView(e){e.isComposed?e.needsBindOnly&&(e.needsBindOnly=!1,e.bind(this.data)):(e.isComposed=!0,e.bind(this.data),e.insertBefore(this.location),e.$fastTemplate=this.template)}refreshView(){let e=this.view;const t=this.template;null===e?(this.view=e=t.create(),this.view.context.parent=this.controller.source,this.view.context.parentContext=this.controller.context):e.$fastTemplate!==t&&(e.isComposed&&(e.remove(),e.unbind()),this.view=e=t.create(),this.view.context.parent=this.controller.source,this.view.context.parentContext=this.controller.context),this.bindView(e)}}class fs{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.templateBindingDependsOnData=s}createHTML(e){return Pe.comment(e(this))}createBehavior(){return new us(this)}}Qe.define(fs);const ps=new Map,gs={":model":e=>e},bs=Symbol("RenderInstruction"),vs="default-view",ms=kt`
1
+ void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",{value:Object.create(null),configurable:!1,enumerable:!1,writable:!1});const e=globalThis.FAST,t={1101:"Must call ArrayObserver.enable() before observing arrays.",1201:"The DOM Policy can only be set once.",1202:"To bind innerHTML, you must use a TrustedTypesPolicy.",1203:"View=>Model update skipped. To use twoWay binding, the target property must be observable.",1204:"No host element is present. Cannot bind host with ${name}.",1205:"The requested binding behavior is not supported by the binding engine.",1206:"Calling html`` as a normal function invalidates the security guarantees provided by FAST.",1207:"The DOM Policy for an HTML template can only be set once.",1208:"The DOM Policy cannot be set after a template is compiled.",1209:"'${aspectName}' on '${tagName}' is blocked by the current DOMPolicy.",1401:"Missing FASTElement definition.",1501:"No registration for Context/Interface '${name}'.",1502:"Dependency injection resolver for '${key}' returned a null factory.",1503:"Invalid dependency injection resolver strategy specified '${strategy}'.",1504:"Unable to autoregister dependency.",1505:"Unable to resolve dependency injection key '${key}'.",1506:"'${name}' is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.",1507:"Attempted to jitRegister something that is not a constructor '${value}'. Did you forget to register this dependency?",1508:"Attempted to jitRegister an intrinsic type '${value}'. Did you forget to add @inject(Key)?",1509:"Attempted to jitRegister an interface '${value}'.",1510:"A valid resolver was not returned from the register method.",1511:"Key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?",1512:"'${key}' not registered. Did you forget to add @singleton()?",1513:"Cyclic dependency found '${name}'.",1514:"Injected properties that are updated on changes to DOM connectivity require the target object to be an instance of FASTElement."},s=/(\$\{\w+?})/g,n=/\$\{(\w+?)}/g,i=Object.freeze({});function r(e,t){return e.split(s).map((e=>{var s;const i=e.replace(n,"$1");return String(null!==(s=t[i])&&void 0!==s?s:e)})).join("")}let o;Object.assign(e,{addMessages(e){Object.assign(t,e)},warn(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Warning";console.warn(r(o,s))},error(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Error";return new Error(r(o,s))}});const a="fast-kernel";try{if(document.currentScript)o=document.currentScript.getAttribute(a);else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute(a)}}catch(e){o="isolate"}let l;switch(o){case"share":l=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":l=Object.freeze({updateQueue:1.2,observable:2.2,contextEvent:3.2,elementRegistry:4.2});break;default:const e=`-${Math.random().toString(36).substring(2,8)}`;l=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const c=e=>"function"==typeof e,d=e=>"string"==typeof e,h=()=>{};!function(){if("undefined"==typeof globalThis)if("undefined"!=typeof global)global.globalThis=global;else if("undefined"!=typeof self)self.globalThis=self;else if("undefined"!=typeof window)window.globalThis=window;else{const e=new Function("return this")();e.globalThis=e}}(),"requestIdleCallback"in globalThis||(globalThis.requestIdleCallback=function(e,t){const s=Date.now();return setTimeout((()=>{e({didTimeout:!!(null==t?void 0:t.timeout)&&Date.now()-s>=t.timeout,timeRemaining:()=>0})}),1)},globalThis.cancelIdleCallback=function(e){clearTimeout(e)});const u={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},u));const f=globalThis.FAST;if(void 0===f.getById){const e=Object.create(null);Reflect.defineProperty(f,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},u))}void 0===f.error&&Object.assign(f,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const p=Object.freeze([]);function g(){const e=new Map;return Object.freeze({register:t=>!e.has(t.type)&&(e.set(t.type,t),!0),getByType:t=>e.get(t),getForInstance(t){if(null!=t)return e.get(t.constructor)}})}function b(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let n=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==n;)s=e.get(n),n=Reflect.getPrototypeOf(n);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}function v(e){e.prototype.toJSON=h}const m=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,w=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let C=Object.freeze({createHTML:e=>w.createHTML(e),protect:(e,t,s,n)=>n});const S=C,T=Object.freeze({get policy(){return C},setPolicy(e){if(C!==S)throw f.error(1201);C=e},setAttribute(e,t,s){null==s?e.removeAttribute(t):e.setAttribute(t,s)},setBooleanAttribute(e,t,s){s?e.setAttribute(t,""):e.removeAttribute(t)}});function $(e,t,s,n){return(e,t,s,...i)=>{d(s)&&(s=s.replace(/(javascript:|vbscript:|data:)/,"")),n(e,t,s,...i)}}function x(e,t,s,n){throw f.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:x,onauxclick:x,onbeforeinput:x,onbeforematch:x,onblur:x,oncancel:x,oncanplay:x,oncanplaythrough:x,onchange:x,onclick:x,onclose:x,oncontextlost:x,oncontextmenu:x,oncontextrestored:x,oncopy:x,oncuechange:x,oncut:x,ondblclick:x,ondrag:x,ondragend:x,ondragenter:x,ondragleave:x,ondragover:x,ondragstart:x,ondrop:x,ondurationchange:x,onemptied:x,onended:x,onerror:x,onfocus:x,onformdata:x,oninput:x,oninvalid:x,onkeydown:x,onkeypress:x,onkeyup:x,onload:x,onloadeddata:x,onloadedmetadata:x,onloadstart:x,onmousedown:x,onmouseenter:x,onmouseleave:x,onmousemove:x,onmouseout:x,onmouseover:x,onmouseup:x,onpaste:x,onpause:x,onplay:x,onplaying:x,onprogress:x,onratechange:x,onreset:x,onresize:x,onscroll:x,onsecuritypolicyviolation:x,onseeked:x,onseeking:x,onselect:x,onslotchange:x,onstalled:x,onsubmit:x,onsuspend:x,ontimeupdate:x,ontoggle:x,onvolumechange:x,onwaiting:x,onwebkitanimationend:x,onwebkitanimationiteration:x,onwebkitanimationstart:x,onwebkittransitionend:x,onwheel:x},B={elements:{a:{[m.attribute]:{href:$},[m.property]:{href:$}},area:{[m.attribute]:{href:$},[m.property]:{href:$}},button:{[m.attribute]:{formaction:$},[m.property]:{formAction:$}},embed:{[m.attribute]:{src:x},[m.property]:{src:x}},form:{[m.attribute]:{action:$},[m.property]:{action:$}},frame:{[m.attribute]:{src:$},[m.property]:{src:$}},iframe:{[m.attribute]:{src:$},[m.property]:{src:$,srcdoc:x}},input:{[m.attribute]:{formaction:$},[m.property]:{formAction:$}},link:{[m.attribute]:{href:x},[m.property]:{href:x}},object:{[m.attribute]:{codebase:x,data:x},[m.property]:{codeBase:x,data:x}},script:{[m.attribute]:{src:x,text:x},[m.property]:{src:x,text:x,innerText:x,textContent:x}},style:{[m.property]:{innerText:x,textContent:x}}},aspects:{[m.attribute]:Object.assign({},O),[m.property]:Object.assign({innerHTML:x},O),[m.event]:Object.assign({},O)}};function k(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=r;break;default:s[n]=i}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function N(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=k(r,{});break;default:s[n]=k(i,r)}}for(const t in e)t in s||(s[t]=k(e[t],{}));return Object.freeze(s)}function A(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=N(i,{});break;default:s[n]=N(i,r)}}for(const t in e)t in s||(s[t]=N(e[t],{}));return Object.freeze(s)}function E(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const M=Object.freeze({create(e={}){var t,s;const n=null!==(t=e.trustedType)&&void 0!==t?t:function(){const e=e=>e;return globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:e}):{createHTML:e}}(),i=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=B,Object.freeze({elements:r.elements?A(r.elements,o.elements):o.elements,aspects:r.aspects?N(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>n.createHTML(e),protect(e,t,s,n){var r;const o=(null!=e?e:"").toLowerCase(),a=i.elements[o];if(a){const i=E(a,e,t,s,n);if(i)return i}return null!==(r=E(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),j=f.getById(l.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let n=!0;function i(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!n)throw e.length=0,s;t.push(s),setTimeout(i,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,n=e.length-t;s<n;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function a(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:a,next:()=>new Promise(a),process:o,setMode:e=>n=e})}));class I{constructor(e,t){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.subject=e,this.sub1=t}has(e){return void 0===this.spillover?this.sub1===e||this.sub2===e:-1!==this.spillover.indexOf(e)}subscribe(e){const t=this.spillover;if(void 0===t){if(this.has(e))return;if(void 0===this.sub1)return void(this.sub1=e);if(void 0===this.sub2)return void(this.sub2=e);this.spillover=[this.sub1,this.sub2,e],this.sub1=void 0,this.sub2=void 0}else{-1===t.indexOf(e)&&t.push(e)}}unsubscribe(e){const t=this.spillover;if(void 0===t)this.sub1===e?this.sub1=void 0:this.sub2===e&&(this.sub2=void 0);else{const s=t.indexOf(e);-1!==s&&t.splice(s,1)}}notify(e){const t=this.spillover,s=this.subject;if(void 0===t){const t=this.sub1,n=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==n&&n.handleChange(s,e)}else for(let n=0,i=t.length;n<i;++n)t[n].handleChange(s,e)}}class R{constructor(e){this.subscribers={},this.subjectSubscribers=null,this.subject=e}notify(e){var t,s;null===(t=this.subscribers[e])||void 0===t||t.notify(e),null===(s=this.subjectSubscribers)||void 0===s||s.notify(e)}subscribe(e,t){var s,n;let i;i=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new I(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new I(this.subject),i.subscribe(e)}unsubscribe(e,t){var s,n;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(n=this.subjectSubscribers)||void 0===n||n.unsubscribe(e)}}const V=Object.freeze({unknown:void 0,coupled:1}),_=f.getById(l.observable,(()=>{const e=j.enqueue,t=/(:|&&|\|\||if|\?\.)/,s=new WeakMap;let n,i=e=>{throw f.error(1101)};function r(e){var t;let n=null!==(t=e.$fastController)&&void 0!==t?t:s.get(e);return void 0===n&&(Array.isArray(e)?n=i(e):s.set(e,n=new R(e))),n}const o=b();class a{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==n&&n.watch(e,this.name),e[this.field]}setValue(e,t){const s=this.field,n=e[s];if(n!==t){e[s]=t;const i=e[this.callback];c(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class l extends I{constructor(e,t,s=!1){super(e,t),this.expression=e,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.isAsync=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}setMode(e){this.isAsync=this.needsQueue=e}bind(e){this.controller=e;const t=this.observe(e.source,e.context);return!e.isBound&&this.requiresUnbind(e)&&e.onUnbind(this),t}requiresUnbind(e){return e.sourceLifetime!==V.coupled||this.first!==this.last||this.first.propertySource!==e.source}unbind(e){this.dispose()}observe(e,t){this.needsRefresh&&null!==this.last&&this.dispose();const s=n;let i;n=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{n=s}return i}disconnect(){this.dispose()}dispose(){if(null!==this.last){let e=this.first;for(;void 0!==e;)e.notifier.unsubscribe(this,e.propertyName),e=e.next;this.last=null,this.needsRefresh=this.needsQueue=this.isAsync}}watch(e,t){const s=this.last,i=r(e),o=null===s?this.first:{};if(o.propertySource=e,o.propertyName=t,o.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;n=void 0,t=s.propertySource[s.propertyName],n=this,e===t&&(this.needsRefresh=!0)}s.next=o}this.last=o}handleChange(){this.needsQueue?(this.needsQueue=!1,e(this)):this.isAsync||this.call()}call(){null!==this.last&&(this.needsQueue=this.isAsync,this.notify(this))}*records(){let e=this.first;for(;void 0!==e;)yield e,e=e.next}}return v(l),Object.freeze({setArrayObserverFactory(e){i=e},getNotifier:r,track(e,t){n&&n.watch(e,t)},trackVolatile(){n&&(n.needsRefresh=!0)},notify(e,t){r(e).notify(t)},defineProperty(e,t){d(t)&&(t=new a(t)),o(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:o,binding(e,t,s=this.isVolatileBinding(e)){return new l(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function z(e,t){_.defineProperty(e,t)}function L(e,t,s){return Object.assign({},s,{get(){return _.trackVolatile(),s.get.apply(this)}})}const F=f.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),H=Object.freeze({default:{index:0,length:0,get event(){return H.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>F.get(),setEvent(e){F.set(e)}});class D{constructor(e,t,s){this.index=e,this.removed=t,this.addedCount=s}adjustTo(e){let t=this.index;const s=e.length;return t>s?t=s-this.addedCount:t<0&&(t=s+this.removed.length+t-this.addedCount),this.index=t<0?0:t,this}}class P{constructor(e){this.sorted=e}}const U=Object.freeze({reset:1,splice:2,optimized:3}),q=new D(0,p,0);q.reset=!0;const Q=[q];function W(e,t,s,n,i,r){let o=0,a=0;const l=Math.min(s-t,r-i);if(0===t&&0===i&&(o=function(e,t,s){for(let n=0;n<s;++n)if(e[n]!==t[n])return n;return s}(e,n,l)),s===e.length&&r===n.length&&(a=function(e,t,s){let n=e.length,i=t.length,r=0;for(;r<s&&e[--n]===t[--i];)r++;return r}(e,n,l-o)),i+=o,r-=a,(s-=a)-(t+=o)==0&&r-i==0)return p;if(t===s){const e=new D(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new D(t,[],s-t)];const c=function(e){let t=e.length-1,s=e[0].length-1,n=e[t][s];const i=[];for(;t>0||s>0;){if(0===t){i.push(2),s--;continue}if(0===s){i.push(3),t--;continue}const r=e[t-1][s-1],o=e[t-1][s],a=e[t][s-1];let l;l=o<a?o<r?o:r:a<r?a:r,l===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):l===o?(i.push(3),t--,n=o):(i.push(2),s--,n=a)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,a=s-t+1,l=new Array(o);let c,d;for(let e=0;e<o;++e)l[e]=new Array(a),l[e][0]=e;for(let e=0;e<a;++e)l[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<a;++r)e[t+r-1]===n[i+s-1]?l[s][r]=l[s-1][r-1]:(c=l[s-1][r]+1,d=l[s][r-1]+1,l[s][r]=c<d?c:d);return l}(e,t,s,n,i,r)),d=[];let h,u=t,f=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==h&&(d.push(h),h=void 0),u++,f++;break;case 1:void 0===h&&(h=new D(u,[],0)),h.addedCount++,u++,h.removed.push(n[f]),f++;break;case 2:void 0===h&&(h=new D(u,[],0)),h.addedCount++,u++;break;case 3:void 0===h&&(h=new D(u,[],0)),h.removed.push(n[f]),f++}return void 0!==h&&d.push(h),d}function X(e,t){let s=!1,n=0;for(let l=0;l<t.length;l++){const c=t[l];if(c.index+=n,s)continue;const d=(i=e.index,r=e.index+e.removed.length,o=c.index,a=c.index+c.addedCount,r<o||a<i?-1:r===o||a===i?0:i<o?r<a?r-o:a-o:a<r?a-i:r-i);if(d>=0){t.splice(l,1),l--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-d;const i=e.removed.length+c.removed.length-d;if(e.addedCount||i){let t=c.removed;if(e.index<c.index){const s=e.removed.slice(0,c.index-e.index);s.push(...t),t=s}if(e.index+e.removed.length>c.index+c.addedCount){const s=e.removed.slice(c.index+c.addedCount-e.index);t.push(...s)}e.removed=t,c.index<e.index&&(e.index=c.index)}else s=!0}else if(e.index<c.index){s=!0,t.splice(l,0,e),l++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,a;s||t.push(e)}let J=Object.freeze({support:U.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?p:function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)X(t[e],n);for(let t=0,i=n.length;t<i;++t){const i=n[t];1!==i.addedCount||1!==i.removed.length?s=s.concat(W(e,i.index,i.index+i.addedCount,i.removed,0,i.removed.length)):i.removed[0]!==e[i.index]&&s.push(i)}return s}(t,s):Q,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new D(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);e.sorted++;const r=[];for(let t=e.length-1;t>=0;t--)r.push(t);return t.addSort(new P(r)),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new D(0,[r],0)),r},sort(e,t,s,n){const i=new Map;for(let t=0,s=e.length;t<s;++t){const s=i.get(e[t])||[];i.set(e[t],[...s,t])}const r=s.apply(e,n);e.sorted++;const o=[];for(let t=0,s=e.length;t<s;++t){const s=i.get(e[t]);o.push(s[0]),i.set(e[t],s.splice(1))}return t.addSort(new P(o)),r},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(+n[0],i,n.length>2?n.length-2:0).adjustTo(e)),i},unshift(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new D(0,[],n.length).adjustTo(e)),i}});const K=Object.freeze({reset:Q,setDefaultStrategy(e){J=e}});function G(e,t,s,n=!0){Reflect.defineProperty(e,t,{value:s,enumerable:!1,writable:n})}class Y extends I{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.sorts=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this._sortObserver=void 0,this.call=this.flush,G(e,"$fastController",this)}get strategy(){return this._strategy}set strategy(e){this._strategy=e}get lengthObserver(){let e=this._lengthObserver;if(void 0===e){const t=this.subject;this._lengthObserver=e={length:t.length,handleChange(){this.length!==t.length&&(this.length=t.length,_.notify(e,"length"))}},this.subscribe(e)}return e}get sortObserver(){let e=this._sortObserver;if(void 0===e){const t=this.subject;this._sortObserver=e={sorted:t.sorted,handleChange(){this.sorted!==t.sorted&&(this.sorted=t.sorted,_.notify(e,"sorted"))}},this.subscribe(e)}return e}subscribe(e){this.flush(),super.subscribe(e)}addSplice(e){void 0===this.splices?this.splices=[e]:this.splices.push(e),this.enqueue()}addSort(e){void 0===this.sorts?this.sorts=[e]:this.sorts.push(e),this.enqueue()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.sorts,n=this.oldCollection;void 0===t&&void 0===n&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.sorts=void 0,this.oldCollection=void 0,void 0!==s?this.notify(s):this.notify((null!==(e=this._strategy)&&void 0!==e?e:J).normalize(n,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,j.enqueue(this))}}let Z=!1;const ee=Object.freeze({sorted:0,enable(){if(Z)return;Z=!0,_.setArrayObserverFactory((e=>new Y(e)));const e=Array.prototype;e.$fastPatch||(G(e,"$fastPatch",1),G(e,"sorted",0),[e.pop,e.push,e.reverse,e.shift,e.sort,e.splice,e.unshift].forEach((t=>{e[t.name]=function(...e){var s;const n=this.$fastController;return void 0===n?t.apply(this,e):(null!==(s=n.strategy)&&void 0!==s?s:J)[t.name](this,n,t,e)}})))}});function te(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(ee.enable(),t=_.getNotifier(e)),_.track(t.lengthObserver,"length"),e.length}function se(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(ee.enable(),t=_.getNotifier(e)),_.track(t.sortObserver,"sorted"),e.sorted}class ne{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class ie extends ne{createObserver(e){return _.binding(this.evaluate,e,this.isVolatile)}}function re(e,t,s=_.isVolatileBinding(e)){return new ie(e,t,s)}function oe(e,t){const s=new ie(e);return s.options=t,s}class ae extends ne{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function le(e,t){return new ae(e,t)}function ce(e){return c(e)?re(e):e instanceof ne?e:le((()=>e))}let de;function he(e){return e.map((e=>e instanceof ue?he(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}v(ae);class ue{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ue?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(de),this._strategy}addStylesTo(e){this.strategy.addStylesTo(e),this.targets.add(e)}removeStylesFrom(e){this.strategy.removeStylesFrom(e),this.targets.delete(e)}isAttachedTo(e){return this.targets.has(e)}withBehaviors(...e){return this.behaviors=null===this.behaviors?e:this.behaviors.concat(e),this}withStrategy(e){return this._strategy=new e(he(this.styles)),this}static setDefaultStrategy(e){de=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ue(e):e instanceof ue?e:new ue([e])}}ue.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const fe=g(),pe=Object.freeze({getForInstance:fe.getForInstance,getByType:fe.getByType,define:e=>(fe.register({type:e}),e)});function ge(){return function(e){pe.define(e)}}function be(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class ve{constructor(e,t){this.dataBinding=e,this.targetAspect=t}createCSS(e){return e(this),`var(${this.targetAspect})`}addedCallback(e){var t;const s=e.source;if(!s.$cssBindings){s.$cssBindings=new Map;const e=s.setAttribute;s.setAttribute=(t,n)=>{e.call(s,t,n),"style"===t&&s.$cssBindings.forEach(((e,t)=>be(t,e.controller,e.observer)))}}const n=null!==(t=e[this.targetAspect])&&void 0!==t?t:e[this.targetAspect]=this.dataBinding.createObserver(this,this);n.controller=e,e.source.$cssBindings.set(this,{controller:e,observer:n})}connectedCallback(e){be(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){be(this,t.controller,t)}}pe.define(ve);const me=`${Math.random().toString(36).substring(2,8)}`;let ye=0;const we=()=>`--v${me}${++ye}`;function Ce(e,t){const s=[];let n="";const i=[],r=e=>{i.push(e)};for(let i=0,o=e.length-1;i<o;++i){n+=e[i];let o=t[i];c(o)?o=new ve(re(o),we()).createCSS(r):o instanceof ne?o=new ve(o,we()).createCSS(r):void 0!==pe.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ue||o instanceof CSSStyleSheet?(""!==n.trim()&&(s.push(n),n=""),s.push(o)):n+=o}return n+=e[e.length-1],""!==n.trim()&&s.push(n),{styles:s,behaviors:i}}const Se=(e,...t)=>{const{styles:s,behaviors:n}=Ce(e,t),i=new ue(s);return n.length?i.withBehaviors(...n):i};class Te{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(d(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ue(s))}createCSS(e){return this.behaviors.forEach(e),this.styles&&e(this),this.css}addedCallback(e){e.addStyles(this.styles)}removedCallback(e){e.removeStyles(this.styles)}}pe.define(Te),Se.partial=(e,...t)=>{const{styles:s,behaviors:n}=Ce(e,t);return new Te(s,n)};const $e=/fe-b\$\$start\$\$(\d+)\$\$(.+)\$\$fe-b/,xe=/fe-b\$\$end\$\$(\d+)\$\$(.+)\$\$fe-b/,Oe=/fe-repeat\$\$start\$\$(\d+)\$\$fe-repeat/,Be=/fe-repeat\$\$end\$\$(\d+)\$\$fe-repeat/,ke=/^(?:.{0,1000})fe-eb\$\$start\$\$(.+?)\$\$fe-eb/,Ne=/fe-eb\$\$end\$\$(.{0,1000})\$\$fe-eb(?:.{0,1000})$/;function Ae(e){return e&&e.nodeType===Node.COMMENT_NODE}const Ee=Object.freeze({attributeMarkerName:"data-fe-b",attributeBindingSeparator:" ",contentBindingStartMarker:(e,t)=>`fe-b$$start$$${e}$$${t}$$fe-b`,contentBindingEndMarker:(e,t)=>`fe-b$$end$$${e}$$${t}$$fe-b`,repeatStartMarker:e=>`fe-repeat$$start$$${e}$$fe-repeat`,repeatEndMarker:e=>`fe-repeat$$end$$${e}$$fe-repeat`,isContentBindingStartMarker:e=>$e.test(e),isContentBindingEndMarker:e=>xe.test(e),isRepeatViewStartMarker:e=>Oe.test(e),isRepeatViewEndMarker:e=>Be.test(e),isElementBoundaryStartMarker:e=>Ae(e)&&ke.test(e.data.trim()),isElementBoundaryEndMarker:e=>Ae(e)&&Ne.test(e.data),parseAttributeBinding(e){const t=e.getAttribute(this.attributeMarkerName);return null===t?t:t.split(this.attributeBindingSeparator).map((e=>parseInt(e)))},parseEnumeratedAttributeBinding(e){const t=[],s=this.attributeMarkerName.length+1,n=`${this.attributeMarkerName}-`;for(const i of e.getAttributeNames())if(i.startsWith(n)){const e=Number(i.slice(s));if(Number.isNaN(e))throw new Error(`Invalid attribute marker name: ${i}. Expected format is ${n}<number>.`);t.push(e)}return 0===t.length?null:t},parseContentBindingStartMarker:e=>Ie($e,e),parseContentBindingEndMarker:e=>Ie(xe,e),parseRepeatStartMarker:e=>Me(Oe,e),parseRepeatEndMarker:e=>Me(Be,e),parseElementBoundaryStartMarker:e=>je(ke,e.trim()),parseElementBoundaryEndMarker:e=>je(Ne,e)});function Me(e,t){const s=e.exec(t);return null===s?s:parseInt(s[1])}function je(e,t){const s=e.exec(t);return null===s?s:s[1]}function Ie(e,t){const s=e.exec(t);return null===s?s:[parseInt(s[1]),s[2]]}const Re=Symbol.for("fe-hydration");function Ve(e){return e[Re]===Re}const _e=`fast-${Math.random().toString(36).substring(2,8)}`,ze=`${_e}{`,Le=`}${_e}`,Fe=Le.length;let He=0;const De=()=>`${_e}-${++He}`,Pe=Object.freeze({interpolation:e=>`${ze}${e}${Le}`,attribute:e=>`${De()}="${ze}${e}${Le}"`,comment:e=>`\x3c!--${ze}${e}${Le}--\x3e`}),Ue=Object.freeze({parse(e,t){const s=e.split(ze);if(1===s.length)return null;const n=[];for(let e=0,i=s.length;e<i;++e){const i=s[e],r=i.indexOf(Le);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Fe)}""!==o&&n.push(o)}return n}}),qe=g(),Qe=Object.freeze({getForInstance:qe.getForInstance,getByType:qe.getByType,define:(e,t)=>((t=t||{}).type=e,qe.register(t),e),assignAspect(e,t){if(t)switch(e.sourceAspect=t,t[0]){case":":e.targetAspect=t.substring(1),e.aspectType="classList"===e.targetAspect?m.tokenList:m.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=m.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=m.event;break;default:e.targetAspect=t,e.aspectType=m.attribute}else e.aspectType=m.content}});function We(e){return function(t){Qe.define(t,e)}}class Xe{constructor(e){this.options=e}createHTML(e){return Pe.attribute(e(this))}createBehavior(){return this}}v(Xe);class Je extends Error{constructor(e,t,s){super(e),this.factories=t,this.node=s}}function Ke(e){return e.nodeType===Node.COMMENT_NODE}function Ge(e){return e.nodeType===Node.TEXT_NODE}function Ye(e,t){const s=document.createRange();return s.setStart(e,0),s.setEnd(t,Ke(t)||Ge(t)?t.data.length:t.childNodes.length),s}function Ze(e,t,s){var n;const i=null!==(n=Ee.parseAttributeBinding(e))&&void 0!==n?n:Ee.parseEnumeratedAttributeBinding(e);if(null!==i){for(const n of i){if(!t[n])throw new Je(`HydrationView was unable to successfully target factory on ${e.nodeName} inside ${e.getRootNode().host.nodeName}. This likely indicates a template mismatch between SSR rendering and hydration.`,t,e);tt(t[n],e,s)}e.removeAttribute(Ee.attributeMarkerName)}}function et(e,t,s,n,i){if(Ee.isElementBoundaryStartMarker(e))!function(e,t){const s=Ee.parseElementBoundaryStartMarker(e.data);let n=t.nextSibling();for(;null!==n;){if(Ke(n)){const e=Ee.parseElementBoundaryEndMarker(n.data);if(e&&e===s)break}n=t.nextSibling()}}(e,t);else if(Ee.isContentBindingStartMarker(e.data)){const r=Ee.parseContentBindingStartMarker(e.data);if(null===r)return;const[o,a]=r,l=s[o],c=[];let d=t.nextSibling();e.data="";const h=d;for(;null!==d;){if(Ke(d)){const e=Ee.parseContentBindingEndMarker(d.data);if(e&&e[1]===a)break}c.push(d),d=t.nextSibling()}if(null===d){const t=e.getRootNode();throw new Error(`Error hydrating Comment node inside "${function(e){return e instanceof DocumentFragment&&"mode"in e}(t)?t.host.nodeName:t.nodeName}".`)}if(d.data="",1===c.length&&Ge(c[0]))tt(l,c[0],n);else{d!==h&&null!==d.previousSibling&&(i[l.targetNodeId]={first:h,last:d.previousSibling});tt(l,d.parentNode.insertBefore(document.createTextNode(""),d),n)}}}function tt(e,t,s){if(void 0===e.targetNodeId)throw new Error("Factory could not be target to the node");s[e.targetNodeId]=t}var st;function nt(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;){if(n=i.nextSibling,!n)throw new Error(`Unmatched first/last child inside "${t.getRootNode().host.nodeName}".`);s.removeChild(i),i=n}s.removeChild(t)}class it{constructor(){this.index=0,this.length=0}get event(){return H.getEvent()}get isEven(){return this.index%2==0}get isOdd(){return this.index%2!=0}get isFirst(){return 0===this.index}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}eventDetail(){return this.event.detail}eventTarget(){return this.event.target}}class rt extends it{constructor(e,t,s){super(),this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=V.unknown,this.context=this,this.firstChild=e.firstChild,this.lastChild=e.lastChild}appendTo(e){e.appendChild(this.fragment)}insertBefore(e){if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,n=this.firstChild;for(;n!==t;)s=n.nextSibling,e.appendChild(n),n=s;e.appendChild(t)}dispose(){nt(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}bind(e,t=this){if(this.source===e)return;let s=this.behaviors;if(null===s){this.source=e,this.context=t,this.behaviors=s=new Array(this.factories.length);const n=this.factories;for(let e=0,t=n.length;e<t;++e){const t=n[e].createBehavior();t.bind(this),s[e]=t}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=s.length;e<t;++e)s[e].bind(this)}this.isBound=!0}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}static disposeContiguousBatch(e){if(0!==e.length){nt(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}v(rt),_.defineProperty(rt.prototype,"index"),_.defineProperty(rt.prototype,"length");const ot="unhydrated",at="hydrating",lt="hydrated";class ct extends Error{constructor(e,t,s,n){super(e),this.factory=t,this.fragment=s,this.templateString=n}}st=Re,v(class extends it{constructor(e,t,s,n){super(),this.firstChild=e,this.lastChild=t,this.sourceTemplate=s,this.hostBindingTarget=n,this[st]=Re,this.context=this,this.source=null,this.isBound=!1,this.sourceLifetime=V.unknown,this.unbindables=[],this.fragment=null,this.behaviors=null,this._hydrationStage=ot,this._bindingViewBoundaries={},this._targets={},this.factories=s.compile().factories}get hydrationStage(){return this._hydrationStage}get targets(){return this._targets}get bindingViewBoundaries(){return this._bindingViewBoundaries}insertBefore(e){if(null!==this.fragment)if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}appendTo(e){null!==this.fragment&&e.appendChild(this.fragment)}remove(){const e=this.fragment||(this.fragment=document.createDocumentFragment()),t=this.lastChild;let s,n=this.firstChild;for(;n!==t;){if(s=n.nextSibling,!s)throw new Error(`Unmatched first/last child inside "${t.getRootNode().host.nodeName}".`);e.appendChild(n),n=s}e.appendChild(t)}bind(e,t=this){var s;if(this.hydrationStage!==lt&&(this._hydrationStage=at),this.source===e)return;let n=this.behaviors;if(null===n){this.source=e,this.context=t;try{const{targets:e,boundaries:t}=function(e,t,s){const n=Ye(e,t),i=n.commonAncestorContainer,r=document.createTreeWalker(i,NodeFilter.SHOW_ELEMENT+NodeFilter.SHOW_COMMENT+NodeFilter.SHOW_TEXT,{acceptNode:e=>0===n.comparePoint(e,0)?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}),o={},a={};let l=r.currentNode=e;for(;null!==l;){switch(l.nodeType){case Node.ELEMENT_NODE:Ze(l,s,o);break;case Node.COMMENT_NODE:et(l,r,s,o,a)}l=r.nextNode()}return n.detach(),{targets:o,boundaries:a}}(this.firstChild,this.lastChild,this.factories);this._targets=e,this._bindingViewBoundaries=t}catch(e){if(e instanceof Je){let t=this.sourceTemplate.html;"string"!=typeof t&&(t=t.innerHTML),e.templateString=t}throw e}this.behaviors=n=new Array(this.factories.length);const i=this.factories;for(let e=0,t=i.length;e<t;++e){const t=i[e];if("h"===t.targetNodeId&&this.hostBindingTarget&&tt(t,this.hostBindingTarget,this._targets),!(t.targetNodeId in this.targets)){let e=this.sourceTemplate.html;"string"!=typeof e&&(e=e.innerHTML);const n=(null===(s=this.firstChild)||void 0===s?void 0:s.getRootNode()).host,i=t,r=[`HydrationView was unable to successfully target bindings inside "<${((null==n?void 0:n.nodeName)||"unknown").toLowerCase()}>".`,"\nMismatch Details:",` - Expected target node ID: "${t.targetNodeId}"`,` - Available target IDs: [${Object.keys(this.targets).join(", ")||"none"}]`];throw t.targetTagName&&r.push(` - Expected tag name: "${t.targetTagName}"`),i.sourceAspect&&r.push(` - Source aspect: "${i.sourceAspect}"`),void 0!==i.aspectType&&r.push(` - Aspect type: ${i.aspectType}`),r.push("\nThis usually means:"," 1. The server-rendered HTML doesn't match the client template"," 2. The hydration markers are missing or corrupted"," 3. The DOM structure was modified before hydration",`\nTemplate: ${e.slice(0,200)}${e.length>200?"...":""}`),new ct(r.join("\n"),t,Ye(this.firstChild,this.lastChild).cloneContents(),e)}{const s=t.createBehavior();s.bind(this),n[e]=s}}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=n.length;e<t;++e)n[e].bind(this)}this.isBound=!0,this._hydrationStage=lt}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}dispose(){nt(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}});const dt={[m.attribute]:T.setAttribute,[m.booleanAttribute]:T.setBooleanAttribute,[m.property]:(e,t,s)=>e[t]=s,[m.content]:function(e,t,s,n){if(null==s&&(s=""),function(e){return void 0!==e.create}(s)){e.textContent="";let t=e.$fastView;if(void 0===t)if(Ve(n)&&Ve(s)&&void 0!==n.bindingViewBoundaries[this.targetNodeId]&&n.hydrationStage!==lt){const e=n.bindingViewBoundaries[this.targetNodeId];t=s.hydrate(e.first,e.last)}else t=s.create();else e.$fastTemplate!==s&&(t.isComposed&&(t.remove(),t.unbind()),t=s.create());t.isComposed?t.needsBindOnly&&(t.needsBindOnly=!1,t.bind(n.source,n.context)):(t.isComposed=!0,t.bind(n.source,n.context),t.insertBefore(e),e.$fastView=t,e.$fastTemplate=s)}else{const t=e.$fastView;void 0!==t&&t.isComposed&&(t.isComposed=!1,t.remove(),t.needsBindOnly?t.needsBindOnly=!1:t.unbind()),e.textContent=s}},[m.tokenList]:function(e,t,s){var n;const i=`${this.id}-t`,r=null!==(n=e[i])&&void 0!==n?n:e[i]={v:0,cv:Object.create(null)},o=r.cv;let a=r.v;const l=e[t];if(null!=s&&s.length){const e=s.split(/\s+/);for(let t=0,s=e.length;t<s;++t){const s=e[t];""!==s&&(o[s]=a,l.add(s))}}if(r.v=a+1,0!==a){a-=1;for(const e in o)o[e]===a&&l.remove(e)}},[m.event]:()=>{}};class ht{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=m.content}createHTML(e){return Pe.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=dt[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw f.error(1205);this.data=`${this.id}-d`,this.updateTarget=s.protect(this.targetTagName,this.aspectType,this.targetAspect,t)}return this}bind(e){var t;const s=e.targets[this.targetNodeId],n=Ve(e)&&e.hydrationStage&&e.hydrationStage!==lt;switch(this.aspectType){case m.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case m.content:e.onUnbind(this);default:const i=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);if(i.target=s,i.controller=e,n&&(this.aspectType===m.attribute||this.aspectType===m.booleanAttribute)){i.bind(e);break}this.updateTarget(s,this.targetAspect,i.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){H.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);H.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,n=t.controller;this.updateTarget(s,this.targetAspect,t.bind(n),n)}}Qe.define(ht,{aspected:!0});const ut=(e,t)=>`${e}.${t}`,ft={},pt={index:0,node:null};function gt(e){e.startsWith("fast-")||f.warn(1204,{name:e})}const bt=new Proxy(document.createElement("div"),{get(e,t){gt(t);const s=Reflect.get(e,t);return c(s)?s.bind(e):s},set:(e,t,s)=>(gt(t),Reflect.set(e,t,s))});class vt{constructor(e,t,s){this.fragment=e,this.directives=t,this.policy=s,this.proto=null,this.nodeIds=new Set,this.descriptors={},this.factories=[]}addFactory(e,t,s,n,i){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,n)),e.id=null!==(r=e.id)&&void 0!==r?r:De(),e.targetNodeId=s,e.targetTagName=i,e.policy=null!==(o=e.policy)&&void 0!==o?o:this.policy,this.factories.push(e)}freeze(){return this.proto=Object.create(null,this.descriptors),this}addTargetDescriptor(e,t,s){const n=this.descriptors;if("r"===t||"h"===t||n[t])return;if(!n[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),n=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,n)}let i=ft[t];if(!i){const n=`_${t}`;ft[t]=i={get(){var t;return null!==(t=this[n])&&void 0!==t?t:this[n]=this[e].childNodes[s]}}}n[t]=i}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:bt;for(const e of this.nodeIds)s[e];return new rt(t,this.factories,s)}}function mt(e,t,s,n,i,r=!1){const o=s.attributes,a=e.directives;for(let l=0,c=o.length;l<c;++l){const d=o[l],h=d.value,u=Ue.parse(h,a);let f=null;null===u?r&&(f=new ht(le((()=>h),e.policy)),Qe.assignAspect(f,d.name)):f=St.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(d),l--,c--,e.addFactory(f,t,n,i,s.tagName))}}function yt(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=wt(e,s,i,n);i=t.node,n=t.index}}function wt(e,t,s,n){const i=ut(t,n);switch(s.nodeType){case 1:mt(e,t,s,i,n),yt(e,s,i);break;case 3:return function(e,t,s,n,i){const r=Ue.parse(t.textContent,e.directives);if(null===r)return pt.node=t.nextSibling,pt.index=i+1,pt;let o,a=o=t;for(let t=0,l=r.length;t<l;++t){const l=r[t];0!==t&&(i++,n=ut(s,i),o=a.parentNode.insertBefore(document.createTextNode(""),a.nextSibling)),d(l)?o.textContent=l:(o.textContent=" ",Qe.assignAspect(l),e.addFactory(l,s,n,i,null)),a=o}return pt.index=i+1,pt.node=a.nextSibling,pt}(e,s,t,i,n);case 8:const r=Ue.parse(s.data,e.directives);null!==r&&e.addFactory(St.aggregate(r),t,i,n,null)}return pt.index=n+1,pt.node=s.nextSibling,pt}const Ct="TEMPLATE",St={compile(e,t,s=T.policy){let n;if(d(e)){n=document.createElement(Ct),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&t.tagName===Ct&&(n=t)}else n=e;n.content.firstChild||n.content.lastChild||n.content.appendChild(document.createComment(""));const i=document.adoptNode(n.content),r=new vt(i,t,s);var o,a;return mt(r,"",n,"h",0,!0),o=i.firstChild,a=t,(o&&8==o.nodeType&&null!==Ue.parse(o.data,a)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),yt(r,i,"r"),pt.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=T.policy){if(1===e.length)return e[0];let s,n,i=!1;const r=e.length,o=e.map((e=>d(e)?()=>e:(s=e.sourceAspect||s,i=i||e.dataBinding.isVolatile,n=n||e.dataBinding.policy,e.dataBinding.evaluate))),a=new ht(re(((e,t)=>{let s="";for(let n=0;n<r;++n)s+=o[n](e,t);return s}),null!=n?n:t,i));return Qe.assignAspect(a,s),a}},Tt=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,$t=Object.create(null);class xt{constructor(e,t=$t){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ot(e,t,s,n=Qe.getForInstance(e)){if(n.aspected){const s=Tt.exec(t);null!==s&&Qe.assignAspect(e,s[2])}return e.createHTML(s)}xt.empty=new xt(""),Qe.define(xt);class Bt{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}compile(){return null===this.result&&(this.result=St.compile(this.html,this.factories,this.policy)),this.result}create(e){return this.compile().createView(e)}inline(){return new xt(d(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw f.error(1208);if(this.policy)throw f.error(1207);return this.policy=e,this}render(e,t,s){const n=this.create(s);return n.bind(e),n.appendTo(t),n}static create(e,t,s){let n="";const i=Object.create(null),r=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=De();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,a=t[s];if(n+=i,c(a))a=new ht(re(a));else if(a instanceof ne)a=new ht(a);else if(!(o=Qe.getForInstance(a))){const e=a;a=new ht(le((()=>e)))}n+=Ot(a,i,r,o)}return new Bt(n+e[e.length-1],i,s)}}v(Bt);const kt=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Bt.create(e,t);throw f.error(1206)};kt.partial=e=>new xt(e);class Nt extends Xe{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}Qe.define(Nt);const At=e=>new Nt(e),Et=()=>null;function Mt(e){return void 0===e?Et:c(e)?e:()=>e}function jt(e,t,s){const n=c(e)?e:()=>e,i=Mt(t),r=Mt(s);return(e,t)=>n(e,t)?i(e,t):r(e,t)}const It=Object.freeze({positioning:!1,recycle:!0});function Rt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.bind(t[s])}function Vt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}function _t(e){return e.nodeType===Node.COMMENT_NODE}class zt extends Error{constructor(e,t){super(e),this.propertyBag=t}}class Lt{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=Rt,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=Vt)}bind(e){this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.items=this.itemsBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),this.observeItems(!0),Ve(this.template)&&Ve(e)&&e.hydrationStage!==lt?this.hydrateViews(this.template):this.refreshAllViews(),e.onUnbind(this)}unbind(){null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews()}handleChange(e,t){if(t===this.itemsBindingObserver)this.items=this.itemsBindingObserver.bind(this.controller),this.observeItems(),this.refreshAllViews();else if(t===this.templateBindingObserver)this.template=this.templateBindingObserver.bind(this.controller),this.refreshAllViews(!0);else{if(!t[0])return;t[0].reset?this.refreshAllViews():t[0].sorted?this.updateSortedViews(t):this.updateSplicedViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=p);const t=this.itemsObserver,s=this.itemsObserver=_.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateSortedViews(e){const t=this.views;for(let s=0,n=e.length;s<n;++s){const n=e[s].sorted.slice(),i=n.slice().sort();for(let e=0,s=n.length;e<s;++e){const s=n.find((t=>n[e]===i[t]));if(s!==e){const n=i.splice(s,1);i.splice(e,0,...n);const r=t[e],o=r?r.firstChild:this.location;t[s].remove(),t[s].insertBefore(o);const a=t.splice(s,1);t.splice(e,0,...a)}}}}updateSplicedViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,a=[];let l=0,c=0;for(let d=0,h=e.length;d<h;++d){const h=e[d],u=h.removed;let f=0,p=h.index;const g=p+h.addedCount,b=t.splice(h.index,u.length),v=c=a.length+b.length;for(;p<g;++p){const e=t[p],d=e?e.firstChild:this.location;let h;o&&c>0?(f<=v&&b.length>0?(h=b[f],f++):(h=a[l],l++),c--):h=i.create(),t.splice(p,0,h),s(h,n,p,r),h.insertBefore(d)}b[f]&&a.push(...b.slice(f))}for(let e=l,t=a.length;e<t;++e)a[e].dispose();if(this.directive.options.positioning)for(let e=0,s=t.length;e<s;++e){const n=t[e].context;n.length=s,n.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,n=this.location,i=this.bindView,r=this.controller;let o=t.length,a=this.views,l=a.length;if(0!==o&&!e&&this.directive.options.recycle||(rt.disposeContiguousBatch(a),l=0),0===l){this.views=a=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),a[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<l){const n=a[e];if(!n){const t=new XMLSerializer;throw new zt(`View is null or undefined inside "${this.location.getRootNode().host.nodeName}".`,{index:e,hydrationStage:this.controller.hydrationStage,itemsLength:o,viewsState:a.map((e=>e?"hydrated":"empty")),viewTemplateString:t.serializeToString(s.create().fragment),rootNodeContent:t.serializeToString(this.location.getRootNode())})}i(n,t,e,r)}else{const o=s.create();i(o,t,e,r),a.push(o),o.insertBefore(n)}const c=a.splice(e,l-e);for(e=0,o=c.length;e<o;++e)c[e].dispose()}}unbindAllViews(){const e=this.views;for(let t=0,s=e.length;t<s;++t){const s=e[t];if(!s){const s=new XMLSerializer;throw new zt(`View is null or undefined inside "${this.location.getRootNode().host.nodeName}".`,{index:t,hydrationStage:this.controller.hydrationStage,viewsState:e.map((e=>e?"hydrated":"empty")),rootNodeContent:s.serializeToString(this.location.getRootNode())})}s.unbind()}}hydrateViews(e){if(!this.items)return;this.views=new Array(this.items.length);let t=this.location.previousSibling;for(;null!==t;){if(!_t(t)){t=t.previousSibling;continue}const s=Ee.parseRepeatEndMarker(t.data);if(null===s){t=t.previousSibling;continue}t.data="";const n=t.previousSibling;if(!n)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": end should never be null.`);let i=n,r=0;for(;null!==i;){if(_t(i))if(Ee.isRepeatViewEndMarker(i.data))r++;else if(Ee.isRepeatViewStartMarker(i.data)){if(!r){if(Ee.parseRepeatStartMarker(i.data)!==s)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": Mismatched start and end markers.`);i.data="",t=i.previousSibling,i=i.nextSibling;const r=e.hydrate(i,n);this.views[s]=r,this.bindView(r,this.items,s,this.controller);break}r--}i=i.previousSibling}if(!i)throw new Error(`Error when hydrating inside "${this.location.getRootNode().host.nodeName}": start should never be null.`)}}}class Ft{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,ee.enable()}createHTML(e){return Pe.comment(e(this))}createBehavior(){return new Lt(this)}}function Ht(e,t,s=It){const n=ce(e),i=ce(t);return new Ft(n,i,Object.assign(Object.assign({},It),s))}Qe.define(Ft);const Dt=e=>1===e.nodeType,Pt=e=>e?t=>1===t.nodeType&&t.matches(e):Dt;class Ut extends Xe{get id(){return this._id}set id(e){this._id=e,this._controllerProperty=`${e}-c`}bind(e){const t=e.targets[this.targetNodeId];t[this._controllerProperty]=e,this.updateTarget(e.source,this.computeNodes(t)),this.observe(t),e.onUnbind(this)}unbind(e){const t=e.targets[this.targetNodeId];this.updateTarget(e.source,p),this.disconnect(t),t[this._controllerProperty]=null}getSource(e){return e[this._controllerProperty].source}updateTarget(e,t){e[this.options.property]=t}computeNodes(e){let t=this.getNodes(e);return"filter"in this.options&&(t=t.filter(this.options.filter)),t}}const qt="slotchange";class Qt extends Ut{observe(e){e.addEventListener(qt,this)}disconnect(e){e.removeEventListener(qt,this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function Wt(e){return d(e)&&(e={property:e}),new Qt(e)}Qe.define(Qt);class Xt extends Ut{constructor(e){super(e),this.observerProperty=Symbol(),this.handleEvent=(e,t)=>{const s=t.target;this.updateTarget(this.getSource(s),this.computeNodes(s))},e.childList=!0}observe(e){let t=e[this.observerProperty];t||(t=new MutationObserver(this.handleEvent),t.toJSON=h,e[this.observerProperty]=t),t.target=e,t.observe(e,this.options)}disconnect(e){const t=e[this.observerProperty];t.target=null,t.disconnect()}getNodes(e){return"selector"in this.options?Array.from(e.querySelectorAll(this.options.selector)):Array.from(e.childNodes)}}function Jt(e){return d(e)&&(e={property:e}),new Xt(e)}function Kt(e,t,s,n){return new(s||(s=Promise))((function(i,r){function o(e){try{l(n.next(e))}catch(e){r(e)}}function a(e){try{l(n.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,a)}l((n=n.apply(e,t||[])).next())}))}Qe.define(Xt),"function"==typeof SuppressedError&&SuppressedError;const Gt="boolean",Yt="reflect",Zt=Object.freeze({locate:b()}),es={toView:e=>e?"true":"false",fromView:e=>!(null==e||"false"===e||!1===e||0===e)},ts={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:es.fromView(e)};function ss(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const ns={toView(e){const t=ss(e);return t?t.toString():t},fromView:ss};class is{constructor(e,t,s=t.toLowerCase(),n=Yt,i){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=n,this.converter=i,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,n===Gt&&void 0===i&&(this.converter=es)}setValue(e,t){const s=e[this.fieldName],n=this.converter;void 0!==n&&(t=n.fromView(t)),s!==t&&(e[this.fieldName]=t,this.tryReflectToAttribute(e),this.hasCallback&&e[this.callbackName](s,t),e.$fastController.notify(this.name))}getValue(e){return _.track(e,this.name),e[this.fieldName]}onAttributeChangedCallback(e,t){this.guards.has(e)||(this.guards.add(e),this.setValue(e,t),this.guards.delete(e))}tryReflectToAttribute(e){const t=this.mode,s=this.guards;s.has(e)||"fromView"===t||j.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case Yt:const t=this.converter;T.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case Gt:T.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(Zt.locate(e));for(let n=0,i=t.length;n<i;++n){const i=t[n];if(void 0!==i)for(let t=0,n=i.length;t<n;++t){const n=i[t];d(n)?s.push(new is(e,n)):s.push(new is(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function rs(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),Zt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const os={mode:"open"},as={},ls=new Set,cs=f.getById(l.elementRegistry,(()=>g())),ds={deferAndHydrate:"defer-and-hydrate"};class hs{constructor(e,t=e.definition){var s;this.platformDefined=!1,d(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.templateOptions=t.templateOptions,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=is.collect(e,t.attributes),r=new Array(i.length),o={},a={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,a[t.attribute]=t,_.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=a,this.shadowOptions=void 0===t.shadowOptions?os:null===t.shadowOptions?void 0:Object.assign(Object.assign({},os),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?as:Object.assign(Object.assign({},as),t.elementOptions),this.styles=ue.normalize(t.styles),cs.register(this),_.defineProperty(hs.isRegistered,this.name),hs.isRegistered[this.name]=this.type}get isDefined(){return this.platformDefined}define(e=this.registry){var t,s;const n=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,n,this.elementOptions),null===(s=null===(t=this.lifecycleCallbacks)||void 0===t?void 0:t.elementDidDefine)||void 0===s||s.call(t,this.name)),this}static compose(e,t){return ls.has(e)||cs.getByType(e)?new hs(class extends e{},t):new hs(e,t)}static registerBaseType(e){ls.add(e)}static composeAsync(e,t){return new Promise((s=>{(ls.has(e)||cs.getByType(e))&&s(new hs(class extends e{},t));const n=new hs(e,t);_.getNotifier(n).subscribe({handleChange:()=>{var e,t;null===(t=null===(e=n.lifecycleCallbacks)||void 0===e?void 0:e.templateDidUpdate)||void 0===t||t.call(e,n.name),s(n)}},"template")}))}}hs.isRegistered={},hs.getByType=cs.getByType,hs.getForInstance=cs.getForInstance,hs.registerAsync=e=>Kt(void 0,void 0,void 0,(function*(){return new Promise((t=>{hs.isRegistered[e]&&t(hs.isRegistered[e]),_.getNotifier(hs.isRegistered).subscribe({handleChange:()=>t(hs.isRegistered[e])},e)}))})),_.defineProperty(hs.prototype,"template");class us{constructor(e){this.directive=e,this.location=null,this.controller=null,this.view=null,this.data=null,this.dataBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e)}bind(e){if(this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.data=this.dataBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),e.onUnbind(this),Ve(this.template)&&Ve(e)&&e.hydrationStage!==lt&&!this.view){const t=e.bindingViewBoundaries[this.directive.targetNodeId];t&&(this.view=this.template.hydrate(t.first,t.last),this.bindView(this.view))}else this.refreshView()}unbind(e){const t=this.view;null!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleChange(e,t){t===this.dataBindingObserver&&(this.data=this.dataBindingObserver.bind(this.controller)),(this.directive.templateBindingDependsOnData||t===this.templateBindingObserver)&&(this.template=this.templateBindingObserver.bind(this.controller)),this.refreshView()}bindView(e){e.isComposed?e.needsBindOnly&&(e.needsBindOnly=!1,e.bind(this.data)):(e.isComposed=!0,e.bind(this.data),e.insertBefore(this.location),e.$fastTemplate=this.template)}refreshView(){let e=this.view;const t=this.template;null===e?(this.view=e=t.create(),this.view.context.parent=this.controller.source,this.view.context.parentContext=this.controller.context):e.$fastTemplate!==t&&(e.isComposed&&(e.remove(),e.unbind()),this.view=e=t.create(),this.view.context.parent=this.controller.source,this.view.context.parentContext=this.controller.context),this.bindView(e)}}class fs{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.templateBindingDependsOnData=s}createHTML(e){return Pe.comment(e(this))}createBehavior(){return new us(this)}}Qe.define(fs);const ps=new Map,gs={":model":e=>e},bs=Symbol("RenderInstruction"),vs="default-view",ms=kt`
2
2
  &nbsp;
3
- `;function ys(e){return void 0===e?ms:e.template}function ws(e,t){const s=[],n=[],{attributes:i,directives:r,content:o,policy:a}=null!=t?t:{};if(s.push(`<${e}`),i){const e=Object.getOwnPropertyNames(i);for(let t=0,r=e.length;t<r;++t){const r=e[t];0===t?s[0]=`${s[0]} ${r}="`:s.push(`" ${r}="`),n.push(i[r])}s.push('"')}if(r){s[s.length-1]+=" ";for(let e=0,t=r.length;e<t;++e){const t=r[e];s.push(e>0?"":" "),n.push(t)}}if(s[s.length-1]+=">",o&&c(o.create))n.push(o),s.push(`</${e}>`);else{const t=s.length-1;s[t]=`${s[t]}${null!=o?o:""}</${e}>`}return Bt.create(s,n,a)}function Cs(e){var t;const s=null!==(t=e.name)&&void 0!==t?t:vs;let n;if((i=e).element||i.tagName){let t=e.tagName;if(!t){const s=hs.getByType(e.element);if(!s)throw new Error("Invalid element for model rendering.");t=s.name}e.attributes||(e.attributes=gs),n=ws(t,e)}else n=e.template;var i;return{brand:bs,type:e.type,name:s,template:n}}function Ss(e){return e&&e.brand===bs}function Ts(e,t){const s=ps.get(e);if(void 0!==s)return s[null!=t?t:vs]}function $s(e,t){if(e)return Ts(e.constructor,t)}Object.freeze({instanceOf:Ss,create:Cs,createElementTemplate:ws,register:function(e){let t=ps.get(e.type);void 0===t&&ps.set(e.type,t=Object.create(null));const s=Ss(e)?e:Cs(e);return t[s.name]=s},getByType:Ts,getForInstance:$s});class xs{constructor(e){this.node=e,e.$fastTemplate=this}get context(){return this}bind(e){}unbind(){}insertBefore(e){e.parentNode.insertBefore(this.node,e)}remove(){this.node.parentNode.removeChild(this.node)}create(){return this}hydrate(e,t){return this}}function Os(e,t){let s,n;s=void 0===e?le((e=>e)):ce(e);let i=!1;if(void 0===t)i=!0,n=le(((e,t)=>{var n;const i=s.evaluate(e,t);return i instanceof Node?null!==(n=i.$fastTemplate)&&void 0!==n?n:new xs(i):ys($s(i))}));else if(c(t))n=re(((e,n)=>{var i;let r=t(e,n);return d(r)?r=ys($s(s.evaluate(e,n),r)):r instanceof Node&&(r=null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r)),r}),void 0,!0);else if(d(t))i=!0,n=le(((e,n)=>{var i;const r=s.evaluate(e,n);return r instanceof Node?null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r):ys($s(r,t))}));else if(t instanceof ne){const e=t.evaluate;t.evaluate=(t,n)=>{var i;let r=e(t,n);return d(r)?r=ys($s(s.evaluate(t,n),r)):r instanceof Node&&(r=null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r)),r},n=t}else n=le(((e,s)=>t));return new fs(s,n,i)}class Bs extends MutationObserver{constructor(e){super((function(e){this.callback.call(null,e.filter((e=>this.observedNodes.has(e.target))))})),this.callback=e,this.observedNodes=new Set}observe(e,t){this.observedNodes.add(e),super.observe(e,t)}unobserve(e){this.observedNodes.delete(e),this.observedNodes.size<1&&this.disconnect()}}Object.freeze({create(e){const t=[],s={};let n=null,i=!1;return{source:e,context:H.default,targets:s,get isBound(){return i},addBehaviorFactory(e,t){var s,n,i,r;const o=e;o.id=null!==(s=o.id)&&void 0!==s?s:De(),o.targetNodeId=null!==(n=o.targetNodeId)&&void 0!==n?n:De(),o.targetTagName=null!==(i=t.tagName)&&void 0!==i?i:null,o.policy=null!==(r=o.policy)&&void 0!==r?r:T.policy,this.addTarget(o.targetNodeId,t),this.addBehavior(o.createBehavior())},addTarget(e,t){s[e]=t},addBehavior(e){t.push(e),i&&e.bind(this)},onUnbind(e){null===n&&(n=[]),n.push(e)},connectedCallback(e){i||(i=!0,t.forEach((e=>e.bind(this))))},disconnectedCallback(e){i&&(i=!1,null!==n&&n.forEach((e=>e.unbind(this))))}}}});const ks={bubbles:!0,composed:!0,cancelable:!0},Ns="isConnected",As=new WeakMap;function Es(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:As.get(e))&&void 0!==s?s:null}let Ms;class js extends V{constructor(e,t){super(e),this.boundObservables=null,this.needsInitialization=!0,this.hasExistingShadowRoot=!1,this._template=null,this.stage=3,this.guardBehaviorConnection=!1,this.behaviors=null,this.behaviorsConnected=!1,this._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t,this.shadowOptions=t.shadowOptions;const s=_.getAccessors(e);if(s.length>0){const t=this.boundObservables=Object.create(null);for(let n=0,i=s.length;n<i;++n){const i=s[n].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return _.track(this,Ns),1===this.stage}get context(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.context)&&void 0!==t?t:H.default}get isBound(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.isBound)&&void 0!==t&&t}get sourceLifetime(){var e;return null===(e=this.view)||void 0===e?void 0:e.sourceLifetime}get template(){var e;if(null===this._template){const t=this.definition;this.source.resolveTemplate?this._template=this.source.resolveTemplate():t.template&&(this._template=null!==(e=t.template)&&void 0!==e?e:null)}return this._template}set template(e){this._template!==e&&(this._template=e,this.needsInitialization||this.renderTemplate(e))}get shadowOptions(){return this._shadowRootOptions}set shadowOptions(e){if(void 0===this._shadowRootOptions&&void 0!==e){this._shadowRootOptions=e;let t=this.source.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=this.source.attachShadow(e),"closed"===e.mode&&As.set(this.source,t))}}get mainStyles(){var e;if(null===this._mainStyles){const t=this.definition;this.source.resolveStyles?this._mainStyles=this.source.resolveStyles():t.styles&&(this._mainStyles=null!==(e=t.styles)&&void 0!==e?e:null)}return this._mainStyles}set mainStyles(e){this._mainStyles!==e&&(null!==this._mainStyles&&this.removeStyles(this._mainStyles),this._mainStyles=e,this.needsInitialization||this.addStyles(e))}onUnbind(e){var t;null===(t=this.view)||void 0===t||t.onUnbind(e)}addBehavior(e){var t,s;const n=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,i=null!==(s=n.get(e))&&void 0!==s?s:0;0===i?(n.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):n.set(e,i+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const n=s.get(e);void 0!==n&&(1===n||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,n-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=Es(s))&&void 0!==t?t:this.source).append(e)}else if(!e.isAttachedTo(s)){const t=e.behaviors;if(e.addStylesTo(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}removeStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=Es(s))&&void 0!==t?t:s).removeChild(e)}else if(e.isAttachedTo(s)){const t=e.behaviors;if(e.removeStylesFrom(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.removeBehavior(t[e])}}connect(){3===this.stage&&(this.stage=0,this.bindObservables(),this.connectBehaviors(),this.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,_.notify(this,Ns))}bindObservables(){if(null!==this.boundObservables){const e=this.source,t=this.boundObservables,s=Object.keys(t);for(let n=0,i=s.length;n<i;++n){const i=s[n];e[i]=t[i]}this.boundObservables=null}}connectBehaviors(){if(!1===this.behaviorsConnected){const e=this.behaviors;if(null!==e){this.guardBehaviorConnection=!0;for(const t of e.keys())t.connectedCallback&&t.connectedCallback(this);this.guardBehaviorConnection=!1}this.behaviorsConnected=!0}}disconnectBehaviors(){if(!0===this.behaviorsConnected){const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);this.behaviorsConnected=!1}}disconnect(){1===this.stage&&(this.stage=2,_.notify(this,Ns),null!==this.view&&this.view.unbind(),this.disconnectBehaviors(),this.stage=3)}onAttributeChangedCallback(e,t,s){const n=this.definition.attributeLookup[e];void 0!==n&&n.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},ks),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=Es(s))&&void 0!==t?t:s;if(null!==this.view)this.view.dispose(),this.view=null;else if(!this.needsInitialization||this.hasExistingShadowRoot){this.hasExistingShadowRoot=!1;for(let e=n.firstChild;null!==e;e=n.firstChild)n.removeChild(e)}e&&(this.view=e.render(s,n,s),this.view.sourceLifetime=R.coupled)}static forCustomElement(e,t=!1){const s=e.$fastController;if(void 0!==s&&!t)return s;const n=hs.getForInstance(e);if(void 0===n)throw f.error(1401);return _.getNotifier(n).subscribe({handleChange:()=>{js.forCustomElement(e,!0),e.$fastController.connect()}},"template"),_.getNotifier(n).subscribe({handleChange:()=>{js.forCustomElement(e,!0),e.$fastController.connect()}},"shadowOptions"),e.$fastController=new Ms(e,n)}static setStrategy(e){Ms=e}}function Is(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=Es(e))&&void 0!==t?t:e.getRootNode()}v(js),js.setStrategy(js);class Vs{constructor(e){const t=Vs.styleSheetCache;this.sheets=e.map((e=>{if(e instanceof CSSStyleSheet)return e;let s=t.get(e);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(e),t.set(e,s)),s}))}addStylesTo(e){Ls(Is(e),this.sheets)}removeStylesFrom(e){Fs(Is(e),this.sheets)}}Vs.styleSheetCache=new Map;let Rs=0;function _s(e){return e===document?document.body:e}class zs{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Rs}addStylesTo(e){e=_s(Is(e));const t=this.styles,s=this.styleClass;for(let n=0;n<t.length;n++){const i=document.createElement("style");i.innerHTML=t[n],i.className=s,e.append(i)}}removeStylesFrom(e){const t=(e=_s(Is(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}}let Ls=(e,t)=>{e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t]},Fs=(e,t)=>{e.adoptedStyleSheets=e.adoptedStyleSheets.filter((e=>-1===t.indexOf(e)))};if(ue.supportsAdoptedStyleSheets){try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),Ls=(e,t)=>{e.adoptedStyleSheets.push(...t)},Fs=(e,t)=>{for(const s of t){const t=e.adoptedStyleSheets.indexOf(s);-1!==t&&e.adoptedStyleSheets.splice(t,1)}}}catch(e){}ue.setDefaultStrategy(Vs)}else ue.setDefaultStrategy(zs);const Hs="defer-hydration",Ds="needs-hydration";class Ps extends js{addHydratingInstance(){if(!Ps.hydratingInstances)return;const e=this.definition.name;let t=Ps.hydratingInstances.get(e);t||(t=new Set,Ps.hydratingInstances.set(e,t)),t.add(this.source)}static config(e){return Ps.lifecycleCallbacks=e,this}static hydrationObserverHandler(e){for(const t of e)t.target.hasAttribute(Hs)||(Ps.hydrationObserver.unobserve(t.target),t.target.$fastController.connect())}static checkHydrationComplete(e){var t,s,n;e.didTimeout?Ps.idleCallbackId=requestIdleCallback(Ps.checkHydrationComplete,{timeout:50}):0===(null===(t=Ps.hydratingInstances)||void 0===t?void 0:t.size)&&(null===(n=null===(s=Ps.lifecycleCallbacks)||void 0===s?void 0:s.hydrationComplete)||void 0===n||n.call(s),js.setStrategy(js))}static forCustomElement(e,t){const s=hs.getForInstance(e);return(null==s?void 0:s.templateOptions)!==ds.deferAndHydrate||s.template||(e.toggleAttribute(Hs,!0),e.toggleAttribute(Ds,!0)),super.forCustomElement(e,t)}connect(){var e,t,s,n,i;if(this.needsHydration=null!==(e=this.needsHydration)&&void 0!==e?e:null!==this.source.getAttribute(Ds),this.needsHydration&&(null===(s=null===(t=Ps.lifecycleCallbacks)||void 0===t?void 0:t.elementWillHydrate)||void 0===s||s.call(t,this.definition.name)),this.source.hasAttribute(Hs))return this.addHydratingInstance(),void Ps.hydrationObserver.observe(this.source,{attributeFilter:[Hs]});if(!this.needsHydration)return super.connect(),void this.removeHydratingInstance();if(3===this.stage){if(this.stage=0,this.bindObservables(),this.connectBehaviors(),this.template)if(Re(this.template)){const e=this.source,t=null!==(n=Es(e))&&void 0!==n?n:e;let s=t.firstChild,r=t.lastChild;null===e.shadowRoot&&(Ee.isElementBoundaryStartMarker(s)&&(s.data="",s=s.nextSibling),Ee.isElementBoundaryEndMarker(r)&&(r.data="",r=r.previousSibling)),this.view=this.template.hydrate(s,r,e),null===(i=this.view)||void 0===i||i.bind(this.source)}else this.renderTemplate(this.template);this.addStyles(this.mainStyles),this.stage=1,this.source.removeAttribute(Ds),this.needsInitialization=this.needsHydration=!1,this.removeHydratingInstance(),_.notify(this,Ns)}}removeHydratingInstance(){var e,t;if(!Ps.hydratingInstances)return;const s=this.definition.name,n=Ps.hydratingInstances.get(s);null===(t=null===(e=Ps.lifecycleCallbacks)||void 0===e?void 0:e.elementDidHydrate)||void 0===t||t.call(e,this.definition.name),n&&(n.delete(this.source),n.size||Ps.hydratingInstances.delete(s),Ps.idleCallbackId&&cancelIdleCallback(Ps.idleCallbackId),Ps.idleCallbackId=requestIdleCallback(Ps.checkHydrationComplete,{timeout:50}))}disconnect(){super.disconnect(),Ps.hydrationObserver.unobserve(this.source)}static install(){js.setStrategy(Ps)}}function Us(e){const t=class extends e{constructor(){super(),js.forCustomElement(this)}$emit(e,t,s){return this.$fastController.emit(e,t,s)}connectedCallback(){this.$fastController.connect()}disconnectedCallback(){this.$fastController.disconnect()}attributeChangedCallback(e,t,s){this.$fastController.onAttributeChangedCallback(e,t,s)}};return hs.registerBaseType(t),t}function qs(e,t){return c(e)?hs.compose(e,t).define().type:hs.compose(this,e).define().type}Ps.hydrationObserver=new Bs(Ps.hydrationObserverHandler),Ps.idleCallbackId=null,Ps.hydratingInstances=new Map;const Qs=Object.assign(Us(HTMLElement),{from:function(e){return Us(e)},define:qs,compose:function(e,t){return c(e)?hs.compose(e,t):hs.compose(this,e)},defineAsync:function(e,t){return c(e)?new Promise((s=>{hs.composeAsync(e,t).then((e=>{s(e)}))})).then((e=>e.define().type)):new Promise((t=>{hs.composeAsync(this,e).then((e=>{t(e)}))})).then((e=>e.define().type))}});function Ws(e){return function(t){qs(t,e)}}T.setPolicy(M.create());export{ee as ArrayObserver,Zt as AttributeConfiguration,is as AttributeDefinition,ne as Binding,ve as CSSBindingDirective,pe as CSSDirective,Xt as ChildrenDirective,St as Compiler,T as DOM,m as DOMAspect,js as ElementController,ue as ElementStyles,H as ExecutionContext,f as FAST,Qs as FASTElement,hs as FASTElementDefinition,ht as HTMLBindingDirective,Qe as HTMLDirective,rt as HTMLView,Ps as HydratableElementController,ct as HydrationBindingError,xt as InlineTemplateDirective,Pe as Markup,Ut as NodeObservationDirective,_ as Observable,Ue as Parser,V as PropertyChangeNotifier,Nt as RefDirective,us as RenderBehavior,fs as RenderDirective,Lt as RepeatBehavior,Ft as RepeatDirective,Qt as SlottedDirective,P as Sort,R as SourceLifetime,D as Splice,K as SpliceStrategy,U as SpliceStrategySupport,Xe as StatelessAttachedAttributeDirective,I as SubscriberSet,ds as TemplateOptions,j as Updates,Bt as ViewTemplate,rs as attr,es as booleanConverter,Jt as children,Se as css,ge as cssDirective,Ws as customElement,Pt as elements,p as emptyArray,cs as fastElementRegistry,kt as html,We as htmlDirective,te as lengthOf,oe as listener,ce as normalizeBinding,ts as nullableBooleanConverter,ns as nullableNumberConverter,z as observable,le as oneTime,re as oneWay,At as ref,Os as render,Ht as repeat,Wt as slotted,se as sortedCount,L as volatile,jt as when};
3
+ `;function ys(e){return void 0===e?ms:e.template}function ws(e,t){const s=[],n=[],{attributes:i,directives:r,content:o,policy:a}=null!=t?t:{};if(s.push(`<${e}`),i){const e=Object.getOwnPropertyNames(i);for(let t=0,r=e.length;t<r;++t){const r=e[t];0===t?s[0]=`${s[0]} ${r}="`:s.push(`" ${r}="`),n.push(i[r])}s.push('"')}if(r){s[s.length-1]+=" ";for(let e=0,t=r.length;e<t;++e){const t=r[e];s.push(e>0?"":" "),n.push(t)}}if(s[s.length-1]+=">",o&&c(o.create))n.push(o),s.push(`</${e}>`);else{const t=s.length-1;s[t]=`${s[t]}${null!=o?o:""}</${e}>`}return Bt.create(s,n,a)}function Cs(e){var t;const s=null!==(t=e.name)&&void 0!==t?t:vs;let n;if((i=e).element||i.tagName){let t=e.tagName;if(!t){const s=hs.getByType(e.element);if(!s)throw new Error("Invalid element for model rendering.");t=s.name}e.attributes||(e.attributes=gs),n=ws(t,e)}else n=e.template;var i;return{brand:bs,type:e.type,name:s,template:n}}function Ss(e){return e&&e.brand===bs}function Ts(e,t){const s=ps.get(e);if(void 0!==s)return s[null!=t?t:vs]}function $s(e,t){if(e)return Ts(e.constructor,t)}Object.freeze({instanceOf:Ss,create:Cs,createElementTemplate:ws,register:function(e){let t=ps.get(e.type);void 0===t&&ps.set(e.type,t=Object.create(null));const s=Ss(e)?e:Cs(e);return t[s.name]=s},getByType:Ts,getForInstance:$s});class xs{constructor(e){this.node=e,e.$fastTemplate=this}get context(){return this}bind(e){}unbind(){}insertBefore(e){e.parentNode.insertBefore(this.node,e)}remove(){this.node.parentNode.removeChild(this.node)}create(){return this}hydrate(e,t){return this}}function Os(e,t){let s,n;s=void 0===e?le((e=>e)):ce(e);let i=!1;if(void 0===t)i=!0,n=le(((e,t)=>{var n;const i=s.evaluate(e,t);return i instanceof Node?null!==(n=i.$fastTemplate)&&void 0!==n?n:new xs(i):ys($s(i))}));else if(c(t))n=re(((e,n)=>{var i;let r=t(e,n);return d(r)?r=ys($s(s.evaluate(e,n),r)):r instanceof Node&&(r=null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r)),r}),void 0,!0);else if(d(t))i=!0,n=le(((e,n)=>{var i;const r=s.evaluate(e,n);return r instanceof Node?null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r):ys($s(r,t))}));else if(t instanceof ne){const e=t.evaluate;t.evaluate=(t,n)=>{var i;let r=e(t,n);return d(r)?r=ys($s(s.evaluate(t,n),r)):r instanceof Node&&(r=null!==(i=r.$fastTemplate)&&void 0!==i?i:new xs(r)),r},n=t}else n=le(((e,s)=>t));return new fs(s,n,i)}class Bs extends MutationObserver{constructor(e){super((function(e){this.callback.call(null,e.filter((e=>this.observedNodes.has(e.target))))})),this.callback=e,this.observedNodes=new Set}observe(e,t){this.observedNodes.add(e),super.observe(e,t)}unobserve(e){this.observedNodes.delete(e),this.observedNodes.size<1&&this.disconnect()}}Object.freeze({create(e){const t=[],s={};let n=null,i=!1;return{source:e,context:H.default,targets:s,get isBound(){return i},addBehaviorFactory(e,t){var s,n,i,r;const o=e;o.id=null!==(s=o.id)&&void 0!==s?s:De(),o.targetNodeId=null!==(n=o.targetNodeId)&&void 0!==n?n:De(),o.targetTagName=null!==(i=t.tagName)&&void 0!==i?i:null,o.policy=null!==(r=o.policy)&&void 0!==r?r:T.policy,this.addTarget(o.targetNodeId,t),this.addBehavior(o.createBehavior())},addTarget(e,t){s[e]=t},addBehavior(e){t.push(e),i&&e.bind(this)},onUnbind(e){null===n&&(n=[]),n.push(e)},connectedCallback(e){i||(i=!0,t.forEach((e=>e.bind(this))))},disconnectedCallback(e){i&&(i=!1,null!==n&&n.forEach((e=>e.unbind(this))))}}}});const ks={bubbles:!0,composed:!0,cancelable:!0},Ns="isConnected",As=new WeakMap;function Es(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:As.get(e))&&void 0!==s?s:null}let Ms;class js extends R{constructor(e,t){super(e),this.boundObservables=null,this.needsInitialization=!0,this.hasExistingShadowRoot=!1,this._template=null,this.stage=3,this.guardBehaviorConnection=!1,this.behaviors=null,this.behaviorsConnected=!1,this._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t,this.shadowOptions=t.shadowOptions;const s=_.getAccessors(e);if(s.length>0){const t=this.boundObservables=Object.create(null);for(let n=0,i=s.length;n<i;++n){const i=s[n].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return _.track(this,Ns),1===this.stage}get context(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.context)&&void 0!==t?t:H.default}get isBound(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.isBound)&&void 0!==t&&t}get sourceLifetime(){var e;return null===(e=this.view)||void 0===e?void 0:e.sourceLifetime}get template(){var e;if(null===this._template){const t=this.definition;this.source.resolveTemplate?this._template=this.source.resolveTemplate():t.template&&(this._template=null!==(e=t.template)&&void 0!==e?e:null)}return this._template}set template(e){this._template!==e&&(this._template=e,this.needsInitialization||this.renderTemplate(e))}get shadowOptions(){return this._shadowRootOptions}set shadowOptions(e){if(void 0===this._shadowRootOptions&&void 0!==e){this._shadowRootOptions=e;let t=this.source.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=this.source.attachShadow(e),"closed"===e.mode&&As.set(this.source,t))}}get mainStyles(){var e;if(null===this._mainStyles){const t=this.definition;this.source.resolveStyles?this._mainStyles=this.source.resolveStyles():t.styles&&(this._mainStyles=null!==(e=t.styles)&&void 0!==e?e:null)}return this._mainStyles}set mainStyles(e){this._mainStyles!==e&&(null!==this._mainStyles&&this.removeStyles(this._mainStyles),this._mainStyles=e,this.needsInitialization||this.addStyles(e))}onUnbind(e){var t;null===(t=this.view)||void 0===t||t.onUnbind(e)}addBehavior(e){var t,s;const n=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,i=null!==(s=n.get(e))&&void 0!==s?s:0;0===i?(n.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):n.set(e,i+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const n=s.get(e);void 0!==n&&(1===n||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,n-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=Es(s))&&void 0!==t?t:this.source).append(e)}else if(!e.isAttachedTo(s)){const t=e.behaviors;if(e.addStylesTo(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}removeStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=Es(s))&&void 0!==t?t:s).removeChild(e)}else if(e.isAttachedTo(s)){const t=e.behaviors;if(e.removeStylesFrom(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.removeBehavior(t[e])}}connect(){3===this.stage&&(this.stage=0,this.bindObservables(),this.connectBehaviors(),this.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,_.notify(this,Ns))}bindObservables(){if(null!==this.boundObservables){const e=this.source,t=this.boundObservables,s=Object.keys(t);for(let n=0,i=s.length;n<i;++n){const i=s[n];e[i]=t[i]}this.boundObservables=null}}connectBehaviors(){if(!1===this.behaviorsConnected){const e=this.behaviors;if(null!==e){this.guardBehaviorConnection=!0;for(const t of e.keys())t.connectedCallback&&t.connectedCallback(this);this.guardBehaviorConnection=!1}this.behaviorsConnected=!0}}disconnectBehaviors(){if(!0===this.behaviorsConnected){const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);this.behaviorsConnected=!1}}disconnect(){1===this.stage&&(this.stage=2,_.notify(this,Ns),null!==this.view&&this.view.unbind(),this.disconnectBehaviors(),this.stage=3)}onAttributeChangedCallback(e,t,s){const n=this.definition.attributeLookup[e];void 0!==n&&n.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},ks),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=Es(s))&&void 0!==t?t:s;if(null!==this.view)this.view.dispose(),this.view=null;else if(!this.needsInitialization||this.hasExistingShadowRoot){this.hasExistingShadowRoot=!1;for(let e=n.firstChild;null!==e;e=n.firstChild)n.removeChild(e)}e&&(this.view=e.render(s,n,s),this.view.sourceLifetime=V.coupled)}static forCustomElement(e,t=!1){const s=e.$fastController;if(void 0!==s&&!t)return s;const n=hs.getForInstance(e);if(void 0===n)throw f.error(1401);return _.getNotifier(n).subscribe({handleChange:()=>{js.forCustomElement(e,!0),e.$fastController.connect()}},"template"),_.getNotifier(n).subscribe({handleChange:()=>{js.forCustomElement(e,!0),e.$fastController.connect()}},"shadowOptions"),e.$fastController=new Ms(e,n)}static setStrategy(e){Ms=e}}function Is(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=Es(e))&&void 0!==t?t:e.getRootNode()}v(js),js.setStrategy(js);class Rs{constructor(e){const t=Rs.styleSheetCache;this.sheets=e.map((e=>{if(e instanceof CSSStyleSheet)return e;let s=t.get(e);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(e),t.set(e,s)),s}))}addStylesTo(e){Ls(Is(e),this.sheets)}removeStylesFrom(e){Fs(Is(e),this.sheets)}}Rs.styleSheetCache=new Map;let Vs=0;function _s(e){return e===document?document.body:e}class zs{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Vs}addStylesTo(e){e=_s(Is(e));const t=this.styles,s=this.styleClass;for(let n=0;n<t.length;n++){const i=document.createElement("style");i.innerHTML=t[n],i.className=s,e.append(i)}}removeStylesFrom(e){const t=(e=_s(Is(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}}let Ls=(e,t)=>{e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t]},Fs=(e,t)=>{e.adoptedStyleSheets=e.adoptedStyleSheets.filter((e=>-1===t.indexOf(e)))};if(ue.supportsAdoptedStyleSheets){try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),Ls=(e,t)=>{e.adoptedStyleSheets.push(...t)},Fs=(e,t)=>{for(const s of t){const t=e.adoptedStyleSheets.indexOf(s);-1!==t&&e.adoptedStyleSheets.splice(t,1)}}}catch(e){}ue.setDefaultStrategy(Rs)}else ue.setDefaultStrategy(zs);const Hs="defer-hydration",Ds="needs-hydration";class Ps extends js{get shadowOptions(){return super.shadowOptions}set shadowOptions(e){super.shadowOptions=e,this.hasExistingShadowRoot&&this.definition.templateOptions===ds.deferAndHydrate&&(this.source.toggleAttribute(Hs,!0),this.source.toggleAttribute(Ds,!0))}addHydratingInstance(){if(!Ps.hydratingInstances)return;const e=this.definition.name;let t=Ps.hydratingInstances.get(e);t||(t=new Set,Ps.hydratingInstances.set(e,t)),t.add(this.source)}static config(e){return Ps.lifecycleCallbacks=e,this}static hydrationObserverHandler(e){for(const t of e)t.target.hasAttribute(Hs)||(Ps.hydrationObserver.unobserve(t.target),t.target.$fastController.connect())}static checkHydrationComplete(e){var t,s,n;e.didTimeout?Ps.idleCallbackId=requestIdleCallback(Ps.checkHydrationComplete,{timeout:50}):0===(null===(t=Ps.hydratingInstances)||void 0===t?void 0:t.size)&&(null===(n=null===(s=Ps.lifecycleCallbacks)||void 0===s?void 0:s.hydrationComplete)||void 0===n||n.call(s),js.setStrategy(js))}connect(){var e,t,s,n,i;if(this.needsHydration=null!==(e=this.needsHydration)&&void 0!==e?e:this.source.hasAttribute(Ds),this.needsHydration&&(null===(s=null===(t=Ps.lifecycleCallbacks)||void 0===t?void 0:t.elementWillHydrate)||void 0===s||s.call(t,this.definition.name)),this.source.hasAttribute(Hs))return this.addHydratingInstance(),void Ps.hydrationObserver.observe(this.source,{attributeFilter:[Hs]});if(!this.needsHydration)return super.connect(),void this.removeHydratingInstance();if(3===this.stage){if(this.stage=0,this.bindObservables(),this.connectBehaviors(),this.template)if(Ve(this.template)){const e=this.source,t=null!==(n=Es(e))&&void 0!==n?n:e;let s=t.firstChild,r=t.lastChild;null===e.shadowRoot&&(Ee.isElementBoundaryStartMarker(s)&&(s.data="",s=s.nextSibling),Ee.isElementBoundaryEndMarker(r)&&(r.data="",r=r.previousSibling)),this.view=this.template.hydrate(s,r,e),null===(i=this.view)||void 0===i||i.bind(this.source)}else this.renderTemplate(this.template);this.addStyles(this.mainStyles),this.stage=1,this.source.removeAttribute(Ds),this.needsInitialization=this.needsHydration=!1,this.removeHydratingInstance(),_.notify(this,Ns)}}removeHydratingInstance(){var e,t;if(!Ps.hydratingInstances)return;const s=this.definition.name,n=Ps.hydratingInstances.get(s);null===(t=null===(e=Ps.lifecycleCallbacks)||void 0===e?void 0:e.elementDidHydrate)||void 0===t||t.call(e,this.definition.name),n&&(n.delete(this.source),n.size||Ps.hydratingInstances.delete(s),Ps.idleCallbackId&&cancelIdleCallback(Ps.idleCallbackId),Ps.idleCallbackId=requestIdleCallback(Ps.checkHydrationComplete,{timeout:50}))}disconnect(){super.disconnect(),Ps.hydrationObserver.unobserve(this.source)}static install(){js.setStrategy(Ps)}}function Us(e){const t=class extends e{constructor(){super(),js.forCustomElement(this)}$emit(e,t,s){return this.$fastController.emit(e,t,s)}connectedCallback(){this.$fastController.connect()}disconnectedCallback(){this.$fastController.disconnect()}attributeChangedCallback(e,t,s){this.$fastController.onAttributeChangedCallback(e,t,s)}};return hs.registerBaseType(t),t}function qs(e,t){return c(e)?hs.compose(e,t).define().type:hs.compose(this,e).define().type}Ps.hydrationObserver=new Bs(Ps.hydrationObserverHandler),Ps.idleCallbackId=null,Ps.hydratingInstances=new Map;const Qs=Object.assign(Us(HTMLElement),{from:function(e){return Us(e)},define:qs,compose:function(e,t){return c(e)?hs.compose(e,t):hs.compose(this,e)},defineAsync:function(e,t){return c(e)?new Promise((s=>{hs.composeAsync(e,t).then((e=>{s(e)}))})).then((e=>e.define().type)):new Promise((t=>{hs.composeAsync(this,e).then((e=>{t(e)}))})).then((e=>e.define().type))}});function Ws(e){return function(t){qs(t,e)}}T.setPolicy(M.create());export{ee as ArrayObserver,Zt as AttributeConfiguration,is as AttributeDefinition,ne as Binding,ve as CSSBindingDirective,pe as CSSDirective,Xt as ChildrenDirective,St as Compiler,T as DOM,m as DOMAspect,js as ElementController,ue as ElementStyles,H as ExecutionContext,f as FAST,Qs as FASTElement,hs as FASTElementDefinition,ht as HTMLBindingDirective,Qe as HTMLDirective,rt as HTMLView,Ps as HydratableElementController,ct as HydrationBindingError,xt as InlineTemplateDirective,Pe as Markup,Ut as NodeObservationDirective,_ as Observable,Ue as Parser,R as PropertyChangeNotifier,Nt as RefDirective,us as RenderBehavior,fs as RenderDirective,Lt as RepeatBehavior,Ft as RepeatDirective,Qt as SlottedDirective,P as Sort,V as SourceLifetime,D as Splice,K as SpliceStrategy,U as SpliceStrategySupport,Xe as StatelessAttachedAttributeDirective,I as SubscriberSet,ds as TemplateOptions,j as Updates,Bt as ViewTemplate,rs as attr,es as booleanConverter,Jt as children,Se as css,ge as cssDirective,Ws as customElement,Hs as deferHydrationAttribute,Pt as elements,p as emptyArray,cs as fastElementRegistry,kt as html,We as htmlDirective,te as lengthOf,oe as listener,Ds as needsHydrationAttribute,ce as normalizeBinding,ts as nullableBooleanConverter,ns as nullableNumberConverter,z as observable,le as oneTime,re as oneWay,At as ref,Os as render,Ht as repeat,Wt as slotted,se as sortedCount,L as volatile,jt as when};
@@ -5430,10 +5430,25 @@ class ElementController extends PropertyChangeNotifier {
5430
5430
  */
5431
5431
  constructor(element, definition) {
5432
5432
  super(element);
5433
+ /**
5434
+ * A map of observable properties that were set on the element before upgrade.
5435
+ */
5433
5436
  this.boundObservables = null;
5437
+ /**
5438
+ * Indicates whether the controller needs to perform initial rendering.
5439
+ */
5434
5440
  this.needsInitialization = true;
5441
+ /**
5442
+ * Indicates whether the element has an existing shadow root (e.g. from declarative shadow DOM).
5443
+ */
5435
5444
  this.hasExistingShadowRoot = false;
5445
+ /**
5446
+ * The template used to render the component.
5447
+ */
5436
5448
  this._template = null;
5449
+ /**
5450
+ * The current lifecycle stage of the controller.
5451
+ */
5437
5452
  this.stage = 3 /* Stages.disconnected */;
5438
5453
  /**
5439
5454
  * A guard against connecting behaviors multiple times
@@ -5441,12 +5456,19 @@ class ElementController extends PropertyChangeNotifier {
5441
5456
  * another behavior during it's connectedCallback
5442
5457
  */
5443
5458
  this.guardBehaviorConnection = false;
5459
+ /**
5460
+ * The behaviors associated with the component.
5461
+ */
5444
5462
  this.behaviors = null;
5445
5463
  /**
5446
5464
  * Tracks whether behaviors are connected so that
5447
5465
  * behaviors cant be connected multiple times
5448
5466
  */
5449
5467
  this.behaviorsConnected = false;
5468
+ /**
5469
+ * The main set of styles used for the component, independent of any
5470
+ * dynamically added styles.
5471
+ */
5450
5472
  this._mainStyles = null;
5451
5473
  /**
5452
5474
  * This allows Observable.getNotifier(...) to return the Controller
@@ -5542,6 +5564,9 @@ class ElementController extends PropertyChangeNotifier {
5542
5564
  this.renderTemplate(value);
5543
5565
  }
5544
5566
  }
5567
+ /**
5568
+ * The shadow root options for the component.
5569
+ */
5545
5570
  get shadowOptions() {
5546
5571
  return this._shadowRootOptions;
5547
5572
  }
@@ -5716,6 +5741,9 @@ class ElementController extends PropertyChangeNotifier {
5716
5741
  this.stage = 1 /* Stages.connected */;
5717
5742
  Observable.notify(this, isConnectedPropertyName);
5718
5743
  }
5744
+ /**
5745
+ * Binds any observables that were set before upgrade.
5746
+ */
5719
5747
  bindObservables() {
5720
5748
  if (this.boundObservables !== null) {
5721
5749
  const element = this.source;
@@ -5728,6 +5756,9 @@ class ElementController extends PropertyChangeNotifier {
5728
5756
  this.boundObservables = null;
5729
5757
  }
5730
5758
  }
5759
+ /**
5760
+ * Connects any existing behaviors on the associated element.
5761
+ */
5731
5762
  connectBehaviors() {
5732
5763
  if (this.behaviorsConnected === false) {
5733
5764
  const behaviors = this.behaviors;
@@ -5741,6 +5772,9 @@ class ElementController extends PropertyChangeNotifier {
5741
5772
  this.behaviorsConnected = true;
5742
5773
  }
5743
5774
  }
5775
+ /**
5776
+ * Disconnects any behaviors on the associated element.
5777
+ */
5744
5778
  disconnectBehaviors() {
5745
5779
  if (this.behaviorsConnected === true) {
5746
5780
  const behaviors = this.behaviors;
@@ -5793,6 +5827,13 @@ class ElementController extends PropertyChangeNotifier {
5793
5827
  }
5794
5828
  return false;
5795
5829
  }
5830
+ /**
5831
+ * Renders the provided template to the element.
5832
+ *
5833
+ * @param template - The template to render.
5834
+ * @remarks
5835
+ * If `null` is provided, any existing view will be removed.
5836
+ */
5796
5837
  renderTemplate(template) {
5797
5838
  var _a;
5798
5839
  // When getting the host to render to, we start by looking
@@ -5980,7 +6021,15 @@ if (ElementStyles.supportsAdoptedStyleSheets) {
5980
6021
  else {
5981
6022
  ElementStyles.setDefaultStrategy(StyleElementStrategy);
5982
6023
  }
6024
+ /**
6025
+ * The attribute used to defer hydration of an element.
6026
+ * @public
6027
+ */
5983
6028
  const deferHydrationAttribute = "defer-hydration";
6029
+ /**
6030
+ * The attribute used to indicate that an element needs hydration.
6031
+ * @public
6032
+ */
5984
6033
  const needsHydrationAttribute = "needs-hydration";
5985
6034
  /**
5986
6035
  * An ElementController capable of hydrating FAST elements from
@@ -5989,6 +6038,20 @@ const needsHydrationAttribute = "needs-hydration";
5989
6038
  * @beta
5990
6039
  */
5991
6040
  class HydratableElementController extends ElementController {
6041
+ /**
6042
+ * {@inheritdoc ElementController.shadowOptions}
6043
+ */
6044
+ get shadowOptions() {
6045
+ return super.shadowOptions;
6046
+ }
6047
+ set shadowOptions(value) {
6048
+ super.shadowOptions = value;
6049
+ if (this.hasExistingShadowRoot &&
6050
+ this.definition.templateOptions === TemplateOptions.deferAndHydrate) {
6051
+ this.source.toggleAttribute(deferHydrationAttribute, true);
6052
+ this.source.toggleAttribute(needsHydrationAttribute, true);
6053
+ }
6054
+ }
5992
6055
  /**
5993
6056
  * Adds the current element instance to the hydrating instances map
5994
6057
  */
@@ -6039,20 +6102,14 @@ class HydratableElementController extends ElementController {
6039
6102
  ElementController.setStrategy(ElementController);
6040
6103
  }
6041
6104
  }
6042
- static forCustomElement(element, override) {
6043
- const definition = FASTElementDefinition.getForInstance(element);
6044
- if ((definition === null || definition === void 0 ? void 0 : definition.templateOptions) === TemplateOptions.deferAndHydrate &&
6045
- !definition.template) {
6046
- element.toggleAttribute(deferHydrationAttribute, true);
6047
- element.toggleAttribute(needsHydrationAttribute, true);
6048
- }
6049
- return super.forCustomElement(element, override);
6050
- }
6105
+ /**
6106
+ * Runs connected lifecycle behavior on the associated element.
6107
+ */
6051
6108
  connect() {
6052
6109
  var _a, _b, _c, _d, _e;
6053
6110
  // Initialize needsHydration on first connect
6054
6111
  this.needsHydration =
6055
- (_a = this.needsHydration) !== null && _a !== void 0 ? _a : this.source.getAttribute(needsHydrationAttribute) !== null;
6112
+ (_a = this.needsHydration) !== null && _a !== void 0 ? _a : this.source.hasAttribute(needsHydrationAttribute);
6056
6113
  if (this.needsHydration) {
6057
6114
  (_c = (_b = HydratableElementController.lifecycleCallbacks) === null || _b === void 0 ? void 0 : _b.elementWillHydrate) === null || _c === void 0 ? void 0 : _c.call(_b, this.definition.name);
6058
6115
  }
@@ -6134,10 +6191,19 @@ class HydratableElementController extends ElementController {
6134
6191
  HydratableElementController.idleCallbackId = requestIdleCallback(HydratableElementController.checkHydrationComplete, { timeout: 50 });
6135
6192
  }
6136
6193
  }
6194
+ /**
6195
+ * Unregisters the hydration observer when the element is disconnected.
6196
+ */
6137
6197
  disconnect() {
6138
6198
  super.disconnect();
6139
6199
  HydratableElementController.hydrationObserver.unobserve(this.source);
6140
6200
  }
6201
+ /**
6202
+ * Sets the ElementController strategy to HydratableElementController.
6203
+ * @remarks
6204
+ * This method is typically called during application startup to enable
6205
+ * hydration support for FAST elements.
6206
+ */
6141
6207
  static install() {
6142
6208
  ElementController.setStrategy(HydratableElementController);
6143
6209
  }
@@ -6260,4 +6326,4 @@ function customElement(nameOrDef) {
6260
6326
 
6261
6327
  DOM.setPolicy(DOMPolicy.create());
6262
6328
 
6263
- export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, HydratableElementController, HydrationBindingError, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RenderBehavior, RenderDirective, RepeatBehavior, RepeatDirective, SlottedDirective, Sort, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, TemplateOptions, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, fastElementRegistry, html, htmlDirective, lengthOf, listener, normalizeBinding$1 as normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, render, repeat, slotted, sortedCount, volatile, when };
6329
+ export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, HydratableElementController, HydrationBindingError, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RenderBehavior, RenderDirective, RepeatBehavior, RepeatDirective, SlottedDirective, Sort, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, TemplateOptions, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, deferHydrationAttribute, elements, emptyArray, fastElementRegistry, html, htmlDirective, lengthOf, listener, needsHydrationAttribute, normalizeBinding$1 as normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, render, repeat, slotted, sortedCount, volatile, when };