@readium/navigator
Version:
Next generation SDK for publications in Web Apps
39 lines (33 loc) • 1.49 kB
text/typescript
import { NavigatorProtector } from "../../protection/NavigatorProtector.ts";
import { DragAndDropProtector } from "../../protection/DragAndDropProtector.ts";
import { CopyProtector } from "../../protection/CopyProtector.ts";
import { IContentProtectionConfig } from "../../Navigator.ts";
export class AudioNavigatorProtector extends NavigatorProtector {
private dragAndDropProtector?: DragAndDropProtector;
private copyProtector?: CopyProtector;
constructor(config: IContentProtectionConfig = {}) {
super(config);
if (config.disableDragAndDrop) {
this.dragAndDropProtector = new DragAndDropProtector({
onDragDetected: (dataTransferTypes) => {
this.dispatchSuspiciousActivity("drag_detected", { dataTransferTypes, targetFrameSrc: "" });
},
onDropDetected: (dataTransferTypes, fileCount) => {
this.dispatchSuspiciousActivity("drop_detected", { dataTransferTypes, fileCount, targetFrameSrc: "" });
}
});
}
if (config.protectCopy) {
this.copyProtector = new CopyProtector({
onCopyBlocked: () => {
this.dispatchSuspiciousActivity("bulk_copy", { targetFrameSrc: "" });
}
});
}
}
public override destroy() {
super.destroy();
this.dragAndDropProtector?.destroy();
this.copyProtector?.destroy();
}
}