{"version":3,"file":"activity.cjs","names":[],"sources":["../../../../src/managers/EmbraceUserSessionManager/utils/activity.ts"],"sourcesContent":["import type { VisibilityStateDocument } from '../../../common/index.ts';\n\nexport const isTabEngaged = (visibilityDoc: VisibilityStateDocument): boolean =>\n  visibilityDoc.visibilityState === 'visible' && visibilityDoc.hasFocus();\n\nexport interface ActivityListenersArgs {\n  target: EventTarget;\n  visibilityDoc: VisibilityStateDocument;\n  activityEvents: ReadonlyArray<string>;\n  onActivity: (event: Event) => void;\n  onVisibilityChange: (event: Event) => void;\n  onFocus: (event: Event) => void;\n  onBlur: (event: Event) => void;\n}\n\nexport const addActivityListeners = ({\n  target,\n  visibilityDoc,\n  activityEvents,\n  onActivity,\n  onVisibilityChange,\n  onFocus,\n  onBlur,\n}: ActivityListenersArgs): void => {\n  for (const event of activityEvents) {\n    target.addEventListener(event, onActivity);\n  }\n  // Tab visibility flips (switch tabs, minimize, OS app switch).\n  visibilityDoc.addEventListener?.('visibilitychange', onVisibilityChange);\n  // Window focus changes (alt-tab, click into DevTools, multi-monitor).\n  target.addEventListener('focus', onFocus);\n  target.addEventListener('blur', onBlur);\n};\n\nexport const removeActivityListeners = ({\n  target,\n  visibilityDoc,\n  activityEvents,\n  onActivity,\n  onVisibilityChange,\n  onFocus,\n  onBlur,\n}: ActivityListenersArgs): void => {\n  for (const event of activityEvents) {\n    target.removeEventListener(event, onActivity);\n  }\n  visibilityDoc.removeEventListener?.('visibilitychange', onVisibilityChange);\n  target.removeEventListener('focus', onFocus);\n  target.removeEventListener('blur', onBlur);\n};\n"],"mappings":";;AAEA,MAAa,gBAAgB,kBAC3B,cAAc,oBAAoB,aAAa,cAAc,SAAS;AAYxE,MAAa,wBAAwB,EACnC,QACA,eACA,gBACA,YACA,oBACA,SACA,aACiC;CACjC,KAAK,MAAM,SAAS,gBAClB,OAAO,iBAAiB,OAAO,UAAU;CAG3C,cAAc,mBAAmB,oBAAoB,kBAAkB;CAEvE,OAAO,iBAAiB,SAAS,OAAO;CACxC,OAAO,iBAAiB,QAAQ,MAAM;AACxC;AAEA,MAAa,2BAA2B,EACtC,QACA,eACA,gBACA,YACA,oBACA,SACA,aACiC;CACjC,KAAK,MAAM,SAAS,gBAClB,OAAO,oBAAoB,OAAO,UAAU;CAE9C,cAAc,sBAAsB,oBAAoB,kBAAkB;CAC1E,OAAO,oBAAoB,SAAS,OAAO;CAC3C,OAAO,oBAAoB,QAAQ,MAAM;AAC3C"}