@fluid-topics/ft-trend 0.1.3

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/README.md ADDED
@@ -0,0 +1,23 @@
1
+ A trend component to compare evolution between two values
2
+
3
+ ## Install
4
+
5
+ ```shell
6
+ npm install @fluid-topics/ft-trend
7
+ yarn add @fluid-topics/ft-trend
8
+ ```
9
+
10
+ ## Usage
11
+
12
+ ```typescript
13
+ import { html } from "lit"
14
+ import "@fluid-topics/ft-trend"
15
+
16
+ function render() {
17
+ return html` <ft-trend>
18
+ title="Trend",
19
+ currentValue=3,
20
+ previousValue=2
21
+ </ft-trend> `
22
+ }
23
+ ```
@@ -0,0 +1,21 @@
1
+ import { ElementDefinitionsMap, FtCssVariable, FtLitElement } from "@fluid-topics/ft-wc-utils";
2
+ export interface FtTrendProperties {
3
+ label: string;
4
+ currentValue: number;
5
+ previousValue: number;
6
+ }
7
+ export declare const FtTrendCssVariables: {
8
+ textColor: FtCssVariable;
9
+ titleColor: FtCssVariable;
10
+ };
11
+ export declare class FtTrend extends FtLitElement implements FtTrendProperties {
12
+ static elementDefinitions: ElementDefinitionsMap;
13
+ getStyles(): import("lit").CSSResult;
14
+ label: string;
15
+ currentValue: number;
16
+ previousValue: number;
17
+ getTrendIcon(): "→" | "↗" | "↘";
18
+ getTrendPercentage(): string;
19
+ getTemplate(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ //# sourceMappingURL=ft-trend.d.ts.map
@@ -0,0 +1,101 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html } from "lit";
8
+ import { property } from "lit/decorators.js";
9
+ import { customElement, designSystemVariables, FtCssVariable, FtLitElement } from "@fluid-topics/ft-wc-utils";
10
+ import { FtTypography } from "@fluid-topics/ft-typography";
11
+ export const FtTrendCssVariables = {
12
+ textColor: FtCssVariable.external(designSystemVariables.colorOnSurfaceHigh, "Design system"),
13
+ titleColor: FtCssVariable.external(designSystemVariables.colorOnSurfaceMedium, "Design system")
14
+ };
15
+ let FtTrend = class FtTrend extends FtLitElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.label = "Trend";
19
+ this.currentValue = 3;
20
+ this.previousValue = 2;
21
+ }
22
+ getStyles() {
23
+ // language=CSS
24
+ return css `
25
+ .ft-trend {
26
+ text-align: center;
27
+ color: ${FtTrendCssVariables.textColor};
28
+ }
29
+
30
+ .ft-trend .title {
31
+ color: ${FtTrendCssVariables.titleColor};
32
+ }
33
+ `;
34
+ }
35
+ getTrendIcon() {
36
+ if (this.currentValue == this.previousValue) {
37
+ return "\u2192";
38
+ }
39
+ else if (this.currentValue > this.previousValue) {
40
+ return "\u2197";
41
+ }
42
+ else {
43
+ return "\u2198";
44
+ }
45
+ }
46
+ getTrendPercentage() {
47
+ let factor = (this.currentValue - this.previousValue) / this.previousValue;
48
+ let percent = Math.round(100 * factor);
49
+ let sign = (percent >= 0) ? "+" : "-";
50
+ return `${sign}${Math.abs(percent)}%`;
51
+ }
52
+ getTemplate() {
53
+ if (this.previousValue == 0) {
54
+ return html `
55
+ <div class="ft-trend">
56
+ <ft-typography variant="subtitle2" class="title">
57
+ ${this.label}
58
+ </ft-typography>
59
+ <div>
60
+ <ft-typography variant="body2">
61
+ No previous value
62
+ </ft-typography>
63
+ </div>
64
+ </div>
65
+ `;
66
+ }
67
+ else {
68
+ return html `
69
+ <div class="ft-trend">
70
+ <ft-typography variant="subtitle2" class="title">
71
+ ${this.label}
72
+ </ft-typography>
73
+ <div>
74
+ <ft-typography variant="title">
75
+ ${this.currentValue.toLocaleString()}
76
+ </ft-typography>
77
+ <span>${this.getTrendIcon()}</span>
78
+ <ft-typography variant="body2">
79
+ ${this.getTrendPercentage()}
80
+ </ft-typography>
81
+ </div>
82
+ </div>
83
+ `;
84
+ }
85
+ }
86
+ };
87
+ FtTrend.elementDefinitions = { "ft-typography": FtTypography };
88
+ __decorate([
89
+ property({ type: String })
90
+ ], FtTrend.prototype, "label", void 0);
91
+ __decorate([
92
+ property({ type: Number })
93
+ ], FtTrend.prototype, "currentValue", void 0);
94
+ __decorate([
95
+ property({ type: Number })
96
+ ], FtTrend.prototype, "previousValue", void 0);
97
+ FtTrend = __decorate([
98
+ customElement("ft-trend")
99
+ ], FtTrend);
100
+ export { FtTrend };
101
+ //# sourceMappingURL=ft-trend.js.map
@@ -0,0 +1,144 @@
1
+ !function(t){
2
+ /**
3
+ * @license
4
+ * Copyright 2019 Google LLC
5
+ * SPDX-License-Identifier: BSD-3-Clause
6
+ */
7
+ const e=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),o=new Map;class n{constructor(t,e){if(this._$cssResult$=!0,e!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=o.get(this.cssText);return e&&void 0===t&&(o.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const r=t=>new n("string"==typeof t?t:t+"",i),s=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,i,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[o+1]),t[0]);return new n(o,i)},a=(t,i)=>{e?t.adoptedStyleSheets=i.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):i.forEach((e=>{const i=document.createElement("style"),o=window.litNonce;void 0!==o&&i.setAttribute("nonce",o),i.textContent=e.cssText,t.appendChild(i)}))},l=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return r(e)})(t):t
8
+ /**
9
+ * @license
10
+ * Copyright 2017 Google LLC
11
+ * SPDX-License-Identifier: BSD-3-Clause
12
+ */;var h;const c=window.trustedTypes,p=c?c.emptyScript:"",f=window.reactiveElementPolyfillSupport,u={toAttribute(t,e){switch(e){case Boolean:t=t?p:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},d=(t,e)=>e!==t&&(e==e||t==t),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:d};class g extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const o=this._$Eh(i,e);void 0!==o&&(this._$Eu.set(o,i),t.push(o))})),t}static createProperty(t,e=y){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,o=this.getPropertyDescriptor(t,i,e);void 0!==o&&Object.defineProperty(this.prototype,t,o)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(o){const n=this[t];this[e]=o,this.requestUpdate(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||y}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(l(t))}else void 0!==t&&e.push(l(t));return e}static _$Eh(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return a(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$ES(t,e,i=y){var o,n;const r=this.constructor._$Eh(t,i);if(void 0!==r&&!0===i.reflect){const s=(null!==(n=null===(o=i.converter)||void 0===o?void 0:o.toAttribute)&&void 0!==n?n:u.toAttribute)(e,i.type);this._$Ei=t,null==s?this.removeAttribute(r):this.setAttribute(r,s),this._$Ei=null}}_$AK(t,e){var i,o,n;const r=this.constructor,s=r._$Eu.get(t);if(void 0!==s&&this._$Ei!==s){const t=r.getPropertyOptions(s),a=t.converter,l=null!==(n=null!==(o=null===(i=a)||void 0===i?void 0:i.fromAttribute)&&void 0!==o?o:"function"==typeof a?a:null)&&void 0!==n?n:u.fromAttribute;this._$Ei=s,this[s]=l(e,t.type),this._$Ei=null}}requestUpdate(t,e,i){let o=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||d)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Ei!==t&&(void 0===this._$E_&&(this._$E_=new Map),this._$E_.set(t,i))):o=!1),!this.isUpdatePending&&o&&(this._$Ep=this._$EC())}async _$EC(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$E_&&(this._$E_.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$E_=void 0),this._$EU()}updated(t){}firstUpdated(t){}}
13
+ /**
14
+ * @license
15
+ * Copyright 2017 Google LLC
16
+ * SPDX-License-Identifier: BSD-3-Clause
17
+ */
18
+ var v;g.finalized=!0,g.elementProperties=new Map,g.elementStyles=[],g.shadowRootOptions={mode:"open"},null==f||f({ReactiveElement:g}),(null!==(h=globalThis.reactiveElementVersions)&&void 0!==h?h:globalThis.reactiveElementVersions=[]).push("1.2.2");const b=globalThis.trustedTypes,m=b?b.createPolicy("lit-html",{createHTML:t=>t}):void 0,x=`lit$${(Math.random()+"").slice(9)}$`,w="?"+x,O=`<${w}>`,$=document,S=(t="")=>$.createComment(t),N=t=>null===t||"object"!=typeof t&&"function"!=typeof t,R=Array.isArray,E=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,C=/-->/g,M=/>/g,U=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,F=/'/g,j=/"/g,T=/^(?:script|style|textarea|title)$/i,k=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),L=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),P=new WeakMap,z=$.createTreeWalker($,129,null,!1),B=(t,e)=>{const i=t.length-1,o=[];let n,r=2===e?"<svg>":"",s=E;for(let e=0;e<i;e++){const i=t[e];let a,l,h=-1,c=0;for(;c<i.length&&(s.lastIndex=c,l=s.exec(i),null!==l);)c=s.lastIndex,s===E?"!--"===l[1]?s=C:void 0!==l[1]?s=M:void 0!==l[2]?(T.test(l[2])&&(n=RegExp("</"+l[2],"g")),s=U):void 0!==l[3]&&(s=U):s===U?">"===l[0]?(s=null!=n?n:E,h=-1):void 0===l[1]?h=-2:(h=s.lastIndex-l[2].length,a=l[1],s=void 0===l[3]?U:'"'===l[3]?j:F):s===j||s===F?s=U:s===C||s===M?s=E:(s=U,n=void 0);const p=s===U&&t[e+1].startsWith("/>")?" ":"";r+=s===E?i+O:h>=0?(o.push(a),i.slice(0,h)+"$lit$"+i.slice(h)+x+p):i+x+(-2===h?(o.push(void 0),e):p)}const a=r+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==m?m.createHTML(a):a,o]};class _{constructor({strings:t,_$litType$:e},i){let o;this.parts=[];let n=0,r=0;const s=t.length-1,a=this.parts,[l,h]=B(t,e);if(this.el=_.createElement(l,i),z.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(o=z.nextNode())&&a.length<s;){if(1===o.nodeType){if(o.hasAttributes()){const t=[];for(const e of o.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(x)){const i=h[r++];if(t.push(e),void 0!==i){const t=o.getAttribute(i.toLowerCase()+"$lit$").split(x),e=/([.?@])?(.*)/.exec(i);a.push({type:1,index:n,name:e[2],strings:t,ctor:"."===e[1]?I:"?"===e[1]?Z:"@"===e[1]?J:K})}else a.push({type:6,index:n})}for(const e of t)o.removeAttribute(e)}if(T.test(o.tagName)){const t=o.textContent.split(x),e=t.length-1;if(e>0){o.textContent=b?b.emptyScript:"";for(let i=0;i<e;i++)o.append(t[i],S()),z.nextNode(),a.push({type:2,index:++n});o.append(t[e],S())}}}else if(8===o.nodeType)if(o.data===w)a.push({type:2,index:n});else{let t=-1;for(;-1!==(t=o.data.indexOf(x,t+1));)a.push({type:7,index:n}),t+=x.length-1}n++}}static createElement(t,e){const i=$.createElement("template");return i.innerHTML=t,i}}function W(t,e,i=t,o){var n,r,s,a;if(e===L)return e;let l=void 0!==o?null===(n=i._$Cl)||void 0===n?void 0:n[o]:i._$Cu;const h=N(e)?void 0:e._$litDirective$;return(null==l?void 0:l.constructor)!==h&&(null===(r=null==l?void 0:l._$AO)||void 0===r||r.call(l,!1),void 0===h?l=void 0:(l=new h(t),l._$AT(t,i,o)),void 0!==o?(null!==(s=(a=i)._$Cl)&&void 0!==s?s:a._$Cl=[])[o]=l:i._$Cu=l),void 0!==l&&(e=W(t,l._$AS(t,e.values),l,o)),e}class D{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:o}=this._$AD,n=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:$).importNode(i,!0);z.currentNode=n;let r=z.nextNode(),s=0,a=0,l=o[0];for(;void 0!==l;){if(s===l.index){let e;2===l.type?e=new H(r,r.nextSibling,this,t):1===l.type?e=new l.ctor(r,l.name,l.strings,this,t):6===l.type&&(e=new X(r,this,t)),this.v.push(e),l=o[++a]}s!==(null==l?void 0:l.index)&&(r=z.nextNode(),s++)}return n}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class H{constructor(t,e,i,o){var n;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=o,this._$Cg=null===(n=null==o?void 0:o.isConnected)||void 0===n||n}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=W(this,t,e),N(t)?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==L&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):(t=>{var e;return R(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])})(t)?this.A(t):this.$(t)}M(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}S(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==A&&N(this._$AH)?this._$AA.nextSibling.data=t:this.S($.createTextNode(t)),this._$AH=t}T(t){var e;const{values:i,_$litType$:o}=t,n="number"==typeof o?this._$AC(t):(void 0===o.el&&(o.el=_.createElement(o.h,this.options)),o);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===n)this._$AH.m(i);else{const t=new D(n,this),e=t.p(this.options);t.m(i),this.S(e),this._$AH=t}}_$AC(t){let e=P.get(t.strings);return void 0===e&&P.set(t.strings,e=new _(t)),e}A(t){R(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,o=0;for(const n of t)o===e.length?e.push(i=new H(this.M(S()),this.M(S()),this,this.options)):i=e[o],i._$AI(n),o++;o<e.length&&(this._$AR(i&&i._$AB.nextSibling,o),e.length=o)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class K{constructor(t,e,i,o,n){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=e,this._$AM=o,this.options=n,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,o){const n=this.strings;let r=!1;if(void 0===n)t=W(this,t,e,0),r=!N(t)||t!==this._$AH&&t!==L,r&&(this._$AH=t);else{const o=t;let s,a;for(t=n[0],s=0;s<n.length-1;s++)a=W(this,o[i+s],e,s),a===L&&(a=this._$AH[s]),r||(r=!N(a)||a!==this._$AH[s]),a===A?t=A:t!==A&&(t+=(null!=a?a:"")+n[s+1]),this._$AH[s]=a}r&&!o&&this.k(t)}k(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class I extends K{constructor(){super(...arguments),this.type=3}k(t){this.element[this.name]=t===A?void 0:t}}const V=b?b.emptyScript:"";class Z extends K{constructor(){super(...arguments),this.type=4}k(t){t&&t!==A?this.element.setAttribute(this.name,V):this.element.removeAttribute(this.name)}}class J extends K{constructor(t,e,i,o,n){super(t,e,i,o,n),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=W(this,t,e,0))&&void 0!==i?i:A)===L)return;const o=this._$AH,n=t===A&&o!==A||t.capture!==o.capture||t.once!==o.once||t.passive!==o.passive,r=t!==A&&(o===A||n);n&&this.element.removeEventListener(this.name,this,o),r&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class X{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){W(this,t)}}const q=window.litHtmlPolyfillSupport;
19
+ /**
20
+ * @license
21
+ * Copyright 2017 Google LLC
22
+ * SPDX-License-Identifier: BSD-3-Clause
23
+ */
24
+ var G,Q;null==q||q(_,H),(null!==(v=globalThis.litHtmlVersions)&&void 0!==v?v:globalThis.litHtmlVersions=[]).push("2.1.3");class Y extends g{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,e,i)=>{var o,n;const r=null!==(o=null==i?void 0:i.renderBefore)&&void 0!==o?o:e;let s=r._$litPart$;if(void 0===s){const t=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:null;r._$litPart$=s=new H(e.insertBefore(S(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return L}}Y.finalized=!0,Y._$litElement$=!0,null===(G=globalThis.litElementHydrateSupport)||void 0===G||G.call(globalThis,{LitElement:Y});const tt=globalThis.litElementPolyfillSupport;null==tt||tt({LitElement:Y}),(null!==(Q=globalThis.litElementVersions)&&void 0!==Q?Q:globalThis.litElementVersions=[]).push("3.1.2");
25
+ /**
26
+ * @license
27
+ * Copyright 2017 Google LLC
28
+ * SPDX-License-Identifier: BSD-3-Clause
29
+ */
30
+ const et=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function it(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):et(t,e)
31
+ /**
32
+ * @license
33
+ * Copyright 2021 Google LLC
34
+ * SPDX-License-Identifier: BSD-3-Clause
35
+ */}var ot;null===(ot=window.HTMLSlotElement)||void 0===ot||ot.prototype.assignedElements,function(){function t(t){var e=0;return function(){return e<t.length?{done:!1,value:t[e++]}:{done:!0}}}function e(e){var i="undefined"!=typeof Symbol&&Symbol.iterator&&e[Symbol.iterator];return i?i.call(e):{next:t(e)}}function i(t){if(!(t instanceof Array)){t=e(t);for(var i,o=[];!(i=t.next()).done;)o.push(i.value);t=o}return t}var o="function"==typeof Object.create?Object.create:function(t){function e(){}return e.prototype=t,new e};var n,r=function(t){t=["object"==typeof globalThis&&globalThis,t,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var e=0;e<t.length;++e){var i=t[e];if(i&&i.Math==Math)return i}throw Error("Cannot find global object")}(this),s=function(){if("undefined"!=typeof Reflect&&Reflect.construct){if(function(){function t(){}return Reflect.construct(t,[],(function(){})),new t instanceof t}())return Reflect.construct;var t=Reflect.construct;return function(e,i,o){return e=t(e,i),o&&Reflect.setPrototypeOf(e,o.prototype),e}}return function(t,e,i){return void 0===i&&(i=t),i=o(i.prototype||Object.prototype),Function.prototype.apply.call(t,i,e)||i}}();if("function"==typeof Object.setPrototypeOf)n=Object.setPrototypeOf;else{var a;t:{var l={};try{l.__proto__={a:!0},a=l.a;break t}catch(t){}a=!1}n=a?function(t,e){if(t.__proto__=e,t.__proto__!==e)throw new TypeError(t+" is not extensible");return t}:null}var h=n;if(!ShadowRoot.prototype.createElement){var c,p=window.HTMLElement,f=window.customElements.define,u=window.customElements.get,d=window.customElements,y=new WeakMap,g=new WeakMap,v=new WeakMap,b=new WeakMap;window.CustomElementRegistry=function(){this.l=new Map,this.o=new Map,this.i=new Map,this.h=new Map},window.CustomElementRegistry.prototype.define=function(t,i){if(t=t.toLowerCase(),void 0!==this.j(t))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': the name \""+t+'" has already been used with this registry');if(void 0!==this.o.get(i))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");var o=i.prototype.attributeChangedCallback,n=new Set(i.observedAttributes||[]);if(x(i,n,o),o={g:i,connectedCallback:i.prototype.connectedCallback,disconnectedCallback:i.prototype.disconnectedCallback,adoptedCallback:i.prototype.adoptedCallback,attributeChangedCallback:o,formAssociated:i.formAssociated,formAssociatedCallback:i.prototype.formAssociatedCallback,formDisabledCallback:i.prototype.formDisabledCallback,formResetCallback:i.prototype.formResetCallback,formStateRestoreCallback:i.prototype.formStateRestoreCallback,observedAttributes:n},this.l.set(t,o),this.o.set(i,o),(n=u.call(d,t))||(n=m(t),f.call(d,t,n)),this===window.customElements&&(v.set(i,o),o.s=n),n=this.h.get(t)){this.h.delete(t);for(var r=(n=e(n)).next();!r.done;r=n.next())r=r.value,g.delete(r),O(r,o,!0)}return void 0!==(o=this.i.get(t))&&(o.resolve(i),this.i.delete(t)),i},window.CustomElementRegistry.prototype.upgrade=function(){S.push(this),d.upgrade.apply(d,arguments),S.pop()},window.CustomElementRegistry.prototype.get=function(t){var e;return null==(e=this.l.get(t))?void 0:e.g},window.CustomElementRegistry.prototype.j=function(t){return this.l.get(t)},window.CustomElementRegistry.prototype.whenDefined=function(t){var e=this.j(t);if(void 0!==e)return Promise.resolve(e.g);var i=this.i.get(t);return void 0===i&&((i={}).promise=new Promise((function(t){return i.resolve=t})),this.i.set(t,i)),i.promise},window.CustomElementRegistry.prototype.m=function(t,e,i){var o=this.h.get(e);o||this.h.set(e,o=new Set),i?o.add(t):o.delete(t)},window.HTMLElement=function(){var t=c;if(t)return c=void 0,t;var e=v.get(this.constructor);if(!e)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return t=Reflect.construct(p,[],e.s),Object.setPrototypeOf(t,this.constructor.prototype),y.set(t,e),t},window.HTMLElement.prototype=p.prototype;var m=function(t){function e(){var e=Reflect.construct(p,[],this.constructor);Object.setPrototypeOf(e,HTMLElement.prototype);t:{var i=e.getRootNode();if(!(i===document||i instanceof ShadowRoot)){if((i=S[S.length-1])instanceof CustomElementRegistry){var o=i;break t}(i=i.getRootNode())===document||i instanceof ShadowRoot||(i=(null==(o=b.get(i))?void 0:o.getRootNode())||document)}o=i.customElements}return(i=(o=o||window.customElements).j(t))?O(e,i):g.set(e,o),e}return r.Object.defineProperty(e,"formAssociated",{configurable:!0,enumerable:!0,get:function(){return!0}}),e.prototype.connectedCallback=function(){var e=y.get(this);e?e.connectedCallback&&e.connectedCallback.apply(this,arguments):g.get(this).m(this,t,!0)},e.prototype.disconnectedCallback=function(){var e=y.get(this);e?e.disconnectedCallback&&e.disconnectedCallback.apply(this,arguments):g.get(this).m(this,t,!1)},e.prototype.adoptedCallback=function(){var t,e;null==(t=y.get(this))||null==(e=t.adoptedCallback)||e.apply(this,arguments)},e.prototype.formAssociatedCallback=function(){var t,e=y.get(this);e&&e.formAssociated&&(null==e||null==(t=e.formAssociatedCallback)||t.apply(this,arguments))},e.prototype.formDisabledCallback=function(){var t,e=y.get(this);null!=e&&e.formAssociated&&(null==e||null==(t=e.formDisabledCallback)||t.apply(this,arguments))},e.prototype.formResetCallback=function(){var t,e=y.get(this);null!=e&&e.formAssociated&&(null==e||null==(t=e.formResetCallback)||t.apply(this,arguments))},e.prototype.formStateRestoreCallback=function(){var t,e=y.get(this);null!=e&&e.formAssociated&&(null==e||null==(t=e.formStateRestoreCallback)||t.apply(this,arguments))},e},x=function(t,e,i){if(0!==e.size&&void 0!==i){var o=t.prototype.setAttribute;o&&(t.prototype.setAttribute=function(t,n){if(t=t.toLowerCase(),e.has(t)){var r=this.getAttribute(t);o.call(this,t,n),i.call(this,t,r,n)}else o.call(this,t,n)});var n=t.prototype.removeAttribute;n&&(t.prototype.removeAttribute=function(t){if(t=t.toLowerCase(),e.has(t)){var o=this.getAttribute(t);n.call(this,t),i.call(this,t,o,null)}else n.call(this,t)})}},w=function(t){var e=Object.getPrototypeOf(t);if(e!==window.HTMLElement)return e===p?Object.setPrototypeOf(t,window.HTMLElement):w(e)},O=function(t,e,i){i=void 0!==i&&i,Object.setPrototypeOf(t,e.g.prototype),y.set(t,e),c=t;try{new e.g}catch(t){w(e.g),new e.g}e.observedAttributes.forEach((function(i){t.hasAttribute(i)&&e.attributeChangedCallback.call(t,i,null,t.getAttribute(i))})),i&&e.connectedCallback&&t.isConnected&&e.connectedCallback.call(t)},$=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){var e=$.apply(this,arguments);return t.customElements&&(e.customElements=t.customElements),e};var S=[document],N=function(t,e,i){var o=(i?Object.getPrototypeOf(i):t.prototype)[e];t.prototype[e]=function(){S.push(this);var t=o.apply(i||this,arguments);return void 0!==t&&b.set(t,this),S.pop(),t}};N(ShadowRoot,"createElement",document),N(ShadowRoot,"importNode",document),N(Element,"insertAdjacentHTML");var R=function(t){var e=Object.getOwnPropertyDescriptor(t.prototype,"innerHTML");Object.defineProperty(t.prototype,"innerHTML",Object.assign({},e,{set:function(t){S.push(this),e.set.call(this,t),S.pop()}}))};if(R(Element),R(ShadowRoot),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){var E=new WeakMap,C=HTMLElement.prototype.attachInternals;HTMLElement.prototype.attachInternals=function(t){for(var e=[],o=0;o<arguments.length;++o)e[o]=arguments[o];return e=C.call.apply(C,[this].concat(i(e))),E.set(e,this),e},["setFormValue","setValidity","checkValidity","reportValidity"].forEach((function(t){var e=window.ElementInternals.prototype,o=e[t];e[t]=function(t){for(var e=[],n=0;n<arguments.length;++n)e[n]=arguments[n];if(n=E.get(this),!0!==y.get(n).formAssociated)throw new DOMException("Failed to execute "+o+" on 'ElementInternals': The target element is not a form-associated custom element.");null==o||o.call.apply(o,[this].concat(i(e)))}}));var M=function(t){var e=s(Array,[].concat(i(t)),this.constructor);return e.h=t,e},U=M,F=Array;if(U.prototype=o(F.prototype),U.prototype.constructor=U,h)h(U,F);else for(var j in F)if("prototype"!=j)if(Object.defineProperties){var T=Object.getOwnPropertyDescriptor(F,j);T&&Object.defineProperty(U,j,T)}else U[j]=F[j];U.u=F.prototype,r.Object.defineProperty(M.prototype,"value",{configurable:!0,enumerable:!0,get:function(){var t;return(null==(t=this.h.find((function(t){return!0===t.checked})))?void 0:t.value)||""}});var k=function(t){var e=this,i=new Map;t.forEach((function(t,o){var n=t.getAttribute("name"),r=i.get(n)||[];e[+o]=t,r.push(t),i.set(n,r)})),this.length=t.length,i.forEach((function(t,i){t&&(e[i]=1===t.length?t[0]:new M(t))}))};k.prototype.namedItem=function(t){return this[t]};var L=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){for(var t=L.get.call(this,[]),i=[],o=(t=e(t)).next();!o.done;o=t.next()){o=o.value;var n=y.get(o);n&&!0!==n.formAssociated||i.push(o)}return new k(i)}})}}}.call(self);try{window.customElements.define("custom-element",null)}catch(t){const e=window.customElements.define;window.customElements.define=(t,i,o)=>{try{e.bind(window.customElements)(t,i,o)}catch(e){console.warn(t,i,o,e)}}}const nt=t=>e=>{window.customElements.get(t)||window.customElements.define(t,e)};class rt{constructor(t,e,i,o,n){this.name=t,this.category=e,this.fallbackVariable=i,this.defaultValue=o,this.context=n,this._$cssResult$=!0,this.value=this.get()}get cssText(){return this.value.cssText}get styleSheet(){return this.value.styleSheet}toString(){return this.value.toString()}static create(t,e,i){return new rt(t,e,void 0,i)}static extend(t,e,i){return new rt(t,e.category,e,i)}static external(t,e){return new rt(t.name,t.category,t.fallbackVariable,t.defaultValue,e)}get(t){return s`var(${r(this.name)}, ${this.defaultCssValue(t)})`}defaultCssValue(t){return this.fallbackVariable?this.fallbackVariable.get(null!=t?t:this.defaultValue):r(null!=t?t:this.defaultValue)}lastResortDefaultValue(){var t,e;return null!==(t=this.defaultValue)&&void 0!==t?t:null===(e=this.fallbackVariable)||void 0===e?void 0:e.lastResortDefaultValue()}breadcrumb(){return this.fallbackVariable?[this.fallbackVariable.name,...this.fallbackVariable.breadcrumb()]:[]}}const st={colorPrimary:rt.create("--ft-color-primary","COLOR","#2196F3"),colorPrimaryVariant:rt.create("--ft-color-primary-variant","COLOR","#1976D2"),colorSecondary:rt.create("--ft-color-secondary","COLOR","#FFCC80"),colorSecondaryVariant:rt.create("--ft-color-secondary-variant","COLOR","#F57C00"),colorSurface:rt.create("--ft-color-surface","COLOR","#FFFFFF"),colorContent:rt.create("--ft-color-content","COLOR","rgba(0, 0, 0, 0.87)"),colorError:rt.create("--ft-color-error","COLOR","#B00020"),colorOutline:rt.create("--ft-color-outline","COLOR","rgba(0, 0, 0, 0.14)"),colorOpacityHigh:rt.create("--ft-color-opacity-high","NUMBER","1"),colorOpacityMedium:rt.create("--ft-color-opacity-medium","NUMBER","0.74"),colorOpacityDisabled:rt.create("--ft-color-opacity-disabled","NUMBER","0.38"),colorOnPrimary:rt.create("--ft-color-on-primary","COLOR","#FFFFFF"),colorOnPrimaryHigh:rt.create("--ft-color-on-primary-high","COLOR","#FFFFFF"),colorOnPrimaryMedium:rt.create("--ft-color-on-primary-medium","COLOR","rgba(255, 255, 255, 0.74)"),colorOnPrimaryDisabled:rt.create("--ft-color-on-primary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),colorOnSecondary:rt.create("--ft-color-on-secondary","COLOR","#FFFFFF"),colorOnSecondaryHigh:rt.create("--ft-color-on-secondary-high","COLOR","#FFFFFF"),colorOnSecondaryMedium:rt.create("--ft-color-on-secondary-medium","COLOR","rgba(255, 255, 255, 0.74)"),colorOnSecondaryDisabled:rt.create("--ft-color-on-secondary-disabled","COLOR","rgba(255, 255, 255, 0.38)"),colorOnSurface:rt.create("--ft-color-on-surface","COLOR","rgba(0, 0, 0, 0.87)"),colorOnSurfaceHigh:rt.create("--ft-color-on-surface-high","COLOR","rgba(0, 0, 0, 0.87)"),colorOnSurfaceMedium:rt.create("--ft-color-on-surface-medium","COLOR","rgba(0, 0, 0, 0.60)"),colorOnSurfaceDisabled:rt.create("--ft-color-on-surface-disabled","COLOR","rgba(0, 0, 0, 0.38)"),opacityContentOnSurfaceDisabled:rt.create("--ft-opacity-content-on-surface-disabled","NUMBER","0"),opacityContentOnSurfaceEnable:rt.create("--ft-opacity-content-on-surface-enable","NUMBER","0"),opacityContentOnSurfaceHover:rt.create("--ft-opacity-content-on-surface-hover","NUMBER","0.04"),opacityContentOnSurfaceFocused:rt.create("--ft-opacity-content-on-surface-focused","NUMBER","0.12"),opacityContentOnSurfacePressed:rt.create("--ft-opacity-content-on-surface-pressed","NUMBER","0.10"),opacityContentOnSurfaceSelected:rt.create("--ft-opacity-content-on-surface-selected","NUMBER","0.08"),opacityContentOnSurfaceDragged:rt.create("--ft-opacity-content-on-surface-dragged","NUMBER","0.08"),opacityPrimaryOnSurfaceDisabled:rt.create("--ft-opacity-primary-on-surface-disabled","NUMBER","0"),opacityPrimaryOnSurfaceEnable:rt.create("--ft-opacity-primary-on-surface-enable","NUMBER","0"),opacityPrimaryOnSurfaceHover:rt.create("--ft-opacity-primary-on-surface-hover","NUMBER","0.04"),opacityPrimaryOnSurfaceFocused:rt.create("--ft-opacity-primary-on-surface-focused","NUMBER","0.12"),opacityPrimaryOnSurfacePressed:rt.create("--ft-opacity-primary-on-surface-pressed","NUMBER","0.10"),opacityPrimaryOnSurfaceSelected:rt.create("--ft-opacity-primary-on-surface-selected","NUMBER","0.08"),opacityPrimaryOnSurfaceDragged:rt.create("--ft-opacity-primary-on-surface-dragged","NUMBER","0.08"),opacitySurfaceOnPrimaryDisabled:rt.create("--ft-opacity-surface-on-primary-disabled","NUMBER","0"),opacitySurfaceOnPrimaryEnable:rt.create("--ft-opacity-surface-on-primary-enable","NUMBER","0"),opacitySurfaceOnPrimaryHover:rt.create("--ft-opacity-surface-on-primary-hover","NUMBER","0.04"),opacitySurfaceOnPrimaryFocused:rt.create("--ft-opacity-surface-on-primary-focused","NUMBER","0.12"),opacitySurfaceOnPrimaryPressed:rt.create("--ft-opacity-surface-on-primary-pressed","NUMBER","0.10"),opacitySurfaceOnPrimarySelected:rt.create("--ft-opacity-surface-on-primary-selected","NUMBER","0.08"),opacitySurfaceOnPrimaryDragged:rt.create("--ft-opacity-surface-on-primary-dragged","NUMBER","0.08"),elevation00:rt.create("--ft-elevation-00","UNKNOWN","0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 0px 0px 0px rgba(0, 0, 0, 0)"),elevation01:rt.create("--ft-elevation-01","UNKNOWN","0px 1px 4px 0px rgba(0, 0, 0, 0.06), 0px 1px 2px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),elevation02:rt.create("--ft-elevation-02","UNKNOWN","0px 4px 10px 0px rgba(0, 0, 0, 0.06), 0px 2px 5px 0px rgba(0, 0, 0, 0.14), 0px 0px 1px 0px rgba(0, 0, 0, 0.06)"),elevation03:rt.create("--ft-elevation-03","UNKNOWN","0px 6px 13px 0px rgba(0, 0, 0, 0.06), 0px 3px 7px 0px rgba(0, 0, 0, 0.14), 0px 1px 2px 0px rgba(0, 0, 0, 0.06)"),elevation04:rt.create("--ft-elevation-04","UNKNOWN","0px 8px 16px 0px rgba(0, 0, 0, 0.06), 0px 4px 9px 0px rgba(0, 0, 0, 0.14), 0px 2px 3px 0px rgba(0, 0, 0, 0.06)"),elevation06:rt.create("--ft-elevation-06","UNKNOWN","0px 12px 22px 0px rgba(0, 0, 0, 0.06), 0px 6px 13px 0px rgba(0, 0, 0, 0.14), 0px 4px 5px 0px rgba(0, 0, 0, 0.06)"),elevation08:rt.create("--ft-elevation-08","UNKNOWN","0px 16px 28px 0px rgba(0, 0, 0, 0.06), 0px 8px 17px 0px rgba(0, 0, 0, 0.14), 0px 6px 7px 0px rgba(0, 0, 0, 0.06)"),elevation12:rt.create("--ft-elevation-12","UNKNOWN","0px 22px 40px 0px rgba(0, 0, 0, 0.06), 0px 12px 23px 0px rgba(0, 0, 0, 0.14), 0px 10px 11px 0px rgba(0, 0, 0, 0.06)"),elevation16:rt.create("--ft-elevation-16","UNKNOWN","0px 28px 52px 0px rgba(0, 0, 0, 0.06), 0px 16px 29px 0px rgba(0, 0, 0, 0.14), 0px 14px 15px 0px rgba(0, 0, 0, 0.06)"),elevation24:rt.create("--ft-elevation-24","UNKNOWN","0px 40px 76px 0px rgba(0, 0, 0, 0.06), 0px 24px 41px 0px rgba(0, 0, 0, 0.14), 0px 22px 23px 0px rgba(0, 0, 0, 0.06)"),borderRadiusS:rt.create("--ft-border-radius-S","SIZE","4px"),borderRadiusM:rt.create("--ft-border-radius-M","SIZE","8px"),borderRadiusL:rt.create("--ft-border-radius-L","SIZE","12px"),borderRadiusXL:rt.create("--ft-border-radius-XL","SIZE","16px"),titleFont:rt.create("--ft-title-font","UNKNOWN","Ubuntu, system-ui, sans-serif"),contentFont:rt.create("--ft-content-font","UNKNOWN","'Open Sans', system-ui, sans-serif"),transitionDuration:rt.create("--ft-transition-duration","UNKNOWN","250ms"),transitionTimingFunction:rt.create("--ft-transition-timing-function","UNKNOWN","ease-in-out")};
36
+ /**
37
+ * @license
38
+ * Copyright 2021 Google LLC
39
+ * SPDX-License-Identifier: BSD-3-Clause
40
+ */class at extends(function(t){return class extends t{createRenderRoot(){const t=this.constructor,{registry:e,elementDefinitions:i,shadowRootOptions:o}=t;i&&!e&&(t.registry=new CustomElementRegistry,Object.entries(i).forEach((([e,i])=>t.registry.define(e,i))));const n=this.renderOptions.creationScope=this.attachShadow({...o,customElements:t.registry});return a(n,this.constructor.elementStyles),n}}}(Y)){constructor(){super(),this.constructorName=this.constructor.name,this.proto=this.constructor.prototype}getStyles(){return[]}getTemplate(){return null}render(){let t=this.getStyles();return Array.isArray(t)||(t=[t]),k`${t.map((t=>k`<style>${t}</style>`))} ${this.getTemplate()}`}adoptedCallback(){Object.getPrototypeOf(this)!==this.constructorName&&Object.setPrototypeOf(this,this.proto)}updated(t){super.updated(t),setTimeout((()=>this.contentAvailableCallback(t)),0)}contentAvailableCallback(t){}}var lt,ht;s`.ft-no-text-select{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}`,navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(ht=null===(lt=window.safari)||void 0===lt?void 0:lt.pushNotification)||void 0===ht||ht.toString());
41
+ /**
42
+ * @license
43
+ * Copyright 2020 Google LLC
44
+ * SPDX-License-Identifier: BSD-3-Clause
45
+ */
46
+ const ct=t=>({_$litStatic$:t}),pt=new Map,ft=(t=>(e,...i)=>{var o;const n=i.length;let r,s;const a=[],l=[];let h,c=0,p=!1;for(;c<n;){for(h=e[c];c<n&&void 0!==(s=i[c],r=null===(o=s)||void 0===o?void 0:o._$litStatic$);)h+=r+e[++c],p=!0;l.push(s),a.push(h),c++}if(c===n&&a.push(e[n]),p){const t=a.join("$$lit$$");void 0===(e=pt.get(t))&&(a.raw=a,pt.set(t,e=a)),i=l}return t(e,...i)})(k);var ut,dt=function(t,e,i,o){for(var n,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,a=t.length-1;a>=0;a--)(n=t[a])&&(s=(r<3?n(s):r>3?n(e,i,s):n(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};!function(t){t.title="title",t.title_dense="title-dense",t.subtitle1="subtitle1",t.subtitle2="subtitle2",t.body1="body1",t.body2="body2",t.caption="caption",t.breadcrumb="breadcrumb",t.overline="overline",t.button="button"}(ut||(ut={}));const yt=rt.extend("--ft-typography-font-family",st.titleFont),gt=rt.extend("--ft-typography-font-family",st.contentFont),vt={fontFamily:gt,fontSize:rt.create("--ft-typography-font-size","SIZE","16px"),fontWeight:rt.create("--ft-typography-font-weight","UNKNOWN","normal"),letterSpacing:rt.create("--ft-typography-letter-spacing","SIZE","0.496px"),lineHeight:rt.create("--ft-typography-line-height","SIZE","24px"),textTransform:rt.create("--ft-typography-text-transform","UNKNOWN","inherit")},bt=rt.extend("--ft-typography-title-font-family",yt),mt=rt.extend("--ft-typography-title-font-size",vt.fontSize,"20px"),xt=rt.extend("--ft-typography-title-font-weight",vt.fontWeight,"normal"),wt=rt.extend("--ft-typography-title-letter-spacing",vt.letterSpacing,"0.15px"),Ot=rt.extend("--ft-typography-title-line-height",vt.lineHeight,"24px"),$t=rt.extend("--ft-typography-title-text-transform",vt.textTransform,"inherit"),St=rt.extend("--ft-typography-title-dense-font-family",yt),Nt=rt.extend("--ft-typography-title-dense-font-size",vt.fontSize,"14px"),Rt=rt.extend("--ft-typography-title-dense-font-weight",vt.fontWeight,"normal"),Et=rt.extend("--ft-typography-title-dense-letter-spacing",vt.letterSpacing,"0.105px"),Ct=rt.extend("--ft-typography-title-dense-line-height",vt.lineHeight,"24px"),Mt=rt.extend("--ft-typography-title-dense-text-transform",vt.textTransform,"inherit"),Ut=rt.extend("--ft-typography-subtitle1-font-family",gt),Ft=rt.extend("--ft-typography-subtitle1-font-size",vt.fontSize,"16px"),jt=rt.extend("--ft-typography-subtitle1-font-weight",vt.fontWeight,"600"),Tt=rt.extend("--ft-typography-subtitle1-letter-spacing",vt.letterSpacing,"0.144px"),kt=rt.extend("--ft-typography-subtitle1-line-height",vt.lineHeight,"24px"),Lt=rt.extend("--ft-typography-subtitle1-text-transform",vt.textTransform,"inherit"),At=rt.extend("--ft-typography-subtitle2-font-family",gt),Pt=rt.extend("--ft-typography-subtitle2-font-size",vt.fontSize,"14px"),zt=rt.extend("--ft-typography-subtitle2-font-weight",vt.fontWeight,"normal"),Bt=rt.extend("--ft-typography-subtitle2-letter-spacing",vt.letterSpacing,"0.098px"),_t=rt.extend("--ft-typography-subtitle2-line-height",vt.lineHeight,"24px"),Wt=rt.extend("--ft-typography-subtitle2-text-transform",vt.textTransform,"inherit"),Dt=rt.extend("--ft-typography-body1-font-family",gt),Ht=rt.extend("--ft-typography-body1-font-size",vt.fontSize,"16px"),Kt=rt.extend("--ft-typography-body1-font-weight",vt.fontWeight,"normal"),It=rt.extend("--ft-typography-body1-letter-spacing",vt.letterSpacing,"0.496px"),Vt=rt.extend("--ft-typography-body1-line-height",vt.lineHeight,"24px"),Zt=rt.extend("--ft-typography-body1-text-transform",vt.textTransform,"inherit"),Jt=rt.extend("--ft-typography-body2-font-family",gt),Xt=rt.extend("--ft-typography-body2-font-size",vt.fontSize,"14px"),qt=rt.extend("--ft-typography-body2-font-weight",vt.fontWeight,"normal"),Gt=rt.extend("--ft-typography-body2-letter-spacing",vt.letterSpacing,"0.252px"),Qt=rt.extend("--ft-typography-body2-line-height",vt.lineHeight,"20px"),Yt=rt.extend("--ft-typography-body2-text-transform",vt.textTransform,"inherit"),te=rt.extend("--ft-typography-caption-font-family",gt),ee=rt.extend("--ft-typography-caption-font-size",vt.fontSize,"12px"),ie=rt.extend("--ft-typography-caption-font-weight",vt.fontWeight,"normal"),oe=rt.extend("--ft-typography-caption-letter-spacing",vt.letterSpacing,"0.396px"),ne=rt.extend("--ft-typography-caption-line-height",vt.lineHeight,"16px"),re=rt.extend("--ft-typography-caption-text-transform",vt.textTransform,"inherit"),se=rt.extend("--ft-typography-breadcrumb-font-family",gt),ae=rt.extend("--ft-typography-breadcrumb-font-size",vt.fontSize,"10px"),le=rt.extend("--ft-typography-breadcrumb-font-weight",vt.fontWeight,"normal"),he=rt.extend("--ft-typography-breadcrumb-letter-spacing",vt.letterSpacing,"0.33px"),ce=rt.extend("--ft-typography-breadcrumb-line-height",vt.lineHeight,"16px"),pe=rt.extend("--ft-typography-breadcrumb-text-transform",vt.textTransform,"inherit"),fe=rt.extend("--ft-typography-overline-font-family",gt),ue=rt.extend("--ft-typography-overline-font-size",vt.fontSize,"10px"),de=rt.extend("--ft-typography-overline-font-weight",vt.fontWeight,"normal"),ye=rt.extend("--ft-typography-overline-letter-spacing",vt.letterSpacing,"1.5px"),ge=rt.extend("--ft-typography-overline-line-height",vt.lineHeight,"16px"),ve=rt.extend("--ft-typography-overline-text-transform",vt.textTransform,"uppercase"),be=rt.extend("--ft-typography-button-font-family",gt),me=rt.extend("--ft-typography-button-font-size",vt.fontSize,"14px"),xe=rt.extend("--ft-typography-button-font-weight",vt.fontWeight,"600"),we=rt.extend("--ft-typography-button-letter-spacing",vt.letterSpacing,"1.246px"),Oe=rt.extend("--ft-typography-button-line-height",vt.lineHeight,"16px"),$e=rt.extend("--ft-typography-button-text-transform",vt.textTransform,"uppercase"),Se=s`
47
+ .ft-typography--title {
48
+ font-family: ${bt};
49
+ font-size: ${mt};
50
+ font-weight: ${xt};
51
+ letter-spacing: ${wt};
52
+ line-height: ${Ot};
53
+ text-transform: ${$t};
54
+ }
55
+ `,Ne=s`
56
+ .ft-typography--title-dense {
57
+ font-family: ${St};
58
+ font-size: ${Nt};
59
+ font-weight: ${Rt};
60
+ letter-spacing: ${Et};
61
+ line-height: ${Ct};
62
+ text-transform: ${Mt};
63
+ }
64
+ `,Re=s`
65
+ .ft-typography--subtitle1 {
66
+ font-family: ${Ut};
67
+ font-size: ${Ft};
68
+ font-weight: ${jt};
69
+ letter-spacing: ${Tt};
70
+ line-height: ${kt};
71
+ text-transform: ${Lt};
72
+ }
73
+ `,Ee=s`
74
+ .ft-typography--subtitle2 {
75
+ font-family: ${At};
76
+ font-size: ${Pt};
77
+ font-weight: ${zt};
78
+ letter-spacing: ${Bt};
79
+ line-height: ${_t};
80
+ text-transform: ${Wt};
81
+ }
82
+
83
+ `,Ce=s`
84
+ .ft-typography--body1 {
85
+ font-family: ${Dt};
86
+ font-size: ${Ht};
87
+ font-weight: ${Kt};
88
+ letter-spacing: ${It};
89
+ line-height: ${Vt};
90
+ text-transform: ${Zt};
91
+ }
92
+ `,Me=s`
93
+ .ft-typography--body2 {
94
+ font-family: ${Jt};
95
+ font-size: ${Xt};
96
+ font-weight: ${qt};
97
+ letter-spacing: ${Gt};
98
+ line-height: ${Qt};
99
+ text-transform: ${Yt};
100
+ }
101
+ `,Ue=s`
102
+ .ft-typography--caption {
103
+ font-family: ${te};
104
+ font-size: ${ee};
105
+ font-weight: ${ie};
106
+ letter-spacing: ${oe};
107
+ line-height: ${ne};
108
+ text-transform: ${re};
109
+ }
110
+ `,Fe=s`
111
+ .ft-typography--breadcrumb {
112
+ font-family: ${se};
113
+ font-size: ${ae};
114
+ font-weight: ${le};
115
+ letter-spacing: ${he};
116
+ line-height: ${ce};
117
+ text-transform: ${pe};
118
+ }
119
+ `,je=s`
120
+ .ft-typography--overline {
121
+ font-family: ${fe};
122
+ font-size: ${ue};
123
+ font-weight: ${de};
124
+ letter-spacing: ${ye};
125
+ line-height: ${ge};
126
+ text-transform: ${ve};
127
+ }
128
+ `,Te=s`
129
+ .ft-typography--button {
130
+ font-family: ${be};
131
+ font-size: ${me};
132
+ font-weight: ${xe};
133
+ letter-spacing: ${we};
134
+ line-height: ${Oe};
135
+ text-transform: ${$e};
136
+ }
137
+ `;let ke=class extends at{constructor(){super(...arguments),this.variant=ut.body1}getStyles(){return[Se,Ne,Re,Ee,Ce,Me,Ue,Fe,je,Te]}getTemplate(){return this.element?ft`
138
+ <${ct(this.element)}
139
+ class="ft-typography ft-typography--${this.variant}">
140
+ <slot></slot>
141
+ </${ct(this.element)}>
142
+ `:ft`
143
+ <slot class="ft-typography ft-typography--${this.variant}"></slot>
144
+ `}};dt([it()],ke.prototype,"element",void 0),dt([it()],ke.prototype,"variant",void 0),ke=dt([nt("ft-typography")],ke);var Le=function(t,e,i,o){for(var n,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o,a=t.length-1;a>=0;a--)(n=t[a])&&(s=(r<3?n(s):r>3?n(e,i,s):n(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};const Ae={textColor:rt.external(st.colorOnSurfaceHigh,"Design system"),titleColor:rt.external(st.colorOnSurfaceMedium,"Design system")};t.FtTrend=class extends at{constructor(){super(...arguments),this.label="Trend",this.currentValue=3,this.previousValue=2}getStyles(){return s`.ft-trend{text-align:center;color:${Ae.textColor}}.ft-trend .title{color:${Ae.titleColor}}`}getTrendIcon(){return this.currentValue==this.previousValue?"→":this.currentValue>this.previousValue?"↗":"↘"}getTrendPercentage(){let t=(this.currentValue-this.previousValue)/this.previousValue,e=Math.round(100*t);return`${e>=0?"+":"-"}${Math.abs(e)}%`}getTemplate(){return 0==this.previousValue?k`<div class="ft-trend"><ft-typography variant="subtitle2" class="title">${this.label}</ft-typography><div><ft-typography variant="body2">No previous value</ft-typography></div></div>`:k`<div class="ft-trend"><ft-typography variant="subtitle2" class="title">${this.label}</ft-typography><div><ft-typography variant="title">${this.currentValue.toLocaleString()}</ft-typography><span>${this.getTrendIcon()}</span><ft-typography variant="body2">${this.getTrendPercentage()}</ft-typography></div></div>`}},t.FtTrend.elementDefinitions={"ft-typography":ke},Le([it({type:String})],t.FtTrend.prototype,"label",void 0),Le([it({type:Number})],t.FtTrend.prototype,"currentValue",void 0),Le([it({type:Number})],t.FtTrend.prototype,"previousValue",void 0),t.FtTrend=Le([nt("ft-trend")],t.FtTrend),t.FtTrendCssVariables=Ae,Object.defineProperty(t,"t",{value:!0})}({});
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@fluid-topics/ft-trend",
3
+ "version": "0.1.3",
4
+ "description": "Single stat value with a trend",
5
+ "keywords": [
6
+ "Lit"
7
+ ],
8
+ "author": "Fluid Topics <devtopics@antidot.net>",
9
+ "license": "ISC",
10
+ "main": "build/ft-trend.js",
11
+ "web": "build/ft-trend.min.js",
12
+ "typings": "build/ft-trend",
13
+ "files": [
14
+ "build/*.ts",
15
+ "build/*.js"
16
+ ],
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
+ },
21
+ "dependencies": {
22
+ "@fluid-topics/ft-typography": "^0.1.3",
23
+ "@fluid-topics/ft-wc-utils": "^0.1.3",
24
+ "lit": "^2.0.2"
25
+ },
26
+ "gitHead": "2fa53411ddb04226db4922bd0ad671fb2aed389c"
27
+ }