@terminus/ngx-tools
Version:
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
27 lines • 3.19 kB
JavaScript
/**
* Creates a browser TouchEvent with the specified pointer coordinates.
*
* @param type - The touch event type
* @param pageX - The location on the X axis
* @param pageY - The location on the Y axis
*
* @example
* createTouchEvent('touchstart');
* createTouchEvent('touchstart', 212, 433);
*/
export function createTouchEvent(type, pageX, pageY) {
if (pageX === void 0) { pageX = 0; }
if (pageY === void 0) { pageY = 0; }
// NOTE: In favor of creating events that work for most of the browsers, the event is created
// as a basic UI Event. The necessary details for the event will be set manually.
var event = document.createEvent('UIEvent');
var touchDetails = {
pageX: pageX,
pageY: pageY,
};
event.initEvent(type, true, true);
// NOTE: Most of the browsers don't have a "initTouchEvent" method that can be used to define the touch details.
Object.defineProperties(event, { touches: { value: [touchDetails] } });
return event;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvdWNoLWV2ZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy90ZXN0aW5nLyIsInNvdXJjZXMiOlsidXRpbGl0aWVzL2V2ZW50cy9jcmVhdGUtdG91Y2gtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBUyxFQUFFLEtBQVM7SUFBcEIsc0JBQUEsRUFBQSxTQUFTO0lBQUUsc0JBQUEsRUFBQSxTQUFTO0lBQ2pFLDZGQUE2RjtJQUM3RixpRkFBaUY7SUFDakYsSUFBTSxLQUFLLEdBQVksUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RCxJQUFNLFlBQVksR0FBRztRQUNuQixLQUFLLE9BQUE7UUFDTCxLQUFLLE9BQUE7S0FDTixDQUFDO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLGdIQUFnSDtJQUNoSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDcmVhdGVzIGEgYnJvd3NlciBUb3VjaEV2ZW50IHdpdGggdGhlIHNwZWNpZmllZCBwb2ludGVyIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBwYXJhbSB0eXBlIC0gVGhlIHRvdWNoIGV2ZW50IHR5cGVcbiAqIEBwYXJhbSBwYWdlWCAtIFRoZSBsb2NhdGlvbiBvbiB0aGUgWCBheGlzXG4gKiBAcGFyYW0gcGFnZVkgLSBUaGUgbG9jYXRpb24gb24gdGhlIFkgYXhpc1xuICpcbiAqIEBleGFtcGxlXG4gKiBjcmVhdGVUb3VjaEV2ZW50KCd0b3VjaHN0YXJ0Jyk7XG4gKiBjcmVhdGVUb3VjaEV2ZW50KCd0b3VjaHN0YXJ0JywgMjEyLCA0MzMpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG91Y2hFdmVudCh0eXBlOiBzdHJpbmcsIHBhZ2VYID0gMCwgcGFnZVkgPSAwKTogVUlFdmVudCB7XG4gIC8vIE5PVEU6IEluIGZhdm9yIG9mIGNyZWF0aW5nIGV2ZW50cyB0aGF0IHdvcmsgZm9yIG1vc3Qgb2YgdGhlIGJyb3dzZXJzLCB0aGUgZXZlbnQgaXMgY3JlYXRlZFxuICAvLyBhcyBhIGJhc2ljIFVJIEV2ZW50LiBUaGUgbmVjZXNzYXJ5IGRldGFpbHMgZm9yIHRoZSBldmVudCB3aWxsIGJlIHNldCBtYW51YWxseS5cbiAgY29uc3QgZXZlbnQ6IFVJRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlFdmVudCcpO1xuICBjb25zdCB0b3VjaERldGFpbHMgPSB7XG4gICAgcGFnZVgsXG4gICAgcGFnZVksXG4gIH07XG4gIGV2ZW50LmluaXRFdmVudCh0eXBlLCB0cnVlLCB0cnVlKTtcbiAgLy8gTk9URTogTW9zdCBvZiB0aGUgYnJvd3NlcnMgZG9uJ3QgaGF2ZSBhIFwiaW5pdFRvdWNoRXZlbnRcIiBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIHRvdWNoIGRldGFpbHMuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGV2ZW50LCB7IHRvdWNoZXM6IHsgdmFsdWU6IFt0b3VjaERldGFpbHNdIH0gfSk7XG4gIHJldHVybiBldmVudDtcbn1cbiJdfQ==