@flowfuse/node-red-dashboard 1.16.1-ee4508a-202409161000.0 → 1.17.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.
Files changed (77) hide show
  1. package/dist/apple-touch-icon.png +0 -0
  2. package/dist/assets/Tableau10-B-NsZVaP.js +1 -0
  3. package/dist/assets/array-BKyUJesY.js +1 -0
  4. package/dist/assets/blockDiagram-9f4a6865-BY3wYgfY.js +118 -0
  5. package/dist/assets/c4Diagram-ae766693-B-AG7NIy.js +10 -0
  6. package/dist/assets/channel-C_v5mHlo.js +1 -0
  7. package/dist/assets/classDiagram-fb54d2a0-Cve0-MS1.js +2 -0
  8. package/dist/assets/classDiagram-v2-a2b738ad-DikSiPRc.js +2 -0
  9. package/dist/assets/clone-BXaIEimD.js +1 -0
  10. package/dist/assets/createText-ca0c5216-DvPZ4lSa.js +7 -0
  11. package/dist/assets/edges-066a5561-DMO7edq0.js +4 -0
  12. package/dist/assets/erDiagram-09d1c15f-C8g8w-fe.js +51 -0
  13. package/dist/assets/flowDb-c1833063-ByiZML3Q.js +10 -0
  14. package/dist/assets/flowDiagram-b222e15a-B7kVs9sh.js +4 -0
  15. package/dist/assets/flowDiagram-v2-13329dc7-BQ7oM3Wh.js +1 -0
  16. package/dist/assets/flowchart-elk-definition-ae0efee6-CAWlGS57.js +139 -0
  17. package/dist/assets/ganttDiagram-b62c793e-cVXtk4xr.js +257 -0
  18. package/dist/assets/gitGraphDiagram-942e62fe-ytnvaJ2O.js +70 -0
  19. package/dist/assets/graph-Bq9AO4pT.js +1 -0
  20. package/dist/assets/index--pBozGw-.js +245 -0
  21. package/dist/assets/index-01f381cb-CuQuHO3g.js +1 -0
  22. package/dist/assets/index-40_V--R5.css +13 -0
  23. package/dist/assets/infoDiagram-94cd232f-D3qHX83u.js +7 -0
  24. package/dist/assets/init-Gi6I4Gst.js +1 -0
  25. package/dist/assets/journeyDiagram-6625b456-DrDjeExJ.js +139 -0
  26. package/dist/assets/katex-CvgdMzdh.js +261 -0
  27. package/dist/assets/layout-dTROeK7M.js +1 -0
  28. package/dist/assets/line--V00syVo.js +1 -0
  29. package/dist/assets/linear-C2oDpuMJ.js +1 -0
  30. package/dist/assets/logo-DIAzbBuw.png +0 -0
  31. package/dist/assets/materialdesignicons-webfont-B7mPwVP_.ttf +0 -0
  32. package/dist/assets/materialdesignicons-webfont-CSr8KVlo.eot +0 -0
  33. package/dist/assets/materialdesignicons-webfont-Dp5v-WZN.woff2 +0 -0
  34. package/dist/assets/materialdesignicons-webfont-PXm3-2wK.woff +0 -0
  35. package/dist/assets/mindmap-definition-307c710a-CMUeraG8.js +110 -0
  36. package/dist/assets/ordinal-Cboi1Yqb.js +1 -0
  37. package/dist/assets/pieDiagram-bb1d19e5-P5mFu8pA.js +35 -0
  38. package/dist/assets/quadrantDiagram-c759a472-DRSID9uQ.js +7 -0
  39. package/dist/assets/requirementDiagram-87253d64-98AMKGz3.js +52 -0
  40. package/dist/assets/sankeyDiagram-707fac0f-c6m9e_oG.js +8 -0
  41. package/dist/assets/sequenceDiagram-6894f283-z-gVG6uq.js +122 -0
  42. package/dist/assets/stateDiagram-5dee940d-DWfP8BzL.js +1 -0
  43. package/dist/assets/stateDiagram-v2-1992cada-DBpwYzQS.js +1 -0
  44. package/dist/assets/styles-0784dbeb-DIb0daye.js +207 -0
  45. package/dist/assets/styles-483fbfea-DqDTwju_.js +116 -0
  46. package/dist/assets/styles-b83b31c9-CSuCi6iq.js +160 -0
  47. package/dist/assets/svgDrawCommon-5e1cfd1d-CDAD6QkU.js +1 -0
  48. package/dist/assets/timeline-definition-bf702344-Dv2jO1Md.js +61 -0
  49. package/dist/assets/workbox-window.prod.es5-D5gOYdM7.js +2 -0
  50. package/dist/assets/xychartDiagram-f11f50a6-CEl6xRTu.js +7 -0
  51. package/dist/favicon.ico +0 -0
  52. package/dist/favicon.svg +482 -0
  53. package/dist/index.html +22 -0
  54. package/dist/logo-512x512.png +0 -0
  55. package/dist/logo.svg +482 -0
  56. package/dist/manifest.webmanifest +1 -0
  57. package/dist/maskable-icon-512x512.png +0 -0
  58. package/dist/pwa-192x192.png +0 -0
  59. package/dist/pwa-512x512.png +0 -0
  60. package/dist/pwa-64x64.png +0 -0
  61. package/dist/sw.js +2 -0
  62. package/nodes/config/locales/en-US/ui_page.html +7 -0
  63. package/nodes/config/locales/en-US/ui_page.json +5 -0
  64. package/nodes/config/ui_page.html +260 -96
  65. package/nodes/config/ui_page.js +9 -0
  66. package/nodes/widgets/locales/en-US/ui_gauge.html +4 -2
  67. package/nodes/widgets/locales/en-US/ui_gauge.json +2 -1
  68. package/nodes/widgets/locales/en-US/ui_number_input.html +21 -10
  69. package/nodes/widgets/locales/en-US/ui_table.html +8 -3
  70. package/nodes/widgets/locales/en-US/ui_table.json +4 -1
  71. package/nodes/widgets/ui_gauge.html +251 -232
  72. package/nodes/widgets/ui_gauge.js +9 -2
  73. package/nodes/widgets/ui_number_input.html +21 -2
  74. package/nodes/widgets/ui_number_input.js +33 -0
  75. package/nodes/widgets/ui_table.html +13 -1
  76. package/nodes/widgets/ui_table.js +21 -3
  77. package/package.json +5 -4
