iobroker.vis-jsontemplate 4.4.5 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -11
- package/io-package.json +27 -27
- package/package.json +2 -2
- package/widgets/vis-jsontemplate/dist/jsontemplate-dist.js +119 -3
- package/widgets/vis-jsontemplate/dist/jsontemplate-dist.js.map +2 -2
- package/widgets/vis-jsontemplate/js/jsontemplate.js +110 -0
- package/widgets/vis-jsontemplate/myi18n/words.json +13 -0
- package/widgets/vis-jsontemplate.html +2 -2
- package/widgets/vis2vis-jsontemplate/assets/EJSAceEditor-D2dSaoYC.js +2416 -0
- package/widgets/vis2vis-jsontemplate/assets/JSONTemplateWidget-BxJj3J2G.js +80 -0
- package/widgets/vis2vis-jsontemplate/assets/hostInit--w_ScJeB.js +1 -1
- package/widgets/vis2vis-jsontemplate/assets/translations-BLfiYlPH.js +1 -0
- package/widgets/vis2vis-jsontemplate/assets/virtualExposes-D1kD3d-x.js +2 -0
- package/widgets/vis2vis-jsontemplate/customWidgets.js +1 -1
- package/widgets/vis2vis-jsontemplate/assets/JSONTemplateWidget-BeQ6HofR.js +0 -1450
- package/widgets/vis2vis-jsontemplate/assets/translations-BFlvqXQW.js +0 -1
- package/widgets/vis2vis-jsontemplate/assets/virtualExposes-ByMwN68X.js +0 -2
package/README.md
CHANGED
|
@@ -37,6 +37,7 @@ adapters in the near future.
|
|
|
37
37
|
- [Very Important Note for use in vis / vis-2](#very-important-note-for-use-in-vis--vis-2)
|
|
38
38
|
- [Curly braces in CSS and JSON](#curly-braces-in-css-and-json)
|
|
39
39
|
- [Use of setInterval](#use-of-setinterval)
|
|
40
|
+
- [Developing templates with AI](#developing-templates-with-ai)
|
|
40
41
|
- [Tags](#tags)
|
|
41
42
|
- [Example object](#example-object)
|
|
42
43
|
- [Development and Debugging](#development-and-debugging)
|
|
@@ -90,6 +91,7 @@ JSONTemplate now supports async calls with await.
|
|
|
90
91
|
| json_oid | Selection of the data point with the corresponding JSON data. |
|
|
91
92
|
| json_dpCount | Number of data points to be made available in the template. |
|
|
92
93
|
| json_dp | Datapoint ID to be made available. |
|
|
94
|
+
| json_dp_variable | Optional JavaScript variable name. The variable contains the datapoint ID; the same name with `_value` appended contains its current value. |
|
|
93
95
|
| json_scriptCount | Number of JavaScript URLs to be loaded |
|
|
94
96
|
| json_script[] | JavaScript URL to be loaded. See example below. |
|
|
95
97
|
| json_cssCount | Number of CSS URLs to be loaded. |
|
|
@@ -123,6 +125,15 @@ B) Indexnumber of the datapoint (the number always start with 0)
|
|
|
123
125
|
<%- dp[Object.keys(dp)[1]] %>
|
|
124
126
|
```
|
|
125
127
|
|
|
128
|
+
C) An optional variable name configured for the datapoint. For a datapoint
|
|
129
|
+
`0_userdata.0.selectwrite`, variable name `dpwrite`, and value `abc`:
|
|
130
|
+
|
|
131
|
+
```javascript
|
|
132
|
+
<%- dpwrite %> <!-- 0_userdata.0.selectwrite -->
|
|
133
|
+
<%- dpwrite_value %> <!-- abc -->
|
|
134
|
+
<%- dp[dpwrite] %> <!-- abc -->
|
|
135
|
+
```
|
|
136
|
+
|
|
126
137
|
Example output of data, widget and style in the template
|
|
127
138
|
|
|
128
139
|
```ejs
|
|
@@ -190,13 +201,13 @@ the vis widget will be overwritten with `undefined`.
|
|
|
190
201
|
##### Example
|
|
191
202
|
|
|
192
203
|
```text
|
|
193
|
-
|
|
204
|
+
#<%- widgetid %> { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
|
|
194
205
|
```
|
|
195
206
|
|
|
196
207
|
must be written as follows:
|
|
197
208
|
|
|
198
209
|
```text
|
|
199
|
-
|
|
210
|
+
#<%- widgetid %> {
|
|
200
211
|
height: 100%; display: flex; flex-direction: column; overflow: hidden;
|
|
201
212
|
}
|
|
202
213
|
```
|
|
@@ -211,6 +222,14 @@ can lead to unpredictable side effects. While reloading the page can resolve
|
|
|
211
222
|
this issue, the code should not be implemented in this manner.
|
|
212
223
|
As an alternative, such scenarios should be implemented using `setTimeout`.
|
|
213
224
|
|
|
225
|
+
#### Developing templates with AI
|
|
226
|
+
|
|
227
|
+
To simplify the process of creating templates for everyone,
|
|
228
|
+
I have prepared detailed documentation including prompts and descriptions:
|
|
229
|
+
|
|
230
|
+
- [English](documentation/AI-EN.md)
|
|
231
|
+
- [German](documentation/KI-DE.md)
|
|
232
|
+
|
|
214
233
|
## Tags
|
|
215
234
|
|
|
216
235
|
The template system works with certain tags.
|
|
@@ -401,6 +420,25 @@ Loop over the attributes of an object
|
|
|
401
420
|
Placeholder for the next version (at the beginning of the line):
|
|
402
421
|
### **WORK IN PROGRESS**
|
|
403
422
|
-->
|
|
423
|
+
### 4.6.0 (2026-07-30)
|
|
424
|
+
|
|
425
|
+
- some changes. see readme/below
|
|
426
|
+
|
|
427
|
+
#### Changes 2026-07-30
|
|
428
|
+
|
|
429
|
+
- add optional variable names to extra datapoints
|
|
430
|
+
|
|
431
|
+
### 4.5.0 (2026-07-29)
|
|
432
|
+
|
|
433
|
+
- some changes. see readme/below
|
|
434
|
+
|
|
435
|
+
#### Changes 2026-07-29
|
|
436
|
+
|
|
437
|
+
- repair widget rendering
|
|
438
|
+
- add search and fullscreen to ejs-edit for vis-2 widget
|
|
439
|
+
- improve ki documentation for regex expressions
|
|
440
|
+
- improve vis-2 ejs edit theme for dark mode
|
|
441
|
+
|
|
404
442
|
### 4.4.5 (2026-07-22)
|
|
405
443
|
|
|
406
444
|
- fix packages for vis-2
|
|
@@ -422,15 +460,6 @@ Loop over the attributes of an object
|
|
|
422
460
|
- revert repochecker warning about fs/node:fs and path/node:path
|
|
423
461
|
because of error loading ejs
|
|
424
462
|
|
|
425
|
-
### 4.4.2 (2026-04-13)
|
|
426
|
-
|
|
427
|
-
- fix runtime
|
|
428
|
-
|
|
429
|
-
### 4.4.1 (2026-04-13)
|
|
430
|
-
|
|
431
|
-
- fix regression
|
|
432
|
-
- update packages
|
|
433
|
-
|
|
434
463
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
435
464
|
|
|
436
465
|
## License
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "vis-jsontemplate",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.6.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"4.6.0": {
|
|
7
|
+
"en": "- some changes. see readme/below",
|
|
8
|
+
"de": "- einige änderungen. siehe readme/unten",
|
|
9
|
+
"ru": "- некоторые изменения. см. readme/low",
|
|
10
|
+
"pt": "- algumas mudanças. ver lerme/abaixo",
|
|
11
|
+
"nl": "- wat veranderingen. zie readme/onder",
|
|
12
|
+
"fr": "- quelques changements. voir lecture/ci-dessous",
|
|
13
|
+
"it": "- qualche cambiamento. vedi readme/below",
|
|
14
|
+
"es": "- algunos cambios. ver readme/below",
|
|
15
|
+
"pl": "- kilka zmian. patrz readme / poniżej",
|
|
16
|
+
"uk": "- деякі зміни. переглянути файл",
|
|
17
|
+
"zh-cn": "- 一些变化。 见readme/以下"
|
|
18
|
+
},
|
|
19
|
+
"4.5.0": {
|
|
20
|
+
"en": "- some changes. see readme/below\n\n#### Changes 2026-07-29\n\n- repair widget rendering\n- add search and fullscreen to ejs-edit for vis-2 widget\n- improve ki documentation for regex expressions\n- improve vis-2 ejs edit theme for dark mode",
|
|
21
|
+
"de": "- einige änderungen. siehe readme/unten\n\nÄnderungen 2026-07-29\n\n- reparatur widget rendering\n- hinzufügen von suche und vollbild zu ejs-edit für vis-2 widget\n- verbesserung der ki-dokumentation für regex-ausdrücke\n- verbesserung von vis-2 ejs edit theme für den dunklen modus",
|
|
22
|
+
"ru": "- некоторые изменения. см. readme/low\n\n#### Изменения 2026-07-29\n\n- реконструкция виджета\n- добавить поиск и полноэкранный редактор для виджета vis-2\n- улучшить документацию ки для выражений регекса\nулучшение темы редактирования vis-2 ejs в темном режиме",
|
|
23
|
+
"pt": "- algumas mudanças. ver lerme/abaixo\n\n### # Mudanças 2026-07-29\n\n- renderização de widget de reparação\n- adicionar pesquisa e tela cheia ao ejs-edit para widget vis-2\n- melhorar a documentação ki para expressões regex\n- melhorar o tema de edição vis-2 ejs para o modo escuro",
|
|
24
|
+
"nl": "- wat veranderingen. zie readme/onder\n\nVeranderingen 2026-07-29\n\n- repareren widget rendering\n- zoekopdracht en volledig scherm toevoegen aan ejs-edit voor vis-2 widget\n- verbetering van ki documentatie voor regex expressies\n- vis-2 ejs bewerken thema voor donkere modus",
|
|
25
|
+
"fr": "- quelques changements. voir lecture/ci-dessous\n\nChangements 2026-07-29\n\n- rendu de widget de réparation\n- ajouter recherche et plein écran à ejs-edit pour vis-2 widget\n- améliorer la documentation ki pour les expressions regex\n- améliorer le thème d'édition vis-2 ejs pour mode sombre",
|
|
26
|
+
"it": "- qualche cambiamento. vedi readme/below\n\n##### Changes 2026-07-29\n\n- riparazione widget rendering\n- aggiungere ricerca e schermo intero a ejs-edit per widget vis-2\n- migliorare la documentazione ki per le espressioni regex\n- migliorare il tema vis-2 ejs edit per la modalità dark",
|
|
27
|
+
"es": "- algunos cambios. ver readme/below\n\n### Cambios 2026-07-29\n\n- reparación de widget rendering\n- añadir búsqueda y pantalla completa a ejs-edit para vis-2 widget\n- mejorar la documentación de ki para expresiones regex\n- mejorar vis-2 ejs tema de edición para modo oscuro",
|
|
28
|
+
"pl": "- kilka zmian. patrz readme / poniżej\n\nZmiana 2026- 07- 29\n\n- renderowanie widżetu naprawy\n- dodaj wyszukiwanie i pełnoekranowy do ejs- edit dla vis-2 widget\n- ulepszenie dokumentacji ki dla wyrażeń regex\n- poprawić vis-2 ejs edycji tematu dla trybu ciemnego",
|
|
29
|
+
"uk": "- деякі зміни. переглянути файл\n\n##### Зміни 2026-07-29\n\n- відремонтування віджету\n- додати пошук і повноекранний до ejs-edit для віджету vis-2\n- покращувати ki документацію для виразів regex\n- поліпшуйте вік-2 ejs редагування теми для темного режиму",
|
|
30
|
+
"zh-cn": "- 一些变化。 见readme/以下\n\n* 变动 2026-07-29\n\n- 修理部件渲染\n- 在 ejs 编辑器中添加搜索和全屏,以显示相对于 2 部件\n- 改进用于regex表达式的 ki 文档\n- 改进对-2 ejs 为暗模式编辑主题"
|
|
31
|
+
},
|
|
6
32
|
"4.4.5": {
|
|
7
33
|
"en": "fix packages for vis-2",
|
|
8
34
|
"de": "Pakete für vis-2 korrigieren",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "naprawić regresję\naktualizacja pakietów",
|
|
68
94
|
"uk": "фіксація регресія\nоновлення пакетів",
|
|
69
95
|
"zh-cn": "修复回归\n更新软件包"
|
|
70
|
-
},
|
|
71
|
-
"4.4.0": {
|
|
72
|
-
"en": "- optimize lib size\n- The ability to load additional JavaScript and CSS files\n has been added (also for vis2).\n- Improve react components\n- align translation for vis2 widget",
|
|
73
|
-
"de": "- optimierung der lib-größe\n- Die Möglichkeit, zusätzliche JavaScript- und CSS-Dateien zu laden\nwurde hinzugefügt (auch für vis2).\n- Reaktionskomponenten verbessern\n- übersetzung ausrichten für vis2 widget",
|
|
74
|
-
"ru": "оптимизируйте размер lib\nВозможность загрузки дополнительных файлов JavaScript и CSS\nдобавлено (также для vis2).\nУлучшение компонентов реакции\nперевод для vis2 widget",
|
|
75
|
-
"pt": "- otimizar o tamanho da lib\n- A capacidade de carregar arquivos adicionais de JavaScript e CSS\nfoi adicionado (também para vis2).\n- Melhorar os componentes de reacção\n- alinhar a tradução para o widget vis2",
|
|
76
|
-
"nl": "- optimalisatie van de grootte van de lib\n- De mogelijkheid om extra JavaScript- en CSS-bestanden te laden\nis toegevoegd (ook voor vis2).\n- Verbeter reactiecomponenten\n- align vertaling voor vis2 widget",
|
|
77
|
-
"fr": "- optimiser la taille de la lib\n- La possibilité de charger des fichiers supplémentaires JavaScript et CSS\na été ajouté (également pour vis2).\n- Améliorer les composants de réaction\n- traduction alignée pour le widget vis2",
|
|
78
|
-
"it": "- ottimizza la dimensione lib\n- La capacità di caricare ulteriori file JavaScript e CSS\nè stato aggiunto (anche per vis2).\n- Migliorare i componenti reattivi\n- traduzione allineare per widget vis2",
|
|
79
|
-
"es": "- optimizar el tamaño de la lib\n- La capacidad de cargar archivos adicionales JavaScript y CSS\nse ha añadido (también para vis2).\n- Mejorar los componentes de reacción\n- traducción alineada para vis2 widget",
|
|
80
|
-
"pl": "- optymalizacja rozmiaru lib\n- Możliwość wczytania dodatkowych plików JavaScript i CSS\nzostał dodany (także dla vis2).\n- Poprawa składników reakcji\n- tłumaczenie wyrównawcze dla vis2 widget",
|
|
81
|
-
"uk": "- оптимізація розміру lib\n- Можливість завантаження додаткових файлів JavaScript та CSS\nдодано (також для vis2).\n- Покращити компоненти реакції\n- вирівняти переклад для віджету vis2",
|
|
82
|
-
"zh-cn": "- 优化自由体积\n- 装入额外的 JavaScript 和 CSS 文件的能力\n已添加(也用于对比2).\n- 改进反应组件\n- 对齐粘合元件的翻译"
|
|
83
|
-
},
|
|
84
|
-
"4.3.11": {
|
|
85
|
-
"en": "check test release workflow",
|
|
86
|
-
"de": "testfreigabe workflow",
|
|
87
|
-
"ru": "проверка рабочего процесса выпуска",
|
|
88
|
-
"pt": "verificar o fluxo de trabalho de lançamento do teste",
|
|
89
|
-
"nl": "test-ontgrendelingsworkflow controleren",
|
|
90
|
-
"fr": "vérifier le déroulement du test de libération",
|
|
91
|
-
"it": "controllo del flusso di lavoro di rilascio del test",
|
|
92
|
-
"es": "check test de liberación flujo de trabajo",
|
|
93
|
-
"pl": "sprawdzić przepływ pracy uwalniania próby",
|
|
94
|
-
"uk": "контрольний процес тестування",
|
|
95
|
-
"zh-cn": "检查测试发布工作流程"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.vis-jsontemplate",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.6.0",
|
|
4
4
|
"description": "vis-jsontemplate",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "oweitman",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@iobroker/build-tools": "^3.0.1",
|
|
32
32
|
"@iobroker/vis-2-widgets-react-dev": "^4.0.4",
|
|
33
33
|
"@iobroker/vis-2-widgets-testing": "^1.0.6",
|
|
34
|
-
"@types/node": "^25.9.
|
|
34
|
+
"@types/node": "^25.9.5"
|
|
35
35
|
},
|
|
36
36
|
"main": "widgets/vis2jsontemplate/customWidgets.js",
|
|
37
37
|
"files": [
|
|
@@ -1,10 +1,27 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
var __create = Object.create;
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
5
7
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
9
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
8
25
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
9
26
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
10
27
|
}) : x)(function(x) {
|
|
@@ -58,7 +75,7 @@
|
|
|
58
75
|
var version;
|
|
59
76
|
var init_package = __esm({
|
|
60
77
|
"../package.json"() {
|
|
61
|
-
version = "4.
|
|
78
|
+
version = "4.6.0";
|
|
62
79
|
}
|
|
63
80
|
});
|
|
64
81
|
|
|
@@ -71,6 +88,104 @@
|
|
|
71
88
|
const i18n = yield res.json();
|
|
72
89
|
$.extend(true, systemDictionary, i18n);
|
|
73
90
|
}));
|
|
91
|
+
var EJS_CONTEXT_NAMES = /* @__PURE__ */ new Set(["widgetid", "widgetID", "data", "dp", "style", "widget", "I18n"]);
|
|
92
|
+
var RESERVED_WORDS = /* @__PURE__ */ new Set([
|
|
93
|
+
"await",
|
|
94
|
+
"break",
|
|
95
|
+
"case",
|
|
96
|
+
"catch",
|
|
97
|
+
"class",
|
|
98
|
+
"const",
|
|
99
|
+
"continue",
|
|
100
|
+
"debugger",
|
|
101
|
+
"default",
|
|
102
|
+
"delete",
|
|
103
|
+
"do",
|
|
104
|
+
"else",
|
|
105
|
+
"enum",
|
|
106
|
+
"export",
|
|
107
|
+
"extends",
|
|
108
|
+
"false",
|
|
109
|
+
"finally",
|
|
110
|
+
"for",
|
|
111
|
+
"function",
|
|
112
|
+
"if",
|
|
113
|
+
"implements",
|
|
114
|
+
"import",
|
|
115
|
+
"in",
|
|
116
|
+
"instanceof",
|
|
117
|
+
"interface",
|
|
118
|
+
"let",
|
|
119
|
+
"new",
|
|
120
|
+
"null",
|
|
121
|
+
"package",
|
|
122
|
+
"private",
|
|
123
|
+
"protected",
|
|
124
|
+
"public",
|
|
125
|
+
"return",
|
|
126
|
+
"static",
|
|
127
|
+
"super",
|
|
128
|
+
"switch",
|
|
129
|
+
"this",
|
|
130
|
+
"throw",
|
|
131
|
+
"true",
|
|
132
|
+
"try",
|
|
133
|
+
"typeof",
|
|
134
|
+
"var",
|
|
135
|
+
"void",
|
|
136
|
+
"while",
|
|
137
|
+
"with",
|
|
138
|
+
"yield"
|
|
139
|
+
]);
|
|
140
|
+
function isValidJavaScriptIdentifier(value) {
|
|
141
|
+
if (typeof value !== "string" || !value) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
return /^[$_\p{ID_Start}][$\u200C\u200D_\p{ID_Continue}]*$/u.test(value) && !RESERVED_WORDS.has(value);
|
|
145
|
+
}
|
|
146
|
+
function getDatapointVariableName(data, index) {
|
|
147
|
+
var _a, _b;
|
|
148
|
+
const value = (_b = (_a = data == null ? void 0 : data[`json_dp_variable${index}`]) != null ? _a : data == null ? void 0 : data[`json_dp_variable-${index}`]) != null ? _b : "";
|
|
149
|
+
return typeof value === "string" ? value.trim() : "";
|
|
150
|
+
}
|
|
151
|
+
function buildDatapointVariables(data, dpCount) {
|
|
152
|
+
const variables = {};
|
|
153
|
+
const usedNames = /* @__PURE__ */ new Set();
|
|
154
|
+
for (let i = 1; i <= dpCount; i++) {
|
|
155
|
+
const name = getDatapointVariableName(data, i);
|
|
156
|
+
if (!name) {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (!isValidJavaScriptIdentifier(name)) {
|
|
160
|
+
throw new Error(`Invalid JavaScript variable name: ${name}`);
|
|
161
|
+
}
|
|
162
|
+
const valueName = `${name}_value`;
|
|
163
|
+
if (EJS_CONTEXT_NAMES.has(name) || EJS_CONTEXT_NAMES.has(valueName)) {
|
|
164
|
+
throw new Error(`Variable name is already used by the template context: ${name}`);
|
|
165
|
+
}
|
|
166
|
+
if (usedNames.has(name) || usedNames.has(valueName)) {
|
|
167
|
+
throw new Error(`Variable name is used more than once: ${name}`);
|
|
168
|
+
}
|
|
169
|
+
usedNames.add(name);
|
|
170
|
+
usedNames.add(valueName);
|
|
171
|
+
const oid = data[`json_dp${i}`];
|
|
172
|
+
if (oid) {
|
|
173
|
+
Object.defineProperty(variables, name, {
|
|
174
|
+
value: oid,
|
|
175
|
+
enumerable: true,
|
|
176
|
+
configurable: true,
|
|
177
|
+
writable: true
|
|
178
|
+
});
|
|
179
|
+
Object.defineProperty(variables, valueName, {
|
|
180
|
+
value: vis.states.attr(`${oid}.val`),
|
|
181
|
+
enumerable: true,
|
|
182
|
+
configurable: true,
|
|
183
|
+
writable: true
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return variables;
|
|
188
|
+
}
|
|
74
189
|
vis.binds["jsontemplate"] = {
|
|
75
190
|
version,
|
|
76
191
|
_assetCache: vis.binds["jsontemplate"] && vis.binds["jsontemplate"]._assetCache || /* @__PURE__ */ new Map(),
|
|
@@ -215,16 +330,17 @@
|
|
|
215
330
|
}
|
|
216
331
|
let text = "";
|
|
217
332
|
try {
|
|
333
|
+
const datapointVariables = buildDatapointVariables(data, dpCount);
|
|
218
334
|
text = yield ejs.render(
|
|
219
335
|
template,
|
|
220
|
-
{
|
|
336
|
+
__spreadProps(__spreadValues({}, datapointVariables), {
|
|
221
337
|
widgetID,
|
|
222
338
|
widgetid: widgetID,
|
|
223
339
|
data: oiddata,
|
|
224
340
|
dp: datapoints,
|
|
225
341
|
widget: data,
|
|
226
342
|
style
|
|
227
|
-
},
|
|
343
|
+
}),
|
|
228
344
|
{ async: true }
|
|
229
345
|
);
|
|
230
346
|
} catch (e) {
|