@microsoft/fast-element 2.0.0-beta.23 → 2.0.0-beta.24

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 +1 @@
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 enableArrayObservation 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))}});try{if(document.currentScript)o=document.currentScript.getAttribute("fast-kernel");else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute("fast-kernel")}}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 a=e=>"function"==typeof e,c=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}}();const d={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},d));const u=globalThis.FAST;if(void 0===u.getById){const e=Object.create(null);Reflect.defineProperty(u,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},d))}void 0===u.error&&Object.assign(u,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const f=Object.freeze([]);function p(){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 g(){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 b(e){e.prototype.toJSON=h}const v=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,m=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let w=Object.freeze({createHTML:e=>m.createHTML(e),protect:(e,t,s,n)=>n});const C=w,x=Object.freeze({get policy(){return w},setPolicy(e){if(w!==C)throw u.error(1201);w=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 S(e,t,s,n){return(e,t,s,...i)=>{c(s)&&(s=s.replace("javascript:","")),n(e,t,s,...i)}}function T(e,t,s,n){throw u.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:T,onauxclick:T,onbeforeinput:T,onbeforematch:T,onblur:T,oncancel:T,oncanplay:T,oncanplaythrough:T,onchange:T,onclick:T,onclose:T,oncontextlost:T,oncontextmenu:T,oncontextrestored:T,oncopy:T,oncuechange:T,oncut:T,ondblclick:T,ondrag:T,ondragend:T,ondragenter:T,ondragleave:T,ondragover:T,ondragstart:T,ondrop:T,ondurationchange:T,onemptied:T,onended:T,onerror:T,onfocus:T,onformdata:T,oninput:T,oninvalid:T,onkeydown:T,onkeypress:T,onkeyup:T,onload:T,onloadeddata:T,onloadedmetadata:T,onloadstart:T,onmousedown:T,onmouseenter:T,onmouseleave:T,onmousemove:T,onmouseout:T,onmouseover:T,onmouseup:T,onpaste:T,onpause:T,onplay:T,onplaying:T,onprogress:T,onratechange:T,onreset:T,onresize:T,onscroll:T,onsecuritypolicyviolation:T,onseeked:T,onseeking:T,onselect:T,onslotchange:T,onstalled:T,onsubmit:T,onsuspend:T,ontimeupdate:T,ontoggle:T,onvolumechange:T,onwaiting:T,onwebkitanimationend:T,onwebkitanimationiteration:T,onwebkitanimationstart:T,onwebkittransitionend:T,onwheel:T},A={elements:{a:{[v.attribute]:{href:S},[v.property]:{href:S}},area:{[v.attribute]:{href:S},[v.property]:{href:S}},button:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},embed:{[v.attribute]:{src:T},[v.property]:{src:T}},form:{[v.attribute]:{action:S},[v.property]:{action:S}},frame:{[v.attribute]:{src:S},[v.property]:{src:S}},iframe:{[v.attribute]:{src:S},[v.property]:{src:S,srcdoc:T}},input:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},link:{[v.attribute]:{href:T},[v.property]:{href:T}},object:{[v.attribute]:{codebase:T,data:T},[v.property]:{codeBase:T,data:T}},script:{[v.attribute]:{src:T,text:T},[v.property]:{src:T,text:T,innerText:T,textContent:T}},style:{[v.property]:{innerText:T,textContent:T}}},aspects:{[v.attribute]:Object.assign({},O),[v.property]:Object.assign({innerHTML:T},O),[v.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 B(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 j(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]=B(i,{});break;default:s[n]=B(i,r)}}for(const t in e)t in s||(s[t]=B(e[t],{}));return Object.freeze(s)}function $(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const N=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=A,Object.freeze({elements:r.elements?j(r.elements,o.elements):o.elements,aspects:r.aspects?B(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(),l=i.elements[o];if(l){const i=$(l,e,t,s,n);if(i)return i}return null!==(r=$(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),M=u.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 l(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>n=e})}));class E{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 E(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new E(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 I=Object.freeze({unknown:void 0,coupled:1}),L=u.getById(l.observable,(()=>{const e=M.enqueue,t=/(:|&&|\|\||if)/,s=new WeakMap;let n,i=e=>{throw u.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=g();class l{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];a(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class h extends E{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!==I.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 b(h),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){c(t)&&(t=new l(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 h(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function z(e,t){L.defineProperty(e,t)}function F(e,t,s){return Object.assign({},s,{get(){return L.trackVolatile(),s.get.apply(this)}})}const P=u.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),_=Object.freeze({default:{index:0,length:0,get event(){return _.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>P.get(),setEvent(e){P.set(e)}});class R{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}}const D=Object.freeze({reset:1,splice:2,optimized:3}),H=new R(0,f,0);H.reset=!0;const U=[H];function q(e,t,s,n,i,r){let o=0,l=0;const a=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,a)),s===e.length&&r===n.length&&(l=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,a-o)),i+=o,r-=l,(s-=l)-(t+=o)==0&&r-i==0)return f;if(t===s){const e=new R(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new R(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],l=e[t][s-1];let a;a=o<l?o<r?o:r:l<r?l:r,a===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):a===o?(i.push(3),t--,n=o):(i.push(2),s--,n=l)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,l=s-t+1,a=new Array(o);let c,h;for(let e=0;e<o;++e)a[e]=new Array(l),a[e][0]=e;for(let e=0;e<l;++e)a[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<l;++r)e[t+r-1]===n[i+s-1]?a[s][r]=a[s-1][r-1]:(c=a[s-1][r]+1,h=a[s][r-1]+1,a[s][r]=c<h?c:h);return a}(e,t,s,n,i,r)),h=[];let d,u=t,p=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==d&&(h.push(d),d=void 0),u++,p++;break;case 1:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++,d.removed.push(n[p]),p++;break;case 2:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=new R(u,[],0)),d.removed.push(n[p]),p++}return void 0!==d&&h.push(d),h}function Q(e,t){let s=!1,n=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=n,s)continue;const h=(i=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<i?-1:r===o||l===i?0:i<o?r<l?r-o:l-o:l<r?l-i:r-i);if(h>=0){t.splice(a,1),a--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const i=e.removed.length+c.removed.length-h;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(a,0,e),a++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,l;s||t.push(e)}let W=Object.freeze({support:D.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?f:s.length>1?function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)Q(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(q(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):s:U,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(0,[r],0)),r},sort(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(+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 R(0,[],n.length).adjustTo(e)),i}});const J=Object.freeze({reset:U,setDefaultStrategy(e){W=e}});function K(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class G extends E{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this.call=this.flush,K(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,L.notify(e,"length"))}},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()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.oldCollection;void 0===t&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0,this.notify((null!==(e=this._strategy)&&void 0!==e?e:W).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,M.enqueue(this))}}let X=!1;const Y=Object.freeze({enable(){if(X)return;X=!0,L.setArrayObserverFactory((e=>new G(e)));const e=Array.prototype;e.$fastPatch||(K(e,"$fastPatch",1),[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:W)[t.name](this,n,t,e)}})))}});function Z(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(Y.enable(),t=L.getNotifier(e)),L.track(t.lengthObserver,"length"),e.length}class ee{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class te extends ee{createObserver(e){return L.binding(this.evaluate,e,this.isVolatile)}}function se(e,t,s=L.isVolatileBinding(e)){return new te(e,t,s)}function ne(e,t){const s=new te(e);return s.options=t,s}class ie extends ee{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function re(e,t){return new ie(e,t)}function oe(e){return a(e)?se(e):e instanceof ee?e:re((()=>e))}let le;function ae(e){return e.map((e=>e instanceof ce?ae(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}b(ie);class ce{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ce?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(le),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(ae(this.styles)),this}static setDefaultStrategy(e){le=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ce(e):e instanceof ce?e:new ce([e])}}ce.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const he=p(),de=Object.freeze({getForInstance:he.getForInstance,getByType:he.getByType,define:e=>(he.register({type:e}),e)});function ue(){return function(e){de.define(e)}}function fe(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class pe{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)=>fe(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){fe(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){fe(this,t.controller,t)}}de.define(pe);const ge=`${Math.random().toString(36).substring(2,8)}`;let be=0;const ve=()=>`--v${ge}${++be}`;function ye(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];a(o)?o=new pe(se(o),ve()).createCSS(r):o instanceof ee?o=new pe(o,ve()).createCSS(r):void 0!==de.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ce||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 me=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t),i=new ce(s);return n.length?i.withBehaviors(...n):i};class we{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(c(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ce(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)}}de.define(we),me.partial=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t);return new we(s,n)};const Ce=`fast-${Math.random().toString(36).substring(2,8)}`,xe=`${Ce}{`,Se=`}${Ce}`,Te=Se.length;let Oe=0;const Ae=()=>`${Ce}-${++Oe}`,ke=Object.freeze({interpolation:e=>`${xe}${e}${Se}`,attribute:e=>`${Ae()}="${xe}${e}${Se}"`,comment:e=>`\x3c!--${xe}${e}${Se}--\x3e`}),Be=Object.freeze({parse(e,t){const s=e.split(xe);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(Se);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Te)}""!==o&&n.push(o)}return n}}),je=p(),$e=Object.freeze({getForInstance:je.getForInstance,getByType:je.getByType,define:(e,t)=>((t=t||{}).type=e,je.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?v.tokenList:v.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=v.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=v.event;break;default:e.targetAspect=t,e.aspectType=v.attribute}else e.aspectType=v.content}});function Ne(e){return function(t){$e.define(t,e)}}class Me{constructor(e){this.options=e}createHTML(e){return ke.attribute(e(this))}createBehavior(){return this}}b(Me);const Ee={[v.attribute]:x.setAttribute,[v.booleanAttribute]:x.setBooleanAttribute,[v.property]:(e,t,s)=>e[t]=s,[v.content]:function(e,t,s,n){if(null==s&&(s=""),s.create){e.textContent="";let t=e.$fastView;void 0===t?t=s.create():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}},[v.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 l=r.v;const a=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]=l,a.add(s))}}if(r.v=l+1,0!==l){l-=1;for(const e in o)o[e]===l&&a.remove(e)}},[v.event]:()=>{}};class Ve{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=v.content}createHTML(e){return ke.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Ee[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw u.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];switch(this.aspectType){case v.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case v.content:e.onUnbind(this);default:const n=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);n.target=s,n.controller=e,this.updateTarget(s,this.targetAspect,n.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){_.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);_.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)}}function Ie(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;)n=i.nextSibling,s.removeChild(i),i=n;s.removeChild(t)}$e.define(Ve,{aspected:!0});class Le{constructor(e,t,s){this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=I.unknown,this.context=this,this.index=0,this.length=0,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return _.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}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(){Ie(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){Ie(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}b(Le),L.defineProperty(Le.prototype,"index"),L.defineProperty(Le.prototype,"length");const ze=(e,t)=>`${e}.${t}`,Fe={},Pe={index:0,node:null};function _e(e){e.startsWith("fast-")||u.warn(1204,{name:e})}const Re=new Proxy(document.createElement("div"),{get(e,t){_e(t);const s=Reflect.get(e,t);return a(s)?s.bind(e):s},set:(e,t,s)=>(_e(t),Reflect.set(e,t,s))});class De{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:Ae(),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=Fe[t];if(!i){const n=`_${t}`;Fe[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:Re;for(const e of this.nodeIds)s[e];return new Le(t,this.factories,s)}}function He(e,t,s,n,i,r=!1){const o=s.attributes,l=e.directives;for(let a=0,c=o.length;a<c;++a){const h=o[a],d=h.value,u=Be.parse(d,l);let f=null;null===u?r&&(f=new Ve(re((()=>d),e.policy)),$e.assignAspect(f,h.name)):f=Qe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,n,i,s.tagName))}}function Ue(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=qe(e,s,i,n);i=t.node,n=t.index}}function qe(e,t,s,n){const i=ze(t,n);switch(s.nodeType){case 1:He(e,t,s,i,n),Ue(e,s,i);break;case 3:return function(e,t,s,n,i){const r=Be.parse(t.textContent,e.directives);if(null===r)return Pe.node=t.nextSibling,Pe.index=i+1,Pe;let o,l=o=t;for(let t=0,a=r.length;t<a;++t){const a=r[t];0!==t&&(i++,n=ze(s,i),o=l.parentNode.insertBefore(document.createTextNode(""),l.nextSibling)),c(a)?o.textContent=a:(o.textContent=" ",$e.assignAspect(a),e.addFactory(a,s,n,i,null)),l=o}return Pe.index=i+1,Pe.node=l.nextSibling,Pe}(e,s,t,i,n);case 8:const r=Be.parse(s.data,e.directives);null!==r&&e.addFactory(Qe.aggregate(r),t,i,n,null)}return Pe.index=n+1,Pe.node=s.nextSibling,Pe}const Qe={compile(e,t,s=x.policy){let n;if(c(e)){n=document.createElement("TEMPLATE"),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&"TEMPLATE"===t.tagName&&(n=t)}else n=e;const i=document.adoptNode(n.content),r=new De(i,t,s);var o,l;return He(r,"",n,"h",0,!0),o=i.firstChild,l=t,(o&&8==o.nodeType&&null!==Be.parse(o.data,l)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),Ue(r,i,"r"),Pe.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=x.policy){if(1===e.length)return e[0];let s,n,i,r=!1;const o=e.length,l=e.map((e=>c(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,r=r||e.dataBinding.isVolatile,i=i||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let n=0;n<o;++n)s+=l[n](e,t);return s},n.isVolatile=r,n.policy=null!=i?i:t;const a=new Ve(n);return $e.assignAspect(a,s),a}},We=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,Je=Object.create(null);class Ke{constructor(e,t=Je){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ge(e,t,s,n=$e.getForInstance(e)){if(n.aspected){const s=We.exec(t);null!==s&&$e.assignAspect(e,s[2])}return e.createHTML(s)}Ke.empty=new Ke(""),$e.define(Ke);class Xe{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=Qe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new Ke(c(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw u.error(1208);if(this.policy)throw u.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=Ae();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,l=t[s];if(n+=i,a(l))l=new Ve(se(l));else if(l instanceof ee)l=new Ve(l);else if(!(o=$e.getForInstance(l))){const e=l;l=new Ve(re((()=>e)))}n+=Ge(l,i,r,o)}return new Xe(n+e[e.length-1],i,s)}}b(Xe);const Ye=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Xe.create(e,t);throw u.error(1206)};Ye.partial=e=>new Ke(e);class Ze extends Me{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}$e.define(Ze);const et=e=>new Ze(e);function tt(e,t){const s=a(e)?e:()=>e,n=a(t)?t:()=>t;return(e,t)=>s(e,t)?n(e,t):null}const st=Object.freeze({positioning:!1,recycle:!0});function nt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.bind(t[s])}function it(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])}class rt{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=nt,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=it)}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),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():this.updateViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=f);const t=this.itemsObserver,s=this.itemsObserver=L.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,l=[];let a=0,c=0;for(let h=0,d=e.length;h<d;++h){const d=e[h],u=d.removed;let f=0,p=d.index;const g=p+d.addedCount,b=t.splice(d.index,u.length),v=c=l.length+b.length;for(;p<g;++p){const e=t[p],h=e?e.firstChild:this.location;let d;o&&c>0?(f<=v&&b.length>0?(d=b[f],f++):(d=l[a],a++),c--):d=i.create(),t.splice(p,0,d),s(d,n,p,r),d.insertBefore(h)}b[f]&&l.push(...b.slice(f))}for(let e=a,t=l.length;e<t;++e)l[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,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||(Le.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),l[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<a){i(l[e],t,e,r)}else{const o=s.create();i(o,t,e,r),l.push(o),o.insertBefore(n)}const c=l.splice(e,a-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)e[t].unbind()}}class ot{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,Y.enable()}createHTML(e){return ke.comment(e(this))}createBehavior(){return new rt(this)}}function lt(e,t,s=st){const n=oe(e),i=oe(t);return new ot(n,i,Object.assign(Object.assign({},st),s))}$e.define(ot);const at=e=>1===e.nodeType,ct=e=>e?t=>1===t.nodeType&&t.matches(e):at;class ht extends Me{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,f),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}}class dt extends ht{observe(e){e.addEventListener("slotchange",this)}disconnect(e){e.removeEventListener("slotchange",this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function ut(e){return c(e)&&(e={property:e}),new dt(e)}$e.define(dt);class ft extends ht{constructor(e){super(e),this.observerProperty=`${this.id}-o`,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,t.target=e,e[this.observerProperty]=t),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 pt(e){return c(e)&&(e={property:e}),new ft(e)}$e.define(ft);const gt=Object.freeze({locate:g()}),bt={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},vt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:bt.fromView(e)};function yt(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const mt={toView(e){const t=yt(e);return t?t.toString():t},fromView:yt};class wt{constructor(e,t,s=t.toLowerCase(),n="reflect",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,"boolean"===n&&void 0===i&&(this.converter=bt)}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 L.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||M.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case"reflect":const t=this.converter;x.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case"boolean":x.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(gt.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];c(n)?s.push(new wt(e,n)):s.push(new wt(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function Ct(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),gt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const xt={mode:"open"},St={},Tt=new Set,Ot=u.getById(l.elementRegistry,(()=>p()));class At{constructor(e,t=e.definition){var s;this.platformDefined=!1,c(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=wt.collect(e,t.attributes),r=new Array(i.length),o={},l={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,l[t.attribute]=t,L.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=l,this.shadowOptions=void 0===t.shadowOptions?xt:null===t.shadowOptions?void 0:Object.assign(Object.assign({},xt),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?St:Object.assign(Object.assign({},St),t.elementOptions),this.styles=ce.normalize(t.styles),Ot.register(this)}get isDefined(){return this.platformDefined}define(e=this.registry){const t=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,t,this.elementOptions)),this}static compose(e,t){return Tt.has(e)||Ot.getByType(e)?new At(class extends e{},t):new At(e,t)}static registerBaseType(e){Tt.add(e)}}At.getByType=Ot.getByType,At.getForInstance=Ot.getForInstance;const kt={bubbles:!0,composed:!0,cancelable:!0},Bt=new WeakMap;function jt(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:Bt.get(e))&&void 0!==s?s:null}let $t;class Nt 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._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t;const s=t.shadowOptions;if(void 0!==s){let t=e.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=e.attachShadow(s),"closed"===s.mode&&Bt.set(e,t))}const n=L.getAccessors(e);if(n.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,i=n.length;s<i;++s){const i=n[s].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return L.track(this,"isConnected"),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:_.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 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=jt(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=jt(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.addBehavior(t[e])}}connect(){if(3!==this.stage)return;if(this.stage=0,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}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.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,L.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,L.notify(this,"isConnected"),null!==this.view&&this.view.unbind();const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);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},kt),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=jt(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=I.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=At.getForInstance(e);if(void 0===s)throw u.error(1401);return e.$fastController=new $t(e,s)}static setStrategy(e){$t=e}}function Mt(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=jt(e))&&void 0!==t?t:e.getRootNode()}b(Nt),Nt.setStrategy(Nt);class Et{constructor(e){const t=Et.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){const t=Mt(e);t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.sheets]}removeStylesFrom(e){const t=Mt(e),s=this.sheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter((e=>-1===s.indexOf(e)))}}Et.styleSheetCache=new Map;let Vt=0;function It(e){return e===document?document.body:e}function Lt(e){const t=class extends e{constructor(){super(),Nt.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 At.registerBaseType(t),t}function zt(e,t){return a(e)?At.compose(e,t).define().type:At.compose(this,e).define().type}ce.setDefaultStrategy(ce.supportsAdoptedStyleSheets?Et:class{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Vt}addStylesTo(e){e=It(Mt(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=It(Mt(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}});const Ft=Object.assign(Lt(HTMLElement),{from:function(e){return Lt(e)},define:zt,compose:function(e,t){return a(e)?At.compose(e,t):At.compose(this,e)}});function Pt(e){return function(t){zt(t,e)}}x.setPolicy(N.create());export{Y as ArrayObserver,gt as AttributeConfiguration,wt as AttributeDefinition,ee as Binding,pe as CSSBindingDirective,de as CSSDirective,ft as ChildrenDirective,Qe as Compiler,x as DOM,v as DOMAspect,Nt as ElementController,ce as ElementStyles,_ as ExecutionContext,u as FAST,Ft as FASTElement,At as FASTElementDefinition,Ve as HTMLBindingDirective,$e as HTMLDirective,Le as HTMLView,Ke as InlineTemplateDirective,ke as Markup,ht as NodeObservationDirective,L as Observable,Be as Parser,V as PropertyChangeNotifier,Ze as RefDirective,rt as RepeatBehavior,ot as RepeatDirective,dt as SlottedDirective,I as SourceLifetime,R as Splice,J as SpliceStrategy,D as SpliceStrategySupport,Me as StatelessAttachedAttributeDirective,E as SubscriberSet,M as Updates,Xe as ViewTemplate,Ct as attr,bt as booleanConverter,pt as children,me as css,ue as cssDirective,Pt as customElement,ct as elements,f as emptyArray,Ye as html,Ne as htmlDirective,Z as lengthOf,ne as listener,oe as normalizeBinding,vt as nullableBooleanConverter,mt as nullableNumberConverter,z as observable,re as oneTime,se as oneWay,et as ref,lt as repeat,ut as slotted,F as volatile,tt as when};
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 enableArrayObservation 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))}});try{if(document.currentScript)o=document.currentScript.getAttribute("fast-kernel");else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute("fast-kernel")}}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 a=e=>"function"==typeof e,c=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}}();const d={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},d));const u=globalThis.FAST;if(void 0===u.getById){const e=Object.create(null);Reflect.defineProperty(u,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},d))}void 0===u.error&&Object.assign(u,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const f=Object.freeze([]);function p(){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 g(){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 b(e){e.prototype.toJSON=h}const v=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,m=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let w=Object.freeze({createHTML:e=>m.createHTML(e),protect:(e,t,s,n)=>n});const C=w,S=Object.freeze({get policy(){return w},setPolicy(e){if(w!==C)throw u.error(1201);w=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 x(e,t,s,n){return(e,t,s,...i)=>{c(s)&&(s=s.replace("javascript:","")),n(e,t,s,...i)}}function T(e,t,s,n){throw u.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:T,onauxclick:T,onbeforeinput:T,onbeforematch:T,onblur:T,oncancel:T,oncanplay:T,oncanplaythrough:T,onchange:T,onclick:T,onclose:T,oncontextlost:T,oncontextmenu:T,oncontextrestored:T,oncopy:T,oncuechange:T,oncut:T,ondblclick:T,ondrag:T,ondragend:T,ondragenter:T,ondragleave:T,ondragover:T,ondragstart:T,ondrop:T,ondurationchange:T,onemptied:T,onended:T,onerror:T,onfocus:T,onformdata:T,oninput:T,oninvalid:T,onkeydown:T,onkeypress:T,onkeyup:T,onload:T,onloadeddata:T,onloadedmetadata:T,onloadstart:T,onmousedown:T,onmouseenter:T,onmouseleave:T,onmousemove:T,onmouseout:T,onmouseover:T,onmouseup:T,onpaste:T,onpause:T,onplay:T,onplaying:T,onprogress:T,onratechange:T,onreset:T,onresize:T,onscroll:T,onsecuritypolicyviolation:T,onseeked:T,onseeking:T,onselect:T,onslotchange:T,onstalled:T,onsubmit:T,onsuspend:T,ontimeupdate:T,ontoggle:T,onvolumechange:T,onwaiting:T,onwebkitanimationend:T,onwebkitanimationiteration:T,onwebkitanimationstart:T,onwebkittransitionend:T,onwheel:T},A={elements:{a:{[v.attribute]:{href:x},[v.property]:{href:x}},area:{[v.attribute]:{href:x},[v.property]:{href:x}},button:{[v.attribute]:{formaction:x},[v.property]:{formAction:x}},embed:{[v.attribute]:{src:T},[v.property]:{src:T}},form:{[v.attribute]:{action:x},[v.property]:{action:x}},frame:{[v.attribute]:{src:x},[v.property]:{src:x}},iframe:{[v.attribute]:{src:x},[v.property]:{src:x,srcdoc:T}},input:{[v.attribute]:{formaction:x},[v.property]:{formAction:x}},link:{[v.attribute]:{href:T},[v.property]:{href:T}},object:{[v.attribute]:{codebase:T,data:T},[v.property]:{codeBase:T,data:T}},script:{[v.attribute]:{src:T,text:T},[v.property]:{src:T,text:T,innerText:T,textContent:T}},style:{[v.property]:{innerText:T,textContent:T}}},aspects:{[v.attribute]:Object.assign({},O),[v.property]:Object.assign({innerHTML:T},O),[v.event]:Object.assign({},O)}};function B(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 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]=B(r,{});break;default:s[n]=B(i,r)}}for(const t in e)t in s||(s[t]=B(e[t],{}));return Object.freeze(s)}function j(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(i,{});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 $(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const N=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=A,Object.freeze({elements:r.elements?j(r.elements,o.elements):o.elements,aspects:r.aspects?k(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(),l=i.elements[o];if(l){const i=$(l,e,t,s,n);if(i)return i}return null!==(r=$(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),M=u.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 l(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>n=e})}));class E{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 E(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new E(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 I=Object.freeze({unknown:void 0,coupled:1}),z=u.getById(l.observable,(()=>{const e=M.enqueue,t=/(:|&&|\|\||if)/,s=new WeakMap;let n,i=e=>{throw u.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=g();class l{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];a(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class h extends E{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!==I.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 b(h),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){c(t)&&(t=new l(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 h(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function L(e,t){z.defineProperty(e,t)}function F(e,t,s){return Object.assign({},s,{get(){return z.trackVolatile(),s.get.apply(this)}})}const P=u.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),_=Object.freeze({default:{index:0,length:0,get event(){return _.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>P.get(),setEvent(e){P.set(e)}});class R{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}}const D=Object.freeze({reset:1,splice:2,optimized:3}),H=new R(0,f,0);H.reset=!0;const U=[H];function q(e,t,s,n,i,r){let o=0,l=0;const a=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,a)),s===e.length&&r===n.length&&(l=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,a-o)),i+=o,r-=l,(s-=l)-(t+=o)==0&&r-i==0)return f;if(t===s){const e=new R(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new R(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],l=e[t][s-1];let a;a=o<l?o<r?o:r:l<r?l:r,a===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):a===o?(i.push(3),t--,n=o):(i.push(2),s--,n=l)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,l=s-t+1,a=new Array(o);let c,h;for(let e=0;e<o;++e)a[e]=new Array(l),a[e][0]=e;for(let e=0;e<l;++e)a[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<l;++r)e[t+r-1]===n[i+s-1]?a[s][r]=a[s-1][r-1]:(c=a[s-1][r]+1,h=a[s][r-1]+1,a[s][r]=c<h?c:h);return a}(e,t,s,n,i,r)),h=[];let d,u=t,p=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==d&&(h.push(d),d=void 0),u++,p++;break;case 1:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++,d.removed.push(n[p]),p++;break;case 2:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=new R(u,[],0)),d.removed.push(n[p]),p++}return void 0!==d&&h.push(d),h}function Q(e,t){let s=!1,n=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=n,s)continue;const h=(i=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<i?-1:r===o||l===i?0:i<o?r<l?r-o:l-o:l<r?l-i:r-i);if(h>=0){t.splice(a,1),a--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const i=e.removed.length+c.removed.length-h;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(a,0,e),a++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,l;s||t.push(e)}let W=Object.freeze({support:D.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?f:s.length>1?function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)Q(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(q(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):s:U,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(0,[r],0)),r},sort(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(+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 R(0,[],n.length).adjustTo(e)),i}});const J=Object.freeze({reset:U,setDefaultStrategy(e){W=e}});function K(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class G extends E{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this.call=this.flush,K(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,z.notify(e,"length"))}},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()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.oldCollection;void 0===t&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0,this.notify((null!==(e=this._strategy)&&void 0!==e?e:W).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,M.enqueue(this))}}let X=!1;const Y=Object.freeze({enable(){if(X)return;X=!0,z.setArrayObserverFactory((e=>new G(e)));const e=Array.prototype;e.$fastPatch||(K(e,"$fastPatch",1),[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:W)[t.name](this,n,t,e)}})))}});function Z(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(Y.enable(),t=z.getNotifier(e)),z.track(t.lengthObserver,"length"),e.length}class ee{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class te extends ee{createObserver(e){return z.binding(this.evaluate,e,this.isVolatile)}}function se(e,t,s=z.isVolatileBinding(e)){return new te(e,t,s)}function ne(e,t){const s=new te(e);return s.options=t,s}class ie extends ee{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function re(e,t){return new ie(e,t)}function oe(e){return a(e)?se(e):e instanceof ee?e:re((()=>e))}let le;function ae(e){return e.map((e=>e instanceof ce?ae(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}b(ie);class ce{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ce?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(le),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(ae(this.styles)),this}static setDefaultStrategy(e){le=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ce(e):e instanceof ce?e:new ce([e])}}ce.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const he=p(),de=Object.freeze({getForInstance:he.getForInstance,getByType:he.getByType,define:e=>(he.register({type:e}),e)});function ue(){return function(e){de.define(e)}}function fe(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class pe{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)=>fe(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){fe(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){fe(this,t.controller,t)}}de.define(pe);const ge=`${Math.random().toString(36).substring(2,8)}`;let be=0;const ve=()=>`--v${ge}${++be}`;function ye(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];a(o)?o=new pe(se(o),ve()).createCSS(r):o instanceof ee?o=new pe(o,ve()).createCSS(r):void 0!==de.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ce||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 me=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t),i=new ce(s);return n.length?i.withBehaviors(...n):i};class we{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(c(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ce(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)}}de.define(we),me.partial=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t);return new we(s,n)};const Ce=`fast-${Math.random().toString(36).substring(2,8)}`,Se=`${Ce}{`,xe=`}${Ce}`,Te=xe.length;let Oe=0;const Ae=()=>`${Ce}-${++Oe}`,Be=Object.freeze({interpolation:e=>`${Se}${e}${xe}`,attribute:e=>`${Ae()}="${Se}${e}${xe}"`,comment:e=>`\x3c!--${Se}${e}${xe}--\x3e`}),ke=Object.freeze({parse(e,t){const s=e.split(Se);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(xe);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Te)}""!==o&&n.push(o)}return n}}),je=p(),$e=Object.freeze({getForInstance:je.getForInstance,getByType:je.getByType,define:(e,t)=>((t=t||{}).type=e,je.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?v.tokenList:v.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=v.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=v.event;break;default:e.targetAspect=t,e.aspectType=v.attribute}else e.aspectType=v.content}});function Ne(e){return function(t){$e.define(t,e)}}class Me{constructor(e){this.options=e}createHTML(e){return Be.attribute(e(this))}createBehavior(){return this}}b(Me);const Ee={[v.attribute]:S.setAttribute,[v.booleanAttribute]:S.setBooleanAttribute,[v.property]:(e,t,s)=>e[t]=s,[v.content]:function(e,t,s,n){if(null==s&&(s=""),s.create){e.textContent="";let t=e.$fastView;void 0===t?t=s.create():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}},[v.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 l=r.v;const a=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]=l,a.add(s))}}if(r.v=l+1,0!==l){l-=1;for(const e in o)o[e]===l&&a.remove(e)}},[v.event]:()=>{}};class Ve{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=v.content}createHTML(e){return Be.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Ee[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw u.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];switch(this.aspectType){case v.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case v.content:e.onUnbind(this);default:const n=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);n.target=s,n.controller=e,this.updateTarget(s,this.targetAspect,n.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){_.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);_.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)}}function Ie(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;)n=i.nextSibling,s.removeChild(i),i=n;s.removeChild(t)}$e.define(Ve,{aspected:!0});class ze{constructor(e,t,s){this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=I.unknown,this.context=this,this.index=0,this.length=0,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return _.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}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(){Ie(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){Ie(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}b(ze),z.defineProperty(ze.prototype,"index"),z.defineProperty(ze.prototype,"length");const Le=(e,t)=>`${e}.${t}`,Fe={},Pe={index:0,node:null};function _e(e){e.startsWith("fast-")||u.warn(1204,{name:e})}const Re=new Proxy(document.createElement("div"),{get(e,t){_e(t);const s=Reflect.get(e,t);return a(s)?s.bind(e):s},set:(e,t,s)=>(_e(t),Reflect.set(e,t,s))});class De{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:Ae(),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=Fe[t];if(!i){const n=`_${t}`;Fe[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:Re;for(const e of this.nodeIds)s[e];return new ze(t,this.factories,s)}}function He(e,t,s,n,i,r=!1){const o=s.attributes,l=e.directives;for(let a=0,c=o.length;a<c;++a){const h=o[a],d=h.value,u=ke.parse(d,l);let f=null;null===u?r&&(f=new Ve(re((()=>d),e.policy)),$e.assignAspect(f,h.name)):f=Qe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,n,i,s.tagName))}}function Ue(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=qe(e,s,i,n);i=t.node,n=t.index}}function qe(e,t,s,n){const i=Le(t,n);switch(s.nodeType){case 1:He(e,t,s,i,n),Ue(e,s,i);break;case 3:return function(e,t,s,n,i){const r=ke.parse(t.textContent,e.directives);if(null===r)return Pe.node=t.nextSibling,Pe.index=i+1,Pe;let o,l=o=t;for(let t=0,a=r.length;t<a;++t){const a=r[t];0!==t&&(i++,n=Le(s,i),o=l.parentNode.insertBefore(document.createTextNode(""),l.nextSibling)),c(a)?o.textContent=a:(o.textContent=" ",$e.assignAspect(a),e.addFactory(a,s,n,i,null)),l=o}return Pe.index=i+1,Pe.node=l.nextSibling,Pe}(e,s,t,i,n);case 8:const r=ke.parse(s.data,e.directives);null!==r&&e.addFactory(Qe.aggregate(r),t,i,n,null)}return Pe.index=n+1,Pe.node=s.nextSibling,Pe}const Qe={compile(e,t,s=S.policy){let n;if(c(e)){n=document.createElement("TEMPLATE"),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&"TEMPLATE"===t.tagName&&(n=t)}else n=e;n.content.firstChild||n.content.lastChild||n.content.appendChild(document.createComment(""));const i=document.adoptNode(n.content),r=new De(i,t,s);var o,l;return He(r,"",n,"h",0,!0),o=i.firstChild,l=t,(o&&8==o.nodeType&&null!==ke.parse(o.data,l)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),Ue(r,i,"r"),Pe.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=S.policy){if(1===e.length)return e[0];let s,n,i,r=!1;const o=e.length,l=e.map((e=>c(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,r=r||e.dataBinding.isVolatile,i=i||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let n=0;n<o;++n)s+=l[n](e,t);return s},n.isVolatile=r,n.policy=null!=i?i:t;const a=new Ve(n);return $e.assignAspect(a,s),a}},We=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,Je=Object.create(null);class Ke{constructor(e,t=Je){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ge(e,t,s,n=$e.getForInstance(e)){if(n.aspected){const s=We.exec(t);null!==s&&$e.assignAspect(e,s[2])}return e.createHTML(s)}Ke.empty=new Ke(""),$e.define(Ke);class Xe{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=Qe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new Ke(c(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw u.error(1208);if(this.policy)throw u.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=Ae();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,l=t[s];if(n+=i,a(l))l=new Ve(se(l));else if(l instanceof ee)l=new Ve(l);else if(!(o=$e.getForInstance(l))){const e=l;l=new Ve(re((()=>e)))}n+=Ge(l,i,r,o)}return new Xe(n+e[e.length-1],i,s)}}b(Xe);const Ye=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Xe.create(e,t);throw u.error(1206)};Ye.partial=e=>new Ke(e);class Ze extends Me{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}$e.define(Ze);const et=e=>new Ze(e),tt=()=>null;function st(e){return void 0===e?tt:a(e)?e:()=>e}function nt(e,t,s){const n=a(e)?e:()=>e,i=st(t),r=st(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 ot(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])}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=ot)}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),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():this.updateViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=f);const t=this.itemsObserver,s=this.itemsObserver=z.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,l=[];let a=0,c=0;for(let h=0,d=e.length;h<d;++h){const d=e[h],u=d.removed;let f=0,p=d.index;const g=p+d.addedCount,b=t.splice(d.index,u.length),v=c=l.length+b.length;for(;p<g;++p){const e=t[p],h=e?e.firstChild:this.location;let d;o&&c>0?(f<=v&&b.length>0?(d=b[f],f++):(d=l[a],a++),c--):d=i.create(),t.splice(p,0,d),s(d,n,p,r),d.insertBefore(h)}b[f]&&l.push(...b.slice(f))}for(let e=a,t=l.length;e<t;++e)l[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,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||(ze.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),l[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<a){i(l[e],t,e,r)}else{const o=s.create();i(o,t,e,r),l.push(o),o.insertBefore(n)}const c=l.splice(e,a-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)e[t].unbind()}}class at{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,Y.enable()}createHTML(e){return Be.comment(e(this))}createBehavior(){return new lt(this)}}function ct(e,t,s=it){const n=oe(e),i=oe(t);return new at(n,i,Object.assign(Object.assign({},it),s))}$e.define(at);const ht=e=>1===e.nodeType,dt=e=>e?t=>1===t.nodeType&&t.matches(e):ht;class ut extends Me{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,f),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}}class ft extends ut{observe(e){e.addEventListener("slotchange",this)}disconnect(e){e.removeEventListener("slotchange",this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function pt(e){return c(e)&&(e={property:e}),new ft(e)}$e.define(ft);class gt 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 bt(e){return c(e)&&(e={property:e}),new gt(e)}$e.define(gt);const vt=Object.freeze({locate:g()}),yt={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},mt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:yt.fromView(e)};function wt(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const Ct={toView(e){const t=wt(e);return t?t.toString():t},fromView:wt};class St{constructor(e,t,s=t.toLowerCase(),n="reflect",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,"boolean"===n&&void 0===i&&(this.converter=yt)}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 z.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||M.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case"reflect":const t=this.converter;S.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case"boolean":S.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(vt.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];c(n)?s.push(new St(e,n)):s.push(new St(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function xt(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),vt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const Tt={mode:"open"},Ot={},At=new Set,Bt=u.getById(l.elementRegistry,(()=>p()));class kt{constructor(e,t=e.definition){var s;this.platformDefined=!1,c(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=St.collect(e,t.attributes),r=new Array(i.length),o={},l={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,l[t.attribute]=t,z.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=l,this.shadowOptions=void 0===t.shadowOptions?Tt:null===t.shadowOptions?void 0:Object.assign(Object.assign({},Tt),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?Ot:Object.assign(Object.assign({},Ot),t.elementOptions),this.styles=ce.normalize(t.styles),Bt.register(this)}get isDefined(){return this.platformDefined}define(e=this.registry){const t=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,t,this.elementOptions)),this}static compose(e,t){return At.has(e)||Bt.getByType(e)?new kt(class extends e{},t):new kt(e,t)}static registerBaseType(e){At.add(e)}}kt.getByType=Bt.getByType,kt.getForInstance=Bt.getForInstance;const jt={bubbles:!0,composed:!0,cancelable:!0},$t=new WeakMap;function Nt(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:$t.get(e))&&void 0!==s?s:null}let Mt;class Et 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._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t;const s=t.shadowOptions;if(void 0!==s){let t=e.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=e.attachShadow(s),"closed"===s.mode&&$t.set(e,t))}const n=z.getAccessors(e);if(n.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,i=n.length;s<i;++s){const i=n[s].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return z.track(this,"isConnected"),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:_.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 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=Nt(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=Nt(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(){if(3!==this.stage)return;if(this.stage=0,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}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.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,z.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,z.notify(this,"isConnected"),null!==this.view&&this.view.unbind();const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);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},jt),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=Nt(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=I.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=kt.getForInstance(e);if(void 0===s)throw u.error(1401);return e.$fastController=new Mt(e,s)}static setStrategy(e){Mt=e}}function Vt(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=Nt(e))&&void 0!==t?t:e.getRootNode()}b(Et),Et.setStrategy(Et);class It{constructor(e){const t=It.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){Pt(Vt(e),this.sheets)}removeStylesFrom(e){_t(Vt(e),this.sheets)}}It.styleSheetCache=new Map;let zt=0;function Lt(e){return e===document?document.body:e}class Ft{constructor(e){this.styles=e,this.styleClass="fast-"+ ++zt}addStylesTo(e){e=Lt(Vt(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=Lt(Vt(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}}let Pt=(e,t)=>{e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t]},_t=(e,t)=>{e.adoptedStyleSheets=e.adoptedStyleSheets.filter((e=>-1===t.indexOf(e)))};if(ce.supportsAdoptedStyleSheets){try{document.adoptedStyleSheets.push(),document.adoptedStyleSheets.splice(),Pt=(e,t)=>{e.adoptedStyleSheets.push(...t)},_t=(e,t)=>{for(const s of t){const t=e.adoptedStyleSheets.indexOf(s);-1!==t&&e.adoptedStyleSheets.splice(t,1)}}}catch(e){}ce.setDefaultStrategy(It)}else ce.setDefaultStrategy(Ft);function Rt(e){const t=class extends e{constructor(){super(),Et.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 kt.registerBaseType(t),t}function Dt(e,t){return a(e)?kt.compose(e,t).define().type:kt.compose(this,e).define().type}const Ht=Object.assign(Rt(HTMLElement),{from:function(e){return Rt(e)},define:Dt,compose:function(e,t){return a(e)?kt.compose(e,t):kt.compose(this,e)}});function Ut(e){return function(t){Dt(t,e)}}S.setPolicy(N.create());export{Y as ArrayObserver,vt as AttributeConfiguration,St as AttributeDefinition,ee as Binding,pe as CSSBindingDirective,de as CSSDirective,gt as ChildrenDirective,Qe as Compiler,S as DOM,v as DOMAspect,Et as ElementController,ce as ElementStyles,_ as ExecutionContext,u as FAST,Ht as FASTElement,kt as FASTElementDefinition,Ve as HTMLBindingDirective,$e as HTMLDirective,ze as HTMLView,Ke as InlineTemplateDirective,Be as Markup,ut as NodeObservationDirective,z as Observable,ke as Parser,V as PropertyChangeNotifier,Ze as RefDirective,lt as RepeatBehavior,at as RepeatDirective,ft as SlottedDirective,I as SourceLifetime,R as Splice,J as SpliceStrategy,D as SpliceStrategySupport,Me as StatelessAttachedAttributeDirective,E as SubscriberSet,M as Updates,Xe as ViewTemplate,xt as attr,yt as booleanConverter,bt as children,me as css,ue as cssDirective,Ut as customElement,dt as elements,f as emptyArray,Ye as html,Ne as htmlDirective,Z as lengthOf,ne as listener,oe as normalizeBinding,mt as nullableBooleanConverter,Ct as nullableNumberConverter,L as observable,re as oneTime,se as oneWay,et as ref,ct as repeat,pt as slotted,F as volatile,nt as when};
@@ -1831,7 +1831,7 @@ function oneTime(expression, policy) {
1831
1831
  * @returns A binding configuration for the provided value.
1832
1832
  * @public
1833
1833
  */
1834
- function normalizeBinding(value) {
1834
+ function normalizeBinding$1(value) {
1835
1835
  return isFunction(value)
1836
1836
  ? oneWay(value)
1837
1837
  : value instanceof Binding
@@ -2949,6 +2949,9 @@ const Compiler = {
2949
2949
  else {
2950
2950
  template = html;
2951
2951
  }
2952
+ if (!template.content.firstChild && !template.content.lastChild) {
2953
+ template.content.appendChild(document.createComment(""));
2954
+ }
2952
2955
  // https://bugs.chromium.org/p/chromium/issues/detail?id=1111864
2953
2956
  const fragment = document.adoptNode(template.content);
2954
2957
  const context = new CompilationContext(fragment, factories, policy);
@@ -3210,19 +3213,26 @@ HTMLDirective.define(RefDirective);
3210
3213
  */
3211
3214
  const ref = (propertyName) => new RefDirective(propertyName);
3212
3215
 
3216
+ const noTemplate = () => null;
3217
+ function normalizeBinding(value) {
3218
+ return value === undefined ? noTemplate : isFunction(value) ? value : () => value;
3219
+ }
3213
3220
  /**
3214
3221
  * A directive that enables basic conditional rendering in a template.
3215
3222
  * @param condition - The condition to test for rendering.
3216
3223
  * @param templateOrTemplateBinding - The template or a binding that gets
3217
3224
  * the template to render when the condition is true.
3225
+ * @param elseTemplateOrTemplateBinding - Optional template or binding that that
3226
+ * gets the template to render when the conditional is false.
3218
3227
  * @public
3219
3228
  */
3220
- function when(condition, templateOrTemplateBinding) {
3229
+ function when(condition, templateOrTemplateBinding, elseTemplateOrTemplateBinding) {
3221
3230
  const dataBinding = isFunction(condition) ? condition : () => condition;
3222
- const templateBinding = isFunction(templateOrTemplateBinding)
3223
- ? templateOrTemplateBinding
3224
- : () => templateOrTemplateBinding;
3225
- return (source, context) => dataBinding(source, context) ? templateBinding(source, context) : null;
3231
+ const templateBinding = normalizeBinding(templateOrTemplateBinding);
3232
+ const elseBinding = normalizeBinding(elseTemplateOrTemplateBinding);
3233
+ return (source, context) => dataBinding(source, context)
3234
+ ? templateBinding(source, context)
3235
+ : elseBinding(source, context);
3226
3236
  }
3227
3237
 
3228
3238
  const defaultRepeatOptions = Object.freeze({
@@ -3480,8 +3490,8 @@ HTMLDirective.define(RepeatDirective);
3480
3490
  * @public
3481
3491
  */
3482
3492
  function repeat(items, template, options = defaultRepeatOptions) {
3483
- const dataBinding = normalizeBinding(items);
3484
- const templateBinding = normalizeBinding(template);
3493
+ const dataBinding = normalizeBinding$1(items);
3494
+ const templateBinding = normalizeBinding$1(template);
3485
3495
  return new RepeatDirective(dataBinding, templateBinding, Object.assign(Object.assign({}, defaultRepeatOptions), options));
3486
3496
  }
3487
3497
 
@@ -3626,7 +3636,7 @@ class ChildrenDirective extends NodeObservationDirective {
3626
3636
  */
3627
3637
  constructor(options) {
3628
3638
  super(options);
3629
- this.observerProperty = `${this.id}-o`;
3639
+ this.observerProperty = Symbol();
3630
3640
  this.handleEvent = (mutations, observer) => {
3631
3641
  const target = observer.target;
3632
3642
  this.updateTarget(this.getSource(target), this.computeNodes(target));
@@ -3642,9 +3652,9 @@ class ChildrenDirective extends NodeObservationDirective {
3642
3652
  if (!observer) {
3643
3653
  observer = new MutationObserver(this.handleEvent);
3644
3654
  observer.toJSON = noop;
3645
- observer.target = target;
3646
3655
  target[this.observerProperty] = observer;
3647
3656
  }
3657
+ observer.target = target;
3648
3658
  observer.observe(target, this.options);
3649
3659
  }
3650
3660
  /**
@@ -4270,7 +4280,7 @@ class ElementController extends PropertyChangeNotifier {
4270
4280
  styles.removeStylesFrom(source);
4271
4281
  if (sourceBehaviors !== null) {
4272
4282
  for (let i = 0, ii = sourceBehaviors.length; i < ii; ++i) {
4273
- this.addBehavior(sourceBehaviors[i]);
4283
+ this.removeBehavior(sourceBehaviors[i]);
4274
4284
  }
4275
4285
  }
4276
4286
  }
@@ -4458,13 +4468,10 @@ class AdoptedStyleSheetsStrategy {
4458
4468
  });
4459
4469
  }
4460
4470
  addStylesTo(target) {
4461
- const t = normalizeStyleTarget(target);
4462
- t.adoptedStyleSheets = [...t.adoptedStyleSheets, ...this.sheets];
4471
+ addAdoptedStyleSheets(normalizeStyleTarget(target), this.sheets);
4463
4472
  }
4464
4473
  removeStylesFrom(target) {
4465
- const t = normalizeStyleTarget(target);
4466
- const sheets = this.sheets;
4467
- t.adoptedStyleSheets = t.adoptedStyleSheets.filter((x) => sheets.indexOf(x) === -1);
4474
+ removeAdoptedStyleSheets(normalizeStyleTarget(target), this.sheets);
4468
4475
  }
4469
4476
  }
4470
4477
  AdoptedStyleSheetsStrategy.styleSheetCache = new Map();
@@ -4500,9 +4507,42 @@ class StyleElementStrategy {
4500
4507
  }
4501
4508
  }
4502
4509
  }
4503
- ElementStyles.setDefaultStrategy(ElementStyles.supportsAdoptedStyleSheets
4504
- ? AdoptedStyleSheetsStrategy
4505
- : StyleElementStrategy);
4510
+ let addAdoptedStyleSheets = (target, sheets) => {
4511
+ target.adoptedStyleSheets = [...target.adoptedStyleSheets, ...sheets];
4512
+ };
4513
+ let removeAdoptedStyleSheets = (target, sheets) => {
4514
+ target.adoptedStyleSheets = target.adoptedStyleSheets.filter((x) => sheets.indexOf(x) === -1);
4515
+ };
4516
+ if (ElementStyles.supportsAdoptedStyleSheets) {
4517
+ try {
4518
+ // Test if browser implementation uses FrozenArray.
4519
+ // If not, use push / splice to alter the stylesheets
4520
+ // in place. This circumvents a bug in Safari 16.4 where
4521
+ // periodically, assigning the array would previously
4522
+ // cause sheets to be removed.
4523
+ document.adoptedStyleSheets.push();
4524
+ document.adoptedStyleSheets.splice();
4525
+ addAdoptedStyleSheets = (target, sheets) => {
4526
+ target.adoptedStyleSheets.push(...sheets);
4527
+ };
4528
+ removeAdoptedStyleSheets = (target, sheets) => {
4529
+ for (const sheet of sheets) {
4530
+ const index = target.adoptedStyleSheets.indexOf(sheet);
4531
+ if (index !== -1) {
4532
+ target.adoptedStyleSheets.splice(index, 1);
4533
+ }
4534
+ }
4535
+ };
4536
+ }
4537
+ catch (e) {
4538
+ // Do nothing if an error is thrown, the default
4539
+ // case handles FrozenArray.
4540
+ }
4541
+ ElementStyles.setDefaultStrategy(AdoptedStyleSheetsStrategy);
4542
+ }
4543
+ else {
4544
+ ElementStyles.setDefaultStrategy(StyleElementStrategy);
4545
+ }
4506
4546
 
4507
4547
  /* eslint-disable-next-line @typescript-eslint/explicit-function-return-type */
4508
4548
  function createFASTElement(BaseType) {
@@ -4583,4 +4623,4 @@ function customElement(nameOrDef) {
4583
4623
 
4584
4624
  DOM.setPolicy(DOMPolicy.create());
4585
4625
 
4586
- export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };
4626
+ export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, normalizeBinding$1 as normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };