{"version":3,"file":"slx.nodebar.min.js","sources":["dist/js/slx.nodebar.js"],"sourcesContent":["/**\r\n * SlxControls 1.2.36 ({@link https://www.selerix.com})\r\n * This is unpublished proprietary source code of Selerix Systems, Inc. The\r\n * copyright notice above is not evidence any actual or intended\r\n * publication of such source code.\r\n * @copyright Copyright 2024 Selerix Systems, Inc. All Rights Reserved.\r\n */\r\n(function (global) {\r\n\t'use strict';\r\n\tvar x = global.SlxControl;\r\n\r\n\t/*\r\n\t * slx.nodeBar\r\n\t * Dependencies: slx.core, slx.progressBar\r\n\t */\r\n\tx.slx.nodeBar = function (elem) {\r\n\t\tvar that = this;\r\n\t\t// add progess data prop and settings defaults\r\n\t\tvar el = elem;\r\n\t\tel.data('success', el.data('success') || 0);\r\n\t\tel.data('value', el.data('value') || 0);\r\n\t\tel.data('active', true);\r\n\t\tel.data('warning', el.data('warning') || 0);\r\n\t\tel.data('danger', el.data('danger') || 0);\r\n\t\tthat.progressOrder = ['success', 'default', 'warning', 'danger'];\r\n\t\tthat.overlays = false;\r\n\r\n\t\tx.slx.progressBar.apply(that, arguments);\r\n\r\n\t\t// reference current element\r\n\t\tel = that._element;\r\n\t\tif (el === void 0) { return this; }\r\n\t\telse if (el.length === 0) { return el; }\r\n\r\n\t\tthat.nodesContainer = el.children('.slx-nodebar-nodes');\r\n\r\n\t\t// slx node class\r\n\t\tvar SlxNode = function (nd, index) {\r\n\t\t\tvar n = nd || {};\r\n\r\n\t\t\t// instance properties\r\n\t\t\tvar self = this;\r\n\t\t\tself._element = null;\r\n\t\t\tself._index = index !== void 0 ? index : typeof (that.nodes) === 'function' ? that.nodes().length : that.nodes.length;\r\n\t\t\tself.title = null;\r\n\t\t\tself.url = null;\r\n\t\t\tself.theme = 'default';\r\n\t\t\tself.active = false;\r\n\t\t\tself.disabled = false;\r\n\t\t\tself.onClick = null;\r\n\r\n\t\t\t// local vars\r\n\t\t\tvar _nodes = [], tempNodes = n.nodes;\r\n\t\t\tdelete n.nodes;\r\n\r\n\t\t\t// build nodes array\r\n\t\t\tif (Array.isArray(tempNodes)) {\r\n\t\t\t\tfor (var i = 0; i < tempNodes.length; i++) {\r\n\t\t\t\t\t_nodes.push(new SlxNode(tempNodes[i], i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// merge settings\r\n\t\t\tx.extend(self, n);\r\n\r\n\t\t\tif (self.onClick !== null && typeof (self.onClick) !== 'function') { self.onClick = new Function(self.onClick); }\r\n\r\n\t\t\t// add node\r\n\t\t\tself.add = function (n1, doRefresh) {\r\n\t\t\t\tvar node = n1 instanceof SlxNode ? n1 : new SlxNode(n1);\r\n\t\t\t\tnode._index = _nodes.length;\r\n\t\t\t\t_nodes.push(node);\r\n\r\n\t\t\t\t// add child node\r\n\t\t\t\tif (self._element === null) { return; }\r\n\t\t\t\tvar c = self._element.children('.slx-nodebar-nodes');\r\n\t\t\t\tif (c.length === 0) { self._element.append(c = x('
').addClass('slx-nodebar-nodes')); }\r\n\r\n\t\t\t\t// add to DOM and refresh\r\n\t\t\t\t_addToDOM(node, c);\r\n\t\t\t\tif (doRefresh === void 0 || doRefresh) { _refreshNodes(c); }\r\n\t\t\t};\r\n\r\n\t\t\t// get all nodes or node by index\r\n\t\t\tself.nodes = function (i) {\r\n\t\t\t\tif (i === void 0) { return _nodes; }\r\n\t\t\t\tif (typeof (i) === 'number') {\r\n\t\t\t\t\t// get by index\r\n\t\t\t\t\tif (_nodes.length <= i) { return null; }\r\n\t\t\t\t\treturn _nodes[i];\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// get all nodes\r\n\t\t\t\t\tif (i !== null) {\r\n\t\t\t\t\t\tif (Array.isArray(i)) { for (var j = 0; j < i.length; j++) { self.add(i[j]); } }\r\n\t\t\t\t\t\telse { self.add({}).add(i); }\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn _nodes;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t// nodes array\r\n\t\tvar _nodes = [];\r\n\t\tif (Array.isArray(that.nodes)) {\r\n\t\t\tfor (var i = 0; i < that.nodes.length; i++) {\r\n\t\t\t\t_nodes.push(new SlxNode(that.nodes[i]));\r\n\t\t\t}\r\n\t\t}\r\n\t\tdelete that.nodes;\r\n\r\n\t\t// add node to DOM handler\r\n\t\tvar _addToDOM = function (n, c) {\r\n\t\t\tn._element = x('
').addClass('slx-nodebar-node').attr('data-theme', n.theme);\r\n\t\t\tvar btn = x('