@microsoft/fast-element 2.0.0-beta.22 → 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 CHANGED
@@ -1,6 +1,27 @@
1
1
  {
2
2
  "name": "@microsoft/fast-element",
3
3
  "entries": [
4
+ {
5
+ "date": "Tue, 28 Mar 2023 22:14:10 GMT",
6
+ "tag": "@microsoft/fast-element_v2.0.0-beta.23",
7
+ "version": "2.0.0-beta.23",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "rob@bluespire.com",
12
+ "package": "@microsoft/fast-element",
13
+ "commit": "1d9c23ecd77a4079126b1156567b906efff66350",
14
+ "comment": "docs: add missing API docs"
15
+ },
16
+ {
17
+ "author": "rob@bluespire.com",
18
+ "package": "@microsoft/fast-element",
19
+ "commit": "032285c2bf0311f9f44cbc875b40696fc8f62857",
20
+ "comment": "fix: correct types for a break in TypeScript 5 legacy decorators"
21
+ }
22
+ ]
23
+ }
24
+ },
4
25
  {
5
26
  "date": "Sat, 11 Mar 2023 00:09:48 GMT",
6
27
  "tag": "@microsoft/fast-element_v2.0.0-beta.22",
package/CHANGELOG.md CHANGED
@@ -1,9 +1,18 @@
1
1
  # Change Log - @microsoft/fast-element
2
2
 
3
- This log was last generated on Sat, 11 Mar 2023 00:09:48 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 28 Mar 2023 22:14:10 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 2.0.0-beta.23
8
+
9
+ Tue, 28 Mar 2023 22:14:10 GMT
10
+
11
+ ### Changes
12
+
13
+ - docs: add missing API docs (rob@bluespire.com)
14
+ - fix: correct types for a break in TypeScript 5 legacy decorators (rob@bluespire.com)
15
+
7
16
  ## 2.0.0-beta.22
8
17
 
9
18
  Sat, 11 Mar 2023 00:09:48 GMT
@@ -2,13 +2,26 @@ import type { Expression } from "../observation/observable.js";
2
2
  import type { Subscriber } from "../observation/notifier.js";
3
3
  import type { DOMPolicy } from "../dom.js";
4
4
  import { Binding } from "./binding.js";
5
+ /**
6
+ * The gateway to signal APIs.
7
+ * @public
8
+ */
5
9
  export declare const Signal: Readonly<{
10
+ /**
11
+ * Subscribes to a signal.
12
+ * @param signal The signal to subscribe to.
13
+ * @param subscriber The subscriber.
14
+ */
6
15
  subscribe(signal: string, subscriber: Subscriber): void;
16
+ /**
17
+ * Unsubscribes from the signal.
18
+ * @param signal The signal to unsubscribe from.
19
+ * @param subscriber The subscriber.
20
+ */
7
21
  unsubscribe(signal: string, subscriber: Subscriber): void;
8
22
  /**
9
- * Sends the specified signal to signaled bindings.
23
+ * Sends the specified signal to subscribers.
10
24
  * @param signal - The signal to send.
11
- * @public
12
25
  */
13
26
  send(signal: string): void;
14
27
  }>;
@@ -21,6 +21,9 @@ export interface TwoWaySettings {
21
21
  */
22
22
  determineChangeEvent(bindingSource: BindingDirective, target: HTMLElement): string;
23
23
  }
24
+ /**
25
+ * Enables configuring two-way binding settings.
26
+ */
24
27
  export declare const TwoWaySettings: Readonly<{
25
28
  /**
26
29
  * Configures two-way binding.
@@ -1,4 +1,4 @@
1
- import { Constructable } from "./interfaces.js";
1
+ import { Constructable, ParameterDecorator } from "./interfaces.js";
2
2
  /**
3
3
  * A Context object defines an optional initial value for a Context, as well as a name identifier for debugging purposes.
4
4
  * @public
@@ -8,6 +8,7 @@ export * from "./observation/update-queue.js";
8
8
  export * from "./binding/binding.js";
9
9
  export * from "./binding/one-way.js";
10
10
  export * from "./binding/one-time.js";
11
+ export * from "./binding/normalize.js";
11
12
  export * from "./styles/element-styles.js";
12
13
  export * from "./styles/css.js";
13
14
  export * from "./styles/css-directive.js";
@@ -51,6 +51,11 @@ export declare type TrustedTypesPolicy = {
51
51
  export declare type Mutable<T> = {
52
52
  -readonly [P in keyof T]: T[P];
53
53
  };
54
+ /**
55
+ * A temporary type as a workaround for the TS compiler's erroneous built-in ParameterDecorator type.
56
+ * @public
57
+ */
58
+ export declare type ParameterDecorator = (target: Object, propertyKey: string | undefined, parameterIndex: number) => void;
54
59
  /**
55
60
  * The FAST global.
56
61
  * @public
@@ -2,7 +2,16 @@ import { isString } from "../interfaces.js";
2
2
  import { makeSerializationNoop } from "../platform.js";
3
3
  import { Binding } from "./binding.js";
4
4
  const subscribers = Object.create(null);
5
+ /**
6
+ * The gateway to signal APIs.
7
+ * @public
8
+ */
5
9
  export const Signal = Object.freeze({
10
+ /**
11
+ * Subscribes to a signal.
12
+ * @param signal The signal to subscribe to.
13
+ * @param subscriber The subscriber.
14
+ */
6
15
  subscribe(signal, subscriber) {
7
16
  const found = subscribers[signal];
8
17
  if (found) {
@@ -14,6 +23,11 @@ export const Signal = Object.freeze({
14
23
  subscribers[signal] = subscriber;
15
24
  }
16
25
  },
26
+ /**
27
+ * Unsubscribes from the signal.
28
+ * @param signal The signal to unsubscribe from.
29
+ * @param subscriber The subscriber.
30
+ */
17
31
  unsubscribe(signal, subscriber) {
18
32
  const found = subscribers[signal];
19
33
  if (found && found instanceof Set) {
@@ -24,9 +38,8 @@ export const Signal = Object.freeze({
24
38
  }
25
39
  },
26
40
  /**
27
- * Sends the specified signal to signaled bindings.
41
+ * Sends the specified signal to subscribers.
28
42
  * @param signal - The signal to send.
29
- * @public
30
43
  */
31
44
  send(signal) {
32
45
  const found = subscribers[signal];
@@ -10,6 +10,9 @@ let twoWaySettings = {
10
10
  return "change";
11
11
  },
12
12
  };
13
+ /**
14
+ * Enables configuring two-way binding settings.
15
+ */
13
16
  export const TwoWaySettings = Object.freeze({
14
17
  /**
15
18
  * Configures two-way binding.
package/dist/esm/index.js CHANGED
@@ -10,6 +10,7 @@ export * from "./observation/update-queue.js";
10
10
  export * from "./binding/binding.js";
11
11
  export * from "./binding/one-way.js";
12
12
  export * from "./binding/one-time.js";
13
+ export * from "./binding/normalize.js";
13
14
  // Styles
14
15
  export * from "./styles/element-styles.js";
15
16
  export * from "./styles/css.js";
@@ -12645,6 +12645,128 @@
12645
12645
  },
12646
12646
  "implementsTokenRanges": []
12647
12647
  },
12648
+ {
12649
+ "kind": "Function",
12650
+ "canonicalReference": "@microsoft/fast-element!normalizeBinding:function(1)",
12651
+ "docComment": "/**\n * Normalizes the input value into a binding.\n *\n * @param value - The value to create the default binding for.\n *\n * @returns A binding configuration for the provided value.\n *\n * @public\n */\n",
12652
+ "excerptTokens": [
12653
+ {
12654
+ "kind": "Content",
12655
+ "text": "export declare function normalizeBinding<TSource = "
12656
+ },
12657
+ {
12658
+ "kind": "Content",
12659
+ "text": "any"
12660
+ },
12661
+ {
12662
+ "kind": "Content",
12663
+ "text": ", TReturn = "
12664
+ },
12665
+ {
12666
+ "kind": "Content",
12667
+ "text": "any"
12668
+ },
12669
+ {
12670
+ "kind": "Content",
12671
+ "text": ", TParent = "
12672
+ },
12673
+ {
12674
+ "kind": "Content",
12675
+ "text": "any"
12676
+ },
12677
+ {
12678
+ "kind": "Content",
12679
+ "text": ">(value: "
12680
+ },
12681
+ {
12682
+ "kind": "Reference",
12683
+ "text": "Expression",
12684
+ "canonicalReference": "@microsoft/fast-element!Expression:type"
12685
+ },
12686
+ {
12687
+ "kind": "Content",
12688
+ "text": "<TSource, TReturn, TParent> | "
12689
+ },
12690
+ {
12691
+ "kind": "Reference",
12692
+ "text": "Binding",
12693
+ "canonicalReference": "@microsoft/fast-element!Binding:class"
12694
+ },
12695
+ {
12696
+ "kind": "Content",
12697
+ "text": "<TSource, TReturn, TParent> | {}"
12698
+ },
12699
+ {
12700
+ "kind": "Content",
12701
+ "text": "): "
12702
+ },
12703
+ {
12704
+ "kind": "Reference",
12705
+ "text": "Binding",
12706
+ "canonicalReference": "@microsoft/fast-element!Binding:class"
12707
+ },
12708
+ {
12709
+ "kind": "Content",
12710
+ "text": "<TSource, TReturn, TParent>"
12711
+ },
12712
+ {
12713
+ "kind": "Content",
12714
+ "text": ";"
12715
+ }
12716
+ ],
12717
+ "returnTypeTokenRange": {
12718
+ "startIndex": 12,
12719
+ "endIndex": 14
12720
+ },
12721
+ "releaseTag": "Public",
12722
+ "overloadIndex": 1,
12723
+ "parameters": [
12724
+ {
12725
+ "parameterName": "value",
12726
+ "parameterTypeTokenRange": {
12727
+ "startIndex": 7,
12728
+ "endIndex": 11
12729
+ },
12730
+ "isOptional": false
12731
+ }
12732
+ ],
12733
+ "typeParameters": [
12734
+ {
12735
+ "typeParameterName": "TSource",
12736
+ "constraintTokenRange": {
12737
+ "startIndex": 0,
12738
+ "endIndex": 0
12739
+ },
12740
+ "defaultTypeTokenRange": {
12741
+ "startIndex": 1,
12742
+ "endIndex": 2
12743
+ }
12744
+ },
12745
+ {
12746
+ "typeParameterName": "TReturn",
12747
+ "constraintTokenRange": {
12748
+ "startIndex": 0,
12749
+ "endIndex": 0
12750
+ },
12751
+ "defaultTypeTokenRange": {
12752
+ "startIndex": 3,
12753
+ "endIndex": 4
12754
+ }
12755
+ },
12756
+ {
12757
+ "typeParameterName": "TParent",
12758
+ "constraintTokenRange": {
12759
+ "startIndex": 0,
12760
+ "endIndex": 0
12761
+ },
12762
+ "defaultTypeTokenRange": {
12763
+ "startIndex": 5,
12764
+ "endIndex": 6
12765
+ }
12766
+ }
12767
+ ],
12768
+ "name": "normalizeBinding"
12769
+ },
12648
12770
  {
12649
12771
  "kind": "Interface",
12650
12772
  "canonicalReference": "@microsoft/fast-element!Notifier:interface",
@@ -1875,6 +1875,14 @@ export declare abstract class NodeObservationDirective<T extends NodeBehaviorOpt
1875
1875
  protected abstract getNodes(target: any): Node[];
1876
1876
  }
1877
1877
 
1878
+ /**
1879
+ * Normalizes the input value into a binding.
1880
+ * @param value - The value to create the default binding for.
1881
+ * @returns A binding configuration for the provided value.
1882
+ * @public
1883
+ */
1884
+ export declare function normalizeBinding<TSource = any, TReturn = any, TParent = any>(value: Expression<TSource, TReturn, TParent> | Binding<TSource, TReturn, TParent> | {}): Binding<TSource, TReturn, TParent>;
1885
+
1878
1886
  /**
1879
1887
  * Provides change notifications for an observed subject.
1880
1888
  * @public
@@ -1890,6 +1890,20 @@ function oneTime(expression, policy) {
1890
1890
  return new OneTimeBinding(expression, policy);
1891
1891
  }
1892
1892
 
1893
+ /**
1894
+ * Normalizes the input value into a binding.
1895
+ * @param value - The value to create the default binding for.
1896
+ * @returns A binding configuration for the provided value.
1897
+ * @public
1898
+ */
1899
+ function normalizeBinding(value) {
1900
+ return isFunction(value)
1901
+ ? oneWay(value)
1902
+ : value instanceof Binding
1903
+ ? value
1904
+ : oneTime(() => value);
1905
+ }
1906
+
1893
1907
  let DefaultStyleStrategy;
1894
1908
  function reduceStyles(styles) {
1895
1909
  return styles
@@ -3276,20 +3290,6 @@ function when(condition, templateOrTemplateBinding) {
3276
3290
  return (source, context) => dataBinding(source, context) ? templateBinding(source, context) : null;
3277
3291
  }
3278
3292
 
3279
- /**
3280
- * Normalizes the input value into a binding.
3281
- * @param value - The value to create the default binding for.
3282
- * @returns A binding configuration for the provided value.
3283
- * @public
3284
- */
3285
- function normalizeBinding(value) {
3286
- return isFunction(value)
3287
- ? oneWay(value)
3288
- : value instanceof Binding
3289
- ? value
3290
- : oneTime(() => value);
3291
- }
3292
-
3293
3293
  const defaultRepeatOptions = Object.freeze({
3294
3294
  positioning: false,
3295
3295
  recycle: true,
@@ -4648,4 +4648,4 @@ function customElement(nameOrDef) {
4648
4648
 
4649
4649
  DOM.setPolicy(DOMPolicy.create());
4650
4650
 
4651
- export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };
4651
+ export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };
@@ -1 +1 @@
1
- void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",{value:Object.create(null),configurable:!1,enumerable:!1,writable:!1});const e=globalThis.FAST,t={1101:"Must call enableArrayObservation before observing arrays.",1201:"The DOM Policy can only be set once.",1202:"To bind innerHTML, you must use a TrustedTypesPolicy.",1203:"View=>Model update skipped. To use twoWay binding, the target property must be observable.",1204:"No host element is present. Cannot bind host with ${name}.",1205:"The requested binding behavior is not supported by the binding engine.",1206:"Calling html`` as a normal function invalidates the security guarantees provided by FAST.",1207:"The DOM Policy for an HTML template can only be set once.",1208:"The DOM Policy cannot be set after a template is compiled.",1209:"'${aspectName}' on '${tagName}' is blocked by the current DOMPolicy.",1401:"Missing FASTElement definition.",1501:"No registration for Context/Interface '${name}'.",1502:"Dependency injection resolver for '${key}' returned a null factory.",1503:"Invalid dependency injection resolver strategy specified '${strategy}'.",1504:"Unable to autoregister dependency.",1505:"Unable to resolve dependency injection key '${key}'.",1506:"'${name}' is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.",1507:"Attempted to jitRegister something that is not a constructor '${value}'. Did you forget to register this dependency?",1508:"Attempted to jitRegister an intrinsic type '${value}'. Did you forget to add @inject(Key)?",1509:"Attempted to jitRegister an interface '${value}'.",1510:"A valid resolver was not returned from the register method.",1511:"Key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?",1512:"'${key}' not registered. Did you forget to add @singleton()?",1513:"Cyclic dependency found '${name}'.",1514:"Injected properties that are updated on changes to DOM connectivity require the target object to be an instance of FASTElement."},s=/(\$\{\w+?})/g,n=/\$\{(\w+?)}/g,i=Object.freeze({});function r(e,t){return e.split(s).map((e=>{var s;const i=e.replace(n,"$1");return String(null!==(s=t[i])&&void 0!==s?s:e)})).join("")}let o;Object.assign(e,{addMessages(e){Object.assign(t,e)},warn(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Warning";console.warn(r(o,s))},error(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Error";return new Error(r(o,s))}});try{if(document.currentScript)o=document.currentScript.getAttribute("fast-kernel");else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute("fast-kernel")}}catch(e){o="isolate"}let l;switch(o){case"share":l=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":l=Object.freeze({updateQueue:1.2,observable:2.2,contextEvent:3.2,elementRegistry:4.2});break;default:const e=`-${Math.random().toString(36).substring(2,8)}`;l=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const a=e=>"function"==typeof e,c=e=>"string"==typeof e,h=()=>{};!function(){if("undefined"==typeof globalThis)if("undefined"!=typeof global)global.globalThis=global;else if("undefined"!=typeof self)self.globalThis=self;else if("undefined"!=typeof window)window.globalThis=window;else{const e=new Function("return this")();e.globalThis=e}}();const d={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},d));const u=globalThis.FAST;if(void 0===u.getById){const e=Object.create(null);Reflect.defineProperty(u,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},d))}void 0===u.error&&Object.assign(u,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const f=Object.freeze([]);function p(){const e=new Map;return Object.freeze({register:t=>!e.has(t.type)&&(e.set(t.type,t),!0),getByType:t=>e.get(t),getForInstance(t){if(null!=t)return e.get(t.constructor)}})}function g(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let n=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==n;)s=e.get(n),n=Reflect.getPrototypeOf(n);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}function b(e){e.prototype.toJSON=h}const v=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,m=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let w=Object.freeze({createHTML:e=>m.createHTML(e),protect:(e,t,s,n)=>n});const C=w,x=Object.freeze({get policy(){return w},setPolicy(e){if(w!==C)throw u.error(1201);w=e},setAttribute(e,t,s){null==s?e.removeAttribute(t):e.setAttribute(t,s)},setBooleanAttribute(e,t,s){s?e.setAttribute(t,""):e.removeAttribute(t)}});function S(e,t,s,n){return(e,t,s,...i)=>{c(s)&&(s=s.replace("javascript:","")),n(e,t,s,...i)}}function T(e,t,s,n){throw u.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:T,onauxclick:T,onbeforeinput:T,onbeforematch:T,onblur:T,oncancel:T,oncanplay:T,oncanplaythrough:T,onchange:T,onclick:T,onclose:T,oncontextlost:T,oncontextmenu:T,oncontextrestored:T,oncopy:T,oncuechange:T,oncut:T,ondblclick:T,ondrag:T,ondragend:T,ondragenter:T,ondragleave:T,ondragover:T,ondragstart:T,ondrop:T,ondurationchange:T,onemptied:T,onended:T,onerror:T,onfocus:T,onformdata:T,oninput:T,oninvalid:T,onkeydown:T,onkeypress:T,onkeyup:T,onload:T,onloadeddata:T,onloadedmetadata:T,onloadstart:T,onmousedown:T,onmouseenter:T,onmouseleave:T,onmousemove:T,onmouseout:T,onmouseover:T,onmouseup:T,onpaste:T,onpause:T,onplay:T,onplaying:T,onprogress:T,onratechange:T,onreset:T,onresize:T,onscroll:T,onsecuritypolicyviolation:T,onseeked:T,onseeking:T,onselect:T,onslotchange:T,onstalled:T,onsubmit:T,onsuspend:T,ontimeupdate:T,ontoggle:T,onvolumechange:T,onwaiting:T,onwebkitanimationend:T,onwebkitanimationiteration:T,onwebkitanimationstart:T,onwebkittransitionend:T,onwheel:T},A={elements:{a:{[v.attribute]:{href:S},[v.property]:{href:S}},area:{[v.attribute]:{href:S},[v.property]:{href:S}},button:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},embed:{[v.attribute]:{src:T},[v.property]:{src:T}},form:{[v.attribute]:{action:S},[v.property]:{action:S}},frame:{[v.attribute]:{src:S},[v.property]:{src:S}},iframe:{[v.attribute]:{src:S},[v.property]:{src:S,srcdoc:T}},input:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},link:{[v.attribute]:{href:T},[v.property]:{href:T}},object:{[v.attribute]:{codebase:T,data:T},[v.property]:{codeBase:T,data:T}},script:{[v.attribute]:{src:T,text:T},[v.property]:{src:T,text:T,innerText:T,textContent:T}},style:{[v.property]:{innerText:T,textContent:T}}},aspects:{[v.attribute]:Object.assign({},O),[v.property]:Object.assign({innerHTML:T},O),[v.event]:Object.assign({},O)}};function k(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=r;break;default:s[n]=i}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function B(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=k(r,{});break;default:s[n]=k(i,r)}}for(const t in e)t in s||(s[t]=k(e[t],{}));return Object.freeze(s)}function j(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=B(i,{});break;default:s[n]=B(i,r)}}for(const t in e)t in s||(s[t]=B(e[t],{}));return Object.freeze(s)}function $(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const N=Object.freeze({create(e={}){var t,s;const n=null!==(t=e.trustedType)&&void 0!==t?t:function(){const e=e=>e;return globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:e}):{createHTML:e}}(),i=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=A,Object.freeze({elements:r.elements?j(r.elements,o.elements):o.elements,aspects:r.aspects?B(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>n.createHTML(e),protect(e,t,s,n){var r;const o=(null!=e?e:"").toLowerCase(),l=i.elements[o];if(l){const i=$(l,e,t,s,n);if(i)return i}return null!==(r=$(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),M=u.getById(l.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let n=!0;function i(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!n)throw e.length=0,s;t.push(s),setTimeout(i,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,n=e.length-t;s<n;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function l(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>n=e})}));class E{constructor(e,t){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.subject=e,this.sub1=t}has(e){return void 0===this.spillover?this.sub1===e||this.sub2===e:-1!==this.spillover.indexOf(e)}subscribe(e){const t=this.spillover;if(void 0===t){if(this.has(e))return;if(void 0===this.sub1)return void(this.sub1=e);if(void 0===this.sub2)return void(this.sub2=e);this.spillover=[this.sub1,this.sub2,e],this.sub1=void 0,this.sub2=void 0}else{-1===t.indexOf(e)&&t.push(e)}}unsubscribe(e){const t=this.spillover;if(void 0===t)this.sub1===e?this.sub1=void 0:this.sub2===e&&(this.sub2=void 0);else{const s=t.indexOf(e);-1!==s&&t.splice(s,1)}}notify(e){const t=this.spillover,s=this.subject;if(void 0===t){const t=this.sub1,n=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==n&&n.handleChange(s,e)}else for(let n=0,i=t.length;n<i;++n)t[n].handleChange(s,e)}}class V{constructor(e){this.subscribers={},this.subjectSubscribers=null,this.subject=e}notify(e){var t,s;null===(t=this.subscribers[e])||void 0===t||t.notify(e),null===(s=this.subjectSubscribers)||void 0===s||s.notify(e)}subscribe(e,t){var s,n;let i;i=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new E(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new E(this.subject),i.subscribe(e)}unsubscribe(e,t){var s,n;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(n=this.subjectSubscribers)||void 0===n||n.unsubscribe(e)}}const I=Object.freeze({unknown:void 0,coupled:1}),L=u.getById(l.observable,(()=>{const e=M.enqueue,t=/(:|&&|\|\||if)/,s=new WeakMap;let n,i=e=>{throw u.error(1101)};function r(e){var t;let n=null!==(t=e.$fastController)&&void 0!==t?t:s.get(e);return void 0===n&&(Array.isArray(e)?n=i(e):s.set(e,n=new V(e))),n}const o=g();class l{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==n&&n.watch(e,this.name),e[this.field]}setValue(e,t){const s=this.field,n=e[s];if(n!==t){e[s]=t;const i=e[this.callback];a(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class h extends E{constructor(e,t,s=!1){super(e,t),this.expression=e,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.isAsync=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}setMode(e){this.isAsync=this.needsQueue=e}bind(e){this.controller=e;const t=this.observe(e.source,e.context);return!e.isBound&&this.requiresUnbind(e)&&e.onUnbind(this),t}requiresUnbind(e){return e.sourceLifetime!==I.coupled||this.first!==this.last||this.first.propertySource!==e.source}unbind(e){this.dispose()}observe(e,t){this.needsRefresh&&null!==this.last&&this.dispose();const s=n;let i;n=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{n=s}return i}disconnect(){this.dispose()}dispose(){if(null!==this.last){let e=this.first;for(;void 0!==e;)e.notifier.unsubscribe(this,e.propertyName),e=e.next;this.last=null,this.needsRefresh=this.needsQueue=this.isAsync}}watch(e,t){const s=this.last,i=r(e),o=null===s?this.first:{};if(o.propertySource=e,o.propertyName=t,o.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;n=void 0,t=s.propertySource[s.propertyName],n=this,e===t&&(this.needsRefresh=!0)}s.next=o}this.last=o}handleChange(){this.needsQueue?(this.needsQueue=!1,e(this)):this.isAsync||this.call()}call(){null!==this.last&&(this.needsQueue=this.isAsync,this.notify(this))}*records(){let e=this.first;for(;void 0!==e;)yield e,e=e.next}}return b(h),Object.freeze({setArrayObserverFactory(e){i=e},getNotifier:r,track(e,t){n&&n.watch(e,t)},trackVolatile(){n&&(n.needsRefresh=!0)},notify(e,t){r(e).notify(t)},defineProperty(e,t){c(t)&&(t=new l(t)),o(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:o,binding(e,t,s=this.isVolatileBinding(e)){return new h(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function z(e,t){L.defineProperty(e,t)}function F(e,t,s){return Object.assign({},s,{get(){return L.trackVolatile(),s.get.apply(this)}})}const P=u.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),_=Object.freeze({default:{index:0,length:0,get event(){return _.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>P.get(),setEvent(e){P.set(e)}});class R{constructor(e,t,s){this.index=e,this.removed=t,this.addedCount=s}adjustTo(e){let t=this.index;const s=e.length;return t>s?t=s-this.addedCount:t<0&&(t=s+this.removed.length+t-this.addedCount),this.index=t<0?0:t,this}}const D=Object.freeze({reset:1,splice:2,optimized:3}),H=new R(0,f,0);H.reset=!0;const U=[H];function q(e,t,s,n,i,r){let o=0,l=0;const a=Math.min(s-t,r-i);if(0===t&&0===i&&(o=function(e,t,s){for(let n=0;n<s;++n)if(e[n]!==t[n])return n;return s}(e,n,a)),s===e.length&&r===n.length&&(l=function(e,t,s){let n=e.length,i=t.length,r=0;for(;r<s&&e[--n]===t[--i];)r++;return r}(e,n,a-o)),i+=o,r-=l,(s-=l)-(t+=o)==0&&r-i==0)return f;if(t===s){const e=new R(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new R(t,[],s-t)];const c=function(e){let t=e.length-1,s=e[0].length-1,n=e[t][s];const i=[];for(;t>0||s>0;){if(0===t){i.push(2),s--;continue}if(0===s){i.push(3),t--;continue}const r=e[t-1][s-1],o=e[t-1][s],l=e[t][s-1];let a;a=o<l?o<r?o:r:l<r?l:r,a===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):a===o?(i.push(3),t--,n=o):(i.push(2),s--,n=l)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,l=s-t+1,a=new Array(o);let c,h;for(let e=0;e<o;++e)a[e]=new Array(l),a[e][0]=e;for(let e=0;e<l;++e)a[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<l;++r)e[t+r-1]===n[i+s-1]?a[s][r]=a[s-1][r-1]:(c=a[s-1][r]+1,h=a[s][r-1]+1,a[s][r]=c<h?c:h);return a}(e,t,s,n,i,r)),h=[];let d,u=t,p=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==d&&(h.push(d),d=void 0),u++,p++;break;case 1:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++,d.removed.push(n[p]),p++;break;case 2:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=new R(u,[],0)),d.removed.push(n[p]),p++}return void 0!==d&&h.push(d),h}function Q(e,t){let s=!1,n=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=n,s)continue;const h=(i=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<i?-1:r===o||l===i?0:i<o?r<l?r-o:l-o:l<r?l-i:r-i);if(h>=0){t.splice(a,1),a--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const i=e.removed.length+c.removed.length-h;if(e.addedCount||i){let t=c.removed;if(e.index<c.index){const s=e.removed.slice(0,c.index-e.index);s.push(...t),t=s}if(e.index+e.removed.length>c.index+c.addedCount){const s=e.removed.slice(c.index+c.addedCount-e.index);t.push(...s)}e.removed=t,c.index<e.index&&(e.index=c.index)}else s=!0}else if(e.index<c.index){s=!0,t.splice(a,0,e),a++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,l;s||t.push(e)}let W=Object.freeze({support:D.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?f:s.length>1?function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)Q(t[e],n);for(let t=0,i=n.length;t<i;++t){const i=n[t];1!==i.addedCount||1!==i.removed.length?s=s.concat(q(e,i.index,i.index+i.addedCount,i.removed,0,i.removed.length)):i.removed[0]!==e[i.index]&&s.push(i)}return s}(t,s):s:U,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(0,[r],0)),r},sort(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(+n[0],i,n.length>2?n.length-2:0).adjustTo(e)),i},unshift(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(0,[],n.length).adjustTo(e)),i}});const J=Object.freeze({reset:U,setDefaultStrategy(e){W=e}});function K(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class G extends E{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this.call=this.flush,K(e,"$fastController",this)}get strategy(){return this._strategy}set strategy(e){this._strategy=e}get lengthObserver(){let e=this._lengthObserver;if(void 0===e){const t=this.subject;this._lengthObserver=e={length:t.length,handleChange(){this.length!==t.length&&(this.length=t.length,L.notify(e,"length"))}},this.subscribe(e)}return e}subscribe(e){this.flush(),super.subscribe(e)}addSplice(e){void 0===this.splices?this.splices=[e]:this.splices.push(e),this.enqueue()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.oldCollection;void 0===t&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0,this.notify((null!==(e=this._strategy)&&void 0!==e?e:W).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,M.enqueue(this))}}let X=!1;const Y=Object.freeze({enable(){if(X)return;X=!0,L.setArrayObserverFactory((e=>new G(e)));const e=Array.prototype;e.$fastPatch||(K(e,"$fastPatch",1),[e.pop,e.push,e.reverse,e.shift,e.sort,e.splice,e.unshift].forEach((t=>{e[t.name]=function(...e){var s;const n=this.$fastController;return void 0===n?t.apply(this,e):(null!==(s=n.strategy)&&void 0!==s?s:W)[t.name](this,n,t,e)}})))}});function Z(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(Y.enable(),t=L.getNotifier(e)),L.track(t.lengthObserver,"length"),e.length}class ee{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class te extends ee{createObserver(e){return L.binding(this.evaluate,e,this.isVolatile)}}function se(e,t,s=L.isVolatileBinding(e)){return new te(e,t,s)}function ne(e,t){const s=new te(e);return s.options=t,s}class ie extends ee{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function re(e,t){return new ie(e,t)}let oe;function le(e){return e.map((e=>e instanceof ae?le(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}b(ie);class ae{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ae?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(oe),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(le(this.styles)),this}static setDefaultStrategy(e){oe=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ae(e):e instanceof ae?e:new ae([e])}}ae.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const ce=p(),he=Object.freeze({getForInstance:ce.getForInstance,getByType:ce.getByType,define:e=>(ce.register({type:e}),e)});function de(){return function(e){he.define(e)}}function ue(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class fe{constructor(e,t){this.dataBinding=e,this.targetAspect=t}createCSS(e){return e(this),`var(${this.targetAspect})`}addedCallback(e){var t;const s=e.source;if(!s.$cssBindings){s.$cssBindings=new Map;const e=s.setAttribute;s.setAttribute=(t,n)=>{e.call(s,t,n),"style"===t&&s.$cssBindings.forEach(((e,t)=>ue(t,e.controller,e.observer)))}}const n=null!==(t=e[this.targetAspect])&&void 0!==t?t:e[this.targetAspect]=this.dataBinding.createObserver(this,this);n.controller=e,e.source.$cssBindings.set(this,{controller:e,observer:n})}connectedCallback(e){ue(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){ue(this,t.controller,t)}}he.define(fe);const pe=`${Math.random().toString(36).substring(2,8)}`;let ge=0;const be=()=>`--v${pe}${++ge}`;function ve(e,t){const s=[];let n="";const i=[],r=e=>{i.push(e)};for(let i=0,o=e.length-1;i<o;++i){n+=e[i];let o=t[i];a(o)?o=new fe(se(o),be()).createCSS(r):o instanceof ee?o=new fe(o,be()).createCSS(r):void 0!==he.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ae||o instanceof CSSStyleSheet?(""!==n.trim()&&(s.push(n),n=""),s.push(o)):n+=o}return n+=e[e.length-1],""!==n.trim()&&s.push(n),{styles:s,behaviors:i}}const ye=(e,...t)=>{const{styles:s,behaviors:n}=ve(e,t),i=new ae(s);return n.length?i.withBehaviors(...n):i};class me{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(c(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ae(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)}}he.define(me),ye.partial=(e,...t)=>{const{styles:s,behaviors:n}=ve(e,t);return new me(s,n)};const we=`fast-${Math.random().toString(36).substring(2,8)}`,Ce=`${we}{`,xe=`}${we}`,Se=xe.length;let Te=0;const Oe=()=>`${we}-${++Te}`,Ae=Object.freeze({interpolation:e=>`${Ce}${e}${xe}`,attribute:e=>`${Oe()}="${Ce}${e}${xe}"`,comment:e=>`\x3c!--${Ce}${e}${xe}--\x3e`}),ke=Object.freeze({parse(e,t){const s=e.split(Ce);if(1===s.length)return null;const n=[];for(let e=0,i=s.length;e<i;++e){const i=s[e],r=i.indexOf(xe);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Se)}""!==o&&n.push(o)}return n}}),Be=p(),je=Object.freeze({getForInstance:Be.getForInstance,getByType:Be.getByType,define:(e,t)=>((t=t||{}).type=e,Be.register(t),e),assignAspect(e,t){if(t)switch(e.sourceAspect=t,t[0]){case":":e.targetAspect=t.substring(1),e.aspectType="classList"===e.targetAspect?v.tokenList:v.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=v.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=v.event;break;default:e.targetAspect=t,e.aspectType=v.attribute}else e.aspectType=v.content}});function $e(e){return function(t){je.define(t,e)}}class Ne{constructor(e){this.options=e}createHTML(e){return Ae.attribute(e(this))}createBehavior(){return this}}b(Ne);const Me={[v.attribute]:x.setAttribute,[v.booleanAttribute]:x.setBooleanAttribute,[v.property]:(e,t,s)=>e[t]=s,[v.content]:function(e,t,s,n){if(null==s&&(s=""),s.create){e.textContent="";let t=e.$fastView;void 0===t?t=s.create():e.$fastTemplate!==s&&(t.isComposed&&(t.remove(),t.unbind()),t=s.create()),t.isComposed?t.needsBindOnly&&(t.needsBindOnly=!1,t.bind(n.source,n.context)):(t.isComposed=!0,t.bind(n.source,n.context),t.insertBefore(e),e.$fastView=t,e.$fastTemplate=s)}else{const t=e.$fastView;void 0!==t&&t.isComposed&&(t.isComposed=!1,t.remove(),t.needsBindOnly?t.needsBindOnly=!1:t.unbind()),e.textContent=s}},[v.tokenList]:function(e,t,s){var n;const i=`${this.id}-t`,r=null!==(n=e[i])&&void 0!==n?n:e[i]={v:0,cv:Object.create(null)},o=r.cv;let l=r.v;const a=e[t];if(null!=s&&s.length){const e=s.split(/\s+/);for(let t=0,s=e.length;t<s;++t){const s=e[t];""!==s&&(o[s]=l,a.add(s))}}if(r.v=l+1,0!==l){l-=1;for(const e in o)o[e]===l&&a.remove(e)}},[v.event]:()=>{}};class Ee{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=v.content}createHTML(e){return Ae.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Me[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw u.error(1205);this.data=`${this.id}-d`,this.updateTarget=s.protect(this.targetTagName,this.aspectType,this.targetAspect,t)}return this}bind(e){var t;const s=e.targets[this.targetNodeId];switch(this.aspectType){case v.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case v.content:e.onUnbind(this);default:const n=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);n.target=s,n.controller=e,this.updateTarget(s,this.targetAspect,n.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){_.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);_.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,n=t.controller;this.updateTarget(s,this.targetAspect,t.bind(n),n)}}function Ve(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;)n=i.nextSibling,s.removeChild(i),i=n;s.removeChild(t)}je.define(Ee,{aspected:!0});class Ie{constructor(e,t,s){this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=I.unknown,this.context=this,this.index=0,this.length=0,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return _.getEvent()}get isEven(){return this.index%2==0}get isOdd(){return this.index%2!=0}get isFirst(){return 0===this.index}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}eventDetail(){return this.event.detail}eventTarget(){return this.event.target}appendTo(e){e.appendChild(this.fragment)}insertBefore(e){if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,n=this.firstChild;for(;n!==t;)s=n.nextSibling,e.appendChild(n),n=s;e.appendChild(t)}dispose(){Ve(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}bind(e,t=this){if(this.source===e)return;let s=this.behaviors;if(null===s){this.source=e,this.context=t,this.behaviors=s=new Array(this.factories.length);const n=this.factories;for(let e=0,t=n.length;e<t;++e){const t=n[e].createBehavior();t.bind(this),s[e]=t}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=s.length;e<t;++e)s[e].bind(this)}this.isBound=!0}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}static disposeContiguousBatch(e){if(0!==e.length){Ve(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}b(Ie),L.defineProperty(Ie.prototype,"index"),L.defineProperty(Ie.prototype,"length");const Le=(e,t)=>`${e}.${t}`,ze={},Fe={index:0,node:null};function Pe(e){e.startsWith("fast-")||u.warn(1204,{name:e})}const _e=new Proxy(document.createElement("div"),{get(e,t){Pe(t);const s=Reflect.get(e,t);return a(s)?s.bind(e):s},set:(e,t,s)=>(Pe(t),Reflect.set(e,t,s))});class Re{constructor(e,t,s){this.fragment=e,this.directives=t,this.policy=s,this.proto=null,this.nodeIds=new Set,this.descriptors={},this.factories=[]}addFactory(e,t,s,n,i){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,n)),e.id=null!==(r=e.id)&&void 0!==r?r:Oe(),e.targetNodeId=s,e.targetTagName=i,e.policy=null!==(o=e.policy)&&void 0!==o?o:this.policy,this.factories.push(e)}freeze(){return this.proto=Object.create(null,this.descriptors),this}addTargetDescriptor(e,t,s){const n=this.descriptors;if("r"===t||"h"===t||n[t])return;if(!n[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),n=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,n)}let i=ze[t];if(!i){const n=`_${t}`;ze[t]=i={get(){var t;return null!==(t=this[n])&&void 0!==t?t:this[n]=this[e].childNodes[s]}}}n[t]=i}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:_e;for(const e of this.nodeIds)s[e];return new Ie(t,this.factories,s)}}function De(e,t,s,n,i,r=!1){const o=s.attributes,l=e.directives;for(let a=0,c=o.length;a<c;++a){const h=o[a],d=h.value,u=ke.parse(d,l);let f=null;null===u?r&&(f=new Ee(re((()=>d),e.policy)),je.assignAspect(f,h.name)):f=qe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,n,i,s.tagName))}}function He(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=Ue(e,s,i,n);i=t.node,n=t.index}}function Ue(e,t,s,n){const i=Le(t,n);switch(s.nodeType){case 1:De(e,t,s,i,n),He(e,s,i);break;case 3:return function(e,t,s,n,i){const r=ke.parse(t.textContent,e.directives);if(null===r)return Fe.node=t.nextSibling,Fe.index=i+1,Fe;let o,l=o=t;for(let t=0,a=r.length;t<a;++t){const a=r[t];0!==t&&(i++,n=Le(s,i),o=l.parentNode.insertBefore(document.createTextNode(""),l.nextSibling)),c(a)?o.textContent=a:(o.textContent=" ",je.assignAspect(a),e.addFactory(a,s,n,i,null)),l=o}return Fe.index=i+1,Fe.node=l.nextSibling,Fe}(e,s,t,i,n);case 8:const r=ke.parse(s.data,e.directives);null!==r&&e.addFactory(qe.aggregate(r),t,i,n,null)}return Fe.index=n+1,Fe.node=s.nextSibling,Fe}const qe={compile(e,t,s=x.policy){let n;if(c(e)){n=document.createElement("TEMPLATE"),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&"TEMPLATE"===t.tagName&&(n=t)}else n=e;const i=document.adoptNode(n.content),r=new Re(i,t,s);var o,l;return De(r,"",n,"h",0,!0),o=i.firstChild,l=t,(o&&8==o.nodeType&&null!==ke.parse(o.data,l)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),He(r,i,"r"),Fe.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=x.policy){if(1===e.length)return e[0];let s,n,i,r=!1;const o=e.length,l=e.map((e=>c(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,r=r||e.dataBinding.isVolatile,i=i||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let n=0;n<o;++n)s+=l[n](e,t);return s},n.isVolatile=r,n.policy=null!=i?i:t;const a=new Ee(n);return je.assignAspect(a,s),a}},Qe=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,We=Object.create(null);class Je{constructor(e,t=We){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ke(e,t,s,n=je.getForInstance(e)){if(n.aspected){const s=Qe.exec(t);null!==s&&je.assignAspect(e,s[2])}return e.createHTML(s)}Je.empty=new Je(""),je.define(Je);class Ge{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=qe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new Je(c(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw u.error(1208);if(this.policy)throw u.error(1207);return this.policy=e,this}render(e,t,s){const n=this.create(s);return n.bind(e),n.appendTo(t),n}static create(e,t,s){let n="";const i=Object.create(null),r=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=Oe();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,l=t[s];if(n+=i,a(l))l=new Ee(se(l));else if(l instanceof ee)l=new Ee(l);else if(!(o=je.getForInstance(l))){const e=l;l=new Ee(re((()=>e)))}n+=Ke(l,i,r,o)}return new Ge(n+e[e.length-1],i,s)}}b(Ge);const Xe=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Ge.create(e,t);throw u.error(1206)};Xe.partial=e=>new Je(e);class Ye extends Ne{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}je.define(Ye);const Ze=e=>new Ye(e);function et(e,t){const s=a(e)?e:()=>e,n=a(t)?t:()=>t;return(e,t)=>s(e,t)?n(e,t):null}function tt(e){return a(e)?se(e):e instanceof ee?e:re((()=>e))}const st=Object.freeze({positioning:!1,recycle:!0});function nt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.bind(t[s])}function it(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}class rt{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=nt,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=it)}bind(e){this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.items=this.itemsBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),this.observeItems(!0),this.refreshAllViews(),e.onUnbind(this)}unbind(){null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews()}handleChange(e,t){if(t===this.itemsBindingObserver)this.items=this.itemsBindingObserver.bind(this.controller),this.observeItems(),this.refreshAllViews();else if(t===this.templateBindingObserver)this.template=this.templateBindingObserver.bind(this.controller),this.refreshAllViews(!0);else{if(!t[0])return;t[0].reset?this.refreshAllViews():this.updateViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=f);const t=this.itemsObserver,s=this.itemsObserver=L.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,l=[];let a=0,c=0;for(let h=0,d=e.length;h<d;++h){const d=e[h],u=d.removed;let f=0,p=d.index;const g=p+d.addedCount,b=t.splice(d.index,u.length),v=c=l.length+b.length;for(;p<g;++p){const e=t[p],h=e?e.firstChild:this.location;let d;o&&c>0?(f<=v&&b.length>0?(d=b[f],f++):(d=l[a],a++),c--):d=i.create(),t.splice(p,0,d),s(d,n,p,r),d.insertBefore(h)}b[f]&&l.push(...b.slice(f))}for(let e=a,t=l.length;e<t;++e)l[e].dispose();if(this.directive.options.positioning)for(let e=0,s=t.length;e<s;++e){const n=t[e].context;n.length=s,n.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,n=this.location,i=this.bindView,r=this.controller;let o=t.length,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||(Ie.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),l[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<a){i(l[e],t,e,r)}else{const o=s.create();i(o,t,e,r),l.push(o),o.insertBefore(n)}const c=l.splice(e,a-e);for(e=0,o=c.length;e<o;++e)c[e].dispose()}}unbindAllViews(){const e=this.views;for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}class ot{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,Y.enable()}createHTML(e){return Ae.comment(e(this))}createBehavior(){return new rt(this)}}function lt(e,t,s=st){const n=tt(e),i=tt(t);return new ot(n,i,Object.assign(Object.assign({},st),s))}je.define(ot);const at=e=>1===e.nodeType,ct=e=>e?t=>1===t.nodeType&&t.matches(e):at;class ht extends Ne{get id(){return this._id}set id(e){this._id=e,this._controllerProperty=`${e}-c`}bind(e){const t=e.targets[this.targetNodeId];t[this._controllerProperty]=e,this.updateTarget(e.source,this.computeNodes(t)),this.observe(t),e.onUnbind(this)}unbind(e){const t=e.targets[this.targetNodeId];this.updateTarget(e.source,f),this.disconnect(t),t[this._controllerProperty]=null}getSource(e){return e[this._controllerProperty].source}updateTarget(e,t){e[this.options.property]=t}computeNodes(e){let t=this.getNodes(e);return"filter"in this.options&&(t=t.filter(this.options.filter)),t}}class dt extends ht{observe(e){e.addEventListener("slotchange",this)}disconnect(e){e.removeEventListener("slotchange",this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function ut(e){return c(e)&&(e={property:e}),new dt(e)}je.define(dt);class ft extends ht{constructor(e){super(e),this.observerProperty=`${this.id}-o`,this.handleEvent=(e,t)=>{const s=t.target;this.updateTarget(this.getSource(s),this.computeNodes(s))},e.childList=!0}observe(e){let t=e[this.observerProperty];t||(t=new MutationObserver(this.handleEvent),t.toJSON=h,t.target=e,e[this.observerProperty]=t),t.observe(e,this.options)}disconnect(e){const t=e[this.observerProperty];t.target=null,t.disconnect()}getNodes(e){return"selector"in this.options?Array.from(e.querySelectorAll(this.options.selector)):Array.from(e.childNodes)}}function pt(e){return c(e)&&(e={property:e}),new ft(e)}je.define(ft);const gt=Object.freeze({locate:g()}),bt={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},vt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:bt.fromView(e)};function yt(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const mt={toView(e){const t=yt(e);return t?t.toString():t},fromView:yt};class wt{constructor(e,t,s=t.toLowerCase(),n="reflect",i){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=n,this.converter=i,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,"boolean"===n&&void 0===i&&(this.converter=bt)}setValue(e,t){const s=e[this.fieldName],n=this.converter;void 0!==n&&(t=n.fromView(t)),s!==t&&(e[this.fieldName]=t,this.tryReflectToAttribute(e),this.hasCallback&&e[this.callbackName](s,t),e.$fastController.notify(this.name))}getValue(e){return L.track(e,this.name),e[this.fieldName]}onAttributeChangedCallback(e,t){this.guards.has(e)||(this.guards.add(e),this.setValue(e,t),this.guards.delete(e))}tryReflectToAttribute(e){const t=this.mode,s=this.guards;s.has(e)||"fromView"===t||M.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case"reflect":const t=this.converter;x.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case"boolean":x.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(gt.locate(e));for(let n=0,i=t.length;n<i;++n){const i=t[n];if(void 0!==i)for(let t=0,n=i.length;t<n;++t){const n=i[t];c(n)?s.push(new wt(e,n)):s.push(new wt(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function Ct(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),gt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const xt={mode:"open"},St={},Tt=new Set,Ot=u.getById(l.elementRegistry,(()=>p()));class At{constructor(e,t=e.definition){var s;this.platformDefined=!1,c(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=wt.collect(e,t.attributes),r=new Array(i.length),o={},l={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,l[t.attribute]=t,L.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=l,this.shadowOptions=void 0===t.shadowOptions?xt:null===t.shadowOptions?void 0:Object.assign(Object.assign({},xt),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?St:Object.assign(Object.assign({},St),t.elementOptions),this.styles=ae.normalize(t.styles),Ot.register(this)}get isDefined(){return this.platformDefined}define(e=this.registry){const t=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,t,this.elementOptions)),this}static compose(e,t){return Tt.has(e)||Ot.getByType(e)?new At(class extends e{},t):new At(e,t)}static registerBaseType(e){Tt.add(e)}}At.getByType=Ot.getByType,At.getForInstance=Ot.getForInstance;const kt={bubbles:!0,composed:!0,cancelable:!0},Bt=new WeakMap;function jt(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:Bt.get(e))&&void 0!==s?s:null}let $t;class Nt extends V{constructor(e,t){super(e),this.boundObservables=null,this.needsInitialization=!0,this.hasExistingShadowRoot=!1,this._template=null,this.stage=3,this.guardBehaviorConnection=!1,this.behaviors=null,this._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t;const s=t.shadowOptions;if(void 0!==s){let t=e.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=e.attachShadow(s),"closed"===s.mode&&Bt.set(e,t))}const n=L.getAccessors(e);if(n.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,i=n.length;s<i;++s){const i=n[s].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return L.track(this,"isConnected"),1===this.stage}get context(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.context)&&void 0!==t?t:_.default}get isBound(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.isBound)&&void 0!==t&&t}get sourceLifetime(){var e;return null===(e=this.view)||void 0===e?void 0:e.sourceLifetime}get template(){var e;if(null===this._template){const t=this.definition;this.source.resolveTemplate?this._template=this.source.resolveTemplate():t.template&&(this._template=null!==(e=t.template)&&void 0!==e?e:null)}return this._template}set template(e){this._template!==e&&(this._template=e,this.needsInitialization||this.renderTemplate(e))}get mainStyles(){var e;if(null===this._mainStyles){const t=this.definition;this.source.resolveStyles?this._mainStyles=this.source.resolveStyles():t.styles&&(this._mainStyles=null!==(e=t.styles)&&void 0!==e?e:null)}return this._mainStyles}set mainStyles(e){this._mainStyles!==e&&(null!==this._mainStyles&&this.removeStyles(this._mainStyles),this._mainStyles=e,this.needsInitialization||this.addStyles(e))}onUnbind(e){var t;null===(t=this.view)||void 0===t||t.onUnbind(e)}addBehavior(e){var t,s;const n=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,i=null!==(s=n.get(e))&&void 0!==s?s:0;0===i?(n.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):n.set(e,i+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const n=s.get(e);void 0!==n&&(1===n||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,n-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=jt(s))&&void 0!==t?t:this.source).append(e)}else if(!e.isAttachedTo(s)){const t=e.behaviors;if(e.addStylesTo(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}removeStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=jt(s))&&void 0!==t?t:s).removeChild(e)}else if(e.isAttachedTo(s)){const t=e.behaviors;if(e.removeStylesFrom(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}connect(){if(3!==this.stage)return;if(this.stage=0,null!==this.boundObservables){const e=this.source,t=this.boundObservables,s=Object.keys(t);for(let n=0,i=s.length;n<i;++n){const i=s[n];e[i]=t[i]}this.boundObservables=null}const e=this.behaviors;if(null!==e){this.guardBehaviorConnection=!0;for(const t of e.keys())t.connectedCallback&&t.connectedCallback(this);this.guardBehaviorConnection=!1}this.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,L.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,L.notify(this,"isConnected"),null!==this.view&&this.view.unbind();const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);this.stage=3}onAttributeChangedCallback(e,t,s){const n=this.definition.attributeLookup[e];void 0!==n&&n.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},kt),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=jt(s))&&void 0!==t?t:s;if(null!==this.view)this.view.dispose(),this.view=null;else if(!this.needsInitialization||this.hasExistingShadowRoot){this.hasExistingShadowRoot=!1;for(let e=n.firstChild;null!==e;e=n.firstChild)n.removeChild(e)}e&&(this.view=e.render(s,n,s),this.view.sourceLifetime=I.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=At.getForInstance(e);if(void 0===s)throw u.error(1401);return e.$fastController=new $t(e,s)}static setStrategy(e){$t=e}}function Mt(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=jt(e))&&void 0!==t?t:e.getRootNode()}b(Nt),Nt.setStrategy(Nt);class Et{constructor(e){const t=Et.styleSheetCache;this.sheets=e.map((e=>{if(e instanceof CSSStyleSheet)return e;let s=t.get(e);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(e),t.set(e,s)),s}))}addStylesTo(e){const t=Mt(e);t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.sheets]}removeStylesFrom(e){const t=Mt(e),s=this.sheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter((e=>-1===s.indexOf(e)))}}Et.styleSheetCache=new Map;let Vt=0;function It(e){return e===document?document.body:e}function Lt(e){const t=class extends e{constructor(){super(),Nt.forCustomElement(this)}$emit(e,t,s){return this.$fastController.emit(e,t,s)}connectedCallback(){this.$fastController.connect()}disconnectedCallback(){this.$fastController.disconnect()}attributeChangedCallback(e,t,s){this.$fastController.onAttributeChangedCallback(e,t,s)}};return At.registerBaseType(t),t}function zt(e,t){return a(e)?At.compose(e,t).define().type:At.compose(this,e).define().type}ae.setDefaultStrategy(ae.supportsAdoptedStyleSheets?Et:class{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Vt}addStylesTo(e){e=It(Mt(e));const t=this.styles,s=this.styleClass;for(let n=0;n<t.length;n++){const i=document.createElement("style");i.innerHTML=t[n],i.className=s,e.append(i)}}removeStylesFrom(e){const t=(e=It(Mt(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}});const Ft=Object.assign(Lt(HTMLElement),{from:function(e){return Lt(e)},define:zt,compose:function(e,t){return a(e)?At.compose(e,t):At.compose(this,e)}});function Pt(e){return function(t){zt(t,e)}}x.setPolicy(N.create());export{Y as ArrayObserver,gt as AttributeConfiguration,wt as AttributeDefinition,ee as Binding,fe as CSSBindingDirective,he as CSSDirective,ft as ChildrenDirective,qe as Compiler,x as DOM,v as DOMAspect,Nt as ElementController,ae as ElementStyles,_ as ExecutionContext,u as FAST,Ft as FASTElement,At as FASTElementDefinition,Ee as HTMLBindingDirective,je as HTMLDirective,Ie as HTMLView,Je as InlineTemplateDirective,Ae as Markup,ht as NodeObservationDirective,L as Observable,ke as Parser,V as PropertyChangeNotifier,Ye as RefDirective,rt as RepeatBehavior,ot as RepeatDirective,dt as SlottedDirective,I as SourceLifetime,R as Splice,J as SpliceStrategy,D as SpliceStrategySupport,Ne as StatelessAttachedAttributeDirective,E as SubscriberSet,M as Updates,Ge as ViewTemplate,Ct as attr,bt as booleanConverter,pt as children,ye as css,de as cssDirective,Pt as customElement,ct as elements,f as emptyArray,Xe as html,$e as htmlDirective,Z as lengthOf,ne as listener,vt as nullableBooleanConverter,mt as nullableNumberConverter,z as observable,re as oneTime,se as oneWay,Ze as ref,lt as repeat,ut as slotted,F as volatile,et as when};
1
+ void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",{value:Object.create(null),configurable:!1,enumerable:!1,writable:!1});const e=globalThis.FAST,t={1101:"Must call enableArrayObservation before observing arrays.",1201:"The DOM Policy can only be set once.",1202:"To bind innerHTML, you must use a TrustedTypesPolicy.",1203:"View=>Model update skipped. To use twoWay binding, the target property must be observable.",1204:"No host element is present. Cannot bind host with ${name}.",1205:"The requested binding behavior is not supported by the binding engine.",1206:"Calling html`` as a normal function invalidates the security guarantees provided by FAST.",1207:"The DOM Policy for an HTML template can only be set once.",1208:"The DOM Policy cannot be set after a template is compiled.",1209:"'${aspectName}' on '${tagName}' is blocked by the current DOMPolicy.",1401:"Missing FASTElement definition.",1501:"No registration for Context/Interface '${name}'.",1502:"Dependency injection resolver for '${key}' returned a null factory.",1503:"Invalid dependency injection resolver strategy specified '${strategy}'.",1504:"Unable to autoregister dependency.",1505:"Unable to resolve dependency injection key '${key}'.",1506:"'${name}' is a native function and therefore cannot be safely constructed by DI. If this is intentional, please use a callback or cachedCallback resolver.",1507:"Attempted to jitRegister something that is not a constructor '${value}'. Did you forget to register this dependency?",1508:"Attempted to jitRegister an intrinsic type '${value}'. Did you forget to add @inject(Key)?",1509:"Attempted to jitRegister an interface '${value}'.",1510:"A valid resolver was not returned from the register method.",1511:"Key/value cannot be null or undefined. Are you trying to inject/register something that doesn't exist with DI?",1512:"'${key}' not registered. Did you forget to add @singleton()?",1513:"Cyclic dependency found '${name}'.",1514:"Injected properties that are updated on changes to DOM connectivity require the target object to be an instance of FASTElement."},s=/(\$\{\w+?})/g,n=/\$\{(\w+?)}/g,i=Object.freeze({});function r(e,t){return e.split(s).map((e=>{var s;const i=e.replace(n,"$1");return String(null!==(s=t[i])&&void 0!==s?s:e)})).join("")}let o;Object.assign(e,{addMessages(e){Object.assign(t,e)},warn(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Warning";console.warn(r(o,s))},error(e,s=i){var n;const o=null!==(n=t[e])&&void 0!==n?n:"Unknown Error";return new Error(r(o,s))}});try{if(document.currentScript)o=document.currentScript.getAttribute("fast-kernel");else{const e=document.getElementsByTagName("script");o=e[e.length-1].getAttribute("fast-kernel")}}catch(e){o="isolate"}let l;switch(o){case"share":l=Object.freeze({updateQueue:1,observable:2,contextEvent:3,elementRegistry:4});break;case"share-v2":l=Object.freeze({updateQueue:1.2,observable:2.2,contextEvent:3.2,elementRegistry:4.2});break;default:const e=`-${Math.random().toString(36).substring(2,8)}`;l=Object.freeze({updateQueue:`1.2${e}`,observable:`2.2${e}`,contextEvent:`3.2${e}`,elementRegistry:`4.2${e}`})}const a=e=>"function"==typeof e,c=e=>"string"==typeof e,h=()=>{};!function(){if("undefined"==typeof globalThis)if("undefined"!=typeof global)global.globalThis=global;else if("undefined"!=typeof self)self.globalThis=self;else if("undefined"!=typeof window)window.globalThis=window;else{const e=new Function("return this")();e.globalThis=e}}();const d={configurable:!1,enumerable:!1,writable:!1};void 0===globalThis.FAST&&Reflect.defineProperty(globalThis,"FAST",Object.assign({value:Object.create(null)},d));const u=globalThis.FAST;if(void 0===u.getById){const e=Object.create(null);Reflect.defineProperty(u,"getById",Object.assign({value(t,s){let n=e[t];return void 0===n&&(n=s?e[t]=s():null),n}},d))}void 0===u.error&&Object.assign(u,{warn(){},error:e=>new Error(`Error ${e}`),addMessages(){}});const f=Object.freeze([]);function p(){const e=new Map;return Object.freeze({register:t=>!e.has(t.type)&&(e.set(t.type,t),!0),getByType:t=>e.get(t),getForInstance(t){if(null!=t)return e.get(t.constructor)}})}function g(){const e=new WeakMap;return function(t){let s=e.get(t);if(void 0===s){let n=Reflect.getPrototypeOf(t);for(;void 0===s&&null!==n;)s=e.get(n),n=Reflect.getPrototypeOf(n);s=void 0===s?[]:s.slice(0),e.set(t,s)}return s}}function b(e){e.prototype.toJSON=h}const v=Object.freeze({none:0,attribute:1,booleanAttribute:2,property:3,content:4,tokenList:5,event:6}),y=e=>e,m=globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:y}):{createHTML:y};let w=Object.freeze({createHTML:e=>m.createHTML(e),protect:(e,t,s,n)=>n});const C=w,x=Object.freeze({get policy(){return w},setPolicy(e){if(w!==C)throw u.error(1201);w=e},setAttribute(e,t,s){null==s?e.removeAttribute(t):e.setAttribute(t,s)},setBooleanAttribute(e,t,s){s?e.setAttribute(t,""):e.removeAttribute(t)}});function S(e,t,s,n){return(e,t,s,...i)=>{c(s)&&(s=s.replace("javascript:","")),n(e,t,s,...i)}}function T(e,t,s,n){throw u.error(1209,{aspectName:s,tagName:null!=e?e:"text"})}const O={onabort:T,onauxclick:T,onbeforeinput:T,onbeforematch:T,onblur:T,oncancel:T,oncanplay:T,oncanplaythrough:T,onchange:T,onclick:T,onclose:T,oncontextlost:T,oncontextmenu:T,oncontextrestored:T,oncopy:T,oncuechange:T,oncut:T,ondblclick:T,ondrag:T,ondragend:T,ondragenter:T,ondragleave:T,ondragover:T,ondragstart:T,ondrop:T,ondurationchange:T,onemptied:T,onended:T,onerror:T,onfocus:T,onformdata:T,oninput:T,oninvalid:T,onkeydown:T,onkeypress:T,onkeyup:T,onload:T,onloadeddata:T,onloadedmetadata:T,onloadstart:T,onmousedown:T,onmouseenter:T,onmouseleave:T,onmousemove:T,onmouseout:T,onmouseover:T,onmouseup:T,onpaste:T,onpause:T,onplay:T,onplaying:T,onprogress:T,onratechange:T,onreset:T,onresize:T,onscroll:T,onsecuritypolicyviolation:T,onseeked:T,onseeking:T,onselect:T,onslotchange:T,onstalled:T,onsubmit:T,onsuspend:T,ontimeupdate:T,ontoggle:T,onvolumechange:T,onwaiting:T,onwebkitanimationend:T,onwebkitanimationiteration:T,onwebkitanimationstart:T,onwebkittransitionend:T,onwheel:T},A={elements:{a:{[v.attribute]:{href:S},[v.property]:{href:S}},area:{[v.attribute]:{href:S},[v.property]:{href:S}},button:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},embed:{[v.attribute]:{src:T},[v.property]:{src:T}},form:{[v.attribute]:{action:S},[v.property]:{action:S}},frame:{[v.attribute]:{src:S},[v.property]:{src:S}},iframe:{[v.attribute]:{src:S},[v.property]:{src:S,srcdoc:T}},input:{[v.attribute]:{formaction:S},[v.property]:{formAction:S}},link:{[v.attribute]:{href:T},[v.property]:{href:T}},object:{[v.attribute]:{codebase:T,data:T},[v.property]:{codeBase:T,data:T}},script:{[v.attribute]:{src:T,text:T},[v.property]:{src:T,text:T,innerText:T,textContent:T}},style:{[v.property]:{innerText:T,textContent:T}}},aspects:{[v.attribute]:Object.assign({},O),[v.property]:Object.assign({innerHTML:T},O),[v.event]:Object.assign({},O)}};function k(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=r;break;default:s[n]=i}}for(const t in e)t in s||(s[t]=e[t]);return Object.freeze(s)}function B(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=k(r,{});break;default:s[n]=k(i,r)}}for(const t in e)t in s||(s[t]=k(e[t],{}));return Object.freeze(s)}function j(e,t){const s={};for(const n in t){const i=e[n],r=t[n];switch(i){case null:break;case void 0:s[n]=B(i,{});break;default:s[n]=B(i,r)}}for(const t in e)t in s||(s[t]=B(e[t],{}));return Object.freeze(s)}function $(e,t,s,n,i){const r=e[s];if(r){const e=r[n];if(e)return e(t,s,n,i)}}const N=Object.freeze({create(e={}){var t,s;const n=null!==(t=e.trustedType)&&void 0!==t?t:function(){const e=e=>e;return globalThis.trustedTypes?globalThis.trustedTypes.createPolicy("fast-html",{createHTML:e}):{createHTML:e}}(),i=(r=null!==(s=e.guards)&&void 0!==s?s:{},o=A,Object.freeze({elements:r.elements?j(r.elements,o.elements):o.elements,aspects:r.aspects?B(r.aspects,o.aspects):o.aspects}));var r,o;return Object.freeze({createHTML:e=>n.createHTML(e),protect(e,t,s,n){var r;const o=(null!=e?e:"").toLowerCase(),l=i.elements[o];if(l){const i=$(l,e,t,s,n);if(i)return i}return null!==(r=$(i.aspects,e,t,s,n))&&void 0!==r?r:n}})}}),M=u.getById(l.updateQueue,(()=>{const e=[],t=[],s=globalThis.requestAnimationFrame;let n=!0;function i(){if(t.length)throw t.shift()}function r(s){try{s.call()}catch(s){if(!n)throw e.length=0,s;t.push(s),setTimeout(i,0)}}function o(){let t=0;for(;t<e.length;)if(r(e[t]),t++,t>1024){for(let s=0,n=e.length-t;s<n;s++)e[s]=e[s+t];e.length-=t,t=0}e.length=0}function l(t){e.push(t),e.length<2&&(n?s(o):o())}return Object.freeze({enqueue:l,next:()=>new Promise(l),process:o,setMode:e=>n=e})}));class E{constructor(e,t){this.sub1=void 0,this.sub2=void 0,this.spillover=void 0,this.subject=e,this.sub1=t}has(e){return void 0===this.spillover?this.sub1===e||this.sub2===e:-1!==this.spillover.indexOf(e)}subscribe(e){const t=this.spillover;if(void 0===t){if(this.has(e))return;if(void 0===this.sub1)return void(this.sub1=e);if(void 0===this.sub2)return void(this.sub2=e);this.spillover=[this.sub1,this.sub2,e],this.sub1=void 0,this.sub2=void 0}else{-1===t.indexOf(e)&&t.push(e)}}unsubscribe(e){const t=this.spillover;if(void 0===t)this.sub1===e?this.sub1=void 0:this.sub2===e&&(this.sub2=void 0);else{const s=t.indexOf(e);-1!==s&&t.splice(s,1)}}notify(e){const t=this.spillover,s=this.subject;if(void 0===t){const t=this.sub1,n=this.sub2;void 0!==t&&t.handleChange(s,e),void 0!==n&&n.handleChange(s,e)}else for(let n=0,i=t.length;n<i;++n)t[n].handleChange(s,e)}}class V{constructor(e){this.subscribers={},this.subjectSubscribers=null,this.subject=e}notify(e){var t,s;null===(t=this.subscribers[e])||void 0===t||t.notify(e),null===(s=this.subjectSubscribers)||void 0===s||s.notify(e)}subscribe(e,t){var s,n;let i;i=t?null!==(s=this.subscribers[t])&&void 0!==s?s:this.subscribers[t]=new E(this.subject):null!==(n=this.subjectSubscribers)&&void 0!==n?n:this.subjectSubscribers=new E(this.subject),i.subscribe(e)}unsubscribe(e,t){var s,n;t?null===(s=this.subscribers[t])||void 0===s||s.unsubscribe(e):null===(n=this.subjectSubscribers)||void 0===n||n.unsubscribe(e)}}const I=Object.freeze({unknown:void 0,coupled:1}),L=u.getById(l.observable,(()=>{const e=M.enqueue,t=/(:|&&|\|\||if)/,s=new WeakMap;let n,i=e=>{throw u.error(1101)};function r(e){var t;let n=null!==(t=e.$fastController)&&void 0!==t?t:s.get(e);return void 0===n&&(Array.isArray(e)?n=i(e):s.set(e,n=new V(e))),n}const o=g();class l{constructor(e){this.name=e,this.field=`_${e}`,this.callback=`${e}Changed`}getValue(e){return void 0!==n&&n.watch(e,this.name),e[this.field]}setValue(e,t){const s=this.field,n=e[s];if(n!==t){e[s]=t;const i=e[this.callback];a(i)&&i.call(e,n,t),r(e).notify(this.name)}}}class h extends E{constructor(e,t,s=!1){super(e,t),this.expression=e,this.isVolatileBinding=s,this.needsRefresh=!0,this.needsQueue=!0,this.isAsync=!0,this.first=this,this.last=null,this.propertySource=void 0,this.propertyName=void 0,this.notifier=void 0,this.next=void 0}setMode(e){this.isAsync=this.needsQueue=e}bind(e){this.controller=e;const t=this.observe(e.source,e.context);return!e.isBound&&this.requiresUnbind(e)&&e.onUnbind(this),t}requiresUnbind(e){return e.sourceLifetime!==I.coupled||this.first!==this.last||this.first.propertySource!==e.source}unbind(e){this.dispose()}observe(e,t){this.needsRefresh&&null!==this.last&&this.dispose();const s=n;let i;n=this.needsRefresh?this:void 0,this.needsRefresh=this.isVolatileBinding;try{i=this.expression(e,t)}finally{n=s}return i}disconnect(){this.dispose()}dispose(){if(null!==this.last){let e=this.first;for(;void 0!==e;)e.notifier.unsubscribe(this,e.propertyName),e=e.next;this.last=null,this.needsRefresh=this.needsQueue=this.isAsync}}watch(e,t){const s=this.last,i=r(e),o=null===s?this.first:{};if(o.propertySource=e,o.propertyName=t,o.notifier=i,i.subscribe(this,t),null!==s){if(!this.needsRefresh){let t;n=void 0,t=s.propertySource[s.propertyName],n=this,e===t&&(this.needsRefresh=!0)}s.next=o}this.last=o}handleChange(){this.needsQueue?(this.needsQueue=!1,e(this)):this.isAsync||this.call()}call(){null!==this.last&&(this.needsQueue=this.isAsync,this.notify(this))}*records(){let e=this.first;for(;void 0!==e;)yield e,e=e.next}}return b(h),Object.freeze({setArrayObserverFactory(e){i=e},getNotifier:r,track(e,t){n&&n.watch(e,t)},trackVolatile(){n&&(n.needsRefresh=!0)},notify(e,t){r(e).notify(t)},defineProperty(e,t){c(t)&&(t=new l(t)),o(e).push(t),Reflect.defineProperty(e,t.name,{enumerable:!0,get(){return t.getValue(this)},set(e){t.setValue(this,e)}})},getAccessors:o,binding(e,t,s=this.isVolatileBinding(e)){return new h(e,t,s)},isVolatileBinding:e=>t.test(e.toString())})}));function z(e,t){L.defineProperty(e,t)}function F(e,t,s){return Object.assign({},s,{get(){return L.trackVolatile(),s.get.apply(this)}})}const P=u.getById(l.contextEvent,(()=>{let e=null;return{get:()=>e,set(t){e=t}}})),_=Object.freeze({default:{index:0,length:0,get event(){return _.getEvent()},eventDetail(){return this.event.detail},eventTarget(){return this.event.target}},getEvent:()=>P.get(),setEvent(e){P.set(e)}});class R{constructor(e,t,s){this.index=e,this.removed=t,this.addedCount=s}adjustTo(e){let t=this.index;const s=e.length;return t>s?t=s-this.addedCount:t<0&&(t=s+this.removed.length+t-this.addedCount),this.index=t<0?0:t,this}}const D=Object.freeze({reset:1,splice:2,optimized:3}),H=new R(0,f,0);H.reset=!0;const U=[H];function q(e,t,s,n,i,r){let o=0,l=0;const a=Math.min(s-t,r-i);if(0===t&&0===i&&(o=function(e,t,s){for(let n=0;n<s;++n)if(e[n]!==t[n])return n;return s}(e,n,a)),s===e.length&&r===n.length&&(l=function(e,t,s){let n=e.length,i=t.length,r=0;for(;r<s&&e[--n]===t[--i];)r++;return r}(e,n,a-o)),i+=o,r-=l,(s-=l)-(t+=o)==0&&r-i==0)return f;if(t===s){const e=new R(t,[],0);for(;i<r;)e.removed.push(n[i++]);return[e]}if(i===r)return[new R(t,[],s-t)];const c=function(e){let t=e.length-1,s=e[0].length-1,n=e[t][s];const i=[];for(;t>0||s>0;){if(0===t){i.push(2),s--;continue}if(0===s){i.push(3),t--;continue}const r=e[t-1][s-1],o=e[t-1][s],l=e[t][s-1];let a;a=o<l?o<r?o:r:l<r?l:r,a===r?(r===n?i.push(0):(i.push(1),n=r),t--,s--):a===o?(i.push(3),t--,n=o):(i.push(2),s--,n=l)}return i.reverse()}(function(e,t,s,n,i,r){const o=r-i+1,l=s-t+1,a=new Array(o);let c,h;for(let e=0;e<o;++e)a[e]=new Array(l),a[e][0]=e;for(let e=0;e<l;++e)a[0][e]=e;for(let s=1;s<o;++s)for(let r=1;r<l;++r)e[t+r-1]===n[i+s-1]?a[s][r]=a[s-1][r-1]:(c=a[s-1][r]+1,h=a[s][r-1]+1,a[s][r]=c<h?c:h);return a}(e,t,s,n,i,r)),h=[];let d,u=t,p=i;for(let e=0;e<c.length;++e)switch(c[e]){case 0:void 0!==d&&(h.push(d),d=void 0),u++,p++;break;case 1:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++,d.removed.push(n[p]),p++;break;case 2:void 0===d&&(d=new R(u,[],0)),d.addedCount++,u++;break;case 3:void 0===d&&(d=new R(u,[],0)),d.removed.push(n[p]),p++}return void 0!==d&&h.push(d),h}function Q(e,t){let s=!1,n=0;for(let a=0;a<t.length;a++){const c=t[a];if(c.index+=n,s)continue;const h=(i=e.index,r=e.index+e.removed.length,o=c.index,l=c.index+c.addedCount,r<o||l<i?-1:r===o||l===i?0:i<o?r<l?r-o:l-o:l<r?l-i:r-i);if(h>=0){t.splice(a,1),a--,n-=c.addedCount-c.removed.length,e.addedCount+=c.addedCount-h;const i=e.removed.length+c.removed.length-h;if(e.addedCount||i){let t=c.removed;if(e.index<c.index){const s=e.removed.slice(0,c.index-e.index);s.push(...t),t=s}if(e.index+e.removed.length>c.index+c.addedCount){const s=e.removed.slice(c.index+c.addedCount-e.index);t.push(...s)}e.removed=t,c.index<e.index&&(e.index=c.index)}else s=!0}else if(e.index<c.index){s=!0,t.splice(a,0,e),a++;const i=e.addedCount-e.removed.length;c.index+=i,n+=i}}var i,r,o,l;s||t.push(e)}let W=Object.freeze({support:D.optimized,normalize:(e,t,s)=>void 0===e?void 0===s?f:s.length>1?function(e,t){let s=[];const n=[];for(let e=0,s=t.length;e<s;e++)Q(t[e],n);for(let t=0,i=n.length;t<i;++t){const i=n[t];1!==i.addedCount||1!==i.removed.length?s=s.concat(q(e,i.index,i.index+i.addedCount,i.removed,0,i.removed.length)):i.removed[0]!==e[i.index]&&s.push(i)}return s}(t,s):s:U,pop(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(e.length,[r],0)),r},push(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(e.length-n.length,[],n.length).adjustTo(e)),i},reverse(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},shift(e,t,s,n){const i=e.length>0,r=s.apply(e,n);return i&&t.addSplice(new R(0,[r],0)),r},sort(e,t,s,n){const i=s.apply(e,n);return t.reset(e),i},splice(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(+n[0],i,n.length>2?n.length-2:0).adjustTo(e)),i},unshift(e,t,s,n){const i=s.apply(e,n);return t.addSplice(new R(0,[],n.length).adjustTo(e)),i}});const J=Object.freeze({reset:U,setDefaultStrategy(e){W=e}});function K(e,t,s){Reflect.defineProperty(e,t,{value:s,enumerable:!1})}class G extends E{constructor(e){super(e),this.oldCollection=void 0,this.splices=void 0,this.needsQueue=!0,this._strategy=null,this._lengthObserver=void 0,this.call=this.flush,K(e,"$fastController",this)}get strategy(){return this._strategy}set strategy(e){this._strategy=e}get lengthObserver(){let e=this._lengthObserver;if(void 0===e){const t=this.subject;this._lengthObserver=e={length:t.length,handleChange(){this.length!==t.length&&(this.length=t.length,L.notify(e,"length"))}},this.subscribe(e)}return e}subscribe(e){this.flush(),super.subscribe(e)}addSplice(e){void 0===this.splices?this.splices=[e]:this.splices.push(e),this.enqueue()}reset(e){this.oldCollection=e,this.enqueue()}flush(){var e;const t=this.splices,s=this.oldCollection;void 0===t&&void 0===s||(this.needsQueue=!0,this.splices=void 0,this.oldCollection=void 0,this.notify((null!==(e=this._strategy)&&void 0!==e?e:W).normalize(s,this.subject,t)))}enqueue(){this.needsQueue&&(this.needsQueue=!1,M.enqueue(this))}}let X=!1;const Y=Object.freeze({enable(){if(X)return;X=!0,L.setArrayObserverFactory((e=>new G(e)));const e=Array.prototype;e.$fastPatch||(K(e,"$fastPatch",1),[e.pop,e.push,e.reverse,e.shift,e.sort,e.splice,e.unshift].forEach((t=>{e[t.name]=function(...e){var s;const n=this.$fastController;return void 0===n?t.apply(this,e):(null!==(s=n.strategy)&&void 0!==s?s:W)[t.name](this,n,t,e)}})))}});function Z(e){if(!e)return 0;let t=e.$fastController;return void 0===t&&(Y.enable(),t=L.getNotifier(e)),L.track(t.lengthObserver,"length"),e.length}class ee{constructor(e,t,s=!1){this.evaluate=e,this.policy=t,this.isVolatile=s}}class te extends ee{createObserver(e){return L.binding(this.evaluate,e,this.isVolatile)}}function se(e,t,s=L.isVolatileBinding(e)){return new te(e,t,s)}function ne(e,t){const s=new te(e);return s.options=t,s}class ie extends ee{createObserver(){return this}bind(e){return this.evaluate(e.source,e.context)}}function re(e,t){return new ie(e,t)}function oe(e){return a(e)?se(e):e instanceof ee?e:re((()=>e))}let le;function ae(e){return e.map((e=>e instanceof ce?ae(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}b(ie);class ce{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof ce?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(le),this._strategy}addStylesTo(e){this.strategy.addStylesTo(e),this.targets.add(e)}removeStylesFrom(e){this.strategy.removeStylesFrom(e),this.targets.delete(e)}isAttachedTo(e){return this.targets.has(e)}withBehaviors(...e){return this.behaviors=null===this.behaviors?e:this.behaviors.concat(e),this}withStrategy(e){return this._strategy=new e(ae(this.styles)),this}static setDefaultStrategy(e){le=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new ce(e):e instanceof ce?e:new ce([e])}}ce.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const he=p(),de=Object.freeze({getForInstance:he.getForInstance,getByType:he.getByType,define:e=>(he.register({type:e}),e)});function ue(){return function(e){de.define(e)}}function fe(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class pe{constructor(e,t){this.dataBinding=e,this.targetAspect=t}createCSS(e){return e(this),`var(${this.targetAspect})`}addedCallback(e){var t;const s=e.source;if(!s.$cssBindings){s.$cssBindings=new Map;const e=s.setAttribute;s.setAttribute=(t,n)=>{e.call(s,t,n),"style"===t&&s.$cssBindings.forEach(((e,t)=>fe(t,e.controller,e.observer)))}}const n=null!==(t=e[this.targetAspect])&&void 0!==t?t:e[this.targetAspect]=this.dataBinding.createObserver(this,this);n.controller=e,e.source.$cssBindings.set(this,{controller:e,observer:n})}connectedCallback(e){fe(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){fe(this,t.controller,t)}}de.define(pe);const ge=`${Math.random().toString(36).substring(2,8)}`;let be=0;const ve=()=>`--v${ge}${++be}`;function ye(e,t){const s=[];let n="";const i=[],r=e=>{i.push(e)};for(let i=0,o=e.length-1;i<o;++i){n+=e[i];let o=t[i];a(o)?o=new pe(se(o),ve()).createCSS(r):o instanceof ee?o=new pe(o,ve()).createCSS(r):void 0!==de.getForInstance(o)&&(o=o.createCSS(r)),o instanceof ce||o instanceof CSSStyleSheet?(""!==n.trim()&&(s.push(n),n=""),s.push(o)):n+=o}return n+=e[e.length-1],""!==n.trim()&&s.push(n),{styles:s,behaviors:i}}const me=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t),i=new ce(s);return n.length?i.withBehaviors(...n):i};class we{constructor(e,t){this.behaviors=t,this.css="";const s=e.reduce(((e,t)=>(c(t)?this.css+=t:e.push(t),e)),[]);s.length&&(this.styles=new ce(s))}createCSS(e){return this.behaviors.forEach(e),this.styles&&e(this),this.css}addedCallback(e){e.addStyles(this.styles)}removedCallback(e){e.removeStyles(this.styles)}}de.define(we),me.partial=(e,...t)=>{const{styles:s,behaviors:n}=ye(e,t);return new we(s,n)};const Ce=`fast-${Math.random().toString(36).substring(2,8)}`,xe=`${Ce}{`,Se=`}${Ce}`,Te=Se.length;let Oe=0;const Ae=()=>`${Ce}-${++Oe}`,ke=Object.freeze({interpolation:e=>`${xe}${e}${Se}`,attribute:e=>`${Ae()}="${xe}${e}${Se}"`,comment:e=>`\x3c!--${xe}${e}${Se}--\x3e`}),Be=Object.freeze({parse(e,t){const s=e.split(xe);if(1===s.length)return null;const n=[];for(let e=0,i=s.length;e<i;++e){const i=s[e],r=i.indexOf(Se);let o;if(-1===r)o=i;else{const e=i.substring(0,r);n.push(t[e]),o=i.substring(r+Te)}""!==o&&n.push(o)}return n}}),je=p(),$e=Object.freeze({getForInstance:je.getForInstance,getByType:je.getByType,define:(e,t)=>((t=t||{}).type=e,je.register(t),e),assignAspect(e,t){if(t)switch(e.sourceAspect=t,t[0]){case":":e.targetAspect=t.substring(1),e.aspectType="classList"===e.targetAspect?v.tokenList:v.property;break;case"?":e.targetAspect=t.substring(1),e.aspectType=v.booleanAttribute;break;case"@":e.targetAspect=t.substring(1),e.aspectType=v.event;break;default:e.targetAspect=t,e.aspectType=v.attribute}else e.aspectType=v.content}});function Ne(e){return function(t){$e.define(t,e)}}class Me{constructor(e){this.options=e}createHTML(e){return ke.attribute(e(this))}createBehavior(){return this}}b(Me);const Ee={[v.attribute]:x.setAttribute,[v.booleanAttribute]:x.setBooleanAttribute,[v.property]:(e,t,s)=>e[t]=s,[v.content]:function(e,t,s,n){if(null==s&&(s=""),s.create){e.textContent="";let t=e.$fastView;void 0===t?t=s.create():e.$fastTemplate!==s&&(t.isComposed&&(t.remove(),t.unbind()),t=s.create()),t.isComposed?t.needsBindOnly&&(t.needsBindOnly=!1,t.bind(n.source,n.context)):(t.isComposed=!0,t.bind(n.source,n.context),t.insertBefore(e),e.$fastView=t,e.$fastTemplate=s)}else{const t=e.$fastView;void 0!==t&&t.isComposed&&(t.isComposed=!1,t.remove(),t.needsBindOnly?t.needsBindOnly=!1:t.unbind()),e.textContent=s}},[v.tokenList]:function(e,t,s){var n;const i=`${this.id}-t`,r=null!==(n=e[i])&&void 0!==n?n:e[i]={v:0,cv:Object.create(null)},o=r.cv;let l=r.v;const a=e[t];if(null!=s&&s.length){const e=s.split(/\s+/);for(let t=0,s=e.length;t<s;++t){const s=e[t];""!==s&&(o[s]=l,a.add(s))}}if(r.v=l+1,0!==l){l-=1;for(const e in o)o[e]===l&&a.remove(e)}},[v.event]:()=>{}};class Ve{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=v.content}createHTML(e){return ke.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Ee[this.aspectType],s=null!==(e=this.dataBinding.policy)&&void 0!==e?e:this.policy;if(!t)throw u.error(1205);this.data=`${this.id}-d`,this.updateTarget=s.protect(this.targetTagName,this.aspectType,this.targetAspect,t)}return this}bind(e){var t;const s=e.targets[this.targetNodeId];switch(this.aspectType){case v.event:s[this.data]=e,s.addEventListener(this.targetAspect,this,this.dataBinding.options);break;case v.content:e.onUnbind(this);default:const n=null!==(t=s[this.data])&&void 0!==t?t:s[this.data]=this.dataBinding.createObserver(this,this);n.target=s,n.controller=e,this.updateTarget(s,this.targetAspect,n.bind(e),e)}}unbind(e){const t=e.targets[this.targetNodeId].$fastView;void 0!==t&&t.isComposed&&(t.unbind(),t.needsBindOnly=!0)}handleEvent(e){const t=e.currentTarget[this.data];if(t.isBound){_.setEvent(e);const s=this.dataBinding.evaluate(t.source,t.context);_.setEvent(null),!0!==s&&e.preventDefault()}}handleChange(e,t){const s=t.target,n=t.controller;this.updateTarget(s,this.targetAspect,t.bind(n),n)}}function Ie(e,t){const s=e.parentNode;let n,i=e;for(;i!==t;)n=i.nextSibling,s.removeChild(i),i=n;s.removeChild(t)}$e.define(Ve,{aspected:!0});class Le{constructor(e,t,s){this.fragment=e,this.factories=t,this.targets=s,this.behaviors=null,this.unbindables=[],this.source=null,this.isBound=!1,this.sourceLifetime=I.unknown,this.context=this,this.index=0,this.length=0,this.firstChild=e.firstChild,this.lastChild=e.lastChild}get event(){return _.getEvent()}get isEven(){return this.index%2==0}get isOdd(){return this.index%2!=0}get isFirst(){return 0===this.index}get isInMiddle(){return!this.isFirst&&!this.isLast}get isLast(){return this.index===this.length-1}eventDetail(){return this.event.detail}eventTarget(){return this.event.target}appendTo(e){e.appendChild(this.fragment)}insertBefore(e){if(this.fragment.hasChildNodes())e.parentNode.insertBefore(this.fragment,e);else{const t=this.lastChild;if(e.previousSibling===t)return;const s=e.parentNode;let n,i=this.firstChild;for(;i!==t;)n=i.nextSibling,s.insertBefore(i,e),i=n;s.insertBefore(t,e)}}remove(){const e=this.fragment,t=this.lastChild;let s,n=this.firstChild;for(;n!==t;)s=n.nextSibling,e.appendChild(n),n=s;e.appendChild(t)}dispose(){Ie(this.firstChild,this.lastChild),this.unbind()}onUnbind(e){this.unbindables.push(e)}bind(e,t=this){if(this.source===e)return;let s=this.behaviors;if(null===s){this.source=e,this.context=t,this.behaviors=s=new Array(this.factories.length);const n=this.factories;for(let e=0,t=n.length;e<t;++e){const t=n[e].createBehavior();t.bind(this),s[e]=t}}else{null!==this.source&&this.evaluateUnbindables(),this.isBound=!1,this.source=e,this.context=t;for(let e=0,t=s.length;e<t;++e)s[e].bind(this)}this.isBound=!0}unbind(){this.isBound&&null!==this.source&&(this.evaluateUnbindables(),this.source=null,this.context=this,this.isBound=!1)}evaluateUnbindables(){const e=this.unbindables;for(let t=0,s=e.length;t<s;++t)e[t].unbind(this);e.length=0}static disposeContiguousBatch(e){if(0!==e.length){Ie(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}b(Le),L.defineProperty(Le.prototype,"index"),L.defineProperty(Le.prototype,"length");const ze=(e,t)=>`${e}.${t}`,Fe={},Pe={index:0,node:null};function _e(e){e.startsWith("fast-")||u.warn(1204,{name:e})}const Re=new Proxy(document.createElement("div"),{get(e,t){_e(t);const s=Reflect.get(e,t);return a(s)?s.bind(e):s},set:(e,t,s)=>(_e(t),Reflect.set(e,t,s))});class De{constructor(e,t,s){this.fragment=e,this.directives=t,this.policy=s,this.proto=null,this.nodeIds=new Set,this.descriptors={},this.factories=[]}addFactory(e,t,s,n,i){var r,o;this.nodeIds.has(s)||(this.nodeIds.add(s),this.addTargetDescriptor(t,s,n)),e.id=null!==(r=e.id)&&void 0!==r?r:Ae(),e.targetNodeId=s,e.targetTagName=i,e.policy=null!==(o=e.policy)&&void 0!==o?o:this.policy,this.factories.push(e)}freeze(){return this.proto=Object.create(null,this.descriptors),this}addTargetDescriptor(e,t,s){const n=this.descriptors;if("r"===t||"h"===t||n[t])return;if(!n[e]){const t=e.lastIndexOf("."),s=e.substring(0,t),n=parseInt(e.substring(t+1));this.addTargetDescriptor(s,e,n)}let i=Fe[t];if(!i){const n=`_${t}`;Fe[t]=i={get(){var t;return null!==(t=this[n])&&void 0!==t?t:this[n]=this[e].childNodes[s]}}}n[t]=i}createView(e){const t=this.fragment.cloneNode(!0),s=Object.create(this.proto);s.r=t,s.h=null!=e?e:Re;for(const e of this.nodeIds)s[e];return new Le(t,this.factories,s)}}function He(e,t,s,n,i,r=!1){const o=s.attributes,l=e.directives;for(let a=0,c=o.length;a<c;++a){const h=o[a],d=h.value,u=Be.parse(d,l);let f=null;null===u?r&&(f=new Ve(re((()=>d),e.policy)),$e.assignAspect(f,h.name)):f=Qe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,n,i,s.tagName))}}function Ue(e,t,s){let n=0,i=t.firstChild;for(;i;){const t=qe(e,s,i,n);i=t.node,n=t.index}}function qe(e,t,s,n){const i=ze(t,n);switch(s.nodeType){case 1:He(e,t,s,i,n),Ue(e,s,i);break;case 3:return function(e,t,s,n,i){const r=Be.parse(t.textContent,e.directives);if(null===r)return Pe.node=t.nextSibling,Pe.index=i+1,Pe;let o,l=o=t;for(let t=0,a=r.length;t<a;++t){const a=r[t];0!==t&&(i++,n=ze(s,i),o=l.parentNode.insertBefore(document.createTextNode(""),l.nextSibling)),c(a)?o.textContent=a:(o.textContent=" ",$e.assignAspect(a),e.addFactory(a,s,n,i,null)),l=o}return Pe.index=i+1,Pe.node=l.nextSibling,Pe}(e,s,t,i,n);case 8:const r=Be.parse(s.data,e.directives);null!==r&&e.addFactory(Qe.aggregate(r),t,i,n,null)}return Pe.index=n+1,Pe.node=s.nextSibling,Pe}const Qe={compile(e,t,s=x.policy){let n;if(c(e)){n=document.createElement("TEMPLATE"),n.innerHTML=s.createHTML(e);const t=n.content.firstElementChild;null!==t&&"TEMPLATE"===t.tagName&&(n=t)}else n=e;const i=document.adoptNode(n.content),r=new De(i,t,s);var o,l;return He(r,"",n,"h",0,!0),o=i.firstChild,l=t,(o&&8==o.nodeType&&null!==Be.parse(o.data,l)||1===i.childNodes.length&&Object.keys(t).length>0)&&i.insertBefore(document.createComment(""),i.firstChild),Ue(r,i,"r"),Pe.node=null,r.freeze()},setDefaultStrategy(e){this.compile=e},aggregate(e,t=x.policy){if(1===e.length)return e[0];let s,n,i,r=!1;const o=e.length,l=e.map((e=>c(e)?()=>e:(s=e.sourceAspect||s,n=e.dataBinding||n,r=r||e.dataBinding.isVolatile,i=i||e.dataBinding.policy,e.dataBinding.evaluate)));n.evaluate=(e,t)=>{let s="";for(let n=0;n<o;++n)s+=l[n](e,t);return s},n.isVolatile=r,n.policy=null!=i?i:t;const a=new Ve(n);return $e.assignAspect(a,s),a}},We=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,Je=Object.create(null);class Ke{constructor(e,t=Je){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function Ge(e,t,s,n=$e.getForInstance(e)){if(n.aspected){const s=We.exec(t);null!==s&&$e.assignAspect(e,s[2])}return e.createHTML(s)}Ke.empty=new Ke(""),$e.define(Ke);class Xe{constructor(e,t={},s){this.policy=s,this.result=null,this.html=e,this.factories=t}create(e){return null===this.result&&(this.result=Qe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new Ke(c(this.html)?this.html:this.html.innerHTML,this.factories)}withPolicy(e){if(this.result)throw u.error(1208);if(this.policy)throw u.error(1207);return this.policy=e,this}render(e,t,s){const n=this.create(s);return n.bind(e),n.appendTo(t),n}static create(e,t,s){let n="";const i=Object.create(null),r=e=>{var t;const s=null!==(t=e.id)&&void 0!==t?t:e.id=Ae();return i[s]=e,s};for(let s=0,i=e.length-1;s<i;++s){const i=e[s];let o,l=t[s];if(n+=i,a(l))l=new Ve(se(l));else if(l instanceof ee)l=new Ve(l);else if(!(o=$e.getForInstance(l))){const e=l;l=new Ve(re((()=>e)))}n+=Ge(l,i,r,o)}return new Xe(n+e[e.length-1],i,s)}}b(Xe);const Ye=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Xe.create(e,t);throw u.error(1206)};Ye.partial=e=>new Ke(e);class Ze extends Me{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}$e.define(Ze);const et=e=>new Ze(e);function tt(e,t){const s=a(e)?e:()=>e,n=a(t)?t:()=>t;return(e,t)=>s(e,t)?n(e,t):null}const st=Object.freeze({positioning:!1,recycle:!0});function nt(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.bind(t[s])}function it(e,t,s,n){e.context.parent=n.source,e.context.parentContext=n.context,e.context.length=t.length,e.context.index=s,e.bind(t[s])}class rt{constructor(e){this.directive=e,this.items=null,this.itemsObserver=null,this.bindView=nt,this.views=[],this.itemsBindingObserver=e.dataBinding.createObserver(this,e),this.templateBindingObserver=e.templateBinding.createObserver(this,e),e.options.positioning&&(this.bindView=it)}bind(e){this.location=e.targets[this.directive.targetNodeId],this.controller=e,this.items=this.itemsBindingObserver.bind(e),this.template=this.templateBindingObserver.bind(e),this.observeItems(!0),this.refreshAllViews(),e.onUnbind(this)}unbind(){null!==this.itemsObserver&&this.itemsObserver.unsubscribe(this),this.unbindAllViews()}handleChange(e,t){if(t===this.itemsBindingObserver)this.items=this.itemsBindingObserver.bind(this.controller),this.observeItems(),this.refreshAllViews();else if(t===this.templateBindingObserver)this.template=this.templateBindingObserver.bind(this.controller),this.refreshAllViews(!0);else{if(!t[0])return;t[0].reset?this.refreshAllViews():this.updateViews(t)}}observeItems(e=!1){if(!this.items)return void(this.items=f);const t=this.itemsObserver,s=this.itemsObserver=L.getNotifier(this.items),n=t!==s;n&&null!==t&&t.unsubscribe(this),(n||e)&&s.subscribe(this)}updateViews(e){const t=this.views,s=this.bindView,n=this.items,i=this.template,r=this.controller,o=this.directive.options.recycle,l=[];let a=0,c=0;for(let h=0,d=e.length;h<d;++h){const d=e[h],u=d.removed;let f=0,p=d.index;const g=p+d.addedCount,b=t.splice(d.index,u.length),v=c=l.length+b.length;for(;p<g;++p){const e=t[p],h=e?e.firstChild:this.location;let d;o&&c>0?(f<=v&&b.length>0?(d=b[f],f++):(d=l[a],a++),c--):d=i.create(),t.splice(p,0,d),s(d,n,p,r),d.insertBefore(h)}b[f]&&l.push(...b.slice(f))}for(let e=a,t=l.length;e<t;++e)l[e].dispose();if(this.directive.options.positioning)for(let e=0,s=t.length;e<s;++e){const n=t[e].context;n.length=s,n.index=e}}refreshAllViews(e=!1){const t=this.items,s=this.template,n=this.location,i=this.bindView,r=this.controller;let o=t.length,l=this.views,a=l.length;if(0!==o&&!e&&this.directive.options.recycle||(Le.disposeContiguousBatch(l),a=0),0===a){this.views=l=new Array(o);for(let e=0;e<o;++e){const o=s.create();i(o,t,e,r),l[e]=o,o.insertBefore(n)}}else{let e=0;for(;e<o;++e)if(e<a){i(l[e],t,e,r)}else{const o=s.create();i(o,t,e,r),l.push(o),o.insertBefore(n)}const c=l.splice(e,a-e);for(e=0,o=c.length;e<o;++e)c[e].dispose()}}unbindAllViews(){const e=this.views;for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}class ot{constructor(e,t,s){this.dataBinding=e,this.templateBinding=t,this.options=s,Y.enable()}createHTML(e){return ke.comment(e(this))}createBehavior(){return new rt(this)}}function lt(e,t,s=st){const n=oe(e),i=oe(t);return new ot(n,i,Object.assign(Object.assign({},st),s))}$e.define(ot);const at=e=>1===e.nodeType,ct=e=>e?t=>1===t.nodeType&&t.matches(e):at;class ht extends Me{get id(){return this._id}set id(e){this._id=e,this._controllerProperty=`${e}-c`}bind(e){const t=e.targets[this.targetNodeId];t[this._controllerProperty]=e,this.updateTarget(e.source,this.computeNodes(t)),this.observe(t),e.onUnbind(this)}unbind(e){const t=e.targets[this.targetNodeId];this.updateTarget(e.source,f),this.disconnect(t),t[this._controllerProperty]=null}getSource(e){return e[this._controllerProperty].source}updateTarget(e,t){e[this.options.property]=t}computeNodes(e){let t=this.getNodes(e);return"filter"in this.options&&(t=t.filter(this.options.filter)),t}}class dt extends ht{observe(e){e.addEventListener("slotchange",this)}disconnect(e){e.removeEventListener("slotchange",this)}getNodes(e){return e.assignedNodes(this.options)}handleEvent(e){const t=e.currentTarget;this.updateTarget(this.getSource(t),this.computeNodes(t))}}function ut(e){return c(e)&&(e={property:e}),new dt(e)}$e.define(dt);class ft extends ht{constructor(e){super(e),this.observerProperty=`${this.id}-o`,this.handleEvent=(e,t)=>{const s=t.target;this.updateTarget(this.getSource(s),this.computeNodes(s))},e.childList=!0}observe(e){let t=e[this.observerProperty];t||(t=new MutationObserver(this.handleEvent),t.toJSON=h,t.target=e,e[this.observerProperty]=t),t.observe(e,this.options)}disconnect(e){const t=e[this.observerProperty];t.target=null,t.disconnect()}getNodes(e){return"selector"in this.options?Array.from(e.querySelectorAll(this.options.selector)):Array.from(e.childNodes)}}function pt(e){return c(e)&&(e={property:e}),new ft(e)}$e.define(ft);const gt=Object.freeze({locate:g()}),bt={toView:e=>e?"true":"false",fromView:e=>null!=e&&"false"!==e&&!1!==e&&0!==e},vt={toView:e=>"boolean"==typeof e?e.toString():"",fromView:e=>[null,void 0,void 0].includes(e)?null:bt.fromView(e)};function yt(e){if(null==e)return null;const t=1*e;return isNaN(t)?null:t}const mt={toView(e){const t=yt(e);return t?t.toString():t},fromView:yt};class wt{constructor(e,t,s=t.toLowerCase(),n="reflect",i){this.guards=new Set,this.Owner=e,this.name=t,this.attribute=s,this.mode=n,this.converter=i,this.fieldName=`_${t}`,this.callbackName=`${t}Changed`,this.hasCallback=this.callbackName in e.prototype,"boolean"===n&&void 0===i&&(this.converter=bt)}setValue(e,t){const s=e[this.fieldName],n=this.converter;void 0!==n&&(t=n.fromView(t)),s!==t&&(e[this.fieldName]=t,this.tryReflectToAttribute(e),this.hasCallback&&e[this.callbackName](s,t),e.$fastController.notify(this.name))}getValue(e){return L.track(e,this.name),e[this.fieldName]}onAttributeChangedCallback(e,t){this.guards.has(e)||(this.guards.add(e),this.setValue(e,t),this.guards.delete(e))}tryReflectToAttribute(e){const t=this.mode,s=this.guards;s.has(e)||"fromView"===t||M.enqueue((()=>{s.add(e);const n=e[this.fieldName];switch(t){case"reflect":const t=this.converter;x.setAttribute(e,this.attribute,void 0!==t?t.toView(n):n);break;case"boolean":x.setBooleanAttribute(e,this.attribute,n)}s.delete(e)}))}static collect(e,...t){const s=[];t.push(gt.locate(e));for(let n=0,i=t.length;n<i;++n){const i=t[n];if(void 0!==i)for(let t=0,n=i.length;t<n;++t){const n=i[t];c(n)?s.push(new wt(e,n)):s.push(new wt(e,n.property,n.attribute,n.mode,n.converter))}}return s}}function Ct(e,t){let s;function n(e,t){arguments.length>1&&(s.property=t),gt.locate(e.constructor).push(s)}return arguments.length>1?(s={},void n(e,t)):(s=void 0===e?{}:e,n)}const xt={mode:"open"},St={},Tt=new Set,Ot=u.getById(l.elementRegistry,(()=>p()));class At{constructor(e,t=e.definition){var s;this.platformDefined=!1,c(t)&&(t={name:t}),this.type=e,this.name=t.name,this.template=t.template,this.registry=null!==(s=t.registry)&&void 0!==s?s:customElements;const n=e.prototype,i=wt.collect(e,t.attributes),r=new Array(i.length),o={},l={};for(let e=0,t=i.length;e<t;++e){const t=i[e];r[e]=t.attribute,o[t.name]=t,l[t.attribute]=t,L.defineProperty(n,t)}Reflect.defineProperty(e,"observedAttributes",{value:r,enumerable:!0}),this.attributes=i,this.propertyLookup=o,this.attributeLookup=l,this.shadowOptions=void 0===t.shadowOptions?xt:null===t.shadowOptions?void 0:Object.assign(Object.assign({},xt),t.shadowOptions),this.elementOptions=void 0===t.elementOptions?St:Object.assign(Object.assign({},St),t.elementOptions),this.styles=ce.normalize(t.styles),Ot.register(this)}get isDefined(){return this.platformDefined}define(e=this.registry){const t=this.type;return e.get(this.name)||(this.platformDefined=!0,e.define(this.name,t,this.elementOptions)),this}static compose(e,t){return Tt.has(e)||Ot.getByType(e)?new At(class extends e{},t):new At(e,t)}static registerBaseType(e){Tt.add(e)}}At.getByType=Ot.getByType,At.getForInstance=Ot.getForInstance;const kt={bubbles:!0,composed:!0,cancelable:!0},Bt=new WeakMap;function jt(e){var t,s;return null!==(s=null!==(t=e.shadowRoot)&&void 0!==t?t:Bt.get(e))&&void 0!==s?s:null}let $t;class Nt extends V{constructor(e,t){super(e),this.boundObservables=null,this.needsInitialization=!0,this.hasExistingShadowRoot=!1,this._template=null,this.stage=3,this.guardBehaviorConnection=!1,this.behaviors=null,this._mainStyles=null,this.$fastController=this,this.view=null,this.source=e,this.definition=t;const s=t.shadowOptions;if(void 0!==s){let t=e.shadowRoot;t?this.hasExistingShadowRoot=!0:(t=e.attachShadow(s),"closed"===s.mode&&Bt.set(e,t))}const n=L.getAccessors(e);if(n.length>0){const t=this.boundObservables=Object.create(null);for(let s=0,i=n.length;s<i;++s){const i=n[s].name,r=e[i];void 0!==r&&(delete e[i],t[i]=r)}}}get isConnected(){return L.track(this,"isConnected"),1===this.stage}get context(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.context)&&void 0!==t?t:_.default}get isBound(){var e,t;return null!==(t=null===(e=this.view)||void 0===e?void 0:e.isBound)&&void 0!==t&&t}get sourceLifetime(){var e;return null===(e=this.view)||void 0===e?void 0:e.sourceLifetime}get template(){var e;if(null===this._template){const t=this.definition;this.source.resolveTemplate?this._template=this.source.resolveTemplate():t.template&&(this._template=null!==(e=t.template)&&void 0!==e?e:null)}return this._template}set template(e){this._template!==e&&(this._template=e,this.needsInitialization||this.renderTemplate(e))}get mainStyles(){var e;if(null===this._mainStyles){const t=this.definition;this.source.resolveStyles?this._mainStyles=this.source.resolveStyles():t.styles&&(this._mainStyles=null!==(e=t.styles)&&void 0!==e?e:null)}return this._mainStyles}set mainStyles(e){this._mainStyles!==e&&(null!==this._mainStyles&&this.removeStyles(this._mainStyles),this._mainStyles=e,this.needsInitialization||this.addStyles(e))}onUnbind(e){var t;null===(t=this.view)||void 0===t||t.onUnbind(e)}addBehavior(e){var t,s;const n=null!==(t=this.behaviors)&&void 0!==t?t:this.behaviors=new Map,i=null!==(s=n.get(e))&&void 0!==s?s:0;0===i?(n.set(e,1),e.addedCallback&&e.addedCallback(this),!e.connectedCallback||this.guardBehaviorConnection||1!==this.stage&&0!==this.stage||e.connectedCallback(this)):n.set(e,i+1)}removeBehavior(e,t=!1){const s=this.behaviors;if(null===s)return;const n=s.get(e);void 0!==n&&(1===n||t?(s.delete(e),e.disconnectedCallback&&3!==this.stage&&e.disconnectedCallback(this),e.removedCallback&&e.removedCallback(this)):s.set(e,n-1))}addStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=jt(s))&&void 0!==t?t:this.source).append(e)}else if(!e.isAttachedTo(s)){const t=e.behaviors;if(e.addStylesTo(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}removeStyles(e){var t;if(!e)return;const s=this.source;if(e instanceof HTMLElement){(null!==(t=jt(s))&&void 0!==t?t:s).removeChild(e)}else if(e.isAttachedTo(s)){const t=e.behaviors;if(e.removeStylesFrom(s),null!==t)for(let e=0,s=t.length;e<s;++e)this.addBehavior(t[e])}}connect(){if(3!==this.stage)return;if(this.stage=0,null!==this.boundObservables){const e=this.source,t=this.boundObservables,s=Object.keys(t);for(let n=0,i=s.length;n<i;++n){const i=s[n];e[i]=t[i]}this.boundObservables=null}const e=this.behaviors;if(null!==e){this.guardBehaviorConnection=!0;for(const t of e.keys())t.connectedCallback&&t.connectedCallback(this);this.guardBehaviorConnection=!1}this.needsInitialization?(this.renderTemplate(this.template),this.addStyles(this.mainStyles),this.needsInitialization=!1):null!==this.view&&this.view.bind(this.source),this.stage=1,L.notify(this,"isConnected")}disconnect(){if(1!==this.stage)return;this.stage=2,L.notify(this,"isConnected"),null!==this.view&&this.view.unbind();const e=this.behaviors;if(null!==e)for(const t of e.keys())t.disconnectedCallback&&t.disconnectedCallback(this);this.stage=3}onAttributeChangedCallback(e,t,s){const n=this.definition.attributeLookup[e];void 0!==n&&n.onAttributeChangedCallback(this.source,s)}emit(e,t,s){return 1===this.stage&&this.source.dispatchEvent(new CustomEvent(e,Object.assign(Object.assign({detail:t},kt),s)))}renderTemplate(e){var t;const s=this.source,n=null!==(t=jt(s))&&void 0!==t?t:s;if(null!==this.view)this.view.dispose(),this.view=null;else if(!this.needsInitialization||this.hasExistingShadowRoot){this.hasExistingShadowRoot=!1;for(let e=n.firstChild;null!==e;e=n.firstChild)n.removeChild(e)}e&&(this.view=e.render(s,n,s),this.view.sourceLifetime=I.coupled)}static forCustomElement(e){const t=e.$fastController;if(void 0!==t)return t;const s=At.getForInstance(e);if(void 0===s)throw u.error(1401);return e.$fastController=new $t(e,s)}static setStrategy(e){$t=e}}function Mt(e){var t;return"adoptedStyleSheets"in e?e:null!==(t=jt(e))&&void 0!==t?t:e.getRootNode()}b(Nt),Nt.setStrategy(Nt);class Et{constructor(e){const t=Et.styleSheetCache;this.sheets=e.map((e=>{if(e instanceof CSSStyleSheet)return e;let s=t.get(e);return void 0===s&&(s=new CSSStyleSheet,s.replaceSync(e),t.set(e,s)),s}))}addStylesTo(e){const t=Mt(e);t.adoptedStyleSheets=[...t.adoptedStyleSheets,...this.sheets]}removeStylesFrom(e){const t=Mt(e),s=this.sheets;t.adoptedStyleSheets=t.adoptedStyleSheets.filter((e=>-1===s.indexOf(e)))}}Et.styleSheetCache=new Map;let Vt=0;function It(e){return e===document?document.body:e}function Lt(e){const t=class extends e{constructor(){super(),Nt.forCustomElement(this)}$emit(e,t,s){return this.$fastController.emit(e,t,s)}connectedCallback(){this.$fastController.connect()}disconnectedCallback(){this.$fastController.disconnect()}attributeChangedCallback(e,t,s){this.$fastController.onAttributeChangedCallback(e,t,s)}};return At.registerBaseType(t),t}function zt(e,t){return a(e)?At.compose(e,t).define().type:At.compose(this,e).define().type}ce.setDefaultStrategy(ce.supportsAdoptedStyleSheets?Et:class{constructor(e){this.styles=e,this.styleClass="fast-"+ ++Vt}addStylesTo(e){e=It(Mt(e));const t=this.styles,s=this.styleClass;for(let n=0;n<t.length;n++){const i=document.createElement("style");i.innerHTML=t[n],i.className=s,e.append(i)}}removeStylesFrom(e){const t=(e=It(Mt(e))).querySelectorAll(`.${this.styleClass}`);for(let s=0,n=t.length;s<n;++s)e.removeChild(t[s])}});const Ft=Object.assign(Lt(HTMLElement),{from:function(e){return Lt(e)},define:zt,compose:function(e,t){return a(e)?At.compose(e,t):At.compose(this,e)}});function Pt(e){return function(t){zt(t,e)}}x.setPolicy(N.create());export{Y as ArrayObserver,gt as AttributeConfiguration,wt as AttributeDefinition,ee as Binding,pe as CSSBindingDirective,de as CSSDirective,ft as ChildrenDirective,Qe as Compiler,x as DOM,v as DOMAspect,Nt as ElementController,ce as ElementStyles,_ as ExecutionContext,u as FAST,Ft as FASTElement,At as FASTElementDefinition,Ve as HTMLBindingDirective,$e as HTMLDirective,Le as HTMLView,Ke as InlineTemplateDirective,ke as Markup,ht as NodeObservationDirective,L as Observable,Be as Parser,V as PropertyChangeNotifier,Ze as RefDirective,rt as RepeatBehavior,ot as RepeatDirective,dt as SlottedDirective,I as SourceLifetime,R as Splice,J as SpliceStrategy,D as SpliceStrategySupport,Me as StatelessAttachedAttributeDirective,E as SubscriberSet,M as Updates,Xe as ViewTemplate,Ct as attr,bt as booleanConverter,pt as children,me as css,ue as cssDirective,Pt as customElement,ct as elements,f as emptyArray,Ye as html,Ne as htmlDirective,Z as lengthOf,ne as listener,oe as normalizeBinding,vt as nullableBooleanConverter,mt as nullableNumberConverter,z as observable,re as oneTime,se as oneWay,et as ref,lt as repeat,ut as slotted,F as volatile,tt as when};
@@ -1825,6 +1825,20 @@ function oneTime(expression, policy) {
1825
1825
  return new OneTimeBinding(expression, policy);
1826
1826
  }
1827
1827
 
1828
+ /**
1829
+ * Normalizes the input value into a binding.
1830
+ * @param value - The value to create the default binding for.
1831
+ * @returns A binding configuration for the provided value.
1832
+ * @public
1833
+ */
1834
+ function normalizeBinding(value) {
1835
+ return isFunction(value)
1836
+ ? oneWay(value)
1837
+ : value instanceof Binding
1838
+ ? value
1839
+ : oneTime(() => value);
1840
+ }
1841
+
1828
1842
  let DefaultStyleStrategy;
1829
1843
  function reduceStyles(styles) {
1830
1844
  return styles
@@ -3211,20 +3225,6 @@ function when(condition, templateOrTemplateBinding) {
3211
3225
  return (source, context) => dataBinding(source, context) ? templateBinding(source, context) : null;
3212
3226
  }
3213
3227
 
3214
- /**
3215
- * Normalizes the input value into a binding.
3216
- * @param value - The value to create the default binding for.
3217
- * @returns A binding configuration for the provided value.
3218
- * @public
3219
- */
3220
- function normalizeBinding(value) {
3221
- return isFunction(value)
3222
- ? oneWay(value)
3223
- : value instanceof Binding
3224
- ? value
3225
- : oneTime(() => value);
3226
- }
3227
-
3228
3228
  const defaultRepeatOptions = Object.freeze({
3229
3229
  positioning: false,
3230
3230
  recycle: true,
@@ -4583,4 +4583,4 @@ function customElement(nameOrDef) {
4583
4583
 
4584
4584
  DOM.setPolicy(DOMPolicy.create());
4585
4585
 
4586
- export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };
4586
+ export { ArrayObserver, AttributeConfiguration, AttributeDefinition, Binding, CSSBindingDirective, CSSDirective, ChildrenDirective, Compiler, DOM, DOMAspect, ElementController, ElementStyles, ExecutionContext, FAST, FASTElement, FASTElementDefinition, HTMLBindingDirective, HTMLDirective, HTMLView, InlineTemplateDirective, Markup, NodeObservationDirective, Observable, Parser, PropertyChangeNotifier, RefDirective, RepeatBehavior, RepeatDirective, SlottedDirective, SourceLifetime, Splice, SpliceStrategy, SpliceStrategySupport, StatelessAttachedAttributeDirective, SubscriberSet, Updates, ViewTemplate, attr, booleanConverter, children, css, cssDirective, customElement, elements, emptyArray, html, htmlDirective, lengthOf, listener, normalizeBinding, nullableBooleanConverter, nullableNumberConverter, observable, oneTime, oneWay, ref, repeat, slotted, volatile, when };
@@ -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}}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)}let ee;function te(e){return e.map((e=>e instanceof se?te(e.styles):[e])).reduce(((e,t)=>e.concat(t)),[])}h(Y);class se{constructor(e){this.styles=e,this.targets=new WeakSet,this._strategy=null,this.behaviors=e.map((e=>e instanceof se?e.behaviors:null)).reduce(((e,t)=>null===t?e:null===e?t:e.concat(t)),null)}get strategy(){return null===this._strategy&&this.withStrategy(ee),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(te(this.styles)),this}static setDefaultStrategy(e){ee=e}static normalize(e){return void 0===e?void 0:Array.isArray(e)?new se(e):e instanceof se?e:new se([e])}}se.supportsAdoptedStyleSheets=Array.isArray(document.adoptedStyleSheets)&&"replace"in CSSStyleSheet.prototype;const ie=a(),ne=Object.freeze({getForInstance:ie.getForInstance,getByType:ie.getByType,define:e=>(ie.register({type:e}),e)});function re(){return function(e){ne.define(e)}}function oe(e,t,s){t.source.style.setProperty(e.targetAspect,s.bind(t))}class le{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)=>oe(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){oe(this,e,e[this.targetAspect])}removedCallback(e){e.source.$cssBindings&&e.source.$cssBindings.delete(this)}handleChange(e,t){oe(this,t.controller,t)}}ne.define(le);const ae=`${Math.random().toString(36).substring(2,8)}`;let ce=0;const he=()=>`--v${ae}${++ce}`;function de(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 le(K(l),he()).createCSS(o):l instanceof J?l=new le(l,he()).createCSS(o):void 0!==ne.getForInstance(l)&&(l=l.createCSS(o)),l instanceof se||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 ue=(e,...t)=>{const{styles:s,behaviors:i}=de(e,t),n=new se(s);return i.length?n.withBehaviors(...i):n};class fe{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 se(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)}}ne.define(fe),ue.partial=(e,...t)=>{const{styles:s,behaviors:i}=de(e,t);return new fe(s,i)};const pe=`fast-${Math.random().toString(36).substring(2,8)}`,ge=`${pe}{`,be=`}${pe}`,ve=be.length;let ye=0;const me=()=>`${pe}-${++ye}`,we=Object.freeze({interpolation:e=>`${ge}${e}${be}`,attribute:e=>`${me()}="${ge}${e}${be}"`,comment:e=>`\x3c!--${ge}${e}${be}--\x3e`}),Ce=Object.freeze({parse(e,t){const s=e.split(ge);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(be);let o;if(-1===r)o=n;else{const e=n.substring(0,r);i.push(t[e]),o=n.substring(r+ve)}""!==o&&i.push(o)}return i}}),xe=a(),Se=Object.freeze({getForInstance:xe.getForInstance,getByType:xe.getByType,define:(e,t)=>((t=t||{}).type=e,xe.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 Te(e){return function(t){Se.define(t,e)}}class Oe{constructor(e){this.options=e}createHTML(e){return we.attribute(e(this))}createBehavior(){return this}}h(Oe);const Ae={[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 Be{constructor(e){this.dataBinding=e,this.updateTarget=null,this.aspectType=d.content}createHTML(e){return we.interpolation(e(this))}createBehavior(){var e;if(null===this.updateTarget){const t=Ae[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 ke(e,t){const s=e.parentNode;let i,n=e;for(;n!==t;)i=n.nextSibling,s.removeChild(n),n=i;s.removeChild(t)}Se.define(Be,{aspected:!0});class je{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(){ke(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){ke(e[0].firstChild,e[e.length-1].lastChild);for(let t=0,s=e.length;t<s;++t)e[t].unbind()}}}h(je),$.defineProperty(je.prototype,"index"),$.defineProperty(je.prototype,"length");const $e=(e,t)=>`${e}.${t}`,Ne={},Ve={index:0,node:null};function Ee(e){e.startsWith("fast-")||o.warn(1204,{name:e})}const ze=new Proxy(document.createElement("div"),{get(e,t){Ee(t);const i=Reflect.get(e,t);return s(i)?i.bind(e):i},set:(e,t,s)=>(Ee(t),Reflect.set(e,t,s))});class Le{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:me(),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=Ne[t];if(!n){const i=`_${t}`;Ne[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:ze;for(const e of this.nodeIds)s[e];return new je(t,this.factories,s)}}function Ie(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 Be(Z((()=>d),e.policy)),Se.assignAspect(f,h.name)):f=Fe.aggregate(u,e.policy),null!==f&&(s.removeAttributeNode(h),a--,c--,e.addFactory(f,t,i,n,s.tagName))}}function Me(e,t,s){let i=0,n=t.firstChild;for(;n;){const t=_e(e,s,n,i);n=t.node,i=t.index}}function _e(e,t,s,n){const r=$e(t,n);switch(s.nodeType){case 1:Ie(e,t,s,r,n),Me(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 Ve.node=t.nextSibling,Ve.index=r+1,Ve;let l,a=l=t;for(let t=0,c=o.length;t<c;++t){const c=o[t];0!==t&&(r++,n=$e(s,r),l=a.parentNode.insertBefore(document.createTextNode(""),a.nextSibling)),i(c)?l.textContent=c:(l.textContent=" ",Se.assignAspect(c),e.addFactory(c,s,n,r,null)),a=l}return Ve.index=r+1,Ve.node=a.nextSibling,Ve}(e,s,t,r,n);case 8:const o=Ce.parse(s.data,e.directives);null!==o&&e.addFactory(Fe.aggregate(o),t,r,n,null)}return Ve.index=n+1,Ve.node=s.nextSibling,Ve}const Fe={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 Le(r,t,s);var l,a;return Ie(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),Me(o,r,"r"),Ve.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 Be(n);return Se.assignAspect(c,s),c}},Pe=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,Re=Object.create(null);class He{constructor(e,t=Re){this.html=e,this.factories=t}createHTML(e){const t=this.factories;for(const s in t)e(t[s]);return this.html}}function De(e,t,s,i=Se.getForInstance(e)){if(i.aspected){const s=Pe.exec(t);null!==s&&Se.assignAspect(e,s[2])}return e.createHTML(s)}He.empty=new He(""),Se.define(He);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=Fe.compile(this.html,this.factories,this.policy)),this.result.createView(e)}inline(){return new He(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=me();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 Be(K(a));else if(a instanceof J)a=new Be(a);else if(!(l=Se.getForInstance(a))){const e=a;a=new Be(Z((()=>e)))}n+=De(a,r,o,l)}return new Qe(n+e[e.length-1],r,i)}}h(Qe);const qe=(e,...t)=>{if(Array.isArray(e)&&Array.isArray(e.raw))return Qe.create(e,t);throw o.error(1206)};qe.partial=e=>new He(e);class Ue extends Oe{bind(e){e.source[this.options]=e.targets[this.targetNodeId]}}Se.define(Ue);const We=e=>new Ue(e);function Je(e,t){const i=s(e)?e:()=>e,n=s(t)?t:()=>t;return(e,t)=>i(e,t)?n(e,t):null}function Ge(e){return s(e)?K(e):e instanceof J?e:Z((()=>e))}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||(je.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 we.comment(e(this))}createBehavior(){return new Ze(this)}}function tt(e,t,s=Ke){const i=Ge(e),n=Ge(t);return new et(i,n,Object.assign(Object.assign({},Ke),s))}Se.define(et);const st=e=>1===e.nodeType,it=e=>e?t=>1===t.nodeType&&t.matches(e):st;class nt extends Oe{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)}Se.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)}Se.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=se.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}se.setDefaultStrategy(se.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,le as CSSBindingDirective,ne as CSSDirective,lt as ChildrenDirective,Fe as Compiler,b as DOM,d as DOMAspect,Ot as ElementController,se as ElementStyles,z as ExecutionContext,o as FAST,Vt as FASTElement,wt as FASTElementDefinition,Be as HTMLBindingDirective,Se as HTMLDirective,je as HTMLView,He as InlineTemplateDirective,we as Markup,nt as NodeObservationDirective,$ as Observable,Ce as Parser,k as PropertyChangeNotifier,Ue as RefDirective,Ze as RepeatBehavior,et as RepeatDirective,rt as SlottedDirective,j as SourceLifetime,L as Splice,H as SpliceStrategy,I as SpliceStrategySupport,Oe as StatelessAttachedAttributeDirective,B as SubscriberSet,A as Updates,Qe as ViewTemplate,gt as attr,ht as booleanConverter,at as children,ue as css,re as cssDirective,Et as customElement,it as elements,l as emptyArray,qe as html,Te as htmlDirective,W as lengthOf,X as listener,dt as nullableBooleanConverter,ft as nullableNumberConverter,N as observable,Z as oneTime,K as oneWay,We as ref,tt as repeat,ot as slotted,V as volatile,Je 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};
@@ -1908,6 +1908,14 @@ export declare abstract class NodeObservationDirective<T extends NodeBehaviorOpt
1908
1908
  protected abstract getNodes(target: any): Node[];
1909
1909
  }
1910
1910
 
1911
+ /**
1912
+ * Normalizes the input value into a binding.
1913
+ * @param value - The value to create the default binding for.
1914
+ * @returns A binding configuration for the provided value.
1915
+ * @public
1916
+ */
1917
+ export declare function normalizeBinding<TSource = any, TReturn = any, TParent = any>(value: Expression<TSource, TReturn, TParent> | Binding<TSource, TReturn, TParent> | {}): Binding<TSource, TReturn, TParent>;
1918
+
1911
1919
  /**
1912
1920
  * Provides change notifications for an observed subject.
1913
1921
  * @public
@@ -612,6 +612,9 @@ export abstract class NodeObservationDirective<T extends NodeBehaviorOptions> ex
612
612
  protected updateTarget(source: any, value: ReadonlyArray<any>): void;
613
613
  }
614
614
 
615
+ // @public
616
+ export function normalizeBinding<TSource = any, TReturn = any, TParent = any>(value: Expression<TSource, TReturn, TParent> | Binding<TSource, TReturn, TParent> | {}): Binding<TSource, TReturn, TParent>;
617
+
615
618
  // @public
616
619
  export interface Notifier {
617
620
  notify(args: any): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@microsoft/fast-element",
3
3
  "description": "A library for constructing Web Components",
4
- "version": "2.0.0-beta.22",
4
+ "version": "2.0.0-beta.23",
5
5
  "author": {
6
6
  "name": "Microsoft",
7
7
  "url": "https://discord.gg/FcSNfg4"