You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
725 B
18 lines
725 B
import { nativeTypesConfig } from './nativeTypesConfig';
|
|
import { NativeDragSource } from './NativeDragSource';
|
|
export function createNativeDragSource(type, dataTransfer) {
|
|
const result = new NativeDragSource(nativeTypesConfig[type]);
|
|
result.loadDataTransfer(dataTransfer);
|
|
return result;
|
|
}
|
|
export function matchNativeItemType(dataTransfer) {
|
|
if (!dataTransfer) {
|
|
return null;
|
|
}
|
|
const dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);
|
|
return (Object.keys(nativeTypesConfig).filter(nativeItemType => {
|
|
const { matchesTypes } = nativeTypesConfig[nativeItemType];
|
|
return matchesTypes.some(t => dataTransferTypes.indexOf(t) > -1);
|
|
})[0] || null);
|
|
}
|