@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 +23 -0
- package/build/ft-trend.d.ts +21 -0
- package/build/ft-trend.js +101 -0
- package/build/ft-trend.min.js +144 -0
- package/package.json +27 -0
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
|
+
}
|