| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | import { sortChildren } from '../utils/vnodes';export function ChildrenMixin(_parent, options) {  var _inject, _computed;  if (options === void 0) {    options = {};  }  var indexKey = options.indexKey || 'index';  return {    inject: (_inject = {}, _inject[_parent] = {      default: null    }, _inject),    computed: (_computed = {      parent: function parent() {        if (this.disableBindRelation) {          return null;        }        return this[_parent];      }    }, _computed[indexKey] = function () {      this.bindRelation();      if (this.parent) {        return this.parent.children.indexOf(this);      }      return null;    }, _computed),    watch: {      disableBindRelation: function disableBindRelation(val) {        if (!val) {          this.bindRelation();        }      }    },    mounted: function mounted() {      this.bindRelation();    },    beforeDestroy: function beforeDestroy() {      var _this = this;      if (this.parent) {        this.parent.children = this.parent.children.filter(function (item) {          return item !== _this;        });      }    },    methods: {      bindRelation: function bindRelation() {        if (!this.parent || this.parent.children.indexOf(this) !== -1) {          return;        }        var children = [].concat(this.parent.children, [this]);        sortChildren(children, this.parent);        this.parent.children = children;      }    }  };}export function ParentMixin(parent) {  return {    provide: function provide() {      var _ref;      return _ref = {}, _ref[parent] = this, _ref;    },    data: function data() {      return {        children: []      };    }  };}
 |