_initEvents()

in static/js/com/nav-tree/index.js [25:53]


  _initEvents() {
    $(this.elem.querySelectorAll('.js-item-title')).on('click', (e) => {
      const elem = e.currentTarget,
        branchElem = e.currentTarget.parentNode,
        $branch = $(branchElem),
        itemId = $branch.attr('data-id'),
        isActive = $(elem).hasClass('is_active'),
        isLeaf = $branch.hasClass('js-leaf');

      if (isLeaf) {
        this._selectLeaf(elem, e);
        return;
      }

      if (isActive) {
        this._closeBranch(elem, e);
      }
      else {
        this._openBranch(elem, e);
      }

      if (itemId) {
        let states = this.getItemsStateInfo();
        states = states === null ? {} : states;
        states[itemId] = !isActive;
        this.setItemsStateInfo(states);
      }
    });
  };