| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });var relation_1 = require("../common/relation");var component_1 = require("../common/component");(0, component_1.VantComponent)({    classes: ['item-title-class'],    field: true,    relation: (0, relation_1.useParent)('dropdown-menu', function () {        this.updateDataFromParent();    }),    props: {        value: {            type: null,            observer: 'rerender',        },        title: {            type: String,            observer: 'rerender',        },        disabled: Boolean,        titleClass: {            type: String,            observer: 'rerender',        },        options: {            type: Array,            value: [],            observer: 'rerender',        },        popupStyle: String,        useBeforeToggle: {            type: Boolean,            value: false,        },        rootPortal: {            type: Boolean,            value: false,        },    },    data: {        transition: true,        showPopup: false,        showWrapper: false,        displayTitle: '',        safeAreaTabBar: false,    },    methods: {        rerender: function () {            var _this = this;            wx.nextTick(function () {                var _a;                (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateItemListData();            });        },        updateDataFromParent: function () {            if (this.parent) {                var _a = this.parent.data, overlay = _a.overlay, duration = _a.duration, activeColor = _a.activeColor, closeOnClickOverlay = _a.closeOnClickOverlay, direction = _a.direction, safeAreaTabBar = _a.safeAreaTabBar;                this.setData({                    overlay: overlay,                    duration: duration,                    activeColor: activeColor,                    closeOnClickOverlay: closeOnClickOverlay,                    direction: direction,                    safeAreaTabBar: safeAreaTabBar,                });            }        },        onOpen: function () {            this.$emit('open');        },        onOpened: function () {            this.$emit('opened');        },        onClose: function () {            this.$emit('close');        },        onClosed: function () {            this.$emit('closed');            this.setData({ showWrapper: false });        },        onOptionTap: function (event) {            var option = event.currentTarget.dataset.option;            var value = option.value;            var shouldEmitChange = this.data.value !== value;            this.setData({ showPopup: false, value: value });            this.$emit('close');            this.rerender();            if (shouldEmitChange) {                this.$emit('change', value);            }        },        toggle: function (show, options) {            var _this = this;            if (options === void 0) { options = {}; }            var showPopup = this.data.showPopup;            if (typeof show !== 'boolean') {                show = !showPopup;            }            if (show === showPopup) {                return;            }            this.onBeforeToggle(show).then(function (status) {                var _a;                if (!status) {                    return;                }                _this.setData({                    transition: !options.immediate,                    showPopup: show,                });                if (show) {                    (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.getChildWrapperStyle().then(function (wrapperStyle) {                        _this.setData({ wrapperStyle: wrapperStyle, showWrapper: true });                        _this.rerender();                    });                }                else {                    _this.rerender();                }            });        },        onBeforeToggle: function (status) {            var _this = this;            var useBeforeToggle = this.data.useBeforeToggle;            if (!useBeforeToggle) {                return Promise.resolve(true);            }            return new Promise(function (resolve) {                _this.$emit('before-toggle', {                    status: status,                    callback: function (value) { return resolve(value); },                });            });        },    },});
 |