@ironflock/widget-value 0.0.0-stage → 1.1.34

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-value.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../src/widget-value.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,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.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){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}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2,MATHML:3},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,M=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},h=o=>{o._$AR()};export{n as TemplateResultType,h as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,M as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { html, css, LitElement, PropertyValueMap, PropertyValues } from 'lit'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ValueDisplayConfiguration } from './definition-schema.js'\n\ntype Dataseries = Exclude<ValueDisplayConfiguration['dataseries'], undefined>[number] & { needleValue?: number }\ntype Data = Exclude<Dataseries['data'], undefined>[number]\ntype Theme = {\n theme_name: string\n theme_object: any\n}\n\n// No locale and no time zone given: both are the viewer's own.\nconst localDateTime = new Intl.DateTimeFormat(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n})\n\n// A bound timestamp column arrives as epoch milliseconds; a string column or a\n// static subtitle may hold ISO 8601 instead. Anything else is not a point in\n// time and comes back undefined, so the caller can show it as given.\nconst toDate = (value: unknown): Date | undefined => {\n if (value === null || value === undefined || value === '') return undefined\n const ms = /^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(String(value)) ? Number(value) : Date.parse(String(value))\n return Number.isFinite(ms) ? new Date(ms) : undefined\n}\n\n@customElement('widget-value-versionplaceholder')\nexport class WidgetValue extends LitElement {\n @property({ type: Object })\n inputData?: ValueDisplayConfiguration\n\n @property({ type: Object })\n theme?: Theme\n\n @state()\n private dataSets: Map<string, Dataseries> = new Map()\n\n @state()\n private textActive: boolean = true\n\n @state() private themeBgColor?: string\n @state() private themeTitleColor?: string\n @state() private themeSubtitleColor?: string\n\n @query('.value-container')\n valueContainer?: HTMLDivElement\n\n @query('.sizing-container')\n sizingContainer?: HTMLDivElement\n\n version: string = 'versionplaceholder'\n\n private resizeObserver: ResizeObserver\n private lastLargerWidthTime?: number\n private origWidth: number = 0\n private origHeight: number = 0\n\n constructor() {\n super()\n this.resizeObserver = new ResizeObserver(this.applyData.bind(this))\n this.resizeObserver.observe(this)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n }\n }\n\n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>) {\n this.registerTheme(this.theme)\n }\n\n protected update(changedProperties: PropertyValues): void {\n if (changedProperties.has('inputData')) {\n this.transformData()\n }\n super.update(changedProperties)\n }\n\n protected updated(changedProperties: Map<string, any>) {\n if (changedProperties.has('inputData')) {\n this.sizingSetup()\n this.applyData()\n }\n\n if (changedProperties.has('theme')) {\n this.registerTheme(this.theme)\n }\n\n super.updated(changedProperties)\n }\n\n registerTheme(theme?: Theme) {\n // The host's --re-tile-background-color / --re-text-color are not read\n // through getComputedStyle here. That snapshots them, and this only runs\n // on a `theme` property change, so a board style edit — which changes the\n // custom property and nothing else — left the tile painting the previous\n // colour until it was reloaded. What these fields hold is a var() chain\n // with the theme's own colour as the fallback, so the host property keeps\n // winning over the theme, and the browser resolves it on every repaint\n // without the widget being told anything.\n const themeBg = this.theme?.theme_object?.backgroundColor\n const themeText = this.theme?.theme_object?.title?.textStyle?.color\n const themeSubtext = this.theme?.theme_object?.title?.subtextStyle?.color || themeText\n\n this.themeBgColor = `var(--re-tile-background-color, ${themeBg ?? 'transparent'})`\n this.themeTitleColor = `var(--re-text-color, ${themeText ?? 'inherit'})`\n this.themeSubtitleColor = `var(--re-text-color, ${themeSubtext ?? 'inherit'})`\n }\n\n subTitleText() {\n const subTitle = this.inputData?.subTitle\n if (this.inputData?.subTitleType !== 'timestamp') return subTitle\n const date = toDate(subTitle)\n return date ? localDateTime.format(date) : subTitle\n }\n\n sizingSetup() {\n const boxes = Array.from(\n this.sizingContainer?.querySelectorAll('.single-value') as NodeListOf<HTMLDivElement>\n )\n\n let width = 0\n let height = 0\n for (const box of boxes) {\n const dims = box.getBoundingClientRect()\n width = Math.max(dims.width, width)\n height = Math.max(dims.height, height)\n }\n\n if (width < this.origWidth) {\n if (!this.lastLargerWidthTime || Date.now() - this.lastLargerWidthTime > 5000) {\n this.origWidth = width\n }\n } else {\n this.origWidth = width\n this.lastLargerWidthTime = Date.now()\n }\n this.origHeight = height\n }\n\n applyData() {\n if (!this.valueContainer) return\n const userWidth = this.valueContainer.getBoundingClientRect().width\n const userHeight = this.valueContainer.getBoundingClientRect().height\n const count = this.dataSets.size\n\n const width = this.origWidth\n const height = this.origHeight\n if (!userWidth || !userHeight || !width || !height) return\n\n const fits = []\n for (let c = 1; c <= count; c++) {\n const r = Math.ceil(count / c)\n const uwgap = userWidth - 12 * (c - 1)\n const uhgap = userHeight - 12 * (r - 1)\n const m = uwgap / width / c\n const size = m * m * width * height * count\n if (r * m * height <= uhgap) fits.push({ r, c, m, size, width, height, userWidth, userHeight })\n }\n\n for (let r = 1; r <= count; r++) {\n const c = Math.ceil(count / r)\n const uwgap = userWidth - 12 * (c - 1)\n const uhgap = userHeight - 12 * (r - 1)\n const m = uhgap / height / r\n const size = m * m * width * height * count\n if (c * m * width <= uwgap) fits.push({ r, c, m, size, width, height, userWidth, userHeight })\n }\n const maxSize = fits.reduce((p, c) => (c.size < p ? p : c.size), 0)\n const fit = fits.find((f) => f.size === maxSize)\n if (!fit) return\n const modifier = fit.m ?? 1\n // console.log('FITS', fits, 'modifier', modifier, 'cols',fit?.c, 'rows', fit?.r, 'new size', fit?.size.toFixed(0), 'total space', (userWidth* userHeight).toFixed(0))\n const boxes = Array.from(\n this.valueContainer?.querySelectorAll('.single-value') as NodeListOf<HTMLDivElement>\n )\n this.valueContainer.style.gridTemplateColumns = `repeat(${fit.c}, 1fr)`\n\n for (const box of boxes) {\n box.setAttribute(\n 'style',\n `width:${modifier * width}px; height:${modifier * height}px; padding:${modifier * 6}px`\n )\n\n const label: string | null = box.getAttribute('label')\n const ds: Dataseries | undefined = this.dataSets.get(label ?? '')\n\n const labelText = box.querySelector('.label') as HTMLDivElement\n labelText.setAttribute(\n 'style',\n `font-size: ${26 * modifier}px; \n color: ${ds?.styling?.labelColor || this.themeTitleColor};`\n )\n const numberText = box.querySelector('.current-value') as HTMLDivElement\n numberText.setAttribute(\n 'style',\n `font-size: ${32 * modifier}px; \n color: ${ds?.styling?.valueColor || this.theme?.theme_object?.color?.[0] || this.themeTitleColor};`\n )\n\n const unitText = box.querySelector('.unit') as HTMLDivElement\n unitText.setAttribute('style', `font-size: ${26 * modifier}px;`)\n }\n\n this.textActive = true\n }\n\n async transformData() {\n if (!this.inputData) return\n this.dataSets.forEach((d) => {\n d.label ??= ''\n })\n this.dataSets = new Map()\n this.inputData?.dataseries\n // ?.sort((a, b) => a.order - b.order)\n ?.forEach((ds) => {\n // pivot data\n const distincts = ds.multiChart\n ? ([...new Set(ds.data?.map((d: Data) => d.pivot))].sort() as string[])\n : ['']\n\n distincts.forEach((piv) => {\n const prefix = piv ?? ''\n const label = ds.label ?? ''\n const pds: Dataseries = {\n label: prefix + (!!prefix && !!label ? ' - ' : '') + label,\n order: ds.order,\n unit: ds.unit,\n precision: ds.precision,\n advanced: ds.advanced,\n styling: ds.styling,\n multiChart: ds.multiChart,\n value: ds.value,\n data: distincts.length === 1 ? ds.data : ds.data?.filter((d) => d.pivot === piv),\n needleValue: undefined\n }\n this.dataSets.set(pds.label ?? '', pds)\n })\n })\n\n // filter latest values and calculate average\n this.dataSets.forEach((ds, label) => {\n ds.advanced ??= {}\n // Fall back to 1 only when the setting is missing or NaN. The\n // inverted guard this replaces reset every VALID number to 1, so\n // averageLatest never averaged anything (widget-gauge has the\n // correct form).\n if (typeof ds.advanced?.averageLatest !== 'number' || isNaN(ds.advanced?.averageLatest))\n ds.advanced.averageLatest = 1\n\n if (!ds.multiChart) {\n ds.needleValue =\n ds.value === undefined || ds.value === null ? undefined : Number(ds.value)\n } else {\n const data = ds?.data?.slice(-ds?.advanced?.averageLatest || -1) ?? []\n const values = (data\n ?.map((d) => d.value)\n ?.filter((p) => p !== undefined)\n ?.map(Number) ?? []) as number[]\n ds.needleValue = values.reduce((p, c) => p + c, 0) / values.length\n // Check age of data Latency. The newest row sits at the END of the\n // data array (like the gauge); rows without a parseable tsp opt out.\n const tsp = Date.parse(data?.[data.length - 1]?.tsp ?? '')\n if (!isNaN(tsp)) {\n const now = new Date().getTime()\n if (now - tsp > (ds.advanced?.maxLatency ?? Infinity) * 1000) ds.needleValue = undefined\n }\n }\n })\n }\n\n static styles = css`\n :host {\n display: block;\n font-family: sans-serif;\n box-sizing: border-box;\n position: relative;\n margin: auto;\n overflow: hidden;\n container-type: size;\n }\n\n .paging:not([active]) {\n display: none !important;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n padding: 2cqh 2cqw;\n box-sizing: border-box;\n }\n\n h3 {\n margin: 0;\n max-width: 300px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n p {\n margin: 10px 0 0 0;\n max-width: 300px;\n font-size: 14px;\n line-height: 17px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .value-container {\n display: grid;\n line-height: 0.9;\n flex: 1;\n overflow: hidden;\n position: relative;\n gap: 12px;\n }\n\n .single-value {\n overflow: hidden;\n position: relative;\n align-items: end;\n padding: 6px;\n box-sizing: border-box;\n }\n\n .current-value {\n font-size: 32px;\n font-weight: 600;\n white-space: nowrap;\n }\n\n .label,\n .unit {\n font-weight: 300;\n font-size: 26px;\n white-space: nowrap;\n }\n\n .sizing-container {\n position: absolute;\n left: 100000px;\n line-height: 0.9;\n overflow: hidden;\n gap: 12px;\n }\n\n .no-data {\n font-size: 20px;\n display: flex;\n height: 100%;\n width: 100%;\n text-align: center;\n align-items: center;\n justify-content: center;\n }\n `\n\n render() {\n return html`\n <div\n class=\"wrapper\"\n style=\"background-color: ${this.themeBgColor}; color: ${this.themeTitleColor}\"\n >\n <header>\n <h3 class=\"paging\" ?active=${this.inputData?.title}>${this.inputData?.title}</h3>\n <p\n class=\"paging\"\n ?active=${this.inputData?.subTitle}\n style=\"color: ${this.themeSubtitleColor}\"\n >\n ${this.subTitleText()}\n </p>\n </header>\n <div class=\"sizing-container\">\n ${repeat(\n this.dataSets,\n ([label]) => label,\n ([label, ds]) => {\n return html`\n <div class=\"single-value\" label=\"${label}\">\n <div class=\"label paging\" ?active=${this.textActive}>${label}</div>\n <span\n class=\"current-value paging\"\n ?active=${this.textActive}\n style=\"color: ${ds?.styling?.valueColor ||\n this.theme?.theme_object?.color?.[0] ||\n this.themeTitleColor}\"\n >\n ${ds.needleValue === undefined ||\n ds.needleValue === null ||\n isNaN(ds.needleValue)\n ? ''\n : ds.needleValue.toFixed(Math.max(0, ds.precision ?? 0))}\n <span class=\"unit paging\" ?active=${this.textActive}>${ds.unit}</span>\n </span>\n </div>\n `\n }\n )}\n </div>\n <div class=\"paging no-data\" ?active=${!this.dataSets.size}>No Data</div>\n <div class=\"value-container\">\n ${repeat(\n [...this.dataSets.entries()].sort(),\n ([label]) => label,\n ([label, ds]) => {\n return html`\n <div class=\"single-value\" label=\"${label}\">\n <div\n class=\"label paging\"\n style=\"color: ${ds?.styling?.labelColor || this.themeTitleColor}\"\n ?active=${this.textActive}\n >\n ${label}\n </div>\n <span\n class=\"current-value paging\"\n ?active=${this.textActive}\n style=\"color: ${ds?.styling?.valueColor ||\n this.theme?.theme_object?.color?.[0] ||\n this.themeTitleColor}\"\n >\n ${ds.needleValue === undefined ||\n ds.needleValue === null ||\n isNaN(ds.needleValue)\n ? ''\n : ds.needleValue.toFixed(Math.max(0, ds.precision ?? 0))}\n <span class=\"unit paging\" ?active=${this.textActive}>${ds.unit}</span>\n </span>\n </div>\n `\n }\n )}\n </div>\n </div>\n `\n }\n}\n"],"names":["t","e","s","o","n$3","r","n","i","S","c","h","a","l","p","d","u","f","b","y$1","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M$1","R","z","M","Z","j","B","w","localDateTime","toDate","value","ms","WidgetValue","LitElement","_changedProperties","changedProperties","theme","themeBg","themeText","themeSubtext","subTitle","date","boxes","width","height","box","dims","userWidth","userHeight","count","fits","uwgap","uhgap","size","maxSize","fit","modifier","label","ds","distincts","piv","prefix","pds","data","values","tsp","html","repeat","css","__decorateClass","property","state","query","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
package/package.json CHANGED
@@ -1,6 +1,66 @@
1
1
  {
2
- "name": "@ironflock/widget-value",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
2
+ "name": "@ironflock/widget-value",
3
+ "description": "REWidget widget-value",
4
+ "license": "MIT",
5
+ "author": "widget-value",
6
+ "version": "1.1.34",
7
+ "engines": {
8
+ "node": ">=24.9.0",
9
+ "npm": ">=10.0.2"
10
+ },
11
+ "type": "module",
12
+ "main": "dist/widget-value.js",
13
+ "types": "dist/src/widget-value.d.ts",
14
+ "files": [
15
+ "dist",
16
+ "src",
17
+ "thumbnail.png",
18
+ "thumbnail.webp"
19
+ ],
20
+ "scripts": {
21
+ "analyze": "cem analyze --litelement",
22
+ "start": "vite build --watch & vite",
23
+ "build": "vite build",
24
+ "watch": "vite build --watch",
25
+ "link": "npm run build && npm link && cd ../RESWARM/frontend && npm link @ironflock/widget-value",
26
+ "unlink": "npm unlink --global && cd ../RESWARM/frontend && npm unlink @ironflock/widget-value && npm i @ironflock/widget-value",
27
+ "types": "cat src/definition-schema.json | json2ts --style.tabWidth=4 > src/definition-schema.d.ts",
28
+ "preversion": "sh scripts/release-preflight.sh",
29
+ "version": "npm run build",
30
+ "postversion": "git push --follow-tags && sh scripts/release-verify.sh",
31
+ "release": "npm version patch",
32
+ "release:minor": "npm version minor",
33
+ "release:major": "npm version major"
34
+ },
35
+ "dependencies": {
36
+ "lit": "^3.3.3",
37
+ "tslib": "^2.8.1"
38
+ },
39
+ "devDependencies": {
40
+ "@custom-elements-manifest/analyzer": "^0.10.4",
41
+ "@rollup/plugin-replace": "^6.0.2",
42
+ "@typescript-eslint/eslint-plugin": "^8.34.1",
43
+ "@typescript-eslint/parser": "^8.34.1",
44
+ "eslint": "^9.29.0",
45
+ "eslint-config-prettier": "^10.1.5",
46
+ "husky": "^9.1.7",
47
+ "json-schema-to-typescript": "^15.0.4",
48
+ "lint-staged": "^16.1.2",
49
+ "prettier": "^3.5.3",
50
+ "rimraf": "^6.0.1",
51
+ "typescript": "^5.8.3",
52
+ "vite": "^7.3.0"
53
+ },
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "git+https://github.com/IronFlock/widget-value.git"
57
+ },
58
+ "keywords": [
59
+ "widget",
60
+ "value"
61
+ ],
62
+ "bugs": {
63
+ "url": "https://github.com/IronFlock/widget-value/issues"
64
+ },
65
+ "homepage": "https://github.com/IronFlock/widget-value#readme"
66
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "dataseries": [
3
+ {
4
+ "label": "Metric A",
5
+ "unit": "",
6
+ "precision": 0,
7
+ "value": 90
8
+ },
9
+ {
10
+ "label": "Metric B",
11
+ "unit": "",
12
+ "value": 80
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,121 @@
1
+ /* eslint-disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * The main heading displayed above the value displays. Use to identify the metric group (e.g., 'Temperature Readings', 'Production Counts').
10
+ */
11
+ export type Title = string;
12
+ /**
13
+ * Secondary text displayed below the title. Use for additional context like location, time period, or data source. Can be bound to a timestamp column, e.g. to say since when a total has been counting; set Subtitle Type to 'timestamp' so it reads as a date and time rather than a raw number.
14
+ */
15
+ export type Subtitle = string;
16
+ /**
17
+ * How the subtitle is shown. 'text' (the default) shows it exactly as given. 'timestamp' reads it as a point in time — Unix epoch milliseconds, which is how a bound timestamp column arrives, or an ISO 8601 string — and shows it as a date and time in the viewer's own time zone and locale. A value that is not a point in time is shown as given.
18
+ */
19
+ export type SubtitleType = "text" | "timestamp";
20
+ /**
21
+ * Display text identifying this value. Should clearly describe what the number represents (e.g., 'Current Temperature', 'Total Orders', 'CPU Usage').
22
+ */
23
+ export type Label = string;
24
+ /**
25
+ * The measurement unit displayed after the value. Examples: '°C', 'km/h', '%', 'kWh', 'pcs'. Can be bound to data for dynamic units.
26
+ */
27
+ export type Unit = string;
28
+ /**
29
+ * Number of decimal places to display. Default is 0 (whole numbers). Set to 1-3 for measurements requiring decimal precision (e.g., temperature: 2, percentages: 1).
30
+ */
31
+ export type Decimals = number;
32
+ /**
33
+ * The numeric value to display. Bind to a data source column containing the metric. Only shown when Multi Chart mode is disabled.
34
+ */
35
+ export type Value = number;
36
+ /**
37
+ * Enable to automatically create one value display per distinct pivot value in the data. When enabled, use the data array with pivot column instead of a single value.
38
+ */
39
+ export type MultiChart = boolean;
40
+ /**
41
+ * ISO 8601 timestamp string (e.g., '2023-11-04T22:47:52.351152+00:00'). Used with Maximum Latency setting to validate data freshness - stale data can be hidden or marked.
42
+ */
43
+ export type Timestamp = string;
44
+ /**
45
+ * The numeric value from this data row. In Multi Chart mode, the latest value per pivot group is displayed.
46
+ */
47
+ export type Value1 = number;
48
+ /**
49
+ * Column used to group data into separate value displays. Each unique value creates its own display. Example: with columns [city, timestamp, temperature], setting pivot to 'city' shows one temperature value per city.
50
+ */
51
+ export type SplitDataBy = string;
52
+ /**
53
+ * Data array for Multi Chart mode. Each row should contain a value and optionally a timestamp and pivot column for splitting into multiple displays.
54
+ */
55
+ export type Data = {
56
+ tsp?: Timestamp;
57
+ value?: Value1;
58
+ pivot?: SplitDataBy;
59
+ [k: string]: unknown;
60
+ }[];
61
+ /**
62
+ * Calculate and display the average of the N most recent values instead of just the latest. Useful for smoothing noisy sensor data. Leave empty to show the raw latest value. When using pivot/split, averaging is applied per group.
63
+ */
64
+ export type AverageLatestValues = number;
65
+ /**
66
+ * Maximum acceptable age of data in seconds. If the timestamp indicates data older than this threshold, the value may be hidden or marked as stale. Requires timestamp data to be provided. Useful for real-time monitoring where outdated values are misleading.
67
+ */
68
+ export type MaximumLatency = number;
69
+ /**
70
+ * Array of value display configurations. Each entry creates a labeled numeric display with optional unit and styling. Add multiple entries to show several related metrics together.
71
+ */
72
+ export type ValueDisplays = {
73
+ label?: Label;
74
+ unit?: Unit;
75
+ precision?: Decimals;
76
+ value?: Value;
77
+ multiChart?: MultiChart;
78
+ data?: Data;
79
+ styling?: Styling;
80
+ advanced?: AdvancedSettings;
81
+ [k: string]: unknown;
82
+ }[];
83
+
84
+ /**
85
+ * A simple numeric value display widget for showing key metrics with labels and units. Use this widget to prominently display important numbers like sensor readings, KPIs, or any scalar value that already exists in the data — the widget performs NO aggregation (no count/sum/avg; the only reduction is averaging the latest N readings via advanced.averageLatest). Supports multiple value displays in one widget, each with its own label, unit, and formatting. Features include decimal precision control, data freshness validation via timestamps, averaging over recent values, and automatic pivot/split functionality for showing one value per distinct category. Ideal for dashboard KPI tiles, sensor readouts, or any scenario requiring clean numeric value presentation.
86
+ */
87
+ export interface ValueDisplayConfiguration {
88
+ title?: Title;
89
+ subTitle?: Subtitle;
90
+ subTitleType?: SubtitleType;
91
+ dataseries?: ValueDisplays;
92
+ [k: string]: unknown;
93
+ }
94
+ /**
95
+ * Visual styling options for the label and value text colors.
96
+ */
97
+ export interface Styling {
98
+ labelColor?: LabelColor;
99
+ valueColor?: ValueColor;
100
+ [k: string]: unknown;
101
+ }
102
+ /**
103
+ * Color of the label text above or beside the value.
104
+ */
105
+ export interface LabelColor {
106
+ [k: string]: unknown;
107
+ }
108
+ /**
109
+ * Color of the numeric value and unit text.
110
+ */
111
+ export interface ValueColor {
112
+ [k: string]: unknown;
113
+ }
114
+ /**
115
+ * Advanced data processing options for averaging and freshness validation.
116
+ */
117
+ export interface AdvancedSettings {
118
+ averageLatest?: AverageLatestValues;
119
+ maxLatency?: MaximumLatency;
120
+ [k: string]: unknown;
121
+ }
@@ -0,0 +1,172 @@
1
+ {
2
+ "title": "Value Display Configuration",
3
+ "description": "A simple numeric value display widget for showing key metrics with labels and units. Use this widget to prominently display important numbers like sensor readings, KPIs, or any scalar value that already exists in the data — the widget performs NO aggregation (no count/sum/avg; the only reduction is averaging the latest N readings via advanced.averageLatest). Supports multiple value displays in one widget, each with its own label, unit, and formatting. Features include decimal precision control, data freshness validation via timestamps, averaging over recent values, and automatic pivot/split functionality for showing one value per distinct category. Ideal for dashboard KPI tiles, sensor readouts, or any scenario requiring clean numeric value presentation.",
4
+ "aiSelection": {
5
+ "dataShape": "One number per entry: dataseries[].data[].value, with an optional timestamp for freshness checks (advanced.maxLatency) and averaging over the latest N readings. Label, unit and decimal precision are set per entry. A pivot column produces one readout per distinct value. The subtitle can be bound as well, and shown as a local date and time when it holds a timestamp (subTitleType).",
6
+ "useWhen": [
7
+ "A single current figure is the whole point — a KPI tile showing a latest reading or an already-computed count/total that exists as a value in the data.",
8
+ "The number has a unit and a sensible precision and should be read exactly.",
9
+ "One tile per machine or site should be generated from a single column (data[].pivot).",
10
+ "Stale data should be visibly flagged rather than shown as current (advanced.maxLatency)."
11
+ ],
12
+ "notFor": [
13
+ "Counting or aggregating rows — the widget performs NO aggregation (no count/sum/avg); it displays a value that already exists in the data or is embedded as a static number.",
14
+ "A number that only means something against a minimum and maximum — use widget-gauge.",
15
+ "How the number is changing — use widget-linechart.",
16
+ "Its share of a total — use widget-doughnut.",
17
+ "Several fields per entity that belong side by side — use widget-table.",
18
+ "Text rather than a figure — use widget-label."
19
+ ]
20
+ },
21
+ "type": "object",
22
+ "properties": {
23
+ "title": {
24
+ "title": "Title",
25
+ "description": "The main heading displayed above the value displays. Use to identify the metric group (e.g., 'Temperature Readings', 'Production Counts').",
26
+ "type": "string",
27
+ "order": 1
28
+ },
29
+ "subTitle": {
30
+ "title": "Subtitle",
31
+ "description": "Secondary text displayed below the title. Use for additional context like location, time period, or data source. Can be bound to a timestamp column, e.g. to say since when a total has been counting; set Subtitle Type to 'timestamp' so it reads as a date and time rather than a raw number.",
32
+ "type": "string",
33
+ "order": 2
34
+ },
35
+ "subTitleType": {
36
+ "title": "Subtitle Type",
37
+ "description": "How the subtitle is shown. 'text' (the default) shows it exactly as given. 'timestamp' reads it as a point in time — Unix epoch milliseconds, which is how a bound timestamp column arrives, or an ISO 8601 string — and shows it as a date and time in the viewer's own time zone and locale. A value that is not a point in time is shown as given.",
38
+ "type": "string",
39
+ "enum": ["text", "timestamp"],
40
+ "dataDrivenDisabled": true,
41
+ "order": 2
42
+ },
43
+ "dataseries": {
44
+ "title": "Value Displays",
45
+ "description": "Array of value display configurations. Each entry creates a labeled numeric display with optional unit and styling. Add multiple entries to show several related metrics together.",
46
+ "type": "array",
47
+ "dataDrivenDisabled": true,
48
+ "order": 2,
49
+ "items": {
50
+ "type": "object",
51
+ "properties": {
52
+ "label": {
53
+ "title": "Label",
54
+ "description": "Display text identifying this value. Should clearly describe what the number represents (e.g., 'Current Temperature', 'Total Orders', 'CPU Usage').",
55
+ "type": "string",
56
+ "required": true,
57
+ "order": 1
58
+ },
59
+ "unit": {
60
+ "title": "Unit",
61
+ "description": "The measurement unit displayed after the value. Examples: '°C', 'km/h', '%', 'kWh', 'pcs'. Can be bound to data for dynamic units.",
62
+ "type": "string",
63
+ "dataDrivenDisabled": false,
64
+ "order": 2
65
+ },
66
+ "precision": {
67
+ "title": "Decimals",
68
+ "description": "Number of decimal places to display. Default is 0 (whole numbers). Set to 1-3 for measurements requiring decimal precision (e.g., temperature: 2, percentages: 1).",
69
+ "type": "number",
70
+ "dataDrivenDisabled": true,
71
+ "order": 3
72
+ },
73
+ "value": {
74
+ "title": "Value",
75
+ "description": "The numeric value to display. Bind to a data source column containing the metric. Only shown when Multi Chart mode is disabled.",
76
+ "type": "number",
77
+ "condition": {
78
+ "relativePath": "../multiChart",
79
+ "showIfValueIn": [false]
80
+ },
81
+ "order": 5
82
+ },
83
+ "multiChart": {
84
+ "title": "Multi Chart",
85
+ "description": "Enable to automatically create one value display per distinct pivot value in the data. When enabled, use the data array with pivot column instead of a single value.",
86
+ "type": "boolean",
87
+ "dataDrivenDisabled": true,
88
+ "order": 6
89
+ },
90
+ "data": {
91
+ "title": "Data",
92
+ "description": "Data array for Multi Chart mode. Each row should contain a value and optionally a timestamp and pivot column for splitting into multiple displays.",
93
+ "type": "array",
94
+ "condition": {
95
+ "relativePath": "../multiChart",
96
+ "showIfValueIn": [true]
97
+ },
98
+ "order": 7,
99
+ "items": {
100
+ "type": "object",
101
+ "properties": {
102
+ "tsp": {
103
+ "title": "Timestamp",
104
+ "description": "ISO 8601 timestamp string (e.g., '2023-11-04T22:47:52.351152+00:00'). Used with Maximum Latency setting to validate data freshness - stale data can be hidden or marked.",
105
+ "type": "string",
106
+ "order": 1
107
+ },
108
+ "value": {
109
+ "title": "Value",
110
+ "description": "The numeric value from this data row. In Multi Chart mode, the latest value per pivot group is displayed.",
111
+ "type": "number",
112
+ "required": true,
113
+ "order": 1
114
+ },
115
+ "pivot": {
116
+ "title": "Split Data by",
117
+ "description": "Column used to group data into separate value displays. Each unique value creates its own display. Example: with columns [city, timestamp, temperature], setting pivot to 'city' shows one temperature value per city.",
118
+ "type": "string",
119
+ "order": 2
120
+ }
121
+ }
122
+ }
123
+ },
124
+ "styling": {
125
+ "title": "Styling",
126
+ "description": "Visual styling options for the label and value text colors.",
127
+ "type": "object",
128
+ "order": 8,
129
+ "properties": {
130
+ "labelColor": {
131
+ "title": "Label Color",
132
+ "description": "Color of the label text above or beside the value.",
133
+ "type": "color",
134
+ "color": true,
135
+ "order": 4
136
+ },
137
+ "valueColor": {
138
+ "title": "Value Color",
139
+ "description": "Color of the numeric value and unit text.",
140
+ "type": "color",
141
+ "color": true,
142
+ "order": 5
143
+ }
144
+ }
145
+ },
146
+ "advanced": {
147
+ "title": "Advanced Settings",
148
+ "description": "Advanced data processing options for averaging and freshness validation.",
149
+ "type": "object",
150
+ "order": 9,
151
+ "properties": {
152
+ "averageLatest": {
153
+ "title": "Average Latest Values",
154
+ "description": "Calculate and display the average of the N most recent values instead of just the latest. Useful for smoothing noisy sensor data. Leave empty to show the raw latest value. When using pivot/split, averaging is applied per group.",
155
+ "type": "number",
156
+ "dataDrivenDisabled": true,
157
+ "order": 6
158
+ },
159
+ "maxLatency": {
160
+ "title": "Maximum Latency",
161
+ "description": "Maximum acceptable age of data in seconds. If the timestamp indicates data older than this threshold, the value may be hidden or marked as stale. Requires timestamp data to be provided. Useful for real-time monitoring where outdated values are misleading.",
162
+ "type": "number",
163
+ "dataDrivenDisabled": true,
164
+ "order": 7
165
+ }
166
+ }
167
+ }
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }