| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 'use strict';Object.defineProperty(exports, '__esModule', { value: true });var component_1 = require('../common/component');var relation_1 = require('../common/relation');var utils_1 = require('../common/utils');var ARRAY = [];component_1.VantComponent({  field: true,  relation: relation_1.useChildren('dropdown-item', function () {    this.updateItemListData();  }),  props: {    activeColor: {      type: String,      observer: 'updateChildrenData',    },    overlay: {      type: Boolean,      value: true,      observer: 'updateChildrenData',    },    zIndex: {      type: Number,      value: 10,    },    duration: {      type: Number,      value: 200,      observer: 'updateChildrenData',    },    direction: {      type: String,      value: 'down',      observer: 'updateChildrenData',    },    closeOnClickOverlay: {      type: Boolean,      value: true,      observer: 'updateChildrenData',    },    closeOnClickOutside: {      type: Boolean,      value: true,    },  },  data: {    itemListData: [],  },  beforeCreate: function () {    var windowHeight = utils_1.getSystemInfoSync().windowHeight;    this.windowHeight = windowHeight;    ARRAY.push(this);  },  destroyed: function () {    var _this = this;    ARRAY = ARRAY.filter(function (item) {      return item !== _this;    });  },  methods: {    updateItemListData: function () {      this.setData({        itemListData: this.children.map(function (child) {          return child.data;        }),      });    },    updateChildrenData: function () {      this.children.forEach(function (child) {        child.updateDataFromParent();      });    },    toggleItem: function (active) {      this.children.forEach(function (item, index) {        var showPopup = item.data.showPopup;        if (index === active) {          item.toggle();        } else if (showPopup) {          item.toggle(false, { immediate: true });        }      });    },    close: function () {      this.children.forEach(function (child) {        child.toggle(false, { immediate: true });      });    },    getChildWrapperStyle: function () {      var _this = this;      var _a = this.data,        zIndex = _a.zIndex,        direction = _a.direction;      return utils_1.getRect(this, '.van-dropdown-menu').then(function (rect) {        var _a = rect.top,          top = _a === void 0 ? 0 : _a,          _b = rect.bottom,          bottom = _b === void 0 ? 0 : _b;        var offset = direction === 'down' ? bottom : _this.windowHeight - top;        var wrapperStyle = 'z-index: ' + zIndex + ';';        if (direction === 'down') {          wrapperStyle += 'top: ' + utils_1.addUnit(offset) + ';';        } else {          wrapperStyle += 'bottom: ' + utils_1.addUnit(offset) + ';';        }        return wrapperStyle;      });    },    onTitleTap: function (event) {      var _this = this;      var index = event.currentTarget.dataset.index;      var child = this.children[index];      if (!child.data.disabled) {        ARRAY.forEach(function (menuItem) {          if (            menuItem &&            menuItem.data.closeOnClickOutside &&            menuItem !== _this          ) {            menuItem.close();          }        });        this.toggleItem(index);      }    },  },});
 |