@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.
Files changed (146) 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-tree.d.ts +25 -0
  25. package/lib/or-dashboard-tree.js +62 -0
  26. package/lib/or-dashboard-tree.js.map +1 -0
  27. package/lib/or-dashboard-widgetcontainer.d.ts +23 -0
  28. package/lib/or-dashboard-widgetcontainer.js +20 -0
  29. package/lib/or-dashboard-widgetcontainer.js.map +1 -0
  30. package/lib/or-dashboard-widgetsettings.d.ts +15 -0
  31. package/lib/or-dashboard-widgetsettings.js +16 -0
  32. package/lib/or-dashboard-widgetsettings.js.map +1 -0
  33. package/lib/panels/assettypes-panel.d.ts +44 -0
  34. package/lib/panels/assettypes-panel.js +51 -0
  35. package/lib/panels/assettypes-panel.js.map +1 -0
  36. package/lib/panels/attributes-panel.d.ts +41 -0
  37. package/lib/panels/attributes-panel.js +126 -0
  38. package/lib/panels/attributes-panel.js.map +1 -0
  39. package/lib/panels/thresholds-panel.d.ts +39 -0
  40. package/lib/panels/thresholds-panel.js +129 -0
  41. package/lib/panels/thresholds-panel.js.map +1 -0
  42. package/lib/service/dashboard-service.d.ts +13 -0
  43. package/lib/service/dashboard-service.js +1 -0
  44. package/lib/service/dashboard-service.js.map +1 -0
  45. package/lib/service/widget-service.d.ts +8 -0
  46. package/lib/service/widget-service.js +1 -0
  47. package/lib/service/widget-service.js.map +1 -0
  48. package/lib/settings/attribute-input-settings.d.ts +13 -0
  49. package/lib/settings/attribute-input-settings.js +36 -0
  50. package/lib/settings/attribute-input-settings.js.map +1 -0
  51. package/lib/settings/chart-settings.d.ts +30 -0
  52. package/lib/settings/chart-settings.js +144 -0
  53. package/lib/settings/chart-settings.js.map +1 -0
  54. package/lib/settings/gauge-settings.d.ts +15 -0
  55. package/lib/settings/gauge-settings.js +37 -0
  56. package/lib/settings/gauge-settings.js.map +1 -0
  57. package/lib/settings/image-settings.d.ts +17 -0
  58. package/lib/settings/image-settings.js +52 -0
  59. package/lib/settings/image-settings.js.map +1 -0
  60. package/lib/settings/kpi-settings.d.ts +15 -0
  61. package/lib/settings/kpi-settings.js +47 -0
  62. package/lib/settings/kpi-settings.js.map +1 -0
  63. package/lib/settings/map-settings.d.ts +21 -0
  64. package/lib/settings/map-settings.js +72 -0
  65. package/lib/settings/map-settings.js.map +1 -0
  66. package/lib/settings/table-settings.d.ts +14 -0
  67. package/lib/settings/table-settings.js +33 -0
  68. package/lib/settings/table-settings.js.map +1 -0
  69. package/lib/style.d.ts +1 -0
  70. package/lib/style.js +99 -0
  71. package/lib/style.js.map +1 -0
  72. package/lib/util/or-asset-widget.d.ts +20 -0
  73. package/lib/util/or-asset-widget.js +1 -0
  74. package/lib/util/or-asset-widget.js.map +1 -0
  75. package/lib/util/or-widget.d.ts +31 -0
  76. package/lib/util/or-widget.js +1 -0
  77. package/lib/util/or-widget.js.map +1 -0
  78. package/lib/util/settings-panel.d.ts +9 -0
  79. package/lib/util/settings-panel.js +56 -0
  80. package/lib/util/settings-panel.js.map +1 -0
  81. package/lib/util/widget-config.d.ts +2 -0
  82. package/lib/util/widget-config.js +1 -0
  83. package/lib/util/widget-config.js.map +1 -0
  84. package/lib/util/widget-settings.d.ts +23 -0
  85. package/lib/util/widget-settings.js +1 -0
  86. package/lib/util/widget-settings.js.map +1 -0
  87. package/lib/widgets/attribute-input-widget.d.ts +24 -0
  88. package/lib/widgets/attribute-input-widget.js +31 -0
  89. package/lib/widgets/attribute-input-widget.js.map +1 -0
  90. package/lib/widgets/chart-widget.d.ts +25 -0
  91. package/lib/widgets/chart-widget.js +15 -0
  92. package/lib/widgets/chart-widget.js.map +1 -0
  93. package/lib/widgets/gauge-widget.d.ts +22 -0
  94. package/lib/widgets/gauge-widget.js +12 -0
  95. package/lib/widgets/gauge-widget.js.map +1 -0
  96. package/lib/widgets/image-widget.d.ts +25 -0
  97. package/lib/widgets/image-widget.js +54 -0
  98. package/lib/widgets/image-widget.js.map +1 -0
  99. package/lib/widgets/kpi-widget.d.ts +21 -0
  100. package/lib/widgets/kpi-widget.js +8 -0
  101. package/lib/widgets/kpi-widget.js.map +1 -0
  102. package/lib/widgets/map-widget.d.ts +39 -0
  103. package/lib/widgets/map-widget.js +9 -0
  104. package/lib/widgets/map-widget.js.map +1 -0
  105. package/lib/widgets/table-widget.d.ts +25 -0
  106. package/lib/widgets/table-widget.js +12 -0
  107. package/lib/widgets/table-widget.js.map +1 -0
  108. package/package.json +32 -0
  109. package/src/controls/dashboard-refresh-controls.ts +100 -0
  110. package/src/index.ts +731 -0
  111. package/src/or-dashboard-boardsettings.ts +249 -0
  112. package/src/or-dashboard-browser.ts +160 -0
  113. package/src/or-dashboard-engine.ts +17 -0
  114. package/src/or-dashboard-keyhandler.ts +25 -0
  115. package/src/or-dashboard-preview.ts +713 -0
  116. package/src/or-dashboard-tree.ts +304 -0
  117. package/src/or-dashboard-widgetcontainer.ts +155 -0
  118. package/src/or-dashboard-widgetsettings.ts +91 -0
  119. package/src/panels/assettypes-panel.ts +311 -0
  120. package/src/panels/attributes-panel.ts +304 -0
  121. package/src/panels/thresholds-panel.ts +285 -0
  122. package/src/service/dashboard-service.ts +89 -0
  123. package/src/service/widget-service.ts +48 -0
  124. package/src/settings/attribute-input-settings.ts +79 -0
  125. package/src/settings/chart-settings.ts +306 -0
  126. package/src/settings/gauge-settings.ts +93 -0
  127. package/src/settings/image-settings.ts +175 -0
  128. package/src/settings/kpi-settings.ts +106 -0
  129. package/src/settings/map-settings.ts +185 -0
  130. package/src/settings/table-settings.ts +92 -0
  131. package/src/style.ts +104 -0
  132. package/src/util/or-asset-widget.ts +110 -0
  133. package/src/util/or-widget.ts +60 -0
  134. package/src/util/settings-panel.ts +93 -0
  135. package/src/util/widget-config.ts +2 -0
  136. package/src/util/widget-settings.ts +58 -0
  137. package/src/widgets/attribute-input-widget.ts +143 -0
  138. package/src/widgets/chart-widget.ts +203 -0
  139. package/src/widgets/gauge-widget.ts +111 -0
  140. package/src/widgets/image-widget.ts +180 -0
  141. package/src/widgets/kpi-widget.ts +97 -0
  142. package/src/widgets/map-widget.ts +187 -0
  143. package/src/widgets/table-widget.ts +157 -0
  144. package/tsconfig.json +15 -0
  145. package/tsconfig.tsbuildinfo +1 -0
  146. package/webpack.config.js +10 -0
