@openremote/or-dashboard-builder 1.2.0-snapshot.20240512160221

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.
Files changed (167) hide show
  1. package/README.md +156 -0
  2. package/build.gradle +15 -0
  3. package/lib/controls/dashboard-refresh-controls.d.ts +17 -0
  4. package/lib/controls/dashboard-refresh-controls.js +17 -0
  5. package/lib/controls/dashboard-refresh-controls.js.map +1 -0
  6. package/lib/index.d.ts +71 -0
  7. package/lib/index.js +285 -0
  8. package/lib/index.js.map +1 -0
  9. package/lib/or-dashboard-boardsettings.d.ts +19 -0
  10. package/lib/or-dashboard-boardsettings.js +121 -0
  11. package/lib/or-dashboard-boardsettings.js.map +1 -0
  12. package/lib/or-dashboard-browser.d.ts +9 -0
  13. package/lib/or-dashboard-browser.js +35 -0
  14. package/lib/or-dashboard-browser.js.map +1 -0
  15. package/lib/or-dashboard-engine.d.ts +4 -0
  16. package/lib/or-dashboard-engine.js +1 -0
  17. package/lib/or-dashboard-engine.js.map +1 -0
  18. package/lib/or-dashboard-keyhandler.d.ts +6 -0
  19. package/lib/or-dashboard-keyhandler.js +1 -0
  20. package/lib/or-dashboard-keyhandler.js.map +1 -0
  21. package/lib/or-dashboard-preview.d.ts +70 -0
  22. package/lib/or-dashboard-preview.js +155 -0
  23. package/lib/or-dashboard-preview.js.map +1 -0
  24. package/lib/or-dashboard-settingspanel.d.ts +44 -0
  25. package/lib/or-dashboard-settingspanel.js +216 -0
  26. package/lib/or-dashboard-settingspanel.js.map +1 -0
  27. package/lib/or-dashboard-tree.d.ts +25 -0
  28. package/lib/or-dashboard-tree.js +62 -0
  29. package/lib/or-dashboard-tree.js.map +1 -0
  30. package/lib/or-dashboard-widget.d.ts +18 -0
  31. package/lib/or-dashboard-widget.js +15 -0
  32. package/lib/or-dashboard-widget.js.map +1 -0
  33. package/lib/or-dashboard-widgetcontainer.d.ts +23 -0
  34. package/lib/or-dashboard-widgetcontainer.js +20 -0
  35. package/lib/or-dashboard-widgetcontainer.js.map +1 -0
  36. package/lib/or-dashboard-widgetsettings.d.ts +15 -0
  37. package/lib/or-dashboard-widgetsettings.js +16 -0
  38. package/lib/or-dashboard-widgetsettings.js.map +1 -0
  39. package/lib/panels/assettypes-panel.d.ts +44 -0
  40. package/lib/panels/assettypes-panel.js +51 -0
  41. package/lib/panels/assettypes-panel.js.map +1 -0
  42. package/lib/panels/attributes-panel.d.ts +41 -0
  43. package/lib/panels/attributes-panel.js +126 -0
  44. package/lib/panels/attributes-panel.js.map +1 -0
  45. package/lib/panels/thresholds-panel.d.ts +39 -0
  46. package/lib/panels/thresholds-panel.js +129 -0
  47. package/lib/panels/thresholds-panel.js.map +1 -0
  48. package/lib/service/dashboard-service.d.ts +13 -0
  49. package/lib/service/dashboard-service.js +1 -0
  50. package/lib/service/dashboard-service.js.map +1 -0
  51. package/lib/service/widget-service.d.ts +8 -0
  52. package/lib/service/widget-service.js +1 -0
  53. package/lib/service/widget-service.js.map +1 -0
  54. package/lib/settings/attribute-input-settings.d.ts +13 -0
  55. package/lib/settings/attribute-input-settings.js +36 -0
  56. package/lib/settings/attribute-input-settings.js.map +1 -0
  57. package/lib/settings/chart-settings.d.ts +30 -0
  58. package/lib/settings/chart-settings.js +144 -0
  59. package/lib/settings/chart-settings.js.map +1 -0
  60. package/lib/settings/gauge-settings.d.ts +15 -0
  61. package/lib/settings/gauge-settings.js +37 -0
  62. package/lib/settings/gauge-settings.js.map +1 -0
  63. package/lib/settings/image-settings.d.ts +17 -0
  64. package/lib/settings/image-settings.js +52 -0
  65. package/lib/settings/image-settings.js.map +1 -0
  66. package/lib/settings/kpi-settings.d.ts +15 -0
  67. package/lib/settings/kpi-settings.js +47 -0
  68. package/lib/settings/kpi-settings.js.map +1 -0
  69. package/lib/settings/map-settings.d.ts +21 -0
  70. package/lib/settings/map-settings.js +72 -0
  71. package/lib/settings/map-settings.js.map +1 -0
  72. package/lib/settings/table-settings.d.ts +14 -0
  73. package/lib/settings/table-settings.js +33 -0
  74. package/lib/settings/table-settings.js.map +1 -0
  75. package/lib/style.d.ts +1 -0
  76. package/lib/style.js +99 -0
  77. package/lib/style.js.map +1 -0
  78. package/lib/util/or-asset-widget.d.ts +20 -0
  79. package/lib/util/or-asset-widget.js +1 -0
  80. package/lib/util/or-asset-widget.js.map +1 -0
  81. package/lib/util/or-widget.d.ts +31 -0
  82. package/lib/util/or-widget.js +1 -0
  83. package/lib/util/or-widget.js.map +1 -0
  84. package/lib/util/settings-panel.d.ts +9 -0
  85. package/lib/util/settings-panel.js +56 -0
  86. package/lib/util/settings-panel.js.map +1 -0
  87. package/lib/util/widget-config.d.ts +2 -0
  88. package/lib/util/widget-config.js +1 -0
  89. package/lib/util/widget-config.js.map +1 -0
  90. package/lib/util/widget-settings.d.ts +23 -0
  91. package/lib/util/widget-settings.js +1 -0
  92. package/lib/util/widget-settings.js.map +1 -0
  93. package/lib/widgets/attribute-input-widget.d.ts +24 -0
  94. package/lib/widgets/attribute-input-widget.js +31 -0
  95. package/lib/widgets/attribute-input-widget.js.map +1 -0
  96. package/lib/widgets/chart-widget.d.ts +25 -0
  97. package/lib/widgets/chart-widget.js +15 -0
  98. package/lib/widgets/chart-widget.js.map +1 -0
  99. package/lib/widgets/gauge-widget.d.ts +22 -0
  100. package/lib/widgets/gauge-widget.js +12 -0
  101. package/lib/widgets/gauge-widget.js.map +1 -0
  102. package/lib/widgets/image-widget.d.ts +25 -0
  103. package/lib/widgets/image-widget.js +54 -0
  104. package/lib/widgets/image-widget.js.map +1 -0
  105. package/lib/widgets/kpi-widget.d.ts +21 -0
  106. package/lib/widgets/kpi-widget.js +8 -0
  107. package/lib/widgets/kpi-widget.js.map +1 -0
  108. package/lib/widgets/map-widget.d.ts +39 -0
  109. package/lib/widgets/map-widget.js +9 -0
  110. package/lib/widgets/map-widget.js.map +1 -0
  111. package/lib/widgets/or-base-widget.d.ts +15 -0
  112. package/lib/widgets/or-base-widget.js +1 -0
  113. package/lib/widgets/or-base-widget.js.map +1 -0
  114. package/lib/widgets/or-chart-widget.d.ts +36 -0
  115. package/lib/widgets/or-chart-widget.js +112 -0
  116. package/lib/widgets/or-chart-widget.js.map +1 -0
  117. package/lib/widgets/or-gauge-widget.d.ts +46 -0
  118. package/lib/widgets/or-gauge-widget.js +60 -0
  119. package/lib/widgets/or-gauge-widget.js.map +1 -0
  120. package/lib/widgets/or-kpi-widget.d.ts +44 -0
  121. package/lib/widgets/or-kpi-widget.js +63 -0
  122. package/lib/widgets/or-kpi-widget.js.map +1 -0
  123. package/lib/widgets/or-map-widget.d.ts +49 -0
  124. package/lib/widgets/or-map-widget.js +75 -0
  125. package/lib/widgets/or-map-widget.js.map +1 -0
  126. package/lib/widgets/table-widget.d.ts +25 -0
  127. package/lib/widgets/table-widget.js +12 -0
  128. package/lib/widgets/table-widget.js.map +1 -0
  129. package/package.json +32 -0
  130. package/src/controls/dashboard-refresh-controls.ts +100 -0
  131. package/src/index.ts +731 -0
  132. package/src/or-dashboard-boardsettings.ts +249 -0
  133. package/src/or-dashboard-browser.ts +160 -0
  134. package/src/or-dashboard-engine.ts +17 -0
  135. package/src/or-dashboard-keyhandler.ts +25 -0
  136. package/src/or-dashboard-preview.ts +713 -0
  137. package/src/or-dashboard-tree.ts +304 -0
  138. package/src/or-dashboard-widgetcontainer.ts +155 -0
  139. package/src/or-dashboard-widgetsettings.ts +91 -0
  140. package/src/panels/assettypes-panel.ts +311 -0
  141. package/src/panels/attributes-panel.ts +304 -0
  142. package/src/panels/thresholds-panel.ts +285 -0
  143. package/src/service/dashboard-service.ts +89 -0
  144. package/src/service/widget-service.ts +48 -0
  145. package/src/settings/attribute-input-settings.ts +79 -0
  146. package/src/settings/chart-settings.ts +306 -0
  147. package/src/settings/gauge-settings.ts +93 -0
  148. package/src/settings/image-settings.ts +175 -0
  149. package/src/settings/kpi-settings.ts +106 -0
  150. package/src/settings/map-settings.ts +185 -0
  151. package/src/settings/table-settings.ts +92 -0
  152. package/src/style.ts +104 -0
  153. package/src/util/or-asset-widget.ts +110 -0
  154. package/src/util/or-widget.ts +60 -0
  155. package/src/util/settings-panel.ts +93 -0
  156. package/src/util/widget-config.ts +2 -0
  157. package/src/util/widget-settings.ts +58 -0
  158. package/src/widgets/attribute-input-widget.ts +143 -0
  159. package/src/widgets/chart-widget.ts +203 -0
  160. package/src/widgets/gauge-widget.ts +111 -0
  161. package/src/widgets/image-widget.ts +180 -0
  162. package/src/widgets/kpi-widget.ts +97 -0
  163. package/src/widgets/map-widget.ts +187 -0
  164. package/src/widgets/table-widget.ts +157 -0
  165. package/tsconfig.json +15 -0
  166. package/tsconfig.tsbuildinfo +1 -0
  167. package/webpack.config.js +10 -0
