123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const statestore = require('../store/state.js')
-
- module.exports = function (RED) {
- function TextNode (config) {
- const node = this
-
- RED.nodes.createNode(this, config)
-
- let style = ''
- if (config.style) {
- if (config.color) {
- style += `color: ${config.color};`
- }
- if (config.fontSize) {
- style += `font-size: ${config.fontSize}px;`
- style += `line-height: ${config.fontSize}px;`
- }
- if (config.font) {
- style += `font-family: ${config.font};`
- }
- config.style = style
- }
-
- const beforeSend = function (msg) {
- const updates = msg.ui_update
- if (updates) {
- if (typeof updates.label !== 'undefined') {
- // dynamically set "label" property
- statestore.set(group.getBase(), node, msg, 'label', updates.label)
- }
- if (typeof updates.layout !== 'undefined') {
- // dynamically set "label" property
- statestore.set(group.getBase(), node, msg, 'layout', updates.layout)
- }
- if (typeof updates.font !== 'undefined') {
- // dynamically set "label" property
- statestore.set(group.getBase(), node, msg, 'font', updates.font)
- }
- if (typeof updates.fontSize !== 'undefined') {
- // dynamically set "label" property
- statestore.set(group.getBase(), node, msg, 'fontSize', updates.fontSize)
- }
- if (typeof updates.color !== 'undefined') {
- // dynamically set "label" property
- statestore.set(group.getBase(), node, msg, 'color', updates.color)
- }
- }
- return msg
- }
-
- // which group are we rendering this widget
- const group = RED.nodes.getNode(config.group)
- // inform the dashboard UI that we are adding this node
- group.register(node, config, {
- beforeSend
- })
- }
-
- RED.nodes.registerType('ui-text', TextNode)
- }
|