"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var React = _interopRequireWildcard(require("react"));

var _GraphinContext = _interopRequireDefault(require("../GraphinContext"));

var _useBehaviorHook = _interopRequireDefault(require("./useBehaviorHook"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

var __rest = void 0 && (void 0).__rest || function (s, e) {
  var t = {};

  for (var p in s) {
    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  }

  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  }
  return t;
};

var defaultConfig = {
  /** 收起和展开树图的方式，支持 'click' 和 'dblclick' 两种方式。默认为 'click'，即单击； */
  trigger: 'click'
};

var TreeCollapse = function TreeCollapse(props) {
  var onChange = props.onChange,
      otherCofnig = __rest(props, ["onChange"]);

  var _React$useContext = React.useContext(_GraphinContext.default),
      graph = _React$useContext.graph;
  /** 通用注册逻辑 */


  (0, _useBehaviorHook.default)({
    defaultConfig: defaultConfig,
    userProps: otherCofnig,
    type: 'collapse-expand'
  });
  React.useEffect(function () {
    var handleChange = function handleChange(e) {
      var item = e.item,
          collapsed = e.collapsed;
      var model = item.get('model');
      model.collapsed = collapsed;

      if (onChange) {
        onChange(item, collapsed); // callback
      }
    };

    graph.on('itemcollapsed', handleChange);
    return function () {
      graph.off('itemcollapsed', handleChange);
    };
  }, []);
  return null;
};

var _default = TreeCollapse;
exports.default = _default;