@openremote/or-dashboard-builder 1.2.0-snapshot.20240512154942
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 +156 -0
- package/build.gradle +15 -0
- package/lib/controls/dashboard-refresh-controls.d.ts +17 -0
- package/lib/controls/dashboard-refresh-controls.js +17 -0
- package/lib/controls/dashboard-refresh-controls.js.map +1 -0
- package/lib/index.d.ts +71 -0
- package/lib/index.js +285 -0
- package/lib/index.js.map +1 -0
- package/lib/or-dashboard-boardsettings.d.ts +19 -0
- package/lib/or-dashboard-boardsettings.js +121 -0
- package/lib/or-dashboard-boardsettings.js.map +1 -0
- package/lib/or-dashboard-browser.d.ts +9 -0
- package/lib/or-dashboard-browser.js +35 -0
- package/lib/or-dashboard-browser.js.map +1 -0
- package/lib/or-dashboard-engine.d.ts +4 -0
- package/lib/or-dashboard-engine.js +1 -0
- package/lib/or-dashboard-engine.js.map +1 -0
- package/lib/or-dashboard-keyhandler.d.ts +6 -0
- package/lib/or-dashboard-keyhandler.js +1 -0
- package/lib/or-dashboard-keyhandler.js.map +1 -0
- package/lib/or-dashboard-preview.d.ts +70 -0
- package/lib/or-dashboard-preview.js +155 -0
- package/lib/or-dashboard-preview.js.map +1 -0
- package/lib/or-dashboard-tree.d.ts +25 -0
- package/lib/or-dashboard-tree.js +62 -0
- package/lib/or-dashboard-tree.js.map +1 -0
- package/lib/or-dashboard-widgetcontainer.d.ts +23 -0
- package/lib/or-dashboard-widgetcontainer.js +20 -0
- package/lib/or-dashboard-widgetcontainer.js.map +1 -0
- package/lib/or-dashboard-widgetsettings.d.ts +15 -0
- package/lib/or-dashboard-widgetsettings.js +16 -0
- package/lib/or-dashboard-widgetsettings.js.map +1 -0
- package/lib/panels/assettypes-panel.d.ts +44 -0
- package/lib/panels/assettypes-panel.js +51 -0
- package/lib/panels/assettypes-panel.js.map +1 -0
- package/lib/panels/attributes-panel.d.ts +41 -0
- package/lib/panels/attributes-panel.js +126 -0
- package/lib/panels/attributes-panel.js.map +1 -0
- package/lib/panels/thresholds-panel.d.ts +39 -0
- package/lib/panels/thresholds-panel.js +129 -0
- package/lib/panels/thresholds-panel.js.map +1 -0
- package/lib/service/dashboard-service.d.ts +13 -0
- package/lib/service/dashboard-service.js +1 -0
- package/lib/service/dashboard-service.js.map +1 -0
- package/lib/service/widget-service.d.ts +8 -0
- package/lib/service/widget-service.js +1 -0
- package/lib/service/widget-service.js.map +1 -0
- package/lib/settings/attribute-input-settings.d.ts +13 -0
- package/lib/settings/attribute-input-settings.js +36 -0
- package/lib/settings/attribute-input-settings.js.map +1 -0
- package/lib/settings/chart-settings.d.ts +30 -0
- package/lib/settings/chart-settings.js +144 -0
- package/lib/settings/chart-settings.js.map +1 -0
- package/lib/settings/gauge-settings.d.ts +15 -0
- package/lib/settings/gauge-settings.js +37 -0
- package/lib/settings/gauge-settings.js.map +1 -0
- package/lib/settings/image-settings.d.ts +17 -0
- package/lib/settings/image-settings.js +52 -0
- package/lib/settings/image-settings.js.map +1 -0
- package/lib/settings/kpi-settings.d.ts +15 -0
- package/lib/settings/kpi-settings.js +47 -0
- package/lib/settings/kpi-settings.js.map +1 -0
- package/lib/settings/map-settings.d.ts +21 -0
- package/lib/settings/map-settings.js +72 -0
- package/lib/settings/map-settings.js.map +1 -0
- package/lib/settings/table-settings.d.ts +14 -0
- package/lib/settings/table-settings.js +33 -0
- package/lib/settings/table-settings.js.map +1 -0
- package/lib/style.d.ts +1 -0
- package/lib/style.js +99 -0
- package/lib/style.js.map +1 -0
- package/lib/util/or-asset-widget.d.ts +20 -0
- package/lib/util/or-asset-widget.js +1 -0
- package/lib/util/or-asset-widget.js.map +1 -0
- package/lib/util/or-widget.d.ts +31 -0
- package/lib/util/or-widget.js +1 -0
- package/lib/util/or-widget.js.map +1 -0
- package/lib/util/settings-panel.d.ts +9 -0
- package/lib/util/settings-panel.js +56 -0
- package/lib/util/settings-panel.js.map +1 -0
- package/lib/util/widget-config.d.ts +2 -0
- package/lib/util/widget-config.js +1 -0
- package/lib/util/widget-config.js.map +1 -0
- package/lib/util/widget-settings.d.ts +23 -0
- package/lib/util/widget-settings.js +1 -0
- package/lib/util/widget-settings.js.map +1 -0
- package/lib/widgets/attribute-input-widget.d.ts +24 -0
- package/lib/widgets/attribute-input-widget.js +31 -0
- package/lib/widgets/attribute-input-widget.js.map +1 -0
- package/lib/widgets/chart-widget.d.ts +25 -0
- package/lib/widgets/chart-widget.js +15 -0
- package/lib/widgets/chart-widget.js.map +1 -0
- package/lib/widgets/gauge-widget.d.ts +22 -0
- package/lib/widgets/gauge-widget.js +12 -0
- package/lib/widgets/gauge-widget.js.map +1 -0
- package/lib/widgets/image-widget.d.ts +25 -0
- package/lib/widgets/image-widget.js +54 -0
- package/lib/widgets/image-widget.js.map +1 -0
- package/lib/widgets/kpi-widget.d.ts +21 -0
- package/lib/widgets/kpi-widget.js +8 -0
- package/lib/widgets/kpi-widget.js.map +1 -0
- package/lib/widgets/map-widget.d.ts +39 -0
- package/lib/widgets/map-widget.js +9 -0
- package/lib/widgets/map-widget.js.map +1 -0
- package/lib/widgets/table-widget.d.ts +25 -0
- package/lib/widgets/table-widget.js +12 -0
- package/lib/widgets/table-widget.js.map +1 -0
- package/package.json +32 -0
- package/src/controls/dashboard-refresh-controls.ts +100 -0
- package/src/index.ts +731 -0
- package/src/or-dashboard-boardsettings.ts +249 -0
- package/src/or-dashboard-browser.ts +160 -0
- package/src/or-dashboard-engine.ts +17 -0
- package/src/or-dashboard-keyhandler.ts +25 -0
- package/src/or-dashboard-preview.ts +713 -0
- package/src/or-dashboard-tree.ts +304 -0
- package/src/or-dashboard-widgetcontainer.ts +155 -0
- package/src/or-dashboard-widgetsettings.ts +91 -0
- package/src/panels/assettypes-panel.ts +311 -0
- package/src/panels/attributes-panel.ts +304 -0
- package/src/panels/thresholds-panel.ts +285 -0
- package/src/service/dashboard-service.ts +89 -0
- package/src/service/widget-service.ts +48 -0
- package/src/settings/attribute-input-settings.ts +79 -0
- package/src/settings/chart-settings.ts +306 -0
- package/src/settings/gauge-settings.ts +93 -0
- package/src/settings/image-settings.ts +175 -0
- package/src/settings/kpi-settings.ts +106 -0
- package/src/settings/map-settings.ts +185 -0
- package/src/settings/table-settings.ts +92 -0
- package/src/style.ts +104 -0
- package/src/util/or-asset-widget.ts +110 -0
- package/src/util/or-widget.ts +60 -0
- package/src/util/settings-panel.ts +93 -0
- package/src/util/widget-config.ts +2 -0
- package/src/util/widget-settings.ts +58 -0
- package/src/widgets/attribute-input-widget.ts +143 -0
- package/src/widgets/chart-widget.ts +203 -0
- package/src/widgets/gauge-widget.ts +111 -0
- package/src/widgets/image-widget.ts +180 -0
- package/src/widgets/kpi-widget.ts +97 -0
- package/src/widgets/map-widget.ts +187 -0
- package/src/widgets/table-widget.ts +157 -0
- package/tsconfig.json +15 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/webpack.config.js +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var __decorate=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var g=t.length-1;g>=0;g--)(o=t[g])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};import{LitElement}from"lit";import{property}from"lit/decorators.js";import{style}from"../style";export class WidgetSettingsChangedEvent extends CustomEvent{constructor(t){super(WidgetSettingsChangedEvent.NAME,{bubbles:!0,composed:!0,detail:t})}}WidgetSettingsChangedEvent.NAME="settings-changed";export class WidgetSettings extends LitElement{static get styles(){return[style]}constructor(t){super(),this.widgetConfig=t}willUpdate(t){t.has("widgetConfig")&&this.widgetConfig&&this.dispatchEvent(new WidgetSettingsChangedEvent(this.widgetConfig))}notifyConfigUpdate(){this.requestUpdate("widgetConfig")}}__decorate([property()],WidgetSettings.prototype,"widgetConfig",void 0);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-settings.js","sourceRoot":"","sources":["../../src/util/widget-settings.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAkC,MAAM,KAAK,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAE/B,MAAM,OAAO,0BAA2B,SAAQ,WAAyB;IAIrE,YAAY,YAA0B;QAClC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE;YACnC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,YAAY;SACvB,CAAC,CAAC;IACP,CAAC;;AARsB,+BAAI,GAAG,kBAAkB,CAAC;AAYrD,MAAM,OAAgB,cAAe,SAAQ,UAAU;IAKnD,MAAM,KAAK,MAAM;QACb,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAID,YAAY,MAAoB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAGD,oFAAoF;IAC1E,UAAU,CAAC,YAA4B;QAC7C,IAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;IAES,kBAAkB;QACxB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;CAYJ;AAnCsB;IADlB,QAAQ,EAAE;oDACmC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { PropertyValues, TemplateResult } from "lit";
|
|
2
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
3
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
4
|
+
import { AttributeRef } from "@openremote/model";
|
|
5
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
6
|
+
import "@openremote/or-attribute-input";
|
|
7
|
+
export interface AttributeInputWidgetConfig extends WidgetConfig {
|
|
8
|
+
attributeRefs: AttributeRef[];
|
|
9
|
+
readonly: boolean;
|
|
10
|
+
showHelperText: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare class AttributeInputWidget extends OrAssetWidget {
|
|
13
|
+
protected widgetConfig: AttributeInputWidgetConfig;
|
|
14
|
+
protected widgetWrapperElem?: HTMLElement;
|
|
15
|
+
protected attributeInputElems?: NodeList;
|
|
16
|
+
protected resizeObserver?: ResizeObserver;
|
|
17
|
+
static getManifest(): WidgetManifest;
|
|
18
|
+
refreshContent(force: boolean): void;
|
|
19
|
+
static get styles(): import("lit").CSSResult[];
|
|
20
|
+
disconnectedCallback(): void;
|
|
21
|
+
protected updated(changedProps: PropertyValues): void;
|
|
22
|
+
protected loadAssets(attributeRefs: AttributeRef[]): void;
|
|
23
|
+
protected render(): TemplateResult;
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var AttributeInputWidget_1,__decorate=this&&this.__decorate||function(t,e,i,r){var s,n=arguments.length,o=n<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,i,r);else for(var d=t.length-1;d>=0;d--)(s=t[d])&&(o=(n<3?s(o):n>3?s(e,i,o):s(e,i))||o);return n>3&&o&&Object.defineProperty(e,i,o),o};import{css,html}from"lit";import{OrAssetWidget}from"../util/or-asset-widget";import{customElement,query,queryAll}from"lit/decorators.js";import{AttributeInputSettings}from"../settings/attribute-input-settings";import{when}from"lit/directives/when.js";import{throttle}from"lodash";import{Util}from"@openremote/core";import"@openremote/or-attribute-input";function getDefaultWidgetConfig(){return{attributeRefs:[],readonly:!1,showHelperText:!0}}const styling=css`
|
|
2
|
+
#widget-wrapper {
|
|
3
|
+
height: 100%;
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
align-items: center;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.attr-input {
|
|
11
|
+
width: 100%;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
`;let AttributeInputWidget=AttributeInputWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"Attribute",displayIcon:"form-textbox",getContentHtml:t=>new AttributeInputWidget_1(t),getDefaultConfig:()=>getDefaultWidgetConfig(),getSettingsHtml:t=>new AttributeInputSettings(t)}}refreshContent(t){this.widgetConfig=JSON.parse(JSON.stringify(this.widgetConfig))}static get styles(){return[...super.styles,styling]}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),delete this.resizeObserver}updated(t){if(t.has("widgetConfig")&&this.widgetConfig){const t=this.widgetConfig.attributeRefs;t.length>0&&!this.isAttributeRefLoaded(t[0])&&this.loadAssets(t)}return!this.resizeObserver&&this.widgetWrapperElem&&(this.resizeObserver=new ResizeObserver(throttle((()=>{window.dispatchEvent(new Event("resize"))}),200)),this.resizeObserver.observe(this.widgetWrapperElem)),super.updated(t)}loadAssets(t){this.fetchAssets(t).then((t=>{this.loadedAssets=t}))}render(){var t;const e=this.widgetConfig,i=e.attributeRefs.length>0&&(null===(t=this.loadedAssets[0])||void 0===t?void 0:t.attributes)?this.loadedAssets[0].attributes[e.attributeRefs[0].name]:void 0,r=Util.getMetaValue("readOnly",i);return html`
|
|
15
|
+
${when(e.attributeRefs.length>0&&i&&this.loadedAssets&&this.loadedAssets.length>0,(()=>{var t,s;return html`
|
|
16
|
+
<div id="widget-wrapper">
|
|
17
|
+
<or-attribute-input class="attr-input" fullWidth
|
|
18
|
+
.assetType="${null===(t=this.loadedAssets[0])||void 0===t?void 0:t.type}"
|
|
19
|
+
.attribute="${i}"
|
|
20
|
+
.assetId="${null===(s=this.loadedAssets[0])||void 0===s?void 0:s.id}"
|
|
21
|
+
.disabled="${!this.loadedAssets}"
|
|
22
|
+
.readonly="${e.readonly||r||this.getEditMode()}"
|
|
23
|
+
.hasHelperText="${e.showHelperText}"
|
|
24
|
+
></or-attribute-input>
|
|
25
|
+
</div>
|
|
26
|
+
`}),(()=>html`
|
|
27
|
+
<div style="height: 100%; display: flex; justify-content: center; align-items: center;">
|
|
28
|
+
<span><or-translate value="noAttributesConnected"></or-translate></span>
|
|
29
|
+
</div>
|
|
30
|
+
`))}
|
|
31
|
+
`}};__decorate([query("#widget-wrapper")],AttributeInputWidget.prototype,"widgetWrapperElem",void 0),__decorate([queryAll(".attr-input")],AttributeInputWidget.prototype,"attributeInputElems",void 0),AttributeInputWidget=AttributeInputWidget_1=__decorate([customElement("attribute-input-widget")],AttributeInputWidget);export{AttributeInputWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attribute-input-widget.js","sourceRoot":"","sources":["../../src/widgets/attribute-input-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AssetDatapointLTTBQuery, AssetDatapointQueryUnion, AttributeRef } from "@openremote/model";
|
|
2
|
+
import { PropertyValues, TemplateResult } from "lit";
|
|
3
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
4
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
5
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
6
|
+
import "@openremote/or-chart";
|
|
7
|
+
export interface ChartWidgetConfig extends WidgetConfig {
|
|
8
|
+
attributeRefs: AttributeRef[];
|
|
9
|
+
rightAxisAttributes: AttributeRef[];
|
|
10
|
+
datapointQuery: AssetDatapointQueryUnion;
|
|
11
|
+
chartOptions?: any;
|
|
12
|
+
showTimestampControls: boolean;
|
|
13
|
+
defaultTimePresetKey: string;
|
|
14
|
+
showLegend: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class ChartWidget extends OrAssetWidget {
|
|
17
|
+
protected datapointQuery: AssetDatapointQueryUnion;
|
|
18
|
+
protected widgetConfig: ChartWidgetConfig;
|
|
19
|
+
static getManifest(): WidgetManifest;
|
|
20
|
+
refreshContent(force: boolean): void;
|
|
21
|
+
protected willUpdate(changedProps: PropertyValues): void;
|
|
22
|
+
protected updated(changedProps: Map<string, any>): void;
|
|
23
|
+
protected render(): TemplateResult;
|
|
24
|
+
protected getDefaultQuery(): AssetDatapointLTTBQuery;
|
|
25
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var ChartWidget_1,__decorate=this&&this.__decorate||function(t,e,i,s){var o,a=arguments.length,n=a<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,i,s);else for(var r=t.length-1;r>=0;r--)(o=t[r])&&(n=(a<3?o(n):a>3?o(e,i,n):o(e,i))||n);return a>3&&n&&Object.defineProperty(e,i,n),n};import{html}from"lit";import{when}from"lit/directives/when.js";import moment from"moment";import{OrAssetWidget}from"../util/or-asset-widget";import{customElement,state}from"lit/decorators.js";import{ChartSettings}from"../settings/chart-settings";import"@openremote/or-chart";function getDefaultTimePresetOptions(){return new Map([["lastHour",t=>[moment(t).subtract(1,"hour").toDate(),t]],["last24Hours",t=>[moment(t).subtract(24,"hours").toDate(),t]],["last7Days",t=>[moment(t).subtract(7,"days").toDate(),t]],["last30Days",t=>[moment(t).subtract(30,"days").toDate(),t]],["last90Days",t=>[moment(t).subtract(90,"days").toDate(),t]],["last6Months",t=>[moment(t).subtract(6,"months").toDate(),t]],["lastYear",t=>[moment(t).subtract(1,"year").toDate(),t]],["thisHour",t=>[moment(t).startOf("hour").toDate(),moment(t).endOf("hour").toDate()]],["thisDay",t=>[moment(t).startOf("day").toDate(),moment(t).endOf("day").toDate()]],["thisWeek",t=>[moment(t).startOf("isoWeek").toDate(),moment(t).endOf("isoWeek").toDate()]],["thisMonth",t=>[moment(t).startOf("month").toDate(),moment(t).endOf("month").toDate()]],["thisYear",t=>[moment(t).startOf("year").toDate(),moment(t).endOf("year").toDate()]],["yesterday",t=>[moment(t).subtract(24,"hours").startOf("day").toDate(),moment(t).subtract(24,"hours").endOf("day").toDate()]],["thisDayLastWeek",t=>[moment(t).subtract(1,"week").startOf("day").toDate(),moment(t).subtract(1,"week").endOf("day").toDate()]],["previousWeek",t=>[moment(t).subtract(1,"week").startOf("isoWeek").toDate(),moment(t).subtract(1,"week").endOf("isoWeek").toDate()]],["previousMonth",t=>[moment(t).subtract(1,"month").startOf("month").toDate(),moment(t).subtract(1,"month").endOf("month").toDate()]],["previousYear",t=>[moment(t).subtract(1,"year").startOf("year").toDate(),moment(t).subtract(1,"year").endOf("year").toDate()]]])}function getDefaultSamplingOptions(){return new Map([["lttb","lttb"],["withInterval","interval"]])}function getDefaultWidgetConfig(){const t="last24Hours",e=getDefaultTimePresetOptions().get(t)(new Date);return{attributeRefs:[],rightAxisAttributes:[],datapointQuery:{type:"lttb",fromTimestamp:e[0].getTime(),toTimestamp:e[1].getTime()},chartOptions:{options:{scales:{y:{min:void 0,max:void 0},y1:{min:void 0,max:void 0}}}},showTimestampControls:!1,defaultTimePresetKey:t,showLegend:!0}}let ChartWidget=ChartWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"Line Chart",displayIcon:"chart-line",minColumnWidth:2,minColumnHeight:2,getContentHtml:t=>new ChartWidget_1(t),getSettingsHtml(t){const e=new ChartSettings(t);return e.setTimePresetOptions(getDefaultTimePresetOptions()),e.setSamplingOptions(getDefaultSamplingOptions()),e},getDefaultConfig:()=>getDefaultWidgetConfig()}}refreshContent(t){if(t)this.widgetConfig=JSON.parse(JSON.stringify(this.widgetConfig));else{const t=JSON.parse(JSON.stringify(this.widgetConfig.datapointQuery));t.fromTimestamp=void 0,t.toTimestamp=void 0,this.datapointQuery=t}}willUpdate(t){return this.widgetConfig.datapointQuery||(this.widgetConfig.datapointQuery=this.getDefaultQuery(),t.has("widgetConfig")||t.set("widgetConfig",this.widgetConfig)),t.has("widgetConfig")&&this.widgetConfig&&(this.datapointQuery=this.widgetConfig.datapointQuery),super.willUpdate(t)}updated(t){if(super.updated(t),t.has("widgetConfig")&&this.widgetConfig){const t=this.widgetConfig.attributeRefs;(null==t?void 0:t.filter((t=>!this.isAttributeRefLoaded(t)))).length>0&&this.fetchAssets(t).then((e=>{this.loadedAssets=e,this.assetAttributes=null==t?void 0:t.map((t=>{const i=e.findIndex((e=>e.id===t.id)),s=i>=0?e[i]:void 0;return s&&s.attributes?[i,s.attributes[t.name]]:void 0})).filter((t=>!!t))}))}return super.updated(t)}render(){return html`
|
|
2
|
+
${when(this.loadedAssets&&this.assetAttributes&&this.loadedAssets.length>0&&this.assetAttributes.length>0,(()=>{var t,e,i,s,o;return html`
|
|
3
|
+
<or-chart .assets="${this.loadedAssets}" .assetAttributes="${this.assetAttributes}" .rightAxisAttributes="${this.widgetConfig.rightAxisAttributes}"
|
|
4
|
+
.showLegend="${null==(null===(t=this.widgetConfig)||void 0===t?void 0:t.showLegend)||(null===(e=this.widgetConfig)||void 0===e?void 0:e.showLegend)}"
|
|
5
|
+
.attributeControls="${!1}" .timestampControls="${!(null===(i=this.widgetConfig)||void 0===i?void 0:i.showTimestampControls)}"
|
|
6
|
+
.timePresetOptions="${getDefaultTimePresetOptions()}" .timePresetKey="${null===(s=this.widgetConfig)||void 0===s?void 0:s.defaultTimePresetKey}"
|
|
7
|
+
.datapointQuery="${this.datapointQuery}" .chartOptions="${null===(o=this.widgetConfig)||void 0===o?void 0:o.chartOptions}"
|
|
8
|
+
style="height: 100%"
|
|
9
|
+
></or-chart>
|
|
10
|
+
`}),(()=>html`
|
|
11
|
+
<div style="height: 100%; display: flex; justify-content: center; align-items: center;">
|
|
12
|
+
<span><or-translate value="noAttributesConnected"></or-translate></span>
|
|
13
|
+
</div>
|
|
14
|
+
`))}
|
|
15
|
+
`}getDefaultQuery(){return{type:"lttb",fromTimestamp:moment().set("minute",-60).toDate().getTime(),toTimestamp:moment().set("minute",60).toDate().getTime()}}};__decorate([state()],ChartWidget.prototype,"datapointQuery",void 0),ChartWidget=ChartWidget_1=__decorate([customElement("chart-widget")],ChartWidget);export{ChartWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-widget.js","sourceRoot":"","sources":["../../src/widgets/chart-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TemplateResult } from "lit";
|
|
2
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
3
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
4
|
+
import { AttributeRef } from "@openremote/model";
|
|
5
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
6
|
+
import "@openremote/or-gauge";
|
|
7
|
+
export interface GaugeWidgetConfig extends WidgetConfig {
|
|
8
|
+
attributeRefs: AttributeRef[];
|
|
9
|
+
thresholds: [number, string][];
|
|
10
|
+
decimals: number;
|
|
11
|
+
min: number;
|
|
12
|
+
max: number;
|
|
13
|
+
valueType: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class GaugeWidget extends OrAssetWidget {
|
|
16
|
+
protected widgetConfig: GaugeWidgetConfig;
|
|
17
|
+
static getManifest(): WidgetManifest;
|
|
18
|
+
refreshContent(force: boolean): void;
|
|
19
|
+
protected updated(changedProps: Map<string, any>): void;
|
|
20
|
+
protected loadAssets(attributeRefs: AttributeRef[]): void;
|
|
21
|
+
protected render(): TemplateResult;
|
|
22
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var GaugeWidget_1,__decorate=this&&this.__decorate||function(t,e,i,s){var n,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var g=t.length-1;g>=0;g--)(n=t[g])&&(a=(r<3?n(a):r>3?n(e,i,a):n(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};import{html}from"lit";import{customElement}from"lit/decorators.js";import{OrAssetWidget}from"../util/or-asset-widget";import{GaugeSettings}from"../settings/gauge-settings";import{when}from"lit/directives/when.js";import"@openremote/or-gauge";function getDefaultWidgetConfig(){return{attributeRefs:[],thresholds:[[0,"#4caf50"],[75,"#ff9800"],[90,"#ef5350"]],decimals:0,min:0,max:100,valueType:"number"}}let GaugeWidget=GaugeWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"Gauge",displayIcon:"gauge",minColumnWidth:1,minColumnHeight:1,getContentHtml:t=>new GaugeWidget_1(t),getSettingsHtml:t=>new GaugeSettings(t),getDefaultConfig:()=>getDefaultWidgetConfig()}}refreshContent(t){this.loadAssets(this.widgetConfig.attributeRefs)}updated(t){if(super.updated(t),t.has("widgetConfig")&&this.widgetConfig){const t=this.widgetConfig.attributeRefs,e=null==t?void 0:t.filter((t=>this.isAttributeRefLoaded(t)));(null==e?void 0:e.length)!==(t?t.length:0)&&this.loadAssets(t)}return super.updated(t)}loadAssets(t){this.fetchAssets(t).then((e=>{this.loadedAssets=e,this.assetAttributes=null==t?void 0:t.map((t=>{const i=e.findIndex((e=>e.id===t.id)),s=i>=0?e[i]:void 0;return s&&s.attributes?[i,s.attributes[t.name]]:void 0})).filter((t=>!!t))}))}render(){return html`
|
|
2
|
+
${when(this.loadedAssets&&this.assetAttributes&&this.loadedAssets.length>0&&this.assetAttributes.length>0,(()=>html`
|
|
3
|
+
<or-gauge .asset="${this.loadedAssets[0]}" .assetAttribute="${this.assetAttributes[0]}" .thresholds="${this.widgetConfig.thresholds}"
|
|
4
|
+
.decimals="${this.widgetConfig.decimals}" .min="${this.widgetConfig.min}" .max="${this.widgetConfig.max}"
|
|
5
|
+
style="height: 100%; overflow: hidden;">
|
|
6
|
+
</or-gauge>
|
|
7
|
+
`),(()=>html`
|
|
8
|
+
<div style="height: 100%; display: flex; justify-content: center; align-items: center;">
|
|
9
|
+
<span><or-translate value="noAttributeConnected"></or-translate></span>
|
|
10
|
+
</div>
|
|
11
|
+
`))}
|
|
12
|
+
`}};GaugeWidget=GaugeWidget_1=__decorate([customElement("gauge-widget")],GaugeWidget);export{GaugeWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-widget.js","sourceRoot":"","sources":["../../src/widgets/gauge-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
2
|
+
import { AttributeRef } from "@openremote/model";
|
|
3
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
4
|
+
import { CSSResult, PropertyValues, TemplateResult } from "lit";
|
|
5
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
6
|
+
export interface ImageAssetMarker {
|
|
7
|
+
attributeRef: AttributeRef;
|
|
8
|
+
coordinates: [number, number];
|
|
9
|
+
}
|
|
10
|
+
export interface ImageWidgetConfig extends WidgetConfig {
|
|
11
|
+
attributeRefs: AttributeRef[];
|
|
12
|
+
markers: ImageAssetMarker[];
|
|
13
|
+
showTimestampControls: boolean;
|
|
14
|
+
imagePath: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class ImageWidget extends OrAssetWidget {
|
|
17
|
+
protected readonly widgetConfig: ImageWidgetConfig;
|
|
18
|
+
static getManifest(): WidgetManifest;
|
|
19
|
+
refreshContent(force: boolean): void;
|
|
20
|
+
static get styles(): CSSResult[];
|
|
21
|
+
updated(changedProps: PropertyValues): void;
|
|
22
|
+
protected loadAssets(): void;
|
|
23
|
+
protected handleMarkerPlacement(config: ImageWidgetConfig): TemplateResult<1>[] | undefined;
|
|
24
|
+
protected render(): TemplateResult;
|
|
25
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var ImageWidget_1,__decorate=this&&this.__decorate||function(t,e,i,r){var s,o=arguments.length,a=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,r);else for(var n=t.length-1;n>=0;n--)(s=t[n])&&(a=(o<3?s(a):o>3?s(e,i,a):s(e,i))||a);return o>3&&a&&Object.defineProperty(e,i,a),a};import{AssetModelUtil}from"@openremote/model";import{customElement}from"lit/decorators.js";import{css,html,unsafeCSS}from"lit";import{OrAssetWidget}from"../util/or-asset-widget";import{ImageSettings}from"../settings/image-settings";import{when}from"lit/directives/when.js";import{DefaultColor2,DefaultColor3,Util}from"@openremote/core";import{styleMap}from"lit/directives/style-map.js";const styling=css`
|
|
2
|
+
#img-wrapper {
|
|
3
|
+
height: 100%;
|
|
4
|
+
width: 100%;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
align-items: center;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
z-index: 1;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#img-container {
|
|
14
|
+
position: relative;
|
|
15
|
+
max-height: 100%;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#img-content {
|
|
19
|
+
height: 100%;
|
|
20
|
+
max-height: 100%;
|
|
21
|
+
max-width: 100%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#overlay {
|
|
25
|
+
position: absolute;
|
|
26
|
+
z-index: 3;
|
|
27
|
+
|
|
28
|
+
/* additional marker styling */
|
|
29
|
+
color: var(--or-app-color2, ${unsafeCSS(DefaultColor2)});
|
|
30
|
+
background-color: var(--or-app-color3, ${unsafeCSS(DefaultColor3)});
|
|
31
|
+
border-radius: 15px;
|
|
32
|
+
padding: 3px 8px 5px 8px;
|
|
33
|
+
object-fit: contain;
|
|
34
|
+
text-overflow: ellipsis;
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
}
|
|
37
|
+
`;function getDefaultWidgetConfig(){return{attributeRefs:[],showTimestampControls:!1,imagePath:"",markers:[]}}let ImageWidget=ImageWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"Image",displayIcon:"file-image-marker",minColumnWidth:1,minColumnHeight:1,getContentHtml:t=>new ImageWidget_1(t),getSettingsHtml:t=>new ImageSettings(t),getDefaultConfig:()=>getDefaultWidgetConfig()}}refreshContent(t){this.loadAssets()}static get styles(){return[...super.styles,styling]}updated(t){if(t.has("widgetConfig")&&this.widgetConfig){const t=this.widgetConfig.attributeRefs;(null==t?void 0:t.filter((t=>!this.isAttributeRefLoaded(t)))).length>0&&this.loadAssets()}}loadAssets(){this.fetchAssets(this.widgetConfig.attributeRefs).then((t=>{this.loadedAssets=t,this.assetAttributes=this.widgetConfig.attributeRefs.map((e=>{const i=t.findIndex((t=>t.id===e.id)),r=i>=0?t[i]:void 0;return r&&r.attributes?[i,r.attributes[e.name]]:void 0})).filter((t=>!!t))}))}handleMarkerPlacement(t){if(this.assetAttributes.length&&t.attributeRefs.length>0)return 0===t.markers.length?(console.error("No markers found!"),[]):t.attributeRefs.map(((e,i)=>{const r=t.markers.find((t=>t.attributeRef.id===e.id&&t.attributeRef.name===e.name)),s=this.loadedAssets.find((t=>t.id===e.id));let o;const a={left:`${r.coordinates[0]}%`,top:`${r.coordinates[1]}%`};if(s){const t=s.attributes[e.name],i=AssetModelUtil.getAttributeAndValueDescriptors(s.type,e.name,t);o=Util.getAttributeValueAsString(t,i[0],s.type,!0,"-"),"colourRGB"===(null==t?void 0:t.type)&&"-"!==o&&(a.backgroundColor=o,a.minHeight="21px",a.minWidth="13px",o=void 0)}return html`
|
|
38
|
+
<span id="overlay" style="${styleMap(a)}">
|
|
39
|
+
${o}
|
|
40
|
+
</span>
|
|
41
|
+
`}))}render(){const t=this.widgetConfig.imagePath;return html`
|
|
42
|
+
<div id="img-wrapper">
|
|
43
|
+
${when(t,(()=>html`
|
|
44
|
+
<div id="img-container">
|
|
45
|
+
<img id="img-content" src="${t}" alt=""/>
|
|
46
|
+
<div>
|
|
47
|
+
${this.handleMarkerPlacement(this.widgetConfig)}
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
`),(()=>html`
|
|
51
|
+
<span><or-translate value="dashboard.noImageSelected"></or-translate></span>
|
|
52
|
+
`))}
|
|
53
|
+
</div>
|
|
54
|
+
`}};ImageWidget=ImageWidget_1=__decorate([customElement("image-widget")],ImageWidget);export{ImageWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-widget.js","sourceRoot":"","sources":["../../src/widgets/image-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
2
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
3
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
4
|
+
import { AttributeRef } from "@openremote/model";
|
|
5
|
+
import { TemplateResult } from "lit";
|
|
6
|
+
import "@openremote/or-attribute-card";
|
|
7
|
+
export interface KpiWidgetConfig extends WidgetConfig {
|
|
8
|
+
attributeRefs: AttributeRef[];
|
|
9
|
+
period?: 'year' | 'month' | 'week' | 'day' | 'hour';
|
|
10
|
+
decimals: number;
|
|
11
|
+
deltaFormat: "absolute" | "percentage";
|
|
12
|
+
showTimestampControls: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class KpiWidget extends OrAssetWidget {
|
|
15
|
+
protected widgetConfig: KpiWidgetConfig;
|
|
16
|
+
static getManifest(): WidgetManifest;
|
|
17
|
+
refreshContent(force: boolean): void;
|
|
18
|
+
protected updated(changedProps: Map<string, any>): void;
|
|
19
|
+
protected loadAssets(attributeRefs: AttributeRef[]): void;
|
|
20
|
+
protected render(): TemplateResult;
|
|
21
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var KpiWidget_1,__decorate=this&&this.__decorate||function(t,e,i,s){var o,r=arguments.length,d=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)d=Reflect.decorate(t,e,i,s);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(d=(r<3?o(d):r>3?o(e,i,d):o(e,i))||d);return r>3&&d&&Object.defineProperty(e,i,d),d};import{customElement}from"lit/decorators.js";import{OrAssetWidget}from"../util/or-asset-widget";import{html}from"lit";import{KpiSettings}from"../settings/kpi-settings";import"@openremote/or-attribute-card";function getDefaultWidgetConfig(){return{attributeRefs:[],period:"day",decimals:0,deltaFormat:"absolute",showTimestampControls:!1}}let KpiWidget=KpiWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"KPI",displayIcon:"label",minColumnWidth:1,minColumnHeight:1,getContentHtml:t=>new KpiWidget_1(t),getSettingsHtml:t=>new KpiSettings(t),getDefaultConfig:()=>getDefaultWidgetConfig()}}refreshContent(t){this.loadAssets(this.widgetConfig.attributeRefs)}updated(t){if(super.updated(t),t.has("widgetConfig")&&this.widgetConfig){const t=this.widgetConfig.attributeRefs,e=null==t?void 0:t.filter((t=>this.isAttributeRefLoaded(t)));(null==e?void 0:e.length)!==(t?t.length:0)&&this.loadAssets(t)}return super.updated(t)}loadAssets(t){this.fetchAssets(t).then((e=>{this.loadedAssets=e,this.assetAttributes=null==t?void 0:t.map((t=>{const i=e.findIndex((e=>e.id===t.id)),s=i>=0?e[i]:void 0;return s&&s.attributes?[i,s.attributes[t.name]]:void 0})).filter((t=>!!t))}))}render(){var t;return html`
|
|
2
|
+
<div style="height: 100%; overflow: hidden;">
|
|
3
|
+
<or-attribute-card .assets="${this.loadedAssets}" .assetAttributes="${this.assetAttributes}" .period="${this.widgetConfig.period}"
|
|
4
|
+
.deltaFormat="${this.widgetConfig.deltaFormat}" .mainValueDecimals="${this.widgetConfig.decimals}"
|
|
5
|
+
showControls="${null===(t=this.widgetConfig)||void 0===t?void 0:t.showTimestampControls}" showTitle="${!1}" style="height: 100%;">
|
|
6
|
+
</or-attribute-card>
|
|
7
|
+
</div>
|
|
8
|
+
`}};KpiWidget=KpiWidget_1=__decorate([customElement("kpi-widget")],KpiWidget);export{KpiWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kpi-widget.js","sourceRoot":"","sources":["../../src/widgets/kpi-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PropertyValues, TemplateResult } from "lit";
|
|
2
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
3
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
4
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
5
|
+
import { Asset, AssetDescriptor, AttributeRef } from "@openremote/model";
|
|
6
|
+
import { LngLatLike, MapMarkerColours } from "@openremote/or-map";
|
|
7
|
+
import "@openremote/or-map";
|
|
8
|
+
export interface MapWidgetConfig extends WidgetConfig {
|
|
9
|
+
attributeRefs: AttributeRef[];
|
|
10
|
+
zoom?: number;
|
|
11
|
+
center?: LngLatLike;
|
|
12
|
+
lat?: number;
|
|
13
|
+
lng?: number;
|
|
14
|
+
showLabels: boolean;
|
|
15
|
+
showUnits: boolean;
|
|
16
|
+
showGeoJson: boolean;
|
|
17
|
+
boolColors: MapMarkerColours;
|
|
18
|
+
textColors: [string, string][];
|
|
19
|
+
thresholds: [number, string][];
|
|
20
|
+
min?: number;
|
|
21
|
+
max?: number;
|
|
22
|
+
assetType?: string;
|
|
23
|
+
valueType?: string;
|
|
24
|
+
attributeName?: string;
|
|
25
|
+
assetTypes: AssetDescriptor[];
|
|
26
|
+
assetIds: string[];
|
|
27
|
+
attributes: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare class MapWidget extends OrAssetWidget {
|
|
30
|
+
protected widgetConfig: MapWidgetConfig;
|
|
31
|
+
private markers;
|
|
32
|
+
static getManifest(): WidgetManifest;
|
|
33
|
+
refreshContent(force: boolean): void;
|
|
34
|
+
protected updated(changedProps: PropertyValues): void;
|
|
35
|
+
protected loadAssets(): Promise<void>;
|
|
36
|
+
protected fetchAssetsByType(assetTypes: string[], attributeName: string): Promise<Asset[]>;
|
|
37
|
+
protected render(): TemplateResult;
|
|
38
|
+
protected getMarkerTemplates(): TemplateResult[];
|
|
39
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
var MapWidget_1,__decorate=this&&this.__decorate||function(e,t,s,i){var o,r=arguments.length,a=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,s,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(a=(r<3?o(a):r>3?o(t,s,a):o(t,s))||a);return r>3&&a&&Object.defineProperty(t,s,a),a},__awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(o,r){function a(e){try{l(i.next(e))}catch(e){r(e)}}function n(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(a,n)}l((i=i.apply(e,t||[])).next())}))};import{html}from"lit";import{customElement}from"lit/decorators.js";import{OrAssetWidget}from"../util/or-asset-widget";import{MapSettings}from"../settings/map-settings";import{when}from"lit/directives/when.js";import manager,{Util}from"@openremote/core";import{showSnackbar}from"@openremote/or-mwc-components/or-mwc-snackbar";import"@openremote/or-map";function getDefaultWidgetConfig(){return{attributeRefs:[],showLabels:!1,showUnits:!1,showGeoJson:!0,boolColors:{type:"boolean",false:"#ef5350",true:"#4caf50"},textColors:[["example","4caf50"],["example2","ef5350"]],thresholds:[[0,"#4caf50"],[75,"#ff9800"],[90,"#ef5350"]],assetTypes:[],assetType:void 0,assetIds:[],attributes:[]}}let MapWidget=MapWidget_1=class extends OrAssetWidget{constructor(){super(...arguments),this.markers={}}static getManifest(){return{displayName:"Map",displayIcon:"map",minColumnWidth:2,minColumnHeight:2,getContentHtml:e=>new MapWidget_1(e),getSettingsHtml:e=>new MapSettings(e),getDefaultConfig:()=>getDefaultWidgetConfig()}}refreshContent(e){this.loadAssets()}updated(e){e.has("widgetConfig")&&this.widgetConfig&&this.loadAssets()}loadAssets(){return __awaiter(this,void 0,void 0,(function*(){this.widgetConfig.assetType&&this.widgetConfig.attributeName&&this.fetchAssetsByType([this.widgetConfig.assetType],this.widgetConfig.attributeName).then((e=>{this.loadedAssets=e}))}))}fetchAssetsByType(e,t){return __awaiter(this,void 0,void 0,(function*(){let s=[];return yield manager.rest.api.AssetResource.queryAssets({realm:{name:manager.displayRealm},select:{attributes:[t,"location"]},types:e}).then((e=>{s=e.data,this.markers={}})).catch((e=>{console.error(e),showSnackbar(void 0,"errorOccurred")})),s}))}render(){return html`
|
|
2
|
+
<div style="height: 100%; display: flex; flex-direction: column; overflow: hidden;">
|
|
3
|
+
<or-map id="miniMap" class="or-map" .zoom="${this.widgetConfig.zoom}" .center="${this.widgetConfig.center}" .showGeoJson="${this.widgetConfig.showGeoJson}" style="flex: 1;">
|
|
4
|
+
${when(this.loadedAssets,(()=>this.getMarkerTemplates()))}
|
|
5
|
+
</or-map>
|
|
6
|
+
</div>
|
|
7
|
+
`}getMarkerTemplates(){return this.loadedAssets.filter((e=>{if(!e.attributes)return!1;const t=e.attributes.location;return!(t&&t.meta&&t.meta.hasOwnProperty("showOnDashboard")&&!Util.getMetaValue("showOnDashboard",t))})).map((e=>{if(this.markers)if(this.markers[e.type]={attributeName:this.widgetConfig.attributeName},this.markers[e.type].showUnits=this.widgetConfig.showUnits,this.markers[e.type].showLabel=this.widgetConfig.showLabels,"boolean"==this.widgetConfig.valueType)this.widgetConfig.boolColors.true=this.widgetConfig.boolColors.true.replace("#",""),this.widgetConfig.boolColors.false=this.widgetConfig.boolColors.false.replace("#",""),this.markers[e.type].colours=this.widgetConfig.boolColors;else if("text"==this.widgetConfig.valueType){var t={type:"string"};this.widgetConfig.textColors.map((e=>{t[e[0]]=e[1].replace("#","")})),this.markers[e.type].colours=t}else{var s=[];this.widgetConfig.thresholds.sort(((e,t)=>e[0]>t[0]?-1:1)).map(((e,t)=>{var i={min:e[0],colour:e[1].replace("#","")};s.push(i)}));var i={type:"range",ranges:s};this.markers[e.type].colours=i}return html`
|
|
8
|
+
<or-map-marker-asset .asset="${e}" .config="${this.markers}"></or-map-marker-asset>
|
|
9
|
+
`}))}};MapWidget=MapWidget_1=__decorate([customElement("map-widget")],MapWidget);export{MapWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-widget.js","sourceRoot":"","sources":["../../src/widgets/map-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PropertyValues, TemplateResult } from "lit";
|
|
2
|
+
import { OrAssetWidget } from "../util/or-asset-widget";
|
|
3
|
+
import { WidgetManifest } from "../util/or-widget";
|
|
4
|
+
import { WidgetConfig } from "../util/widget-config";
|
|
5
|
+
import { OrMwcTableRowClickEvent, TableColumn, TableRow } from "@openremote/or-mwc-components/or-mwc-table";
|
|
6
|
+
import "@openremote/or-mwc-components/or-mwc-table";
|
|
7
|
+
export interface TableWidgetConfig extends WidgetConfig {
|
|
8
|
+
assetType?: string;
|
|
9
|
+
assetIds: string[];
|
|
10
|
+
attributeNames: string[];
|
|
11
|
+
tableSize: number;
|
|
12
|
+
tableOptions: number[];
|
|
13
|
+
}
|
|
14
|
+
export declare class TableWidget extends OrAssetWidget {
|
|
15
|
+
protected widgetConfig: TableWidgetConfig;
|
|
16
|
+
static getManifest(): WidgetManifest;
|
|
17
|
+
static get styles(): import("lit").CSSResult[];
|
|
18
|
+
refreshContent(force: boolean): void;
|
|
19
|
+
protected willUpdate(changedProps: PropertyValues): void;
|
|
20
|
+
protected loadAssets(): void;
|
|
21
|
+
protected getColumns(attributeNames: string[]): TableColumn[];
|
|
22
|
+
protected getRows(attributeNames: string[]): TableRow[];
|
|
23
|
+
protected render(): TemplateResult;
|
|
24
|
+
protected onTableRowClick(ev: OrMwcTableRowClickEvent): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
var TableWidget_1,__decorate=this&&this.__decorate||function(t,e,i,s){var o,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var l=t.length-1;l>=0;l--)(o=t[l])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a};import{css,html}from"lit";import{customElement}from"lit/decorators.js";import{OrAssetWidget}from"../util/or-asset-widget";import{TableSettings}from"../settings/table-settings";import{i18next}from"@openremote/or-translate";import{Util}from"@openremote/core";import{AssetModelUtil}from"@openremote/model";import"@openremote/or-mwc-components/or-mwc-table";function getDefaultConfig(){return{assetType:void 0,assetIds:[],attributeNames:[],tableSize:10,tableOptions:[10,25,100]}}const styling=css`
|
|
2
|
+
#widget-wrapper {
|
|
3
|
+
height: 100%;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
}
|
|
6
|
+
`;let TableWidget=TableWidget_1=class extends OrAssetWidget{static getManifest(){return{displayName:"Table",displayIcon:"table",getContentHtml:t=>new TableWidget_1(t),getDefaultConfig:()=>getDefaultConfig(),getSettingsHtml:t=>new TableSettings(t)}}static get styles(){return[...super.styles,styling]}refreshContent(t){this.widgetConfig=JSON.parse(JSON.stringify(this.widgetConfig))}willUpdate(t){return t.has("widgetConfig")&&this.widgetConfig&&this.loadAssets(),super.willUpdate(t)}loadAssets(){this.widgetConfig.assetIds.find((t=>!this.isAssetLoaded(t)))&&this.queryAssets({ids:this.widgetConfig.assetIds,select:{attributes:this.widgetConfig.attributeNames}}).then((t=>{this.loadedAssets=t}))}getColumns(t){const e=this.loadedAssets[0],i=t.map((t=>{var i,s;let o=t,r=!1;if(this.widgetConfig.assetType&&e&&e.attributes&&e.attributes[t]){const a=AssetModelUtil.getAttributeDescriptor(t,this.widgetConfig.assetType);o=Util.getAttributeLabel(e.attributes[t],a,this.widgetConfig.assetType,!0),r=(null===(i=null==a?void 0:a.format)||void 0===i?void 0:i.asNumber)||(null===(s=null==a?void 0:a.format)||void 0===s?void 0:s.asSlider)||!1}return{title:o,isSortable:!0,isNumeric:r}}));return Array.of({title:i18next.t("assetName"),isSortable:!0},...i)}getRows(t){return this.loadedAssets.map((e=>{const i=t.map((t=>{if(e.attributes&&e.attributes[t]){const i=AssetModelUtil.getAttributeDescriptor(t,e.type),s=Util.getAttributeValueAsString(e.attributes[t],i,e.type,!1),o=parseFloat(s);return isNaN(o)?s:o}return"N.A."}));return{content:Array.of(e.name,...i)}}))}render(){const t={fullHeight:!0,pagination:{enable:!0,options:this.widgetConfig.tableOptions}},e=this.getColumns(this.widgetConfig.attributeNames),i=this.getRows(this.widgetConfig.attributeNames);return html`
|
|
7
|
+
<div id="widget-wrapper">
|
|
8
|
+
<or-mwc-table .columns="${e}" .rows="${i}" .config="${t}" .paginationSize="${this.widgetConfig.tableSize}"
|
|
9
|
+
@or-mwc-table-row-click="${t=>this.onTableRowClick(t)}"
|
|
10
|
+
></or-mwc-table>
|
|
11
|
+
</div>
|
|
12
|
+
`}onTableRowClick(t){}};TableWidget=TableWidget_1=__decorate([customElement("table-widget")],TableWidget);export{TableWidget};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-widget.js","sourceRoot":"","sources":["../../src/widgets/table-widget.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openremote/or-dashboard-builder",
|
|
3
|
+
"version": "1.2.0-snapshot.20240512154942",
|
|
4
|
+
"description": "OpenRemote Dashboard Builder",
|
|
5
|
+
"main": "dist/umd/index.bundle.js",
|
|
6
|
+
"module": "lib/index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./lib/index.js",
|
|
9
|
+
"./*": "./lib/*.js"
|
|
10
|
+
},
|
|
11
|
+
"types": "lib/index.d.ts",
|
|
12
|
+
"scripts": {
|
|
13
|
+
"test": "echo \"No tests\" && exit 0",
|
|
14
|
+
"prepublishOnly": "npx webpack"
|
|
15
|
+
},
|
|
16
|
+
"author": "OpenRemote",
|
|
17
|
+
"license": "AGPL-3.0-or-later",
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@openremote/core": "1.2.0-snapshot.20240512154942",
|
|
20
|
+
"@openremote/model": "1.2.0-snapshot.20240512154942",
|
|
21
|
+
"@openremote/or-chart": "1.2.0-snapshot.20240512154942",
|
|
22
|
+
"@openremote/rest": "1.2.0-snapshot.20240512154942",
|
|
23
|
+
"gridstack": "^7.2.0",
|
|
24
|
+
"lit": "^2.0.2"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@openremote/util": "1.2.0-snapshot.20240512154942"
|
|
28
|
+
},
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import {InputType} from "@openremote/or-mwc-components/or-mwc-input";
|
|
2
|
+
import {ListItem} from "@openremote/or-mwc-components/or-mwc-list";
|
|
3
|
+
import {getContentWithMenuTemplate} from "@openremote/or-mwc-components/or-mwc-menu";
|
|
4
|
+
import {html, LitElement, PropertyValues, TemplateResult} from "lit";
|
|
5
|
+
import {customElement, property} from "lit/decorators.js";
|
|
6
|
+
import {when} from "lit/directives/when.js";
|
|
7
|
+
import {DashboardRefreshInterval} from "@openremote/model";
|
|
8
|
+
|
|
9
|
+
export function intervalToMillis(interval: DashboardRefreshInterval): number | undefined {
|
|
10
|
+
switch (interval) {
|
|
11
|
+
case DashboardRefreshInterval.OFF:
|
|
12
|
+
return undefined;
|
|
13
|
+
case DashboardRefreshInterval.ONE_MIN:
|
|
14
|
+
return (60 * 1000);
|
|
15
|
+
case DashboardRefreshInterval.FIVE_MIN:
|
|
16
|
+
return (5 * 60 * 1000);
|
|
17
|
+
case DashboardRefreshInterval.QUARTER:
|
|
18
|
+
return (15 * 60 * 1000);
|
|
19
|
+
case DashboardRefreshInterval.ONE_HOUR:
|
|
20
|
+
return (60 * 60 * 1000);
|
|
21
|
+
default:
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export class IntervalSelectEvent extends CustomEvent<DashboardRefreshInterval> {
|
|
27
|
+
|
|
28
|
+
public static readonly NAME = "interval-select";
|
|
29
|
+
|
|
30
|
+
constructor(interval: DashboardRefreshInterval) {
|
|
31
|
+
super(IntervalSelectEvent.NAME, {
|
|
32
|
+
bubbles: true,
|
|
33
|
+
composed: true,
|
|
34
|
+
detail: interval
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@customElement("dashboard-refresh-controls")
|
|
40
|
+
export class DashboardRefreshControls extends LitElement {
|
|
41
|
+
|
|
42
|
+
@property()
|
|
43
|
+
protected interval: DashboardRefreshInterval = DashboardRefreshInterval.OFF;
|
|
44
|
+
|
|
45
|
+
@property()
|
|
46
|
+
protected readonly = true;
|
|
47
|
+
|
|
48
|
+
// TODO: Replace this with Object.values(), after generated typescript enums support this. ('const' variable issue in model.ts)
|
|
49
|
+
protected intervalOptions = [DashboardRefreshInterval.OFF, DashboardRefreshInterval.ONE_MIN, DashboardRefreshInterval.FIVE_MIN, DashboardRefreshInterval.QUARTER, DashboardRefreshInterval.ONE_HOUR]
|
|
50
|
+
|
|
51
|
+
protected willUpdate(changedProps: PropertyValues) {
|
|
52
|
+
super.willUpdate(changedProps);
|
|
53
|
+
if (changedProps.has("interval") && this.interval !== undefined) {
|
|
54
|
+
this.dispatchEvent(new IntervalSelectEvent(this.interval));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
protected render(): TemplateResult {
|
|
59
|
+
const intervalOptions: string[] = this.getRefreshOptions();
|
|
60
|
+
const value = this.getIntervalString(this.interval);
|
|
61
|
+
return html`
|
|
62
|
+
<div style="height: 100%; display: flex; align-items: center;">
|
|
63
|
+
${when(this.readonly, () => html`
|
|
64
|
+
${when(this.interval === DashboardRefreshInterval.OFF, () => html`
|
|
65
|
+
<or-mwc-input .type="${InputType.BUTTON}" icon="pause" disabled="true" style="height: 36px; margin-top: -12px;"></or-mwc-input>
|
|
66
|
+
`, () => html`
|
|
67
|
+
<or-mwc-input .type="${InputType.BUTTON}" label="${value}" disabled="true"></or-mwc-input>
|
|
68
|
+
`)}
|
|
69
|
+
`, () => html`
|
|
70
|
+
${getContentWithMenuTemplate(
|
|
71
|
+
this.interval === DashboardRefreshInterval.OFF ? html`
|
|
72
|
+
<or-mwc-input .type="${InputType.BUTTON}" icon="pause" style="height: 36px; margin-top: -12px;"></or-mwc-input>
|
|
73
|
+
` : html`
|
|
74
|
+
<or-mwc-input .type="${InputType.BUTTON}" label="${value}"></or-mwc-input>
|
|
75
|
+
`,
|
|
76
|
+
intervalOptions.map(o => ({value: o} as ListItem)),
|
|
77
|
+
value,
|
|
78
|
+
(newVal) => this.onIntervalSelect(intervalOptions, newVal as string),
|
|
79
|
+
undefined,
|
|
80
|
+
false,
|
|
81
|
+
true,
|
|
82
|
+
true
|
|
83
|
+
)}
|
|
84
|
+
`)}
|
|
85
|
+
</div>
|
|
86
|
+
`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
protected onIntervalSelect(stringOptions: string[], value: string) {
|
|
90
|
+
this.interval = this.intervalOptions[stringOptions.indexOf(value as DashboardRefreshInterval)];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
protected getIntervalString(interval: DashboardRefreshInterval): string {
|
|
94
|
+
return (`dashboard.interval.${interval.toLowerCase()}`);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
protected getRefreshOptions(): string[] {
|
|
98
|
+
return this.intervalOptions.map(interval => this.getIntervalString(interval));
|
|
99
|
+
}
|
|
100
|
+
}
|