UNPKG

@randyd45/web-behavior-tracker

Version:

A framework-agnostic package for tracking user behavior on web forms

51 lines 1.68 kB
import { TrackingUtils } from './utils.js'; /** * Handles clipboard events like copy, paste, and cut */ export class ClipboardEventHandler { constructor(options) { this.options = options; } /** * Handles clipboard events (copy, paste, cut) */ handleClipboardEvent(event, onEventCreated) { if (!this.options.trackCopyPaste) return; const target = event.target; if (!target) return; // Check if the element is a form element or has a form-related role const isFormElement = TrackingUtils.isFormElement(target); if (!isFormElement) return; // Get clipboard data if available let clipboardData; if (event.clipboardData) { const types = Array.from(event.clipboardData.types); const data = event.clipboardData.getData('text/plain'); clipboardData = { types, data }; } const behaviorEvent = TrackingUtils.createBehaviorEvent(event.type, target, TrackingUtils.getElementValue(target), { clipboardData }); onEventCreated(behaviorEvent); } /** * Handles copy events specifically */ handleCopyEvent(event, onEventCreated) { this.handleClipboardEvent(event, onEventCreated); } /** * Handles paste events specifically */ handlePasteEvent(event, onEventCreated) { this.handleClipboardEvent(event, onEventCreated); } /** * Handles cut events specifically */ handleCutEvent(event, onEventCreated) { this.handleClipboardEvent(event, onEventCreated); } } //# sourceMappingURL=ClipboardEventHandler.js.map