@gemx-dev/clarity-visualize 0.8.42 → 0.8.44

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gemx-dev/clarity-visualize",
3
- "version": "0.8.42",
3
+ "version": "0.8.44",
4
4
  "description": "Clarity visualize",
5
5
  "author": "Microsoft Corp.",
6
6
  "license": "MIT",
@@ -115,6 +115,9 @@ export class InteractionHelper {
115
115
  case "radio":
116
116
  el.checked = data.value === "true";
117
117
  break;
118
+ case "file":
119
+ // We cannot set value for files, only allowed to be an empty string when programatically set
120
+ break;
118
121
  default:
119
122
  el.value = data.value;
120
123
  break;
package/src/visualizer.ts CHANGED
@@ -171,68 +171,72 @@ export class Visualizer implements VisualizerType {
171
171
  return this;
172
172
  }
173
173
 
174
- public render = async (events: DecodedData.DecodedEvent[]): Promise<void> => {
174
+ public render = (events: DecodedData.DecodedEvent[]): void => {
175
175
  if (this.state === null) { throw new Error(`Initialize visualization by calling "setup" prior to making this call.`); }
176
176
  let time = 0;
177
- for (let entry of events) {
178
- time = entry.time;
179
- this.interaction.clearOldClickVisualizations(time);
180
- switch (entry.event) {
181
- case Data.Event.Metric:
182
- this.data.metric(entry as DecodedData.MetricEvent);
183
- break;
184
- case Data.Event.Dimension:
185
- if(entry.data[Dimension.InteractionNextPaint]){
177
+ for (const entry of events) {
178
+ try {
179
+ time = entry.time;
180
+ this.interaction.clearOldClickVisualizations(time);
181
+ switch (entry.event) {
182
+ case Data.Event.Metric:
186
183
  this.data.metric(entry as DecodedData.MetricEvent);
187
- }
188
- break;
189
- case Data.Event.Region:
190
- this.data.region(entry as Layout.RegionEvent);
191
- break;
192
- case Data.Event.Mutation:
193
- case Data.Event.Snapshot:
194
- await this.layout.markup(entry as Layout.DomEvent);
195
- break;
196
- case Data.Event.MouseDown:
197
- case Data.Event.MouseUp:
198
- case Data.Event.MouseMove:
199
- case Data.Event.MouseWheel:
200
- case Data.Event.Click:
201
- case Data.Event.DoubleClick:
202
- case Data.Event.TouchStart:
203
- case Data.Event.TouchCancel:
204
- case Data.Event.TouchEnd:
205
- case Data.Event.TouchMove:
206
- this.interaction.pointer(entry as Interaction.PointerEvent);
207
- break;
208
- case Data.Event.Visibility:
209
- this.interaction.visibility(entry as Interaction.VisibilityEvent);
210
- break;
211
- case Data.Event.Input:
212
- this.interaction.input(entry as Interaction.InputEvent);
213
- break;
214
- case Data.Event.Selection:
215
- this.interaction.selection(entry as Interaction.SelectionEvent);
216
- break;
217
- case Data.Event.Resize:
218
- this.interaction.resize(entry as Interaction.ResizeEvent);
219
- break;
220
- case Data.Event.Scroll:
221
- this.interaction.scroll(entry as Interaction.ScrollEvent);
222
- break;
223
- case Data.Event.StyleSheetAdoption:
224
- case Data.Event.StyleSheetUpdate:
225
- this.layout.styleChange(entry as Layout.StyleSheetEvent);
226
- break;
227
- case Data.Event.Animation:
228
- this.layout.animateChange(entry as Layout.AnimationEvent);
229
- break;
230
- case Data.Event.CustomElement:
231
- this.layout.customElement(entry as Layout.CustomElementEvent);
232
- break;
184
+ break;
185
+ case Data.Event.Dimension:
186
+ if(entry.data[Dimension.InteractionNextPaint]){
187
+ this.data.metric(entry as DecodedData.MetricEvent);
188
+ }
189
+ break;
190
+ case Data.Event.Region:
191
+ this.data.region(entry as Layout.RegionEvent);
192
+ break;
193
+ case Data.Event.Mutation:
194
+ case Data.Event.Snapshot:
195
+ this.layout.markup(entry as Layout.DomEvent);
196
+ break;
197
+ case Data.Event.MouseDown:
198
+ case Data.Event.MouseUp:
199
+ case Data.Event.MouseMove:
200
+ case Data.Event.MouseWheel:
201
+ case Data.Event.Click:
202
+ case Data.Event.DoubleClick:
203
+ case Data.Event.TouchStart:
204
+ case Data.Event.TouchCancel:
205
+ case Data.Event.TouchEnd:
206
+ case Data.Event.TouchMove:
207
+ this.interaction.pointer(entry as Interaction.PointerEvent);
208
+ break;
209
+ case Data.Event.Visibility:
210
+ this.interaction.visibility(entry as Interaction.VisibilityEvent);
211
+ break;
212
+ case Data.Event.Input:
213
+ this.interaction.input(entry as Interaction.InputEvent);
214
+ break;
215
+ case Data.Event.Selection:
216
+ this.interaction.selection(entry as Interaction.SelectionEvent);
217
+ break;
218
+ case Data.Event.Resize:
219
+ this.interaction.resize(entry as Interaction.ResizeEvent);
220
+ break;
221
+ case Data.Event.Scroll:
222
+ this.interaction.scroll(entry as Interaction.ScrollEvent);
223
+ break;
224
+ case Data.Event.StyleSheetAdoption:
225
+ case Data.Event.StyleSheetUpdate:
226
+ this.layout.styleChange(entry as Layout.StyleSheetEvent);
227
+ break;
228
+ case Data.Event.Animation:
229
+ this.layout.animateChange(entry as Layout.AnimationEvent);
230
+ break;
231
+ case Data.Event.CustomElement:
232
+ this.layout.customElement(entry as Layout.CustomElementEvent);
233
+ break;
234
+ }
235
+ }
236
+ catch (e) {
237
+ this._state.options.logerror?.(e);
233
238
  }
234
239
  }
235
-
236
240
  if (events.length > 0) {
237
241
  // Update pointer trail at the end of every frame
238
242
  this.interaction.trail(time);
@@ -25,7 +25,7 @@ export class Visualizer {
25
25
  clearmap: () => void;
26
26
  scrollmap: (data?: ScrollMapInfo[], averageFold?: number, addMarkers?: boolean) => void;
27
27
  merge: (decoded: Data.DecodedPayload[]) => MergedPayload;
28
- render: (events: Data.DecodedEvent[]) => Promise<void>;
28
+ render: (events: Data.DecodedEvent[]) => void;
29
29
  setup: (target: Window, options: Options) => Promise<Visualizer>;
30
30
  time: () => number;
31
31
  get: (hash: string) => HTMLElement;