Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@microsoft/fast-element

Package Overview
Dependencies
Maintainers
5
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@microsoft/fast-element - npm Package Compare versions

Comparing version 0.14.0 to 0.15.0

17

CHANGELOG.md

@@ -6,2 +6,19 @@ # Change Log

# [0.15.0](https://github.com/Microsoft/fast/compare/@microsoft/fast-element@0.14.0...@microsoft/fast-element@0.15.0) (2020-07-14)
### Bug Fixes
* **fast-element:** style element styles should work with the document ([#3489](https://github.com/Microsoft/fast/issues/3489)) ([d288390](https://github.com/Microsoft/fast/commit/d28839059313f5bab9eabeb561dc50b64ca8340f))
### Features
* simplify rollup configs and compress tagged template literals ([#3452](https://github.com/Microsoft/fast/issues/3452)) ([7533e92](https://github.com/Microsoft/fast/commit/7533e927f2467dd6f8dd46c1d3cef6c0df773fc4))
* update typescript version and remove utility types dependencies for react packages ([#3422](https://github.com/Microsoft/fast/issues/3422)) ([09d07b5](https://github.com/Microsoft/fast/commit/09d07b580cda3bcc5d28f83d3568521f710c9576))
# [0.14.0](https://github.com/Microsoft/fast/compare/@microsoft/fast-element@0.13.0...@microsoft/fast-element@0.14.0) (2020-07-02)

@@ -8,0 +25,0 @@

2

dist/dts/fast-element.d.ts

@@ -73,3 +73,3 @@ import { Controller } from "./controller";

*/
getDefinition<T extends Function>(Type: T): FASTElementDefinition | undefined;
getDefinition<T_1 extends Function>(Type: T_1): FASTElementDefinition | undefined;
};

@@ -76,0 +76,0 @@ /**

@@ -76,2 +76,14 @@ import { Behavior } from "./directives/behavior";

/**
* @internal
*/
export declare class StyleElementStyles extends ElementStyles {
styles: ComposableStyles[];
private readonly styleSheets;
private readonly styleClass;
readonly behaviors: ReadonlyArray<Behavior> | null;
constructor(styles: ComposableStyles[]);
addStylesTo(target: StyleTarget): void;
removeStylesFrom(target: StyleTarget): void;
}
/**
* Transforms a template literal string into styles.

@@ -78,0 +90,0 @@ * @param strings - The string fragments that are interpolated with the values.

@@ -13,2 +13,3 @@ export * from "./template";

export { DOM } from "./dom";
export * from "./directives/behavior";
export * from "./directives/binding";

@@ -15,0 +16,0 @@ export * from "./directives/directive";

@@ -92,3 +92,6 @@ import { DOM } from "./dom";

}
class StyleElementStyles extends ElementStyles {
/**
* @internal
*/
export class StyleElementStyles extends ElementStyles {
constructor(styles) {

@@ -105,2 +108,5 @@ super();

const styleClass = this.styleClass;
if (target === document) {
target = document.body;
}
for (let i = styleSheets.length - 1; i > -1; --i) {

@@ -114,2 +120,5 @@ const element = document.createElement("style");

removeStylesFrom(target) {
if (target === document) {
target = document.body;
}
const styles = target.querySelectorAll(`.${this.styleClass}`);

@@ -116,0 +125,0 @@ for (let i = 0, ii = styles.length; i < ii; ++i) {

@@ -853,3 +853,3 @@

*/
getDefinition<T extends Function>(Type: T): FASTElementDefinition | undefined;
getDefinition<T_1 extends Function>(Type: T_1): FASTElementDefinition | undefined;
};

@@ -856,0 +856,0 @@

@@ -1,3 +0,1 @@

const t=[];void 0===globalThis.trustedTypes&&(globalThis.trustedTypes={createPolicy:(t,e)=>e});const e=globalThis.trustedTypes.createPolicy("fast-html",{createHTML:t=>t});let s=e;function i(){let e=0;for(;e<t.length;){if(t[e].call(),e++,e>1024){for(let s=0,i=t.length-e;s<i;s++)t[s]=t[s+e];t.length-=e,e=0}}t.length=0}const n="fast-"+Math.random().toString(36).substring(7),o=n+"{",r="}"+n,h=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(t){if(s!==e)throw new Error("The HTML policy can only be set once.");s=t},createHTML:t=>s.createHTML(t),isMarker:t=>t&&8===t.nodeType&&t.data.startsWith(n),extractDirectiveIndexFromMarker:t=>parseInt(t.data.replace(n+":","")),createInterpolationPlaceholder:t=>`${o}${t}${r}`,createCustomAttributePlaceholder(t,e){return`${t}="${this.createInterpolationPlaceholder(e)}"`},createBlockPlaceholder:t=>`\x3c!--${n}:${t}--\x3e`,queueUpdate(e){t.length<1&&window.requestAnimationFrame(i),t.push(e)},nextUpdate:()=>new Promise(t=>{h.queueUpdate(t)}),setAttribute(t,e,s){null==s?t.removeAttribute(e):t.setAttribute(e,s)},setBooleanAttribute(t,e,s){s?t.setAttribute(e,""):t.removeAttribute(e)}});function l(t){const e=this.spillover;-1===e.indexOf(t)&&e.push(t)}function a(t){const e=this.spillover,s=e.indexOf(t);-1!==s&&e.splice(s,1)}function c(t){const e=this.spillover,s=this.source;for(let i=0,n=e.length;i<n;++i)e[i].handleChange(s,t)}function d(t){return-1!==this.spillover.indexOf(t)}class u{constructor(t,e){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.source=t,this.sub1=e}has(t){return this.sub1===t||this.sub2===t}subscribe(t){this.has(t)||(void 0!==this.sub1?void 0!==this.sub2?(this.spillover=[this.sub1,this.sub2,t],this.subscribe=l,this.unsubscribe=a,this.notify=c,this.has=d,this.sub1=void 0,this.sub2=void 0):this.sub2=t:this.sub1=t)}unsubscribe(t){this.sub1===t?this.sub1=void 0:this.sub2===t&&(this.sub2=void 0)}notify(t){const e=this.sub1,s=this.sub2,i=this.source;void 0!==e&&e.handleChange(i,t),void 0!==s&&s.handleChange(i,t)}}class f{constructor(t){this.subscribers={},this.source=t}notify(t){const e=this.subscribers[t];void 0!==e&&e.notify(t)}subscribe(t,e){let s=this.subscribers[e];void 0===s&&(this.subscribers[e]=s=new u(this.source)),s.subscribe(t)}unsubscribe(t,e){const s=this.subscribers[e];void 0!==s&&s.unsubscribe(t)}}const g=/(\:|\&\&|\|\||if)/,p=new WeakMap,b=new WeakMap;let v=void 0,m=t=>{throw new Error("Must call enableArrayObservation before observing arrays.")};class C{constructor(t,e){this.name=t,this.field="_"+t,this.callback=t+"Changed",this.hasCallback=this.callback in e}getValue(t){return void 0!==v&&v.watch(t,this.name),t[this.field]}setValue(t,e){const s=this.field,i=t[s];i!==e&&(t[s]=e,this.hasCallback&&t[this.callback](i,e),x(t).notify(this.name))}}const y=Object.freeze({setArrayObserverFactory(t){m=t},getNotifier(t){let e=t.$fastController||p.get(t);return void 0===e&&(Array.isArray(t)?e=m(t):p.set(t,e=new f(t))),e},track(t,e){void 0!==v&&v.watch(t,e)},trackVolatile(){void 0!==v&&(v.needsRefresh=!0)},notify(t,e){x(t).notify(e)},defineProperty(t,e){"string"==typeof e&&(e=new C(e,t)),this.getAccessors(t).push(e),Reflect.defineProperty(t,e.name,{enumerable:!0,get:function(){return e.getValue(this)},set:function(t){e.setValue(this,t)}})},getAccessors(t){let e=b.get(t);if(void 0===e){let s=Reflect.getPrototypeOf(t);for(;void 0===e&&null!==s;)e=b.get(s),s=Reflect.getPrototypeOf(s);e=void 0===e?[]:e.slice(0),b.set(t,e)}return e},binding(t,e,s=this.isVolatileBinding(t)){return new V(t,e,s)},isVolatileBinding:t=>g.test(t.toString())}),x=y.getNotifier,w=y.trackVolatile,B=h.queueUpdate;function O(t,e){y.defineProperty(t,e)}function S(t,e,s){return Object.assign({},s,{get:function(){var t;return w(),null===(t=s.get)||void 0===t?void 0:t.apply(this)}})}let N=null;function T(t){N=t}class A{constructor(){this.index=0,this.length=0,this.parent=null}get event(){return N}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}}y.defineProperty(A.prototype,"index"),y.defineProperty(A.prototype,"length");const k=Object.seal(new A);class V extends u{constructor(t,e,s=!1){super(t,e),this.binding=t,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}observe(t,e){this.needsRefresh&&null!==this.last&&this.disconnect();const s=v;v=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;const i=this.binding(t,e);return v=s,i}disconnect(){if(null!==this.last){let t=this.first;for(;void 0!==t;)t.notifier.unsubscribe(this,t.propertyName),t=t.next;this.last=null,this.needsRefresh=!0}}watch(t,e){const s=this.last,i=x(t),n=null===s?this.first:{};if(n.propertySource=t,n.propertyName=e,n.notifier=i,i.subscribe(this,e),null!==s){if(!this.needsRefresh){v=void 0;const e=s.propertySource[s.propertyName];v=this,t===e&&(this.needsRefresh=!0)}s.next=n}this.last=n}handleChange(){this.needsQueue&&(this.needsQueue=!1,B(this))}call(){null!==this.last&&(this.needsQueue=!0,this.notify(this))}}class ${constructor(){this.targetIndex=0}}class I extends ${constructor(t,e,s){super(),this.name=t,this.behavior=e,this.options=s}createPlaceholder(t){return h.createCustomAttributePlaceholder(this.name,t)}createBehavior(t){return new this.behavior(t,this.options)}}function M(t,e){this.source=t,this.context=e,null===this.bindingObserver&&(this.bindingObserver=y.binding(this.binding,this,this.isBindingVolatile)),this.updateTarget(this.bindingObserver.observe(t,e))}function F(t,e){this.source=t,this.context=e,this.target.addEventListener(this.targetName,this)}function L(){this.bindingObserver.disconnect(),this.source=null,this.context=null}function E(){this.bindingObserver.disconnect(),this.source=null,this.context=null;const t=this.target.$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}function P(){this.target.removeEventListener(this.targetName,this),this.source=null,this.context=null}function j(t){h.setAttribute(this.target,this.targetName,t)}function R(t){h.setBooleanAttribute(this.target,this.targetName,t)}function H(t){if(null==t&&(t=""),t.create){this.target.textContent="";let e=this.target.$fastView;void 0===e?e=t.create():this.target.$fastTemplate!==t&&(e.isComposed&&(e.remove(),e.unbind()),e=t.create()),e.isComposed?e.needsBindOnly&&(e.needsBindOnly=!1,e.bind(this.source,this.context)):(e.isComposed=!0,e.bind(this.source,this.context),e.insertBefore(this.target),this.target.$fastView=e,this.target.$fastTemplate=t)}else{const e=this.target.$fastView;void 0!==e&&e.isComposed&&(e.isComposed=!1,e.remove(),e.needsBindOnly?e.needsBindOnly=!1:e.unbind()),this.target.textContent=t}}function D(t){this.target[this.targetName]=t}function Q(t){const e=this.classVersions||Object.create(null),s=this.target;let i=this.version||0;if(null!=t&&t.length){const n=t.split(/\s+/);for(let t=0,o=n.length;t<o;++t){const o=n[t];""!==o&&(e[o]=i,s.classList.add(o))}}if(this.classVersions=e,this.version=i+1,0!==i){i-=1;for(const t in e)e[t]===i&&s.classList.remove(t)}}class U extends ${constructor(t){super(),this.binding=t,this.bind=M,this.unbind=L,this.updateTarget=j,this.createPlaceholder=h.createInterpolationPlaceholder,this.isBindingVolatile=y.isVolatileBinding(this.bind)}get targetName(){return this.originalTargetName}set targetName(t){if(this.originalTargetName=t,void 0!==t)switch(t[0]){case":":if(this.cleanedTargetName=t.substr(1),this.updateTarget=D,"innerHTML"===this.cleanedTargetName){const t=this.binding;this.binding=(e,s)=>h.createHTML(t(e,s))}break;case"?":this.cleanedTargetName=t.substr(1),this.updateTarget=R;break;case"@":this.cleanedTargetName=t.substr(1),this.bind=F,this.unbind=P;break;default:this.cleanedTargetName=t,"class"===t&&(this.updateTarget=Q)}}targetAtContent(){this.updateTarget=H,this.unbind=E}createBehavior(t){return new q(t,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class q{constructor(t,e,s,i,n,o,r){this.source=null,this.context=null,this.bindingObserver=null,this.target=t,this.binding=e,this.isBindingVolatile=s,this.bind=i,this.unbind=n,this.updateTarget=o,this.targetName=r}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(t){T(t);const e=this.binding(this.source,this.context);T(null),!0!==e&&t.preventDefault()}}const W={locatedDirectives:0,targetIndex:-1};function z(t){if(1===t.length)return W.locatedDirectives++,t[0];let e;const s=t.length,i=t.map(t=>"string"==typeof t?()=>t:(e=t.targetName||e,W.locatedDirectives++,t.binding)),n=new U((t,e)=>{let n="";for(let o=0;o<s;++o)n+=i[o](t,e);return n});return n.targetName=e,n}const _=r.length;function K(t,e){const s=t.split(o);if(1===s.length)return null;const i=[];for(let t=0,n=s.length;t<n;++t){const n=s[t],o=n.indexOf(r);let h;if(-1===o)h=n;else{const t=parseInt(n.substring(0,o));i.push(e[t]),h=n.substring(o+_)}""!==h&&i.push(h)}return i}function G(t,e,s,i=!1){const n=t.attributes;for(let o=0,r=n.length;o<r;++o){const h=n[o],l=h.value,a=K(l,e);let c=null;null===a?i&&(c=new U(()=>l),c.targetName=h.name):c=z(a),null!==c&&(t.removeAttributeNode(h),o--,r--,c.targetIndex=W.targetIndex,s.push(c))}}function J(t,e,s,i){const n=K(t.textContent,e);if(null!==n){let e=t;for(let h=0,l=n.length;h<l;++h){const l=n[h],a=0===h?t:e.parentNode.insertBefore(document.createTextNode(""),e.nextSibling);"string"==typeof l?a.textContent=l:(a.textContent=" ",r=s,(o=l).targetAtContent(),o.targetIndex=W.targetIndex,r.push(o),W.locatedDirectives++),e=a,W.targetIndex++,a!==t&&i.nextNode()}W.targetIndex--}var o,r}function X(t,e){const s=[];W.locatedDirectives=0,G(t,e,s,!0);const i=t.content,n=[],o=e.length,r=document.createTreeWalker(i,133,null,!1);for(W.targetIndex=-1;W.locatedDirectives<o;){const t=r.nextNode();if(null===t)break;switch(W.targetIndex++,t.nodeType){case 1:G(t,e,n);break;case 3:J(t,e,n,r);break;case 8:if(h.isMarker(t)){const s=e[h.extractDirectiveIndexFromMarker(t)];s.targetIndex=W.targetIndex,W.locatedDirectives++,n.push(s)}else t.parentNode.removeChild(t),W.targetIndex--}}let l=0;return h.isMarker(i.firstChild)&&(i.insertBefore(document.createComment(""),i.firstChild),l=-1),{fragment:i,viewBehaviorFactories:n,hostBehaviorFactories:s,targetOffset:l}}const Y=document.createRange();class Z{constructor(t,e){this.fragment=t,this.behaviors=e,this.source=null,this.context=null,this.firstChild=t.firstChild,this.lastChild=t.lastChild}appendTo(t){t.appendChild(this.fragment)}insertBefore(t){if(this.fragment.hasChildNodes())t.parentNode.insertBefore(this.fragment,t);else{const e=t.parentNode,s=this.lastChild;let i,n=this.firstChild;for(;n!==s;)i=n.nextSibling,e.insertBefore(n,t),n=i;e.insertBefore(s,t)}}remove(){const t=this.fragment,e=this.lastChild;let s,i=this.firstChild;for(;i!==e;)s=i.nextSibling,t.appendChild(i),i=s;t.appendChild(e)}dispose(){const t=this.firstChild.parentNode,e=this.lastChild;let s,i=this.firstChild;for(;i!==e;)s=i.nextSibling,t.removeChild(i),i=s;t.removeChild(e);const n=this.behaviors,o=this.source;for(let t=0,e=n.length;t<e;++t)n[t].unbind(o)}bind(t,e){const s=this.behaviors;if(this.source!==t)if(null!==this.source){const i=this.source;this.source=t,this.context=e;for(let n=0,o=s.length;n<o;++n){const o=s[n];o.unbind(i),o.bind(t,e)}}else{this.source=t,this.context=e;for(let i=0,n=s.length;i<n;++i)s[i].bind(t,e)}}unbind(){if(null===this.source)return;const t=this.behaviors,e=this.source;for(let s=0,i=t.length;s<i;++s)t[s].unbind(e);this.source=null}static disposeContiguousBatch(t){if(0!==t.length){Y.setStart(t[0].firstChild,0),Y.setEnd(t[t.length-1].lastChild.nextSibling,0),Y.deleteContents();for(let e=0,s=t.length;e<s;++e){const s=t[e],i=s.behaviors,n=s.source;for(let t=0,e=i.length;t<e;++t)i[t].unbind(n)}}}}class tt{constructor(t,e){this.behaviorCount=0,this.hasHostBehaviors=!1,this.fragment=null,this.targetOffset=0,this.viewBehaviorFactories=null,this.hostBehaviorFactories=null,this.html=t,this.directives=e}create(t){if(null===this.fragment){let t;const e=this.html;if("string"==typeof e){t=document.createElement("template"),t.innerHTML=h.createHTML(e);const s=t.content.firstElementChild;null!==s&&"TEMPLATE"===s.tagName&&(t=s)}else t=e;const s=X(t,this.directives);this.fragment=s.fragment,this.viewBehaviorFactories=s.viewBehaviorFactories,this.hostBehaviorFactories=s.hostBehaviorFactories,this.targetOffset=s.targetOffset,this.behaviorCount=this.viewBehaviorFactories.length+this.hostBehaviorFactories.length,this.hasHostBehaviors=this.hostBehaviorFactories.length>0}const e=this.fragment.cloneNode(!0),s=this.viewBehaviorFactories,i=new Array(this.behaviorCount),n=document.createTreeWalker(e,133,null,!1);let o=0,r=this.targetOffset,l=n.nextNode();for(let t=s.length;o<t;++o){const t=s[o],e=t.targetIndex;for(;null!==l;){if(r===e){i[o]=t.createBehavior(l);break}l=n.nextNode(),r++}}if(this.hasHostBehaviors){const e=this.hostBehaviorFactories;for(let s=0,n=e.length;s<n;++s,++o)i[o]=e[s].createBehavior(t)}return new Z(e,i)}render(t,e){"string"==typeof e&&(e=document.getElementById(e));const s=this.create(e);return s.bind(t,k),s.appendTo(e),s}}const et=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function st(t,...e){const s=[];let i="";for(let n=0,o=t.length-1;n<o;++n){const o=t[n];let r=e[n];if(i+=o,r instanceof tt){const t=r;r=()=>t}if("function"==typeof r){r=new U(r);const t=et.exec(o);null!==t&&(r.targetName=t[2])}r instanceof $?(i+=r.createPlaceholder(s.length),s.push(r)):i+=r}return i+=t[t.length-1],new tt(i,s)}const it={toView:t=>t?"true":"false",fromView:t=>null!=t&&"false"!==t&&!1!==t&&0!==t},nt={toView(t){if(null==t)return null;const e=1*t;return isNaN(e)?null:e.toString()},fromView(t){if(null==t)return null;const e=1*t;return isNaN(e)?null:e}};class ot{constructor(t,e,s=e.toLowerCase(),i="reflect",n){this.guards=new Set,this.Owner=t,this.name=e,this.attribute=s,this.mode=i,this.converter=n,this.fieldName="_"+e,this.callbackName=e+"Changed",this.hasCallback=this.callbackName in t.prototype,"boolean"===i&&void 0===n&&(this.converter=it)}setValue(t,e){const s=t[this.fieldName],i=this.converter;void 0!==i&&(e=i.fromView(e)),s!==e&&(t[this.fieldName]=e,this.tryReflectToAttribute(t),this.hasCallback&&t[this.callbackName](s,e),t.$fastController.notify(this.name))}getValue(t){return y.track(t,this.name),t[this.fieldName]}onAttributeChangedCallback(t,e){this.guards.has(t)||(this.guards.add(t),this.setValue(t,e),this.guards.delete(t))}tryReflectToAttribute(t){const e=this.mode,s=this.guards;s.has(t)||"fromView"===e||h.queueUpdate(()=>{s.add(t);const i=t[this.fieldName];switch(e){case"reflect":const e=this.converter;h.setAttribute(t,this.attribute,void 0!==e?e.toView(i):i);break;case"boolean":h.setBooleanAttribute(t,this.attribute,i)}s.delete(t)})}static collect(t,...e){const s=[];e.push(t.attributes);for(let i=0,n=e.length;i<n;++i){const n=e[i];if(void 0!==n)for(let e=0,i=n.length;e<i;++e){const i=n[e];"string"==typeof i?s.push(new ot(t,i)):s.push(new ot(t,i.property,i.attribute,i.mode,i.converter))}}return s}}function rt(t,e){let s;function i(t,e){arguments.length>1&&(s.property=e);const i=t.constructor.attributes||(t.constructor.attributes=[]);i.push(s)}return arguments.length>1?(s={},void i(t,e)):(s=void 0===t?{}:t,i)}const ht=new Map;class lt{constructor(){this.behaviors=null}withBehaviors(...t){return this.behaviors=null===this.behaviors?t:this.behaviors.concat(t),this}withKey(t){return ht.set(t,this),this}static find(t){return ht.get(t)||null}}function at(t){return t.map(t=>t instanceof lt?at(t.styles):[t]).reduce((t,e)=>t.concat(e),[])}function ct(t){return t.map(t=>t instanceof lt?t.behaviors:null).reduce((t,e)=>null===e?t:(null===t&&(t=[]),t.concat(e)),null)}class dt extends lt{constructor(t,e){super(),this.styles=t,this.behaviors=null,this.behaviors=ct(t),this.styleSheets=at(t).map(t=>{if(t instanceof CSSStyleSheet)return t;let s=e.get(t);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(t),e.set(t,s)),s})}addStylesTo(t){t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.styleSheets]}removeStylesFrom(t){const e=this.styleSheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter(t=>-1===e.indexOf(t))}}let ut=0;class ft extends lt{constructor(t){super(),this.styles=t,this.behaviors=null,this.behaviors=ct(t),this.styleSheets=at(t),this.styleClass="fast-style-class-"+ ++ut}addStylesTo(t){const e=this.styleSheets,s=this.styleClass;for(let i=e.length-1;i>-1;--i){const n=document.createElement("style");n.innerHTML=e[i],n.className=s,t.prepend(n)}}removeStylesFrom(t){const e=t.querySelectorAll("."+this.styleClass);for(let s=0,i=e.length;s<i;++s)t.removeChild(e[s])}}const gt=(()=>{if(h.supportsAdoptedStyleSheets){const t=new Map;return e=>new dt(e,t)}return t=>new ft(t)})();function pt(t,...e){const s=[];let i="";for(let n=0,o=t.length-1;n<o;++n){i+=t[n];const o=e[n];o instanceof lt||o instanceof CSSStyleSheet?(""!==i.trim()&&(s.push(i),i=""),s.push(o)):i+=o}return i+=t[t.length-1],""!==i.trim()&&s.push(i),gt(s)}class bt{constructor(t,e,s,i,n,o,r,h){this.name=t,this.attributes=e,this.propertyLookup=s,this.attributeLookup=i,this.template=n,this.shadowOptions=r,this.elementOptions=h,this.styles=void 0===o||o instanceof lt?o:pt`
${o}
`}}const vt=new Map,mt={bubbles:!0,composed:!0};class Ct extends f{constructor(t,e){super(t),this.boundObservables=null,this.behaviors=null,this.view=null,this.isConnected=!1,this.element=t,this.definition=e;const s=e.template,i=e.styles,n=void 0===e.shadowOptions?void 0:t.attachShadow(e.shadowOptions);if(void 0!==s){const e=this.view=s.create(this.element);void 0===n?e.appendTo(t):e.appendTo(n)}void 0!==i&&this.addStyles(i,n);const o=y.getAccessors(t);if(o.length>0){const e=this.boundObservables=Object.create(null);for(let s=0,i=o.length;s<i;++s){const i=o[s].name,n=t[i];void 0!==n&&(delete t[i],e[i]=n)}}}addStyles(t,e=this.element.shadowRoot){null!==e&&t.addStylesTo(e);const s=t.behaviors;null!==s&&this.addBehaviors(s)}removeStyles(t){const e=this.element.shadowRoot;null!==e&&t.removeStylesFrom(e);const s=t.behaviors;null!==s&&this.removeBehaviors(s)}addBehaviors(t){const e=this.behaviors||(this.behaviors=[]),s=t.length;for(let i=0;i<s;++i)e.push(t[i]);if(this.isConnected){const e=this.element;for(let i=0;i<s;++i)t[i].bind(e,k)}}removeBehaviors(t){const e=this.behaviors;if(null===e)return;const s=t.length;for(let i=0;i<s;++i){const s=e.indexOf(t[i]);-1!==s&&e.splice(s,1)}if(this.isConnected){const e=this.element;for(let i=0;i<s;++i)t[i].unbind(e)}}onConnectedCallback(){if(this.isConnected)return;const t=this.element,e=this.boundObservables;if(null!==e){const s=Object.keys(e);for(let i=0,n=s.length;i<n;++i){const n=s[i];t[n]=e[n]}this.boundObservables=null}const s=this.view;null!==s&&s.bind(t,k);const i=this.behaviors;if(null!==i)for(let e=0,s=i.length;e<s;++e)i[e].bind(t,k);this.isConnected=!0}onDisconnectedCallback(){if(!1===this.isConnected)return;this.isConnected=!1;const t=this.view;null!==t&&t.unbind();const e=this.behaviors;if(null!==e){const t=this.element;for(let s=0,i=e.length;s<i;++s)e[s].unbind(t)}}onAttributeChangedCallback(t,e,s){const i=this.definition.attributeLookup[t];void 0!==i&&i.onAttributeChangedCallback(this.element,s)}emit(t,e,s){return!!this.isConnected&&this.element.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign({detail:e},mt),s)))}static forCustomElement(t){const e=t.$fastController;if(void 0!==e)return e;const s=vt.get(t.constructor);if(void 0===s)throw new Error("Missing FASTElement definition.");return t.$fastController=new Ct(t,s)}}const yt={mode:"open"},xt={};function wt(t){return class extends t{constructor(){super(),Ct.forCustomElement(this)}$emit(t,e,s){return this.$fastController.emit(t,e,s)}connectedCallback(){this.$fastController.onConnectedCallback()}disconnectedCallback(){this.$fastController.onDisconnectedCallback()}attributeChangedCallback(t,e,s){this.$fastController.onAttributeChangedCallback(t,e,s)}}}const Bt=Object.assign(wt(HTMLElement),{from:t=>wt(t),define(t,e=t.definition){"string"==typeof e&&(e={name:e});const s=e.name,i=ot.collect(t,e.attributes),n=void 0===e.shadowOptions?yt:null===e.shadowOptions?void 0:Object.assign(Object.assign({},yt),e.shadowOptions),o=void 0===e.elementOptions?xt:Object.assign(Object.assign({},xt),e.shadowOptions),r=new Array(i.length),h=t.prototype,l={},a={};for(let t=0,e=i.length;t<e;++t){const e=i[t];r[t]=e.attribute,l[e.name]=e,a[e.attribute]=e,y.defineProperty(h,e)}Reflect.defineProperty(t,"observedAttributes",{value:r,enumerable:!0});const c=new bt(s,i,l,a,e.template,e.styles,n,o);return vt.set(t,c),customElements.define(s,t,c.elementOptions),t},getDefinition:t=>vt.get(t)});function Ot(t){return function(e){Bt.define(e,t)}}const St=Object.freeze([]);class Nt{constructor(t,e){this.target=t,this.propertyName=e}bind(t){t[this.propertyName]=this.target}unbind(){}}function Tt(t){return new I("fast-ref",Nt,t)}function At(t,e){const s="function"==typeof e?e:()=>e;return(e,i)=>t(e,i)?s(e,i):null}function kt(t,e,s){return{index:t,removed:e,addedCount:s}}function Vt(t,e,s,i,n,o){let r=0,h=0;const l=Math.min(s-e,o-n);if(0===e&&0===n&&(r=function(t,e,s){for(let i=0;i<s;++i)if(t[i]!==e[i])return i;return s}(t,i,l)),s===t.length&&o===i.length&&(h=function(t,e,s){let i=t.length,n=e.length,o=0;for(;o<s&&t[--i]===e[--n];)o++;return o}(t,i,l-r)),n+=r,o-=h,(s-=h)-(e+=r)==0&&o-n==0)return St;if(e===s){const t=kt(e,[],0);for(;n<o;)t.removed.push(i[n++]);return[t]}if(n===o)return[kt(e,[],s-e)];const a=function(t){let e=t.length-1,s=t[0].length-1,i=t[e][s];const n=[];for(;e>0||s>0;){if(0===e){n.push(2),s--;continue}if(0===s){n.push(3),e--;continue}const o=t[e-1][s-1],r=t[e-1][s],h=t[e][s-1];let l;l=r<h?r<o?r:o:h<o?h:o,l===o?(o===i?n.push(0):(n.push(1),i=o),e--,s--):l===r?(n.push(3),e--,i=r):(n.push(2),s--,i=h)}return n.reverse(),n}(function(t,e,s,i,n,o){const r=o-n+1,h=s-e+1,l=new Array(r);let a,c;for(let t=0;t<r;++t)l[t]=new Array(h),l[t][0]=t;for(let t=0;t<h;++t)l[0][t]=t;for(let s=1;s<r;++s)for(let o=1;o<h;++o)t[e+o-1]===i[n+s-1]?l[s][o]=l[s-1][o-1]:(a=l[s-1][o]+1,c=l[s][o-1]+1,l[s][o]=a<c?a:c);return l}(t,e,s,i,n,o)),c=[];let d=void 0,u=e,f=n;for(let t=0;t<a.length;++t)switch(a[t]){case 0:void 0!==d&&(c.push(d),d=void 0),u++,f++;break;case 1:void 0===d&&(d=kt(u,[],0)),d.addedCount++,u++,d.removed.push(i[f]),f++;break;case 2:void 0===d&&(d=kt(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=kt(u,[],0)),d.removed.push(i[f]),f++}return void 0!==d&&c.push(d),c}const $t=Array.prototype.push;function It(t,e,s,i){const n=kt(e,s,i);let o=!1,r=0;for(let e=0,s=t.length;e<s;e++){const s=t[e];if(s.index+=r,o)continue;const i=(h=n.index,l=n.index+n.removed.length,a=s.index,c=s.index+s.addedCount,l<a||c<h?-1:l===a||c===h?0:h<a?l<c?l-a:c-a:c<l?c-h:l-h);if(i>=0){t.splice(e,1),e--,r-=s.addedCount-s.removed.length,n.addedCount+=s.addedCount-i;const h=n.removed.length+s.removed.length-i;if(n.addedCount||h){let t=s.removed;if(n.index<s.index){const e=n.removed.slice(0,s.index-n.index);$t.apply(e,t),t=e}if(n.index+n.removed.length>s.index+s.addedCount){const e=n.removed.slice(s.index+s.addedCount-n.index);$t.apply(t,e)}n.removed=t,s.index<n.index&&(n.index=s.index)}else o=!0}else if(n.index<s.index){o=!0,t.splice(e,0,n),e++;const i=n.addedCount-n.removed.length;s.index+=i,r+=i}}var h,l,a,c;o||t.push(n)}function Mt(t,e){let s=[];const i=function(t){const e=[];for(let s=0,i=t.length;s<i;s++){const i=t[s];It(e,i.index,i.removed,i.addedCount)}return e}(e);for(let e=0,n=i.length;e<n;++e){const n=i[e];1!==n.addedCount||1!==n.removed.length?s=s.concat(Vt(t,n.index,n.index+n.addedCount,n.removed,0,n.removed.length)):n.removed[0]!==t[n.index]&&s.push(n)}return s}let Ft=!1;function Lt(t,e){let s=t.index;const i=e.length;return s>i?s=i-t.addedCount:s<0&&(s=i+t.removed.length+s-t.addedCount),s<0&&(s=0),t.index=s,t}class Et extends u{constructor(t){super(t),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this.call=this.flush,t.$fastController=this}addSplice(t){void 0===this.splices?this.splices=[t]:this.splices.push(t),this.needsQueue&&(this.needsQueue=!1,h.queueUpdate(this))}reset(t){this.oldCollection=t,this.needsQueue&&(this.needsQueue=!1,h.queueUpdate(this))}flush(){const t=this.splices,e=this.oldCollection;if(void 0===t&&void 0===e)return;this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0;const s=void 0===e?Mt(this.source,t):Vt(this.source,0,this.source.length,e,0,e.length);this.notify(s)}}const Pt=Object.freeze({positioning:!1});function jt(t,e,s,i){t.bind(e[s],i)}function Rt(t,e,s,i){const n=Object.create(i);n.index=s,n.length=e.length,t.bind(e[s],n)}class Ht{constructor(t,e,s,i,n,o){this.location=t,this.itemsBinding=e,this.templateBinding=i,this.options=o,this.source=null,this.views=[],this.items=null,this.itemsObserver=null,this.originalContext=void 0,this.childContext=void 0,this.bindView=jt,this.itemsBindingObserver=y.binding(e,this,s),this.templateBindingObserver=y.binding(i,this,n),o.positioning&&(this.bindView=Rt)}bind(t,e){this.source=t,this.originalContext=e,this.childContext=Object.create(e),this.childContext.parent=t,this.items=this.itemsBindingObserver.observe(t,this.originalContext),this.template=this.templateBindingObserver.observe(t,this.originalContext),this.observeItems(),this.refreshAllViews()}unbind(){this.source=null,this.items=null,null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews(),this.itemsBindingObserver.disconnect(),this.templateBindingObserver.disconnect()}handleChange(t,e){t===this.itemsBinding?(this.items=this.itemsBindingObserver.observe(this.source,this.originalContext),this.observeItems(),this.refreshAllViews()):t===this.templateBinding?(this.template=this.templateBindingObserver.observe(this.source,this.originalContext),this.refreshAllViews(!0)):this.updateViews(e)}observeItems(){this.items||(this.items=[]);const t=this.itemsObserver,e=this.itemsObserver=y.getNotifier(this.items);t!==e&&(null!==t&&t.unsubscribe(this),e.subscribe(this))}updateViews(t){const e=this.childContext,s=this.views,i=[],n=this.bindView;let o=0;for(let e=0,n=t.length;e<n;++e){const n=t[e],r=n.removed;i.push(...s.splice(n.index+o,r.length)),o-=n.addedCount}const r=this.items,h=this.template;for(let o=0,l=t.length;o<l;++o){const l=t[o];let a=l.index;const c=a+l.addedCount;for(;a<c;++a){const t=s[a],o=t?t.firstChild:this.location,l=i.length>0?i.shift():h.create();s.splice(a,0,l),n(l,r,a,e),l.insertBefore(o)}}for(let t=0,e=i.length;t<e;++t)i[t].dispose();if(this.options.positioning)for(let t=0,e=s.length;t<e;++t){const i=s[t].context;i.length=e,i.index=t}}refreshAllViews(t=!1){const e=this.items,s=this.childContext,i=this.template,n=this.location,o=this.bindView;let r=e.length,h=this.views,l=h.length;if((0===r||t)&&(Z.disposeContiguousBatch(h),l=0),0===l){this.views=h=new Array(r);for(let t=0;t<r;++t){const r=i.create();o(r,e,t,s),h[t]=r,r.insertBefore(n)}}else{let t=0;for(;t<r;++t)if(t<l){o(h[t],e,t,s)}else{const r=i.create();o(r,e,t,s),h.push(r),r.insertBefore(n)}const a=h.splice(t,l-t);for(t=0,r=a.length;t<r;++t)a[t].dispose()}}unbindAllViews(){const t=this.views;for(let e=0,s=t.length;e<s;++e)t[e].unbind()}}class Dt extends ${constructor(t,e,s){super(),this.itemsBinding=t,this.templateBinding=e,this.options=s,this.createPlaceholder=h.createBlockPlaceholder,function(){if(Ft)return;Ft=!0,y.setArrayObserverFactory(t=>new Et(t));const t=Array.prototype,e=t.pop,s=t.push,i=t.reverse,n=t.shift,o=t.sort,r=t.splice,h=t.unshift;t.pop=function(){const t=this.length>0,s=e.apply(this,arguments),i=this.$fastController;return void 0!==i&&t&&i.addSplice(kt(this.length,[s],0)),s},t.push=function(){const t=s.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(this.length-arguments.length,[],arguments.length),this)),t},t.reverse=function(){let t;const e=this.$fastController;void 0!==e&&(e.flush(),t=this.slice());const s=i.apply(this,arguments);return void 0!==e&&e.reset(t),s},t.shift=function(){const t=this.length>0,e=n.apply(this,arguments),s=this.$fastController;return void 0!==s&&t&&s.addSplice(kt(0,[e],0)),e},t.sort=function(){let t;const e=this.$fastController;void 0!==e&&(e.flush(),t=this.slice());const s=o.apply(this,arguments);return void 0!==e&&e.reset(t),s},t.splice=function(){const t=r.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(+arguments[0],t,arguments.length>2?arguments.length-2:0),this)),t},t.unshift=function(){const t=h.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(0,[],arguments.length),this)),t}}(),this.isItemsBindingVolatile=y.isVolatileBinding(t),this.isTemplateBindingVolatile=y.isVolatileBinding(e)}createBehavior(t){return new Ht(t,this.itemsBinding,this.isItemsBindingVolatile,this.templateBinding,this.isTemplateBindingVolatile,this.options)}}function Qt(t,e,s=Pt){return new Dt(t,"function"==typeof e?e:()=>e,s)}function Ut(t){return t?function(e,s,i){return 1===e.nodeType&&e.matches(t)}:function(t,e,s){return 1===t.nodeType}}class qt{constructor(t,e){this.target=t,this.options=e,this.source=null}bind(t){const e=this.options.property;this.shouldUpdate=y.getAccessors(t).some(t=>t.name===e),this.source=t,this.updateTarget(this.computeNodes()),this.shouldUpdate&&this.observe()}unbind(){this.updateTarget(St),this.source=null,this.shouldUpdate&&this.disconnect()}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let t=this.getNodes();return void 0!==this.options.filter&&(t=t.filter(this.options.filter)),t}updateTarget(t){this.source[this.options.property]=t}}class Wt extends qt{constructor(t,e){super(t,e)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function zt(t){return"string"==typeof t&&(t={property:t}),new I("fast-slotted",Wt,t)}class _t extends qt{constructor(t,e){super(t,e),this.observer=null}observe(){null===this.observer&&(this.observer=new MutationObserver(this.handleEvent.bind(this))),this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){return Array.from(this.target.childNodes)}}function Kt(t){return"string"==typeof t?t={property:t,childList:!0}:t.childList=!0,new I("fast-children",_t,t)}export{I as AttachedBehaviorDirective,ot as AttributeDefinition,q as BindingBehavior,U as BindingDirective,_t as ChildrenBehavior,Ct as Controller,h as DOM,$ as Directive,lt as ElementStyles,A as ExecutionContext,Bt as FASTElement,bt as FASTElementDefinition,Z as HTMLView,y as Observable,f as PropertyChangeNotifier,Nt as RefBehavior,Ht as RepeatBehavior,Dt as RepeatDirective,Wt as SlottedBehavior,u as SubscriberSet,tt as ViewTemplate,rt as attr,it as booleanConverter,Kt as children,X as compileTemplate,pt as css,Ot as customElement,k as defaultExecutionContext,Ut as elements,St as emptyArray,st as html,nt as nullableNumberConverter,O as observable,Tt as ref,Qt as repeat,T as setCurrentEvent,zt as slotted,S as volatile,At as when};
const t=[];void 0===globalThis.trustedTypes&&(globalThis.trustedTypes={createPolicy:(t,e)=>e});const e=globalThis.trustedTypes.createPolicy("fast-html",{createHTML:t=>t});let s=e;function i(){let e=0;for(;e<t.length;){if(t[e].call(),e++,e>1024){for(let s=0,i=t.length-e;s<i;s++)t[s]=t[s+e];t.length-=e,e=0}}t.length=0}const n="fast-"+Math.random().toString(36).substring(7),o=n+"{",r="}"+n,h=Object.freeze({supportsAdoptedStyleSheets:Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype,setHTMLPolicy(t){if(s!==e)throw new Error("The HTML policy can only be set once.");s=t},createHTML:t=>s.createHTML(t),isMarker:t=>t&&8===t.nodeType&&t.data.startsWith(n),extractDirectiveIndexFromMarker:t=>parseInt(t.data.replace(n+":","")),createInterpolationPlaceholder:t=>`${o}${t}${r}`,createCustomAttributePlaceholder(t,e){return`${t}="${this.createInterpolationPlaceholder(e)}"`},createBlockPlaceholder:t=>`\x3c!--${n}:${t}--\x3e`,queueUpdate(e){t.length<1&&window.requestAnimationFrame(i),t.push(e)},nextUpdate:()=>new Promise(t=>{h.queueUpdate(t)}),setAttribute(t,e,s){null==s?t.removeAttribute(e):t.setAttribute(e,s)},setBooleanAttribute(t,e,s){s?t.setAttribute(e,""):t.removeAttribute(e)}});function l(t){const e=this.spillover;-1===e.indexOf(t)&&e.push(t)}function a(t){const e=this.spillover,s=e.indexOf(t);-1!==s&&e.splice(s,1)}function c(t){const e=this.spillover,s=this.source;for(let i=0,n=e.length;i<n;++i)e[i].handleChange(s,t)}function d(t){return-1!==this.spillover.indexOf(t)}class u{constructor(t,e){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.source=t,this.sub1=e}has(t){return this.sub1===t||this.sub2===t}subscribe(t){this.has(t)||(void 0!==this.sub1?void 0!==this.sub2?(this.spillover=[this.sub1,this.sub2,t],this.subscribe=l,this.unsubscribe=a,this.notify=c,this.has=d,this.sub1=void 0,this.sub2=void 0):this.sub2=t:this.sub1=t)}unsubscribe(t){this.sub1===t?this.sub1=void 0:this.sub2===t&&(this.sub2=void 0)}notify(t){const e=this.sub1,s=this.sub2,i=this.source;void 0!==e&&e.handleChange(i,t),void 0!==s&&s.handleChange(i,t)}}class f{constructor(t){this.subscribers={},this.source=t}notify(t){const e=this.subscribers[t];void 0!==e&&e.notify(t)}subscribe(t,e){let s=this.subscribers[e];void 0===s&&(this.subscribers[e]=s=new u(this.source)),s.subscribe(t)}unsubscribe(t,e){const s=this.subscribers[e];void 0!==s&&s.unsubscribe(t)}}const g=/(\:|\&\&|\|\||if)/,p=new WeakMap,b=new WeakMap;let v=void 0,m=t=>{throw new Error("Must call enableArrayObservation before observing arrays.")};class C{constructor(t,e){this.name=t,this.field="_"+t,this.callback=t+"Changed",this.hasCallback=this.callback in e}getValue(t){return void 0!==v&&v.watch(t,this.name),t[this.field]}setValue(t,e){const s=this.field,i=t[s];i!==e&&(t[s]=e,this.hasCallback&&t[this.callback](i,e),x(t).notify(this.name))}}const y=Object.freeze({setArrayObserverFactory(t){m=t},getNotifier(t){let e=t.$fastController||p.get(t);return void 0===e&&(Array.isArray(t)?e=m(t):p.set(t,e=new f(t))),e},track(t,e){void 0!==v&&v.watch(t,e)},trackVolatile(){void 0!==v&&(v.needsRefresh=!0)},notify(t,e){x(t).notify(e)},defineProperty(t,e){"string"==typeof e&&(e=new C(e,t)),this.getAccessors(t).push(e),Reflect.defineProperty(t,e.name,{enumerable:!0,get:function(){return e.getValue(this)},set:function(t){e.setValue(this,t)}})},getAccessors(t){let e=b.get(t);if(void 0===e){let s=Reflect.getPrototypeOf(t);for(;void 0===e&&null!==s;)e=b.get(s),s=Reflect.getPrototypeOf(s);e=void 0===e?[]:e.slice(0),b.set(t,e)}return e},binding(t,e,s=this.isVolatileBinding(t)){return new V(t,e,s)},isVolatileBinding:t=>g.test(t.toString())}),x=y.getNotifier,w=y.trackVolatile,B=h.queueUpdate;function O(t,e){y.defineProperty(t,e)}function S(t,e,s){return Object.assign({},s,{get:function(){var t;return w(),null===(t=s.get)||void 0===t?void 0:t.apply(this)}})}let N=null;function T(t){N=t}class A{constructor(){this.index=0,this.length=0,this.parent=null}get event(){return N}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}}y.defineProperty(A.prototype,"index"),y.defineProperty(A.prototype,"length");const k=Object.seal(new A);class V extends u{constructor(t,e,s=!1){super(t,e),this.binding=t,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}observe(t,e){this.needsRefresh&&null!==this.last&&this.disconnect();const s=v;v=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;const i=this.binding(t,e);return v=s,i}disconnect(){if(null!==this.last){let t=this.first;for(;void 0!==t;)t.notifier.unsubscribe(this,t.propertyName),t=t.next;this.last=null,this.needsRefresh=!0}}watch(t,e){const s=this.last,i=x(t),n=null===s?this.first:{};if(n.propertySource=t,n.propertyName=e,n.notifier=i,i.subscribe(this,e),null!==s){if(!this.needsRefresh){v=void 0;const e=s.propertySource[s.propertyName];v=this,t===e&&(this.needsRefresh=!0)}s.next=n}this.last=n}handleChange(){this.needsQueue&&(this.needsQueue=!1,B(this))}call(){null!==this.last&&(this.needsQueue=!0,this.notify(this))}}class ${constructor(){this.targetIndex=0}}class I extends ${constructor(t,e,s){super(),this.name=t,this.behavior=e,this.options=s}createPlaceholder(t){return h.createCustomAttributePlaceholder(this.name,t)}createBehavior(t){return new this.behavior(t,this.options)}}function M(t,e){this.source=t,this.context=e,null===this.bindingObserver&&(this.bindingObserver=y.binding(this.binding,this,this.isBindingVolatile)),this.updateTarget(this.bindingObserver.observe(t,e))}function F(t,e){this.source=t,this.context=e,this.target.addEventListener(this.targetName,this)}function L(){this.bindingObserver.disconnect(),this.source=null,this.context=null}function E(){this.bindingObserver.disconnect(),this.source=null,this.context=null;const t=this.target.$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}function P(){this.target.removeEventListener(this.targetName,this),this.source=null,this.context=null}function j(t){h.setAttribute(this.target,this.targetName,t)}function R(t){h.setBooleanAttribute(this.target,this.targetName,t)}function H(t){if(null==t&&(t=""),t.create){this.target.textContent="";let e=this.target.$fastView;void 0===e?e=t.create():this.target.$fastTemplate!==t&&(e.isComposed&&(e.remove(),e.unbind()),e=t.create()),e.isComposed?e.needsBindOnly&&(e.needsBindOnly=!1,e.bind(this.source,this.context)):(e.isComposed=!0,e.bind(this.source,this.context),e.insertBefore(this.target),this.target.$fastView=e,this.target.$fastTemplate=t)}else{const e=this.target.$fastView;void 0!==e&&e.isComposed&&(e.isComposed=!1,e.remove(),e.needsBindOnly?e.needsBindOnly=!1:e.unbind()),this.target.textContent=t}}function D(t){this.target[this.targetName]=t}function Q(t){const e=this.classVersions||Object.create(null),s=this.target;let i=this.version||0;if(null!=t&&t.length){const n=t.split(/\s+/);for(let t=0,o=n.length;t<o;++t){const o=n[t];""!==o&&(e[o]=i,s.classList.add(o))}}if(this.classVersions=e,this.version=i+1,0!==i){i-=1;for(const t in e)e[t]===i&&s.classList.remove(t)}}class U extends ${constructor(t){super(),this.binding=t,this.bind=M,this.unbind=L,this.updateTarget=j,this.createPlaceholder=h.createInterpolationPlaceholder,this.isBindingVolatile=y.isVolatileBinding(this.bind)}get targetName(){return this.originalTargetName}set targetName(t){if(this.originalTargetName=t,void 0!==t)switch(t[0]){case":":if(this.cleanedTargetName=t.substr(1),this.updateTarget=D,"innerHTML"===this.cleanedTargetName){const t=this.binding;this.binding=(e,s)=>h.createHTML(t(e,s))}break;case"?":this.cleanedTargetName=t.substr(1),this.updateTarget=R;break;case"@":this.cleanedTargetName=t.substr(1),this.bind=F,this.unbind=P;break;default:this.cleanedTargetName=t,"class"===t&&(this.updateTarget=Q)}}targetAtContent(){this.updateTarget=H,this.unbind=E}createBehavior(t){return new q(t,this.binding,this.isBindingVolatile,this.bind,this.unbind,this.updateTarget,this.cleanedTargetName)}}class q{constructor(t,e,s,i,n,o,r){this.source=null,this.context=null,this.bindingObserver=null,this.target=t,this.binding=e,this.isBindingVolatile=s,this.bind=i,this.unbind=n,this.updateTarget=o,this.targetName=r}handleChange(){this.updateTarget(this.bindingObserver.observe(this.source,this.context))}handleEvent(t){T(t);const e=this.binding(this.source,this.context);T(null),!0!==e&&t.preventDefault()}}const W={locatedDirectives:0,targetIndex:-1};function z(t){if(1===t.length)return W.locatedDirectives++,t[0];let e;const s=t.length,i=t.map(t=>"string"==typeof t?()=>t:(e=t.targetName||e,W.locatedDirectives++,t.binding)),n=new U((t,e)=>{let n="";for(let o=0;o<s;++o)n+=i[o](t,e);return n});return n.targetName=e,n}const _=r.length;function K(t,e){const s=t.split(o);if(1===s.length)return null;const i=[];for(let t=0,n=s.length;t<n;++t){const n=s[t],o=n.indexOf(r);let h;if(-1===o)h=n;else{const t=parseInt(n.substring(0,o));i.push(e[t]),h=n.substring(o+_)}""!==h&&i.push(h)}return i}function G(t,e,s,i=!1){const n=t.attributes;for(let o=0,r=n.length;o<r;++o){const h=n[o],l=h.value,a=K(l,e);let c=null;null===a?i&&(c=new U(()=>l),c.targetName=h.name):c=z(a),null!==c&&(t.removeAttributeNode(h),o--,r--,c.targetIndex=W.targetIndex,s.push(c))}}function J(t,e,s,i){const n=K(t.textContent,e);if(null!==n){let e=t;for(let h=0,l=n.length;h<l;++h){const l=n[h],a=0===h?t:e.parentNode.insertBefore(document.createTextNode(""),e.nextSibling);"string"==typeof l?a.textContent=l:(a.textContent=" ",r=s,(o=l).targetAtContent(),o.targetIndex=W.targetIndex,r.push(o),W.locatedDirectives++),e=a,W.targetIndex++,a!==t&&i.nextNode()}W.targetIndex--}var o,r}function X(t,e){const s=[];W.locatedDirectives=0,G(t,e,s,!0);const i=t.content,n=[],o=e.length,r=document.createTreeWalker(i,133,null,!1);for(W.targetIndex=-1;W.locatedDirectives<o;){const t=r.nextNode();if(null===t)break;switch(W.targetIndex++,t.nodeType){case 1:G(t,e,n);break;case 3:J(t,e,n,r);break;case 8:if(h.isMarker(t)){const s=e[h.extractDirectiveIndexFromMarker(t)];s.targetIndex=W.targetIndex,W.locatedDirectives++,n.push(s)}else t.parentNode.removeChild(t),W.targetIndex--}}let l=0;return h.isMarker(i.firstChild)&&(i.insertBefore(document.createComment(""),i.firstChild),l=-1),{fragment:i,viewBehaviorFactories:n,hostBehaviorFactories:s,targetOffset:l}}const Y=document.createRange();class Z{constructor(t,e){this.fragment=t,this.behaviors=e,this.source=null,this.context=null,this.firstChild=t.firstChild,this.lastChild=t.lastChild}appendTo(t){t.appendChild(this.fragment)}insertBefore(t){if(this.fragment.hasChildNodes())t.parentNode.insertBefore(this.fragment,t);else{const e=t.parentNode,s=this.lastChild;let i,n=this.firstChild;for(;n!==s;)i=n.nextSibling,e.insertBefore(n,t),n=i;e.insertBefore(s,t)}}remove(){const t=this.fragment,e=this.lastChild;let s,i=this.firstChild;for(;i!==e;)s=i.nextSibling,t.appendChild(i),i=s;t.appendChild(e)}dispose(){const t=this.firstChild.parentNode,e=this.lastChild;let s,i=this.firstChild;for(;i!==e;)s=i.nextSibling,t.removeChild(i),i=s;t.removeChild(e);const n=this.behaviors,o=this.source;for(let t=0,e=n.length;t<e;++t)n[t].unbind(o)}bind(t,e){const s=this.behaviors;if(this.source!==t)if(null!==this.source){const i=this.source;this.source=t,this.context=e;for(let n=0,o=s.length;n<o;++n){const o=s[n];o.unbind(i),o.bind(t,e)}}else{this.source=t,this.context=e;for(let i=0,n=s.length;i<n;++i)s[i].bind(t,e)}}unbind(){if(null===this.source)return;const t=this.behaviors,e=this.source;for(let s=0,i=t.length;s<i;++s)t[s].unbind(e);this.source=null}static disposeContiguousBatch(t){if(0!==t.length){Y.setStart(t[0].firstChild,0),Y.setEnd(t[t.length-1].lastChild.nextSibling,0),Y.deleteContents();for(let e=0,s=t.length;e<s;++e){const s=t[e],i=s.behaviors,n=s.source;for(let t=0,e=i.length;t<e;++t)i[t].unbind(n)}}}}class tt{constructor(t,e){this.behaviorCount=0,this.hasHostBehaviors=!1,this.fragment=null,this.targetOffset=0,this.viewBehaviorFactories=null,this.hostBehaviorFactories=null,this.html=t,this.directives=e}create(t){if(null===this.fragment){let t;const e=this.html;if("string"==typeof e){t=document.createElement("template"),t.innerHTML=h.createHTML(e);const s=t.content.firstElementChild;null!==s&&"TEMPLATE"===s.tagName&&(t=s)}else t=e;const s=X(t,this.directives);this.fragment=s.fragment,this.viewBehaviorFactories=s.viewBehaviorFactories,this.hostBehaviorFactories=s.hostBehaviorFactories,this.targetOffset=s.targetOffset,this.behaviorCount=this.viewBehaviorFactories.length+this.hostBehaviorFactories.length,this.hasHostBehaviors=this.hostBehaviorFactories.length>0}const e=this.fragment.cloneNode(!0),s=this.viewBehaviorFactories,i=new Array(this.behaviorCount),n=document.createTreeWalker(e,133,null,!1);let o=0,r=this.targetOffset,l=n.nextNode();for(let t=s.length;o<t;++o){const t=s[o],e=t.targetIndex;for(;null!==l;){if(r===e){i[o]=t.createBehavior(l);break}l=n.nextNode(),r++}}if(this.hasHostBehaviors){const e=this.hostBehaviorFactories;for(let s=0,n=e.length;s<n;++s,++o)i[o]=e[s].createBehavior(t)}return new Z(e,i)}render(t,e){"string"==typeof e&&(e=document.getElementById(e));const s=this.create(e);return s.bind(t,k),s.appendTo(e),s}}const et=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function st(t,...e){const s=[];let i="";for(let n=0,o=t.length-1;n<o;++n){const o=t[n];let r=e[n];if(i+=o,r instanceof tt){const t=r;r=()=>t}if("function"==typeof r){r=new U(r);const t=et.exec(o);null!==t&&(r.targetName=t[2])}r instanceof $?(i+=r.createPlaceholder(s.length),s.push(r)):i+=r}return i+=t[t.length-1],new tt(i,s)}const it={toView:t=>t?"true":"false",fromView:t=>null!=t&&"false"!==t&&!1!==t&&0!==t},nt={toView(t){if(null==t)return null;const e=1*t;return isNaN(e)?null:e.toString()},fromView(t){if(null==t)return null;const e=1*t;return isNaN(e)?null:e}};class ot{constructor(t,e,s=e.toLowerCase(),i="reflect",n){this.guards=new Set,this.Owner=t,this.name=e,this.attribute=s,this.mode=i,this.converter=n,this.fieldName="_"+e,this.callbackName=e+"Changed",this.hasCallback=this.callbackName in t.prototype,"boolean"===i&&void 0===n&&(this.converter=it)}setValue(t,e){const s=t[this.fieldName],i=this.converter;void 0!==i&&(e=i.fromView(e)),s!==e&&(t[this.fieldName]=e,this.tryReflectToAttribute(t),this.hasCallback&&t[this.callbackName](s,e),t.$fastController.notify(this.name))}getValue(t){return y.track(t,this.name),t[this.fieldName]}onAttributeChangedCallback(t,e){this.guards.has(t)||(this.guards.add(t),this.setValue(t,e),this.guards.delete(t))}tryReflectToAttribute(t){const e=this.mode,s=this.guards;s.has(t)||"fromView"===e||h.queueUpdate(()=>{s.add(t);const i=t[this.fieldName];switch(e){case"reflect":const e=this.converter;h.setAttribute(t,this.attribute,void 0!==e?e.toView(i):i);break;case"boolean":h.setBooleanAttribute(t,this.attribute,i)}s.delete(t)})}static collect(t,...e){const s=[];e.push(t.attributes);for(let i=0,n=e.length;i<n;++i){const n=e[i];if(void 0!==n)for(let e=0,i=n.length;e<i;++e){const i=n[e];"string"==typeof i?s.push(new ot(t,i)):s.push(new ot(t,i.property,i.attribute,i.mode,i.converter))}}return s}}function rt(t,e){let s;function i(t,e){arguments.length>1&&(s.property=e);const i=t.constructor.attributes||(t.constructor.attributes=[]);i.push(s)}return arguments.length>1?(s={},void i(t,e)):(s=void 0===t?{}:t,i)}const ht=new Map;class lt{constructor(){this.behaviors=null}withBehaviors(...t){return this.behaviors=null===this.behaviors?t:this.behaviors.concat(t),this}withKey(t){return ht.set(t,this),this}static find(t){return ht.get(t)||null}}function at(t){return t.map(t=>t instanceof lt?at(t.styles):[t]).reduce((t,e)=>t.concat(e),[])}function ct(t){return t.map(t=>t instanceof lt?t.behaviors:null).reduce((t,e)=>null===e?t:(null===t&&(t=[]),t.concat(e)),null)}class dt extends lt{constructor(t,e){super(),this.styles=t,this.behaviors=null,this.behaviors=ct(t),this.styleSheets=at(t).map(t=>{if(t instanceof CSSStyleSheet)return t;let s=e.get(t);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(t),e.set(t,s)),s})}addStylesTo(t){t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.styleSheets]}removeStylesFrom(t){const e=this.styleSheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter(t=>-1===e.indexOf(t))}}let ut=0;class ft extends lt{constructor(t){super(),this.styles=t,this.behaviors=null,this.behaviors=ct(t),this.styleSheets=at(t),this.styleClass="fast-style-class-"+ ++ut}addStylesTo(t){const e=this.styleSheets,s=this.styleClass;t===document&&(t=document.body);for(let i=e.length-1;i>-1;--i){const n=document.createElement("style");n.innerHTML=e[i],n.className=s,t.prepend(n)}}removeStylesFrom(t){t===document&&(t=document.body);const e=t.querySelectorAll("."+this.styleClass);for(let s=0,i=e.length;s<i;++s)t.removeChild(e[s])}}const gt=(()=>{if(h.supportsAdoptedStyleSheets){const t=new Map;return e=>new dt(e,t)}return t=>new ft(t)})();function pt(t,...e){const s=[];let i="";for(let n=0,o=t.length-1;n<o;++n){i+=t[n];const o=e[n];o instanceof lt||o instanceof CSSStyleSheet?(""!==i.trim()&&(s.push(i),i=""),s.push(o)):i+=o}return i+=t[t.length-1],""!==i.trim()&&s.push(i),gt(s)}class bt{constructor(t,e,s,i,n,o,r,h){this.name=t,this.attributes=e,this.propertyLookup=s,this.attributeLookup=i,this.template=n,this.shadowOptions=r,this.elementOptions=h,this.styles=void 0===o||o instanceof lt?o:pt`${o}`}}const vt=new Map,mt={bubbles:!0,composed:!0};class Ct extends f{constructor(t,e){super(t),this.boundObservables=null,this.behaviors=null,this.view=null,this.isConnected=!1,this.element=t,this.definition=e;const s=e.template,i=e.styles,n=void 0===e.shadowOptions?void 0:t.attachShadow(e.shadowOptions);if(void 0!==s){const e=this.view=s.create(this.element);void 0===n?e.appendTo(t):e.appendTo(n)}void 0!==i&&this.addStyles(i,n);const o=y.getAccessors(t);if(o.length>0){const e=this.boundObservables=Object.create(null);for(let s=0,i=o.length;s<i;++s){const i=o[s].name,n=t[i];void 0!==n&&(delete t[i],e[i]=n)}}}addStyles(t,e=this.element.shadowRoot){null!==e&&t.addStylesTo(e);const s=t.behaviors;null!==s&&this.addBehaviors(s)}removeStyles(t){const e=this.element.shadowRoot;null!==e&&t.removeStylesFrom(e);const s=t.behaviors;null!==s&&this.removeBehaviors(s)}addBehaviors(t){const e=this.behaviors||(this.behaviors=[]),s=t.length;for(let i=0;i<s;++i)e.push(t[i]);if(this.isConnected){const e=this.element;for(let i=0;i<s;++i)t[i].bind(e,k)}}removeBehaviors(t){const e=this.behaviors;if(null===e)return;const s=t.length;for(let i=0;i<s;++i){const s=e.indexOf(t[i]);-1!==s&&e.splice(s,1)}if(this.isConnected){const e=this.element;for(let i=0;i<s;++i)t[i].unbind(e)}}onConnectedCallback(){if(this.isConnected)return;const t=this.element,e=this.boundObservables;if(null!==e){const s=Object.keys(e);for(let i=0,n=s.length;i<n;++i){const n=s[i];t[n]=e[n]}this.boundObservables=null}const s=this.view;null!==s&&s.bind(t,k);const i=this.behaviors;if(null!==i)for(let e=0,s=i.length;e<s;++e)i[e].bind(t,k);this.isConnected=!0}onDisconnectedCallback(){if(!1===this.isConnected)return;this.isConnected=!1;const t=this.view;null!==t&&t.unbind();const e=this.behaviors;if(null!==e){const t=this.element;for(let s=0,i=e.length;s<i;++s)e[s].unbind(t)}}onAttributeChangedCallback(t,e,s){const i=this.definition.attributeLookup[t];void 0!==i&&i.onAttributeChangedCallback(this.element,s)}emit(t,e,s){return!!this.isConnected&&this.element.dispatchEvent(new CustomEvent(t,Object.assign(Object.assign({detail:e},mt),s)))}static forCustomElement(t){const e=t.$fastController;if(void 0!==e)return e;const s=vt.get(t.constructor);if(void 0===s)throw new Error("Missing FASTElement definition.");return t.$fastController=new Ct(t,s)}}const yt={mode:"open"},xt={};function wt(t){return class extends t{constructor(){super(),Ct.forCustomElement(this)}$emit(t,e,s){return this.$fastController.emit(t,e,s)}connectedCallback(){this.$fastController.onConnectedCallback()}disconnectedCallback(){this.$fastController.onDisconnectedCallback()}attributeChangedCallback(t,e,s){this.$fastController.onAttributeChangedCallback(t,e,s)}}}const Bt=Object.assign(wt(HTMLElement),{from:t=>wt(t),define(t,e=t.definition){"string"==typeof e&&(e={name:e});const s=e.name,i=ot.collect(t,e.attributes),n=void 0===e.shadowOptions?yt:null===e.shadowOptions?void 0:Object.assign(Object.assign({},yt),e.shadowOptions),o=void 0===e.elementOptions?xt:Object.assign(Object.assign({},xt),e.shadowOptions),r=new Array(i.length),h=t.prototype,l={},a={};for(let t=0,e=i.length;t<e;++t){const e=i[t];r[t]=e.attribute,l[e.name]=e,a[e.attribute]=e,y.defineProperty(h,e)}Reflect.defineProperty(t,"observedAttributes",{value:r,enumerable:!0});const c=new bt(s,i,l,a,e.template,e.styles,n,o);return vt.set(t,c),customElements.define(s,t,c.elementOptions),t},getDefinition:t=>vt.get(t)});function Ot(t){return function(e){Bt.define(e,t)}}const St=Object.freeze([]);class Nt{constructor(t,e){this.target=t,this.propertyName=e}bind(t){t[this.propertyName]=this.target}unbind(){}}function Tt(t){return new I("fast-ref",Nt,t)}function At(t,e){const s="function"==typeof e?e:()=>e;return(e,i)=>t(e,i)?s(e,i):null}function kt(t,e,s){return{index:t,removed:e,addedCount:s}}function Vt(t,e,s,i,n,o){let r=0,h=0;const l=Math.min(s-e,o-n);if(0===e&&0===n&&(r=function(t,e,s){for(let i=0;i<s;++i)if(t[i]!==e[i])return i;return s}(t,i,l)),s===t.length&&o===i.length&&(h=function(t,e,s){let i=t.length,n=e.length,o=0;for(;o<s&&t[--i]===e[--n];)o++;return o}(t,i,l-r)),n+=r,o-=h,(s-=h)-(e+=r)==0&&o-n==0)return St;if(e===s){const t=kt(e,[],0);for(;n<o;)t.removed.push(i[n++]);return[t]}if(n===o)return[kt(e,[],s-e)];const a=function(t){let e=t.length-1,s=t[0].length-1,i=t[e][s];const n=[];for(;e>0||s>0;){if(0===e){n.push(2),s--;continue}if(0===s){n.push(3),e--;continue}const o=t[e-1][s-1],r=t[e-1][s],h=t[e][s-1];let l;l=r<h?r<o?r:o:h<o?h:o,l===o?(o===i?n.push(0):(n.push(1),i=o),e--,s--):l===r?(n.push(3),e--,i=r):(n.push(2),s--,i=h)}return n.reverse(),n}(function(t,e,s,i,n,o){const r=o-n+1,h=s-e+1,l=new Array(r);let a,c;for(let t=0;t<r;++t)l[t]=new Array(h),l[t][0]=t;for(let t=0;t<h;++t)l[0][t]=t;for(let s=1;s<r;++s)for(let o=1;o<h;++o)t[e+o-1]===i[n+s-1]?l[s][o]=l[s-1][o-1]:(a=l[s-1][o]+1,c=l[s][o-1]+1,l[s][o]=a<c?a:c);return l}(t,e,s,i,n,o)),c=[];let d=void 0,u=e,f=n;for(let t=0;t<a.length;++t)switch(a[t]){case 0:void 0!==d&&(c.push(d),d=void 0),u++,f++;break;case 1:void 0===d&&(d=kt(u,[],0)),d.addedCount++,u++,d.removed.push(i[f]),f++;break;case 2:void 0===d&&(d=kt(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=kt(u,[],0)),d.removed.push(i[f]),f++}return void 0!==d&&c.push(d),c}const $t=Array.prototype.push;function It(t,e,s,i){const n=kt(e,s,i);let o=!1,r=0;for(let e=0,s=t.length;e<s;e++){const s=t[e];if(s.index+=r,o)continue;const i=(h=n.index,l=n.index+n.removed.length,a=s.index,c=s.index+s.addedCount,l<a||c<h?-1:l===a||c===h?0:h<a?l<c?l-a:c-a:c<l?c-h:l-h);if(i>=0){t.splice(e,1),e--,r-=s.addedCount-s.removed.length,n.addedCount+=s.addedCount-i;const h=n.removed.length+s.removed.length-i;if(n.addedCount||h){let t=s.removed;if(n.index<s.index){const e=n.removed.slice(0,s.index-n.index);$t.apply(e,t),t=e}if(n.index+n.removed.length>s.index+s.addedCount){const e=n.removed.slice(s.index+s.addedCount-n.index);$t.apply(t,e)}n.removed=t,s.index<n.index&&(n.index=s.index)}else o=!0}else if(n.index<s.index){o=!0,t.splice(e,0,n),e++;const i=n.addedCount-n.removed.length;s.index+=i,r+=i}}var h,l,a,c;o||t.push(n)}function Mt(t,e){let s=[];const i=function(t){const e=[];for(let s=0,i=t.length;s<i;s++){const i=t[s];It(e,i.index,i.removed,i.addedCount)}return e}(e);for(let e=0,n=i.length;e<n;++e){const n=i[e];1!==n.addedCount||1!==n.removed.length?s=s.concat(Vt(t,n.index,n.index+n.addedCount,n.removed,0,n.removed.length)):n.removed[0]!==t[n.index]&&s.push(n)}return s}let Ft=!1;function Lt(t,e){let s=t.index;const i=e.length;return s>i?s=i-t.addedCount:s<0&&(s=i+t.removed.length+s-t.addedCount),s<0&&(s=0),t.index=s,t}class Et extends u{constructor(t){super(t),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this.call=this.flush,t.$fastController=this}addSplice(t){void 0===this.splices?this.splices=[t]:this.splices.push(t),this.needsQueue&&(this.needsQueue=!1,h.queueUpdate(this))}reset(t){this.oldCollection=t,this.needsQueue&&(this.needsQueue=!1,h.queueUpdate(this))}flush(){const t=this.splices,e=this.oldCollection;if(void 0===t&&void 0===e)return;this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0;const s=void 0===e?Mt(this.source,t):Vt(this.source,0,this.source.length,e,0,e.length);this.notify(s)}}const Pt=Object.freeze({positioning:!1});function jt(t,e,s,i){t.bind(e[s],i)}function Rt(t,e,s,i){const n=Object.create(i);n.index=s,n.length=e.length,t.bind(e[s],n)}class Ht{constructor(t,e,s,i,n,o){this.location=t,this.itemsBinding=e,this.templateBinding=i,this.options=o,this.source=null,this.views=[],this.items=null,this.itemsObserver=null,this.originalContext=void 0,this.childContext=void 0,this.bindView=jt,this.itemsBindingObserver=y.binding(e,this,s),this.templateBindingObserver=y.binding(i,this,n),o.positioning&&(this.bindView=Rt)}bind(t,e){this.source=t,this.originalContext=e,this.childContext=Object.create(e),this.childContext.parent=t,this.items=this.itemsBindingObserver.observe(t,this.originalContext),this.template=this.templateBindingObserver.observe(t,this.originalContext),this.observeItems(),this.refreshAllViews()}unbind(){this.source=null,this.items=null,null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews(),this.itemsBindingObserver.disconnect(),this.templateBindingObserver.disconnect()}handleChange(t,e){t===this.itemsBinding?(this.items=this.itemsBindingObserver.observe(this.source,this.originalContext),this.observeItems(),this.refreshAllViews()):t===this.templateBinding?(this.template=this.templateBindingObserver.observe(this.source,this.originalContext),this.refreshAllViews(!0)):this.updateViews(e)}observeItems(){this.items||(this.items=[]);const t=this.itemsObserver,e=this.itemsObserver=y.getNotifier(this.items);t!==e&&(null!==t&&t.unsubscribe(this),e.subscribe(this))}updateViews(t){const e=this.childContext,s=this.views,i=[],n=this.bindView;let o=0;for(let e=0,n=t.length;e<n;++e){const n=t[e],r=n.removed;i.push(...s.splice(n.index+o,r.length)),o-=n.addedCount}const r=this.items,h=this.template;for(let o=0,l=t.length;o<l;++o){const l=t[o];let a=l.index;const c=a+l.addedCount;for(;a<c;++a){const t=s[a],o=t?t.firstChild:this.location,l=i.length>0?i.shift():h.create();s.splice(a,0,l),n(l,r,a,e),l.insertBefore(o)}}for(let t=0,e=i.length;t<e;++t)i[t].dispose();if(this.options.positioning)for(let t=0,e=s.length;t<e;++t){const i=s[t].context;i.length=e,i.index=t}}refreshAllViews(t=!1){const e=this.items,s=this.childContext,i=this.template,n=this.location,o=this.bindView;let r=e.length,h=this.views,l=h.length;if((0===r||t)&&(Z.disposeContiguousBatch(h),l=0),0===l){this.views=h=new Array(r);for(let t=0;t<r;++t){const r=i.create();o(r,e,t,s),h[t]=r,r.insertBefore(n)}}else{let t=0;for(;t<r;++t)if(t<l){o(h[t],e,t,s)}else{const r=i.create();o(r,e,t,s),h.push(r),r.insertBefore(n)}const a=h.splice(t,l-t);for(t=0,r=a.length;t<r;++t)a[t].dispose()}}unbindAllViews(){const t=this.views;for(let e=0,s=t.length;e<s;++e)t[e].unbind()}}class Dt extends ${constructor(t,e,s){super(),this.itemsBinding=t,this.templateBinding=e,this.options=s,this.createPlaceholder=h.createBlockPlaceholder,function(){if(Ft)return;Ft=!0,y.setArrayObserverFactory(t=>new Et(t));const t=Array.prototype,e=t.pop,s=t.push,i=t.reverse,n=t.shift,o=t.sort,r=t.splice,h=t.unshift;t.pop=function(){const t=this.length>0,s=e.apply(this,arguments),i=this.$fastController;return void 0!==i&&t&&i.addSplice(kt(this.length,[s],0)),s},t.push=function(){const t=s.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(this.length-arguments.length,[],arguments.length),this)),t},t.reverse=function(){let t;const e=this.$fastController;void 0!==e&&(e.flush(),t=this.slice());const s=i.apply(this,arguments);return void 0!==e&&e.reset(t),s},t.shift=function(){const t=this.length>0,e=n.apply(this,arguments),s=this.$fastController;return void 0!==s&&t&&s.addSplice(kt(0,[e],0)),e},t.sort=function(){let t;const e=this.$fastController;void 0!==e&&(e.flush(),t=this.slice());const s=o.apply(this,arguments);return void 0!==e&&e.reset(t),s},t.splice=function(){const t=r.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(+arguments[0],t,arguments.length>2?arguments.length-2:0),this)),t},t.unshift=function(){const t=h.apply(this,arguments),e=this.$fastController;return void 0!==e&&e.addSplice(Lt(kt(0,[],arguments.length),this)),t}}(),this.isItemsBindingVolatile=y.isVolatileBinding(t),this.isTemplateBindingVolatile=y.isVolatileBinding(e)}createBehavior(t){return new Ht(t,this.itemsBinding,this.isItemsBindingVolatile,this.templateBinding,this.isTemplateBindingVolatile,this.options)}}function Qt(t,e,s=Pt){return new Dt(t,"function"==typeof e?e:()=>e,s)}function Ut(t){return t?function(e,s,i){return 1===e.nodeType&&e.matches(t)}:function(t,e,s){return 1===t.nodeType}}class qt{constructor(t,e){this.target=t,this.options=e,this.source=null}bind(t){const e=this.options.property;this.shouldUpdate=y.getAccessors(t).some(t=>t.name===e),this.source=t,this.updateTarget(this.computeNodes()),this.shouldUpdate&&this.observe()}unbind(){this.updateTarget(St),this.source=null,this.shouldUpdate&&this.disconnect()}handleEvent(){this.updateTarget(this.computeNodes())}computeNodes(){let t=this.getNodes();return void 0!==this.options.filter&&(t=t.filter(this.options.filter)),t}updateTarget(t){this.source[this.options.property]=t}}class Wt extends qt{constructor(t,e){super(t,e)}observe(){this.target.addEventListener("slotchange",this)}disconnect(){this.target.removeEventListener("slotchange",this)}getNodes(){return this.target.assignedNodes(this.options)}}function zt(t){return"string"==typeof t&&(t={property:t}),new I("fast-slotted",Wt,t)}class _t extends qt{constructor(t,e){super(t,e),this.observer=null}observe(){null===this.observer&&(this.observer=new MutationObserver(this.handleEvent.bind(this))),this.observer.observe(this.target,this.options)}disconnect(){this.observer.disconnect()}getNodes(){return Array.from(this.target.childNodes)}}function Kt(t){return"string"==typeof t?t={property:t,childList:!0}:t.childList=!0,new I("fast-children",_t,t)}export{I as AttachedBehaviorDirective,ot as AttributeDefinition,q as BindingBehavior,U as BindingDirective,_t as ChildrenBehavior,Ct as Controller,h as DOM,$ as Directive,lt as ElementStyles,A as ExecutionContext,Bt as FASTElement,bt as FASTElementDefinition,Z as HTMLView,y as Observable,f as PropertyChangeNotifier,Nt as RefBehavior,Ht as RepeatBehavior,Dt as RepeatDirective,Wt as SlottedBehavior,u as SubscriberSet,tt as ViewTemplate,rt as attr,it as booleanConverter,Kt as children,X as compileTemplate,pt as css,Ot as customElement,k as defaultExecutionContext,Ut as elements,St as emptyArray,st as html,nt as nullableNumberConverter,O as observable,Tt as ref,Qt as repeat,T as setCurrentEvent,zt as slotted,S as volatile,At as when};

@@ -288,3 +288,3 @@ ## API Report File for "@microsoft/fast-element"

define<TType extends Function>(Type: TType, nameOrDef?: string | PartialFASTElementDefinition): TType;
getDefinition<T extends Function>(Type: T): FASTElementDefinition | undefined;
getDefinition<T_1 extends Function>(Type: T_1): FASTElementDefinition | undefined;
};

@@ -291,0 +291,0 @@

@@ -5,3 +5,3 @@ {

"sideEffects": false,
"version": "0.14.0",
"version": "0.15.0",
"author": {

@@ -73,2 +73,3 @@ "name": "Microsoft",

"rollup-plugin-filesize": "^8.0.2",
"rollup-plugin-minify-tagged-css-template": "^0.0.2",
"rollup-plugin-terser": "^5.3.0",

@@ -82,6 +83,6 @@ "rollup-plugin-typescript2": "^0.27.0",

"tslib": "^1.11.1",
"typescript": "^3.7.5",
"typescript": "^3.9.0",
"webpack": "^4.43.0"
},
"gitHead": "0fafba5ac65d004822c4f40c6b2267f8a2f9ea63"
"gitHead": "4780a9b62a37002f005f89059f2dcf389d01bc75"
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc