UNPKG

analytics-plugin-tab-events

Version:

Expose tab visibility events plugin for 'analytics' module

1 lines 872 B
var analyticsTabEvents=function(n){"use strict";var e="undefined"==typeof window,t="hidden";function i(n){if(e)return!1;var t=r(),i="".concat(t.replace(/[H|h]idden/,""),"visibilitychange"),o=function(){return n(Boolean(document[t]))},u=function(){return document.addEventListener(i,o)};return u(),function(){return document.removeEventListener(i,o),u}}function r(){return e||t in document?t:["webkit","moz","ms","o"].reduce(function(n,e){var t=e+"Hidden";return!n&&t in document?t:n},null)}return n.HIDDEN=t,n.default=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e={tabHidden:"tabHidden",tabVisible:"tabVisible"};return{name:"tab-events",EVENTS:e,config:n,bootstrap:function(n){var t=n.instance;i(function(n){t.dispatch({type:n?e.tabHidden:e.tabVisible})})}}},n.onTabChange=i,n.isTabHidden=function(){return!e&&Boolean(document[r()])},n}({});