clarity-js 0.8.18 → 0.8.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,12 +14,12 @@ import * as extract from "@src/data/extract";
14
14
  import { queue, track } from "./upload";
15
15
 
16
16
  export default function(event: Event): void {
17
- let t = time();
17
+ const t = time();
18
18
  let tokens: Token[] = [t, event];
19
19
  switch (event) {
20
- case Event.Baseline:
21
- let b = baseline.state;
22
- if (b) {
20
+ case Event.Baseline: {
21
+ const b = baseline.state;
22
+ if (b && b.data) {
23
23
  tokens = [b.time, b.event];
24
24
  tokens.push(b.data.visible);
25
25
  tokens.push(b.data.docWidth);
@@ -49,6 +49,7 @@ export default function(event: Event): void {
49
49
  }
50
50
  baseline.reset();
51
51
  break;
52
+ }
52
53
  case Event.Ping:
53
54
  tokens.push(ping.data.gap);
54
55
  queue(tokens);
@@ -73,10 +74,10 @@ export default function(event: Event): void {
73
74
  tokens.push(custom.data.value);
74
75
  queue(tokens);
75
76
  break;
76
- case Event.Variable:
77
- let variableKeys = Object.keys(variable.data);
77
+ case Event.Variable: {
78
+ const variableKeys = Object.keys(variable.data);
78
79
  if (variableKeys.length > 0) {
79
- for (let v of variableKeys) {
80
+ for (const v of variableKeys) {
80
81
  tokens.push(v);
81
82
  tokens.push(variable.data[v]);
82
83
  }
@@ -84,11 +85,12 @@ export default function(event: Event): void {
84
85
  queue(tokens, false);
85
86
  }
86
87
  break;
87
- case Event.Metric:
88
- let metricKeys = Object.keys(metric.updates);
88
+ }
89
+ case Event.Metric: {
90
+ const metricKeys = Object.keys(metric.updates);
89
91
  if (metricKeys.length > 0) {
90
- for (let m of metricKeys) {
91
- let key = parseInt(m, 10);
92
+ for (const m of metricKeys) {
93
+ const key = parseInt(m, 10);
92
94
  tokens.push(key);
93
95
  // For computation, we need microseconds precision that performance.now() API offers
94
96
  // However, for data over the wire, we round it off to milliseconds precision.
@@ -98,11 +100,12 @@ export default function(event: Event): void {
98
100
  queue(tokens, false);
99
101
  }
100
102
  break;
101
- case Event.Dimension:
102
- let dimensionKeys = Object.keys(dimension.updates);
103
+ }
104
+ case Event.Dimension: {
105
+ const dimensionKeys = Object.keys(dimension.updates);
103
106
  if (dimensionKeys.length > 0) {
104
- for (let d of dimensionKeys) {
105
- let key = parseInt(d, 10);
107
+ for (const d of dimensionKeys) {
108
+ const key = parseInt(d, 10);
106
109
  tokens.push(key);
107
110
  tokens.push(dimension.updates[d]);
108
111
  }
@@ -110,11 +113,12 @@ export default function(event: Event): void {
110
113
  queue(tokens, false);
111
114
  }
112
115
  break;
113
- case Event.Summary:
114
- let eventKeys = Object.keys(summary.data);
116
+ }
117
+ case Event.Summary: {
118
+ const eventKeys = Object.keys(summary.data);
115
119
  if (eventKeys.length > 0) {
116
- for (let e of eventKeys) {
117
- let key = parseInt(e, 10);
120
+ for (const e of eventKeys) {
121
+ const key = parseInt(e, 10);
118
122
  tokens.push(key);
119
123
  tokens.push([].concat(...summary.data[e]));
120
124
  }
@@ -122,22 +126,24 @@ export default function(event: Event): void {
122
126
  queue(tokens, false);
123
127
  }
124
128
  break;
125
- case Event.Extract:
126
- let extractKeys = extract.keys;
127
- extractKeys.forEach((e => {
129
+ }
130
+ case Event.Extract: {
131
+ const extractKeys = extract.keys;
132
+ extractKeys.forEach(e => {
128
133
  tokens.push(e);
129
- let token = []
130
- for (let d in extract.data[e]) {
131
- let key = parseInt(d, 10);
134
+ const token = []
135
+ for (const d in extract.data[e]) {
136
+ const key = parseInt(d, 10);
132
137
  token.push(key);
133
138
  token.push(extract.data[e][d]);
134
139
  }
135
140
  tokens.push(token);
136
- }));
141
+ });
137
142
 
138
143
  extract.reset();
139
144
  queue(tokens, false);
140
-
145
+ break;
146
+ }
141
147
  case Event.Consent:
142
148
  tokens.push(consent.data.source);
143
149
  tokens.push(consent.data.ad_Storage);
@@ -19,6 +19,7 @@ export function start(): void {
19
19
 
20
20
  export function observe(root: Node): void {
21
21
  bind(root, "click", handler.bind(this, Event.Click, root), true);
22
+ bind(root, "contextmenu", handler.bind(this, Event.ContextMenu, root), true);
22
23
  }
23
24
 
24
25
  function handler(event: Event, root: Node, evt: MouseEvent): void {
@@ -53,6 +53,7 @@ export default async function (type: Event, ts: number = null): Promise<void> {
53
53
  pointer.reset();
54
54
  break;
55
55
  case Event.Click:
56
+ case Event.ContextMenu:
56
57
  for (let entry of click.state) {
57
58
  let cTarget = metadata(entry.data.target as Node, entry.event, entry.data.text);
58
59
  tokens = [entry.time, entry.event];
@@ -125,6 +125,7 @@ export function compute(): void {
125
125
 
126
126
  export function stop(): void {
127
127
  clearTimeout(timeout);
128
+ throttledRecompute.cleanup();
128
129
  state = [];
129
130
  initialTop = null;
130
131
  initialBottom = null;
package/types/data.d.ts CHANGED
@@ -73,6 +73,7 @@ export const enum Event {
73
73
  StyleSheetAdoption = 45,
74
74
  StyleSheetUpdate = 46,
75
75
  Consent = 47,
76
+ ContextMenu = 48,
76
77
 
77
78
  // Apps specific events
78
79
  WebViewDiscover = 100,