@gemx-dev/heatmap-react 3.5.92-dev.10 → 3.5.92-dev.11

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.
Files changed (50) hide show
  1. package/dist/esm/components/Layout/HeatmapLayout.d.ts +1 -0
  2. package/dist/esm/components/Layout/HeatmapLayout.d.ts.map +1 -1
  3. package/dist/esm/hooks/common/useHeatmapWidthByDevice.d.ts.map +1 -1
  4. package/dist/esm/hooks/register/useRegisterConfig.d.ts +2 -1
  5. package/dist/esm/hooks/register/useRegisterConfig.d.ts.map +1 -1
  6. package/dist/esm/hooks/view-context/useHeatmapDataContext.d.ts +2 -0
  7. package/dist/esm/hooks/view-context/useHeatmapDataContext.d.ts.map +1 -1
  8. package/dist/esm/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
  9. package/dist/esm/index.js +97 -25
  10. package/dist/esm/index.mjs +97 -25
  11. package/dist/esm/libs/iframe-processor/index.d.ts +1 -1
  12. package/dist/esm/libs/iframe-processor/index.d.ts.map +1 -1
  13. package/dist/esm/libs/iframe-processor/processors/viewport/global-fixes/global-fixes/viewport-unit-replacer/fixes.d.ts.map +1 -1
  14. package/dist/esm/libs/index.d.ts +1 -0
  15. package/dist/esm/libs/index.d.ts.map +1 -1
  16. package/dist/esm/libs/perf.d.ts +83 -0
  17. package/dist/esm/libs/perf.d.ts.map +1 -0
  18. package/dist/esm/stores/config.d.ts +2 -0
  19. package/dist/esm/stores/config.d.ts.map +1 -1
  20. package/dist/esm/stores/data.d.ts +2 -0
  21. package/dist/esm/stores/data.d.ts.map +1 -1
  22. package/dist/esm/types/heatmap.d.ts +1 -0
  23. package/dist/esm/types/heatmap.d.ts.map +1 -1
  24. package/dist/umd/components/Layout/HeatmapLayout.d.ts +1 -0
  25. package/dist/umd/components/Layout/HeatmapLayout.d.ts.map +1 -1
  26. package/dist/umd/hooks/common/useHeatmapWidthByDevice.d.ts.map +1 -1
  27. package/dist/umd/hooks/register/useRegisterConfig.d.ts +2 -1
  28. package/dist/umd/hooks/register/useRegisterConfig.d.ts.map +1 -1
  29. package/dist/umd/hooks/view-context/useHeatmapDataContext.d.ts +2 -0
  30. package/dist/umd/hooks/view-context/useHeatmapDataContext.d.ts.map +1 -1
  31. package/dist/umd/hooks/viz-render/useHeatmapRender.d.ts.map +1 -1
  32. package/dist/umd/index.js +1 -1
  33. package/dist/umd/libs/iframe-processor/index.d.ts +1 -1
  34. package/dist/umd/libs/iframe-processor/index.d.ts.map +1 -1
  35. package/dist/umd/libs/iframe-processor/processors/viewport/global-fixes/global-fixes/viewport-unit-replacer/fixes.d.ts.map +1 -1
  36. package/dist/umd/libs/index.d.ts +1 -0
  37. package/dist/umd/libs/index.d.ts.map +1 -1
  38. package/dist/umd/libs/perf.d.ts +83 -0
  39. package/dist/umd/libs/perf.d.ts.map +1 -0
  40. package/dist/umd/stores/config.d.ts +2 -0
  41. package/dist/umd/stores/config.d.ts.map +1 -1
  42. package/dist/umd/stores/data.d.ts +2 -0
  43. package/dist/umd/stores/data.d.ts.map +1 -1
  44. package/dist/umd/types/heatmap.d.ts +1 -0
  45. package/dist/umd/types/heatmap.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/dist/esm/libs/iframe-processor/shared/perf.d.ts +0 -58
  48. package/dist/esm/libs/iframe-processor/shared/perf.d.ts.map +0 -1
  49. package/dist/umd/libs/iframe-processor/shared/perf.d.ts +0 -58
  50. package/dist/umd/libs/iframe-processor/shared/perf.d.ts.map +0 -1
