{"version":3,"file":"koobiq-cdk-testing.mjs","sources":["../../../packages/cdk/testing/event-objects.ts","../../../packages/cdk/testing/dispatch-events.ts","../../../packages/cdk/testing/element-focus.ts","../../../packages/cdk/testing/mock-ng-zone.ts","../../../packages/cdk/testing/type-in-element.ts","../../../packages/cdk/testing/wrapped-error-message.ts","../../../packages/cdk/testing/koobiq-cdk-testing.ts"],"sourcesContent":["/** Creates a browser MouseEvent with the specified options. */\nexport function createMouseEvent(type: string, x = 0, y = 0, button = 0) {\n    const event = document.createEvent('MouseEvent');\n\n    event.initMouseEvent(\n        type,\n        false,\n        false,\n        window /* view */,\n        0,\n        x /* screenX */,\n        y /* screenY */,\n        x /* clientX */,\n        y /* clientY */,\n        false,\n        false,\n        false,\n        false,\n        button /* button */,\n        null\n    );\n\n    return event;\n}\n\n/** Creates a browser TouchEvent with the specified pointer coordinates. */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n    // In favor of creating events that work for most of the browsers, the event is created\n    // as a basic UI Event. The necessary details for the event will be set manually.\n    const event = document.createEvent('UIEvent');\n    const touchDetails = { pageX, pageY };\n\n    (event as any).initUIEvent(type, true, true, window, 0);\n\n    // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n    // the touch details.\n    Object.defineProperties(event, {\n        touches: { value: [touchDetails] }\n    });\n\n    return event;\n}\n\n/** Dispatches a keydown event from an element. */\nexport function createKeyboardEvent(type: string, keyCode: number, target?: Element, key?: string) {\n    const event = document.createEvent('KeyboardEvent') as any;\n\n    // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n    if (event.initKeyEvent) {\n        event.initKeyEvent(type, true, true, window, 0, 0, 0, 0, 0, keyCode);\n    } else {\n        event.initKeyboardEvent(type, true, true, window, 0, key, 0, '', false);\n    }\n\n    // Webkit Browsers don't set the keyCode when calling the init function.\n    // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n    Object.defineProperties(event, {\n        keyCode: { get: () => keyCode },\n        key: { get: () => key },\n        target: { get: () => target }\n    });\n\n    return event;\n}\n\n/** Creates a fake event object with any desired event type. */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n    const event = document.createEvent('Event');\n\n    event.initEvent(type, canBubble, cancelable);\n\n    return event;\n}\n","import { createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent } from './event-objects';\n\n/** Utility to dispatch any event on a Node. */\nexport function dispatchEvent(node: Node | Window, event: Event): Event {\n    node.dispatchEvent(event);\n\n    return event;\n}\n\n/** Shorthand to dispatch a fake event on a specified node. */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n    return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/** Shorthand to dispatch a keyboard event with a specified key code. */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element): KeyboardEvent {\n    return dispatchEvent(node, createKeyboardEvent(type, keyCode, target)) as KeyboardEvent;\n}\n\n/** Shorthand to dispatch a mouse event on the specified coordinates. */\nexport function dispatchMouseEvent(\n    node: Node,\n    type: string,\n    x = 0,\n    y = 0,\n    event = createMouseEvent(type, x, y)\n): MouseEvent {\n    return dispatchEvent(node, event) as MouseEvent;\n}\n\n/** Shorthand to dispatch a touch event on the specified coordinates. */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n    return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","import { dispatchFakeEvent } from './dispatch-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n    element.focus = () => dispatchFakeEvent(element, 'focus');\n    element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","import { EventEmitter, Injectable, NgZone } from '@angular/core';\n\n/**\n * Mock synchronous NgZone implementation that can be used\n * to flush out `onStable` subscriptions in tests.\n *\n * via: https://github.com/angular/angular/blob/master/packages/core/testing/src/ng_zone_mock.ts\n * @docs-private\n */\n@Injectable()\nexport class MockNgZone extends NgZone {\n    onStable: EventEmitter<any> = new EventEmitter(false);\n\n    constructor() {\n        super({ enableLongStackTrace: false });\n    }\n\n    run(fn: () => void): any {\n        return fn();\n    }\n\n    runOutsideAngular(fn: () => void): any {\n        return fn();\n    }\n\n    simulateZoneExit(): void {\n        this.onStable.emit(null);\n    }\n}\n","import { dispatchFakeEvent } from './dispatch-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n    element.focus();\n    element.value = value;\n    dispatchFakeEvent(element, 'input');\n}\n","export function wrappedErrorMessage(e: Error) {\n    const escapedMessage = e.message.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n    return new RegExp(escapedMessage);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}