@openremote/or-chart 1.2.0-snapshot.20240512155932

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,4 @@
1
+ /* eslint:disable:class-name */
2
+ declare module "chartjs-plugin-annotation" {
3
+
4
+ }
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @openremote/or-chart \<or-attribute-history\>
2
+ [![NPM Version][npm-image]][npm-url]
3
+ [![Linux Build][travis-image]][travis-url]
4
+ [![Test Coverage][coveralls-image]][coveralls-url]
5
+
6
+ Web Component for displaying chart values.
7
+
8
+ ## Install
9
+ ```bash
10
+ npm i @openremote/or-chart
11
+ yarn add @openremote/or-chart
12
+ ```
13
+
14
+ ## Usage
15
+ For a full list of properties, methods and options refer to the TypeDoc generated [documentation]().
16
+
17
+
18
+ ## Supported Browsers
19
+ The last 2 versions of all modern browsers are supported, including Chrome, Safari, Opera, Firefox, Edge. In addition,
20
+ Internet Explorer 11 is also supported.
21
+
22
+
23
+ ## License
24
+ [GNU AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html)
25
+
26
+ [npm-image]: https://img.shields.io/npm/v/live-xxx.svg
27
+ [npm-url]: https://npmjs.org/package/@openremote/or-chart
28
+ [travis-image]: https://img.shields.io/travis/live-js/live-xxx/master.svg
29
+ [travis-url]: https://travis-ci.org/live-js/live-xxx
30
+ [coveralls-image]: https://img.shields.io/coveralls/live-js/live-xxx/master.svg
31
+ [coveralls-url]: https://coveralls.io/r/live-js/live-xxx?branch=master
package/lib/index.d.ts ADDED
@@ -0,0 +1,118 @@
1
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
2
+ import { Asset, AssetDatapointQueryUnion, Attribute, AttributeRef, DatapointInterval } from "@openremote/model";
3
+ import "@openremote/or-asset-tree";
4
+ import "@openremote/or-mwc-components/or-mwc-input";
5
+ import "@openremote/or-components/or-panel";
6
+ import "@openremote/or-translate";
7
+ import { Chart, ChartDataset, ScatterDataPoint, TimeUnit } from "chart.js";
8
+ import "@openremote/or-components/or-loading-indicator";
9
+ import moment from "moment";
10
+ import { OrAssetTreeSelectionEvent } from "@openremote/or-asset-tree";
11
+ import "chartjs-adapter-moment";
12
+ export declare class OrChartEvent extends CustomEvent<OrChartEventDetail> {
13
+ static readonly NAME = "or-chart-event";
14
+ constructor(value?: any, previousValue?: any);
15
+ }
16
+ export type TimePresetCallback = (date: Date) => [Date, Date];
17
+ export interface ChartViewConfig {
18
+ attributeRefs?: AttributeRef[];
19
+ fromTimestamp?: number;
20
+ toTimestamp?: number;
21
+ period?: moment.unitOfTime.Base;
22
+ deltaFormat?: "absolute" | "percentage";
23
+ decimals?: number;
24
+ }
25
+ export interface OrChartEventDetail {
26
+ value?: any;
27
+ previousValue?: any;
28
+ }
29
+ declare global {
30
+ export interface HTMLElementEventMap {
31
+ [OrChartEvent.NAME]: OrChartEvent;
32
+ }
33
+ }
34
+ export interface ChartConfig {
35
+ xLabel?: string;
36
+ yLabel?: string;
37
+ }
38
+ export interface OrChartConfig {
39
+ chart?: ChartConfig;
40
+ realm?: string;
41
+ views: {
42
+ [name: string]: {
43
+ [panelName: string]: ChartViewConfig;
44
+ };
45
+ };
46
+ }
47
+ declare const OrChart_base: (new (...args: any[]) => {
48
+ _i18nextJustInitialized: boolean;
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
52
+ initCallback: (options: import("i18next").InitOptions) => void;
53
+ langChangedCallback: () => void;
54
+ readonly isConnected: boolean;
55
+ }) & typeof LitElement;
56
+ export declare class OrChart extends OrChart_base {
57
+ static DEFAULT_TIMESTAMP_FORMAT: string;
58
+ static get styles(): import("lit").CSSResult[];
59
+ assets: Asset[];
60
+ private activeAsset?;
61
+ assetAttributes: [number, Attribute<any>][];
62
+ rightAxisAttributes: AttributeRef[];
63
+ dataProvider?: (startOfPeriod: number, endOfPeriod: number, timeUnits: TimeUnit, stepSize: number) => Promise<ChartDataset<"line", ScatterDataPoint[]>[]>;
64
+ colors: string[];
65
+ readonly datapointQuery: AssetDatapointQueryUnion;
66
+ config?: OrChartConfig;
67
+ chartOptions?: any;
68
+ realm?: string;
69
+ panelName?: string;
70
+ attributeControls: boolean;
71
+ timeframe?: [Date, Date];
72
+ timestampControls: boolean;
73
+ timePresetOptions?: Map<string, TimePresetCallback>;
74
+ timePresetKey?: string;
75
+ showLegend: boolean;
76
+ denseLegend: boolean;
77
+ protected _loading: boolean;
78
+ protected _data?: ChartDataset<"line", ScatterDataPoint[]>[];
79
+ protected _tableTemplate?: TemplateResult;
80
+ protected _chartElem: HTMLCanvasElement;
81
+ protected _dialogElem: HTMLElement;
82
+ protected _chart?: Chart;
83
+ protected _style: CSSStyleDeclaration;
84
+ protected _startOfPeriod?: number;
85
+ protected _endOfPeriod?: number;
86
+ protected _timeUnits?: TimeUnit;
87
+ protected _stepSize?: number;
88
+ protected _updateTimestampTimer: number | null;
89
+ constructor();
90
+ connectedCallback(): void;
91
+ disconnectedCallback(): void;
92
+ firstUpdated(): void;
93
+ updated(changedProperties: PropertyValues): void;
94
+ applyChartResponsiveness(): void;
95
+ render(): TemplateResult<1>;
96
+ protected _onTreeSelectionChanged(event: OrAssetTreeSelectionEvent): Promise<void>;
97
+ removeDatasetHighlight(bgColor: string): void;
98
+ addDatasetHighlight(assetId?: string, attrName?: string): void;
99
+ loadSettings(reset: boolean): Promise<void>;
100
+ saveSettings(): Promise<void>;
101
+ protected _openDialog(): void;
102
+ protected _openTimeDialog(startTimestamp?: number, endTimestamp?: number): void;
103
+ protected _addAttribute(selectedAttrs?: AttributeRef[]): Promise<void>;
104
+ protected _getSelectedAttributes(): {
105
+ id: any;
106
+ name: any;
107
+ }[];
108
+ onCompleted(): Promise<void>;
109
+ protected _cleanup(): void;
110
+ protected _deleteAttribute(index: number): void;
111
+ protected _getAttributeOptionsOld(): [string, string][] | undefined;
112
+ protected _getAttributeOptions(): [string, string][] | undefined;
113
+ protected _getDefaultTimestampOptions(): Map<string, TimePresetCallback>;
114
+ protected _getInterval(diffInHours: number): [number, DatapointInterval];
115
+ protected _loadData(): Promise<void>;
116
+ protected _loadAttributeData(asset: Asset, attribute: Attribute<any>, color: string | undefined, from: number, to: number, predicted: boolean, label: string | undefined): Promise<ChartDataset<"line", ScatterDataPoint[]>>;
117
+ }
118
+ export {};
package/lib/index.js ADDED
@@ -0,0 +1,308 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,i,r){var o,a=arguments.length,s=a<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,r);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},__awaiter=this&&this.__awaiter||function(t,e,i,r){return new(i||(i=Promise))((function(o,a){function s(t){try{l(r.next(t))}catch(t){a(t)}}function n(t){try{l(r.throw(t))}catch(t){a(t)}}function l(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(s,n)}l((r=r.apply(t,e||[])).next())}))};import{css,html,LitElement,unsafeCSS}from"lit";import{customElement,property,query}from"lit/decorators.js";import i18next from"i18next";import{translate}from"@openremote/or-translate";import{AssetModelUtil}from"@openremote/model";import manager,{DefaultColor2,DefaultColor3,DefaultColor4,DefaultColor5,Util}from"@openremote/core";import"@openremote/or-asset-tree";import"@openremote/or-mwc-components/or-mwc-input";import"@openremote/or-components/or-panel";import"@openremote/or-translate";import{Chart,Filler,Legend,LinearScale,LineController,LineElement,PointElement,ScatterController,TimeScale,Title,Tooltip}from"chart.js";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import"@openremote/or-components/or-loading-indicator";import moment from"moment";import{OrAssetTreeSelectionEvent}from"@openremote/or-asset-tree";import{getAssetDescriptorIconTemplate}from"@openremote/or-icon";import ChartAnnotation from"chartjs-plugin-annotation";import"chartjs-adapter-moment";import{OrAttributePicker,OrAttributePickerPickedEvent}from"@openremote/or-attribute-picker";import{OrMwcDialog,showDialog}from"@openremote/or-mwc-components/or-mwc-dialog";import{cache}from"lit/directives/cache.js";import{throttle}from"lodash";import{getContentWithMenuTemplate}from"@openremote/or-mwc-components/or-mwc-menu";import{when}from"lit/directives/when.js";import{createRef,ref}from"lit/directives/ref.js";Chart.register(LineController,ScatterController,LineElement,PointElement,LinearScale,TimeScale,Title,Filler,Legend,Tooltip,ChartAnnotation);export class OrChartEvent extends CustomEvent{constructor(t,e){super(OrChartEvent.NAME,{detail:{value:t,previousValue:e},bubbles:!0,composed:!0})}}OrChartEvent.NAME="or-chart-event";const dialogStyle=require("@material/dialog/dist/mdc.dialog.css"),tableStyle=require("@material/data-table/dist/mdc.data-table.css"),style=css`
2
+ :host {
3
+
4
+ --internal-or-chart-background-color: var(--or-chart-background-color, var(--or-app-color2, ${unsafeCSS(DefaultColor2)}));
5
+ --internal-or-chart-text-color: var(--or-chart-text-color, var(--or-app-color3, ${unsafeCSS(DefaultColor3)}));
6
+ --internal-or-chart-controls-margin: var(--or-chart-controls-margin, 0 0 20px 0);
7
+ --internal-or-chart-controls-margin-children: var(--or-chart-controls-margin-children, 0 auto 20px auto);
8
+ --internal-or-chart-graph-fill-color: var(--or-chart-graph-fill-color, var(--or-app-color4, ${unsafeCSS(DefaultColor4)}));
9
+ --internal-or-chart-graph-fill-opacity: var(--or-chart-graph-fill-opacity, 1);
10
+ --internal-or-chart-graph-line-color: var(--or-chart-graph-line-color, var(--or-app-color4, ${unsafeCSS(DefaultColor4)}));
11
+ --internal-or-chart-graph-point-color: var(--or-chart-graph-point-color, var(--or-app-color3, ${unsafeCSS(DefaultColor3)}));
12
+ --internal-or-chart-graph-point-border-color: var(--or-chart-graph-point-border-color, var(--or-app-color5, ${unsafeCSS(DefaultColor5)}));
13
+ --internal-or-chart-graph-point-radius: var(--or-chart-graph-point-radius, 4);
14
+ --internal-or-chart-graph-point-hit-radius: var(--or-chart-graph-point-hit-radius, 20);
15
+ --internal-or-chart-graph-point-border-width: var(--or-chart-graph-point-border-width, 2);
16
+ --internal-or-chart-graph-point-hover-color: var(--or-chart-graph-point-hover-color, var(--or-app-color5, ${unsafeCSS(DefaultColor5)}));
17
+ --internal-or-chart-graph-point-hover-border-color: var(--or-chart-graph-point-hover-border-color, var(--or-app-color3, ${unsafeCSS(DefaultColor3)}));
18
+ --internal-or-chart-graph-point-hover-radius: var(--or-chart-graph-point-hover-radius, 4);
19
+ --internal-or-chart-graph-point-hover-border-width: var(--or-chart-graph-point-hover-border-width, 2);
20
+
21
+ width: 100%;
22
+ display: block;
23
+ }
24
+
25
+ .line-label {
26
+ border-width: 1px;
27
+ border-color: var(--or-app-color3);
28
+ margin-right: 5px;
29
+ }
30
+
31
+ .line-label.solid {
32
+ border-style: solid;
33
+ }
34
+
35
+ .line-label.dashed {
36
+ background-image: linear-gradient(to bottom, var(--or-app-color3) 50%, white 50%);
37
+ width: 2px;
38
+ border: none;
39
+ background-size: 10px 16px;
40
+ background-repeat: repeat-y;
41
+ }
42
+
43
+ .button-icon {
44
+ align-self: center;
45
+ padding: 10px;
46
+ cursor: pointer;
47
+ }
48
+
49
+ a {
50
+ display: flex;
51
+ cursor: pointer;
52
+ text-decoration: underline;
53
+ font-weight: bold;
54
+ color: var(--or-app-color1);
55
+ --or-icon-width: 12px;
56
+ }
57
+
58
+ .mdc-dialog .mdc-dialog__surface {
59
+ min-width: 600px;
60
+ height: calc(100vh - 50%);
61
+ }
62
+
63
+ :host([hidden]) {
64
+ display: none;
65
+ }
66
+
67
+ #container {
68
+ display: flex;
69
+ min-width: 0;
70
+ flex-direction: row;
71
+ height: 100%;
72
+ }
73
+
74
+ #msg {
75
+ height: 100%;
76
+ width: 100%;
77
+ justify-content: center;
78
+ align-items: center;
79
+ text-align: center;
80
+ }
81
+
82
+ #msg:not([hidden]) {
83
+ display: flex;
84
+ }
85
+ .period-controls {
86
+ display: flex;
87
+ min-width: 180px;
88
+ align-items: center;
89
+ }
90
+
91
+ #controls {
92
+ display: flex;
93
+ flex-wrap: wrap;
94
+ margin: var(--internal-or-chart-controls-margin);
95
+ width: 100%;
96
+ flex-direction: column;
97
+ margin: 0;
98
+ }
99
+
100
+ #attribute-list {
101
+ overflow: hidden auto;
102
+ min-height: 50px;
103
+ flex: 1 1 0;
104
+ width: 100%;
105
+ display: flex;
106
+ flex-direction: column;
107
+ }
108
+ .attribute-list-dense {
109
+ flex-wrap: wrap;
110
+ }
111
+
112
+ .attribute-list-item {
113
+ cursor: pointer;
114
+ display: flex;
115
+ flex-direction: row;
116
+ align-items: center;
117
+ padding: 0;
118
+ min-height: 50px;
119
+ }
120
+ .attribute-list-item-dense {
121
+ min-height: 28px;
122
+ }
123
+
124
+ .button-clear {
125
+ background: none;
126
+ visibility: hidden;
127
+ color: ${unsafeCSS(DefaultColor5)};
128
+ --or-icon-fill: ${unsafeCSS(DefaultColor5)};
129
+ display: inline-block;
130
+ border: none;
131
+ padding: 0;
132
+ cursor: pointer;
133
+ }
134
+
135
+ .attribute-list-item:hover .button-clear {
136
+ visibility: visible;
137
+ }
138
+
139
+ .button-clear:hover {
140
+ --or-icon-fill: var(--or-app-color4);
141
+ }
142
+
143
+ .attribute-list-item-label {
144
+ display: flex;
145
+ flex: 1 1 0;
146
+ line-height: 16px;
147
+ flex-direction: column;
148
+ }
149
+
150
+ .attribute-list-item-bullet {
151
+ width: 12px;
152
+ height: 12px;
153
+ border-radius: 7px;
154
+ margin-right: 10px;
155
+ }
156
+
157
+ .attribute-list-item .button.delete {
158
+ display: none;
159
+ }
160
+
161
+ .attribute-list-item:hover .button.delete {
162
+ display: block;
163
+ }
164
+
165
+ #controls > * {
166
+ margin-top: 5px;
167
+ margin-bottom: 5px;
168
+ }
169
+
170
+ .dialog-container {
171
+ display: flex;
172
+ flex-direction: row;
173
+ flex: 1 1 0;
174
+ }
175
+
176
+ .dialog-container > * {
177
+ flex: 1 1 0;
178
+ }
179
+
180
+ .dialog-container > or-mwc-input {
181
+ background-color: var(--or-app-color2);
182
+ border-left: 3px solid var(--or-app-color4);
183
+ }
184
+
185
+ #chart-container {
186
+ flex: 1 1 0;
187
+ position: relative;
188
+ overflow: hidden;
189
+ /*min-height: 400px;
190
+ max-height: 550px;*/
191
+ }
192
+ #chart-controls {
193
+ display: flex;
194
+ flex-direction: column;
195
+ align-items: center;
196
+ }
197
+ canvas {
198
+ width: 100% !important;
199
+ height: 100%; !important;
200
+ }
201
+
202
+ @media screen and (max-width: 1280px) {
203
+ #chart-container {
204
+ max-height: 330px;
205
+ }
206
+ }
207
+
208
+ @media screen and (max-width: 769px) {
209
+ .mdc-dialog .mdc-dialog__surface {
210
+ min-width: auto;
211
+
212
+ max-width: calc(100vw - 32px);
213
+ max-height: calc(100% - 32px);
214
+ }
215
+
216
+ #container {
217
+ flex-direction: column;
218
+ }
219
+
220
+ #controls {
221
+ min-width: 100%;
222
+ padding-left: 0;
223
+ }
224
+ .interval-controls,
225
+ .period-controls {
226
+ flex-direction: row;
227
+ justify-content: left;
228
+ align-items: center;
229
+ gap: 8px;
230
+ }
231
+ }
232
+ `;let OrChart=class extends(translate(i18next)(LitElement)){static get styles(){return[css`${unsafeCSS(tableStyle)}`,css`${unsafeCSS(dialogStyle)}`,style]}constructor(){super(),this.assets=[],this.assetAttributes=[],this.rightAxisAttributes=[],this.colors=["#3869B1","#DA7E30","#3F9852","#CC2428","#6B4C9A","#922427","#958C3D","#535055"],this.attributeControls=!0,this.timestampControls=!0,this.showLegend=!0,this.denseLegend=!1,this._loading=!1,this._data=void 0,this._updateTimestampTimer=null,this.addEventListener(OrAssetTreeSelectionEvent.NAME,this._onTreeSelectionChanged)}connectedCallback(){super.connectedCallback(),this._style=window.getComputedStyle(this)}disconnectedCallback(){super.disconnectedCallback(),this._cleanup()}firstUpdated(){this.loadSettings(!1)}updated(t){if(super.updated(t),t.has("realm")&&null!=t.get("realm")&&(this.assets=[],this.loadSettings(!0)),(t.has("datapointQuery")||t.has("timePresetKey")||t.has("timeframe")||t.has("rightAxisAttributes")||t.has("assetAttributes")||t.has("realm")||t.has("dataProvider"))&&(this._data=void 0,this._chart&&(this._chart.destroy(),this._chart=void 0),this._loadData()),!this._data)return;const e=moment().toDate().getTime();if(this._chart)t.has("_data")&&(this._chart.options.scales.x.min=this._startOfPeriod,this._chart.options.scales.x.max=this._endOfPeriod,this._chart.options.scales.x.time.unit=this._timeUnits,this._chart.options.scales.x.time.stepSize=this._stepSize,this._chart.options.plugins.annotation.annotations[0].xMin=e,this._chart.options.plugins.annotation.annotations[0].xMax=e,this._chart.data.datasets=this._data,this._chart.update());else{const t={type:"line",data:{datasets:this._data},options:{responsive:!0,maintainAspectRatio:!1,onResize:throttle((()=>{this.dispatchEvent(new OrChartEvent("resize")),this.applyChartResponsiveness()}),200),showLines:!0,plugins:{legend:{display:!1},tooltip:{mode:"x",intersect:!1,xPadding:10,yPadding:10,titleMarginBottom:10,callbacks:{label:t=>t.dataset.label+": "+t.formattedValue+t.dataset.unit}},annotation:{annotations:[{type:"line",xMin:e,xMax:e,borderColor:"#275582",borderWidth:2}]}},hover:{mode:"x",intersect:!1},scales:{y:{ticks:{beginAtZero:!0},grid:{color:"#cccccc"}},y1:{display:this.rightAxisAttributes.length>0,position:"right",ticks:{beginAtZero:!0},grid:{drawOnChartArea:!1}},x:{type:"time",min:this._startOfPeriod,max:this._endOfPeriod,time:{tooltipFormat:"MMM D, YYYY, HH:mm:ss",displayFormats:{millisecond:"HH:mm:ss.SSS",second:"HH:mm:ss",minute:"HH:mm",hour:this._endOfPeriod&&this._startOfPeriod&&this._endOfPeriod-this._startOfPeriod>864e5?"MMM DD, HH:mm":"HH:mm",day:"MMM DD",week:"w"},unit:this._timeUnits,stepSize:this._stepSize},ticks:{autoSkip:!0,color:"#000",font:{family:"'Open Sans', Helvetica, Arial, Lucida, sans-serif",size:9,style:"normal"}},gridLines:{color:"#cccccc"}}}}},i=Util.mergeObjects(t,this.chartOptions,!1);this._chart=new Chart(this._chartElem.getContext("2d"),i)}this.onCompleted().then((()=>{this.dispatchEvent(new OrChartEvent("rendered"))}))}applyChartResponsiveness(){if(this.shadowRoot){const t=this.shadowRoot.getElementById("container");if(t){const e=t.clientWidth<600;t.style.flexDirection=e?"column":"row";const i=this.shadowRoot.querySelector(".period-controls");i&&(i.style.justifyContent=e?"center":"space-between",i.style.paddingLeft=e?"":"18px");const r=this.shadowRoot.getElementById("attribute-list");r&&(r.style.gap=e?"4px 12px":"",r.style.maxHeight=e?"90px":"",r.style.flexFlow=e?"row wrap":"column nowrap",r.style.padding=e?"0":"12px 0"),this.shadowRoot.querySelectorAll(".attribute-list-item").forEach((t=>{t.style.minHeight=e?"0px":"44px",t.style.paddingLeft=e?"":"16px",t.children[1].style.flexDirection=e?"row":"column",t.children[1].style.gap=e?"4px":""}))}}}render(){const t=this._loading;return html`
233
+ <div id="container">
234
+ <div id="chart-container">
235
+ ${t?html`
236
+ <div style="position: absolute; height: 100%; width: 100%;">
237
+ <or-loading-indicator ?overlay="false"></or-loading-indicator>
238
+ </div>
239
+ `:void 0}
240
+ <canvas id="chart" style="visibility: ${t?"hidden":"visible"}"></canvas>
241
+ </div>
242
+
243
+ ${this.timestampControls||this.attributeControls||this.showLegend?html`
244
+ <div id="chart-controls">
245
+ <div id="controls">
246
+ <div class="period-controls">
247
+ ${this.timePresetOptions&&this.timePresetKey?html`
248
+ ${this.timestampControls?html`
249
+ ${getContentWithMenuTemplate(html`<or-mwc-input .type="${InputType.BUTTON}" label="${this.timeframe?"dashboard.customTimeSpan":this.timePresetKey}"></or-mwc-input>`,Array.from(this.timePresetOptions.keys()).map((t=>({value:t}))),this.timePresetKey,(t=>{this.timeframe=void 0,this.timePresetKey=t.toString()}),void 0,void 0,void 0,!0)}
250
+ <!-- Button that opens custom time selection -->
251
+ <or-mwc-input .type="${InputType.BUTTON}" icon="calendar-clock" @or-mwc-input-changed="${()=>this._openTimeDialog(this._startOfPeriod,this._endOfPeriod)}"></or-mwc-input>
252
+ `:html`
253
+ <or-mwc-input .type="${InputType.BUTTON}" label="${this.timePresetKey}" disabled="true"></or-mwc-input>
254
+ `}
255
+ `:void 0}
256
+ </div>
257
+ ${this.timeframe?html`
258
+ <div style="margin-left: 18px; font-size: 12px;">
259
+ <table style="width: 100%;">
260
+ <thead>
261
+ <tr>
262
+ <th style="font-weight: normal; text-align: left;">${i18next.t("from")}:</th>
263
+ <th style="font-weight: normal; text-align: left;">${moment(this.timeframe[0]).format("L HH:mm")}</th>
264
+ </tr>
265
+ </thead>
266
+ <tbody>
267
+ <tr>
268
+ <td>${i18next.t("to")}:</td>
269
+ <td>${moment(this.timeframe[1]).format("L HH:mm")}</td>
270
+ </tr>
271
+ </tbody>
272
+ </table>
273
+ </div>
274
+ `:void 0}
275
+ ${this.attributeControls?html`
276
+ <or-mwc-input class="button" .type="${InputType.BUTTON}" ?disabled="${t}" label="selectAttributes" icon="plus" @or-mwc-input-changed="${()=>this._openDialog()}"></or-mwc-input>
277
+ `:void 0}
278
+ </div>
279
+ ${cache(this.showLegend?html`
280
+ <div id="attribute-list" class="${this.denseLegend?"attribute-list-dense":void 0}">
281
+ ${null==this.assetAttributes||0==this.assetAttributes.length?html`
282
+ <div>
283
+ <span>${i18next.t("noAttributesConnected")}</span>
284
+ </div>
285
+ `:void 0}
286
+ ${this.assetAttributes&&this.assetAttributes.map((([t,e],i)=>{const r=this.assets[t],o=i%this.colors.length,a=AssetModelUtil.getAttributeAndValueDescriptors(r.type,e.name,e),s=Util.getAttributeLabel(e,a[0],r.type,!0),n=this.rightAxisAttributes.find((t=>r.id===t.id&&e.name===t.name))?i18next.t("right"):void 0,l=this.colors[o]||"";return html`
287
+ <div class="attribute-list-item ${this.denseLegend?"attribute-list-item-dense":void 0}" @mouseover="${()=>this.addDatasetHighlight(this.assets[t].id,e.name)}" @mouseout="${()=>this.removeDatasetHighlight(l)}">
288
+ <span style="margin-right: 10px; --or-icon-width: 20px;">${getAssetDescriptorIconTemplate(AssetModelUtil.getAssetDescriptor(this.assets[t].type),void 0,void 0,l.split("#")[1])}</span>
289
+ <div class="attribute-list-item-label ${this.denseLegend?"attribute-list-item-label-dense":void 0}">
290
+ <div style="display: flex; justify-content: space-between;">
291
+ <span style="font-size:12px; ${this.denseLegend?"margin-right: 8px":void 0}">${this.assets[t].name}</span>
292
+ ${when(n,(()=>html`<span style="font-size:12px; color:grey">(${n})</span>`))}
293
+ </div>
294
+ <span style="font-size:12px; color:grey;">${s}</span>
295
+ </div>
296
+ </div>
297
+ `}))}
298
+ </div>
299
+ `:void 0)}
300
+ </div>
301
+ `:void 0}
302
+ </div>
303
+ `}_onTreeSelectionChanged(t){return __awaiter(this,void 0,void 0,(function*(){if(!manager.events)return;const e=t.detail&&t.detail.newNodes.length>0?t.detail.newNodes[0]:void 0;if(e){const t=yield manager.events.sendEventWithReply({event:{eventType:"read-asset",assetId:e.asset.id}});this.activeAsset=t.asset}else this.activeAsset=void 0}))}removeDatasetHighlight(t){this._chart&&this._chart.data&&this._chart.data.datasets&&(this._chart.data.datasets.map(((t,e)=>{t.borderColor&&"string"==typeof t.borderColor&&9===t.borderColor.length&&(t.borderColor=t.borderColor.slice(0,-2),t.backgroundColor=t.borderColor)})),this._chart.update())}addDatasetHighlight(t,e){t&&e&&this._chart&&this._chart.data&&this._chart.data.datasets&&(this._chart.data.datasets.map(((i,r)=>{i.assetId===t&&i.attrName===e||(i.borderColor=i.borderColor+"36",i.backgroundColor=i.borderColor)})),this._chart.update())}loadSettings(t){return __awaiter(this,void 0,void 0,(function*(){if((null==this.assetAttributes||t)&&(this.assetAttributes=[]),this.realm||(this.realm=manager.getRealm()),this.timePresetOptions||(this.timePresetOptions=this._getDefaultTimestampOptions()),this.timePresetKey||(this.timePresetKey=this.timePresetOptions.keys().next().value.toString()),!this.panelName)return;const e=window.location.hash,i=(yield manager.console.retrieveData("OrChartConfig"))||[];Array.isArray(i)||manager.console.storeData("OrChartConfig",[i]);let r=i.find((t=>t.realm===this.realm));if(!r)return;const o=r.views&&r.views[e]?r.views[e][this.panelName]:void 0;if(!o)return;if(!o.attributeRefs){delete r.views[e][this.panelName];const t=[...i.filter((t=>t.realm!==this.realm)),r];return void manager.console.storeData("OrChartConfig",t)}const a=o.attributeRefs.map((t=>t.id));if(0!==a.length&&(this._loading=!0,!a.every((t=>!!this.assets.find((e=>e.id===t)))))){const t={ids:a};try{const e=(yield manager.rest.api.AssetResource.queryAssets(t)).data||[];o.attributeRefs=o.attributeRefs.filter((t=>!!e.find((e=>e.id===t.id&&e.attributes&&e.attributes.hasOwnProperty(t.name))))),manager.console.storeData("OrChartConfig",[...i.filter((t=>t.realm!==this.realm)),r]),this.assets=e.filter((t=>o.attributeRefs.find((e=>e.id===t.id))))}catch(t){console.error("Failed to get assets requested in settings",t)}this._loading=!1,this.assets&&this.assets.length>0&&(this.assetAttributes=o.attributeRefs.map((t=>{const e=this.assets.findIndex((e=>e.id===t.id)),i=e>=0?this.assets[e]:void 0;return i&&i.attributes?[e,i.attributes[t.name]]:void 0})).filter((t=>!!t)))}}))}saveSettings(){return __awaiter(this,void 0,void 0,(function*(){if(!this.panelName)return;const t=window.location.hash,e=(yield manager.console.retrieveData("OrChartConfig"))||[];let i=e.find((t=>t.realm===this.realm));i||(i={realm:this.realm,views:{}}),i.views[t]||(i.views[t]={}),this.assets&&this.assetAttributes&&0!==this.assets.length&&0!==this.assetAttributes.length?(i.realm=this.realm,i.views[t][this.panelName]={attributeRefs:this.assetAttributes.map((([t,e])=>{const i=this.assets[t];return i?{id:i.id,name:e.name}:void 0})).filter((t=>!!t))}):delete i.views[t][this.panelName],manager.console.storeData("OrChartConfig",[...e.filter((t=>t.realm!==this.realm)),i])}))}_openDialog(){showDialog((new OrAttributePicker).setShowOnlyDatapointAttrs(!0).setMultiSelect(!0).setSelectedAttributes(this._getSelectedAttributes())).addEventListener(OrAttributePickerPickedEvent.NAME,(t=>this._addAttribute(t.detail)))}_openTimeDialog(t,e){const i=createRef(),r=createRef();showDialog((new OrMwcDialog).setHeading(i18next.t("timeframe")).setContent((()=>html`
304
+ <div>
305
+ <or-mwc-input ${ref(i)} type="${InputType.DATETIME}" required label="${i18next.t("start")}" .value="${t}"></or-mwc-input>
306
+ <or-mwc-input ${ref(r)} type="${InputType.DATETIME}" required label="${i18next.t("ending")}" .value="${e}"></or-mwc-input>
307
+ </div>
308
+ `)).setActions([{actionName:"cancel",content:"cancel"},{actionName:"ok",content:"ok",action:()=>{var t,e;this.timePresetOptions&&(null===(t=i.value)||void 0===t?void 0:t.value)&&(null===(e=r.value)||void 0===e?void 0:e.value)&&(this.timeframe=[new Date(i.value.value),new Date(r.value.value)])}}]))}_addAttribute(t){return __awaiter(this,void 0,void 0,(function*(){if(t){this.assetAttributes=[];for(const e of t){const t=yield manager.rest.api.AssetResource.get(e.id);if(this.activeAsset=t.data,this.activeAsset){let t=this.assets.findIndex((t=>t.id===e.id));t<0&&(t=this.assets.length,this.assets=[...this.assets,this.activeAsset]),this.assetAttributes.push([t,e])}}this.assetAttributes=[...this.assetAttributes],this.saveSettings()}}))}_getSelectedAttributes(){return this.assetAttributes.map((([t,e])=>({id:this.assets[t].id,name:e.name})))}onCompleted(){return __awaiter(this,void 0,void 0,(function*(){yield this.updateComplete}))}_cleanup(){this._chart&&(this._chart.destroy(),this._chart=void 0,this.requestUpdate())}_deleteAttribute(t){const e=this.assetAttributes.splice(t,1)[0][0];this.assetAttributes=[...this.assetAttributes],this.assetAttributes.some((([t,i])=>t===e))||(this.assets.splice(t,1),this.assetAttributes.forEach((t=>{t[0]>=e&&(t[0]-=1)}))),this.saveSettings()}_getAttributeOptionsOld(){if(!this.activeAsset||!this.activeAsset.attributes)return;this.shadowRoot&&this.shadowRoot.getElementById("chart-attribute-picker")&&(this.shadowRoot.getElementById("chart-attribute-picker").value="");const t=Object.values(this.activeAsset.attributes);return t&&t.length>0?t.filter((t=>t.meta&&(t.meta.hasOwnProperty("storeDataPoints")?t.meta.storeDataPoints:t.meta.hasOwnProperty("agentLink")))).filter((t=>this.assetAttributes&&!this.assetAttributes.some((([e,i])=>i.name===t.name&&this.assets[e].id===this.activeAsset.id)))).map((t=>{const e=AssetModelUtil.getAttributeAndValueDescriptors(this.activeAsset.type,t.name,t),i=Util.getAttributeLabel(t,e[0],this.activeAsset.type,!1);return[t.name,i]})):void 0}_getAttributeOptions(){if(!this.activeAsset||!this.activeAsset.attributes)return;this.shadowRoot&&this.shadowRoot.getElementById("chart-attribute-picker")&&(this.shadowRoot.getElementById("chart-attribute-picker").value="");const t=Object.values(this.activeAsset.attributes);return t&&t.length>0?t.filter((t=>t.meta&&(t.meta.hasOwnProperty("storeDataPoints")?t.meta.storeDataPoints:t.meta.hasOwnProperty("agentLink")))).filter((t=>this.assetAttributes&&!this.assetAttributes.some((([e,i])=>i.name===t.name&&this.assets[e].id===this.activeAsset.id)))).map((t=>{const e=AssetModelUtil.getAttributeAndValueDescriptors(this.activeAsset.type,t.name,t),i=Util.getAttributeLabel(t,e[0],this.activeAsset.type,!1);return[t.name,i]})):void 0}_getDefaultTimestampOptions(){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]]])}_getInterval(t){return t<=1?[5,"MINUTE"]:t<=3?[10,"MINUTE"]:t<=6?[30,"MINUTE"]:t<=24?[1,"HOUR"]:t<=48?[3,"HOUR"]:t<=96?[12,"HOUR"]:t<=744?[1,"DAY"]:[1,"MONTH"]}_loadData(){return __awaiter(this,void 0,void 0,(function*(){if(this._loading||this._data||!this.assetAttributes||!this.assets||0===this.assets.length&&!this.dataProvider||0===this.assetAttributes.length&&!this.dataProvider||!this.datapointQuery)return;this._loading=!0;const t=this.timePresetOptions.get(this.timePresetKey)(new Date);this._startOfPeriod=this.timeframe?this.timeframe[0].getTime():t[0].getTime(),this._endOfPeriod=this.timeframe?this.timeframe[1].getTime():t[1].getTime();const e=(this._endOfPeriod-this._startOfPeriod)/1e3/60/60,i=this._getInterval(e),r=i[0],o=i[1],a=o.toLowerCase();this._timeUnits=a,this._stepSize=r;const s=moment().toDate().getTime();let n=s<this._startOfPeriod?this._startOfPeriod:s;const l=[];let h;this.dataProvider?yield this.dataProvider(this._startOfPeriod,this._endOfPeriod,o.toString(),r).then((t=>{t.forEach((t=>{l.push(t)}))})):h=this.assetAttributes.map((([t,e],i)=>__awaiter(this,void 0,void 0,(function*(){const r=this.assets[t],o=!!this.rightAxisAttributes.find((t=>t.id===r.id&&t.name===e.name)),a=AssetModelUtil.getAttributeAndValueDescriptors(r.type,e.name,e),s=Util.getAttributeLabel(e,a[0],r.type,!1),h=Util.resolveUnits(Util.getAttributeUnits(e,a[0],r.type)),d=i%this.colors.length;let c=yield this._loadAttributeData(r,e,this.colors[d],this._startOfPeriod,this._endOfPeriod,!1,r.name+" "+s);c.assetId=r.id,c.attrName=e.name,c.unit=h,c.yAxisID=o?"y1":"y",l.push(c),c=yield this._loadAttributeData(this.assets[t],e,this.colors[d],n,this._endOfPeriod,!0,r.name+" "+s+" "+i18next.t("predicted")),l.push(c)})))),h&&(yield Promise.all(h)),this._loading=!1,this._data=l}))}_loadAttributeData(t,e,i,r,o,a,s){var n,l,h;return __awaiter(this,void 0,void 0,(function*(){const r={borderColor:i,backgroundColor:i,label:s,pointRadius:2,fill:!1,data:[],borderDash:a?[2,4]:void 0};if(t.id&&e.name&&this.datapointQuery){let i;const o=JSON.parse(JSON.stringify(this.datapointQuery));if(o.fromTimestamp=this._startOfPeriod,o.toTimestamp=this._endOfPeriod,"lttb"==o.type)o.amountOfPoints?(null===(n=this._chartElem)||void 0===n?void 0:n.clientWidth)>0&&(o.amountOfPoints=Math.min(o.amountOfPoints,null===(l=this._chartElem)||void 0===l?void 0:l.clientWidth)):(null===(h=this._chartElem)||void 0===h?void 0:h.clientWidth)>0?o.amountOfPoints=Math.round(this._chartElem.clientWidth/5):(console.warn("Could not grab width of the Chart for estimating amount of data points. Using 100 points instead."),o.amountOfPoints=100);else if("interval"===o.type&&!o.interval){const t=(this.datapointQuery.toTimestamp-this.datapointQuery.fromTimestamp)/1e3/60/60,e=this._getInterval(t);o.interval=e[0].toString()+" "+e[1].toString()}i=a?yield manager.rest.api.AssetPredictedDatapointResource.getPredictedDatapoints(t.id,e.name,o):yield manager.rest.api.AssetDatapointResource.getDatapoints(t.id,e.name,o),200===i.status&&(r.data=i.data.filter((t=>null!==t.y&&void 0!==t.y)))}return r}))}};OrChart.DEFAULT_TIMESTAMP_FORMAT="L HH:mm:ss",__decorate([property({type:Object})],OrChart.prototype,"assets",void 0),__decorate([property({type:Object})],OrChart.prototype,"activeAsset",void 0),__decorate([property({type:Object})],OrChart.prototype,"assetAttributes",void 0),__decorate([property({type:Array})],OrChart.prototype,"rightAxisAttributes",void 0),__decorate([property()],OrChart.prototype,"dataProvider",void 0),__decorate([property({type:Array})],OrChart.prototype,"colors",void 0),__decorate([property({type:Object})],OrChart.prototype,"datapointQuery",void 0),__decorate([property({type:Object})],OrChart.prototype,"config",void 0),__decorate([property({type:Object})],OrChart.prototype,"chartOptions",void 0),__decorate([property({type:String})],OrChart.prototype,"realm",void 0),__decorate([property()],OrChart.prototype,"panelName",void 0),__decorate([property()],OrChart.prototype,"attributeControls",void 0),__decorate([property()],OrChart.prototype,"timeframe",void 0),__decorate([property()],OrChart.prototype,"timestampControls",void 0),__decorate([property()],OrChart.prototype,"timePresetOptions",void 0),__decorate([property()],OrChart.prototype,"timePresetKey",void 0),__decorate([property()],OrChart.prototype,"showLegend",void 0),__decorate([property()],OrChart.prototype,"denseLegend",void 0),__decorate([property()],OrChart.prototype,"_loading",void 0),__decorate([property()],OrChart.prototype,"_data",void 0),__decorate([property()],OrChart.prototype,"_tableTemplate",void 0),__decorate([query("#chart")],OrChart.prototype,"_chartElem",void 0),OrChart=__decorate([customElement("or-chart")],OrChart);export{OrChart};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@openremote/or-chart",
3
+ "version": "1.2.0-snapshot.20240512155932",
4
+ "description": "OpenRemote chart",
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
+ "@material/data-table": "^9.0.0",
20
+ "@material/dialog": "^9.0.0",
21
+ "@openremote/core": "1.2.0-snapshot.20240512155932",
22
+ "@openremote/or-asset-tree": "1.2.0-snapshot.20240512155932",
23
+ "@openremote/or-attribute-picker": "1.2.0-snapshot.20240512155932",
24
+ "@openremote/or-components": "1.2.0-snapshot.20240512155932",
25
+ "@openremote/or-icon": "1.2.0-snapshot.20240512155932",
26
+ "@openremote/or-mwc-components": "1.2.0-snapshot.20240512155932",
27
+ "@openremote/or-translate": "1.2.0-snapshot.20240512155932",
28
+ "chart.js": "^3.6.0",
29
+ "chartjs-adapter-moment": "^1.0.0",
30
+ "chartjs-plugin-annotation": "^1.1.0",
31
+ "jsonpath-plus": "^6.0.1",
32
+ "lit": "^2.0.2",
33
+ "moment": "^2.29.4"
34
+ },
35
+ "devDependencies": {
36
+ "@openremote/util": "1.2.0-snapshot.20240512155932",
37
+ "@types/chart.js": "^2.9.34",
38
+ "@types/offscreencanvas": "^2019.6.4"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ }
43
+ }