@@ -152,6 +152,7 @@ function useDebounceCallback(callback, delay) {
152
152
 
153
153
  var EDeviceType;
154
154
  (function (EDeviceType) {
155
+ EDeviceType["DesktopLarge"] = "DESKTOP_LARGE";
155
156
  EDeviceType["Desktop"] = "DESKTOP";
156
157
  EDeviceType["Mobile"] = "MOBILE";
157
158
  EDeviceType["Tablet"] = "TABLET";
@@ -319,15 +320,18 @@ const useHeatmapConfigStore = create()((set) => {
319
320
  return {
320
321
  mode: EHeatmapMode.Single,
321
322
  sidebarWidth: DEFAULT_SIDEBAR_WIDTH,
323
+ shopId: undefined,
322
324
  setMode: (mode) => set({ mode }),
323
325
  resetMode: () => set({ mode: EHeatmapMode.Single }),
324
326
  setSidebarWidth: (sidebarWidth) => set({ sidebarWidth }),
327
+ setShopId: (shopId) => set({ shopId }),
325
328
  };
326
329
  });
327
330
 
328
331
  const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
329
332
  return {
330
333
  data: new Map([[DEFAULT_VIEW_ID, undefined]]),
334
+ dataHash: new Map([[DEFAULT_VIEW_ID, undefined]]),
331
335
  dataSnapshot: new Map([[DEFAULT_VIEW_ID, undefined]]),
332
336
  clickmap: new Map([[DEFAULT_VIEW_ID, undefined]]),
333
337
  clickAreas: new Map([[DEFAULT_VIEW_ID, undefined]]),
@@ -361,6 +365,11 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
361
365
  newData.set(viewId, data);
362
366
  return { data: newData };
363
367
  }),
368
+ setDataHash: (dataHash, viewId = DEFAULT_VIEW_ID) => set((prev) => {
369
+ const newDataHash = new Map(prev.dataHash);
370
+ newDataHash.set(viewId, dataHash);
371
+ return { dataHash: newDataHash };
372
+ }),
364
373
  setDataSnapshot: (data, viewId = DEFAULT_VIEW_ID) => set((prev) => {
365
374
  const newDataSnapshot = new Map(prev.dataSnapshot);
366
375
  newDataSnapshot.set(viewId, data);
@@ -394,8 +403,10 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
394
403
  const newDataInfo = new Map(prev.dataInfo);
395
404
  const newScrollmap = new Map(prev.scrollmap);
396
405
  const newAttentionMap = new Map(prev.attentionMap);
406
+ const newDataHash = new Map(prev.dataHash);
397
407
  newData.set(toViewId, prev.data.get(fromViewId));
398
408
  newDataSnapshot.set(toViewId, prev.dataSnapshot.get(fromViewId));
409
+ newDataHash.set(toViewId, prev.dataHash.get(fromViewId));
399
410
  newClickmap.set(toViewId, prev.clickmap.get(fromViewId));
400
411
  newClickAreas.set(toViewId, prev.clickAreas.get(fromViewId));
401
412
  newDataInfo.set(toViewId, prev.dataInfo.get(fromViewId));
@@ -409,6 +420,7 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
409
420
  dataInfo: newDataInfo,
410
421
  scrollmap: newScrollmap,
411
422
  attentionMap: newAttentionMap,
423
+ dataHash: newDataHash,
412
424
  };
413
425
  }),
414
426
  clearView: (viewId) => set((prev) => {
@@ -419,8 +431,10 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
419
431
  const newDataInfo = new Map(prev.dataInfo);
420
432
  const newScrollmap = new Map(prev.scrollmap);
421
433
  const newAttentionMap = new Map(prev.attentionMap);
434
+ const newDataHash = new Map(prev.dataHash);
422
435
  newData.delete(viewId);
423
436
  newDataSnapshot.delete(viewId);
437
+ newDataHash.delete(viewId);
424
438
  newClickmap.delete(viewId);
425
439
  newClickAreas.delete(viewId);
426
440
  newDataInfo.delete(viewId);
@@ -429,6 +443,7 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
429
443
  return {
430
444
  data: newData,
431
445
  dataSnapshot: newDataSnapshot,
446
+ dataHash: newDataHash,
432
447
  clickmap: newClickmap,
433
448
  clickAreas: newClickAreas,
434
449
  dataInfo: newDataInfo,
@@ -439,6 +454,7 @@ const useHeatmapDataStore = create()(subscribeWithSelector((set) => {
439
454
  resetAll: () => set({
440
455
  data: new Map([[DEFAULT_VIEW_ID, undefined]]),
441
456
  dataSnapshot: new Map([[DEFAULT_VIEW_ID, undefined]]),
457
+ dataHash: new Map([[DEFAULT_VIEW_ID, undefined]]),
442
458
  clickmap: new Map([[DEFAULT_VIEW_ID, undefined]]),
443
459
  clickAreas: new Map([[DEFAULT_VIEW_ID, undefined]]),
444
460
  dataInfo: new Map([[DEFAULT_VIEW_ID, undefined]]),
@@ -1286,6 +1302,7 @@ const useHeatmapDataContext = createViewContextHook({
1286
1302
  useStore: useHeatmapDataStore,
1287
1303
  getState: (store, viewId) => ({
1288
1304
  data: store.data.get(viewId),
1305
+ dataHash: store.dataHash.get(viewId),
1289
1306
  dataSnapshot: store.dataSnapshot.get(viewId),
1290
1307
  clickmap: store.clickmap.get(viewId),
1291
1308
  clickAreas: store.clickAreas.get(viewId),
@@ -1297,6 +1314,7 @@ const useHeatmapDataContext = createViewContextHook({
1297
1314
  getActions: (store, viewId) => ({
1298
1315
  setData: (newData) => store.setData(newData, viewId),
1299
1316
  setDataSnapshot: (newData) => store.setDataSnapshot(newData, viewId),
1317
+ setDataHash: (newHash) => store.setDataHash(newHash, viewId),
1300
1318
  setClickmap: (newClickmap) => store.setClickmap(newClickmap, viewId),
1301
1319
  setClickAreas: (newClickAreas) => store.setClickAreas(newClickAreas, viewId),
1302
1320
  setDataInfoByKey: (key, value) => store.setDataInfoByKey(key, value, viewId),
@@ -1513,6 +1531,8 @@ const useHeatmapWidthByDevice = () => {
1513
1531
  if (!deviceType)
1514
1532
  return 1440;
1515
1533
  switch (deviceType) {
1534
+ case EDeviceType.DesktopLarge:
1535
+ return 1920;
1516
1536
  case EDeviceType.Desktop:
1517
1537
  return 1440;
1518
1538
  case EDeviceType.Tablet:
@@ -1523,13 +1543,20 @@ const useHeatmapWidthByDevice = () => {
1523
1543
  }
1524
1544
  };
1525
1545
 
1526
- const useRegisterConfig = ({ isLoading, isLoadingCanvas, }) => {
1546
+ const useRegisterConfig = ({ shopId, isLoading, isLoadingCanvas, }) => {
1527
1547
  const mode = useHeatmapConfigStore((state) => state.mode);
1548
+ const shopIdStore = useHeatmapConfigStore((state) => state.shopId);
1528
1549
  const deviceType = useHeatmapSettingContext((state) => state.deviceType);
1529
1550
  const sidebarWidth = useHeatmapConfigStore((state) => state.sidebarWidth);
1530
1551
  const setIsRendering = useHeatmapSettingContext((state) => state.setIsRendering);
1531
1552
  const setIsLoadingDom = useHeatmapSettingContext((state) => state.setIsLoadingDom);
1532
1553
  const setIsLoadingCanvas = useHeatmapSettingContext((state) => state.setIsLoadingCanvas);
1554
+ const setShopId = useHeatmapConfigStore((state) => state.setShopId);
1555
+ useEffect(() => {
1556
+ if (!shopId || !!shopIdStore || shopIdStore === shopId)
1557
+ return;
1558
+ setShopId(shopId);
1559
+ }, [shopId, setShopId, shopIdStore]);
1533
1560
  useEffect(() => {
1534
1561
  setIsRendering(true);
1535
1562
  setTimeout(() => {
@@ -4031,18 +4058,27 @@ function useVizLiveIframeMsg(options = {}) {
4031
4058
  }
4032
4059
 
4033
4060
  /**
4034
- * Performance tracker measures render pipeline timings and stores results
4035
- * in `window.__gemxPerf` for inspection in DevTools.
4061
+ * Unified performance timing utility.
4062
+ *
4063
+ * Two complementary tools:
4036
4064
  *
4037
- * Usage:
4038
- * perf.startSession('render-1');
4039
- * const t = perf.mark('viewport.run');
4040
- * perf.measure('viewport.run', t);
4041
- * perf.endSession();
4065
+ * 1. `perf` — global DevTools session recorder.
4066
+ * Stores structured timing in `window.__gemxPerf` for inspection.
4067
+ * Used by the iframe-processor rendering pipeline.
4042
4068
  *
4043
- * // In DevTools:
4044
- * window.__gemxPerf.latest
4045
- * window.__gemxPerf.sessions
4069
+ * perf.startSession('render-1');
4070
+ * const t = perf.mark('viewport.run');
4071
+ * perf.measure('viewport.run', t);
4072
+ * perf.endSession();
4073
+ *
4074
+ * 2. `createPerfTimer` — per-module console logger factory.
4075
+ * Logs prefixed timings to the console AND records entries into the
4076
+ * active global session so they appear in `window.__gemxPerf` too.
4077
+ *
4078
+ * const timer = createPerfTimer('Render');
4079
+ * const t0 = timer.mark('start');
4080
+ * await timer.wrap('visualizer.html', () => visualizer.html(...));
4081
+ * timer.measure('total', t0);
4046
4082
  */
4047
4083
  const s = {
4048
4084
  enabled: true,
@@ -4050,7 +4086,7 @@ const s = {
4050
4086
  sessions: [],
4051
4087
  maxSessions: 20,
4052
4088
  };
4053
- // ── Functions ─────────────────────────────────────────────────────────────────
4089
+ // ── Global singleton functions ────────────────────────────────────────────────
4054
4090
  function startSession(id) {
4055
4091
  if (!s.enabled)
4056
4092
  return;
@@ -4067,7 +4103,7 @@ function endSession() {
4067
4103
  return session;
4068
4104
  }
4069
4105
  /** Record a point-in-time mark. Returns `performance.now()` for use with measure(). */
4070
- function mark$1(label) {
4106
+ function globalMark(label) {
4071
4107
  const now = performance.now();
4072
4108
  if (s.enabled && s.current) {
4073
4109
  s.current.entries.push({ label, t: now - s.current.startedAt });
@@ -4075,7 +4111,7 @@ function mark$1(label) {
4075
4111
  return now;
4076
4112
  }
4077
4113
  /** Record a duration from a previous mark() timestamp. */
4078
- function measure$1(label, t0) {
4114
+ function globalMeasure(label, t0) {
4079
4115
  const duration = performance.now() - t0;
4080
4116
  if (s.enabled && s.current) {
4081
4117
  s.current.entries.push({ label, t: t0 - s.current.startedAt, duration });
@@ -4088,26 +4124,34 @@ function getReport() {
4088
4124
  latest: s.sessions[0] ?? null,
4089
4125
  };
4090
4126
  }
4091
- function clear$1() {
4127
+ function clearSessions() {
4092
4128
  s.current = null;
4093
4129
  s.sessions = [];
4094
4130
  if (typeof window !== 'undefined')
4095
4131
  delete window.__gemxPerf;
4096
4132
  }
4097
- function enable$1() {
4133
+ function enableGlobal() {
4098
4134
  s.enabled = true;
4099
4135
  }
4100
- function disable$1() {
4136
+ function disableGlobal() {
4101
4137
  s.enabled = false;
4102
4138
  }
4103
- // ── Internal ──────────────────────────────────────────────────────────────────
4104
4139
  function flush() {
4105
4140
  if (typeof window === 'undefined')
4106
4141
  return;
4107
4142
  window.__gemxPerf = getReport();
4108
4143
  }
4109
- // ── Singleton export ──────────────────────────────────────────────────────────
4110
- const perf = { startSession, endSession, mark: mark$1, measure: measure$1, getReport, clear: clear$1, enable: enable$1, disable: disable$1 };
4144
+ // ── Global singleton export ───────────────────────────────────────────────────
4145
+ const perf = {
4146
+ startSession,
4147
+ endSession,
4148
+ mark: globalMark,
4149
+ measure: globalMeasure,
4150
+ getReport,
4151
+ clear: clearSessions,
4152
+ enable: enableGlobal,
4153
+ disable: disableGlobal,
4154
+ };
4111
4155
 
4112
4156
  /**
4113
4157
  * DOM observation setup — ResizeObserver + MutationObserver.
@@ -4845,6 +4889,25 @@ function getActiveFixes(ctx) {
4845
4889
  const logger$1 = createLogger({ enabled: false, prefix: 'ViewportUnitReplacer' });
4846
4890
  // ─── Constants ────────────────────────────────────────────────────────────────
4847
4891
  const HEIGHT_RELATED_PROPERTIES = ['height', 'min-height', 'max-height', 'top', 'bottom'];
4892
+ /**
4893
+ * Number of top-level CSS rules to process before yielding to the browser.
4894
+ * Keeps the main thread responsive during large stylesheets (prevents tab kill on mobile).
4895
+ */
4896
+ const YIELD_EVERY_RULES = 100;
4897
+ // ─── Scheduler ────────────────────────────────────────────────────────────────
4898
+ /**
4899
+ * Yield control back to the browser so it can handle input, paint frames, and
4900
+ * avoid "page unresponsive" / tab-kill on mobile during heavy CSS processing.
4901
+ *
4902
+ * Uses `scheduler.yield()` (Chrome 115+) when available; falls back to a
4903
+ * zero-timeout macrotask which is universally supported.
4904
+ */
4905
+ function yieldToMain() {
4906
+ if (typeof globalThis !== 'undefined' && 'scheduler' in globalThis) {
4907
+ return globalThis.scheduler.yield();
4908
+ }
4909
+ return new Promise((resolve) => setTimeout(resolve, 0));
4910
+ }
4848
4911
  // ─── Per-run tracking state (reset on each process() call) ───────────────────
4849
4912
  let elementsWithViewportUnits = new Set();
4850
4913
  let originalValues = new WeakMap();
@@ -4984,8 +5047,9 @@ function processRule(rule, ctx) {
4984
5047
  return count;
4985
5048
  }
4986
5049
  /** Processes only inline <style> sheets. Linked sheets are handled by processLinkedStylesheets. */
4987
- function processStylesheets(ctx) {
5050
+ async function processStylesheets(ctx) {
4988
5051
  let total = 0;
5052
+ let rulesSinceYield = 0;
4989
5053
  const sheets = ctx.doc.styleSheets;
4990
5054
  for (let i = 0; i < sheets.length; i++) {
4991
5055
  const sheet = sheets[i];
@@ -4995,6 +5059,11 @@ function processStylesheets(ctx) {
4995
5059
  const rules = sheet.cssRules;
4996
5060
  for (let j = 0; j < rules.length; j++) {
4997
5061
  total += processRule(rules[j], ctx);
5062
+ rulesSinceYield++;
5063
+ if (rulesSinceYield >= YIELD_EVERY_RULES) {
5064
+ rulesSinceYield = 0;
5065
+ await yieldToMain();
5066
+ }
4998
5067
  }
4999
5068
  }
5000
5069
  catch (e) {
@@ -5042,7 +5111,7 @@ async function process$1(ctx) {
5042
5111
  originalValues = new WeakMap();
5043
5112
  processInlineStyles(ctx);
5044
5113
  processStyleTags(ctx);
5045
- processStylesheets(ctx);
5114
+ await processStylesheets(ctx);
5046
5115
  await processLinkedStylesheets(ctx);
5047
5116
  // Wait for browser to apply the replaced styles
5048
5117
  await new Promise((resolve) => requestAnimationFrame(resolve));
@@ -6054,6 +6123,7 @@ function measure(label, startMs) {
6054
6123
  const useHeatmapRender = () => {
6055
6124
  const viewId = useViewIdContext();
6056
6125
  const data = useHeatmapDataContext((s) => s.data);
6126
+ const shopId = useHeatmapConfigStore((s) => s.shopId);
6057
6127
  const vizRef = useHeatmapVizRectContext((s) => s.vizRef);
6058
6128
  const setVizRef = useHeatmapVizRectContext((s) => s.setVizRef);
6059
6129
  const setIframeHeight = useHeatmapVizRectContext((s) => s.setIframeHeight);
@@ -6090,6 +6160,7 @@ const useHeatmapRender = () => {
6090
6160
  startIframe({
6091
6161
  helperRef,
6092
6162
  iframe,
6163
+ shopId,
6093
6164
  deviceType,
6094
6165
  size: { width: contentWidth, height: wrapperHeight },
6095
6166
  t0,
@@ -6124,7 +6195,7 @@ const useHeatmapRender = () => {
6124
6195
  };
6125
6196
  };
6126
6197
  // ── Helpers ───────────────────────────────────────────────────────────────────
6127
- function startIframe({ helperRef, iframe, deviceType = EDeviceType.Desktop, size, t0, onSuccess }) {
6198
+ function startIframe({ helperRef, iframe, shopId, deviceType = EDeviceType.Desktop, size, t0, onSuccess, }) {
6128
6199
  const docWidth = size.width ?? 0;
6129
6200
  const docHeight = size.height ?? 0;
6130
6201
  if (docHeight === 0)
@@ -6139,6 +6210,7 @@ function startIframe({ helperRef, iframe, deviceType = EDeviceType.Desktop, size
6139
6210
  targetHeight: docHeight,
6140
6211
  iframe,
6141
6212
  debug: true,
6213
+ shopId,
6142
6214
  onSuccess: (data) => {
6143
6215
  measure('IframeHelper processing', tHelper);
6144
6216
  measure('Total render', t0);
@@ -8410,11 +8482,11 @@ const ContentTopBar = () => {
8410
8482
  }, children: CompTopBar && jsx(CompTopBar, {}) }));
8411
8483
  };
8412
8484
 
8413
- const HeatmapLayout = ({ data, clickmap, clickAreas, scrollmap, attentionMap, controls, dataInfo, isLoading, isLoadingCanvas, }) => {
8485
+ const HeatmapLayout = ({ shopId, data, clickmap, clickAreas, scrollmap, attentionMap, controls, dataInfo, isLoading, isLoadingCanvas, }) => {
8414
8486
  useRegisterControl(controls);
8415
8487
  useRegisterData(data, dataInfo);
8416
8488
  useRegisterHeatmap({ clickmap, scrollmap, clickAreas, attentionMap });
8417
- useRegisterConfig({ isLoading, isLoadingCanvas });
8489
+ useRegisterConfig({ isLoading, isLoadingCanvas, shopId });
8418
8490
  // performanceLogger.configure({
8419
8491
  // enabled: true,
8420
8492
  // logToConsole: false,
@@ -1,3 +1,3 @@
1
- export { createIframeHelper } from './lifecycle';
2
1
  export type { IframeHelper } from './lifecycle';
2
+ export { createIframeHelper } from './lifecycle';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/iframe-processor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libs/iframe-processor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fixes.d.ts","sourceRoot":"","sources":["../../../../../../../../src/libs/iframe-processor/processors/viewport/global-fixes/global-fixes/viewport-unit-replacer/fixes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAgOtD,wBAAsB,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBpE"}
1
+ {"version":3,"file":"fixes.d.ts","sourceRoot":"","sources":["../../../../../../../../src/libs/iframe-processor/processors/viewport/global-fixes/global-fixes/viewport-unit-replacer/fixes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AA4PtD,wBAAsB,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBpE"}
@@ -1,2 +1,3 @@
1
+ export * from './perf';
1
2
  export * from './visualizer';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/libs/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Unified performance timing utility.
3
+ *
4
+ * Two complementary tools:
5
+ *
6
+ * 1. `perf` — global DevTools session recorder.
7
+ * Stores structured timing in `window.__gemxPerf` for inspection.
8
+ * Used by the iframe-processor rendering pipeline.
9
+ *
10
+ * perf.startSession('render-1');
11
+ * const t = perf.mark('viewport.run');
12
+ * perf.measure('viewport.run', t);
13
+ * perf.endSession();
14
+ *
15
+ * 2. `createPerfTimer` — per-module console logger factory.
16
+ * Logs prefixed timings to the console AND records entries into the
17
+ * active global session so they appear in `window.__gemxPerf` too.
18
+ *
19
+ * const timer = createPerfTimer('Render');
20
+ * const t0 = timer.mark('start');
21
+ * await timer.wrap('visualizer.html', () => visualizer.html(...));
22
+ * timer.measure('total', t0);
23
+ */
24
+ export interface PerfEntry {
25
+ label: string;
26
+ /** Milliseconds from session start. */
27
+ t: number;
28
+ /** Duration in ms — only present for measure() calls. */
29
+ duration?: number;
30
+ }
31
+ export interface PerfSession {
32
+ id: string;
33
+ startedAt: number;
34
+ entries: PerfEntry[];
35
+ /** Total session duration in ms — set when endSession() is called. */
36
+ total?: number;
37
+ }
38
+ export interface PerfReport {
39
+ sessions: PerfSession[];
40
+ latest: PerfSession | null;
41
+ }
42
+ export interface PerfTimerConfig {
43
+ prefix: string;
44
+ enabled?: boolean;
45
+ }
46
+ export interface PerfTimer {
47
+ /** Log a start point and return the current timestamp. */
48
+ mark(label: string): number;
49
+ /** Log elapsed time since `from` (a value returned by mark). */
50
+ measure(label: string, from: number): void;
51
+ /** Wrap an async or sync callback — auto-logs start + elapsed. */
52
+ wrap<T>(label: string, fn: () => T | Promise<T>): Promise<T>;
53
+ /** Toggle options at runtime (e.g. from a debug flag). */
54
+ configure(config: Partial<PerfTimerConfig>): void;
55
+ }
56
+ declare global {
57
+ interface Window {
58
+ __gemxPerf?: PerfReport;
59
+ }
60
+ }
61
+ declare function startSession(id: string): void;
62
+ declare function endSession(): PerfSession | null;
63
+ /** Record a point-in-time mark. Returns `performance.now()` for use with measure(). */
64
+ declare function globalMark(label: string): number;
65
+ /** Record a duration from a previous mark() timestamp. */
66
+ declare function globalMeasure(label: string, t0: number): number;
67
+ declare function getReport(): PerfReport;
68
+ declare function clearSessions(): void;
69
+ declare function enableGlobal(): void;
70
+ declare function disableGlobal(): void;
71
+ export declare const perf: {
72
+ startSession: typeof startSession;
73
+ endSession: typeof endSession;
74
+ mark: typeof globalMark;
75
+ measure: typeof globalMeasure;
76
+ getReport: typeof getReport;
77
+ clear: typeof clearSessions;
78
+ enable: typeof enableGlobal;
79
+ disable: typeof disableGlobal;
80
+ };
81
+ export declare function createPerfTimer(config: PerfTimerConfig | string): PerfTimer;
82
+ export {};
83
+ //# sourceMappingURL=perf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.d.ts","sourceRoot":"","sources":["../../src/libs/perf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,0DAA0D;IAC1D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gEAAgE;IAChE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,kEAAkE;IAClE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,0DAA0D;IAC1D,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;CACF;AAoBD,iBAAS,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGtC;AAED,iBAAS,UAAU,IAAI,WAAW,GAAG,IAAI,CAQxC;AAED,uFAAuF;AACvF,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzC;AAED,0DAA0D;AAC1D,iBAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,iBAAS,SAAS,IAAI,UAAU,CAK/B;AAED,iBAAS,aAAa,IAAI,IAAI,CAI7B;AAED,iBAAS,YAAY,IAAI,IAAI,CAE5B;AAED,iBAAS,aAAa,IAAI,IAAI,CAE7B;AASD,eAAO,MAAM,IAAI;;;;;;;;;CAShB,CAAC;AAIF,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAoC3E"}
@@ -2,9 +2,11 @@ import { EHeatmapMode } from '../types';
2
2
  export interface IHeatmapConfigStore {
3
3
  mode: EHeatmapMode;
4
4
  sidebarWidth: number;
5
+ shopId: string | undefined;
5
6
  setMode: (mode: EHeatmapMode) => void;
6
7
  resetMode: () => void;
7
8
  setSidebarWidth: (sidebarWidth: number) => void;
9
+ setShopId: (shopId: string | undefined) => void;
8
10
  }
9
11
  export declare const useHeatmapConfigStore: import("zustand").UseBoundStore<import("zustand").StoreApi<IHeatmapConfigStore>>;
10
12
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/stores/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,qBAAqB,kFAShC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/stores/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACjD;AAED,eAAO,MAAM,qBAAqB,kFAWhC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ClickMapPoint, EncodedPayload, IHeatmapInfo, IPersistedAreaData, ScrollMapPoint } from '../types';
2
2
  export interface IHeatmapDataStore {
3
3
  data: Map<string, EncodedPayload[] | undefined>;
4
+ dataHash: Map<string, string | undefined>;
4
5
  dataSnapshot: Map<string, EncodedPayload[] | undefined>;
5
6
  clickmap: Map<string, ClickMapPoint[] | undefined>;
6
7
  clickAreas: Map<string, IPersistedAreaData[] | undefined>;
@@ -9,6 +10,7 @@ export interface IHeatmapDataStore {
9
10
  attentionMap: Map<string, ScrollMapPoint[] | undefined>;
10
11
  setDataInfo: (dataInfo: IHeatmapInfo, viewId?: string) => void;
11
12
  setData: (data: EncodedPayload[], viewId?: string) => void;
13
+ setDataHash: (dataHash: string | undefined, viewId?: string) => void;
12
14
  setDataSnapshot: (data: EncodedPayload[], viewId?: string) => void;
13
15
  setClickmap: (clickmap: ClickMapPoint[], viewId?: string) => void;
14
16
  setClickAreas: (clickAreas: IPersistedAreaData[], viewId?: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/stores/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAMhH,MAAM,WAAW,iBAAiB;IAEhC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IAChD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC,CAAC;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;IAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IACrD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IAGxD,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,aAAa,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1G,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAGzD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;EAyJ/B,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../src/stores/data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAMhH,MAAM,WAAW,iBAAiB;IAEhC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IAChD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC,CAAC;IACnD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC;IAChD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IACrD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC,CAAC;IAGxD,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE,aAAa,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1G,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAGzD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGpC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;EAwK/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export declare enum EDeviceType {
2
+ DesktopLarge = "DESKTOP_LARGE",
2
3
  Desktop = "DESKTOP",
3
4
  Mobile = "MOBILE",
4
5
  Tablet = "TABLET"
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,UAAU;IACpB,kCAAkC;IAClC,GAAG,QAAQ;IACX,gEAAgE;IAChE,IAAI,SAAS;IACb,6DAA6D;IAC7D,IAAI,SAAS;IACb,2CAA2C;IAC3C,KAAK,UAAU;IACf,qCAAqC;IACrC,KAAK,UAAU;IACf,oCAAoC;IACpC,IAAI,SAAS;IACb,4DAA4D;IAC5D,QAAQ,aAAa;CACtB;AAED,oBAAY,cAAc;IACxB,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,cAAc,oBAAoB;IAClC,eAAe,sBAAsB;IACrC,iBAAiB,wBAAwB;CAC1C;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,IAAI,eAAe;CACpB;AAED,oBAAY,WAAW;IACrB,KAAK,iBAAiB;IACtB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW,CAAE,mBAAmB;IACtC,IAAI,SAAS,CAAE,YAAY;IAC3B,OAAO,YAAY;CACpB;AAED,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B"}
1
+ {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../src/types/heatmap.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,YAAY,kBAAkB;IAC9B,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,UAAU;IACpB,kCAAkC;IAClC,GAAG,QAAQ;IACX,gEAAgE;IAChE,IAAI,SAAS;IACb,6DAA6D;IAC7D,IAAI,SAAS;IACb,2CAA2C;IAC3C,KAAK,UAAU;IACf,qCAAqC;IACrC,KAAK,UAAU;IACf,oCAAoC;IACpC,IAAI,SAAS;IACb,4DAA4D;IAC5D,QAAQ,aAAa;CACtB;AAED,oBAAY,cAAc;IACxB,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,cAAc,oBAAoB;IAClC,eAAe,sBAAsB;IACrC,iBAAiB,wBAAwB;CAC1C;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,IAAI,eAAe;CACpB;AAED,oBAAY,WAAW;IACrB,KAAK,iBAAiB;IACtB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW,CAAE,mBAAmB;IACtC,IAAI,SAAS,CAAE,YAAY;IAC3B,OAAO,YAAY;CACpB;AAED,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B"}
@@ -1,6 +1,7 @@
1
1
  import type { ClickMapPoint, EncodedPayload, IHeatmapInfo, IPersistedAreaData, ScrollMapPoint } from '../../types';
2
2
  import type { IHeatmapControl } from '../../types/control';
3
3
  interface HeatmapLayoutProps {
4
+ shopId?: string;
4
5
  data?: EncodedPayload[];
5
6
  clickmap?: ClickMapPoint[];
6
7
  clickAreas?: IPersistedAreaData[];
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/HeatmapLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAS3D,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0DtD,CAAC"}
1
+ {"version":3,"file":"HeatmapLayout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/HeatmapLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAS3D,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2DtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHeatmapWidthByDevice.d.ts","sourceRoot":"","sources":["../../../src/hooks/common/useHeatmapWidthByDevice.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,cAkBnC,CAAC"}
1
+ {"version":3,"file":"useHeatmapWidthByDevice.d.ts","sourceRoot":"","sources":["../../../src/hooks/common/useHeatmapWidthByDevice.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,cAoBnC,CAAC"}
@@ -1,4 +1,5 @@
1
- export declare const useRegisterConfig: ({ isLoading, isLoadingCanvas, }: {
1
+ export declare const useRegisterConfig: ({ shopId, isLoading, isLoadingCanvas, }: {
2
+ shopId?: string;
2
3
  isLoading?: boolean;
3
4
  isLoadingCanvas?: boolean;
4
5
  }) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useRegisterConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/register/useRegisterConfig.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,GAAI,iCAG/B;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,SAuBA,CAAC"}
1
+ {"version":3,"file":"useRegisterConfig.d.ts","sourceRoot":"","sources":["../../../src/hooks/register/useRegisterConfig.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,GAAI,yCAI/B;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,SA+BA,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ClickMapPoint, EncodedPayload, IHeatmapInfo, IPersistedAreaData, ScrollMapPoint } from '../../types';
2
2
  interface IHeatmapDataState {
3
3
  data: EncodedPayload[] | undefined;
4
+ dataHash: string | undefined;
4
5
  dataSnapshot: EncodedPayload[] | undefined;
5
6
  clickmap: ClickMapPoint[] | undefined;
6
7
  clickAreas: IPersistedAreaData[] | undefined;
@@ -12,6 +13,7 @@ interface IHeatmapDataState {
12
13
  interface IHeatmapDataActions {
13
14
  setData: (newData: EncodedPayload[]) => void;
14
15
  setDataSnapshot: (newData: EncodedPayload[]) => void;
16
+ setDataHash: (newHash: string | undefined) => void;
15
17
  setClickmap: (newClickmap: ClickMapPoint[]) => void;
16
18
  setClickAreas: (newClickAreas: IPersistedAreaData[]) => void;
17
19
  setScrollmap: (newScrollmap: ScrollMapPoint[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useHeatmapDataContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/view-context/useHeatmapDataContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKnH,UAAU,iBAAiB;IACzB,IAAI,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC7D,WAAW,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACzF,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,qBAAqB;;;;;;;CA0BhC,CAAC"}
1
+ {"version":3,"file":"useHeatmapDataContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/view-context/useHeatmapDataContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKnH,UAAU,iBAAiB;IACzB,IAAI,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IAC7C,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC3C,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACnD,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACvD,eAAe,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC7D,WAAW,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,gBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACzF,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,qBAAqB;;;;;;;CA4BhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHeatmapRender.d.ts","sourceRoot":"","sources":["../../../src/hooks/viz-render/useHeatmapRender.ts"],"names":[],"mappings":"AAgCA,UAAU,uBAAuB;IAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACtD;AAaD,eAAO,MAAM,gBAAgB,QAAO,uBA+EnC,CAAC"}
1
+ {"version":3,"file":"useHeatmapRender.d.ts","sourceRoot":"","sources":["../../../src/hooks/viz-render/useHeatmapRender.ts"],"names":[],"mappings":"AAiCA,UAAU,uBAAuB;IAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;CACtD;AAcD,eAAO,MAAM,gBAAgB,QAAO,uBAiFnC,CAAC"}