123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- module.exports = function (RED) {
- /**
- *
- * @param {*} config
- */
- function UIGroupNode (config) {
- RED.nodes.createNode(this, config)
- const node = this
-
- const page = RED.nodes.getNode(config.page)
-
- if (!('showTitle' in config)) {
- // migration backwards compatibility
- // we now use showTitle, not disp, but older flows still may have disp
- config.showTitle = config.disp || true
- }
-
- // register self
- page.getBase().register(null, config)
-
- node.on('close', function (removed, done) {
- node.deregister() // deregister self
- done()
- })
-
- /**
- * Function for widgets to register themselves with this page
- * Calls the parent UI Base "register" function and registers this page,
- * along with the widget
- * @param {*} widget
- */
- node.register = function (widgetNode, widgetConfig, widgetEvents) {
- const group = config
- page.register(group, widgetNode, widgetConfig, widgetEvents)
- }
-
- node.deregister = function (widgetNode) {
- const group = config
- page.deregister(group, widgetNode)
- }
-
- // Return the UI Base Node this group lives in
- node.getBase = function () {
- return RED.nodes.getNode(config.page).getBase()
- }
- }
- RED.nodes.registerType('ui-group', UIGroupNode)
- }
|