devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
66 lines (62 loc) • 2.04 kB
JavaScript
/**
* DevExtreme (cjs/viz/tree_map/node.js)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
exports.default = void 0;
var _extend2 = require("../../core/utils/extend");
function Node() {}
const updateTile = [updateLeaf, updateGroup];
(0, _extend2.extend)(Node.prototype, {
value: 0,
isNode: function() {
return !!(this.nodes && this.level < this.ctx.maxLevel)
},
isActive: function() {
const ctx = this.ctx;
return this.level >= ctx.minLevel && this.level <= ctx.maxLevel
},
updateStyles: function() {
const isNode = Number(this.isNode());
this.state = this._buildState(this.ctx.settings[isNode].state, !isNode && this.color && {
fill: this.color
})
},
_buildState: function(state, extra) {
const base = (0, _extend2.extend)({}, state);
return extra ? (0, _extend2.extend)(base, extra) : base
},
updateLabelStyle: function() {
const settings = this.ctx.settings[Number(this.isNode())];
this.labelState = settings.labelState;
this.labelParams = settings.labelParams
},
_getState: function() {
return this.state
},
applyState: function() {
updateTile[Number(this.isNode())](this.tile, this._getState())
}
});
function updateLeaf(content, attrs) {
content.smartAttr(attrs)
}
function updateGroup(content, attrs) {
content.outer.attr({
stroke: attrs.stroke,
"stroke-width": attrs["stroke-width"],
"stroke-opacity": attrs["stroke-opacity"]
});
content.inner.smartAttr({
fill: attrs.fill,
opacity: attrs.opacity,
hatching: attrs.hatching
})
}
var _default = exports.default = Node;
module.exports = exports.default;
module.exports.default = exports.default;