34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import { ReadableStream, WritableStream, TransformStream } from "web-streams-polyfill/ponyfill/es2018";
|
|
import { Buffer as BufferPolyfill } from 'buffer'
|
|
import { polyfill as dragPolyfill} from "mobile-drag-drop"
|
|
import {scrollBehaviourDragImageTranslateOverride} from 'mobile-drag-drop/scroll-behaviour'
|
|
|
|
export function polyfill() {
|
|
try {
|
|
const testDom = document.createElement('div');
|
|
const supports = ('draggable' in testDom) || ('ondragstart' in testDom && 'ondrop' in testDom);
|
|
const isIos = navigator.userAgent ? (!!navigator.userAgent.match('iPhone OS') || !!navigator.userAgent.match('iPad')) : false
|
|
testDom.remove()
|
|
|
|
if((!supports) || isIos){
|
|
console.log('polyfiled dragdrop')
|
|
globalThis.polyfilledDragDrop = true
|
|
dragPolyfill({
|
|
// use this to make use of the scroll behaviour
|
|
dragImageTranslateOverride: scrollBehaviourDragImageTranslateOverride,
|
|
// holdToDrag: 400,
|
|
forceApply: true
|
|
});
|
|
}
|
|
else{
|
|
console.log("supports dragdrop")
|
|
}
|
|
} catch (error) {
|
|
|
|
}
|
|
globalThis.Buffer = BufferPolyfill
|
|
//@ts-ignore
|
|
globalThis.WritableStream = globalThis.WritableStream ?? WritableStream
|
|
globalThis.ReadableStream = globalThis.ReadableStream ?? ReadableStream
|
|
globalThis.TransformStream = globalThis.TransformStream ?? TransformStream
|
|
} |