UNPKG

nuxt-ssr-screen-size

Version:

Get easy and reactive access to the width and height of your screen.

76 lines (66 loc) 2.74 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) : typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) : (factory((global.NuxtSSRScreenSize = {}),global.Vue)); }(this, (function (exports,Vue) { 'use strict'; Vue = Vue && Vue.hasOwnProperty('default') ? Vue['default'] : Vue; var reactiveComponent = new Vue({ data: function data() { return { event: null, vssWidth: null, vssHeight: null } } }); var NuxtSSRScreenSizeMixin = { computed: { $vssEvent: function $vssEvent() { return reactiveComponent.event }, $vssWidth: function $vssWidth() { return reactiveComponent.vssWidth || this.getScreenWidth() }, $vssHeight: function $vssHeight() { return reactiveComponent.vssHeight || this.getScreenHeight() } }, methods: { getScreenWidth: function getScreenWidth() { return typeof window === "undefined" && 1024 || window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth }, getScreenHeight: function getScreenHeight() { return typeof window === "undefined" && 768 || window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight }, handleResize: function handleResize(event) { reactiveComponent.event = event; reactiveComponent.vssWidth = this.getScreenWidth(); reactiveComponent.vssHeight = this.getScreenHeight(); }, $vssDestroyListener: function $vssDestroyListener() { window.removeEventListener('resize', this.handleResize); } }, mounted: function mounted() { window.addEventListener('resize', this.handleResize); }, destroyed: function destroyed() { window.removeEventListener('resize', this.handleResize); } } var install = function (Vue$$1) { Vue$$1.mixin(NuxtSSRScreenSizeMixin); }; // Note that here we're not only exporting the install function, but // also the mixin itself - this is so with can `Vue.use()` or // `mixins: [],` it. var index = { install: install, NuxtSSRScreenSizeMixin: NuxtSSRScreenSizeMixin } exports.default = index; Object.defineProperty(exports, '__esModule', { value: true }); })));