UNPKG

gentics-ui-core

Version:

This is the common core framework for the Gentics CMS and Mesh UI, and other Angular applications.

77 lines 9.5 kB
export function getDataTransfer(event) { // if jQuery wrapped the event which contains the dropped file, unwrap it let ev = event.dataTransfer ? event : event.originalEvent; return ev.dataTransfer; } export function getEventTarget(event) { // if jQuery wrapped the event, unwrap it return (event.originalEvent ? event.originalEvent : event).target; } /** * Note: there are issues with current TypeScript lib defs for the DataTransfer interface, which * seems to define the `types` property as a `string[]` rather than a DOMStringList. * See https://github.com/Microsoft/TypeScript/issues/12069 */ export function transferHasFiles(transfer) { let types = transfer.types; if (!transfer || !transfer.types) { return false; } else if (typeof types.contains === 'function') { return types.contains('Files'); } else if (typeof types.indexOf === 'function') { return types.indexOf('Files') >= 0; } else if (typeof types.length === 'number') { for (let i = 0; i < types.length; i++) { if (types.item(i) === 'Files') { return true; } } } return false; } let _mimeTypeSupport; export function clientReportsMimeTypesOnDrag() { if (_mimeTypeSupport === undefined) { _mimeTypeSupport = 'items' in DataTransfer.prototype; } return _mimeTypeSupport; } /** * If the browser does not report a MIME type, match against this value instead. */ export const FALLBACK_MIME_TYPE = 'unknown/unknown'; let warnedThatBrowserDoesNotProvideNumberOfItems = false; /** * Returns a list of mime types in a DataTransfer if supported by the browser. * * This is a workaround for missing DataTransfer.items support in Firefox < 52 * https://bugzilla.mozilla.org/show_bug.cgi?id=906420 */ export function getTransferMimeTypes(transfer) { if (!transfer) { return []; } else if (transfer.items && transfer.items.length > 0) { return Array.from(transfer.items) .filter(item => item.kind === 'file') .map(item => item.type || FALLBACK_MIME_TYPE); } else if ('mozItemCount' in transfer) { return new Array(transfer.mozItemCount).fill(FALLBACK_MIME_TYPE); } else if (!transfer.items && transfer.types.length === 1 && transfer.types[0] === 'Files') { // IE11 return [FALLBACK_MIME_TYPE]; } else { if (!warnedThatBrowserDoesNotProvideNumberOfItems) { console.warn('Client does not provide number of items during drag event'); warnedThatBrowserDoesNotProvideNumberOfItems = true; } return [FALLBACK_MIME_TYPE]; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZmlsZS1kcm9wLWFyZWEvZHJhZy1kcm9wLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVTtJQUN0Qyx5RUFBeUU7SUFDekUsSUFBSSxFQUFFLEdBQWMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQ3JFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztBQUMzQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFVO0lBQ3JDLHlDQUF5QztJQUN6QyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQ3RFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQXNCO0lBQ25ELElBQUksS0FBSyxHQUFRLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDaEMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDOUIsT0FBTyxLQUFLLENBQUM7S0FDaEI7U0FBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxVQUFVLEVBQUU7UUFDN0MsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2xDO1NBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1FBQzVDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdEM7U0FBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUM7YUFDZjtTQUNKO0tBQ0o7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsSUFBSSxnQkFBeUIsQ0FBQztBQUM5QixNQUFNLFVBQVUsNEJBQTRCO0lBQ3hDLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1FBQ2hDLGdCQUFnQixHQUFHLE9BQU8sSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO0tBQ3hEO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQztBQUVwRCxJQUFJLDRDQUE0QyxHQUFHLEtBQUssQ0FBQztBQUV6RDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFzQjtJQUN2RCxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ1gsT0FBTyxFQUFFLENBQUM7S0FDYjtTQUFNLElBQUksUUFBUSxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDcEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7YUFDcEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3JEO1NBQU0sSUFBSSxjQUFjLElBQUksUUFBUSxFQUFFO1FBQ25DLE9BQU8sSUFBSSxLQUFLLENBQVEsUUFBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBQzVFO1NBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssT0FBTyxFQUFFO1FBQ3hGLE9BQU87UUFDUCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUMvQjtTQUFNO1FBQ0gsSUFBSSxDQUFDLDRDQUE0QyxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkRBQTJELENBQUMsQ0FBQztZQUMxRSw0Q0FBNEMsR0FBRyxJQUFJLENBQUM7U0FDdkQ7UUFDRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUMvQjtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVRyYW5zZmVyKGV2ZW50OiBhbnkpOiBEYXRhVHJhbnNmZXIge1xuICAgIC8vIGlmIGpRdWVyeSB3cmFwcGVkIHRoZSBldmVudCB3aGljaCBjb250YWlucyB0aGUgZHJvcHBlZCBmaWxlLCB1bndyYXAgaXRcbiAgICBsZXQgZXY6IERyYWdFdmVudCA9IGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50IDogZXZlbnQub3JpZ2luYWxFdmVudDtcbiAgICByZXR1cm4gZXYuZGF0YVRyYW5zZmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQoZXZlbnQ6IGFueSk6IEhUTUxFbGVtZW50IHtcbiAgICAvLyBpZiBqUXVlcnkgd3JhcHBlZCB0aGUgZXZlbnQsIHVud3JhcCBpdFxuICAgIHJldHVybiAoZXZlbnQub3JpZ2luYWxFdmVudCA/IGV2ZW50Lm9yaWdpbmFsRXZlbnQgOiBldmVudCkudGFyZ2V0O1xufVxuXG4vKipcbiAqIE5vdGU6IHRoZXJlIGFyZSBpc3N1ZXMgd2l0aCBjdXJyZW50IFR5cGVTY3JpcHQgbGliIGRlZnMgZm9yIHRoZSBEYXRhVHJhbnNmZXIgaW50ZXJmYWNlLCB3aGljaFxuICogc2VlbXMgdG8gZGVmaW5lIHRoZSBgdHlwZXNgIHByb3BlcnR5IGFzIGEgYHN0cmluZ1tdYCByYXRoZXIgdGhhbiBhIERPTVN0cmluZ0xpc3QuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8xMjA2OVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmZXJIYXNGaWxlcyh0cmFuc2ZlcjogRGF0YVRyYW5zZmVyKTogYm9vbGVhbiB7XG4gICAgbGV0IHR5cGVzOiBhbnkgPSB0cmFuc2Zlci50eXBlcztcbiAgICBpZiAoIXRyYW5zZmVyIHx8ICF0cmFuc2Zlci50eXBlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZXMuY29udGFpbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVzLmNvbnRhaW5zKCdGaWxlcycpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHR5cGVzLmluZGV4T2YgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVzLmluZGV4T2YoJ0ZpbGVzJykgPj0gMDtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlcy5sZW5ndGggPT09ICdudW1iZXInKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh0eXBlcy5pdGVtKGkpID09PSAnRmlsZXMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5sZXQgX21pbWVUeXBlU3VwcG9ydDogYm9vbGVhbjtcbmV4cG9ydCBmdW5jdGlvbiBjbGllbnRSZXBvcnRzTWltZVR5cGVzT25EcmFnKCk6IGJvb2xlYW4ge1xuICAgIGlmIChfbWltZVR5cGVTdXBwb3J0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgX21pbWVUeXBlU3VwcG9ydCA9ICdpdGVtcycgaW4gRGF0YVRyYW5zZmVyLnByb3RvdHlwZTtcbiAgICB9XG4gICAgcmV0dXJuIF9taW1lVHlwZVN1cHBvcnQ7XG59XG5cbi8qKlxuICogSWYgdGhlIGJyb3dzZXIgZG9lcyBub3QgcmVwb3J0IGEgTUlNRSB0eXBlLCBtYXRjaCBhZ2FpbnN0IHRoaXMgdmFsdWUgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IEZBTExCQUNLX01JTUVfVFlQRSA9ICd1bmtub3duL3Vua25vd24nO1xuXG5sZXQgd2FybmVkVGhhdEJyb3dzZXJEb2VzTm90UHJvdmlkZU51bWJlck9mSXRlbXMgPSBmYWxzZTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBvZiBtaW1lIHR5cGVzIGluIGEgRGF0YVRyYW5zZmVyIGlmIHN1cHBvcnRlZCBieSB0aGUgYnJvd3Nlci5cbiAqXG4gKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgbWlzc2luZyBEYXRhVHJhbnNmZXIuaXRlbXMgc3VwcG9ydCBpbiBGaXJlZm94IDwgNTJcbiAqIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkwNjQyMFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNmZXJNaW1lVHlwZXModHJhbnNmZXI6IERhdGFUcmFuc2Zlcik6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9IGVsc2UgaWYgKHRyYW5zZmVyLml0ZW1zICYmIHRyYW5zZmVyLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odHJhbnNmZXIuaXRlbXMpXG4gICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5raW5kID09PSAnZmlsZScpXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gaXRlbS50eXBlIHx8IEZBTExCQUNLX01JTUVfVFlQRSk7XG4gICAgfSBlbHNlIGlmICgnbW96SXRlbUNvdW50JyBpbiB0cmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5KCg8YW55PiB0cmFuc2ZlcikubW96SXRlbUNvdW50KS5maWxsKEZBTExCQUNLX01JTUVfVFlQRSk7XG4gICAgfSBlbHNlIGlmICghdHJhbnNmZXIuaXRlbXMgJiYgdHJhbnNmZXIudHlwZXMubGVuZ3RoID09PSAxICYmIHRyYW5zZmVyLnR5cGVzWzBdID09PSAnRmlsZXMnKSB7XG4gICAgICAgIC8vIElFMTFcbiAgICAgICAgcmV0dXJuIFtGQUxMQkFDS19NSU1FX1RZUEVdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghd2FybmVkVGhhdEJyb3dzZXJEb2VzTm90UHJvdmlkZU51bWJlck9mSXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQ2xpZW50IGRvZXMgbm90IHByb3ZpZGUgbnVtYmVyIG9mIGl0ZW1zIGR1cmluZyBkcmFnIGV2ZW50Jyk7XG4gICAgICAgICAgICB3YXJuZWRUaGF0QnJvd3NlckRvZXNOb3RQcm92aWRlTnVtYmVyT2ZJdGVtcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtGQUxMQkFDS19NSU1FX1RZUEVdO1xuICAgIH1cbn1cbiJdfQ==