@@ -0,0 +1,52 @@
1
+ var __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 o=t.length-1;o>=0;o--)(n=t[o])&&(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{css,html}from"lit";import{customElement}from"lit/decorators.js";import{i18next}from"@openremote/or-translate";import{AssetModelUtil}from"@openremote/model";import{map}from"lit/directives/map.js";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{Util}from"@openremote/core";import{when}from"lit/directives/when.js";import{AssetWidgetSettings}from"../util/or-asset-widget";const styling=css`
2
+ #marker-container {
3
+ display: flex;
4
+ justify-content: flex-end;
5
+ align-items: center;
6
+ }
7
+ `;let ImageSettings=class extends AssetWidgetSettings{static get styles(){return[...super.styles,styling]}willUpdate(t){super.willUpdate(t),t.has("widgetConfig")&&this.widgetConfig&&(this.updateCoordinateMap(this.widgetConfig),this.loadAssets())}loadAssets(){this.widgetConfig.attributeRefs.filter((t=>!this.isAttributeRefLoaded(t))).length>0&&this.fetchAssets(this.widgetConfig.attributeRefs).then((t=>{this.loadedAssets=void 0===t?[]:t}))}render(){return html`
8
+ <div>
9
+ <!-- Attributes selector -->
10
+ <settings-panel displayName="'attributes" expanded="${!0}">
11
+ <attributes-panel .attributeRefs="${this.widgetConfig.attributeRefs}" onlyDataAttrs="${!1}" multi="${!0}"
12
+ @attribute-select="${t=>this.onAttributesSelect(t)}"
13
+ ></attributes-panel>
14
+ </settings-panel>
15
+
16
+ <!-- Marker coordinates -->
17
+ <settings-panel displayName="dashboard.markerCoordinates" expanded="${!0}">
18
+ <div style="display: flex; flex-direction: column; gap: 8px;">
19
+ ${map(this.draftCoordinateEntries(this.widgetConfig),(t=>t))}
20
+ </div>
21
+ </settings-panel>
22
+
23
+ <!-- Image settings -->
24
+ <settings-panel displayName="dashboard.imageSettings" expanded="${!0}">
25
+ <div>
26
+ <or-mwc-input style="width: 100%;" type="${InputType.TEXT}" label="${i18next.t("dashboard.imageUrl")}" .value="${this.widgetConfig.imagePath}"
27
+ @or-mwc-input-changed="${t=>this.onImageUrlUpdate(t)}"
28
+ ></or-mwc-input>
29
+ </div>
30
+ </settings-panel>
31
+ </div>
32
+ `}onAttributesSelect(t){this.widgetConfig.attributeRefs=t.detail.attributeRefs,this.notifyConfigUpdate()}onImageUrlUpdate(t){this.widgetConfig.imagePath=t.detail.value,this.notifyConfigUpdate()}updateCoordinateMap(t){for(let e=0;e<t.attributeRefs.length;e++){const i=t.attributeRefs[e];if(void 0===i)return void console.error("attributeRef is undefined");-1===t.markers.findIndex((t=>t.attributeRef.id===i.id&&t.attributeRef.name===i.name))&&t.markers.push({attributeRef:i,coordinates:[50,50]})}}draftCoordinateEntries(t){return t.markers.length>0?t.attributeRefs.map((e=>{var i,s,n;const r=t.markers.find((t=>t.attributeRef.id===e.id&&t.attributeRef.name===e.name));if(void 0===r)return console.error("A marker could not be found during drafting coordinate entries."),html``;const a=t.markers.indexOf(r),o=r.coordinates,d=null===(i=this.loadedAssets)||void 0===i?void 0:i.find((t=>t.id===e.id));let l;if(d){const t=d.attributes[e.name],i=AssetModelUtil.getAttributeAndValueDescriptors(d.type,e.name,t);l=Util.getAttributeLabel(t,i[0],d.type,!1)}return html`
33
+ <div id="marker-container">
34
+ <div style="flex: 1; display: flex; flex-direction: column;">
35
+ <span>${null===(n=null===(s=this.loadedAssets)||void 0===s?void 0:s.find((t=>t.id===e.id)))||void 0===n?void 0:n.name}</span>
36
+ ${when(l,(()=>html`
37
+ <span style="color: gray;">${l}</span>
38
+ `))}
39
+ </div>
40
+ <div style="display: flex; gap: 8px;">
41
+ <or-mwc-input .disableSliderNumberInput="${!0}" compact style="max-width: 64px;"
42
+ .type="${InputType.NUMBER}" .min="${0}" .max="${100}" .value="${o[0]}"
43
+ @or-mwc-input-changed="${t=>this.onCoordinateUpdate(a,"x",t.detail.value)}"
44
+ ></or-mwc-input>
45
+
46
+ <or-mwc-input .disableSliderNumberInput="${!0}" compact style="max-width: 64px;"
47
+ .type="${InputType.NUMBER}" .min="${0}" .max="${100}" .value="${o[1]}"
48
+ @or-mwc-input-changed="${t=>this.onCoordinateUpdate(a,"y",t.detail.value)}"
49
+ ></or-mwc-input>
50
+ </div>
51
+ </div>
52
+ `})):[html`<span><or-translate value="noAttributeConnected"></or-translate></span>`]}onCoordinateUpdate(t,e,i){let s=this.widgetConfig.markers[t].coordinates;s||(s=[0,0]),"x"===e?s[0]=i:"y"===e&&(s[1]=i),this.widgetConfig.markers[t].coordinates=s,this.notifyConfigUpdate()}};ImageSettings=__decorate([customElement("image-settings")],ImageSettings);export{ImageSettings};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-settings.js","sourceRoot":"","sources":["../../src/settings/image-settings.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAS,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAQ,cAAc,EAAe,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAuB,MAAM,4CAA4C,CAAC;AAC5F,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D,MAAM,OAAO,GAAG,GAAG,CAAA;;;;;;CAMlB,CAAC;AAGK,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,mBAAmB;IAKlD,MAAM,KAAK,MAAM;QACb,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAES,UAAU,CAAC,YAA4B;QAC7C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/B,IAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IAES,UAAU;QAChB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;QACrG,IAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC9D,IAAG,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC/B,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAES,MAAM;QACZ,OAAO,IAAI,CAAA;;;sEAGmD,IAAI;wDAClB,IAAI,CAAC,YAAY,CAAC,aAAa,oBAAoB,KAAK,YAAY,IAAI;2DACrE,CAAC,EAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;;;;;sFAK/B,IAAI;;0BAEhE,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC;;;;;kFAKjB,IAAI;;mEAEnB,SAAS,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,SAAS;+DACrG,CAAC,EAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;;;;;SAK5G,CAAC;IACN,CAAC;IAES,kBAAkB,CAAC,EAAyB;QAClD,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,gBAAgB,CAAC,EAAuB;QAC9C,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAGD,4CAA4C;IAE5C,sEAAsE;IACtE,mBAAmB,CAAC,MAAyB;QACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC3C,OAAO;YACX,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;YAChI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,YAAY,EAAE,YAAY;oBAC1B,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;iBACxB,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,MAAyB;QACpD,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,CAAC;QAEhB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;;gBAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC5H,IAAG,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;oBACjF,OAAO,IAAI,CAAA,EAAE,CAAC;gBAClB,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,KAAyB,CAAC;gBAC9B,IAAG,KAAK,EAAE,CAAC;oBACP,MAAM,SAAS,GAAG,KAAK,CAAC,UAAW,CAAC,YAAY,CAAC,IAAK,CAAC,CAAC;oBACxD,MAAM,WAAW,GAAG,cAAc,CAAC,+BAA+B,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC7G,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACjF,CAAC;gBACD,OAAO,IAAI,CAAA;;;oCAGS,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC,0CAAE,IAAI;8BAClE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;6DACS,KAAK;6BACrC,CAAC;;;uEAGyC,IAAI;mDACxB,SAAS,CAAC,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,WAAW,CAAC,CAAC,CAAC;mEACvD,CAAC,EAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;;;uEAG7E,IAAI;mDACxB,SAAS,CAAC,MAAM,WAAW,GAAG,WAAW,GAAG,aAAa,WAAW,CAAC,CAAC,CAAC;mEACvD,CAAC,EAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;;;;iBAInI,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,IAAI,CAAA,yEAAyE;aAChF,CAAC;QACN,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,KAAa,EAAE,UAAqB,EAAE,KAAa;QAC5E,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;QAC1D,IAAG,CAAC,MAAM,EAAE,CAAC;YACT,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAG,UAAU,KAAK,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,IAAG,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC;QACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CAEJ,CAAA;AAzJY,aAAa;IADzB,aAAa,CAAC,gBAAgB,CAAC;GACnB,aAAa,CAyJzB"}
@@ -0,0 +1,15 @@
1
+ import { TemplateResult } from "lit";
2
+ import { AssetWidgetSettings } from "../util/or-asset-widget";
3
+ import { KpiWidgetConfig } from "../widgets/kpi-widget";
4
+ import { AttributesSelectEvent } from "../panels/attributes-panel";
5
+ import { OrInputChangedEvent } from "@openremote/or-mwc-components/or-mwc-input";
6
+ export declare class KpiSettings extends AssetWidgetSettings {
7
+ protected widgetConfig: KpiWidgetConfig;
8
+ static get styles(): import("lit").CSSResult[];
9
+ protected render(): TemplateResult;
10
+ protected onAttributesSelect(ev: AttributesSelectEvent): void;
11
+ protected onTimeframeSelect(ev: OrInputChangedEvent): void;
12
+ protected onTimeframeToggle(ev: OrInputChangedEvent): void;
13
+ protected onDeltaFormatSelect(ev: OrInputChangedEvent): void;
14
+ protected onDecimalsChange(ev: OrInputChangedEvent): void;
15
+ }
@@ -0,0 +1,47 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,i,n){var s,a=arguments.length,o=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,i,n);else for(var l=t.length-1;l>=0;l--)(s=t[l])&&(o=(a<3?s(o):a>3?s(e,i,o):s(e,i))||o);return a>3&&o&&Object.defineProperty(e,i,o),o};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";const styling=css`
2
+ .switchMwcInputContainer {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ }
7
+ `;let KpiSettings=class extends AssetWidgetSettings{static get styles(){return[...super.styles,styling]}render(){return html`
8
+ <div>
9
+ <!-- Attribute selector -->
10
+ <settings-panel displayName="attributes" expanded="${!0}">
11
+ <attributes-panel .attributeRefs="${this.widgetConfig.attributeRefs}" onlyDataAttrs="${!1}" .attributeFilter="${t=>["positiveInteger","positiveNumber","number","long","integer","bigInteger","negativeInteger","negativeNumber","bigNumber","integerByte","direction"].includes(t.type)}" style="padding-bottom: 12px;"
12
+ @attribute-select="${t=>this.onAttributesSelect(t)}"
13
+ ></attributes-panel>
14
+ </settings-panel>
15
+
16
+ <!-- Display settings -->
17
+ <settings-panel displayName="display" expanded="${!0}">
18
+ <div style="display: flex; flex-direction: column; gap: 8px;">
19
+ <or-mwc-input .type="${InputType.SELECT}" style="width: 100%;"
20
+ .options="${["year","month","week","day","hour"]}"
21
+ .value="${this.widgetConfig.period}" label="${i18next.t("timeframe")}"
22
+ @or-mwc-input-changed="${t=>this.onTimeframeSelect(t)}"
23
+ ></or-mwc-input>
24
+ <div class="switchMwcInputContainer">
25
+ <span><or-translate value="dashboard.allowTimerangeSelect"></or-translate></span>
26
+ <or-mwc-input .type="${InputType.SWITCH}" style="margin: 0 -10px;" .value="${this.widgetConfig.showTimestampControls}"
27
+ @or-mwc-input-changed="${t=>this.onTimeframeToggle(t)}"
28
+ ></or-mwc-input>
29
+ </div>
30
+ </div>
31
+ </settings-panel>
32
+
33
+ <settings-panel displayName="values" expanded="${!0}">
34
+ <div style="display: flex; flex-direction: column; gap: 8px;">
35
+ <or-mwc-input .type="${InputType.SELECT}" style="width: 100%;" .options="${["absolute","percentage"]}" .value="${this.widgetConfig.deltaFormat}"
36
+ label="${i18next.t("dashboard.showValueAs")}"
37
+ @or-mwc-input-changed="${t=>this.onDeltaFormatSelect(t)}"
38
+ ></or-mwc-input>
39
+ <or-mwc-input .type="${InputType.NUMBER}" style="width: 100%;" .value="${this.widgetConfig.decimals}" label="${i18next.t("decimals")}"
40
+ @or-mwc-input-changed="${t=>this.onDecimalsChange(t)}"
41
+ ></or-mwc-input>
42
+ </div>
43
+ </settings-panel>
44
+
45
+ <!-- -->
46
+ </div>
47
+ `}onAttributesSelect(t){if(this.widgetConfig.attributeRefs=t.detail.attributeRefs,1===t.detail.attributeRefs.length){const e=t.detail.attributeRefs[0],i=t.detail.assets.find((t=>t.id===e.id));this.setDisplayName(i?`${i.name} - ${e.name}`:`${e.name}`)}this.notifyConfigUpdate()}onTimeframeSelect(t){this.widgetConfig.period=t.detail.value,this.notifyConfigUpdate()}onTimeframeToggle(t){this.widgetConfig.showTimestampControls=t.detail.value,this.notifyConfigUpdate()}onDeltaFormatSelect(t){this.widgetConfig.deltaFormat=t.detail.value,this.notifyConfigUpdate()}onDecimalsChange(t){this.widgetConfig.decimals=t.detail.value,this.notifyConfigUpdate()}};KpiSettings=__decorate([customElement("kpi-settings")],KpiSettings);export{KpiSettings};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kpi-settings.js","sourceRoot":"","sources":["../../src/settings/kpi-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { TemplateResult } from "lit";
2
+ import { AssetWidgetSettings } from "../util/or-asset-widget";
3
+ import { OrInputChangedEvent } from "@openremote/or-mwc-components/or-mwc-input";
4
+ import { MapWidgetConfig } from "../widgets/map-widget";
5
+ import "../panels/assettypes-panel";
6
+ import "../panels/thresholds-panel";
7
+ import { AssetTypeSelectEvent, AttributeNamesSelectEvent } from "../panels/assettypes-panel";
8
+ import { ThresholdChangeEvent } from "../panels/thresholds-panel";
9
+ export declare class MapSettings extends AssetWidgetSettings {
10
+ protected widgetConfig: MapWidgetConfig;
11
+ static get styles(): import("lit").CSSResult[];
12
+ protected render(): TemplateResult;
13
+ protected onZoomUpdate(ev: OrInputChangedEvent): void;
14
+ protected onCenterUpdate(ev: OrInputChangedEvent): void;
15
+ protected onGeoJsonToggle(ev: OrInputChangedEvent): void;
16
+ protected onAssetTypeSelect(ev: AssetTypeSelectEvent): void;
17
+ protected onAttributeNameSelect(ev: AttributeNamesSelectEvent): Promise<void>;
18
+ protected onShowLabelsToggle(ev: OrInputChangedEvent): void;
19
+ protected onShowUnitsToggle(ev: OrInputChangedEvent): void;
20
+ protected onThresholdsChange(ev: ThresholdChangeEvent): void;
21
+ }
@@ -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
+ }