| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });var component_1 = require("../common/component");var touch_1 = require("../mixins/touch");var utils_1 = require("../common/utils");var THRESHOLD = 0.3;var ARRAY = [];(0, component_1.VantComponent)({    props: {        disabled: Boolean,        leftWidth: {            type: Number,            value: 0,            observer: function (leftWidth) {                if (leftWidth === void 0) { leftWidth = 0; }                if (this.offset > 0) {                    this.swipeMove(leftWidth);                }            },        },        rightWidth: {            type: Number,            value: 0,            observer: function (rightWidth) {                if (rightWidth === void 0) { rightWidth = 0; }                if (this.offset < 0) {                    this.swipeMove(-rightWidth);                }            },        },        asyncClose: Boolean,        name: {            type: null,            value: '',        },    },    mixins: [touch_1.touch],    data: {        catchMove: false,        wrapperStyle: '',    },    created: function () {        this.offset = 0;        ARRAY.push(this);    },    destroyed: function () {        var _this = this;        ARRAY = ARRAY.filter(function (item) { return item !== _this; });    },    methods: {        open: function (position) {            var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;            var offset = position === 'left' ? leftWidth : -rightWidth;            this.swipeMove(offset);            this.$emit('open', {                position: position,                name: this.data.name,            });        },        close: function () {            this.swipeMove(0);        },        swipeMove: function (offset) {            if (offset === void 0) { offset = 0; }            this.offset = (0, utils_1.range)(offset, -this.data.rightWidth, this.data.leftWidth);            var transform = "translate3d(".concat(this.offset, "px, 0, 0)");            var transition = this.dragging                ? 'none'                : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)';            this.setData({                wrapperStyle: "\n        -webkit-transform: ".concat(transform, ";\n        -webkit-transition: ").concat(transition, ";\n        transform: ").concat(transform, ";\n        transition: ").concat(transition, ";\n      "),            });        },        swipeLeaveTransition: function () {            var _a = this.data, leftWidth = _a.leftWidth, rightWidth = _a.rightWidth;            var offset = this.offset;            if (rightWidth > 0 && -offset > rightWidth * THRESHOLD) {                this.open('right');            }            else if (leftWidth > 0 && offset > leftWidth * THRESHOLD) {                this.open('left');            }            else {                this.swipeMove(0);            }            this.setData({ catchMove: false });        },        startDrag: function (event) {            if (this.data.disabled) {                return;            }            this.startOffset = this.offset;            this.touchStart(event);        },        noop: function () { },        onDrag: function (event) {            var _this = this;            if (this.data.disabled) {                return;            }            this.touchMove(event);            if (this.direction !== 'horizontal') {                return;            }            this.dragging = true;            ARRAY.filter(function (item) { return item !== _this && item.offset !== 0; }).forEach(function (item) { return item.close(); });            this.setData({ catchMove: true });            this.swipeMove(this.startOffset + this.deltaX);        },        endDrag: function () {            if (this.data.disabled) {                return;            }            this.dragging = false;            this.swipeLeaveTransition();        },        onClick: function (event) {            var _a = event.currentTarget.dataset.key, position = _a === void 0 ? 'outside' : _a;            this.$emit('click', position);            if (!this.offset) {                return;            }            if (this.data.asyncClose) {                this.$emit('close', {                    position: position,                    instance: this,                    name: this.data.name,                });            }            else {                this.swipeMove(0);            }        },    },});
 |