| 1234567891011121314151617181920212223242526272829303132333435363738 | import { on, off } from '../utils/dom/event';import { BindEventMixin } from './bind-event';export var CloseOnPopstateMixin = {  mixins: [BindEventMixin(function (bind, isBind) {    this.handlePopstate(isBind && this.closeOnPopstate);  })],  props: {    closeOnPopstate: Boolean  },  data: function data() {    return {      bindStatus: false    };  },  watch: {    closeOnPopstate: function closeOnPopstate(val) {      this.handlePopstate(val);    }  },  methods: {    onPopstate: function onPopstate() {      this.close();      this.shouldReopen = false;    },    handlePopstate: function handlePopstate(bind) {      /* istanbul ignore if */      if (this.$isServer) {        return;      }      if (this.bindStatus !== bind) {        this.bindStatus = bind;        var action = bind ? on : off;        action(window, 'popstate', this.onPopstate);      }    }  }};
 |