@nent/core
Version:
4 lines • 1.72 kB
JavaScript
/*!
* NENT 2022
*/
import{r as s,d as t}from"./index-916ca544.js";import{a as i,e as a}from"./index-f7016b94.js";import{R as h}from"./interfaces-3b78db83.js";import{A as e,a as n,b as o}from"./interfaces-89f61157.js";import{f as r}from"./logging-5a93c8af.js";import{a as c}from"./state-27a8a5bc.js";import"./index-4bfabbbd.js";class l{constructor(s,t,i=!1){this.actions=s,this.events=t,this.debug=i,this.removeSubscription=[],this.removeSubscription.push(this.actions.on(e,(s=>{this.handleEventAction(s)}))),this.removeSubscription.push(this.events.on(h.RouteChanged,(s=>{var t;null===(t=this.handlePageView)||void 0===t||t.call(this,s)}))),this.events.emit(n.ListenerRegistered,this)}handleEventAction(s){var t,i,a;switch(r(this.debug,`analytics-listener: action received ${JSON.stringify(s)}`),s.command){case o.SendEvent:null===(t=this.handleEvent)||void 0===t||t.call(this,s.data);break;case o.SendViewTime:null===(i=this.handleViewTime)||void 0===i||i.call(this,s.data);break;case o.SendPageView:null===(a=this.handlePageView)||void 0===a||a.call(this,s.data)}}destroy(){this.removeSubscription.forEach((s=>s()))}}const d=class{constructor(i){s(this,i),this.event=t(this,"custom-event",4),this.pageView=t(this,"page-view",4),this.viewTime=t(this,"view-time",4),this.debug=!1}componentWillLoad(){r(this.debug,"n-app-analytics: loading"),c.analyticsEnabled=!0,this.listener=new l(i,a,this.debug),this.listener.handleEvent=s=>{this.event.emit(s)},this.listener.handlePageView=s=>{this.pageView.emit(s)},this.listener.handleViewTime=s=>{this.viewTime.emit(s)},r(this.debug,"n-app-analytics: loaded")}render(){return null}disconnectedCallback(){c.analyticsEnabled=!1,this.listener.destroy()}};export{d as n_app_analytics}