@@ -86,7 +86,8 @@
86
86
  value: null
87
87
  },
88
88
  mobileBreakpoint: { value: 'sm' },
89
- mobileBreakpointType: { value: 'defaults' }
89
+ mobileBreakpointType: { value: 'defaults' },
90
+ action: { value: 'append' }
90
91
  },
91
92
  inputs: 1,
92
93
  outputs: 1,
@@ -102,6 +103,10 @@
102
103
  if (!validSelectionTypes.includes(this.selectionType)) {
103
104
  $('#node-input-selectionType').val('none')
104
105
  }
106
+ const validActionTypes = ['append', 'replace']
107
+ if (!validActionTypes.includes(this.action)) {
108
+ $('#node-input-action').val('append')
109
+ }
105
110
  // if this groups parent is a subflow template, set the node-config-input-width and node-config-input-height up
106
111
  // as typedInputs and hide the elementSizer (as it doesn't make sense for subflow templates)
107
112
  if (RED.nodes.subflow(this.z)) {
@@ -315,6 +320,13 @@
315
320
  <label for="node-input-maxrows"><i class="fa fa-tag"></i> <span data-i18n="ui-table.label.maxRows"></label>
316
321
  <input type="number" id="node-input-maxrows">
317
322
  </div>
323
+ <div class="form-row">
324
+ <label for="node-input-action" data-i18n="ui-table.label.action"></label></label>
325
+ <select id="node-input-action">
326
+ <option value="append" data-i18n="ui-table.label.append"></option>
327
+ <option value="replace" data-i18n="ui-table.label.replace"></option>
328
+ </select>
329
+ </div>
318
330
  <div class="form-row">
319
331
  <label for="node-input-mobileBreakpoint"><i class="fa fa-mobile"></i> <span data-i18n="ui-table.label.mobileBreakpoint"></label>
320
332
  <input type="text" id="node-input-mobileBreakpoint">
@@ -9,6 +9,7 @@ module.exports = function (RED) {
9
9
 
10
10
  // which group are we rendering this widget
11
11
  const group = RED.nodes.getNode(config.group)
12
+ const base = group.getBase() // Used for datastore
12
13
 
13
14
  config.maxrows = parseInt(config.maxrows) || 0
14
15
 
@@ -29,9 +30,26 @@ module.exports = function (RED) {
29
30
  group.register(node, config, {
30
31
  onAction: true,
31
32
  onInput: function (msg) {
32
- // store the latest msg passed to node
33
- datastore.save(group.getBase(), node, msg)
34
- // do nothing else - do not pass the message on
33
+ const existingData = datastore.get(node.id) || []
34
+ const formatPayload = (value) => {
35
+ if (value !== null && typeof value !== 'undefined') {
36
+ // push object into array if user sends object instead of array
37
+ if (typeof value === 'object' && !Array.isArray(value)) {
38
+ return [value]
39
+ }
40
+ }
41
+ return value
42
+ }
43
+ let payload = formatPayload(msg?.payload)
44
+ // check if the action is to append records
45
+ if (config.action === 'append') {
46
+ payload = payload && payload.length > 0 ? [...existingData.payload || [], ...payload || []] : payload
47
+ }
48
+
49
+ datastore.save(base, node, {
50
+ ...msg,
51
+ payload
52
+ })
35
53
  }
36
54
  })
37
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowfuse/node-red-dashboard",
3
- "version": "1.16.1-ee4508a-202409161000.0",
3
+ "version": "1.17.0",
4
4
  "description": "Dashboard 2.0 - A collection of Node-RED nodes that provide functionality to build your own UI applications (inc. forms, buttons, charts).",
5
5
  "keywords": [
6
6
  "node-red"
@@ -31,11 +31,11 @@
31
31
  ],
32
32
  "scripts": {
33
33
  "build": "vite build",
34
- "build:dev": "NODE_ENV=development npm run build",
34
+ "build:dev": "cross-env NODE_ENV=development vite build --mode development",
35
35
  "cy:open": "cypress open",
36
36
  "cy:run": "cypress run",
37
37
  "cy:server": "node-red -u ./cypress/fixtures/user-dir/ -p 1881",
38
- "dev": "NODE_ENV=development vite build --watch",
38
+ "dev": "cross-env NODE_ENV=development vite build --mode development --watch",
39
39
  "dev:prod": "vite build --watch",
40
40
  "docs:build": "vitepress build docs",
41
41
  "docs:dev": "vitepress dev docs",
@@ -69,6 +69,7 @@
69
69
  "@vite-pwa/assets-generator": "^0.2.4",
70
70
  "@vitejs/plugin-vue": "^5.0.4",
71
71
  "chart.js": "^4.4.0",
72
+ "cross-env": "^7.0.3",
72
73
  "cypress": "^13.12.0",
73
74
  "dompurify": "^3.0.5",
74
75
  "eslint": "^8.53.0",
@@ -89,7 +90,7 @@
89
90
  "medium-zoom": "^1.0.8",
90
91
  "mermaid": "^10.4.0",
91
92
  "mocha": "^10.2.0",
92
- "node-red": "^3.1.9",
93
+ "node-red": "^3.1.12",
93
94
  "node-red-node-test-helper": "^0.3.3",
94
95
  "npm-run-all": "^4.1.5",
95
96
  "sass": "^1.77.8",