@microsoft/fast-element 2.0.0-beta.21 → 2.0.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +54 -0
- package/CHANGELOG.md +21 -1
- package/dist/dts/binding/binding.d.ts +49 -0
- package/dist/dts/binding/normalize.d.ts +9 -0
- package/dist/dts/binding/one-time.d.ts +11 -0
- package/dist/dts/binding/one-way.d.ts +20 -0
- package/dist/dts/{templating/binding-signal.d.ts → binding/signal.d.ts} +16 -3
- package/dist/dts/{templating/binding-two-way.d.ts → binding/two-way.d.ts} +6 -4
- package/dist/dts/components/element-controller.d.ts +20 -5
- package/dist/dts/context.d.ts +21 -8
- package/dist/dts/index.d.ts +7 -2
- package/dist/dts/interfaces.d.ts +9 -4
- package/dist/dts/metadata.d.ts +1 -0
- package/dist/dts/platform.d.ts +9 -1
- package/dist/dts/styles/css-binding-directive.d.ts +60 -0
- package/dist/dts/styles/css.d.ts +9 -2
- package/dist/dts/styles/host.d.ts +2 -5
- package/dist/dts/templating/{binding.d.ts → html-binding-directive.d.ts} +3 -34
- package/dist/dts/templating/html-directive.d.ts +3 -35
- package/dist/dts/templating/render.d.ts +19 -5
- package/dist/dts/templating/repeat.d.ts +3 -2
- package/dist/dts/templating/template.d.ts +2 -6
- package/dist/dts/templating/view.d.ts +16 -6
- package/dist/dts/testing/fakes.d.ts +2 -1
- package/dist/esm/binding/binding.js +18 -0
- package/dist/esm/binding/normalize.js +17 -0
- package/dist/esm/binding/one-time.js +21 -0
- package/dist/esm/binding/one-way.js +30 -0
- package/dist/esm/{templating/binding-signal.js → binding/signal.js} +20 -10
- package/dist/esm/{templating/binding-two-way.js → binding/two-way.js} +14 -15
- package/dist/esm/components/element-controller.js +33 -8
- package/dist/esm/context.js +22 -1
- package/dist/esm/index.js +9 -2
- package/dist/esm/interfaces.js +3 -3
- package/dist/esm/metadata.js +3 -1
- package/dist/esm/observation/observable.js +3 -6
- package/dist/esm/platform.js +9 -0
- package/dist/esm/styles/css-binding-directive.js +76 -0
- package/dist/esm/styles/css.js +14 -2
- package/dist/esm/templating/compiler.js +2 -1
- package/dist/esm/templating/{binding.js → html-binding-directive.js} +3 -70
- package/dist/esm/templating/html-directive.js +2 -25
- package/dist/esm/templating/render.js +25 -12
- package/dist/esm/templating/repeat.js +3 -3
- package/dist/esm/templating/template.js +9 -10
- package/dist/esm/templating/view.js +2 -6
- package/dist/esm/testing/fakes.js +1 -1
- package/dist/fast-element.api.json +1129 -222
- package/dist/fast-element.d.ts +125 -33
- package/dist/fast-element.debug.js +217 -117
- package/dist/fast-element.debug.min.js +1 -1
- package/dist/fast-element.js +217 -117
- package/dist/fast-element.min.js +1 -1
- package/dist/fast-element.untrimmed.d.ts +132 -72
- package/docs/api-report.md +52 -48
- package/package.json +5 -5
package/dist/fast-element.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
let e;try{if(document.currentScript)e=document.currentScript.getAttribute("fast-kernel");else{const t=document.getElementsByTagName("script");e=t[t.length-1].getAttribute("fast-kernel")}}catch(t){e="isolate"}let t;switch(e){case"share":t=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":t=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)}`;t=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const s=e=>"function"==typeof e,i=e=>"string"==typeof e,n=()=>{};!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 r={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},r));const o=globalThis.FAST;if(void 0===o.getById){const e=Object.create(null);Reflect.defineProperty(o,"getById",Object.assign({value(t,s){let i=e[t];return void 0===i&&(i=s?e[t]=s():null),i}},r))}void 0===o.error&&Object.assign(o,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const l=Object.freeze([]);function a(){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 c(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let i=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==i;)s=e.get(i),i=Reflect.getPrototypeOf(i);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}const h=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),d=e=>e,u=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:d}):{createHTML:d};let f=Object.freeze({createHTML:e=>u.createHTML(e),protect:(e,t,s,i)=>i});const p=f,g=Object.freeze({get policy(){return f},setPolicy(e){if(f!==p)throw o.error(1201);f=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 b(e,t,s,n){return(e,t,s,...r)=>{i(s)&&(s=s.replace("javascript:","")),n(e,t,s,...r)}}function v(e,t,s,i){throw o.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const y={onabort:v,onauxclick:v,onbeforeinput:v,onbeforematch:v,onblur:v,oncancel:v,oncanplay:v,oncanplaythrough:v,onchange:v,onclick:v,onclose:v,oncontextlost:v,oncontextmenu:v,oncontextrestored:v,oncopy:v,oncuechange:v,oncut:v,ondblclick:v,ondrag:v,ondragend:v,ondragenter:v,ondragleave:v,ondragover:v,ondragstart:v,ondrop:v,ondurationchange:v,onemptied:v,onended:v,onerror:v,onfocus:v,onformdata:v,oninput:v,oninvalid:v,onkeydown:v,onkeypress:v,onkeyup:v,onload:v,onloadeddata:v,onloadedmetadata:v,onloadstart:v,onmousedown:v,onmouseenter:v,onmouseleave:v,onmousemove:v,onmouseout:v,onmouseover:v,onmouseup:v,onpaste:v,onpause:v,onplay:v,onplaying:v,onprogress:v,onratechange:v,onreset:v,onresize:v,onscroll:v,onsecuritypolicyviolation:v,onseeked:v,onseeking:v,onselect:v,onslotchange:v,onstalled:v,onsubmit:v,onsuspend:v,ontimeupdate:v,ontoggle:v,onvolumechange:v,onwaiting:v,onwebkitanimationend:v,onwebkitanimationiteration:v,onwebkitanimationstart:v,onwebkittransitionend:v,onwheel:v},m={elements:{a:{[h.attribute]:{href:b},[h.property]:{href:b}},area:{[h.attribute]:{href:b},[h.property]:{href:b}},button:{[h.attribute]:{formaction:b},[h.property]:{formAction:b}},embed:{[h.attribute]:{src:v},[h.property]:{src:v}},form:{[h.attribute]:{action:b},[h.property]:{action:b}},frame:{[h.attribute]:{src:b},[h.property]:{src:b}},iframe:{[h.attribute]:{src:b},[h.property]:{src:b,srcdoc:v}},input:{[h.attribute]:{formaction:b},[h.property]:{formAction:b}},link:{[h.attribute]:{href:v},[h.property]:{href:v}},object:{[h.attribute]:{codebase:v,data:v},[h.property]:{codeBase:v,data:v}},script:{[h.attribute]:{src:v,text:v},[h.property]:{src:v,text:v,innerText:v,textContent:v}},style:{[h.property]:{innerText:v,textContent:v}}},aspects:{[h.attribute]:Object.assign({},y),[h.property]:Object.assign({innerHTML:v},y),[h.event]:Object.assign({},y)}};function w(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=r;break;default:s[i]=n}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function x(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=w(r,{});break;default:s[i]=w(n,r)}}for(const t in e)t in s||(s[t]=w(e[t],{}));return Object.freeze(s)}function C(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=x(n,{});break;default:s[i]=x(n,r)}}for(const t in e)t in s||(s[t]=x(e[t],{}));return Object.freeze(s)}function S(e,t,s,i,n){const r=e[s];if(r){const e=r[i];if(e)return e(t,s,i,n)}}const O=Object.freeze({create(e={}){var t,s;const i=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}}(),n=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=m,Object.freeze({elements:r.elements?C(r.elements,o.elements):o.elements,aspects:r.aspects?x(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>i.createHTML(e),protect(e,t,s,i){var r;const o=(null!=e?e:"").toLowerCase(),l=n.elements[o];if(l){const n=S(l,e,t,s,i);if(n)return n}return null!==(r=S(n.aspects,e,t,s,i))&&void 0!==r?r:i}})}}),T=o.getById(t.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let i=!0;function n(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!i)throw e.length=0,s;t.push(s),setTimeout(n,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,i=e.length-t;s<i;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function l(t){e.push(t),e.length<2&&(i?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>i=e})}));class A{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,i=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==i&&i.handleChange(s,e)}else for(let i=0,n=t.length;i<n;++i)t[i].handleChange(s,e)}}class B{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,i;let n;n=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new A(this.subject):null!==(i=this.subjectSubscribers)&&void 0!==i?i:this.subjectSubscribers=new A(this.subject),n.subscribe(e)}unsubscribe(e,t){var s,i;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(i=this.subjectSubscribers)||void 0===i||i.unsubscribe(e)}}const k=Object.freeze({unknown:void 0,coupled:1}),j=o.getById(t.observable,(()=>{const e=T.enqueue,t=/(:|&&|\|\||if)/,r=new WeakMap;let l,a=e=>{throw o.error(1101)};function h(e){var t;let s=null!==(t=e.$fastController)&&void 0!==t?t:r.get(e);return void 0===s&&(Array.isArray(e)?s=a(e):r.set(e,s=new B(e))),s}const d=c();class u{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==l&&l.watch(e,this.name),e[this.field]}setValue(e,t){const i=this.field,n=e[i];if(n!==t){e[i]=t;const r=e[this.callback];s(r)&&r.call(e,n,t),h(e).notify(this.name)}}}class f extends A{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,this.toJSON=n}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!==k.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=l;let i;l=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{l=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=h(e),n=null===s?this.first:{};if(n.propertySource=e,n.propertyName=t,n.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;l=void 0,t=s.propertySource[s.propertyName],l=this,e===t&&(this.needsRefresh=!0)}s.next=n}this.last=n}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 Object.freeze({setArrayObserverFactory(e){a=e},getNotifier:h,track(e,t){l&&l.watch(e,t)},trackVolatile(){l&&(l.needsRefresh=!0)},notify(e,t){h(e).notify(t)},defineProperty(e,t){i(t)&&(t=new u(t)),d(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:d,binding(e,t,s=this.isVolatileBinding(e)){return new f(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function N(e,t){j.defineProperty(e,t)}function $(e,t,s){return Object.assign({},s,{get(){return j.trackVolatile(),s.get.apply(this)}})}const V=o.getById(t.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),z=Object.freeze({default:{index:0,length:0,get event(){return z.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>V.get(),setEvent(e){V.set(e)}});class E{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 L=Object.freeze({reset:1,splice:2,optimized:3}),I=new E(0,l,0);I.reset=!0;const M=[I];function _(e,t,s,i,n,r){let o=0,a=0;const c=Math.min(s-t,r-n);if(0===t&&0===n&&(o=function(e,t,s){for(let i=0;i<s;++i)if(e[i]!==t[i])return i;return s}(e,i,c)),s===e.length&&r===i.length&&(a=function(e,t,s){let i=e.length,n=t.length,r=0;for(;r<s&&e[--i]===t[--n];)r++;return r}(e,i,c-o)),n+=o,r-=a,(s-=a)-(t+=o)==0&&r-n==0)return l;if(t===s){const e=new E(t,[],0);for(;n<r;)e.removed.push(i[n++]);return[e]}if(n===r)return[new E(t,[],s-t)];const h=function(e){let t=e.length-1,s=e[0].length-1,i=e[t][s];const n=[];for(;t>0||s>0;){if(0===t){n.push(2),s--;continue}if(0===s){n.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===i?n.push(0):(n.push(1),i=r),t--,s--):a===o?(n.push(3),t--,i=o):(n.push(2),s--,i=l)}return n.reverse()}(function(e,t,s,i,n,r){const o=r-n+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]===i[n+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,i,n,r)),d=[];let u,f=t,p=n;for(let e=0;e<h.length;++e)switch(h[e]){case 0:void 0!==u&&(d.push(u),u=void 0),f++,p++;break;case 1:void 0===u&&(u=new E(f,[],0)),u.addedCount++,f++,u.removed.push(i[p]),p++;break;case 2:void 0===u&&(u=new E(f,[],0)),u.addedCount++,f++;break;case 3:void 0===u&&(u=new E(f,[],0)),u.removed.push(i[p]),p++}return void 0!==u&&d.push(u),d}function F(e,t){let s=!1,i=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=i,s)continue;const h=(n=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<n?-1:r===o||l===n?0:n<o?r<l?r-o:l-o:l<r?l-n:r-n);if(h>=0){t.splice(a,1),a--,i-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const n=e.removed.length+c.removed.length-h;if(e.addedCount||n){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 n=e.addedCount-e.removed.length;c.index+=n,i+=n}}var n,r,o,l;s||t.push(e)}let P=Object.freeze({support:L.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?l:s.length>1?function(e,t){let s=[];const i=[];for(let e=0,s=t.length;e<s;e++)F(t[e],i);for(let t=0,n=i.length;t<n;++t){const n=i[t];1!==n.addedCount||1!==n.removed.length?s=s.concat(_(e,n.index,n.index+n.addedCount,n.removed,0,n.removed.length)):n.removed[0]!==e[n.index]&&s.push(n)}return s}(t,s):s:M,pop(e,t,s,i){const n=e.length>0,r=s.apply(e,i);return n&&t.addSplice(new E(e.length,[r],0)),r},push(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new E(e.length-i.length,[],i.length).adjustTo(e)),n},reverse(e,t,s,i){const n=s.apply(e,i);return t.reset(e),n},shift(e,t,s,i){const n=e.length>0,r=s.apply(e,i);return n&&t.addSplice(new E(0,[r],0)),r},sort(e,t,s,i){const n=s.apply(e,i);return t.reset(e),n},splice(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new E(+i[0],n,i.length>2?i.length-2:0).adjustTo(e)),n},unshift(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new E(0,[],i.length).adjustTo(e)),n}});const R=Object.freeze({reset:M,setDefaultStrategy(e){P=e}});function H(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class D extends A{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,H(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,j.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:P).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,T.enqueue(this))}}let Q=!1;const q=Object.freeze({enable(){if(Q)return;Q=!0,j.setArrayObserverFactory((e=>new D(e)));const e=Array.prototype;e.$fastPatch||(H(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 i=this.$fastController;return void 0===i?t.apply(this,e):(null!==(s=i.strategy)&&void 0!==s?s:P)[t.name](this,i,t,e)}})))}});function U(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(q.enable(),t=j.getNotifier(e)),j.track(t.lengthObserver,"length"),e.length}let J;function W(e){return e.map((e=>e instanceof G?W(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}class G{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof G?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(J),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(W(this.styles)),this}static setDefaultStrategy(e){J=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new G(e):e instanceof G?e:new G([e])}}G.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const K=a(),X=Object.freeze({getForInstance:K.getForInstance,getByType:K.getByType,define:e=>(K.register({type:e}),e)});function Y(){return function(e){X.define(e)}}function Z(e,t){const s=[];let i="";const n=[],r=e=>{n.push(e)};for(let n=0,o=e.length-1;n<o;++n){i+=e[n];let o=t[n];void 0!==X.getForInstance(o)&&(o=o.createCSS(r)),o instanceof G||o instanceof CSSStyleSheet?(""!==i.trim()&&(s.push(i),i=""),s.push(o)):i+=o}return i+=e[e.length-1],""!==i.trim()&&s.push(i),{styles:s,behaviors:n}}const ee=(e,...t)=>{const{styles:s,behaviors:i}=Z(e,t),n=new G(s);return i.length?n.withBehaviors(...i):n};class te{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(i(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new G(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)}}X.define(te),ee.partial=(e,...t)=>{const{styles:s,behaviors:i}=Z(e,t);return new te(s,i)};const se=`fast-${Math.random().toString(36).substring(2,8)}`,ie=`${se}{`,ne=`}${se}`,re=ne.length;let oe=0;const le=()=>`${se}-${++oe}`,ae=Object.freeze({interpolation:e=>`${ie}${e}${ne}`,attribute:e=>`${le()}="${ie}${e}${ne}"`,comment:e=>`\x3c!--${ie}${e}${ne}--\x3e`}),ce=Object.freeze({parse(e,t){const s=e.split(ie);if(1===s.length)return null;const i=[];for(let e=0,n=s.length;e<n;++e){const n=s[e],r=n.indexOf(ne);let o;if(-1===r)o=n;else{const e=n.substring(0,r);i.push(t[e]),o=n.substring(r+re)}""!==o&&i.push(o)}return i}}),he=a(),de=Object.freeze({getForInstance:he.getForInstance,getByType:he.getByType,define:(e,t)=>((t=t||{}).type=e,he.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?h.tokenList:h.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=h.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=h.event;break;default:e.targetAspect=t,e.aspectType=h.attribute}else e.aspectType=h.content}});function ue(e){return function(t){de.define(t,e)}}class fe{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class pe{constructor(e){this.options=e,this.toJSON=n}createHTML(e){return ae.attribute(e(this))}createBehavior(){return this}}class ge extends fe{createObserver(e,t){return j.binding(this.evaluate,t,this.isVolatile)}}class be extends fe{constructor(){super(...arguments),this.toJSON=n}createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}const ve={[h.attribute]:g.setAttribute,[h.booleanAttribute]:g.setBooleanAttribute,[h.property]:(e,t,s)=>e[t]=s,[h.content]:function(e,t,s,i){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(i.source,i.context)):(t.isComposed=!0,t.bind(i.source,i.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}},[h.tokenList]:function(e,t,s){var i;const n=`${this.id}-t`,r=null!==(i=e[n])&&void 0!==i?i:e[n]={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)}},[h.event]:()=>{}};class ye{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=h.content}createHTML(e){return ae.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=ve[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw o.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 h.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case h.content:e.onUnbind(this);default:const i=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);i.target=s,i.controller=e,this.updateTarget(s,this.targetAspect,i.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){z.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);z.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,i=t.controller;this.updateTarget(s,this.targetAspect,t.bind(i),i)}}function me(e,t,s=j.isVolatileBinding(e)){return new ge(e,t,s)}function we(e,t){return new be(e,t)}function xe(e,t){const s=new ge(e);return s.options=t,s}function Ce(e){return s(e)?me(e):e instanceof fe?e:we((()=>e))}function Se(e,t){const s=e.parentNode;let i,n=e;for(;n!==t;)i=n.nextSibling,s.removeChild(n),n=i;s.removeChild(t)}de.define(ye,{aspected:!0});class Oe{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=k.unknown,this.context=this,this.index=0,this.length=0,this.toJSON=n,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return z.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 i,n=this.firstChild;for(;n!==t;)i=n.nextSibling,s.insertBefore(n,e),n=i;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,i=this.firstChild;for(;i!==t;)s=i.nextSibling,e.appendChild(i),i=s;e.appendChild(t)}dispose(){Se(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 i=this.factories;for(let e=0,t=i.length;e<t;++e){const t=i[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){Se(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}j.defineProperty(Oe.prototype,"index"),j.defineProperty(Oe.prototype,"length");const Te=(e,t)=>`${e}.${t}`,Ae={},Be={index:0,node:null};function ke(e){e.startsWith("fast-")||o.warn(1204,{name:e})}const je=new Proxy(document.createElement("div"),{get(e,t){ke(t);const i=Reflect.get(e,t);return s(i)?i.bind(e):i},set:(e,t,s)=>(ke(t),Reflect.set(e,t,s))});class Ne{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,i,n){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,i)),e.id=null!==(r=e.id)&&void 0!==r?r:le(),e.targetNodeId=s,e.targetTagName=n,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 i=this.descriptors;if("r"===t||"h"===t||i[t])return;if(!i[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),i=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,i)}let n=Ae[t];if(!n){const i=`_${t}`;Ae[t]=n={get(){var t;return null!==(t=this[i])&&void 0!==t?t:this[i]=this[e].childNodes[s]}}}i[t]=n}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:je;for(const e of this.nodeIds)s[e];return new Oe(t,this.factories,s)}}function $e(e,t,s,i,n,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=ce.parse(d,l);let f=null;null===u?r&&(f=new ye(we((()=>d),e.policy)),de.assignAspect(f,h.name)):f=Ee.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,i,n,s.tagName))}}function Ve(e,t,s){let i=0,n=t.firstChild;for(;n;){const t=ze(e,s,n,i);n=t.node,i=t.index}}function ze(e,t,s,n){const r=Te(t,n);switch(s.nodeType){case 1:$e(e,t,s,r,n),Ve(e,s,r);break;case 3:return function(e,t,s,n,r){const o=ce.parse(t.textContent,e.directives);if(null===o)return Be.node=t.nextSibling,Be.index=r+1,Be;let l,a=l=t;for(let t=0,c=o.length;t<c;++t){const c=o[t];0!==t&&(r++,n=Te(s,r),l=a.parentNode.insertBefore(document.createTextNode(""),a.nextSibling)),i(c)?l.textContent=c:(l.textContent=" ",de.assignAspect(c),e.addFactory(c,s,n,r,null)),a=l}return Be.index=r+1,Be.node=a.nextSibling,Be}(e,s,t,r,n);case 8:const o=ce.parse(s.data,e.directives);null!==o&&e.addFactory(Ee.aggregate(o),t,r,n,null)}return Be.index=n+1,Be.node=s.nextSibling,Be}const Ee={compile(e,t,s=g.policy){let n;if(i(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 r=document.adoptNode(n.content),o=new Ne(r,t,s);var l,a;return $e(o,"",n,"h",0,!0),l=r.firstChild,a=t,(l&&8==l.nodeType&&null!==ce.parse(l.data,a)||1===r.childNodes.length&&Object.keys(t).length>0)&&r.insertBefore(document.createComment(""),r.firstChild),Ve(o,r,"r"),Be.node=null,o.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=g.policy){if(1===e.length)return e[0];let s,n,r,o=!1;const l=e.length,a=e.map((e=>i(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,o=o||e.dataBinding.isVolatile,r=r||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let i=0;i<l;++i)s+=a[i](e,t);return s},n.isVolatile=o,n.policy=null!=r?r:t;const c=new ye(n);return de.assignAspect(c,s),c}},Le=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,Ie=Object.create(null);class Me{constructor(e,t=Ie){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function _e(e,t,s,i=de.getForInstance(e)){if(i.aspected){const s=Le.exec(t);null!==s&&de.assignAspect(e,s[2])}return e.createHTML(s)}Me.empty=new Me(""),de.define(Me);class Fe{constructor(e,t={},s){this.policy=s,this.result=null,this.toJSON=n,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=Ee.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new Me(i(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw o.error(1208);if(this.policy)throw o.error(1207);return this.policy=e,this}render(e,t,s){const i=this.create(s);return i.bind(e),i.appendTo(t),i}static create(e,t,i){let n="";const r=Object.create(null),o=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=le();return r[s]=e,s};for(let i=0,r=e.length-1;i<r;++i){const r=e[i];let l,a=t[i];if(n+=r,s(a))a=new ye(me(a));else if(a instanceof fe)a=new ye(a);else if(!(l=de.getForInstance(a))){const e=a;a=new ye(we((()=>e)))}n+=_e(a,r,o,l)}return new Fe(n+e[e.length-1],r,i)}}const Pe=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Fe.create(e,t);throw o.error(1206)};Pe.partial=e=>new Me(e);class Re extends pe{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}de.define(Re);const He=e=>new Re(e);function De(e,t){const i=s(e)?e:()=>e,n=s(t)?t:()=>t;return(e,t)=>i(e,t)?n(e,t):null}const Qe=Object.freeze({positioning:!1,recycle:!0});function qe(e,t,s,i){e.context.parent=i.source,e.context.parentContext=i.context,e.bind(t[s])}function Ue(e,t,s,i){e.context.parent=i.source,e.context.parentContext=i.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}class Je{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=qe,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(e,this),this.templateBindingObserver=e.templateBinding.createObserver(e,this),e.options.positioning&&(this.bindView=Ue)}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=l);const t=this.itemsObserver,s=this.itemsObserver=j.getNotifier(this.items),i=t!==s;i&&null!==t&&t.unsubscribe(this),(i||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,i=this.items,n=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=n.create(),t.splice(p,0,d),s(d,i,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 i=t[e].context;i.length=s,i.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,i=this.location,n=this.bindView,r=this.controller;let o=t.length,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||(Oe.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();n(o,t,e,r),l[e]=o,o.insertBefore(i)}}else{let e=0;for(;e<o;++e)if(e<a){n(l[e],t,e,r)}else{const o=s.create();n(o,t,e,r),l.push(o),o.insertBefore(i)}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 We{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,q.enable()}createHTML(e){return ae.comment(e(this))}createBehavior(){return new Je(this)}}function Ge(e,t,s=Qe){const i=Ce(e),n=Ce(t);return new We(i,n,Object.assign(Object.assign({},Qe),s))}de.define(We);const Ke=e=>1===e.nodeType,Xe=e=>e?t=>1===t.nodeType&&t.matches(e):Ke;class Ye extends pe{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,l),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 Ze extends Ye{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 et(e){return i(e)&&(e={property:e}),new Ze(e)}de.define(Ze);class tt extends Ye{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=n,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 st(e){return i(e)&&(e={property:e}),new tt(e)}de.define(tt);const it=Object.freeze({locate:c()}),nt={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},rt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:nt.fromView(e)};function ot(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const lt={toView(e){const t=ot(e);return t?t.toString():t},fromView:ot};class at{constructor(e,t,s=t.toLowerCase(),i="reflect",n){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=i,this.converter=n,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,"boolean"===i&&void 0===n&&(this.converter=nt)}setValue(e,t){const s=e[this.fieldName],i=this.converter;void 0!==i&&(t=i.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 j.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||T.enqueue((()=>{s.add(e);const i=e[this.fieldName];switch(t){case"reflect":const t=this.converter;g.setAttribute(e,this.attribute,void 0!==t?t.toView(i):i);break;case"boolean":g.setBooleanAttribute(e,this.attribute,i)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(it.locate(e));for(let n=0,r=t.length;n<r;++n){const r=t[n];if(void 0!==r)for(let t=0,n=r.length;t<n;++t){const n=r[t];i(n)?s.push(new at(e,n)):s.push(new at(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function ct(e,t){let s;function i(e,t){arguments.length>1&&(s.property=t),it.locate(e.constructor).push(s)}return arguments.length>1?(s={},void i(e,t)):(s=void 0===e?{}:e,i)}const ht={mode:"open"},dt={},ut=new Set,ft=o.getById(t.elementRegistry,(()=>a()));class pt{constructor(e,t=e.definition){var s;this.platformDefined=!1,i(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,r=at.collect(e,t.attributes),o=new Array(r.length),l={},a={};for(let e=0,t=r.length;e<t;++e){const t=r[e];o[e]=t.attribute,l[t.name]=t,a[t.attribute]=t,j.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:o,enumerable:!0}),this.attributes=r,this.propertyLookup=l,this.attributeLookup=a,this.shadowOptions=void 0===t.shadowOptions?ht:null===t.shadowOptions?void 0:Object.assign(Object.assign({},ht),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?dt:Object.assign(Object.assign({},dt),t.elementOptions),this.styles=G.normalize(t.styles),ft.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 ut.has(e)||ft.getByType(e)?new pt(class extends e{},t):new pt(e,t)}static registerBaseType(e){ut.add(e)}}pt.getByType=ft.getByType,pt.getForInstance=ft.getForInstance;const gt={bubbles:!0,composed:!0,cancelable:!0},bt=new WeakMap;function vt(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:bt.get(e))&&void 0!==s?s:null}let yt;class mt extends B{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.toJSON=n,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 i=j.getAccessors(e);if(i.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,n=i.length;s<n;++s){const n=i[s].name,r=e[n];void 0!==r&&(delete e[n],t[n]=r)}}}get isConnected(){return j.track(this,"isConnected"),1===this.stage}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))}addBehavior(e){var t,s;const i=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,n=null!==(s=i.get(e))&&void 0!==s?s:0;0===n?(i.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):i.set(e,n+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const i=s.get(e);void 0!==i&&(1===i||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,i-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=vt(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=vt(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 i=0,n=s.length;i<n;++i){const n=s[i];e[n]=t[n]}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,j.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,j.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 i=this.definition.attributeLookup[e];void 0!==i&&i.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},gt),s)))}renderTemplate(e){var t;const s=this.source,i=null!==(t=vt(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=i.firstChild;null!==e;e=i.firstChild)i.removeChild(e)}e&&(this.view=e.render(s,i,s),this.view.sourceLifetime=k.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=pt.getForInstance(e);if(void 0===s)throw o.error(1401);return e.$fastController=new yt(e,s)}static setStrategy(e){yt=e}}function wt(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=vt(e))&&void 0!==t?t:e.getRootNode()}mt.setStrategy(mt);class xt{constructor(e){const t=xt.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=wt(e);t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.sheets]}removeStylesFrom(e){const t=wt(e),s=this.sheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter((e=>-1===s.indexOf(e)))}}xt.styleSheetCache=new Map;let Ct=0;function St(e){return e===document?document.body:e}function Ot(e){const t=class extends e{constructor(){super(),mt.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 pt.registerBaseType(t),t}function Tt(e,t){return s(e)?pt.compose(e,t).define().type:pt.compose(this,e).define().type}G.setDefaultStrategy(G.supportsAdoptedStyleSheets?xt:class{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Ct}addStylesTo(e){e=St(wt(e));const t=this.styles,s=this.styleClass;for(let i=0;i<t.length;i++){const n=document.createElement("style");n.innerHTML=t[i],n.className=s,e.append(n)}}removeStylesFrom(e){const t=(e=St(wt(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,i=t.length;s<i;++s)e.removeChild(t[s])}});const At=Object.assign(Ot(HTMLElement),{from:function(e){return Ot(e)},define:Tt,compose:function(e,t){return s(e)?pt.compose(e,t):pt.compose(this,e)}});function Bt(e){return function(t){Tt(t,e)}}g.setPolicy(O.create());export{q as ArrayObserver,it as AttributeConfiguration,at as AttributeDefinition,fe as Binding,X as CSSDirective,tt as ChildrenDirective,Ee as Compiler,g as DOM,h as DOMAspect,mt as ElementController,G as ElementStyles,z as ExecutionContext,o as FAST,At as FASTElement,pt as FASTElementDefinition,ye as HTMLBindingDirective,de as HTMLDirective,Oe as HTMLView,Me as InlineTemplateDirective,ae as Markup,Ye as NodeObservationDirective,j as Observable,ce as Parser,B as PropertyChangeNotifier,Re as RefDirective,Je as RepeatBehavior,We as RepeatDirective,Ze as SlottedDirective,k as SourceLifetime,E as Splice,R as SpliceStrategy,L as SpliceStrategySupport,pe as StatelessAttachedAttributeDirective,A as SubscriberSet,T as Updates,Fe as ViewTemplate,ct as attr,me as bind,nt as booleanConverter,st as children,c as createMetadataLocator,a as createTypeRegistry,ee as css,Y as cssDirective,Bt as customElement,Xe as elements,l as emptyArray,Pe as html,ue as htmlDirective,U as lengthOf,xe as listener,Ce as normalizeBinding,rt as nullableBooleanConverter,lt as nullableNumberConverter,N as observable,we as oneTime,He as ref,Ge as repeat,et as slotted,$ as volatile,De as when};
|
|
1
|
+
let e;try{if(document.currentScript)e=document.currentScript.getAttribute("fast-kernel");else{const t=document.getElementsByTagName("script");e=t[t.length-1].getAttribute("fast-kernel")}}catch(t){e="isolate"}let t;switch(e){case"share":t=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":t=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)}`;t=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const s=e=>"function"==typeof e,i=e=>"string"==typeof e,n=()=>{};!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 r={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},r));const o=globalThis.FAST;if(void 0===o.getById){const e=Object.create(null);Reflect.defineProperty(o,"getById",Object.assign({value(t,s){let i=e[t];return void 0===i&&(i=s?e[t]=s():null),i}},r))}void 0===o.error&&Object.assign(o,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const l=Object.freeze([]);function a(){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 c(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let i=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==i;)s=e.get(i),i=Reflect.getPrototypeOf(i);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}function h(e){e.prototype.toJSON=n}const d=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),u=e=>e,f=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:u}):{createHTML:u};let p=Object.freeze({createHTML:e=>f.createHTML(e),protect:(e,t,s,i)=>i});const g=p,b=Object.freeze({get policy(){return p},setPolicy(e){if(p!==g)throw o.error(1201);p=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 v(e,t,s,n){return(e,t,s,...r)=>{i(s)&&(s=s.replace("javascript:","")),n(e,t,s,...r)}}function y(e,t,s,i){throw o.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const m={onabort:y,onauxclick:y,onbeforeinput:y,onbeforematch:y,onblur:y,oncancel:y,oncanplay:y,oncanplaythrough:y,onchange:y,onclick:y,onclose:y,oncontextlost:y,oncontextmenu:y,oncontextrestored:y,oncopy:y,oncuechange:y,oncut:y,ondblclick:y,ondrag:y,ondragend:y,ondragenter:y,ondragleave:y,ondragover:y,ondragstart:y,ondrop:y,ondurationchange:y,onemptied:y,onended:y,onerror:y,onfocus:y,onformdata:y,oninput:y,oninvalid:y,onkeydown:y,onkeypress:y,onkeyup:y,onload:y,onloadeddata:y,onloadedmetadata:y,onloadstart:y,onmousedown:y,onmouseenter:y,onmouseleave:y,onmousemove:y,onmouseout:y,onmouseover:y,onmouseup:y,onpaste:y,onpause:y,onplay:y,onplaying:y,onprogress:y,onratechange:y,onreset:y,onresize:y,onscroll:y,onsecuritypolicyviolation:y,onseeked:y,onseeking:y,onselect:y,onslotchange:y,onstalled:y,onsubmit:y,onsuspend:y,ontimeupdate:y,ontoggle:y,onvolumechange:y,onwaiting:y,onwebkitanimationend:y,onwebkitanimationiteration:y,onwebkitanimationstart:y,onwebkittransitionend:y,onwheel:y},w={elements:{a:{[d.attribute]:{href:v},[d.property]:{href:v}},area:{[d.attribute]:{href:v},[d.property]:{href:v}},button:{[d.attribute]:{formaction:v},[d.property]:{formAction:v}},embed:{[d.attribute]:{src:y},[d.property]:{src:y}},form:{[d.attribute]:{action:v},[d.property]:{action:v}},frame:{[d.attribute]:{src:v},[d.property]:{src:v}},iframe:{[d.attribute]:{src:v},[d.property]:{src:v,srcdoc:y}},input:{[d.attribute]:{formaction:v},[d.property]:{formAction:v}},link:{[d.attribute]:{href:y},[d.property]:{href:y}},object:{[d.attribute]:{codebase:y,data:y},[d.property]:{codeBase:y,data:y}},script:{[d.attribute]:{src:y,text:y},[d.property]:{src:y,text:y,innerText:y,textContent:y}},style:{[d.property]:{innerText:y,textContent:y}}},aspects:{[d.attribute]:Object.assign({},m),[d.property]:Object.assign({innerHTML:y},m),[d.event]:Object.assign({},m)}};function C(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=r;break;default:s[i]=n}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function x(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=C(r,{});break;default:s[i]=C(n,r)}}for(const t in e)t in s||(s[t]=C(e[t],{}));return Object.freeze(s)}function S(e,t){const s={};for(const i in t){const n=e[i],r=t[i];switch(n){case null:break;case void 0:s[i]=x(n,{});break;default:s[i]=x(n,r)}}for(const t in e)t in s||(s[t]=x(e[t],{}));return Object.freeze(s)}function T(e,t,s,i,n){const r=e[s];if(r){const e=r[i];if(e)return e(t,s,i,n)}}const O=Object.freeze({create(e={}){var t,s;const i=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}}(),n=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=w,Object.freeze({elements:r.elements?S(r.elements,o.elements):o.elements,aspects:r.aspects?x(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>i.createHTML(e),protect(e,t,s,i){var r;const o=(null!=e?e:"").toLowerCase(),l=n.elements[o];if(l){const n=T(l,e,t,s,i);if(n)return n}return null!==(r=T(n.aspects,e,t,s,i))&&void 0!==r?r:i}})}}),A=o.getById(t.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let i=!0;function n(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!i)throw e.length=0,s;t.push(s),setTimeout(n,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,i=e.length-t;s<i;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function l(t){e.push(t),e.length<2&&(i?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>i=e})}));class B{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,i=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==i&&i.handleChange(s,e)}else for(let i=0,n=t.length;i<n;++i)t[i].handleChange(s,e)}}class k{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,i;let n;n=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new B(this.subject):null!==(i=this.subjectSubscribers)&&void 0!==i?i:this.subjectSubscribers=new B(this.subject),n.subscribe(e)}unsubscribe(e,t){var s,i;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(i=this.subjectSubscribers)||void 0===i||i.unsubscribe(e)}}const j=Object.freeze({unknown:void 0,coupled:1}),$=o.getById(t.observable,(()=>{const e=A.enqueue,t=/(:|&&|\|\||if)/,n=new WeakMap;let r,l=e=>{throw o.error(1101)};function a(e){var t;let s=null!==(t=e.$fastController)&&void 0!==t?t:n.get(e);return void 0===s&&(Array.isArray(e)?s=l(e):n.set(e,s=new k(e))),s}const d=c();class u{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==r&&r.watch(e,this.name),e[this.field]}setValue(e,t){const i=this.field,n=e[i];if(n!==t){e[i]=t;const r=e[this.callback];s(r)&&r.call(e,n,t),a(e).notify(this.name)}}}class f extends B{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!==j.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=r;let i;r=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{r=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=a(e),n=null===s?this.first:{};if(n.propertySource=e,n.propertyName=t,n.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;r=void 0,t=s.propertySource[s.propertyName],r=this,e===t&&(this.needsRefresh=!0)}s.next=n}this.last=n}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 h(f),Object.freeze({setArrayObserverFactory(e){l=e},getNotifier:a,track(e,t){r&&r.watch(e,t)},trackVolatile(){r&&(r.needsRefresh=!0)},notify(e,t){a(e).notify(t)},defineProperty(e,t){i(t)&&(t=new u(t)),d(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:d,binding(e,t,s=this.isVolatileBinding(e)){return new f(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function N(e,t){$.defineProperty(e,t)}function V(e,t,s){return Object.assign({},s,{get(){return $.trackVolatile(),s.get.apply(this)}})}const E=o.getById(t.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),z=Object.freeze({default:{index:0,length:0,get event(){return z.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>E.get(),setEvent(e){E.set(e)}});class L{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 I=Object.freeze({reset:1,splice:2,optimized:3}),M=new L(0,l,0);M.reset=!0;const _=[M];function F(e,t,s,i,n,r){let o=0,a=0;const c=Math.min(s-t,r-n);if(0===t&&0===n&&(o=function(e,t,s){for(let i=0;i<s;++i)if(e[i]!==t[i])return i;return s}(e,i,c)),s===e.length&&r===i.length&&(a=function(e,t,s){let i=e.length,n=t.length,r=0;for(;r<s&&e[--i]===t[--n];)r++;return r}(e,i,c-o)),n+=o,r-=a,(s-=a)-(t+=o)==0&&r-n==0)return l;if(t===s){const e=new L(t,[],0);for(;n<r;)e.removed.push(i[n++]);return[e]}if(n===r)return[new L(t,[],s-t)];const h=function(e){let t=e.length-1,s=e[0].length-1,i=e[t][s];const n=[];for(;t>0||s>0;){if(0===t){n.push(2),s--;continue}if(0===s){n.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===i?n.push(0):(n.push(1),i=r),t--,s--):a===o?(n.push(3),t--,i=o):(n.push(2),s--,i=l)}return n.reverse()}(function(e,t,s,i,n,r){const o=r-n+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]===i[n+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,i,n,r)),d=[];let u,f=t,p=n;for(let e=0;e<h.length;++e)switch(h[e]){case 0:void 0!==u&&(d.push(u),u=void 0),f++,p++;break;case 1:void 0===u&&(u=new L(f,[],0)),u.addedCount++,f++,u.removed.push(i[p]),p++;break;case 2:void 0===u&&(u=new L(f,[],0)),u.addedCount++,f++;break;case 3:void 0===u&&(u=new L(f,[],0)),u.removed.push(i[p]),p++}return void 0!==u&&d.push(u),d}function P(e,t){let s=!1,i=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=i,s)continue;const h=(n=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<n?-1:r===o||l===n?0:n<o?r<l?r-o:l-o:l<r?l-n:r-n);if(h>=0){t.splice(a,1),a--,i-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const n=e.removed.length+c.removed.length-h;if(e.addedCount||n){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 n=e.addedCount-e.removed.length;c.index+=n,i+=n}}var n,r,o,l;s||t.push(e)}let R=Object.freeze({support:I.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?l:s.length>1?function(e,t){let s=[];const i=[];for(let e=0,s=t.length;e<s;e++)P(t[e],i);for(let t=0,n=i.length;t<n;++t){const n=i[t];1!==n.addedCount||1!==n.removed.length?s=s.concat(F(e,n.index,n.index+n.addedCount,n.removed,0,n.removed.length)):n.removed[0]!==e[n.index]&&s.push(n)}return s}(t,s):s:_,pop(e,t,s,i){const n=e.length>0,r=s.apply(e,i);return n&&t.addSplice(new L(e.length,[r],0)),r},push(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new L(e.length-i.length,[],i.length).adjustTo(e)),n},reverse(e,t,s,i){const n=s.apply(e,i);return t.reset(e),n},shift(e,t,s,i){const n=e.length>0,r=s.apply(e,i);return n&&t.addSplice(new L(0,[r],0)),r},sort(e,t,s,i){const n=s.apply(e,i);return t.reset(e),n},splice(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new L(+i[0],n,i.length>2?i.length-2:0).adjustTo(e)),n},unshift(e,t,s,i){const n=s.apply(e,i);return t.addSplice(new L(0,[],i.length).adjustTo(e)),n}});const H=Object.freeze({reset:_,setDefaultStrategy(e){R=e}});function D(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class Q extends B{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,D(e,"$fastController",this)}get strategy(){return this._strategy}set strategy(e){this._strategy=e}get lengthObserver(){let e=this._lengthObserver;if(void 0===e){const t=this.subject;this._lengthObserver=e={length:t.length,handleChange(){this.length!==t.length&&(this.length=t.length,$.notify(e,"length"))}},this.subscribe(e)}return e}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:R).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,A.enqueue(this))}}let q=!1;const U=Object.freeze({enable(){if(q)return;q=!0,$.setArrayObserverFactory((e=>new Q(e)));const e=Array.prototype;e.$fastPatch||(D(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 i=this.$fastController;return void 0===i?t.apply(this,e):(null!==(s=i.strategy)&&void 0!==s?s:R)[t.name](this,i,t,e)}})))}});function W(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(U.enable(),t=$.getNotifier(e)),$.track(t.lengthObserver,"length"),e.length}class J{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class G extends J{createObserver(e){return $.binding(this.evaluate,e,this.isVolatile)}}function K(e,t,s=$.isVolatileBinding(e)){return new G(e,t,s)}function X(e,t){const s=new G(e);return s.options=t,s}class Y extends J{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function Z(e,t){return new Y(e,t)}function ee(e){return s(e)?K(e):e instanceof J?e:Z((()=>e))}let te;function se(e){return e.map((e=>e instanceof ie?se(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}h(Y);class ie{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ie?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(te),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(se(this.styles)),this}static setDefaultStrategy(e){te=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ie(e):e instanceof ie?e:new ie([e])}}ie.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const ne=a(),re=Object.freeze({getForInstance:ne.getForInstance,getByType:ne.getByType,define:e=>(ne.register({type:e}),e)});function oe(){return function(e){re.define(e)}}function le(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class ae{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,i)=>{e.call(s,t,i),"style"===t&&s.$cssBindings.forEach(((e,t)=>le(t,e.controller,e.observer)))}}const i=null!==(t=e[this.targetAspect])&&void 0!==t?t:e[this.targetAspect]=this.dataBinding.createObserver(this,this);i.controller=e,e.source.$cssBindings.set(this,{controller:e,observer:i})}connectedCallback(e){le(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){le(this,t.controller,t)}}re.define(ae);const ce=`${Math.random().toString(36).substring(2,8)}`;let he=0;const de=()=>`--v${ce}${++he}`;function ue(e,t){const i=[];let n="";const r=[],o=e=>{r.push(e)};for(let r=0,l=e.length-1;r<l;++r){n+=e[r];let l=t[r];s(l)?l=new ae(K(l),de()).createCSS(o):l instanceof J?l=new ae(l,de()).createCSS(o):void 0!==re.getForInstance(l)&&(l=l.createCSS(o)),l instanceof ie||l instanceof CSSStyleSheet?(""!==n.trim()&&(i.push(n),n=""),i.push(l)):n+=l}return n+=e[e.length-1],""!==n.trim()&&i.push(n),{styles:i,behaviors:r}}const fe=(e,...t)=>{const{styles:s,behaviors:i}=ue(e,t),n=new ie(s);return i.length?n.withBehaviors(...i):n};class pe{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(i(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ie(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)}}re.define(pe),fe.partial=(e,...t)=>{const{styles:s,behaviors:i}=ue(e,t);return new pe(s,i)};const ge=`fast-${Math.random().toString(36).substring(2,8)}`,be=`${ge}{`,ve=`}${ge}`,ye=ve.length;let me=0;const we=()=>`${ge}-${++me}`,Ce=Object.freeze({interpolation:e=>`${be}${e}${ve}`,attribute:e=>`${we()}="${be}${e}${ve}"`,comment:e=>`\x3c!--${be}${e}${ve}--\x3e`}),xe=Object.freeze({parse(e,t){const s=e.split(be);if(1===s.length)return null;const i=[];for(let e=0,n=s.length;e<n;++e){const n=s[e],r=n.indexOf(ve);let o;if(-1===r)o=n;else{const e=n.substring(0,r);i.push(t[e]),o=n.substring(r+ye)}""!==o&&i.push(o)}return i}}),Se=a(),Te=Object.freeze({getForInstance:Se.getForInstance,getByType:Se.getByType,define:(e,t)=>((t=t||{}).type=e,Se.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?d.tokenList:d.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=d.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=d.event;break;default:e.targetAspect=t,e.aspectType=d.attribute}else e.aspectType=d.content}});function Oe(e){return function(t){Te.define(t,e)}}class Ae{constructor(e){this.options=e}createHTML(e){return Ce.attribute(e(this))}createBehavior(){return this}}h(Ae);const Be={[d.attribute]:b.setAttribute,[d.booleanAttribute]:b.setBooleanAttribute,[d.property]:(e,t,s)=>e[t]=s,[d.content]:function(e,t,s,i){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(i.source,i.context)):(t.isComposed=!0,t.bind(i.source,i.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}},[d.tokenList]:function(e,t,s){var i;const n=`${this.id}-t`,r=null!==(i=e[n])&&void 0!==i?i:e[n]={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)}},[d.event]:()=>{}};class ke{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=d.content}createHTML(e){return Ce.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Be[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw o.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 d.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case d.content:e.onUnbind(this);default:const i=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);i.target=s,i.controller=e,this.updateTarget(s,this.targetAspect,i.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){z.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);z.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,i=t.controller;this.updateTarget(s,this.targetAspect,t.bind(i),i)}}function je(e,t){const s=e.parentNode;let i,n=e;for(;n!==t;)i=n.nextSibling,s.removeChild(n),n=i;s.removeChild(t)}Te.define(ke,{aspected:!0});class $e{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=j.unknown,this.context=this,this.index=0,this.length=0,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return z.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 i,n=this.firstChild;for(;n!==t;)i=n.nextSibling,s.insertBefore(n,e),n=i;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,i=this.firstChild;for(;i!==t;)s=i.nextSibling,e.appendChild(i),i=s;e.appendChild(t)}dispose(){je(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 i=this.factories;for(let e=0,t=i.length;e<t;++e){const t=i[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){je(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}h($e),$.defineProperty($e.prototype,"index"),$.defineProperty($e.prototype,"length");const Ne=(e,t)=>`${e}.${t}`,Ve={},Ee={index:0,node:null};function ze(e){e.startsWith("fast-")||o.warn(1204,{name:e})}const Le=new Proxy(document.createElement("div"),{get(e,t){ze(t);const i=Reflect.get(e,t);return s(i)?i.bind(e):i},set:(e,t,s)=>(ze(t),Reflect.set(e,t,s))});class Ie{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,i,n){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,i)),e.id=null!==(r=e.id)&&void 0!==r?r:we(),e.targetNodeId=s,e.targetTagName=n,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 i=this.descriptors;if("r"===t||"h"===t||i[t])return;if(!i[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),i=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,i)}let n=Ve[t];if(!n){const i=`_${t}`;Ve[t]=n={get(){var t;return null!==(t=this[i])&&void 0!==t?t:this[i]=this[e].childNodes[s]}}}i[t]=n}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:Le;for(const e of this.nodeIds)s[e];return new $e(t,this.factories,s)}}function Me(e,t,s,i,n,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=xe.parse(d,l);let f=null;null===u?r&&(f=new ke(Z((()=>d),e.policy)),Te.assignAspect(f,h.name)):f=Pe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,i,n,s.tagName))}}function _e(e,t,s){let i=0,n=t.firstChild;for(;n;){const t=Fe(e,s,n,i);n=t.node,i=t.index}}function Fe(e,t,s,n){const r=Ne(t,n);switch(s.nodeType){case 1:Me(e,t,s,r,n),_e(e,s,r);break;case 3:return function(e,t,s,n,r){const o=xe.parse(t.textContent,e.directives);if(null===o)return Ee.node=t.nextSibling,Ee.index=r+1,Ee;let l,a=l=t;for(let t=0,c=o.length;t<c;++t){const c=o[t];0!==t&&(r++,n=Ne(s,r),l=a.parentNode.insertBefore(document.createTextNode(""),a.nextSibling)),i(c)?l.textContent=c:(l.textContent=" ",Te.assignAspect(c),e.addFactory(c,s,n,r,null)),a=l}return Ee.index=r+1,Ee.node=a.nextSibling,Ee}(e,s,t,r,n);case 8:const o=xe.parse(s.data,e.directives);null!==o&&e.addFactory(Pe.aggregate(o),t,r,n,null)}return Ee.index=n+1,Ee.node=s.nextSibling,Ee}const Pe={compile(e,t,s=b.policy){let n;if(i(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 r=document.adoptNode(n.content),o=new Ie(r,t,s);var l,a;return Me(o,"",n,"h",0,!0),l=r.firstChild,a=t,(l&&8==l.nodeType&&null!==xe.parse(l.data,a)||1===r.childNodes.length&&Object.keys(t).length>0)&&r.insertBefore(document.createComment(""),r.firstChild),_e(o,r,"r"),Ee.node=null,o.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=b.policy){if(1===e.length)return e[0];let s,n,r,o=!1;const l=e.length,a=e.map((e=>i(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,o=o||e.dataBinding.isVolatile,r=r||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let i=0;i<l;++i)s+=a[i](e,t);return s},n.isVolatile=o,n.policy=null!=r?r:t;const c=new ke(n);return Te.assignAspect(c,s),c}},Re=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,He=Object.create(null);class De{constructor(e,t=He){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Qe(e,t,s,i=Te.getForInstance(e)){if(i.aspected){const s=Re.exec(t);null!==s&&Te.assignAspect(e,s[2])}return e.createHTML(s)}De.empty=new De(""),Te.define(De);class qe{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=Pe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new De(i(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw o.error(1208);if(this.policy)throw o.error(1207);return this.policy=e,this}render(e,t,s){const i=this.create(s);return i.bind(e),i.appendTo(t),i}static create(e,t,i){let n="";const r=Object.create(null),o=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=we();return r[s]=e,s};for(let i=0,r=e.length-1;i<r;++i){const r=e[i];let l,a=t[i];if(n+=r,s(a))a=new ke(K(a));else if(a instanceof J)a=new ke(a);else if(!(l=Te.getForInstance(a))){const e=a;a=new ke(Z((()=>e)))}n+=Qe(a,r,o,l)}return new qe(n+e[e.length-1],r,i)}}h(qe);const Ue=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return qe.create(e,t);throw o.error(1206)};Ue.partial=e=>new De(e);class We extends Ae{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}Te.define(We);const Je=e=>new We(e);function Ge(e,t){const i=s(e)?e:()=>e,n=s(t)?t:()=>t;return(e,t)=>i(e,t)?n(e,t):null}const Ke=Object.freeze({positioning:!1,recycle:!0});function Xe(e,t,s,i){e.context.parent=i.source,e.context.parentContext=i.context,e.bind(t[s])}function Ye(e,t,s,i){e.context.parent=i.source,e.context.parentContext=i.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}class Ze{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=Xe,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=Ye)}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=l);const t=this.itemsObserver,s=this.itemsObserver=$.getNotifier(this.items),i=t!==s;i&&null!==t&&t.unsubscribe(this),(i||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,i=this.items,n=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=n.create(),t.splice(p,0,d),s(d,i,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 i=t[e].context;i.length=s,i.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,i=this.location,n=this.bindView,r=this.controller;let o=t.length,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||($e.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();n(o,t,e,r),l[e]=o,o.insertBefore(i)}}else{let e=0;for(;e<o;++e)if(e<a){n(l[e],t,e,r)}else{const o=s.create();n(o,t,e,r),l.push(o),o.insertBefore(i)}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 et{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,U.enable()}createHTML(e){return Ce.comment(e(this))}createBehavior(){return new Ze(this)}}function tt(e,t,s=Ke){const i=ee(e),n=ee(t);return new et(i,n,Object.assign(Object.assign({},Ke),s))}Te.define(et);const st=e=>1===e.nodeType,it=e=>e?t=>1===t.nodeType&&t.matches(e):st;class nt extends Ae{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,l),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 rt extends nt{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 ot(e){return i(e)&&(e={property:e}),new rt(e)}Te.define(rt);class lt extends nt{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=n,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 at(e){return i(e)&&(e={property:e}),new lt(e)}Te.define(lt);const ct=Object.freeze({locate:c()}),ht={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},dt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:ht.fromView(e)};function ut(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const ft={toView(e){const t=ut(e);return t?t.toString():t},fromView:ut};class pt{constructor(e,t,s=t.toLowerCase(),i="reflect",n){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=i,this.converter=n,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,"boolean"===i&&void 0===n&&(this.converter=ht)}setValue(e,t){const s=e[this.fieldName],i=this.converter;void 0!==i&&(t=i.fromView(t)),s!==t&&(e[this.fieldName]=t,this.tryReflectToAttribute(e),this.hasCallback&&e[this.callbackName](s,t),e.$fastController.notify(this.name))}getValue(e){return $.track(e,this.name),e[this.fieldName]}onAttributeChangedCallback(e,t){this.guards.has(e)||(this.guards.add(e),this.setValue(e,t),this.guards.delete(e))}tryReflectToAttribute(e){const t=this.mode,s=this.guards;s.has(e)||"fromView"===t||A.enqueue((()=>{s.add(e);const i=e[this.fieldName];switch(t){case"reflect":const t=this.converter;b.setAttribute(e,this.attribute,void 0!==t?t.toView(i):i);break;case"boolean":b.setBooleanAttribute(e,this.attribute,i)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(ct.locate(e));for(let n=0,r=t.length;n<r;++n){const r=t[n];if(void 0!==r)for(let t=0,n=r.length;t<n;++t){const n=r[t];i(n)?s.push(new pt(e,n)):s.push(new pt(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function gt(e,t){let s;function i(e,t){arguments.length>1&&(s.property=t),ct.locate(e.constructor).push(s)}return arguments.length>1?(s={},void i(e,t)):(s=void 0===e?{}:e,i)}const bt={mode:"open"},vt={},yt=new Set,mt=o.getById(t.elementRegistry,(()=>a()));class wt{constructor(e,t=e.definition){var s;this.platformDefined=!1,i(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,r=pt.collect(e,t.attributes),o=new Array(r.length),l={},a={};for(let e=0,t=r.length;e<t;++e){const t=r[e];o[e]=t.attribute,l[t.name]=t,a[t.attribute]=t,$.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:o,enumerable:!0}),this.attributes=r,this.propertyLookup=l,this.attributeLookup=a,this.shadowOptions=void 0===t.shadowOptions?bt:null===t.shadowOptions?void 0:Object.assign(Object.assign({},bt),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?vt:Object.assign(Object.assign({},vt),t.elementOptions),this.styles=ie.normalize(t.styles),mt.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 yt.has(e)||mt.getByType(e)?new wt(class extends e{},t):new wt(e,t)}static registerBaseType(e){yt.add(e)}}wt.getByType=mt.getByType,wt.getForInstance=mt.getForInstance;const Ct={bubbles:!0,composed:!0,cancelable:!0},xt=new WeakMap;function St(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:xt.get(e))&&void 0!==s?s:null}let Tt;class Ot extends k{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&&xt.set(e,t))}const i=$.getAccessors(e);if(i.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,n=i.length;s<n;++s){const n=i[s].name,r=e[n];void 0!==r&&(delete e[n],t[n]=r)}}}get isConnected(){return $.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:z.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 i=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,n=null!==(s=i.get(e))&&void 0!==s?s:0;0===n?(i.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):i.set(e,n+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const i=s.get(e);void 0!==i&&(1===i||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,i-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=St(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=St(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 i=0,n=s.length;i<n;++i){const n=s[i];e[n]=t[n]}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,$.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,$.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 i=this.definition.attributeLookup[e];void 0!==i&&i.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},Ct),s)))}renderTemplate(e){var t;const s=this.source,i=null!==(t=St(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=i.firstChild;null!==e;e=i.firstChild)i.removeChild(e)}e&&(this.view=e.render(s,i,s),this.view.sourceLifetime=j.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=wt.getForInstance(e);if(void 0===s)throw o.error(1401);return e.$fastController=new Tt(e,s)}static setStrategy(e){Tt=e}}function At(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=St(e))&&void 0!==t?t:e.getRootNode()}h(Ot),Ot.setStrategy(Ot);class Bt{constructor(e){const t=Bt.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=At(e);t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.sheets]}removeStylesFrom(e){const t=At(e),s=this.sheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter((e=>-1===s.indexOf(e)))}}Bt.styleSheetCache=new Map;let kt=0;function jt(e){return e===document?document.body:e}function $t(e){const t=class extends e{constructor(){super(),Ot.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 wt.registerBaseType(t),t}function Nt(e,t){return s(e)?wt.compose(e,t).define().type:wt.compose(this,e).define().type}ie.setDefaultStrategy(ie.supportsAdoptedStyleSheets?Bt:class{constructor(e){this.styles=e,this.styleClass="fast-"+ ++kt}addStylesTo(e){e=jt(At(e));const t=this.styles,s=this.styleClass;for(let i=0;i<t.length;i++){const n=document.createElement("style");n.innerHTML=t[i],n.className=s,e.append(n)}}removeStylesFrom(e){const t=(e=jt(At(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,i=t.length;s<i;++s)e.removeChild(t[s])}});const Vt=Object.assign($t(HTMLElement),{from:function(e){return $t(e)},define:Nt,compose:function(e,t){return s(e)?wt.compose(e,t):wt.compose(this,e)}});function Et(e){return function(t){Nt(t,e)}}b.setPolicy(O.create());export{U as ArrayObserver,ct as AttributeConfiguration,pt as AttributeDefinition,J as Binding,ae as CSSBindingDirective,re as CSSDirective,lt as ChildrenDirective,Pe as Compiler,b as DOM,d as DOMAspect,Ot as ElementController,ie as ElementStyles,z as ExecutionContext,o as FAST,Vt as FASTElement,wt as FASTElementDefinition,ke as HTMLBindingDirective,Te as HTMLDirective,$e as HTMLView,De as InlineTemplateDirective,Ce as Markup,nt as NodeObservationDirective,$ as Observable,xe as Parser,k as PropertyChangeNotifier,We as RefDirective,Ze as RepeatBehavior,et as RepeatDirective,rt as SlottedDirective,j as SourceLifetime,L as Splice,H as SpliceStrategy,I as SpliceStrategySupport,Ae as StatelessAttachedAttributeDirective,B as SubscriberSet,A as Updates,qe as ViewTemplate,gt as attr,ht as booleanConverter,at as children,fe as css,oe as cssDirective,Et as customElement,it as elements,l as emptyArray,Ue as html,Oe as htmlDirective,W as lengthOf,X as listener,ee as normalizeBinding,dt as nullableBooleanConverter,ft as nullableNumberConverter,N as observable,Z as oneTime,K as oneWay,Je as ref,tt as repeat,ot as slotted,V as volatile,Ge as when};
|
|
@@ -214,16 +214,6 @@ export declare class AttributeDefinition implements Accessor {
|
|
|
214
214
|
*/
|
|
215
215
|
export declare type AttributeMode = typeof reflectMode | typeof booleanMode | "fromView";
|
|
216
216
|
|
|
217
|
-
/**
|
|
218
|
-
* Creates an standard binding.
|
|
219
|
-
* @param expression - The binding to refresh when changed.
|
|
220
|
-
* @param policy - The security policy to associate with th binding.
|
|
221
|
-
* @param isVolatile - Indicates whether the binding is volatile or not.
|
|
222
|
-
* @returns A binding configuration.
|
|
223
|
-
* @public
|
|
224
|
-
*/
|
|
225
|
-
export declare function bind<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
|
|
226
|
-
|
|
227
217
|
/**
|
|
228
218
|
* Captures a binding expression along with related information and capabilities.
|
|
229
219
|
*
|
|
@@ -246,10 +236,30 @@ export declare abstract class Binding<TSource = any, TReturn = any, TParent = an
|
|
|
246
236
|
constructor(evaluate: Expression<TSource, TReturn, TParent>, policy?: DOMPolicy | undefined, isVolatile?: boolean);
|
|
247
237
|
/**
|
|
248
238
|
* Creates an observer capable of notifying a subscriber when the output of a binding changes.
|
|
249
|
-
* @param directive - The HTML Directive to create the observer for.
|
|
250
239
|
* @param subscriber - The subscriber to changes in the binding.
|
|
240
|
+
* @param directive - The Binding directive to create the observer for.
|
|
251
241
|
*/
|
|
252
|
-
abstract createObserver(
|
|
242
|
+
abstract createObserver(subscriber: Subscriber, directive: BindingDirective): ExpressionObserver<TSource, TReturn, TParent>;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* The directive from which a binding originates.
|
|
247
|
+
*
|
|
248
|
+
* @public
|
|
249
|
+
*/
|
|
250
|
+
export declare interface BindingDirective {
|
|
251
|
+
/**
|
|
252
|
+
* The binding.
|
|
253
|
+
*/
|
|
254
|
+
readonly dataBinding: Binding;
|
|
255
|
+
/**
|
|
256
|
+
* The evaluated target aspect.
|
|
257
|
+
*/
|
|
258
|
+
readonly targetAspect?: string;
|
|
259
|
+
/**
|
|
260
|
+
* The type of aspect to target.
|
|
261
|
+
*/
|
|
262
|
+
readonly aspectType?: DOMAspect;
|
|
253
263
|
}
|
|
254
264
|
|
|
255
265
|
/**
|
|
@@ -468,19 +478,6 @@ export declare interface ContentView {
|
|
|
468
478
|
remove(): void;
|
|
469
479
|
}
|
|
470
480
|
|
|
471
|
-
/**
|
|
472
|
-
* Creates a function capable of locating metadata associated with a type.
|
|
473
|
-
* @returns A metadata locator function.
|
|
474
|
-
* @internal
|
|
475
|
-
*/
|
|
476
|
-
export declare function createMetadataLocator<TMetadata>(): (target: {}) => TMetadata[];
|
|
477
|
-
|
|
478
|
-
/**
|
|
479
|
-
* Do not change. Part of shared kernel contract.
|
|
480
|
-
* @internal
|
|
481
|
-
*/
|
|
482
|
-
export declare function createTypeRegistry<TDefinition extends TypeDefinition>(): TypeRegistry<TDefinition>;
|
|
483
|
-
|
|
484
481
|
/**
|
|
485
482
|
* Transforms a template literal string into styles.
|
|
486
483
|
* @param strings - The string fragments that are interpolated with the values.
|
|
@@ -491,6 +488,61 @@ export declare function createTypeRegistry<TDefinition extends TypeDefinition>()
|
|
|
491
488
|
*/
|
|
492
489
|
export declare const css: CSSTemplateTag;
|
|
493
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Enables bindings in CSS.
|
|
493
|
+
*
|
|
494
|
+
* @public
|
|
495
|
+
*/
|
|
496
|
+
export declare class CSSBindingDirective implements HostBehavior, Subscriber, CSSDirective, BindingDirective {
|
|
497
|
+
readonly dataBinding: Binding;
|
|
498
|
+
readonly targetAspect: string;
|
|
499
|
+
/**
|
|
500
|
+
* Creates an instance of CSSBindingDirective.
|
|
501
|
+
* @param dataBinding - The binding to use in CSS.
|
|
502
|
+
* @param targetAspect - The CSS property to target.
|
|
503
|
+
*/
|
|
504
|
+
constructor(dataBinding: Binding, targetAspect: string);
|
|
505
|
+
/**
|
|
506
|
+
* Creates a CSS fragment to interpolate into the CSS document.
|
|
507
|
+
* @returns - the string to interpolate into CSS
|
|
508
|
+
*/
|
|
509
|
+
createCSS(add: AddBehavior): ComposableStyles;
|
|
510
|
+
/**
|
|
511
|
+
* Executed when this behavior is attached to a controller.
|
|
512
|
+
* @param controller - Controls the behavior lifecycle.
|
|
513
|
+
*/
|
|
514
|
+
addedCallback(controller: HostController<HTMLElement & {
|
|
515
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
516
|
+
}>): void;
|
|
517
|
+
/**
|
|
518
|
+
* Executed when this behavior's host is connected.
|
|
519
|
+
* @param controller - Controls the behavior lifecycle.
|
|
520
|
+
*/
|
|
521
|
+
connectedCallback(controller: HostController<HTMLElement & {
|
|
522
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
523
|
+
}>): void;
|
|
524
|
+
/**
|
|
525
|
+
* Executed when this behavior is detached from a controller.
|
|
526
|
+
* @param controller - Controls the behavior lifecycle.
|
|
527
|
+
*/
|
|
528
|
+
removedCallback(controller: HostController<HTMLElement & {
|
|
529
|
+
$cssBindings: Map<CSSBindingDirective, CSSBindingEntry>;
|
|
530
|
+
}>): void;
|
|
531
|
+
/**
|
|
532
|
+
* Called when a subject this instance has subscribed to changes.
|
|
533
|
+
* @param subject - The subject of the change.
|
|
534
|
+
* @param args - The event args detailing the change that occurred.
|
|
535
|
+
*
|
|
536
|
+
* @internal
|
|
537
|
+
*/
|
|
538
|
+
handleChange(_: any, observer: ExpressionObserver): void;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
declare type CSSBindingEntry = {
|
|
542
|
+
observer: ExpressionObserver;
|
|
543
|
+
controller: HostController;
|
|
544
|
+
};
|
|
545
|
+
|
|
494
546
|
/**
|
|
495
547
|
* Directive for use in {@link css}.
|
|
496
548
|
*
|
|
@@ -553,16 +605,22 @@ export declare interface CSSDirectiveDefinition<TType extends Constructable<CSSD
|
|
|
553
605
|
* Use the .partial method to create partial CSS fragments.
|
|
554
606
|
* @public
|
|
555
607
|
*/
|
|
556
|
-
export declare type CSSTemplateTag = ((strings: TemplateStringsArray, ...values:
|
|
608
|
+
export declare type CSSTemplateTag = (<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]) => ElementStyles) & {
|
|
557
609
|
/**
|
|
558
610
|
* Transforms a template literal string into partial CSS.
|
|
559
611
|
* @param strings - The string fragments that are interpolated with the values.
|
|
560
612
|
* @param values - The values that are interpolated with the string fragments.
|
|
561
613
|
* @public
|
|
562
614
|
*/
|
|
563
|
-
partial(strings: TemplateStringsArray, ...values:
|
|
615
|
+
partial<TSource = any, TParent = any>(strings: TemplateStringsArray, ...values: CSSValue<TSource, TParent>[]): CSSDirective;
|
|
564
616
|
};
|
|
565
617
|
|
|
618
|
+
/**
|
|
619
|
+
* Represents the types of values that can be interpolated into a template.
|
|
620
|
+
* @public
|
|
621
|
+
*/
|
|
622
|
+
export declare type CSSValue<TSource, TParent = any> = Expression<TSource, any, TParent> | Binding<TSource, any, TParent> | ComposableStyles | CSSDirective;
|
|
623
|
+
|
|
566
624
|
/**
|
|
567
625
|
* Decorator: Defines a platform custom element based on `FASTElement`.
|
|
568
626
|
* @param nameOrDef - The name of the element to define or a definition object
|
|
@@ -744,6 +802,18 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
744
802
|
* connected to the document.
|
|
745
803
|
*/
|
|
746
804
|
get isConnected(): boolean;
|
|
805
|
+
/**
|
|
806
|
+
* The context the expression is evaluated against.
|
|
807
|
+
*/
|
|
808
|
+
get context(): ExecutionContext;
|
|
809
|
+
/**
|
|
810
|
+
* Indicates whether the controller is bound.
|
|
811
|
+
*/
|
|
812
|
+
get isBound(): boolean;
|
|
813
|
+
/**
|
|
814
|
+
* Indicates how the source's lifetime relates to the controller's lifetime.
|
|
815
|
+
*/
|
|
816
|
+
get sourceLifetime(): SourceLifetime | undefined;
|
|
747
817
|
/**
|
|
748
818
|
* Gets/sets the template used to render the component.
|
|
749
819
|
* @remarks
|
|
@@ -765,6 +835,13 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
765
835
|
* @internal
|
|
766
836
|
*/
|
|
767
837
|
constructor(element: TElement, definition: FASTElementDefinition);
|
|
838
|
+
/**
|
|
839
|
+
* Registers an unbind handler with the controller.
|
|
840
|
+
* @param behavior - An object to call when the controller unbinds.
|
|
841
|
+
*/
|
|
842
|
+
onUnbind(behavior: {
|
|
843
|
+
unbind(controller: ExpressionController<TElement>): any;
|
|
844
|
+
}): void;
|
|
768
845
|
/**
|
|
769
846
|
* Adds the behavior to the component.
|
|
770
847
|
* @param behavior - The behavior to add.
|
|
@@ -810,11 +887,6 @@ export declare class ElementController<TElement extends HTMLElement = HTMLElemen
|
|
|
810
887
|
* Only emits events if connected.
|
|
811
888
|
*/
|
|
812
889
|
emit(type: string, detail?: any, options?: Omit<CustomEventInit, "detail">): void | boolean;
|
|
813
|
-
/**
|
|
814
|
-
* Opts out of JSON stringification.
|
|
815
|
-
* @internal
|
|
816
|
-
*/
|
|
817
|
-
toJSON: () => undefined;
|
|
818
890
|
private renderTemplate;
|
|
819
891
|
/**
|
|
820
892
|
* Locates or creates a controller for the specified element.
|
|
@@ -914,6 +986,17 @@ export declare class ElementStyles {
|
|
|
914
986
|
* @public
|
|
915
987
|
*/
|
|
916
988
|
export declare interface ElementView<TSource = any, TParent = any> extends View<TSource, TParent> {
|
|
989
|
+
/**
|
|
990
|
+
* Indicates how the source's lifetime relates to the controller's lifetime.
|
|
991
|
+
*/
|
|
992
|
+
readonly sourceLifetime?: SourceLifetime;
|
|
993
|
+
/**
|
|
994
|
+
* Registers an unbind handler with the controller.
|
|
995
|
+
* @param behavior - An object to call when the controller unbinds.
|
|
996
|
+
*/
|
|
997
|
+
onUnbind(behavior: {
|
|
998
|
+
unbind(controller: ViewController<TSource, TParent>): any;
|
|
999
|
+
}): void;
|
|
917
1000
|
/**
|
|
918
1001
|
* Appends the view's DOM nodes to the referenced node.
|
|
919
1002
|
* @param node - The parent node to append the view's DOM nodes to.
|
|
@@ -1326,11 +1409,7 @@ export declare interface HostBehavior<TSource = any> {
|
|
|
1326
1409
|
* associated with a component host.
|
|
1327
1410
|
* @public
|
|
1328
1411
|
*/
|
|
1329
|
-
export declare interface HostController<TSource = any> {
|
|
1330
|
-
/**
|
|
1331
|
-
* The component source.
|
|
1332
|
-
*/
|
|
1333
|
-
readonly source: TSource;
|
|
1412
|
+
export declare interface HostController<TSource = any> extends ExpressionController<TSource> {
|
|
1334
1413
|
/**
|
|
1335
1414
|
* Indicates whether the host is connected or not.
|
|
1336
1415
|
*/
|
|
@@ -1378,7 +1457,7 @@ export declare const html: HTMLTemplateTag;
|
|
|
1378
1457
|
* A directive that applies bindings.
|
|
1379
1458
|
* @public
|
|
1380
1459
|
*/
|
|
1381
|
-
export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected {
|
|
1460
|
+
export declare class HTMLBindingDirective implements HTMLDirective, ViewBehaviorFactory, ViewBehavior, Aspected, BindingDirective {
|
|
1382
1461
|
dataBinding: Binding;
|
|
1383
1462
|
private data;
|
|
1384
1463
|
private updateTarget;
|
|
@@ -1651,11 +1730,6 @@ export declare class HTMLView<TSource = any, TParent = any> implements ElementVi
|
|
|
1651
1730
|
* Unbinds a view's behaviors from its binding source.
|
|
1652
1731
|
*/
|
|
1653
1732
|
unbind(): void;
|
|
1654
|
-
/**
|
|
1655
|
-
* Opts out of JSON stringification.
|
|
1656
|
-
* @internal
|
|
1657
|
-
*/
|
|
1658
|
-
toJSON: () => undefined;
|
|
1659
1733
|
private evaluateUnbindables;
|
|
1660
1734
|
/**
|
|
1661
1735
|
* Efficiently disposes of a contiguous range of synthetic view instances.
|
|
@@ -1985,6 +2059,16 @@ export declare interface ObservationRecord {
|
|
|
1985
2059
|
*/
|
|
1986
2060
|
export declare function oneTime<T = any>(expression: Expression<T>, policy?: DOMPolicy): Binding<T>;
|
|
1987
2061
|
|
|
2062
|
+
/**
|
|
2063
|
+
* Creates an standard binding.
|
|
2064
|
+
* @param expression - The binding to refresh when changed.
|
|
2065
|
+
* @param policy - The security policy to associate with th binding.
|
|
2066
|
+
* @param isVolatile - Indicates whether the binding is volatile or not.
|
|
2067
|
+
* @returns A binding configuration.
|
|
2068
|
+
* @public
|
|
2069
|
+
*/
|
|
2070
|
+
export declare function oneWay<T = any>(expression: Expression<T>, policy?: DOMPolicy, isVolatile?: boolean): Binding<T>;
|
|
2071
|
+
|
|
1988
2072
|
/**
|
|
1989
2073
|
* Common APIs related to content parsing.
|
|
1990
2074
|
* @public
|
|
@@ -2175,7 +2259,7 @@ export declare class RepeatBehavior<TSource = any> implements ViewBehavior, Subs
|
|
|
2175
2259
|
* A directive that configures list rendering.
|
|
2176
2260
|
* @public
|
|
2177
2261
|
*/
|
|
2178
|
-
export declare class RepeatDirective<TSource = any> implements HTMLDirective, ViewBehaviorFactory {
|
|
2262
|
+
export declare class RepeatDirective<TSource = any> implements HTMLDirective, ViewBehaviorFactory, BindingDirective {
|
|
2179
2263
|
readonly dataBinding: Binding<TSource>;
|
|
2180
2264
|
readonly templateBinding: Binding<TSource, SyntheticViewTemplate>;
|
|
2181
2265
|
readonly options: RepeatOptions;
|
|
@@ -2449,11 +2533,6 @@ export declare type SpliceStrategySupport = typeof SpliceStrategySupport[keyof t
|
|
|
2449
2533
|
*/
|
|
2450
2534
|
export declare abstract class StatelessAttachedAttributeDirective<TOptions> implements HTMLDirective, ViewBehaviorFactory, ViewBehavior {
|
|
2451
2535
|
protected options: TOptions;
|
|
2452
|
-
/**
|
|
2453
|
-
* Opts out of JSON stringification.
|
|
2454
|
-
* @internal
|
|
2455
|
-
*/
|
|
2456
|
-
toJSON: () => undefined;
|
|
2457
2536
|
/**
|
|
2458
2537
|
* Creates an instance of RefDirective.
|
|
2459
2538
|
* @param options - The options to use in configuring the directive.
|
|
@@ -2656,24 +2735,6 @@ export declare type TrustedTypesPolicy = {
|
|
|
2656
2735
|
createHTML(html: string): string;
|
|
2657
2736
|
};
|
|
2658
2737
|
|
|
2659
|
-
/**
|
|
2660
|
-
* Do not change. Part of shared kernel contract.
|
|
2661
|
-
* @internal
|
|
2662
|
-
*/
|
|
2663
|
-
export declare interface TypeDefinition {
|
|
2664
|
-
type: Function;
|
|
2665
|
-
}
|
|
2666
|
-
|
|
2667
|
-
/**
|
|
2668
|
-
* Do not change. Part of shared kernel contract.
|
|
2669
|
-
* @internal
|
|
2670
|
-
*/
|
|
2671
|
-
export declare interface TypeRegistry<TDefinition extends TypeDefinition> {
|
|
2672
|
-
register(definition: TDefinition): boolean;
|
|
2673
|
-
getByType(key: Function): TDefinition | undefined;
|
|
2674
|
-
getForInstance(object: any): TDefinition | undefined;
|
|
2675
|
-
}
|
|
2676
|
-
|
|
2677
2738
|
/**
|
|
2678
2739
|
* A work queue used to synchronize writes to the DOM.
|
|
2679
2740
|
* @public
|
|
@@ -2746,6 +2807,10 @@ export declare interface View<TSource = any, TParent = any> extends Disposable {
|
|
|
2746
2807
|
* The data that the view is bound to.
|
|
2747
2808
|
*/
|
|
2748
2809
|
readonly source: TSource | null;
|
|
2810
|
+
/**
|
|
2811
|
+
* Indicates whether the controller is bound.
|
|
2812
|
+
*/
|
|
2813
|
+
readonly isBound: boolean;
|
|
2749
2814
|
/**
|
|
2750
2815
|
* Binds a view's behaviors to its binding source.
|
|
2751
2816
|
* @param source - The binding source for the view's binding behaviors.
|
|
@@ -2865,11 +2930,6 @@ export declare class ViewTemplate<TSource = any, TParent = any> implements Eleme
|
|
|
2865
2930
|
* host that the template is being attached to.
|
|
2866
2931
|
*/
|
|
2867
2932
|
render(source: TSource, host: Node, hostBindingTarget?: Element): HTMLView<TSource, TParent>;
|
|
2868
|
-
/**
|
|
2869
|
-
* Opts out of JSON stringification.
|
|
2870
|
-
* @internal
|
|
2871
|
-
*/
|
|
2872
|
-
toJSON: () => undefined;
|
|
2873
2933
|
/**
|
|
2874
2934
|
* Creates a template based on a set of static strings and dynamic values.
|
|
2875
2935
|
* @param strings - The static strings to create the template with.
|