123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- module.exports = function (RED) {
- /**
- *
- * @param {*} config
- */
- function UIThemeNode (config) {
- function hasProperty (obj, prop) {
- return !!Object.prototype.hasOwnProperty.call(obj, prop)
- }
-
- RED.nodes.createNode(this, config)
- const node = this
-
- const { id, name, type, _users, ...rest } = config
-
- const sizes = { ...rest.sizes }
-
- if (!hasProperty(sizes, 'pagePadding')) {
- // set defaults at runtime if not set - for backward compatability
- sizes.pagePadding = '12px'
- }
- if (!hasProperty(sizes, 'groupGap')) {
- // set defaults at runtime if not set - for backward compatability
- sizes.groupGap = '12px'
- }
- if (!hasProperty(sizes, 'groupBorderRadius')) {
- // set defaults at runtime if not set - for backward compatability
- sizes.groupBorderRadius = '4px'
- }
- if (!hasProperty(sizes, 'widgetGap')) {
- // set defaults at runtime if not set - for backward compatability
- sizes.widgetGap = '12px'
- }
-
- node.colors = { ...rest.colors }
- node.sizes = sizes
-
- let uiBase = null
- RED.nodes.eachNode(n => {
- if (n.type === 'ui-base' && !uiBase) {
- uiBase = n
- }
- })
- if (uiBase) {
- config.ui = uiBase.id
- uiBase = RED.nodes.getNode(config.ui)
- }
- uiBase?.registerTheme(node)
- }
- RED.nodes.registerType('ui-theme', UIThemeNode)
- }
|