states.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * DevExtreme (viz/tree_map/states.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var proto = require("./tree_map.base").prototype;
  11. var nodeProto = require("./node").prototype;
  12. var handlers = proto._handlers;
  13. var _calculateState = handlers.calculateState;
  14. var _buildState = nodeProto._buildState;
  15. var _extend = require("../../core/utils/extend").extend;
  16. handlers.calculateState = function(options) {
  17. var states = {
  18. 0: _calculateState(options)
  19. };
  20. handlers.calculateAdditionalStates(states, options);
  21. return states
  22. };
  23. handlers.calculateAdditionalStates = require("../../core/utils/common").noop;
  24. nodeProto.code = 0;
  25. nodeProto.statesMap = {
  26. 0: 0
  27. };
  28. nodeProto.additionalStates = [];
  29. nodeProto._buildState = function(state, extra) {
  30. var states = {
  31. 0: _buildState(state[0], extra)
  32. };
  33. if (this.additionalStates.length) {
  34. buildAdditionalStates(states, states[0], state, this.additionalStates)
  35. }
  36. return states
  37. };
  38. nodeProto._getState = function() {
  39. return this.state[this.statesMap[this.code]]
  40. };
  41. nodeProto.setState = function(code, state) {
  42. if (state) {
  43. this.code |= code
  44. } else {
  45. this.code &= ~code
  46. }
  47. this.ctx.change(["TILES"])
  48. };
  49. function buildAdditionalStates(states, base, source, list) {
  50. var i;
  51. var ii = list.length;
  52. for (i = 0; i < ii; ++i) {
  53. states[list[i]] = _extend({}, base, source[list[i]])
  54. }
  55. }