12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- "use strict";
- exports.__esModule = true;
- exports.CloseOnPopstateMixin = void 0;
- var _event = require("../utils/dom/event");
- var _bindEvent = require("./bind-event");
- var CloseOnPopstateMixin = {
- mixins: [(0, _bindEvent.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 ? _event.on : _event.off;
- action(window, 'popstate', this.onPopstate);
- }
- }
- }
- };
- exports.CloseOnPopstateMixin = CloseOnPopstateMixin;
|