@@ -0,0 +1,72 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,i,s){var n,o=arguments.length,a=o<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 r=t.length-1;r>=0;r--)(n=t[r])&&(a=(o<3?n(a):o>3?n(e,i,a):n(e,i))||a);return o>3&&a&&Object.defineProperty(e,i,a),a},__awaiter=this&&this.__awaiter||function(t,e,i,s){return new(i||(i=Promise))((function(n,o){function a(t){try{l(s.next(t))}catch(t){o(t)}}function r(t){try{l(s.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,r)}l((s=s.apply(t,e||[])).next())}))};import{css,html}from"lit";import{customElement}from"lit/decorators.js";import{AssetWidgetSettings}from"../util/or-asset-widget";import{i18next}from"@openremote/or-translate";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import"../panels/assettypes-panel";import"../panels/thresholds-panel";import{LngLat}from"maplibre-gl";import{when}from"lit/directives/when.js";import manager from"@openremote/core";import{showSnackbar}from"@openremote/or-mwc-components/or-mwc-snackbar";const styling=css`
2
+ .switchMwcInputContainer {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ }
7
+ `;let MapSettings=class extends AssetWidgetSettings{static get styles(){return[...super.styles,styling]}render(){return html`
8
+ <div>
9
+
10
+ <!-- Map settings -->
11
+ <settings-panel displayName="configuration.mapSettings" expanded="${!0}">
12
+ <div style="display: flex; flex-direction: column; gap: 8px;">
13
+ <div>
14
+ <or-mwc-input .type="${InputType.NUMBER}" style="width: 100%;"
15
+ .value="${this.widgetConfig.zoom}" label="${i18next.t("dashboard.zoom")}"
16
+ @or-mwc-input-changed="${t=>this.onZoomUpdate(t)}"
17
+ ></or-mwc-input>
18
+ </div>
19
+ <div style="display: flex; gap: 8px;">
20
+ <or-mwc-input .type="${InputType.TEXT}" style="width: 100%;"
21
+ .value="${this.widgetConfig.center?Object.values(this.widgetConfig.center)[0]+", "+Object.values(this.widgetConfig.center)[1]:void 0}"
22
+ label="${i18next.t("dashboard.center")}"
23
+ @or-mwc-input-changed="${t=>this.onCenterUpdate(t)}"
24
+ ></or-mwc-input>
25
+ </div>
26
+ <div style="display: flex; justify-content: space-between; align-items: center;">
27
+ <span><or-translate value="dashboard.showGeoJson"></or-translate></span>
28
+ <or-mwc-input .type="${InputType.SWITCH}" style="width: 70px;"
29
+ .value="${this.widgetConfig.showGeoJson}"
30
+ @or-mwc-input-changed="${t=>this.onGeoJsonToggle(t)}"
31
+ ></or-mwc-input>
32
+ </div>
33
+ </div>
34
+ </settings-panel>
35
+
36
+ <!-- Panel where Asset type and the selected attribute can be customized -->
37
+ <settings-panel displayName="attributes" expanded="${!0}">
38
+ <assettypes-panel .assetType="${this.widgetConfig.assetType}" .attributeNames="${this.widgetConfig.attributeName}" .config="${{attributes:{enabled:!0,valueTypes:["boolean","number","positiveInteger","positiveNumber","negativeInteger","negativeNumber","text"]}}}"
39
+ @assettype-select="${t=>this.onAssetTypeSelect(t)}"
40
+ @attributenames-select="${t=>this.onAttributeNameSelect(t)}"
41
+ ></assettypes-panel>
42
+
43
+ <!-- Other settings like labels and units-->
44
+ <div>
45
+ <div class="switchMwcInputContainer">
46
+ <span><or-translate value="dashboard.showLabels"></or-translate></span>
47
+ <or-mwc-input .type="${InputType.SWITCH}" style="width: 70px;"
48
+ .value="${this.widgetConfig.showLabels}" .disabled="${!this.widgetConfig.assetType}"
49
+ @or-mwc-input-changed="${t=>this.onShowLabelsToggle(t)}"
50
+ ></or-mwc-input>
51
+ </div>
52
+ <div class="switchMwcInputContainer">
53
+ <span><or-translate value="dashboard.showUnits"></or-translate></span>
54
+ <or-mwc-input .type="${InputType.SWITCH}" style="width: 70px;"
55
+ .value="${this.widgetConfig.showUnits}" .disabled="${!this.widgetConfig.showLabels||!this.widgetConfig.assetType}"
56
+ @or-mwc-input-changed="${t=>this.onShowUnitsToggle(t)}"
57
+ ></or-mwc-input>
58
+ </div>
59
+ </div>
60
+ </settings-panel>
61
+
62
+ <!-- List of customizable thresholds -->
63
+ ${when(this.widgetConfig.assetIds.length>0,(()=>html`
64
+ <settings-panel displayName="thresholds" expanded="${!0}">
65
+ <thresholds-panel .thresholds="${this.widgetConfig.thresholds}" .valueType="${this.widgetConfig.valueType}" style="padding-bottom: 12px;"
66
+ .min="${this.widgetConfig.min}" .max="${this.widgetConfig.max}"
67
+ @threshold-change="${t=>this.onThresholdsChange(t)}">
68
+ </thresholds-panel>
69
+ </settings-panel>
70
+ `))}
71
+ </div>
72
+ `}onZoomUpdate(t){this.widgetConfig.zoom=t.detail.value,this.notifyConfigUpdate()}onCenterUpdate(t){if(t.detail.value){const e=t.detail.value.split(/[, ]/).filter((t=>!!t));if(2===e.length){const t=new LngLat(Number.parseFloat(e[0]),Number.parseFloat(e[1]));this.widgetConfig.center=t,this.notifyConfigUpdate()}}}onGeoJsonToggle(t){this.widgetConfig.showGeoJson=t.detail.value,this.notifyConfigUpdate()}onAssetTypeSelect(t){this.widgetConfig.assetType!==t.detail&&(this.widgetConfig.attributeName=void 0,this.widgetConfig.assetIds=[],this.widgetConfig.showLabels=!1,this.widgetConfig.showUnits=!1,this.widgetConfig.boolColors={type:"boolean",false:"#ef5350",true:"#4caf50"},this.widgetConfig.textColors=[["example","#4caf50"],["example2","#ff9800"]],this.widgetConfig.thresholds=[[0,"#4caf50"],[75,"#ff9800"],[90,"#ef5350"]],this.widgetConfig.assetType=t.detail,this.notifyConfigUpdate())}onAttributeNameSelect(t){return __awaiter(this,void 0,void 0,(function*(){const e=t.detail;this.widgetConfig.attributeName=e,yield manager.rest.api.AssetResource.queryAssets({realm:{name:manager.displayRealm},select:{attributes:[e,"location"]},types:[this.widgetConfig.assetType]}).then((t=>{this.widgetConfig.assetIds=t.data.map((t=>t.id)),this.widgetConfig.valueType=t.data.length>0?t.data[0].attributes[e].type:"text"})).catch((t=>{console.error(t),showSnackbar(void 0,"errorOccurred")})),this.notifyConfigUpdate()}))}onShowLabelsToggle(t){this.widgetConfig.showLabels=t.detail.value,this.notifyConfigUpdate()}onShowUnitsToggle(t){this.widgetConfig.showUnits=t.detail.value,this.notifyConfigUpdate()}onThresholdsChange(t){this.widgetConfig.thresholds=t.detail,this.notifyConfigUpdate()}};MapSettings=__decorate([customElement("map-settings")],MapSettings);export{MapSettings};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-settings.js","sourceRoot":"","sources":["../../src/settings/map-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { TemplateResult } from "lit";
2
+ import { AssetWidgetSettings } from "../util/or-asset-widget";
3
+ import { TableWidgetConfig } from "../widgets/table-widget";
4
+ import { OrInputChangedEvent } from "@openremote/or-mwc-components/or-mwc-input";
5
+ import { AssetIdsSelectEvent, AssetTypeSelectEvent, AttributeNamesSelectEvent } from "../panels/assettypes-panel";
6
+ export declare class TableSettings extends AssetWidgetSettings {
7
+ protected widgetConfig: TableWidgetConfig;
8
+ static get styles(): import("lit").CSSResult[];
9
+ protected render(): TemplateResult;
10
+ protected onAssetTypeSelect(ev: AssetTypeSelectEvent): void;
11
+ protected onAssetIdsSelect(ev: AssetIdsSelectEvent): void;
12
+ protected onAttributesSelect(ev: AttributeNamesSelectEvent): void;
13
+ protected onTableSizeSelect(ev: OrInputChangedEvent): void;
14
+ }
@@ -0,0 +1,33 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,s,i){var n,a=arguments.length,o=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,s,i);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(o=(a<3?n(o):a>3?n(e,s,o):n(e,s))||o);return a>3&&o&&Object.defineProperty(e,s,o),o};import{css,html}from"lit";import{customElement}from"lit/decorators.js";import{AssetWidgetSettings}from"../util/or-asset-widget";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";const styling=css`
2
+ .customMwcInputContainer {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ }
7
+ `;let TableSettings=class extends AssetWidgetSettings{static get styles(){return[...super.styles,styling]}render(){return html`
8
+ <div>
9
+ <!-- Asset type, assets, and attribute picker -->
10
+ <settings-panel displayName="attributes" expanded="${!0}">
11
+ <div style="padding-bottom: 12px;">
12
+ <assettypes-panel .assetType="${this.widgetConfig.assetType}" .config="${{assets:{enabled:!0,multi:!0},attributes:{enabled:!0,multi:!0}}}"
13
+ .assetIds="${this.widgetConfig.assetIds}" .attributeNames="${this.widgetConfig.attributeNames}"
14
+ @assettype-select="${t=>this.onAssetTypeSelect(t)}"
15
+ @assetids-select="${t=>this.onAssetIdsSelect(t)}"
16
+ @attributenames-select="${t=>this.onAttributesSelect(t)}"
17
+ ></assettypes-panel>
18
+ </div>
19
+ </settings-panel>
20
+
21
+ <!-- Table settings like amount of rows -->
22
+ <settings-panel displayName="dashboard.tableSettings" expanded="${!0}">
23
+ <div style="padding-bottom: 12px;">
24
+ <div class="customMwcInputContainer">
25
+ <span style="min-width: 180px"><or-translate value="dashboard.numberOfRows"></or-translate></span>
26
+ <or-mwc-input type="${InputType.SELECT}" .options="${[10,25,100]}" .value="${this.widgetConfig.tableSize}"
27
+ @or-mwc-input-changed="${t=>this.onTableSizeSelect(t)}"
28
+ ></or-mwc-input>
29
+ </div>
30
+ </div>
31
+ </settings-panel>
32
+ </div>
33
+ `}onAssetTypeSelect(t){this.widgetConfig.assetType=t.detail,this.widgetConfig.assetIds=[],this.widgetConfig.attributeNames=[],this.notifyConfigUpdate()}onAssetIdsSelect(t){this.widgetConfig.assetIds=t.detail,this.notifyConfigUpdate()}onAttributesSelect(t){this.widgetConfig.attributeNames=t.detail,this.notifyConfigUpdate()}onTableSizeSelect(t){const e=t.detail.value||10;this.widgetConfig.tableSize=e,this.widgetConfig.tableOptions=10!==e?[e]:[10,25,100],this.notifyConfigUpdate()}};TableSettings=__decorate([customElement("table-settings")],TableSettings);export{TableSettings};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-settings.js","sourceRoot":"","sources":["../../src/settings/table-settings.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAuB,MAAM,4CAA4C,CAAC;AAG5F,MAAM,OAAO,GAAG,GAAG,CAAA;;;;;;CAMlB,CAAC;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,mBAAmB;IAIlD,MAAM,KAAK,MAAM;QACb,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAES,MAAM;QACZ,MAAM,MAAM,GAAG;YACX,MAAM,EAAE;gBACJ,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACd;YACD,UAAU,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACd;SACsB,CAAA;QAC3B,OAAO,IAAI,CAAA;;;qEAGkD,IAAI;;wDAEjB,IAAI,CAAC,YAAY,CAAC,SAAS,cAAc,MAAM;uDAChD,IAAI,CAAC,YAAY,CAAC,QAAQ,sBAAsB,IAAI,CAAC,YAAY,CAAC,cAAc;+DACxE,CAAC,EAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;8DACzD,CAAC,EAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;oEAChD,CAAC,EAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;;;;;;kFAMhD,IAAI;;;;kDAIpC,SAAS,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,SAAS;mEACnE,CAAC,EAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;;;;;;SAMjH,CAAA;IACL,CAAC;IAES,iBAAiB,CAAC,EAAwB;QAChD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC;QACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,gBAAgB,CAAC,EAAuB;QAC9C,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAkB,CAAC;QACnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,kBAAkB,CAAC,EAA6B;QACtD,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC,MAAkB,CAAC;QACzD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,iBAAiB,CAAC,EAAuB;QAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QACpC,IAAG,KAAK,KAAK,EAAE,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CACJ,CAAA;AA3EY,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CA2EzB"}
package/lib/style.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const style: import("lit").CSSResult;
package/lib/style.js ADDED
@@ -0,0 +1,99 @@
1
+ import{css,unsafeCSS}from"lit";import{DefaultColor1,DefaultColor2,DefaultColor4,DefaultColor5}from"@openremote/core";export const style=css`
2
+
3
+ :host {
4
+ --internal-or-asset-tree-header-color: var(--or-asset-tree-header-color, var(--or-app-color4, ${unsafeCSS(DefaultColor4)}));
5
+ --internal-or-asset-tree-header-text-color: var(--or-asset-tree-header-text-color, var(--or-app-color7, ${unsafeCSS(DefaultColor1)}));
6
+ --internal-or-asset-tree-header-menu-background-color: var(--or-asset-tree-header-menu-background-color, var(--internal-or-asset-tree-header-text-color));
7
+ --internal-or-asset-tree-header-menu-text-color: var(--or-asset-tree-header-menu-text-color, inherit);
8
+ --internal-or-asset-tree-header-height: var(--or-asset-tree-header-height, 48px);
9
+ --internal-or-asset-tree-background-color: var(--or-asset-tree-background-color, var(--or-app-color1, ${unsafeCSS(DefaultColor1)}));
10
+ --internal-or-asset-tree-text-color: var(--or-asset-tree-text-color, inherit);
11
+ --internal-or-asset-tree-item-height: var(--or-asset-tree-item-height, 24px);
12
+ --internal-or-asset-tree-item-padding: var(--or-asset-tree-item-padding, 10px);
13
+ --internal-or-asset-tree-selected-background-color: var(--or-asset-tree-selected-background-color, var(--or-app-color2, ${unsafeCSS(DefaultColor2)}));
14
+ --internal-or-asset-tree-selected-color: var(--or-asset-tree-selected-color, var(--or-app-color4, ${unsafeCSS(DefaultColor4)}));
15
+ --internal-or-asset-tree-button-color: var(--or-asset-tree-button-color, var(--or-app-color4, ${unsafeCSS(DefaultColor4)}));
16
+ --internal-or-asset-tree-line-color: var(--or-asset-tree-line-color, var(--or-app-color5, ${unsafeCSS(DefaultColor5)}));
17
+
18
+ display: flex;
19
+ flex-direction: column;
20
+ height: 100%;
21
+ width: 100%;
22
+ background-color: var(--internal-or-asset-tree-background-color);
23
+ }
24
+
25
+ @media only screen and (max-width: 640px){
26
+ .hideMobile {
27
+ display: none !important;
28
+ }
29
+ }
30
+ @media only screen and (min-width: 641px){
31
+ .showMobile {
32
+ display: none !important;
33
+ }
34
+ }
35
+
36
+ #container {
37
+ display: flex;
38
+ width: 100%;
39
+ height: 100%;
40
+ }
41
+
42
+ #menu-header {
43
+ background-color: var(--internal-or-asset-tree-header-color);
44
+ display: flex;
45
+ align-items: center;
46
+ width: 100%;
47
+ height: var(--internal-or-asset-tree-header-height);
48
+ border-bottom: 1px solid var(--or-app-color5, ${unsafeCSS(DefaultColor5)});
49
+ z-index: 3;
50
+ line-height: var(--internal-or-asset-tree-header-height);
51
+ color: var(--internal-or-asset-tree-header-text-color);
52
+ --or-icon-fill: var(--internal-or-asset-tree-header-text-color);
53
+ }
54
+
55
+ #title-container {
56
+ flex: 1;
57
+ flex-direction: row;
58
+ text-transform: capitalize;
59
+ padding-left: 14px;
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ white-space: nowrap;
63
+ }
64
+
65
+ #title {
66
+ font-weight: 500;
67
+ font-size: 16px;
68
+ }
69
+
70
+ .expandableHeader {
71
+ display: flex;
72
+ align-items: center;
73
+ padding: 12px;
74
+ background: none;
75
+ border-top: 1px solid var(--or-app-color5, ${unsafeCSS(DefaultColor5)});
76
+ border-right: none;
77
+ border-bottom: none;
78
+ border-left: none;
79
+ border-radius: 0;
80
+ width: 100%;
81
+ cursor: pointer;
82
+ font-weight: 700;
83
+ line-height: 1em;
84
+ color: var(--internal-or-asset-viewer-title-text-color);
85
+ flex: 0 0 auto;
86
+ }
87
+ .expandableHeader > or-icon {
88
+ --or-icon-height: 20px;
89
+ --or-icon-width: 20px;
90
+ }
91
+ .panel-title {
92
+ text-transform: uppercase;
93
+ font-weight: bolder;
94
+ line-height: 1em;
95
+ color: var(--internal-or-asset-viewer-title-text-color);
96
+ /*margin-bottom: 20px;*/
97
+ flex: 0 0 auto;
98
+ }
99
+ `;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../src/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAG5F,eAAe;AACf,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;wGAGgF,SAAS,CAAC,aAAa,CAAC;kHACd,SAAS,CAAC,aAAa,CAAC;;;;gHAI1B,SAAS,CAAC,aAAa,CAAC;;;;kIAIN,SAAS,CAAC,aAAa,CAAC;4GAC9C,SAAS,CAAC,aAAa,CAAC;wGAC5B,SAAS,CAAC,aAAa,CAAC;oGAC5B,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAgCpE,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;qDA2B3B,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAwB5E,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { OrWidget } from "./or-widget";
2
+ import { Asset, AssetQuery, Attribute, AttributeRef } from "@openremote/model";
3
+ import { WidgetSettings } from "./widget-settings";
4
+ import { CSSResult } from "lit";
5
+ export declare abstract class OrAssetWidget extends OrWidget {
6
+ protected loadedAssets: Asset[];
7
+ protected assetAttributes: [number, Attribute<any>][];
8
+ static get styles(): CSSResult[];
9
+ protected fetchAssets(attributeRefs?: AttributeRef[]): Promise<Asset[]>;
10
+ protected queryAssets(assetQuery: AssetQuery): Promise<Asset[]>;
11
+ protected isAssetLoaded(assetId: string): boolean;
12
+ protected isAttributeRefLoaded(attributeRef: AttributeRef): boolean;
13
+ }
14
+ export declare abstract class AssetWidgetSettings extends WidgetSettings {
15
+ protected loadedAssets: Asset[];
16
+ protected fetchAssets(attributeRefs?: AttributeRef[]): Promise<Asset[]>;
17
+ protected queryAssets(assetQuery: AssetQuery): Promise<Asset[]>;
18
+ protected isAssetLoaded(assetId: string): boolean;
19
+ protected isAttributeRefLoaded(attributeRef: AttributeRef): boolean;
20
+ }
@@ -0,0 +1 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,s,r){var i,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,s,r);else for(var d=t.length-1;d>=0;d--)(i=t[d])&&(n=(o<3?i(n):o>3?i(e,s,n):i(e,s))||n);return o>3&&n&&Object.defineProperty(e,s,n),n},__awaiter=this&&this.__awaiter||function(t,e,s,r){return new(s||(s=Promise))((function(i,o){function n(t){try{a(r.next(t))}catch(t){o(t)}}function d(t){try{a(r.throw(t))}catch(t){o(t)}}function a(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(n,d)}a((r=r.apply(t,e||[])).next())}))};import{OrWidget}from"./or-widget";import{state}from"lit/decorators.js";import manager from"@openremote/core";import{showSnackbar}from"@openremote/or-mwc-components/or-mwc-snackbar";import{WidgetSettings}from"./widget-settings";export class OrAssetWidget extends OrWidget{constructor(){super(...arguments),this.loadedAssets=[],this.assetAttributes=[]}static get styles(){return[...super.styles]}fetchAssets(t=[]){return __awaiter(this,void 0,void 0,(function*(){return fetchAssetsByAttributeRef(t)}))}queryAssets(t){return __awaiter(this,void 0,void 0,(function*(){return fetchAssets(t)}))}isAssetLoaded(t){return isAssetIdLoaded(this.loadedAssets,t)}isAttributeRefLoaded(t){return isAssetIdLoaded(this.loadedAssets,t.id)}}__decorate([state()],OrAssetWidget.prototype,"loadedAssets",void 0),__decorate([state()],OrAssetWidget.prototype,"assetAttributes",void 0);export class AssetWidgetSettings extends WidgetSettings{constructor(){super(...arguments),this.loadedAssets=[]}fetchAssets(t=[]){return __awaiter(this,void 0,void 0,(function*(){return fetchAssetsByAttributeRef(t)}))}queryAssets(t){return __awaiter(this,void 0,void 0,(function*(){return fetchAssets(t)}))}isAssetLoaded(t){return isAssetIdLoaded(this.loadedAssets,t)}isAttributeRefLoaded(t){return isAssetIdLoaded(this.loadedAssets,t.id)}}function fetchAssetsByAttributeRef(t=[]){return __awaiter(this,void 0,void 0,(function*(){return t.map((t=>t.id)),t.map((t=>t.name)),fetchAssets({ids:null==t?void 0:t.map((t=>t.id)),select:{attributes:null==t?void 0:t.map((t=>t.name))}})}))}function fetchAssets(t){return __awaiter(this,void 0,void 0,(function*(){let e=[];return t.realm={name:manager.displayRealm},yield manager.rest.api.AssetResource.queryAssets(t).then((t=>{e=t.data})).catch((t=>{console.error(t),showSnackbar(void 0,"errorOccurred")})),e}))}function isAssetIdLoaded(t,e){return void 0!==(null==t?void 0:t.find((t=>t.id===e)))}__decorate([state()],AssetWidgetSettings.prototype,"loadedAssets",void 0);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-asset-widget.js","sourceRoot":"","sources":["../../src/util/or-asset-widget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { CSSResult, LitElement, TemplateResult } from "lit";
2
+ import { WidgetConfig } from "./widget-config";
3
+ import { WidgetSettings } from "./widget-settings";
4
+ export interface WidgetManifest {
5
+ displayName: string;
6
+ displayIcon: string;
7
+ minColumnWidth?: number;
8
+ minColumnHeight?: number;
9
+ minPixelWidth?: number;
10
+ minPixelHeight?: number;
11
+ getContentHtml(config: WidgetConfig): OrWidget;
12
+ getSettingsHtml(config: WidgetConfig): WidgetSettings;
13
+ getDefaultConfig(): WidgetConfig;
14
+ }
15
+ export declare abstract class OrWidget extends LitElement {
16
+ protected static manifest: WidgetManifest;
17
+ protected readonly widgetConfig: WidgetConfig;
18
+ constructor(config: WidgetConfig);
19
+ static get styles(): CSSResult[];
20
+ static getManifest(): WidgetManifest;
21
+ abstract refreshContent(force: boolean): void;
22
+ protected abstract render(): TemplateResult;
23
+ getDisplayName?: () => string | undefined;
24
+ getEditMode?: () => boolean;
25
+ getWidgetLocation?: () => {
26
+ x?: number;
27
+ y?: number;
28
+ h?: number;
29
+ w?: number;
30
+ };
31
+ }
@@ -0,0 +1 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,r,o){var i,n=arguments.length,s=n<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,r):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,r,o);else for(var c=t.length-1;c>=0;c--)(i=t[c])&&(s=(n<3?i(s):n>3?i(e,r,s):i(e,r))||s);return n>3&&s&&Object.defineProperty(e,r,s),s};import{LitElement}from"lit";import{property}from"lit/decorators.js";export class OrWidget extends LitElement{constructor(t){super(),this.widgetConfig=t}static get styles(){return[]}static getManifest(){if(!this.manifest)throw new Error(`No manifest present on ${this.name}`);return this.manifest}}__decorate([property({type:Object})],OrWidget.prototype,"widgetConfig",void 0);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-widget.js","sourceRoot":"","sources":["../../src/util/or-widget.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAY,UAAU,EAAkB,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgB7C,uEAAuE;AACvE,4FAA4F;AAC5F,MAAM,OAAgB,QAAS,SAAQ,UAAU;IAO7C,YAAY,MAAoB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,MAAM;QACb,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iCAAiC;IAEjC,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CAiBJ;AAnCsB;IADlB,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;8CACsB"}
@@ -0,0 +1,9 @@
1
+ import { LitElement, TemplateResult } from "lit";
2
+ export declare class SettingsPanel extends LitElement {
3
+ protected expanded: boolean;
4
+ protected displayName?: string;
5
+ static get styles(): import("lit").CSSResult[];
6
+ protected render(): TemplateResult;
7
+ toggle(state?: boolean): void;
8
+ protected generateHeader(expanded: boolean, title?: string): Promise<TemplateResult>;
9
+ }
@@ -0,0 +1,56 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,i,n){var r,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,i,n);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(o<3?r(a):o>3?r(t,i,a):r(t,i))||a);return o>3&&a&&Object.defineProperty(t,i,a),a},__awaiter=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(r,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((n=n.apply(e,t||[])).next())}))};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{until}from"lit/directives/until.js";import{when}from"lit/directives/when.js";import{classMap}from"lit/directives/class-map.js";import{style}from"../style";const styling=css`
2
+ :host {
3
+ height: auto !important;
4
+ }
5
+
6
+ #panel-wrapper {
7
+ border-top: 1px solid #E0E0E0;
8
+ border-bottom: 1px solid #E0E0E0;
9
+ }
10
+
11
+ #panel-header {
12
+ display: flex;
13
+ align-items: center;
14
+ cursor: pointer;
15
+ padding: 12px;
16
+ gap: 8px;
17
+ }
18
+
19
+ #panel-title {
20
+ line-height: 100%;
21
+ font-weight: 700;
22
+ }
23
+
24
+ .panel-content {
25
+ padding: 0 16px;
26
+ max-height: 0;
27
+ overflow: hidden;
28
+ transition: max-height 0.2s cubic-bezier(0.4, 0.0, 0.2, 1) 0s, visibility 0s 0.2s; /* expanded -> collapsed */
29
+ }
30
+
31
+ .panel-content--expanded {
32
+ max-height: 100vh;
33
+ overflow: visible;
34
+ transition: max-height 0.25s cubic-bezier(0.4, 0.0, 0.2, 1) 0s; /* collapsed -> expanded */
35
+ }
36
+ `;let SettingsPanel=class extends LitElement{constructor(){super(...arguments),this.expanded=!1}static get styles(){return[styling,style]}render(){const e={"panel-content":!0,"panel-content--expanded":this.expanded};return html`
37
+ <div id="panel-wrapper">
38
+ ${until(this.generateHeader(this.expanded,this.displayName),html``)}
39
+ <div class="${classMap(e)}">
40
+ <div style="padding-bottom: 16px;">
41
+ <slot></slot>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ `}toggle(e){this.expanded=e||!this.expanded}generateHeader(e,t){return __awaiter(this,void 0,void 0,(function*(){return html`
46
+ <div id="panel-header" @click="${()=>this.toggle()}">
47
+ <div id="panel-chevron">
48
+ <or-icon icon="${e?"chevron-down":"chevron-right"}"></or-icon>
49
+ </div>
50
+ ${when(t,(()=>html`
51
+ <div id="panel-title">
52
+ <span><or-translate value="${this.displayName}"></or-translate></span>
53
+ </div>
54
+ `))}
55
+ </div>
56
+ `}))}};__decorate([property()],SettingsPanel.prototype,"expanded",void 0),__decorate([property()],SettingsPanel.prototype,"displayName",void 0),SettingsPanel=__decorate([customElement("settings-panel")],SettingsPanel);export{SettingsPanel};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-panel.js","sourceRoot":"","sources":["../../src/util/settings-panel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAkB,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAE/B,MAAM,OAAO,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmClB,CAAC;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAGO,aAAQ,GAAY,KAAK,CAAC;IA4CxC,CAAC;IAvCG,MAAM,KAAK,MAAM;QACb,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAES,MAAM;QACZ,MAAM,cAAc,GAAG;YACnB,eAAe,EAAE,IAAI;YACrB,yBAAyB,EAAE,IAAI,CAAC,QAAQ;SAC3C,CAAA;QACD,OAAO,IAAI,CAAA;;kBAED,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA,EAAE,CAAC;8BACvD,QAAQ,CAAC,cAAc,CAAC;;;;;;SAM7C,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC3C,CAAC;IAEe,cAAc,CAAC,QAAiB,EAAE,KAAc;;YAC5D,OAAO,IAAI,CAAA;6CAC0B,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;;qCAE3B,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;;kBAE9D,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;qDAEa,IAAI,CAAC,WAAW;;iBAEpD,CAAC;;SAET,CAAA;QACL,CAAC;KAAA;CACJ,CAAA;AA5Ca;IADT,QAAQ,EAAE;+CACyB;AAG1B;IADT,QAAQ,EAAE;kDACoB;AANtB,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CA+CzB"}
@@ -0,0 +1,2 @@
1
+ export interface WidgetConfig {
2
+ }
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-config.js","sourceRoot":"","sources":["../../src/util/widget-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
2
+ import { WidgetConfig } from "./widget-config";
3
+ export declare class WidgetSettingsChangedEvent extends CustomEvent<WidgetConfig> {
4
+ static readonly NAME = "settings-changed";
5
+ constructor(widgetConfig: WidgetConfig);
6
+ }
7
+ export declare abstract class WidgetSettings extends LitElement {
8
+ protected readonly widgetConfig: WidgetConfig;
9
+ static get styles(): import("lit").CSSResult[];
10
+ protected abstract render(): TemplateResult;
11
+ constructor(config: WidgetConfig);
12
+ protected willUpdate(changedProps: PropertyValues): void;
13
+ protected notifyConfigUpdate(): void;
14
+ getDisplayName?: () => string | undefined;
15
+ setDisplayName?: (name?: string) => void;
16
+ getEditMode?: () => boolean;
17
+ getWidgetLocation?: () => {
18
+ x?: number;
19
+ y?: number;
20
+ h?: number;
21
+ w?: number;
22
+ };
23
+ }
@@ -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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"}